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