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
Craig Lisowski
(clisowsk@mcs.kent.edu)