Msg: 5132 *Conference*
06-28-94 22:43:56
From: TRACY ALLEN
To : COMET _
Subj: REPLY TO MSG #5115 (MEMORY EXPANSION)
Are you still interested in the comparative details of programming with the different memory expansions? I'll try to help with your questions posted a couple of weeks ago. The XR4 is the bank-switched RAM expansion, and I think EME sent you a brochure about it and the RAMPAC, but the brochure doesn't tell you the nitty gritty programming details. You're right, the XR4 switches banks by sending a code to an output port (port 128 decimal). There is also a write-protection bit for the bank. You are also right that if you switch banks while running a program at an address in the option ROM space, the program will suddenly find itself running in the new bank. The code in the new bank must mesh perfecly with the code in the old bank. You face the same problem in swtiching back and forth between the standard ROM and the option ROM (XR4). It isn't too hard, but it takes planning. That little segment of your program has to mesh. Wow! Lots of questions. I'll mail you a technical description of how the XR4 works that should answer some of them. Global area in memory during a switch of banks.. In a switch from one XR4 option ROM bank to another, the entire contents of RAM is global, that's 32K. In a swap of RAM with the contents of an XR4 bank, there are 1088 global bytes, which includes the altLCD buffer and the lineinput buffer, which could be used for a cross-bank copy and paste. A lot more than just the registers and port addresses are saved. The time and date in the clock chip are not affected. I appreciate your questions and hope the technical sheet will answer some of your questions. Other resources you might consider are the book "Secrets of ROM Revealed" by Mo Budlong. I concur with Rick that the ROM2/Cleuseau is worth its weight in lox. It sounds like you want to program in assemblym , more than in BASIC. The RAMPAC is a 256k memory expansion. It operates in a very different manner from the XR4. The RAMPAC memory is accessed like a disk drive organized into sectors. You won't ever write a program to run _from_ the RAMPAC. You would load a program from the RAMPAC into RAM memory and run it from there. With the XR4, you can either load the program from XR4 to RAM to run it, or you can code the program to run directly from the XR4. I hope those answers are a start at clarification for you. -- Tracy