Up front: I used AI to do the cross-referencing for this, and this summary is AI written too. Trying to hold all of this in my head and type it out myself would have taken a week and I would still have got half of it wrong. Several of the findings were then put to ijor, who confirmed some and corrected me on others, so it is not just a machine talking to itself. More on that at the end.
The short version is that the memory map pages had a proper going over. Several real errors fixed, a new page added, and a few things flagged where the sources contradict each other.
What was actually wrong
The DMA status register at $FFFF8606, bit 0, was listed as 0 meaning no error and 1 meaning error. It is the other way round. The bit is clear on error and set when there is no error. Atari's own TOS source tests it that way in bios/floppy.S, EmuTOS does the same in bios/dma.h, and ijor confirmed it. This is the sort of bug that never crashes anything, it just quietly tells you the opposite of the truth. The same error is in the Dan Hollis hardware register listing that gets mirrored all over the place, so the wiki almost certainly inherited it rather than invented it.
The IDE block was listed at base $FFFF0000, which is unassigned I/O space. It should be $FFF00000. The offsets within the block were already correct, so it looks like a transposed digit that has been sat there quietly for years.
The Mega STE floating point coprocessor block had the Operand Register and the Instruction Address Register both at $FFFFFA46, which already belongs to the Restore Register. Three registers, one address. Four more registers of that block were missing entirely.
The Falcon sound mode control had the mono and stereo states both printed as 0, which makes the choice somewhat academic. It is 0 for stereo, 1 for mono.
The whole Falcon sound matrix and CODEC block from $FFFF8930 to $FFFF8942 was missing. That is what the old "DSP registers still missing" note was pointing at. All twelve registers are now in.
New page
There is now a System variables and low RAM page covering $140 to $5B3. That whole region was never documented. It includes the TT MFP vectors, the SCC vectors, the crash save area, and the TOS system variables, so things like _v_bas_ad, _hz_200, _vblqueue, hdv_rw, _drvbits and flock. Arguably the part of the map people actually use.
There is also a Complete memory map listing page now, which pulls all six sections into one continuous list for reading and searching. The individual pages are unchanged and are still where edits happen.
Flagged rather than fixed
A few things are marked CHECK or CONFLICT in the listing because I could not settle them. The IDE status register offset, where EmuTOS says $1D and the Atari Compendium says $1E. $FFFF8E0F appearing twice, once as a VME register and once as Mega STE cache control, where the Compendium puts cache control at $FFFF8E20 instead. The RAM_END arithmetic, which is annotated 14MB but the address given is 13MB. And an entry at $FFFFFF82 that has never had a description at all.
Source order
Where documents disagree, the listing now resolves in this order. Atari TOS source and EmuTOS first, since both are executable and run on real hardware. The Atari Compendium second, which is the best of the paper sources but not perfect, as it gets the IDE status offset wrong and contradicts itself on the FPC range. Everything else after that.
On the AI side of it
The useful thing here was not the writing, it was having something that could hold five wiki pages, the Compendium, the TOS source, the EmuTOS source and a couple of datasheets in view at once and notice where they disagree. That is a tedious job and not one I would ever have got through by hand. It also flagged things I would not have thought to question.
It is not infallible either. It got a couple of things wrong along the way and overstated its confidence on at least one finding, which is exactly why the results went to ijor rather than straight onto the wiki. He confirmed several points, corrected one, and wants to double check two more before committing. That is roughly the process I would want for any of this.
The honest bit, and a request
What has been checked is only the part that had a second source to check against. The blitter block, the VIDEL timing registers, the palettes, the MFP bit assignments, the ACIA, the RTC and the DSP host registers have not been cross-checked against anything, because nothing available covers them. They are unverified rather than confirmed correct. If there are more errors, that is where they are hiding.
Which leads to the request. What is commonly floating about on the internet for this stuff turns out to be wrong in places, and the same errors have been copied between listings for decades. If you know a particular chip or register block properly, please have a look at the relevant page and correct anything that is off, or flag it if you are not sure. The pages have not been touched in years and could do with more eyes on them than mine.
Wiki pages.
https://www.atari-wiki.com/index.php?ti ... r_Atari_ST
REMINDER - Stay logged in for at least 2 hours a week to get whitelisted.
Also it helps build a picture where our "good traffic" is coming from for detection scripts.
:o)
Also it helps build a picture where our "good traffic" is coming from for detection scripts.
:o)
Wiki Memory map pages updated
-
exxos
- Site Admin

- Posts: 28557
- Joined: 16 Aug 2017 23:19
- Location: UK
Who is online
Users browsing this forum: ClaudeBot and 3 guests