Subject: Re: [stella] 2600 Memory Map & Question From: "Andrew Davie" <adavie@xxxxxxxxxxxxx> Date: Wed, 21 Jun 2000 18:33:02 +1000 |
The stack is mapped to the SAME RAM as the zero page memory. There are *not* two 128-byte areas of RAM. There is just one. So, although the stack "lives" at $100 - $1FF, it actually *uses* the RAM which is also used for your zero-page. That's located from $80 to $FF. That is, 128 bytes SHARED between the stack and variables. The memory map below implies differently. A ----- Original Message ----- From: "Glenn Saunders" <cybpunks@xxxxxxxxxxxxx> To: <stella@xxxxxxxxxxx> Sent: Wednesday, June 21, 2000 5:25 PM Subject: [stella] 2600 Memory Map & Question > Corrections welcome: > > > <INTERNAL MEMORY> > <BEGIN PAGE 0> > Write Address Registers (located inside TIA?) > > 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 (located inside TIA?) > > bit 6 bit 7 > 00 Cxm0p xx00 0000 Read Collision M0-P1 M0-P0 > 01 Cxm1p xx00 0000 M1-P0 M1-P1 > 02 Cxp0fb xx00 0000 P0-PF P0-BL > 03 Cxp1fb xx00 0000 P1-PF P1-BL > 04 Cxm0fb xx00 0000 M0-PF M0-BL > 05 Cxm1fb xx00 0000 M1-PF M1-BL > 06 Cxblpf x000 0000 BL-PF ----- > 07 Cxppmm xx00 0000 P0-P1 M0-M1 > 08 Inpt0 x000 0000 Read Pot Port 0 > 09 Inpt1 x000 0000 Read Pot Port 1 > 0A Inpt2 x000 0000 Read Pot Port 2 > 0B Inpt3 x000 0000 Read Pot Port 3 > 0C Inpt4 x000 0000 Read Input (Trigger) 0 > 0D Inpt5 x000 0000 Read Input (Trigger) 1 > > RIOT Memory Map > 80-FF 128 bytes FREE Ram > > </PAGE 0> > > <PAGE 1> > 180-1FF 128 bytes FREE RAM (used primarily as 6507 stack) > </PAGE 1> > > RIOT Hardware registers > 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 > </INTERNAL MEMORY> > -------------------------------------------------------------------------- --------------------- > <EXTERNAL MEMORY> > Atari 2600 ROM Memory Map > > E000-FFFF 8K Rom > (shouldn't this be EFFF-FFFF? this is an 8K range above) > > 1000-1FFF 4K Rom (mirror) > 3000-3FFF 4K Rom (mirror) > </EXTERNAL MEMORY> > > > I am curious about something here. The 6507 has a 13-bit address > bus. This comes out to 8192 bytes linear addressable. Don't these hex > values jump around too much to fit within that address space? > > > Glenn Saunders - Producer - Cyberpunks Entertainment > Personal homepage: http://www.geocities.com/Hollywood/1698 > Cyberpunks Entertainment: http://cyberpunks.uni.cc > > > -- > Archives (includes files) at http://www.biglist.com/lists/stella/archives/ > Unsub & more at http://www.biglist.com/lists/stella/ > -- Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://www.biglist.com/lists/stella/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [stella] 2600 Memory Map & Ques, Erik Mooney | Thread | Re: [stella] 2600 Memory Map & Ques, Mark De Smet |
Re: [stella] 2600 Memory Map & Ques, Erik Mooney | Date | [stella] Stella Development under L, Sebastian Szczygiel |
Month |