see Bank Switching
There are two 4K program banks, a 2K display bank, and the DPC chip. The bankswitching itself is the same as the F8 scheme (hotspots at $1FF8 and $1FF9). DPC chip access is mapped to $1000 - $1080 ($1000 - $103F is read port, $1040 - $107F is write port).
The DPC chip is a special data processor created David P. Crane to help boost the capabilities of the Atari 2600. The DPC chip provides 8 data fetchers, random number generation, 3 music channels, and line-drawing capabilities. The chip's main use was in Activision's Pitfall 2 game.
The data fetchers, which are self-decrementing pointers, provide access to a separate 2K data bank. This bank is mainly used to store display data that can be retrieved using the data fetchers.
Three (3) of the data fetchers can be used to mix together 3 square waves into a 4-bit waveform, which can be read thru a special register and played thru one of the two Atari sound channels.
For complete details on the DPC chip see David P. Crane's United States Patent Number 4,644,495.
Examples
Pitfall II
Read Registers ($1000-$103F)
Addr | Name | Description |
00-03 | RANDOMx | Random Numbers |
04 | SOUNDDRAW0 | Line/Music Fetchers |
05 | SOUNDDRAW1 | Line/Music Fetchers |
06 | SOUND0 | Line/Music Fetchers |
07 | SOUND1 | Line/Music Fetchers |
08-0F | DFxDATA | Display Data |
10-17 | DFxDATAW | Display Data (ANDed with Flag) |
18-1F | DFxDATAWSWP | Display Data Nibbles Swapped (ANDed with Flag) |
20-27 | DFxDATAWREV | Display Data Bits Reversed (ANDed with Flag) |
28-2F | DFxDATAWROR | Display Data Rotated Right (ANDed with Flag) |
30-37 | DFxDATAWROL | Display Data Rotated Left (ANDed with Flag) |
38-3F | DFxFLAG | Flag values |
Write Registers ($1040-$107F)
Addr | Name | Description |
40-47 | DFxTOP | Define top of data |
48-4F | DFxBOT | Define bottom of data |
50-57 | DFxLOW | Define low address of graphics |
58-5F | DFxHIGH | Define high address of graphics |
60-67 | MOVAMTx | Line drawing |
68-6F | — | Unused |
70-77 | RRESETx | Random number reset |
78-7F | — | Unused |