When 14 documented graphic modes become 56 graphic mode
A brilliant article, written by Paul Chabot and published in "Antic" magazine, Vol. 3 No. 5, entitled "Unlocking the 56 graphic modes — Instant exploration of Atari's display styles" makes an incredible revelation: The Atari 8-bit computers actually have many more graphic modes than those listed and documented in the computer manuals.
Let's start at the beginning. When you take a closer look at the list of available graphic modes, you realise that all the modes we know today actually came about in 3 phases.
Phase 1: Atari 400/800 & CTIA
When the Atari 400/800 were initially launched at the end of 1979, with the CTIA graphics chip, the following graphics modes were available:
ANTIC mode (hexadecimal) | BASIC mode | Mode type | Columns x Rows | # of colours |
---|---|---|---|---|
2 | GR.0 | TEXT | 40 x 24 | 2 {1} |
3 | / | TEXT | 40 x 19 | 2 {1} |
4 | / | TEXT | 40 x 24 | 5 |
5 | / | TEXT | 40 x 12 | 5 |
6 | GR.1 | TEXT | 20 x 24 | 5 |
7 | GR.2 | TEXT | 20 x 12 | 5 |
8 | GR.3 | GRAPH | 40 x 24 | 4 |
9 | GR.4 | GRAPH | 80 x 48 | 2 |
A | GR.5 | GRAPH | 80 x 48 | 4 |
B | GR.6 | GRAPH | 160 x 96 | 2 |
C | / | GRAPH | 160 x 192 | 2 |
D | GR.7 | GRAPH | 160 x 96 | 4 |
E | / | GRAPH | 160 x 192 | 4 |
F | GR.8 | GRAPH | 320 x 192 | 2 {1} |
{1} 1 colour, 2 luminances
Phase 2: Atari 400/800 & GTIA
When the GTIA chip replaced the CTIA chip in 1982, 3 new graphics modes were added (GR.9-10-11):
ANTIC mode (hexadecimal) | GTIA mode | BASIC mode | Mode type | Columns x Rows | # of colours |
---|---|---|---|---|---|
2 | 0 | GR.0 | TEXT | 40 x 24 | 2 {1} |
3 | 0 | / | TEXT | 40 x 19 | 2 {1} |
4 | 0 | / | TEXT | 40 x 24 | 5 |
5 | 0 | / | TEXT | 40 x 12 | 5 |
6 | 0 | GR.1 | TEXT | 20 x 24 | 5 |
7 | 0 | GR.2 | TEXT | 20 x 12 | 5 |
8 | 0 | GR.3 | GRAPH | 40 x 24 | 4 |
9 | 0 | GR.4 | GRAPH | 80 x 48 | 2 |
A | 0 | GR.5 | GRAPH | 80 x 48 | 4 |
B | 0 | GR.6 | GRAPH | 160 x 96 | 2 |
C | 0 | / | GRAPH | 160 x 192 | 2 |
D | 0 | GR.7 | GRAPH | 160 x 96 | 4 |
E | 0 | / | GRAPH | 160 x 192 | 4 |
F | 0 | GR.8 | GRAPH | 320 x 192 | 2 {1} |
F | 1 | GR.9 | GRAPH | 80 x 192 | 16 {2} |
F | 2 | GR.10 | GRAPH | 80 x 192 | 9 |
F | 3 | GR.11 | GRAPH | 80 x 192 | 16 {3} |
{1} 1 colour, 2 luminances
{2} 1 colour, 16 luminances
{3} 16 colours of the same luminance
Phase 3: From Atari 1200XL and later
Finally, from the Atari 1200XL onwards, additional graphics modes that were available with ANTIC have become accessible directly in Atari BASIC (GR.12-15). In fact, only ANTIC mode 3 — a variation of ANTIC mode 2 (GR.0 in Atari BASIC) but with a 2-pixel descender — remains unavailable directly in Atari BASIC.
This is the complete list of all the graphics modes we know today:
ANTIC mode (hexadecimal) | GTIA mode | BASIC mode | Mode type | Columns x Rows | # of colours |
---|---|---|---|---|---|
2 | 0 | GR.0 | TEXT | 40 x 24 | 2 {1} |
3 | 0 | / | TEXT | 40 x 19 | 2 {1} |
4 | 0 | GR.12 | TEXT | 40 x 24 | 5 |
5 | 0 | GR.13 | TEXT | 40 x 12 | 5 |
6 | 0 | GR.1 | TEXT | 20 x 24 | 5 |
7 | 0 | GR.2 | TEXT | 20 x 12 | 5 |
8 | 0 | GR.3 | GRAPH | 40 x 24 | 4 |
9 | 0 | GR.4 | GRAPH | 80 x 48 | 2 |
A | 0 | GR.5 | GRAPH | 80 x 48 | 4 |
B | 0 | GR.6 | GRAPH | 160 x 96 | 2 |
C | 0 | GR.14 | GRAPH | 160 x 192 | 2 |
D | 0 | GR.7 | GRAPH | 160 x 96 | 4 |
E | 0 | GR.15 | GRAPH | 160 x 192 | 4 |
F | 0 | GR.8 | GRAPH | 320 x 192 | 2 {1} |
F | 1 | GR.9 | GRAPH | 80 x 192 | 16 {2} |
F | 2 | GR.10 | GRAPH | 80 x 192 | 9 |
F | 3 | GR.11 | GRAPH | 80 x 192 | 16 {3} |
{1} 1 colour, 2 luminances
{2} 1 colour, 16 luminances
{3} 16 colours of the same luminance
What happens if?
Paul Chabot, the author of the article, points out that the Atari BASIC GR.9-10-11 modes are in fact variations of the Atari BASIC GR.8 mode. These 4 modes are based on the same ANTIC F mode, with the variations offered by the GTIA 0-1-2-3 modes.
Hence the legitimate question: apart from ANTIC F, all the other graphics modes we know only use GTIA mode 0. But what happens if we explore GTIA modes 1-2-3 for all ANTIC modes, not just ANTIC F?
ANTIC mode (hexadecimal) | GTIA mode | BASIC mode | Mode type | Columns x Rows | # of colours |
---|---|---|---|---|---|
2 | 0 | GR.0 | TEXT | 40 x 24 | 2 {1} |
2 | 1 | / | TEXT | 40 x 24 | 8 ??? |
2 | 2 | / | TEXT | 40 x 24 | 8 ??? |
2 | 3 | / | TEXT | 40 x 24 | 8 ??? |
etc...
{1} 1 colour, 2 luminances
To see GTIA modes 0-1-2-3, simply use the classic GRAPHICS
instruction (abbreviated as GR.
) in Atari BASIC, followed by a POKE
instruction.
GTIA mode | POKE |
---|---|
0 | POKE 623,0 |
1 | POKE 623,64 |
2 | POKE 623,128 |
3 | POKE 623,192 |
What do these additional graphics modes look like? The programme initially proposed in Paul Chabot's article provides a visual answer to this question. Some modes are usable, others hardly at all, but they're all worth exploring.
For the video: Altirra emulator, Atari 1200XL, NTSC, 1982 OS rev. A, Atari BASIC Rev C. cartridge.
Download Paul-Chabot-56-modes-ALLMODES.BAS.zip to get: a textual .TXT version of the listing, to be printed on your current computer and retyped on the Atari. If you have a SIDE3, a FujiNet or any "SIO-to-<something>" device, you'll also find a .LST version NEW:ENTER "D1:ALLMODES.LST":RUN
, a .BAS version RUN "D1:ALLMODES.BAS"
and an .ATR diskette version (in Atari DOS 2.5 format, 130 KiB).
How to use the program:
- Use the number keys [0]-[8] to change the display mode. Keys [A]-[E] produce additional modes that are supported directly by the XL/XE series, but that require special programming to be used by 400/800 computers.
- Press [G] to cycle GTIA through its four states.
- The [S] key changes the memory area that gets mapped to the screen. Feel free to roam around and watch your Atari think by typing in addresses such as 1536, 53760, 53960, 0, and 40520.
- The [R] key gets you home again.
Follow-up question #1
Why don't the Atari BASIC GR.9-10-11 graphics modes offer variants with a 4-line text window as standard, like all the other Atari BASIC graphics modes?
Because the Atari BASIC GR.9-10-11 graphics modes rely on GTIA modes 1-2-3 respectively and that a text window in Atari BASIC GR.0 mode is based on GTIA mode 0, not 1-2-3.
Follow-up question #2
Very attentive readers will have noticed that these lists of graphic modes never offer ANTIC modes 0 and 1. Why is it so?
In fact, these "ANTIC modes" are instructions executed by ANTIC to build an image, with an internal program called the "Display List".
A "Display List" really describes how to build the image to display line by line, where to find the data to be displayed, etc. A "Display List" is automatically generated by Atari BASIC for all the text and graphic modes available in Atari BASIC. A "Display List" can also be built/modified by the user.
A "Display List" allows you to do extraordinary things, such as:
- Mix several text and graphic modes on the same screen,
- Choose line by line where to take the data to be displayed from RAM,
- Build vertical or horizontal scrolling, or both.
By asking the "Display List" to execute a very short program in machine language after drawing a line, you can also:
- Change colours on-the-fly while the image is being drawn,
- Reposition a sprite (players-missiles in Atari's vocabulary) while the image is being drawn,
- Change the character set (the font, as we would say today) while the image is being drawn.
By asking the "Display List" to execute a short program in machine language after drawing an image, you can also:
- Play music between each displayed image (50 times per second in PAL/SECAM or 60 times in NTSC),
- Load a file between each displayed image,
- Etc, etc.
To come back to the original question, the ANTIC 2 instruction is actually used to display a line (just one) in classic text mode (GR.0) with 40 columns. To obtain the Atari BASIC GR.0 text mode we are familiar with, a "Display List" created by the computer displays 24 times one line. 24 times the ANTIC 2 instruction to get the usual 24 lines of text.
But the ANTIC 0 and 1 instructions are not used to display a particular text or graphics mode.
The ANTIC 0 instruction requests to draw a black line, a blank line.
The ANTIC 1 instruction, "jump to location", warns that the next 2 digits of the "Display List" represent a RAM address that the "Display List" must branch to because it contains the rest of this "Display List".
Knowledge base article: kb-hardware-0005-atari-8bit-56-graphic-modes
REV. 003.