TIA write registers

$00    VSYNC    vertical sync on or off                        bit 1
$01    VBLANK   blank the picture; latch and dump the inputs   bit 1 blank, bit 6 latch, bit 7 dump
$02    WSYNC    stop the processor until the next scanline     any value
$03    RSYNC    reset the horizontal counter — test equipment only any value
$04    NUSIZ0   number and size of player 0, size of missile 0 bits 0-2 player, bits 4-5 missile
$05    NUSIZ1   the same for player 1 and missile 1            bits 0-2 player, bits 4-5 missile
$06    COLUP0   colour of player 0 and missile 0               bits 1-7
$07    COLUP1   colour of player 1 and missile 1               bits 1-7
$08    COLUPF   colour of the playfield and the ball           bits 1-7
$09    COLUBK   colour of the background                       bits 1-7
$0A    CTRLPF   playfield and ball control                     bit 0 reflect, bit 1 score, bit 2 priority, bits 4-5 ball size
$0B    REFP0    draw player 0 back to front                    bit 3
$0C    REFP1    draw player 1 back to front                    bit 3
$0D    PF0      playfield, columns 0 to 3                      bits 4-7, bit 4 leftmost
$0E    PF1      playfield, columns 4 to 11                     bits 0-7, bit 7 leftmost
$0F    PF2      playfield, columns 12 to 19                    bits 0-7, bit 0 leftmost
$10    RESP0    put player 0 where the beam is                 any value
$11    RESP1    put player 1 where the beam is                 any value
$12    RESM0    put missile 0 where the beam is                any value
$13    RESM1    put missile 1 where the beam is                any value
$14    RESBL    put the ball where the beam is                 any value
$15    AUDC0    waveform of channel 0                          bits 0-3
$16    AUDC1    waveform of channel 1                          bits 0-3
$17    AUDF0    frequency divider of channel 0                 bits 0-4
$18    AUDF1    frequency divider of channel 1                 bits 0-4
$19    AUDV0    volume of channel 0                            bits 0-3
$1A    AUDV1    volume of channel 1                            bits 0-3
$1B    GRP0     the eight pixels of player 0                   bits 0-7, bit 7 leftmost
$1C    GRP1     the eight pixels of player 1                   bits 0-7, bit 7 leftmost
$1D    ENAM0    missile 0 on or off                            bit 1
$1E    ENAM1    missile 1 on or off                            bit 1
$1F    ENABL    the ball on or off                             bit 1
$20    HMP0     how far player 0 moves at the next HMOVE       bits 4-7, signed, +7 to -8
$21    HMP1     the same for player 1                          bits 4-7
$22    HMM0     the same for missile 0                         bits 4-7
$23    HMM1     the same for missile 1                         bits 4-7
$24    HMBL     the same for the ball                          bits 4-7
$25    VDELP0   delay player 0 by one scanline                 bit 0
$26    VDELP1   delay player 1 by one scanline                 bit 0
$27    VDELBL   delay the ball by one scanline                 bit 0
$28    RESMP0   lock missile 0 to the middle of player 0       bit 1
$29    RESMP1   lock missile 1 to the middle of player 1       bit 1
$2A    HMOVE    apply all five motion registers                any value
$2B    HMCLR    set all five motion registers to nought        any value
$2C    CXCLR    clear all the collision latches                any value

TIA read registers

$00    CXM0P    missile 0 hit player 1 (bit 7) or player 0 (bit 6)
$01    CXM1P    missile 1 hit player 0 (bit 7) or player 1 (bit 6)
$02    CXP0FB   player 0 hit the playfield (bit 7) or the ball (bit 6)
$03    CXP1FB   player 1 hit the playfield (bit 7) or the ball (bit 6)
$04    CXM0FB   missile 0 hit the playfield (bit 7) or the ball (bit 6)
$05    CXM1FB   missile 1 hit the playfield (bit 7) or the ball (bit 6)
$06    CXBLPF   the ball hit the playfield (bit 7)
$07    CXPPMM   the two players hit each other (bit 7), the two missiles (bit 6)
$08    INPT0    paddle 0 (bit 7)
$09    INPT1    paddle 1 (bit 7)
$0A    INPT2    paddle 2 (bit 7)
$0B    INPT3    paddle 3 (bit 7)
$0C    INPT4    the fire button in the left port (bit 7; nought is pressed)
$0D    INPT5    the fire button in the right port (bit 7; nought is pressed)

RIOT

$0080-$00FF    RAM          a hundred and twenty-eight bytes, and the stack lives in the top of them
$0180-$01FF    (the stack)  the same hundred and twenty-eight bytes, seen again where the processor puts its stack
$0280          SWCHA        the two joystick ports: bits 7-4 the left, bits 3-0 the right
$0281          SWACNT       which bits of SWCHA are outputs — nought for a joystick
$0282          SWCHB        the console switches
$0283          SWBCNT       which bits of SWCHB are outputs — nought
$0284          INTIM        what is left on the timer
$0285          TIMINT       bit 7 is set once the timer has passed zero
$0294          TIM1T        start the timer, one tick every processor cycle
$0295          TIM8T        one tick every eight cycles
$0296          TIM64T       one tick every sixty-four cycles
$0297          T1024T       one tick every one thousand and twenty-four cycles
