Atari 2600 programming
Harry Dodgson
dodgson at cs.wmich.edu
Sat Jan 28 03:11:45 AEST 1989
Atari 2600 Stella Memory Map
Write Address Registers
Addr Assy Name Bits Used Function
00 Vsync 0000 00x0 Vertical Sync Set-Clear
01 Vblank xx00 00x0 Vertical Blank Set-Clear
02 Wsync ---- ---- Wait for Horizontal Blank
03 Rsync ---- ---- Reset Horizontal Sync Counter
04 Nusiz0 00xx 0xxx Number-Size player/missle 0
05 Nusiz1 00xx 0xxx Number-Size player/missle 1
06 Colup0 xxxx xxx0 Color-Luminance Player 0
07 Colup1 xxxx xxx0 Color-Luminance Player 1
08 Colupf xxxx xxx0 Color-Luminance Playfield
09 Colubk xxxx xxx0 Color-Luminance Background
0A Ctrlpf 00xx 0xxx Control Playfield, Ball, Collisions
0B Refp0 0000 x000 Reflection Player 0
0C Refp1 0000 x000 Reflection Player 1
0D Pf0 xxxx 0000 Playfield Register Byte 0
0E Pf1 xxxx xxxx Playfield Register Byte 1
0F Pf2 xxxx xxxx Playfield Register Byte 2
10 Resp0 ---- ---- Reset Player 0
11 Resp1 ---- ---- Reset Player 1
12 Resm0 ---- ---- Reset Missle 0
13 Resm1 ---- ---- Reset Missle 1
14 Resbl ---- ---- Reset Ball
15 Audc0 0000 xxxx Audio Control 0
16 Audc1 0000 xxxx Audio Control 1
17 Audf0 000x xxxx Audio Frequency 0
18 Audf1 000x xxxx Audio Frequency 1
19 Audv0 0000 xxxx Audio Volume 0
1A Audv1 0000 xxxx Audio Volume 1
1B Grp0 xxxx xxxx Graphics Register Player 0
1C Grp1 xxxx xxxx Graphics Register Player 1
1D Enam0 0000 00x0 Graphics Enable Missle 0
1E Enam1 0000 00x0 Graphics Enable Missle 1
1F Enabl 0000 00x0 Graphics Enable Ball
20 Hmp0 xxxx 0000 Horizontal Motion Player 0
21 Hmp1 xxxx 0000 Horizontal Motion Player 1
22 Hmm0 xxxx 0000 Horizontal Motion Missle 0
23 Hmm1 xxxx 0000 Horizontal Motion Missle 1
24 Hmbl xxxx 0000 Horizontal Motion Ball
25 Vdelp0 0000 000x Vertical Delay Player 0
26 Vdelp1 0000 000x Vertical Delay Player 1
27 Vdelbl 0000 000x Vertical Delay Ball
28 Resmp0 0000 00x0 Reset Missle 0 to Player 0
29 Resmp1 0000 00x0 Reset Missle 1 to Player 1
2A Hmove ---- ---- Apply Horizontal Motion
2B Hmclr ---- ---- Clear Horizontal Move Registers
2C Cxclr ---- ---- Clear Collision Latches
Read Address Registers
bit 6 bit 7
0 Cxm0p xx00 0000 Read Collision M0-P1 M0-P0
1 Cxm1p xx00 0000 M1-P0 M1-P1
2 Cxp0fb xx00 0000 P0-PF P0-BL
3 Cxp1fb xx00 0000 P1-PF P1-BL
4 Cxm0fb xx00 0000 M0-PF M0-BL
5 Cxm1fb xx00 0000 M1-PF M1-BL
6 Cxblpf x000 0000 BL-PF -----
7 Cxppmm xx00 0000 P0-P1 M0-M1
8 Inpt0 x000 0000 Read Pot Port 0
9 Inpt1 x000 0000 Read Pot Port 1
A Inpt2 x000 0000 Read Pot Port 2
B Inpt3 x000 0000 Read Pot Port 3
C Inpt4 x000 0000 Read Input (Trigger) 0
D Inpt5 x000 0000 Read Input (Trigger) 1
Atari 2600 RIOT Memory Map
80-FF Ram also at 180-1FF
280 Swcha Port A data register (joysticks...)
281 Swacnt Port A data direction register (DDR)
282 Swchb Port B data (console switches)
283 Swbcnt Port B DDR
284 Intim Timer output
294 Tim1t set 1 clock interval
295 Tim8t set 8 clock interval
296 Tim64t set 64 clock interval
297 T1024t set 1024 clock interval
these are also at 380-397
Atari 2600 ROM Memory Map
E000-FFFF Rom also 1000-1FFF
3000-3FFF ....
--
Harry Dodgson Jr. Internet: dodgson at cs.wmich.edu
Western Michigan University
Computer Science Department Voice: (616) 387-5803
Kalamazoo, MI 49008
More information about the Alt.sources
mailing list