Peek / Poke addresses

PEEK/POKE ADDRESSES FREQUENTLY USED (multi-byte values are LSB-MSB)





---------+--------+--------+-------------------------------------------
Label |Decimal | Hex | Description
---------+--------+--------+-------------------------------------------
DOSVEC 10-11 A-B Start vector for disk software,
normally to start of DUP.SYS routine
POKMSK 16 10 POKEY interrupt shadow. To disable BREAK
key, poke this and 53774 ($D20E) w/ 112.
BIT DECIMAL ENABLED INTERRUPT
7 128 break key
6 64 "other key"
5 32 serial input data ready
4 16 serial output data required
3 8 serial out xmit finished
2 4 POKEY timer 4
1 2 POKEY timer 2
0 1 POKEY timer 1
RTCLOCK 18-20 12-14 24-bit TV frame counter/real-time clock
SOUNDR 65 41 Noisy I/O flag: 0=quiet, default=3
ATTRACT 77 4D 0 to suppress attract mode, 128 to start;
incremented every time loc. 19 increments
LMARGIN 82 52 Left screen margin, default 2
RMARGIN 83 53 Right screen margin, default 39
GRMODE 87 57 (BASIC) Graphics mode number
RAMTOP 106 6A Top of RAM in 256-byte pages
STOPLIN 186-7 BA-B Line number of STOP or TRAP (BASIC)
ERRSAV 195 C3 (BASIC) Error number
FR0 212-3 D4-5 Value returned by USR (BASIC)

VBREAK 518-9 0206-7 Software break vector for 6502 BRK instruction
SDMCTL 559 022F Shadow for DMA control register
Playfield size: 1=narrow, 2=standard,
3=wide. Missile DMA=4, Player DMA=8.
Player resolution: 0=double line,
16=single line.
DMA enable=32
SDLSTL 560-1 0230-1 Points to display list
COLDST 580 0244 Nonzero = reboot when RESET pressed

KEYDIS 621 026D 0=keyboard enabled, 255=disabled (XL/XE)
FINE 622 026E 0=course scroll, 255=fine scroll (XL/XE)

GPRIOR 623 026F Player/Missile/PlayField priority:
1 = P0-3, PF0-3, BAK
2 = P0-1, PF0-2, P2-3, BAK
4 = PF0-3, P0-3, BAK
8 = PF0-1, P0-3, PF2-3, BAK
16 = allow 5th player (from missiles)
32 = allow 3rd color

PADDL0-7 624-631 0270-7 values of paddles 0-7, 0-228
STICK0-3 632-5 0278-B values of joysticks 0-3
PTRIG0-7 636-643 027C-0283 values of paddle buttons 0-7
STRIG0-3 644-7 0284-7 values of joystick triggers 0-3

TXTROW 656 0290 Text cursor row
TXTCOL 657-8 0291-2 Text cursor column
INVFLG 694 02B6 Inverse character flag, XOR\'ed w/ATASCII code
0=normal, 128=inverse; other values
result in weirder stuff
SHFLOK 702 02BE 0=lowercase (no shift), 64=uppercase (shift)
128=control key
BOTSCR 703 02BF Number of text rows available for printing

PCOLR0 704 02C0 Color of player/missile 0
PCOLR1 705 02C1 Color of player/missile 1
PCOLR2 706 02C2 Color of player/missile 2
PCOLR3 707 02C3 Color of player/missile 3
PF0 708 02C4 Color register 0
PF1 709 02C5 Color register 1
PF2 710 02C6 Color register 2
PF3 711 02C7 Color register 3
BAK 712 02C8 Color register 4

KRPDEL 729 02D9 Jiffies before key begins repeating (XL/XE)
0=no repeat
KEYREP 730 02DA Jiffies between key repeats (XL/XE)
0=repeat only once
NOCLIK 731 02DB Non-zero=no key click (XL/XE)
HELPFG 732 02DC HELP key status: 17=HELP pressed alone,
81=SHIFT-HELP, 145=CTRL-HELP;
must be manually cleared. (XL/XE)

RUNAD 736-7 02E0-1 Run address of binary file
INITAD 738-9 02E2-3 Initialization address of binary file
MEMTOP 741-2 02E5-6 Top of free memory, below screen memory
MEMLO 743-4 02E7-8 Bottom of free memory

CRSINH 752 02F0 Cursor inhibit: 0=on, otherwise off
CHACT 755 02F3 Character mode register, controls how
characters are displayed:
VALUE INVERSE CHARS ORIENTATION CURSOR
0 inverse upright absent
1 blank upright absent
2 normal upright transparent
3 solid upright opaque
4 inverse inverted absent
5 blank inverted absent
6 normal inverted transparent
7 solid inverted opaque
CHBAS 756 02F4 Pointer to page of character set (even):
default 224; 226=lowercase/graphics;
204=international (XL/XE)
CH 764 02FC Keyboard code of last key pressed
(255 to clear)
FILLDAT 765 02FD Color data for XIO FILL command
DSPFLG 766 02FE 0=control characters do their function,
otherwise control characters display
as characters (as if ESC pressed first)
SSFLAG 767 02FF Start/stop display flag: 255=stop, 0=go;
normally manipulated with CTRL-1


HPOSP0 53248 D000 (W) Horizontal position of player 0
M0PF " " (R) Missile 0/playfield collision
HPOSP1 53249 D001 (W) Horizontal position of player 1
M1PF " " (R) Missile 1/playfield collision
HPOSP2 53250 D002 (W) Horizontal position of player 2
M2PF " " (R) Missile 2/playfield collision
HPOSP3 53251 D003 (W) Horizontal position of player 3
M3PF " " (R) Missile 3/playfield collision
HPOSM0 53252 D004 (W) Horizontal position of missile 0
P0PF " " (R) Player 0/playfield collision
HPOSM1 53253 D005 (W) Horizontal position of missile 1
P1PF " " (R) Player 1/playfield collision
HPOSM2 53254 D006 (W) Horizontal position of missile 2
P2PF " " (R) Player 2/playfield collision
HPOSM3 53255 D007 (W) Horizontal position of missile 3
P3PF " " (R) Player 3/playfield collision
SIZEP0 53256 D008 (W) Size of player 0, 1=2X, 3=4X
M0PL " " (R) Missile 0 to player collision
SIZEP1 53257 D009 (W) Size of player 1, 1=2X, 3=4X
M1PL " " (R) Missile 1 to player collision
SIZEP2 53258 D00A (W) Size of player 2, 1=2X, 3=4X
M2PL " " (R) Missile 2 to player collision
SIZEP3 53259 D00B (W) Size of player 3, 1=2X, 3=4X
M3PL " " (R) Missile 3 to player collision
SIZEM 53260 D00C (W) Missile size, 1=2X, 3=4X
P0PL " " (R) Player 0 to player collision
P1PL 53261 D00D (R) Player 1 to player collision
P2PL 53262 D00E (R) Player 2 to player collision
P3PL 53262 D00F (R) Player 3 to player collision

GRACTL 53277 D01D (W) 1=Missile DMA, 2=Player DMA
HITCLR 53278 D01E (W) clear collision registers
PMBASE 54279 D407 (W) Player/Missile base address

WSYNC 54282 D40A (W) Wait for horizontal sync
VCOUNT 54283 D40B (R) Vertical TV scan line counter
NMIEN 54286 D40E (W) Non-maskable interrupt enable
(192 for DLI)