Jump to content

Photo

Session 5: Memory Architecture


33 replies to this topic

#26 vdub_bobby OFFLINE  

vdub_bobby

    Quadrunner

  • 5,832 posts
  • Boom bam.
  • Location:Seattle, WA

Posted Fri Jun 3, 2005 9:58 AM

so writing for instance to 0x30 has the same effect as writing to 0x00 (both locations are the VSYNC register).

View Post


I wouldn't be terribly surprised if $0030-$003F map back to $0000-$000F, but I would expect that $0040-$005F would map to $0000-$001F [rather than to $0010-$002F as your diagram would suggest]

View Post

Look here for complete 2600 mirror charts: http://www.atariage....ndpost&p=847985

#27 houdini68 OFFLINE  

houdini68

    Combat Commando

  • 2 posts

Posted Tue Mar 6, 2007 3:03 AM

I'd like some feedback on this. How many people are following this, and how many of those want more?

It is only to keep you up to the fact that I read your tutorial and that if you want I can give you some feedback. Your good work give me confidence in writing games for the 2600... I am not new in the programming world :-) But addressing the 2600 is a kind of challenge... Thanks again...

#28 5-11under OFFLINE  

5-11under

    River Patroller

  • 3,395 posts
  • Location:Ontario, Canada

Posted Wed Oct 23, 2013 1:45 PM

$1000 - $1FFF ROM


Now I finally understand why the cartridge slot has an A12 line instead of a Chip Select line.

/Necro-bump for a great course!

#29 rbairos OFFLINE  

rbairos

    Star Raider

  • 84 posts
  • Location:Toronto, Canada

Posted Mon Jan 21, 2019 1:03 PM

Hate to revive such an old thread, but I was using this and a reference, but something seems wrong:

$0200-022F [shadow] TIA

Isn't this 
0x0200 - 0x02FF  RIOT  registers   ?


 

Atari 2600 Memory Map:
----------------------
$0000-002F TIA Primary Image
$0030-005F [shadow] TIA
$0060-007F [shadow-partial] TIA
$0080-00FF 128 bytes of RAM Primary Image (zero page image)
$0100-002F [shadow] TIA
$0130-005F [shadow] TIA
$0160-017F [shadow-partial] TIA
$0180-01FF [shadow] 128 bytes of RAM (CPU stack image)
$0200-022F [shadow] TIA
$0230-025F [shadow] TIA
$0260-027F [shadow-partial] TIA
$0280-029F 6532-PIA I/O ports and timer Primary image
$02A0-02BF [shadow] 6532-PIA
$02C0-02DF [shadow] 6532-PIA
$02D0-02FF [shadow] 6532-PIA
$0300-032F [shadow] TIA
$0330-035F [shadow] TIA
$0360-037F [shadow-partial] TIA
$0380-039F [shadow] 6532-PIA
$03A0-03BF [shadow] 6532-PIA
$03C0-03DF [shadow] 6532-PIA
$03E0-03FF [shadow] 6532-PIA
$0400-07FF [shadow] Repeat the pattern from $0000-03FF
$0800-0BFF [shadow] Repeat the pattern from $0000-03FF
$0C00-0FFF [shadow] Repeat the pattern from $0000-03FF

$1000-17FF Lower 2K Cartridge ROM (4K carts start here)
$1800-1FFF Upper 2K Cartridge ROM (2K carts go here)


 



#30 splendidnut OFFLINE  

splendidnut

    Chopper Commander

  • 144 posts
  • Location:PA/NY Border

Posted Mon Jan 21, 2019 4:33 PM

Hmmm... quite a necro-bump.  But since I was already looking at the schematics, I figured I'd answer it.   That chart is a little confusing.

 

TIA is selected whenever both address bits A7 and A12 are low, so address < $1000, and low byte $00-$7F... TIA doesn't use address bit A6, so the TIA is at $00-$3F and mirrored at $40-$7F.

 

RIOT is selected whenever address bit A7 is high and A12 is low, so address < $1000, and low byte $80-$FF.   RAM is selected when address bit A9 is low, so when the high byte is $00 or $01.

 

$0000-$007F - TIA

$0080-$00FF - RIOT - RAM

$0100-$017F - TIA

$0180-$018F - RIOT - RAM

$0200-$027F - TIA

$0280-$02FF - RIOT - IO

$0300-$037F - TIA

$0380-$03FF - RIOT - IO

 

Then this layout is mirrored 3 more times:

   $0400-$07FF

   $0800-$0BFF

   $0C00-$0FFF

 

Hopefully this clarifies what's going on.



#31 rbairos OFFLINE  

rbairos

    Star Raider

  • 84 posts
  • Location:Toronto, Canada

Posted Wed Jan 23, 2019 1:26 PM

Right, it makes sense, but what about the original post by Andrew Davie:

$0000 - $007F TIA registers
$0080 - $00FF RAM
$0200 - $02FF RIOT registers
$1000 - $1FFF ROM


How can $0200 be both RIOT and TIA ?


Should the $0200 be $0280 ?

Reason I necro-bumped was speccing a new circuit, and wanted to make sure I wasn't doing something wrong from the get-go.

Thanks.



 


Edited by rbairos, Wed Jan 23, 2019 1:29 PM.


#32 Nukey Shay OFFLINE  

Nukey Shay

    Sheik Yerbouti

  • 21,857 posts
  • Location:The land of Gorch

Posted Wed Jan 23, 2019 2:02 PM

Typo, I guess.  Robert's map above looks to be complete.



#33 splendidnut OFFLINE  

splendidnut

    Chopper Commander

  • 144 posts
  • Location:PA/NY Border

Posted Wed Jan 23, 2019 9:11 PM

I agree with Nukey Shay... it's definitely a typo in the original post... Andrew actually has the correct info elsewhere in the original post:

 

 

,,,  but TIA registers are mapped in the memory addresses 0 to $7F, RIOT (a bit of '2600 hardware we'll look at later) from $280 - $2FF (roughly), and our program is mapped into address range $1000 to $1FFF (a 4K size).

 



#34 rbairos OFFLINE  

rbairos

    Star Raider

  • 84 posts
  • Location:Toronto, Canada

Posted Mon Jan 28, 2019 1:48 PM

I defer to his posts for lots of useful information, that's why I wanted to make sure. Thanks.






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users