Homebrew 2600

Return to Main

Atari 2600 Cartridges

The 2600 has two types of memory. RAM, which stands for Random Access Memory, is both readable and writable. It is used for storing the state of the game. ROM stands for Read Only Memory and as you would expect is memory that can only be read. This is used for the program instructions and data. The only memory built into the 2600 is 128 bytes of RAM which is mapped to addresses 128 to 255. This may seem strange but the first 128 bytes (0 to 127) are mapped to the TIA registers. By having the TIA registers and RAM set up as it is, programmers can take advantage of the smaller and faster zero page instructions for both graphics and manipulating RAM.

ROM, which contains the actual program to be ran, is in separate cartridges which the player plugs into the system. The 2600 was not the first console to use cartridges, that honor belongs to the Fairchild Channel F. A cartridge is essentially a circuit board that contains the ROM for the system, but more advanced cartridges have additional circuitry.

To save money on the 2600 console, the 6507 processor was used. This is essentially a 6502 except the amount of addressable memory was limited to 8KB. 4K of this is for cartridges, which limits the size of a cartridge to a very limiting 4K. As should be no surprise, this proved to be a bit too much of a limitation so ways of getting past this limitation were developed. The technique used for doing this is called bank switching.

The idea behind bank switching is to store multiple "banks" of ROMs on the cartridge and switch between the banks as necessary. While the 2600 could only see 4K at a time, a controller chip on the cartridge could control which 4K of the cartridge ROM could be seen by the 2600. There are many ways of doing this, and as a result a number of different bank-switching schemes evolved. For a detailed article on this subject, "Mostly Inclusive Atari 2600 Mapper / Selected Hardware Document" 1 is a good source.