Purpose: Lookup MMU data for given bank
Call address: $FF6B (hex) 65387 (decimal)
Preparation:
Registers: .X = logical bank # (0-15) Memory: system map Flags: none Calls: noneResults:
Registers: .A = MMU configuration data Memory: none Flags: none
Description: GETCFG allows a universal, logical approach to physical bank numbers by providing a simple lookup conversion for obtaining the actual MMU configuration data. In all cases where a bank number 0-15 is required, you can expect GETCFG to be called to convert that number accordingly. There is no error checking; if the given logical bank number is out of range the result is invalid. Refer to the Memory Management Unit in the Commodore 128 section later in this chapter for details concern- ing memory configuration. The C128 Kernal memory banks are assigned as follows:
0. | %00111111 | :RAM 0 only |
1. | %01111111 | :RAM 1 only |
2. | %10111111 | :RAM 2 only |
3. | %11111111 | :RAM 3 only |
4. | %00010110 | :INT ROM, RAM 0, I/O |
5. | %01010110 | :INT ROM, RAM 1, I/O |
6. | %10010110 | :INT ROM, RAM 2, I/O |
7. | %11010110 | :INT ROM, RAM 3, I/O |
8. | %00101010 | :EXT ROM, RAM 0, I/O |
9. | %01101010 | :EXT ROM, RAM 1, I/O |
10. | %10101010 | :EXT ROM, RAM 2, I/O |
11. | %11101010 | :EXT ROM, RAM 3, I/O |
12. | %00000110 | :KERNAL, INT LO, RAM 0, I/O |
13. | %00001010 | :KERNAL, EXT LO, RAM 0, I/O |
14. | %00000001 | :KERNAL, BASIC, RAM 0, CHAR ROM |
15. | %00000000 | :KERNAL, BASIC, RAM 0, I/O |
EXAMPLE:
LDX #$00 ;logical bank 0 (RAM 0) JSR $FF6B ;GETCFG STA $FF01 ;setup MMU pre-config #1