Introduction
An .ST file is a copy of an Atari ST floppy disk, sector by sector, with nothing added: no header and no compression. A disk has 80 tracks (sometimes 81 to 84), 9 to 12
sectors of 512 bytes on each track, and one or two sides, and the file holds the sectors in the order track 0 side 0, track 0 side 1, track 1 side 0 and so on. The usual sizes are
368,640 bytes (360 KB, one side), 737,280 bytes (720 KB) and 819,200 or 901,120 bytes for the longer formats some games and tools used. The compressed relative is
.MSA.
The disk holds a FAT12 file system, the same as on a PC disk, and a boot sector that is not a PC one: it has no
$55AA marker, and when its 256 words add up to $1234 the ST runs it as a program at boot. Its file system has
8.3 names and no long names. Programs on the disk open in the Atari ST executable viewer.
The extension .st is also used by Smalltalk source files, Structured Text (PLC) files and Soundtracker modules. The explorer claims a file as a disk image only when its
size is a whole number of 512-byte sectors and either the boot sector holds a usable parameter block (512-byte sectors, sectors per cluster 1, 2 or 4, one or two FATs,
a total that equals the file’s size) or the size is a known floppy size and the first sector is binary. Other files named .st are left alone.
Structure
- Sector 0the boot sector: branch, serial number, parameter block, boot code, checksum balance512 bytes
- FAT 1, FAT 2two copies of the file allocation table, 12 bits per clustersectors per FAT × 512 each
- Root directory32-byte entries: name, attributes, date, first cluster, sizeentries × 32 bytes
- Data areathe clusters of files and subdirectories, numbered from 2the rest
What the explorer shows
- The boot sector field by field, the parameter block, whether the checksum makes it executable, and the boot code disassembled with the 68000 decoder when it is.
- The two FATs (with a note when they differ), the root directory and every subdirectory with an entry node for each file, and every file as a file that opens by itself (a program as an Atari program, text as text).
- The geometry, the free space, the volume label, and a table of files and directories.
- A disk without a usable parameter block (a game’s own loader, an unformatted disk) of a known floppy size: the boot sector only.
Variants
- ST disk image – the raw sectors, with a FAT12 file system or without
- MSA disk image – the same disk with its tracks compressed
Not described
Known, not yet covered
- Reference: the boot sector offsets come from a hard-disk driver document (bootiext.txt) and a summary of Hatari’s
floppy.c; the fetch tool returns summaries, so they rest on them. Not covered: the boot sector’s executable-boot fields that some tools use (a load address and a file name), the formats that add copy protection (.STXand Pasti images, and the.DIMand.MSAvariants other than described on the MSA page), hard disk images and the AHDI partition table, and the Atari ST’s own interleave and track layout. - Viewer: checked on built disks only, with an independent reading of the cluster chains and the MSA decoder; no real Atari ST disk image was found on this machine, so no real boot sector, directory or FAT has been read. Not covered: long file names (the Atari has none), hidden-sector volumes and disks with a 1024-byte sector size. It has not been run in a browser by its author.
Links
Software
- Hatari – Atari ST, STE, TT and Falcon emulator that reads .ST and .MSA disks (Windows, macOS, Linux)
Reference
- bootiext.txt – the logical boot sector layout and the $1234 rule for the root sector