Index

Function Name: GETCFG

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:		none
Results:
	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