st2disk writes Atari ST disk images (.ST and .MSA) directly to physical
3.5" DD floppy disks using the Amiga's internal drive. The resulting
disks are readable on Atari ST, STe, Mega ST and TT machines.
The tool produces IBM MFM tracks at the raw flux level via
trackdisk.device TD_RAWWRITE, with proper CRC-16/CCITT, IDAM/DAM
address marks and gap profiles derived from the official Atari FDC
documentation. After each write a verify pass reads the track back,
decodes every sector and compares it to the source image; failed
tracks are automatically retried up to 8 times. No CrossDOS or
pre-formatting required.
SUPPORTED FORMATS
.ST raw sector dump (geometry inferred from file size)
.MSA Magic Shadow Archiver (RLE-compressed, header-defined geometry)
Geometries handled:
9 sectors/track, 1 or 2 sides, 80-81 tracks (720 KB standard, 360 KB)
10 sectors/track, 1 or 2 sides, 80-81 tracks (FastCopy 800 KB)
11 sectors/track, 1 or 2 sides, 80-81 tracks (FastCopy 880 KB)
The 11-sector profile pushes against the physical 12500-byte track
budget at 300 RPM; it relies on real-drive tolerance and may need
retries, exactly like FastCopy did in the day.
USAGE
st2disk [--no-verify] <image.st|image.msa> [unit]
unit floppy unit number (0 = DF0:, 1 = DF1:, ...). Default 0.
--no-verify skip the read-back verify pass (faster, less safe)
st2disk dump <cyl> <side> [unit] [len_bytes]
Hex+ASCII dump of a physical track for debugging. Read-only.
Examples:
st2disk myimage.msa
st2disk --no-verify game.st 1
st2disk dump 0 0
REQUIREMENTS
AmigaOS 2.0 or later (Kickstart V36+)
68020 or higher CPU
Standard DD 3.5" floppy drive
About 1 MB free FAST RAM for the largest images
About 50 KB CHIP RAM for the MFM track buffers
Blank DD floppy in the target drive
LIMITATIONS
- DD only. HD 1.44 MB Atari format is not supported (and most Amiga
drives are DD-only hardware anyway).
- No support for copy-protected disks. Anything that needs flux-level
encoding (.STX/Pasti, custom track formats, weak sectors, long
tracks, no-flux areas) is out of scope. Use Gotek+FlashFloppy or
Greaseweazle for those.
- No verify-after-write tolerance for bit-shifts. The verify decodes
sectors rather than comparing raw MFM, so small alignment drift on
real hardware is fine, but persistent verify failures indicate a
real problem.
BUILDING FROM SOURCE
Source is available at https://github.com/OoZe1911/st2disk-amiga
Cross-compilation from macOS or Linux using Bebbo's amiga-gcc toolchain
(https://github.com/bebbo/amiga-gcc) is supported and is the primary
development path. Native compilation on AmigaOS works too if you have
a GCC port installed; see the included Makefile.
gmake amiga cross-compile m68k AmigaOS binary
gmake host local test binary (algorithm verification)
gmake test run host tests against Python reference
THANKS
Jean Louis-Guerin (DrCoolZic) at info-coach.fr for the definitive
Atari floppy format documentation, which was decisive in getting the
gap profiles right.
The Amiga retrocomputing community for keeping trackdisk.device
documentation alive across three decades.
HISTORY
0.1.0 Initial release. Verified on Amiga 1200 (PiStorm)
writing .ST and .MSA images, both confirmed readable
on a real Atari 1040 STe.
|