Inside Atari DOS
Inside Atari DOS is a book, published by Compute! Books and compiled by Bill Wilkinson, owner of Optimized Systems Software and columnist for Compute! magazine. I have this book as part of my Compute! books collection.
This is a thin, 120-page book that basically consists of two sections, the first of which describes Atari DOS routines and commands in about 58 pages.
The second part of the book is the commented assembly code listing of Atari DOS 2.0S. Publishing source code in this manner was not all that common in the early 1980s, so this was a somewhat unique book at the time. At $19.95 (about $67 in 2025), it was also not all that cheap.
As most know by now, DOS is an acronym for Disk Operating System. Although the Atari OS that was built in to the ROM had the ability to access a floppy disk, it was just rudimentary sector IO and was not a full DOS with routines and commands for dealing with files, directories or organization.
The first version of Atari DOS was, appropriately, 1.0. It loaded everything in memory, including the file management system (FMS) and the menu system (later called DUP, for Disk Utility Package). This took up too much RAM on these RAM-starved early computers, so the design was quickly changed for Atari DOS 2.
With Atari DOS 2, things were split into two separate parts. The FMS (DOS.SYS) file would be loaded automatically from disk. To get to the menu, you would type DOS from BASIC, which would then load DUP.SYS, clobbering any BASIC program you had in memory.
If you booted without BASIC (which was a cartridge on the 400/800/1200XL) then you’d go directly to the DUP menu.
On the newer XL and XE computers, you would hold down Option when turning on the computer disable BASIC.
For the most part, Atari disks were formatted with 720 sectors. Each sector contained 128 bytes, for a total of 92,160 bytes, or 90K. If you were lucky enough to have a double-density floppy drive, then each sector could contain 256 bytes for a total of 180K.
The weird Atari 1050 drive as a single-density drive that could store about 1020 sectors.
The Volume Table of Contents (VTOC) tracked the sectors that were in use on the disk. This is analogous to the File Allocation Table (FAT) on DOS disks. The disk directory stored the name of the files on the disk on sectors 361 to 368.
You can often find dumps of Atari disks as ATR files on the internet. I made a simple utility that can show you the contents of the disk by directly reading the disk directory, which you can download here:
There were many version of DOS available for the Atari, but they mostly used the same disk format and were backwards compatible with Atari DOS. They instead were primarily differentiated by their UI, rather than DOS.SYS, which could mostly be considered a floppy disk driver. A popular exception to this was SpartaDOS which had a completely different disk format and many more powerful commands and capabilities.
Here’s the link to the book if you have a hankering to read some commented assembly code today.
At the very least read the great introduction by Bill Wilkinson. He tells a short story about how Atari hired Shepardson Microsystems (the company he worked for) in 1978 to create both a DOS and BASIC for their upcoming 8-bit personal computer.
An interesting bit of trivia is that Shepardson Microsystems also created the original Apple DOS.
You Might Also Like
Understanding the Atari DOS 2 File Format
In ANALOG Computing Issue 8, Tony Messina writes about the DOS disk format in his Utility column. In this column he discusses the DOS disk format, focusing on the data, directory and boot sectors.
Using DOS on the Atari
As I’ve been learning more about the Commodore 64, one big difference that keeps coming up is how the DOS for the C64 is built into the ROM of the 1541 disk drives.
The Atari 1050 disk drive and its unusual storage size
The first disk drive available for Atari 8-bit computers was the Atari 810. This was a large, single-density, single-sided disk drive that could hold up to about 90K on each 5 1/4” disk.
QuikDOS in Atari BASIC
In my early days of getting a disk drive for my 800XL, I kept playing around with disk-related things in BASIC. I already wrote about Disected, a disk sector editor I made.
My First (rejected) Magazine Submission
One of the first programs of a decent size that I actually got to completion was something I called DOSBOS. It was a “utility” that let you view disk contents from BASIC. It was not very elegant as itself was a BASIC program.










I had/have a (physical paper) copy of the official DUP.SYS listing published publicly by Atari https://www.atarimania.com/documents/DOS_2_Source_Listings.pdf
I see a 1982 version of DOS.SYS original (i.e. not disassembled) source code is available at https://atariwiki.org/wiki/attach/Atari%20DOS%20II%20Assembly%20Source%20Listing/Atari%20DOS%20II%202.0S%20DOS.SYS%20Assembly%20Source%20Listing.txt
The difference between Commodore and Atari disk drives is interesting - both were intelligent drives, receiving commands from the host and dealing locally with the details of reading magnetic fields on the disk media. It'd be interesting to see a deeper exploration of those differences - why the OS seems to be mostly in the Commodore drive with the computer issuing file operations to the drive while on the Atari the computer issues low level block IO commands.