Reference cards
Colors |
References
Book Mapping The Atari - Revised Edition (article Memory Map)Description
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, 240The 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 LightestWhen 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
SHADOW REG. DECIMAL (HEX) |
HARDWARE REG. DECIMAL (HEX) |
LABEL | DESCRIPTION |
704 ($2C0) | 53266 ($D012) | PCOLR0 | 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. |
705 ($2C1) | 53267 ($D013) | PCOLR1 | Color of player and missile 1 |
706 ($2C2) | 53268 ($D014) | PCOLR2 | Color of player and missile 2 |
707 ($2C3) | 53269 ($D015) | PCOLR3 | Color of player and missile 3. When the four missiles are combined to make a fifth player, it takes on the color in location 711 (COLOR3). |
708 ($2C4) | 53270 ($D016) | COLOR0 | 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. |
709 ($2C5) | 53271 ($D017) | COLOR1 | 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. |
710 ($2C6) | 53272 ($D018) | COLOR2 | 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. |
711 ($2C7) | 53273 ($D019) | COLOR3 | The same as the above but for playfield three. Also, the color for GR.1 and GR.2 inverse lowercase letters. |
712 ($2C8) | 53274 ($D01A) | COLOR4 | 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. |
/ | 763 ($2FB) | ATACHR | 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). |
/ | 765 ($2FD) | FILDAT | Color data for the fill region in the XIO FILL command |
/ | 53266 ($D012) | COLPM0 | 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). |
/ | 53267 ($D013) | COLPM1 | Color and luminance of player and missile 1 (705) |
/ | 53268 ($D014) | COLPM2 | Color and luminance of player and missile 2 (706) |
/ | 53269 ($D015) | COLPM3 | Color and luminance of player and missile 3 (707) |
/ | 53270 ($D016) | COLPF0 | Color and luminance of playfield zero (708) |
/ | 53271 ($D017) | COLPF1 | Color and luminance of playfield one (709) |
/ | 53272 ($D018) | COLPF2 | Color and luminance of playfield two (710) |
/ | 53273 ($D019) | COLPF3 | Color and luminance of playfield three (711) |
/ | 53274 ($D01A) | COLBK | Color and luminance of the background (BAK) (712) |