Jump to content

3

List of hardware registers


14 replies to this topic

#1 ivop OFFLINE  

ivop

    Chopper Commander

  • 208 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 - $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

$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, Thu Mar 25, 2010 10:49 AM.


#2 Rybags OFFLINE  

Rybags

    Quadrunner

  • 11,194 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

  • 397 posts
  • Location:Houston, TX

Posted Fri Jan 29, 2010 7:14 AM

View PostRybags, on Fri Jan 29, 2010 4:47 AM, said:

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 OFFLINE  

Rybags

    Quadrunner

  • 11,194 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,576 posts
  • Location:Lublin, Poland

Posted Fri Jan 29, 2010 8:00 AM

View PostRybags, on Fri Jan 29, 2010 4:47 AM, said:

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 OFFLINE  

Rybags

    Quadrunner

  • 11,194 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,576 posts
  • Location:Lublin, Poland

Posted Fri Jan 29, 2010 10:00 AM

yes, me, but not electron ;)

#8 phaeron OFFLINE  

phaeron

    Dragonstomper

  • 882 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 OFFLINE  

Rybags

    Quadrunner

  • 11,194 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

  • 208 posts
  • Location:The Netherlands

Posted Sat Jan 30, 2010 2:22 AM

View PostRybags, on Fri Jan 29, 2010 10:47 PM, said:

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

View PostRybags, on Fri Jan 29, 2010 10:47 PM, said:

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

  • 208 posts
  • Location:The Netherlands

Posted Mon Feb 1, 2010 5:57 AM

I have updated the list in the first post.

View Postphaeron, on Fri Jan 29, 2010 10:40 PM, said:

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

  • 6,360 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

  • 208 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 OFFLINE  

Rybags

    Quadrunner

  • 11,194 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