- Hi-res print-out version of Programmer's Card (Side A)
- Hi-res print-out version of Programmer's Card (Side B)
PROGRAMMER'S CARD |
---|
Hardware Register | OS Shadow | |||||
---|---|---|---|---|---|---|
Address | address | |||||
Name | Description | Hex | Dec | Name | Hex | Dec |
ALLPOT AUDC1 AUDC2 AUDC3 AUDC4 |
Read 8 line Pot Port State Audio Channel 1 Control Audio Channel 2 Control Audio Channel 3 Control Audio Channel 4 Control |
D208 D201 D203 D205 D207 |
53768 53761 53763 53765 53767 |
|
|
|
AUDCTL AUDF1 AUDF2 AUDF3 AUDF4 |
Audio Control Audio Channel 1 Frequency Audio Channel 2 Frequency Audio Channel 3 Frequency Audio Channel 4 Frequency |
D208 D200 D202 D204 D206 |
53768 53760 53762 53764 53766 |
|
|
|
CHACTL CHBASE COLBK COLPF0 COLPF1 |
Character Control Character base address Color Luminance of Background Color Luminance of Playfield 0 Color Luminance of Playfield 1 |
D401 D409 D01A D016 D017 |
54273 54281 53274 53270 53271 |
CHART CHBAS COLOR4 COLOR0 COLOR1 |
2F3 2F4 2C8 2C4 2C5 |
755 756 712 708 709 |
COLPF2 COLPF3 COLPM0 COLPM1 COLPM2 |
Color Luminance of Playfield 2 Color Luminance of Playfield 3 Color Luminance of Player-Missile 0 Color Luminance of Player-Missile 1 Color Luminance of Player-Missile 2 |
D018 D019 D012 D013 D014 |
53272 53273 53266 53267 53268 |
COLOR2 COLOR3 PCOLR0 PCOLR1 PCOLR2 |
2C6 2C7 2C0 2C1 2C2 |
710 711 704 705 706 |
COLPM3 CONSOL DLISTH DLISTL DMACTL |
Color Luminance of Player-Missile 3 Console Switch Port Display List Pointer (high Byte) Display List Pointer (low Byte) Direct Memory Access (DMA) Control |
D015 D01F D403 D402 D400 |
53269 53279 54275 54274 54272 |
PCOLR3 Set to 8 SDLSTH SDLSTL SDMCTL |
2C3 during 231 230 224 |
707 VBLANK 561 560 559 |
GRACTL GRAFM GRAFP0 GRAFP1 GRAFP2 |
Graphic Control Graphics for all Missiles Graphics for Player 0 Graphics for Player 1 Graphics for Player 2 |
D01D D011 D00D D00E D00F |
53277 53265 53261 53262 53263 |
|
|
|
GRAFP3 HITCLR HPOSM0 HPOSM1 HPOSM2 |
Graphics for Player 3 Colission Clear Horizontal Position of Missile 0 Horizontal Position of Missile 1 Horizontal Position of Missile 2 |
D010 D01E D004 D005 D006 |
53264 53278 53252 53253 53254 |
|
|
|
HPOSM3 HPOSP0 HPOSP1 HPOSP2 HPOSP3 |
Horizontal Position of Missile 3 Horizontal Position of Player 0 Horizontal Position of Player 1 Horizontal Position of Player 2 Horizontal Position of Player 3 |
D007 D000 D001 D002 D003 |
53255 53248 53249 53250 53251 |
|
|
|
HSCROL IRQEN IRQST KBCODE M0PF |
Horizontal Scroll Interrupt Request (IRQ) Enable IRQ Status Keyboard Code Missile 0 to Playfield Collisions |
D404 D20E D20E D209 D000 |
54279 53774 53774 53769 53248 |
POKMSK CH |
10 2FC |
16 764 |
M0PL M1PF M1PL M2PF M2PL |
Missile 0 to Player Collisions Missile 1 to Playfield Collisions Missile 1 to Player Collisions Missile 2 to Playfield Collisions Missile 2 to Player Collisions |
D008 D001 D009 D002 D00A |
53256 53249 53257 53250 53258 |
|
|
|
M3PF M3PL NMIEN NMIRES NMIST |
Missile 3 to Playfield Collisions Missile 3 to Player Non-Maskable Interrupt (NMI) Enable NMI reset NMI Status |
D003 D00B D40E D40F D40F |
53251 53259 54286 54287 54287 |
Set to $40 by IRQ code written to by NMI code read by NMI code |
||
POPF POPL P1PF P1PL P2PF |
Player 0 to Playfield Collisions Player 0 to Player Collisions Player 1 to Playfield Collisions Player 1 to Player Collisions Player 2 to Playfield Collisions |
D004 D00C D005 D00D D006 |
53252 53260 53253 53261 53254 |
|
|
|
P2PL P3PF P3PLPF PACTL PAL |
Player 2 to Player Collisions Player 3 to Playfield Collisions Player 3 to Player Collisions Port A Control PAL/NTSC indicator |
D00E D007 D00F D302 D014 |
53262 53255 53263 54018 53268 |
Set to $3C by IRQ Code |
||
PBCTL | Port B Control | D303 | 54019 | Set to $3C by IRQ Code | ||
PENH PENV PMBASE PORTA |
Light Pen Horizontal Position Light Pen Vertical Position Player Missile Base Address Port A |
D303 D40C D40D D300 |
54284 54285 54279 54016 |
LPENH LPENV STICK0,1 |
234 235 278,279 |
564 565 632,633 |
PORTB POT0 POT1 POT2 POT3 |
Port B Pot 0 Pot 1 Pot 2 Pot 3 |
D301 D200 D201 D202 D203 |
54017 53760 53761 53762 53763 |
STICK1,3 PADDL0 PADDL1 PADDL2 PADDL3 |
27A,27B 270, 271 272 273 |
634,635 624 625 626 627 |
POT4 POT5 POT6 POT7 |
Pot 4 Pot 5 Pot 6 Pot 7 (right paddle controller) |
D204 D205 D206 D207 |
53764 53765 53766 53767 |
PADDL4 PADDL5 PADDL6 PADDL7 |
274 275 276 277 |
628 629 630 631 |
POTGO | Start POT Scan Sequence | D20B | 53771 | WRITTEN DURING VBLANK | ||
PRIOR RANDOM SERIN SEROUT SIZEM |
Priority Select Random number generator Serial Port Input Serial Port Output Sizes for all missiles |
D01B D20A D20E D20D D00C |
53275 53770 53774 53773 53260 |
GPRIOR |
26F |
623 |
SIZEP0 SIZEP1 SIZEP2 SIZEP3 SKCTL |
Size of Player 0 Size of Player 1 Size of Player 2 Size of Player 3 Serial Port Control |
D008 D009 D00A D00B D20F |
53256 53257 53258 53259 53775 |
SSKCTL |
232 |
562 |
SKREST SKSTAT STIMER TRIG0 TRIG1 |
Reset Serial Port Status (SKSTAT) Serial Port Status Start Timer Joystick Controller Trigger 0 Joystick Controller Trigger 1 |
D20A D20F D209 D010 D011 |
53770 53775 53769 53264 53265 |
STRIG0 STRIG1 |
284 285 |
644 645 |
TRIG2 TRIG3 VCOUNT VDELAY VSCROL |
Joystick Controller Trigger 2 Joystick Controller Trigger 3 Vertical Line Counter Vertical Delay Vertical Scroll |
D012 D013 D40B D01C D405 |
53266 53267 54283 53276 54277 |
STRIG2 STRIG3 |
286 287 |
646 647 |
WSYNC |
Wait for Horizontal Sync |
D40A |
54282 |
Used by Keyboard click routine |
|
ANTIC MODES | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ANTIC MODE # | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
OS MODE # | 0 | - | - | - | 1 | 2 | 3 | 4 | 5 | 6 | - | 7 | - | 8 |
DISPLAY TYPE | CHAR | CHAR | CHAR | CHAR | CHAR | CHAR | MAP | MAP | MAP | MAP | MAP | MAP | MAP | MAP |
SCAN LINES | 8 | 10 | 8 | 16 | 8 | 16 | 8 | 4 | 4 | 2 | 1 | 2 | 1 | 1 |
COLOR CLOCKS | 4 | 4 | 4 | 4 | 8 | 8 | 4 | 2 | 2 | 1 | 1 | 1 | 1 | 1/2 |
PIXELS/LINE | 40 | 40 | 40 | 40 | 20 | 20 | 40 | 80 | 80 | 160 | 160 | 160 | 160 | 320 |
BYTES/LINE | 40 | 40 | 40 | 40 | 20 | 20 | 10 | 10 | 20 | 20 | 20 | 40 | 40 | 40 |
# OF COLORS | 2.5 | 2.5 | 5 | 5 | 5 | 5 | 4 | 2 | 2 | 2 | 2 | 4 | 4 | 2 |
BYTES/SCREEN | 960 | 800 | 960 | 480 | 480 | 240 | 240 | 480 | 960 | 1920 | 3840 | 3840 | 7680 | 7680 |
HIGH ORDER INSTRUCTION BITS: | SPECIAL INSTRUCTION CODES: | |||||||||||||
D7: display list interrupt | 00-70 blank 1 through 7 scan lines | |||||||||||||
D6: load memory scan register | 01 JMP: jump (over 1K boundary) | |||||||||||||
D5: vertical scroll enable | 41 JVB: jump and wait for vblank | |||||||||||||
D4: horizontal scroll enable | SPECIAL INSTRUCTION CODES: |
USEFUL OS EQUATES | ||
---|---|---|
LABEL | ADDRESS | DESCRIPTION |
PAGE ZERO | ||
DOSVEC | 0A | DOS vector |
DOSINI | 0C | warm start address |
RTCLOK | 12 | real-time clock, 3 bytes |
ATTRACT | 4D | attract mode flag |
DRKMSK | 4E | dark mask for attract |
COLRSH | 4F | scrambles color for attract |
SAVMSC | 58 | points to beginning of screen data |
PAGE TWO | ||
VDSLST | 200 | display list interrupt vector |
VPRCED | 202 | proceed line IRQ vector |
VINTER | 204 | interrupt line IRQ vector |
VBREAK | 206 | software break (00) IRQ vector |
VKEYBD | 208 | keyboard IRQ vector |
VVBLKI | 222 | immediate vblank interrupt vector |
VVBLKD | 224 | deferred vblank interrupt vector |
ROM VECTORS | ||
EDITRV | E400 | E: device handler |
SCRENV | E410 | S: device handler |
KEYBDV | E420 | K: device handler |
PRINTV | E430 | P: device handler |
CASETV | E440 | C: device handler |
DISKIV | E450 | D: device handler |
DISKINV | E453 | disk interface |
CIOV | E456 | central input-output vector |
SIOV | E459 | serial input-output vector |
SETVBV | E45C | routine for setting vectors |
SYSVBV | E45F | vertical blank routine vector |
XITVBV | E462 | exit vertical blank routines |
SIOINV | E465 | serial input-output initialization |
SENDEV | E468 | send enable routine |
INTINV | E46B | interrupt handler initialization |
CIOINV | E46E | CIO initialization |
BLKBDV | E471 | blackboard mode (memo pad) |
WARMSV | E474 | warm start entry point |
COLDSV | E477 | cold start entry point |
RBLOKV | E47A | cassette read block vector |
CSOPIV | E47D | cassette open for input vector |
IOCB STRUCTURE | |||
---|---|---|---|
RELATIVE ADDRESS |
LABEL | DESCRIPTION | SET BY |
0 | ICHID | handler ID | CIO on OPEN |
1 | ICDNO | device number | CIO on OPEN |
2 | ICCMD | I/O command byte | user |
3 | ICSTA | status (errors) | CIO on return |
4 | ICBAL | buffer address (low) | user |
5 | ICBAH | buffer address (high) | user |
6 | ICPTL | put character pointer | CIO |
7 | ICPTH | put character pointer | CIO |
8 | ICBLL | buffer length/byte count | user/CIO |
9 | ICBLH | buffer length/byte count | user/CIO |
A | ICAX1 | D2=read, D3=write on OPEN | user |
B | ICAX2 | auxilliary information | user |
C-F | ICAX3-ICAX6 | auxilliary information | CIO |
BIT ASSIGNMENTS FOR SELECTED HARDWARE REGISTERS |
---|
REGISTER | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
AUDCX | distortion |
volume only bit |
volume | |||||
AUDCTL |
17-bit poly changes into 9-bit poly |
clock Ch 1 w/ 1.79 Mhz not 64 Khz |
clock Ch 3 w/ 1.79 Mhz not 64 Khz |
clock Ch 2 w/ Ch 1 not 64 Khz |
clock Ch 4 w/ Ch 3 not 64 Khz |
hi-pass filter in Channel 1 |
hi-pass filter in Channel 3 |
use 15 Khz not 64 Khz |
CHACTL |
vertical reflect |
video invert |
video blank |
|||||
CONSOL | speaker | option | select | start | ||||
DMACTL |
display list instruction DMA enable |
1=1-line PM 0=2-line PM |
enable player DMA |
enable missile DMA |
playfield width | |||
GRACTL |
latch TRIG-3 |
enable players |
enable missiles |
|||||
IRQEN (IRQST) |
BREAK key |
other key |
serial input data ready |
serial output data needed |
SOTF |
timer 4 |
timer 2 |
timer 1 |
NMIEN |
display list interrupt |
vertical blank interrupt |
||||||
NMIST | " | " |
SYSTEM RESET |
|||||
PRIOR | GTIA mode selection |
multiple color players |
fifth player enable |
PF0-PF1 P0-P3 PF2-PF3 |
PF0-PF3 P0-P3 - - - |
P0-P1 PF0-PF3 P2-P3 |
P0-P3 PF0-PF3 - - - |
|
PORTA,B | right | left | back | forward | right | left | back | forward |
Return to Table of Contents | Previous Chapter | Next Chapter