Re: [stella] 2600 Memory Map & Question

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