Jump to content
IGNORED

List of hardware registers


ivop

Recommended Posts

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
$D080 - $D0FF VBXE soft reset area

$D100 - $D1FF PBI
$D100 - $D107 MyIDE Internal
$D100 - $D1BE U1MB RAM
$D1BF         U1MB PBI Bankswitching
$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)
$D280 - $D283 Covox, new location

$D300 - $D303 PIA 6520 (stock hardware)
$D310 - $D313 second PIA 6520
$D320 - $D323 VIA 6522
$D380 - $D381 U1MB configuration registers
$D383 - $D384 U1MB status registers
$D3E2         U1MB SDX Real Time Clock (SPI interface)

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

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

$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)

last edit: added more U1MB registers, especially PBI bank switching, which is missing from the U1MB manual.

Edited by ivop
  • Like 7
  • Thanks 2
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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).

  • Like 1
Link to comment
Share on other sites

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).

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

  • 1 year later...
  • 10 months later...

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
  • Like 1
Link to comment
Share on other sites

  • 9 years later...

Let's give this one a massive necro-bump... because it's worth it!

 

It seems we are missing bank-switching registers of several multi-cart models,  FPGA-control registers of Ultimate/SD cart, RAM/ROM areas of legacy 800 expansions like Bit3, Austin Franklin, AXLON, Mosaic, and modern ones like Incognito, SysCheck II registers, TurboFreezer, etc.

 

Top-post should have permanent edit permission, to keep it updated.

 

A VERY valuable post, especially as a quick-reference guide for compatibility, etc.

  • Like 2
Link to comment
Share on other sites

I use a 74LS139 and the CI (CasInhibit) line on my ATARI 67XEPortable to enable $D6xx and D7xx to expose the RAM at those addresses, to the system. This is the RAM my BIOS uses to avoid using normal system RAM for functionality.

Link to comment
Share on other sites

19 hours ago, Faicuai said:

Let's give this one a massive necro-bump... because it's worth it!

 

It seems we are missing bank-switching registers of several multi-cart models,  FPGA-control registers of Ultimate/SD cart, RAM/ROM areas of legacy 800 expansions like Bit3, Austin Franklin, AXLON, Mosaic, and modern ones like Incognito, SysCheck II registers, TurboFreezer, etc.

 

Top-post should have permanent edit permission, to keep it updated.

 

A VERY valuable post, especially as a quick-reference guide for compatibility, etc.

I have edit permission on the first post. Just post the relevant register(s) in this thread, and I'll add them to the list.

Link to comment
Share on other sites

1 hour ago, VinsCool said:

I personally have looked at this page countless times (and always kept a tab open on it) for reference... This has helped me a lot, maybe worth adding in the OP :P 
https://www.atariarchives.org/mapping/memorymap.php

That's Mapping The Atari. It's about all sorts of memory locations, depening on the OS and BASIC, too. This thread is about hardware registers ($D000-$D7FF). Stock hardware, and common expansions that live in the same area. But a lot of devices are missing. Faicuai is going to fill in the gaps ;)

  • Thanks 1
Link to comment
Share on other sites

9 minutes ago, ivop said:

That's Mapping The Atari. It's about all sorts of memory locations, depening on the OS and BASIC, too. This thread is about hardware registers ($D000-$D7FF). Stock hardware, and common expansions that live in the same area. But a lot of devices are missing. Faicuai is going to fill in the gaps ;)

Ah I see!
I just thought it was a good addition, but now I see it was specific.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...