APPENDIX A HARDWARE REGISTERS Register Shadow Name Description Address Name Address ---------------------------------------------------------------------- ALLPOT game paddle ready indicators $D208 53768 AUDC1 Audio channel 1 control $D201 53761 AUDC2 Audio channel 2 control $D203 53763 AUDC3 Audio channel 3 control $D205 53765 AUDC4 Audio channel 1 control $D207 53767 AUDCTL general audio control $D208 53768 AUDF1 Audio frequency 1 control $D200 53760 AUDF2 Audio frequency 2 control $D202 53762 AUDF3 Audio frequency 3 control $D204 53764 AUDF4 Audio frequency 4 control $D206 53766 CHACTL character control $D401 54273 CHART $02F3 755 CHBASE Address of character set / 256 $D409 54281 CHBAS $O2F4 756 COLBK color/brightness of setcolor 4 $D01A 53274 COLOR4 $02C8 712 COLPF0 Color/brightness of setcolor 0 $D016 53270 COLOR0 $02C4 708 COLPF1 color/brightness of setcolor 1 $D017 53271 COLOR1 $02C5 709 COLPF2 color/brightness of setcolor 2 $DO18 53272 COLOR2 $02C6 710 COLPF3 color/brightness of setcolor 3 $DO19 53273 COLOR3 $02C7 711 COLPM0 color/brightness, player/missile 0 $D012 53266 PCOLR0 $02C0 704 COLPM1 color/brightness, player/missile 1 $DO13 53267 PCOLR1 $02C1 705 COLPM2 color/brightness, player/missile 2 $DO14 53268 PCOLR2 $02C2 706 COLPM3 color/brightness, player/missile 3 $DO15 53269 PCOLR3 $02C3 707 CONSOL [START], [SELECT], [OPT.], speaker $D01F 53279 DLISTH display list pointer high byte $D403 54275 SDLSTH $0231 561 DLISTL display list pointer low byte $D402 54274 SDLSTL $0230 560 DMACTL Direct Memory access control (DMA) $D400 54272 SDMCTL $022F 559 GRACTL graphics control $D01D 53277 GRAFM missile graphics $D011 53265 GRAFP0 player 0 graphics $D00D 53261 GRAFP1 player 1 graphics $D00E 53262 GRAFP2 player 2 graphics $D00F 53263 GRAFP3 player 3 graphics $D010 53264 HITCLR clear collisions $D01E 54278 HPOSM0 horizontal position of missile 0 $D004 53252 HPOSM1 horizontal position of missile 1 $D005 53253 HPOSM2 horizontal position of missile 2 $D006 53254 HOPSM3 horizontal position of missile 3 $D007 53255 HPOSP0 horizontal position of player 0 $D000 53248 HPOSP1 horizontal position of player 1 $D001 53249 HPOSP2 horizontal position of player 2 $D002 53250 HPOSP3 horizontal position of player 3 $D003 53251 HSCROL horizontal scroll $D404 54276 IRQEN interrupt request enable (IRQ) $D20E 53774 POKMSK $0010 16 IRQST IRQ status $D20E 53774 KBCODE keyboard code $D209 53769 CH $O2FC 764 M0PF missile 0 to graphics collisions $D000 53248 M0PL missile 0 to player collisions $D008 53256 M1PF missile 1 to graphics collisions $D001 53249 M1PL missile 1 to player collisions $D009 53257 M2PF missile 2 to graphics collisions $D002 53250 M2PL missile 2 to player collisions $D00A 53258 M3PF missile 3 to graphics collisions $D003 53251 M3PL missile 3 to player collisions $D00B 53259 NMIEN non-maskable interrupt enable (NMI)$D40E 54286 NMIRES NMI reset $D40F 54287 NMIST NMI status $D40F 54287 P0PF player 0 to graphics collisions $D004 53252 P0PL player 0 to player collisions $D00C 53260 P1PF player 1 to graphics collisions $D005 53253 P1PL player 1 to player collisions $D00D 53261 P2PF player 2 to graphics collisions $D006 53254 P2PL player 2 to player collisions $D00E 53262 P3PF player 3 to graphics collisions $DOO7 53255 P3PL player 3 to player collisions $D00F 53263 PACTL port A control $D302 54018 PAL Europe/North America TV indicator $D014 53268 PBCLT port B control $D303 54019 PENH light pen horizontal position $D40C 54284 LPENH $0234 564 PENV light pen vertical position $D40D 54285 LPENV $0235 565 PMBASE player/missile address / 256 $D407 54279 PORTA port A $D300 54016 STICK0 $0278 632 STICK1 $0279 634 PORTB port B $D301 54017 STICK2 $027A 634 STICK3 $027B 635 POT0 game paddle 0 $D200 53760 PADDL0 $0270 624 POT1 game paddle 1 $D201 53761 PADDL1 $0271 625 POT2 game paddle 2 $D202 53762 PADDL2 $0272 626 POT3 game paddle 3 $D203 53763 PADDL3 $0273 627 POT4 game paddle 4 $D204 53764 PADDL4 $0274 628 POT5 game paddle 5 $D205 53765 PADDL5 $0275 629 POT6 game paddle 6 $D206 53766 PADDL6 $0276 630 POT7 game paddle 7 $D207 53767 PADDL7 $0277 631 POTGO start pot scan sequence $D20B 53771 PRIOR p/m priority and GTIA mode $D21B 53275 GPRIOR $026F 623 RANDOM random number generator $D20A 53770 SERIN serial port input $D20D 53774 SEROUT serial port output $D20D 53773 SIZEM missile size $D00C 53260 SIZEP0 player 0 size $D008 53256 SIZEP1 player 1 size $D009 53257 SIZEP2 player 2 size $D00A 53258 SIZEP3 player 3 size $D00B 53259 SKCTL serial port control $D20F 53775 SSKCTL $0232 563 SKREST reset serial port status $D20A 53770 SKSTAT serial port status $D20F 53775 STIMER start timer $D209 53769 TRIG0 joystick trigger 0 $D010 53264 STRIG0 $0284 644 TRIG1 joystick trigger 1 $D011 53265 STRIG1 $0285 645 TRIG2 joystick trigger 2 $D012 53266 STRIG2 $0286 646 TRIG3 joystick trigger 3 $D013 53267 STRIG3 $0287 647 VCOUNT vertical line counter $D40B 54283 VDELAY vertical delay $D01C 54276 VSCROL vertical scroll $D405 54277 WSYNC wait for horizontal sync $D40A 54282 NUMERICAL ORDER Registers sharing addresses are listed first when writen to, then when read from Register Shadow Name Description Address Name Address ---------------------------------------------------------------------- HPOSP0 horizontal position of player 0 $D000 53248 M0PF missile 0 to graphics collisions $D000 53248 HPOSP1 horizontal position of player 1 $D001 53249 M1PF missile 1 to graphics collisions $D001 53249 HPOSP2 horizontal position of player 2 $D002 53250 M2PF missile 2 to graphics collisions $D002 53250 HPOSP3 horizontal position of player 3 $D003 53251 M3PF missile 3 to graphics collisions $D003 53251 HPOSM0 horizontal position of missile 0 $D004 53252 P0PF player 0 to graphics collisions $D004 53252 HPOSM1 horizontal position of missile 1 $D005 53253 P1PF player 1 to graphics collisions $D005 53253 HPOSM2 horizontal position of missile 2 $D006 53254 P2PF player 2 to graphics collisions $D006 53254 HOPSM3 horizontal position of missile 3 $D007 53255 P3PF player 3 to graphics collisions $D007 53255 SIZEP0 player 0 size $D008 53256 M0PL missile 0 to player collisions $D008 53256 SIZEP1 player 1 size $D009 53257 M1PL missile 1 to player collisions $D009 53257 SIZEP2 player 2 size $D00A 53258 M2PL missile 2 to player collisions $D00A 53258 SIZEP3 player 3 size $D00B 53259 M3PL missile 3 to player collisions $D00B 53259 SIZEM missile size $D00C 53260 P0PL player 0 to player collisions $D00C 53260 GRAFP0 player 0 graphics $D00D 53261 P1PL player 1 to player collisions $D00D 53261 GRAFP1 player 1 graphics $D00E 53262 P2PL player 2 to player collisions $D00E 53262 GRAFP2 player 2 graphics $D00F 53263 P3PL player 3 to player collisions $D00F 53263 GRAFP3 player 3 graphics $D010 53264 TRIG0 joystick trigger 0 $D010 53264 STRIG0 $0284 644 GRAFM missile graphics $D011 53265 TRIG1 joystick trigger 1 $D011 53265 STRIG1 $0285 645 COLPM0 color/brightness, player/missile 0 $D012 53266 PCOLR0 $02C0 704 TRIG2 joystick trigger 2 $D012 53266 STRIG2 $0286 646 COLPM1 color/brightness, player/missile 1 $D013 53267 PCOLR1 $02C1 705 TRIG3 joystick trigger 3 $D013 53267 STRIG3 $0287 647 COLPM2 color/brightness, player/missile 2 $D014 53268 PCOLR2 $02C2 706 PAL Europe/North America TV indicator $D014 53268 COLPM3 color/brightness, player/missile 3 $D015 53269 PCOLR3 $02C3 707 COLPF0 Color/brightness of setcolor 0 $D016 53270 COLOR0 $02C4 708 COLPF1 color/brightness of setcolor 1 $D017 53271 COLOR1 $02C5 709 COLPF2 color/brightness of setcolor 2 $D018 53272 COLOR2 $02C6 710 COLPF3 color/brightness of setcolor 3 $D019 53273 COLOR3 $02C7 711 COLBK color/brightness of setcolor 4 $D01A 53274 COLOR4 $02C8 712 VDELAY vertical delay $D01C 54276 GRACTL graphics control $D01D 53277 HITCLR clear collisions $D01E 54278 CONSOL [START], [SELECT], [OPT.], speaker $D01F 53279 AUDF1 Audio frequency 1 control $D200 53760 POT0 game paddle 0 $D200 53760 PADDL0 $0270 624 AUDC1 Audio channel 1 control $D201 53761 POT1 game paddle 1 $D201 53761 PADDL1 $0271 625 AUDF2 Audio frequency 2 control $D202 53762 POT2 game paddle 2 $D202 53762 PADDL2 $0272 626 AUDC2 Audio channel 2 control $D203 53763 POT3 game paddle 3 $D203 53763 PADDL3 $0273 627 AUDF3 Audio frequency 3 control $D204 53764 POT4 game paddle 4 $D204 53764 PADDL4 $0274 628 AUDC3 Audio channel 3 control $D205 53765 POT5 game paddle 5 $D205 53765 PADDL5 $0275 629 AUDF4 Audio frequency 4 control $D206 53766 POT6 game paddle 6 $D206 53766 PADDL6 $0276 630 AUDC4 Audio channel 1 control $D207 53767 POT7 game paddle 7 $D207 53767 PADDL7 $0277 631 ALLPOT game paddle ready indicators $D208 53768 AUDCTL general audio control $D208 53768 KBCODE keyboard code $D209 53769 CH $O2FC 764 STIMER start timer $D209 53769 RANDOM random number generator $D20A 53770 SKREST reset serial port status $D20A 53770 POTGO start pot scan sequence $D20B 53771 SEROUT serial port output $D20D 53773 SERIN serial port input $D20D 53774 IRQEN interrupt request enable (IRQ) $D20E 53774 POKMSK $0010 16 IRQST IRQ status $D20E 53774 SKCTL serial port control $D20F 53775 SSKCTL $0232 563 SKSTAT serial port status $D20F 53775 PRIOR p/m priority and GTIA mode $D21B 53275 GPRIOR $026F 623 PORTA port A $D300 54016 STICK0 $0278 632 STICK1 $0279 633 PORTB port B $D301 54017 STICK2 $027A 634 STICK3 $027B 635 PACTL port A control $D302 54018 PBCTL port B control $D303 54019 DMACTL Direct Memory access control (DMA) $D400 54272 SDMCTL $022F 559 CHACTL character control $D401 54273 CHART $02F3 755 DLISTL display list pointer low byte $D402 54274 SDLSTL $0230 560 DLISTH display list pointer high byte $D403 54275 SDLSTH $0231 561 HSCROL horizontal scroll $D404 54276 VSCROL vertical scroll $D405 54277 PMBASE player/missile address / 256 $D407 54279 CHBASE Address of character set / 256 $D409 54281 CHBAS $O2F4 756 WSYNC wait for horizontal sync $D40A 54282 VCOUNT vertical line counter $D40B 54283 PENH light pen horizontal position $D40C 54284 LPENH $0234 564 PENV light pen vertical position $D40D 54285 LPENV $0235 565 NMIEN non-maskable interrupt enable (NMI)$D40E 54286 NMIRES NMI reset $D40F 54287 NMIST NMI status $D40F 54287 SHADOW REGISTER ORDER ALPHEBETICAL ORDER Register Shadow Name Description Address Name Address ---------------------------------------------------------------------- KBCODE keyboard code $D209 53769 CH $O2FC 764 CHACTL character control $D401 54273 CHART $02F3 755 CHBASE Address of character set / 256 $D409 54281 CHBAS $O2F4 756 COLBK color/brightness of setcolor 4 $D01A 53274 COLOR4 $02C8 712 COLPF0 Color/brightness of setcolor 0 $D016 53270 COLOR0 $02C4 708 COLPF1 color/brightness of setcolor 1 $D017 53271 COLOR1 $02C5 709 COLPF2 color/brightness of setcolor 2 $D018 53272 COLOR2 $02C6 710 COLPF3 color/brightness of setcolor 3 $D019 53273 COLOR3 $02C7 711 PRIOR p/m priority and GTIA mode $D21B 53275 GPRIOR $026F 623 PENH light pen horizontal position $D40C 54284 LPENH $0234 564 PENV light pen vertical position $D40D 54285 LPENV $0235 565 POT0 game paddle 0 $D200 53760 PADDL0 $0270 624 POT1 game paddle 1 $D201 53761 PADDL1 $0271 625 POT2 game paddle 2 $D202 53762 PADDL2 $0272 626 POT3 game paddle 3 $D203 53763 PADDL3 $0273 627 POT4 game paddle 4 $D204 53764 PADDL4 $0274 628 POT5 game paddle 5 $D205 53765 PADDL5 $0275 629 POT6 game paddle 6 $D206 53766 PADDL6 $0276 630 POT7 game paddle 7 $D207 53767 PADDL7 $0277 631 COLPM0 color/brightness, player/missile 0 $D012 53266 PCOLR0 $02C0 704 COLPM1 color/brightness, player/missile 1 $D013 53267 PCOLR1 $02C1 705 COLPM2 color/brightness, player/missile 2 $D014 53268 PCOLR2 $02C2 706 COLPM3 color/brightness, player/missile 3 $D015 53269 PCOLR3 $02C3 707 IRQEN interrupt request enable (IRQ) $D20E 53774 POKMSK $0010 16 DLISTH display list pointer high byte $D403 54275 SDLSTH $0231 561 DLISTL display list pointer low byte $D402 54274 SDLSTL $0230 560 DMACTL Direct Memory access control (DMA) $D400 54272 SDMCTL $022F 559 SKCTL serial port control $D20F 53775 SSKCTL $0232 563 PORTA port A $D300 54016 STICK0 $0278 632 STICK1 $0279 633 PORTB port B $D301 54017 STICK2 $027A 634 STICK3 $027B 635 TRIG0 joystick trigger 0 $D010 53264 STRIG0 $0284 644 TRIG1 joystick trigger 1 $D011 53265 STRIG1 $0285 645 TRIG2 joystick trigger 2 $D012 53266 STRIG2 $0286 646 TRIG3 joystick trigger 3 $D013 53267 STRIG3 $0287 647 NUMERICAL ORDER IRQEN interrupt request enable (IRQ) $D20E 53774 POKMSK $0010 16 DMACTL Direct Memory access control (DMA) $D400 54272 SDMCTL $022F 559 DLISTL display list pointer low byte $D402 54274 SDLSTL $0230 560 DLISTH display list pointer high byte $D403 54275 SDLSTH $0231 561 SKCTL serial port control $D20F 53775 SSKCTL $0232 563 PENH light pen horizontal position $D40C 54284 LPENH $0234 564 PENV light pen vertical position $D40D 54285 LPENV $0235 565 PRIOR p/m priority and GTIA mode $D21B 53275 GPRIOR $026F 623 POT0 game paddle 0 $D200 53760 PADDL0 $0270 624 POT1 game paddle 1 $D201 53761 PADDL1 $0271 625 POT2 game paddle 2 $D202 53762 PADDL2 $0272 626 POT3 game paddle 3 $D203 53763 PADDL3 $0273 627 POT4 game paddle 4 $D204 53764 PADDL4 $0274 628 POT5 game paddle 5 $D205 53765 PADDL5 $0275 629 POT6 game paddle 6 $D206 53766 PADDL6 $0276 630 POT7 game paddle 7 $D207 53767 PADDL7 $0277 631 PORTA port A $D300 54016 STICK0 $0278 632 STICK1 $0279 633 PORTB port B $D301 54017 STICK2 $027A 634 STICK3 $027B 635 TRIG0 joystick trigger 0 $D010 53264 STRIG0 $0284 644 TRIG1 joystick trigger 1 $D011 53265 STRIG1 $0285 645 TRIG2 joystick trigger 2 $D012 53266 STRIG2 $0286 646 TRIG3 joystick trigger 3 $D013 53267 STRIG3 $0287 647 COLPM0 color/brightness, player/missile 0 $D012 53266 PCOLR0 $02C0 704 COLPM1 color/brightness, player/missile 1 $D013 53267 PCOLR1 $02C1 705 COLPM2 color/brightness, player/missile 2 $D014 53268 PCOLR2 $02C2 706 COLPM3 color/brightness, player/missile 3 $D015 53269 PCOLR3 $02C3 707 COLPF0 Color/brightness of setcolor 0 $D016 53270 COLOR0 $02C4 708 COLPF1 color/brightness of setcolor 1 $D017 53271 COLOR1 $02C5 709 COLPF2 color/brightness of setcolor 2 $D018 53272 COLOR2 $02C6 710 COLPF3 color/brightness of setcolor 3 $D019 53273 COLOR3 $02C7 711 COLBK color/brightness of setcolor 4 $D01A 53274 COLOR4 $02C8 712 CHACTL character control $D401 54273 CHART $02F3 755 CHBASE Address of character set / 256 $D409 54281 CHBAS $O2F4 756 KBCODE keyboard code $D209 53769 CH $O2FC 764