Chapter 8

AUXILIARY MEMORY MANAGEMENT

--------------------------------------------------------------------------------

The MultiRam C Card can contain up to 512K of memory. The Apple //c’s 65C02 processor can use this memory as eight banks of ordinary 64K auxiliary memory. How to use these different memory banks from within control by machine language routines is the subject of this chapter.

This chapter should be read by programmers who intend to write assembly language programs using the MultiRam C Card’s memory or assembly language subroutines that can be called by higher level languages.

SELECTING AUXILIARY MEMORY BANKS

Because the Apple’s 65C02 processor is an 8 bit processor, it can directly address only 64K of memory. The Apple addresses the 64K memory in a standard auxiliary bank by “hank switching” using software controlled switches. These soft switches cause different memory areas to be switched into the address range the Apple can read and write to and are discussed in Chapter 7.

Each of MultiRam C’s eight possible 641 memory banks can be moved into the address area reserved for normal auxiliary memory by writing the number of the desired 64K auxiliary bank —— $1 to $8 —— into a soft switch located at $C07X (X is any hexadecimal number $0 to $F). The Apple then can use this memory bank as it normally would use auxiliary memory. See “Softawitch Selection” in the following section for more information on use of the soft switch.

MultiRam C’s eight auxiliary banks are associated with fixed RAM Bank locations on the card. As Table 9.1 shows, Banks A and B have four 64K auxiliary memory banks associated with each of them. Four auxiliary banks can be associated with each RAM Bank as a set of 256K RAM chips can be placed into a RAM Bank and a set of 256K RAM chips is the equivalent of four 64K banks.

Table 9.1 Auxiliary Memory Bank Location (Hex notation)

-------------------------------------------------------

MultiRam C

MultiRam C 64K

RAM Bank

Aux. Bank Number

----------

-----------------

A1, 2. 3. 4

B5, 6, 7, 8

-------------------------------------------------------------------------------------------------------------