maps, in which different combinations of RAM and ROM would appear according to bit patterns written into the MMU's configuration register at memory address . Another feature of the memory management unit is to allow relocation of zero page and the stack. Although the C128 can theoretically support 256k of RAM in four blocks, the PCB has no provisions to add this extra RAM, nor can the MMU actually access more than 128k. Therefore, if the MMU is programmed to access blocks 2 or 3, all that results is a mirror of the RAM in blocks 0 and 1. Since the I/O registers and system ROMs can be disabled or enabled freely, as well as being locatable in either RAM bank and the VIC-II set to use either bank for its memory space, up to 256 memory configurations are possible, although the vast majority of them are useless (for example, unworkable combinations like the kernal ROM in bank 0 and the I/O registers in bank 1 are possible). Because of this, BASIC's BANK statement allows the user to select 15 of the most useful arrangements, with the power-on default being Bank 15. This default places the system ROMs, I/O registers, and BASIC program text in block 0, with block 1 being used by BASIC program variables. BASIC program text and variables can extend all the way to . But since block 0 contains the ROMs and I/O registers from onward, BASIC uses an internal switching routine to read program text higher than . The top and bottom 1k of RAM (– and -) are "shared" RAM, visible from both blocks. The MMU allows either to be expanded in increments up to 16k. The – range contains the zero page and stack while - contains the MMU registers and reset vectors. These areas are always shared and cannot be switched to non-shared RAM. Shared RAM is always the opposite bank from the one currently being used by the CPU, thus if bank 0 is selected, any read or write to shared RAM will refer to the corresponding locations in bank 1 and vice versa. The VIC-II can be set to use either RAM bank and from there, its normal 16k window. While on the C64, the VIC-II can only see the character ROM in banks 2 and 4 of its memory space, the C128, on the other hand, makes it possible