Source: De Re Atari, Chapter 2, by Chris Crawford
ANTIC Mode | BASIC mode | Colors | Scan Lines per Mode Line | Horizontal Pixels | Bytes per Line (normal width) | Bytes per Screen |
2 | 0 | 2 | 8 | 40 char's | 40 | 960 |
3 | none | 2 | 10 | 40 char's | 40 | 760 |
4 | none | 4 | 8 | 40 char's | 40 | 960 |
5 | none | 4 | 16 | 40 char's | 40 | 480 |
6 | 1 | 5 | 8 | 20 char's | 20 | 480 |
7 | 2 | 5 | 16 | 20 char's | 20 | 240 |
8 | 3 | 4 | 8 | 40 | 10 | 240 |
9 | 4 | 2 | 4 | 80 | 10 | 480 |
A | 5 | 4 | 4 | 80 | 20 | 960 |
B | 6 | 2 | 2 | 160 | 20 | 1920 |
C | none | 2 | 1 | 160 | 20 | 3840 |
D | 7 | 4 | 2 | 160 | 40 | 3840 |
E | none | 4 | 1 | 160 | 40 | 7680 |
F | 8 | 2 | 1 | 320 | 40 | 7680 |
Pixel Value | Color | Bits Received |
0 | COLBG | 00 |
1 | COLPF0 | 00 |
2 | COLPF1 | 01 |
3 | COLPF2 | 10 |
C0 (text only) | COLPF3 | 11 |
DLI | Number of scan lines to skip - 1 | 0 |
0 | 1 |
The following two bytes specify the starting address of the rest of the display list. Note that a display list cannot cross a 1K boundary unless this instruction is used.
4 | 1 |
The following two bytes specify the starting address of the display list.
DLI | LMS | VScroll | HScroll | ANTIC Mode (2-F) |
DLI: If display list interrupts are enabled and this bit is set, ANTIC will trigger a NMI during the last scan line of this mode line.
LMS: The following two bytes specify the starting address of the screen data for this mode line. Note that screen data cannot cross a 4K boundary unless this bit is used.
VScroll: If set, ANTIC will fine scroll the mode line according to the VSCROL register. More accurately, if this is the first display list instruction that has VScroll set, ANTIC will behave as if it is at the VSCROL'th scan line of this mode line. As soon as ANTIC reaches a mode line that does not have VScroll set, it will show VSCROL+1 scan lines of that mode line, then continue on as normal. Note: if VSCROL is larger than the number of scan lines in the first scrolled mode line, ANTIC will add 16 scan lines to the original mode line count. In other words, the remaining scan line count will be ((scan lines / mode line) - VSCROL) MOD 16, with 0 counting as 16 scan lines. Until the scan line count reaches 0, ANTIC will repeat the display of the same mode line. If this is a text mode 2 or 3 line, the first two scan lines will have font data for mode 3 lines 9 and 10 (blank for most characters, top two lines for lowercase letters), which corresponds with the VSCROL value. The next scan line shows the font data for line 3, indicating that ANTIC ignores bit 3 of the line count unless it's line 9 or 10. When ANTIC gets to the line that has VScroll cleared, it will show VSCROL+1 scan lines of that mode line, repeating that mode line if needed. Again, if this is a text mode 2 or 3 line and VSCROL >= 8, lines 9 and 10 will perform as in mode 3 and line 11 will wrap back to line 3.
HScroll: If set, ANTIC will fine scroll the mode line according to the HSCROL register. Also, the amount of screen data used for this line changes depending on the playfield width: if using a narrow playfield, the bytes required for a normal playfield are taken; if using a normal playfield, the bytes required for a wide playfield are taken; if using a wide playfield, the bytes taken does not change.