Memory Map for Atari ST,STE,TT and Falcon

From Atari Wiki
Revision as of 21:55, 11 September 2026 by Exxos (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The memory map has to be split into parts due to its sheer size.


Or view all sections combined on a single page: Complete memory map listing

Datasheets, pinouts and reference documents: Reference documents and datasheets

Sources

These pages were checked against the following. Entries carry two credits: "Verified" names the code that confirms a fact, and "Originally" names the earliest document found for it. Atari's own documents come first as an original source, and the maintained code below comes first as verification. Where sources disagreed the entry is marked CONFLICT or CHECK on the page itself, with the reasoning given there.

Hatari - https://github.com/hatari/hatari
Cycle-accurate emulator, actively maintained. As an emulator it has to implement every bit correctly or software breaks, which makes its source the best available description of what the hardware actually does. Several of its chip implementations carry detailed comment blocks, and some of the blitter accuracy derives from reverse engineering and Verilog work by Jorge Cwik (ijor). Checked against commit 11964da, September 2026.

EmuTOS - https://github.com/emutos/emutos
Free TOS replacement, actively maintained, boots on real ST, STE, Mega ST, Mega STE, TT and Falcon hardware. Its headers define what a working OS needs to touch, and its .c files show how those registers are used in practice, which settles polarity questions that headers alone leave open. Also the only source here that knows about several add-on boards. Checked against commit e0f0c23, September 2026.

Atari TOS sources - https://github.com/th-otto/tos1x and https://github.com/th-otto/tos3x
Atari's own operating system sources, reconstructed by Thorsten Otto to rebuild the original ROMs. tos1x covers TOS 1.04, 1.06 and 1.62; tos3x covers 2.06, 2.08 and 3.06. This is Atari's own code rather than anyone's interpretation of it, so where it writes a value that value is correct by definition. Note that tos3x also contains one file of genuine TOS 4.04 Falcon code (bios/vsetmode.c), which is the only TOS 4.04 source known to exist. Checked against commits 7c6680d and c84ed76, September 2026. The tos3x repository also holds disassembly listings of the real TOS 4.02 and 4.04 Falcon ROMs and Atari's own Falcon diagnostic source, both used on these pages.

Atari's own documents - "Engineering Hardware Specification of the Atari ST Computer System", 7 January 1986, and "A Hitchhiker's Guide to the BIOS", 26 August 1985, both (C) Atari Corp
Atari's own specifications, written before the machine shipped. Where they cover something they are the earliest source there is, and the pages credit them ahead of any later book or listing. The 1986 specification is ST only, and marks the zero state of a bit by underlining its name, which later plain-text copies lost; that is how the $FFFF8606 DMA error bit came to be documented the wrong way round for thirty years. The 1985 BIOS guide's system variable table is pre-release in places: it lists _bufl, _hz_200 and _drvbits two bytes higher than shipped TOS.

The Atari Compendium - Scott Sanders, SDS Publishing, Appendix B
http://cd.textfiles.com/ataricompendium/BOOK/PDF/APPENDB.PDF
The published reference, and the broadest single document: 500 addressed entries covering the whole address space, with bit level detail for around 170 of them. Careful and well organised, but it is a static document from the mid 1990s and does contain errors of its own.

Western Digital WD1772 data sheet - Western Digital, preliminary combined WD1770/1772 datasheet
Used for the floppy controller command set, alongside two other sources: DrCoolZic's edited datasheet (https://info-coach.fr/atari/documents/_mydoc/WD1772-JLG.pdf and his companion https://info-coach.fr/atari/documents/_mydoc/FD-HD_Programming.pdf) and the Acorn/BBC Micro "WD1770/2/3 data" reference file (http://bbc.nvg.org/doc/wd1770.txt). None of the three is reliable alone; each has errors the other two catch, including the WD original's own step-rate and settling-time tables. See Reference documents and datasheets for the full breakdown and the consolidated register reference.

Secondary documents

These were cross-checked against the four primary sources above rather than trusted on their own. Where one of them is the ONLY source for something, the entry on the page says so explicitly.

Atari STE ASIC schematics - https://www.keli.dk/old-asic/
Keli Hlodversson's trace of Atari's original hand-drawn GLUE/MMU (GST MCU) schematics, recovered and converted to PDF by Christian Zietz. The source for the unused /ROM0, /ROM1, /ROM5 and /ROM6 chip select decodes, which are schematic evidence rather than tested behaviour and are flagged as such on the pages. It is also one of two independent finds of the undocumented GAMECART register at $FFFF9000: Christian Zietz found it in the same schematics at around the same time and confirmed it working on a real 1040STE. Both are credited and linked at the register's entry. GAMECART appears in no emulator, no version of TOS and no published reference.

Atari ST/STe/MSTe/TT/F030 Hardware Register Listing, v9.1 - George Nakos, 25 August 2026, continuing Dan Hollis's listing
https://beyondbrown.mooo.com/static/hardware_9_1.txt
Actively maintained, and the current version of the listing these pages grew from; an older version is mirrored on this wiki as Atari ST/STe/MSTe/TT/F030 Hardware Register Listing. Every address in v9.1 was checked against these pages in September 2026, which added several registers and corrected two errors here. It has errors of its own: it ends the Falcon palette at $FF98FC instead of $FF9BFC, and gives TT MFP vector 14 as $000176 instead of $000178. Check for a newer version before relying on it.

FreeMiNT TOS documentation - https://freemint.github.io/tos.hyp/en/bios_cookiejar.html
The maintained cookie and XBRA registry, and the reference for the cookie jar's own rules. Treated as the current known cookie list; see The Cookie Jar. Note it is a combined cookie and XBRA list, so not every identifier on it is a cookie, and registration means somebody claimed the tag, not that the value layout has been verified.

The authoritative guide to the Falcon video hardware - Aura, on this wiki
Measured VIDEL timing documentation, and the source of the standard mode register value tables and the FS and EE register behaviour.

VIDEL document - https://mikro.naprvyraz.sk/docs/mikro/videl.html
Programmer's description of the VIDEL registers. Note that Hatari's source comments on several video registers are copied verbatim from this document, so the two are not independent where wording is concerned; Hatari's code is.

Atari Falcon hardware registers - Aeon and Chris of Aura, 1993, and the related FALREG listing
Early Falcon register documentation, useful for registers the later sources skip, but with several entries the maintained sources contradict. Treated as a lead to verify rather than an authority. No stable public URL known; the source text is what The authoritative guide to the Falcon video hardware and the audited memory map pages were checked against.

Alive issue 9, "Cookies for the Beast" - https://alive.atari.org/alive9/cookies.php
Worked survey of the hardware cookies with example jars dumped from real machines, including a CT60 Falcon, a Medusa T40 and a Milan. The source for the CT60 cookie structure. A magazine article rather than a specification, so its values are treated as reports to verify.

The Atari A to Z - Mark S Baines, 1998
General reference with a memory map chapter. Used as a further independent opinion on ranges rather than for bit detail.

A note on accuracy

Some of these listings have carried the same errors for thirty years, copied from one document to the next. Several were found and corrected during this pass, including an inverted status bit, a wrong base address, and five wrongly named registers in one block. Where a value rests on a single unconfirmed source it is marked UNVERIFIED.

Where the sources disagree, the disagreement is written into the entry for that register rather than resolved silently, naming which source says what. Some of these are genuinely open questions, and a reader with real hardware is better placed to settle them than any document is. The same applies to registers where only part of the bit layout is known: the unknown bits are listed as unknown rather than left out.

If you find something wrong, please say so, ideally with a source reference. Corrections are welcome, and are worth reporting even when you are not certain: a "this does not match my hardware" is useful on its own.