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