Jump to content

Photo

List of hardware registers


14 replies to this topic

#1 ivop OFFLINE  

ivop

    Chopper Commander

  • 220 posts
  • Location:The Netherlands

Posted Fri Jan 29, 2010 4:34 AM

Hi,

I thought it would be nice to compile a list of all known hardware modifications/expansions and which addresses they use. This is especially useful for future hardware designers in order to avoid conflicts as much as possible.

(This post has been updated; see last edit date below)
 

$D000 - $D01F CTIA/GTIA (stock hardware)
$D020 - $D03F reserved for second GTIA
$D040 - $D05F reserved for third GTIA
$D060 - $D07F free
$D080 - $D0FF VBXE soft reset area

$D100 - $D1FF PBI
$D100 - $D107 MyIDE Internal
$D100,  $D104, 1400XL/1450XLD Modem, Voice and Disk interface
$D108,  $D110 "
$D114         "
$D170 - $D171 BlackBox
$D17C,  $D1BC "
$D1BE,  $D1C0 "
$D1C0 - $D1C1 SmartIDE LCD
$D1E0 - $D1E3 MIO
$D1FF PBI Device Enable / IRQ Mask

$D200 - $D20F POKEY (stock hardware)
$D210 - $D21F Second POKEY (GUMBY)
$D220 - $D27F free
$D280 - $D283 Covox, new location
$D284 - $D2FF free

$D300 - $D303 PIA 6520 (stock hardware)
$D303 - $D30F free
$D310 - $D313 second PIA 6520
$D314 - $D31F free
$D320 - $D323 VIA 6522
$D324 - $D37F free
$D380 - $D381 Ultimate 1MB configuration registers
$D382 - $D3E1 free
$D3E2         SDX Real Time Clock (SPI interface)
 
$D3E3 - $D3FF free

$D400 - $D40F ANTIC (stock hardware) ($D406 and $D408 are unused)
$D410 - $D41F reserved for second ANTIC
$D420 - $D4FF free

$D500         4-bit Audio Samplers (e.g. ADC0804 based samplers)
$D500 - $D507 MyIDE External
$D5B8 - $D5BF R-Time 8
$D5E0         SDX Bankswitching

$D600 - $D7FF PBI
$D600 - $D7FF 1400XL/1450XLD RAM
$D600 - $D603 Covox
$D600 - $D6FF MIO RAM
$D600 - $D6FF BlackBox RAM
$D640 - $D65F VBXE D6-Install
$D740 - $D75F VBXE D7-Install

Notes:
* Pages $D0, $D2, $D3 and $D4 are completely zeroed at warm- and coldstart, except for $D301.
* Free ranges should be kept mirrors of the stock chips as much as possible.
* Games that rely on specific mirror locations:
- Bounty Bob Strikes Back ($D47B)

Where is the supposedly existing Sid upgrade mapped? And where would AMY have been?


Edited by ivop, Sat May 10, 2014 6:04 AM.


#2 Rybags ONLINE  

Rybags

    Quadrunner

  • 12,817 posts
  • Location:Australia

Posted Fri Jan 29, 2010 4:47 AM

There's alternatives for Covox... I think one goes at $D280 (ref SimpleStereo by candle/Electron)

Page $D5 is generally untouched with internal expansions - it's CARTCTL for Left Cartridge, so generally used for bank-select or other purposes in cartridges.

Page $D6 is CARTCTL for Right Cartridge, but has generally been used for other things given that no stock machine other than the 800 uses it.

VBXE uses $D640-$D65F in a default install. A D7 install will use $D740-$D75F.

VBXE also uses a write to any address $D080-$D0FF as a means to do a soft reset.


Page $D3: AFAIK there are no expansions in widespread use that use addresses in that page. CIAs and second PIAs have been proposed, my guess would be that people might have tried extra PIA(s)

Second Antic/GTIA - this has been done on a couple of occasions, really only a novelty value thing. But, a triple-GTIA setup fed from a single Antic is a "valid" expansion idea, as it would allow RGB output and expand the palette to 512/4096 colours.

#3 warerat OFFLINE  

warerat

    Moonsweeper

  • 402 posts
  • Location:Houston, TX

Posted Fri Jan 29, 2010 7:14 AM

Page $D6 is CARTCTL for Right Cartridge, but has generally been used for other things given that no stock machine other than the 800 uses it.


Page $D5 is the same for the left and right cartridges on the 800. Page $D5 and $D6 are also accessible in the last memory slot (slot 3).

#4 Rybags ONLINE  

Rybags

    Quadrunner

  • 12,817 posts
  • Location:Australia

Posted Fri Jan 29, 2010 7:24 AM

Didn't realise that... especially $D5XX being on right cart.

According to these schematics, D5 and D6 are also available to the OS board.

#5 candle OFFLINE  

candle

    River Patroller

  • 2,762 posts
  • Location:Lublin, Poland

Posted Fri Jan 29, 2010 8:00 AM

There's alternatives for Covox... I think one goes at $D280 (ref SimpleStereo by candle/Electron)


Thanks Gary ;) I'll be laughting my head off whole next week ;)

#6 Rybags ONLINE  

Rybags

    Quadrunner

  • 12,817 posts
  • Location:Australia

Posted Fri Jan 29, 2010 8:21 AM

http://spiflash.org/block/9.html

What's to laugh at... I thought that was how you did it?

#7 candle OFFLINE  

candle

    River Patroller

  • 2,762 posts
  • Location:Lublin, Poland

Posted Fri Jan 29, 2010 10:00 AM

yes, me, but not electron ;)

#8 phaeron OFFLINE  

phaeron

    Stargunner

  • 1,200 posts
  • Location:USA

Posted Fri Jan 29, 2010 10:40 PM

There are also specific mirror ranges that should be avoided for maximum compatibility. For instance, some versions of Bounty Bob Strikes Back will not boot if the mirror of VCOUNT at $D47B is replaced.

#9 Rybags ONLINE  

Rybags

    Quadrunner

  • 12,817 posts
  • Location:Australia

Posted Fri Jan 29, 2010 10:47 PM

And there's also the consideration that the entire pages D0, D2, D3 and D4 are zeroed at cold/warmstart by the OS.

#10 ivop OFFLINE  

ivop

    Chopper Commander

  • Topic Starter
  • 220 posts
  • Location:The Netherlands

Posted Sat Jan 30, 2010 2:22 AM

And there's also the consideration that the entire pages D0, D2, D3 and D4 are zeroed at cold/warmstart by the OS.


Thanks for your replies! I have requested to be able to edit the first post and will update it shortly.

#11 atariksi OFFLINE  

atariksi

    Quadrunner

  • 5,337 posts

Posted Sat Jan 30, 2010 3:27 PM

And there's also the consideration that the entire pages D0, D2, D3 and D4 are zeroed at cold/warmstart by the OS.


$D4X6 and $D4X8 are free as well; at least they won't affect anything on ANTIC. Perhaps, it was meant originally for having 16-bit PMBASE pointers and 16-bit CHBASE pointers like 16-bit DL pointers. That may have helped move sprites on Y-axes (all at the same time or one big multicolored sprite).

#12 ivop OFFLINE  

ivop

    Chopper Commander

  • Topic Starter
  • 220 posts
  • Location:The Netherlands

Posted Mon Feb 1, 2010 5:57 AM

I have updated the list in the first post.

There are also specific mirror ranges that should be avoided for maximum compatibility. For instance, some versions of Bounty Bob Strikes Back will not boot if the mirror of VCOUNT at $D47B is replaced.


Do you know of any other such programs?

#13 flashjazzcat OFFLINE  

flashjazzcat

    Quadrunner

  • 8,469 posts
  • Location:United Kingdom

Posted Tue Mar 29, 2011 2:43 PM

BUMP! It would be most useful if this topic was updated with the new hardware coming out at the moment. I've found it to be an invaluable resource.

#14 ivop OFFLINE  

ivop

    Chopper Commander

  • Topic Starter
  • 220 posts
  • Location:The Netherlands

Posted Thu Feb 16, 2012 4:54 AM

We need to add Slight Sid, SIDE, IDE plus 2.0, any more? And what's the exact mapping of those devices?

#15 Rybags ONLINE  

Rybags

    Quadrunner

  • 12,817 posts
  • Location:Australia

Posted Thu Feb 16, 2012 5:10 AM

Anything on cartridge will almost always be $D5xx. There's so many that it'd be a big job to map them all.

SIDE, at least 2 types of OSS banked carts, various Atari banked carts, other banked carts, R-Time8, SpartaDos cart etc etc.
The only other possible mapping of HW Regs on carts is within the $8000-$BFFF area. But this is not normally done as it's more complex than $D5xx mapping. Although I believe Atarimax Flashcarts use some addresses in the $A000-$BFFF range when performing writes to the flash memory.

IDE +2, I believe uses a combination of $D5xx (for Dos on "virtual cart"), $D1xx (PBI protocols, IDE registers) and also has RAM/ROM which can switch in place of the FP ($D800-$DFFF).

PBI devices - something attached to the PBI can take precedence over any address except the default I/O registers. But normally will just use D1, sometimes other areas in the D5-D7 space. Mapping 256 bytes of RAM to one page is possible (MIO). The XL/XE architecture also specifies that PBI compliant devices should map their ROM driver to override the Floating Point Package $D800-$DFFF. Such a device can also supply it's own RAM, in theory it could share that area or even override part of normal system RAM on demand.

Ultimate 1 Meg. This has onboard SDX, RTC, and various config registers. http://spiflash.org/block/20.html

Edited by Rybags, Thu Feb 16, 2012 5:19 AM.





0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users