Atari MMU is a custom memory management unit chip for the Atari 8-bit computers. It enables access to the hardware registers on ANTIC, GTIA, POKEY and 6520 PIA. The later XL/XE MMU (C061618) also selects OS ROM, Atari BASIC ROM, self-test ROM and LEDs in the 1200XL. On the 128K 130XE the EMMU chip handles similar functionality.
The user cannot directly manipulate the Atari MMU, but selects the various ROMS and memory via the memory-mapped hardware register known as PORTB (5401710 or D30116). Atari changed PORTB from an input port on the 400/800 machines to an output port on the XL/XE machines, leaving two joystick ports instead of four on the XL/XE machines.
By setting and clearing specific bits in PORTB, the user can access either the ROMs or memory locations. No synchronization is required as the OS handles the access.
The bit assignments for PORTB on the XL/XE machines are:
PORTB (D30116) | |||
Bit No. | Description | ||
0 | Controls OS ROM region. Disabling OS ROM enables RAM instead. 0 for disable, 1 for enable. | ||
1 | Controls built-in BASIC. 0 for enable, 1 for disable. | ||
2 | Controls LED #1 in the 1200XL. 0 for on, 1 for off. Extended RAM bank selection in the 130XE. | ||
3 | Controls LED #2 in the 1200XL. 0 for on, 1 for off. Extended RAM bank selection in the 130XE. | ||
4 | CPU extended RAM bit for 130XE only. 0 for enable, 1 for disable. | ||
5 | ANTIC extended RAM bit for 130XE only. 0 for enable, 1 for disable. | ||
6 | Missile Command enable bit for XEGS only, but only if BASIC is not enabled. 0 for enable, 1 for disable. | ||
7 | Controls the self test ROM region. Disabling self test enables RAM instead. 0 for enable, 1 for disable. |
Note: The 1200XL does not have BASIC built-in.