Book Mapping The Atari - Revised Edition (article Memory Map)
Locations 704 to 712 ($2C0 to $2C8) are the color registers for players,
missiles, and playfields. These are the RAM shadow registers for
locations 53266 to 53274 ($D012 to $D01A). For the latter, you can use
the SETCOLOR command from BASIC. For all registers you can
POKE the desired color into the location by using this formula:
COLOR = HUE * 16 + LUMINANCE
It is possible to get more colors in GR.8 than the one (and a half) that
Atari says is possible by using a technique called artifacting. There is a
small example of artifacting shown at location 710 ($2C6). See De Re
Atari, Your Atari 400/800, Creative Computing, June 1981, and
COMPUTE!, May 1982.
Here are the 16 colors the Atari produces, along with their POKE
values for the color registers. The POKE values assume a luminance of
zero. Add the luminance value to the numbers to brighten the color.
The color registers ignore BIT 0; that's why there are no "odd" values
for luminance, just even values.
Color Value Color Value
Black 0, 0 Medium blue 8, 128
Rust 1, 16 Dark blue 9, 144
Red-orange 2, 32 Blue-grey 10, 160
Dark orange 3, 48 Olive green 11, 176
Red 4, 64 Medium green 12, 192
Dk lavender 5, 80 Dark green 13, 208
Cobalt blue 6, 96 Orange-green 14, 224
Ultramarine 7, 112 Orange 15, 240
The bit use of the PCOLR and COLOR registers is as follows:
Bit 7 6 5 4 3 2 1 0
--color-- luminance unused
Grey 0 0 0 0 0 0 0 Darkest
Rust 0 0 0 1 0 0 1
etc. to: etc. to:
Orange 1 1 1 1 1 1 1 Lightest
When you enable the color overlap at location 623 ($26F), ANTIC
performs a logical OR on the overlap areas. For example:
01000010 Red, luminance two
OR 10011010 Darkblue,luminance ten
Result = 10011010 Dark green, luminance ten
Color palette memory address map
Color of player 0 and missile 0. Locations 704 to 707 are also called COLPM#
in some sources. In GTIA mode ten, 704 holds the background color (BAK; normally
held by 712). You cannot use the SETCOLOR commands to change the PCOLR registers;
color values must be POKEd into them.
||Color of player and missile 1
||Color of player and missile 2
Color of player and missile 3. When the four missiles are
combined to make a fifth player, it takes on the color in location
Color register zero, color of playfield zero, controlled by the
BASIC SETCOLOR command. In GRAPHICS 1 and GRAPHICS 2, this color is used for the
uppercase letters. You can change the values in all of the COLOR registers from BASIC
by using either the SETCOLOR command or a POKE.
The next four locations are the same as location 708 for the
different playfields and SETCOLOR commands. In GR.1 and
GR.2, this register stores the color for lowercase letters.
COLOR1 is also used to store the luminance value of the color
used in GR.0 and GR.8.
The same as above for playfield two; in GR.1 and GR.2, this
register stores the color of the inverse uppercase letters.
Used for the background color in GR.0 and GR.8. Both use COLOR1 for the luminance value.
The same as the above but for playfield three. Also, the color for
GR.1 and GR.2 inverse lowercase letters.
The same as the above but for the background (BAK) and border
color. In GTIA mode ten, 704 stores the background color (BAK),
while 712 becomes a normal color register.
Returns the last ATASCII character read or written or the value of
a graphics point. ATACHR is used in converting the ATASCII
code to the internal character code passed to or from CIO. It also
returns the value of the graphics point. The FILL and DRAW
commands use this location for the color of the line drawn,
ATACHR being temporarily loaded with the value in FILDAT,
location 765; $2FD. To force a color change in the line, POKE the
desired color number here (color * sixteen + luminance).
||Color data for the fill region in the XIO FILL command
Color and luminance of player and missile 0 (704). Missiles
share the same colors as their associated players except when
joined together to make a fifth player. Then they take on the same
value as in location 53733 ($D019; color register 3).
||Color and luminance of player and missile 1 (705)
||Color and luminance of player and missile 2 (706)
||Color and luminance of player and missile 3 (707)
||Color and luminance of playfield zero (708)
||Color and luminance of playfield one (709)
||Color and luminance of playfield two (710)
||Color and luminance of playfield three (711)
||Color and luminance of the background (BAK) (712)