Recently I was clearing out some old junk and found the 3.5" floppy disks from an Atari ST which I used back in the 1990s. Naturally I wondered if I could still read them, but lacked any hardware to do it.
These are brief notes on how I solved this using things which were easily available in the UK in 2023. I’m writing it both for my own records and in the hope that it might help others who want to do something similar.
These are very practical notes: if you want to understand the underlying technology and some of the history, I recommend this excellent article1 by Jonathan Pallant.
For my needs it was enough to know that most ST disks have eighty tracks each of nine 512-byte sectors. That means double-sided disks hold 720kb, and single-sided 360kb.
The drive I
Somewhat to my surprise, you can still buy floppy disc drives though these days they usually have an integrated controller and connect to a PC via USB. Amazon will sell you many different sorts for about £20 each.
I bought one of these, plugged it into a Mac, and inserted a disc. Sadly, it didn’t work: presumably something doesn’t recognise the Atari format. It’s possible that you might be able to fix this, but I didn’t try.
The drive II
Although it’s hard to find new drives, eBay is full of used 3.5" floppy drives just like I remember using decades ago. The Mitsumi D359M3D seemed a popular choice, and I bought one for about £10. Annoyingly I managed to buy one without the fascia but happily that's just cosmetic.
Like drives from thirty years ago, these have a 34-pin IDC data connector, and a four-pin power connector. I’d forgotten a few details though:
Most 34-pin floppy cables supported two identical drives on the same cable. To accomplish such magic part of the cable is twisted between the two drives: without the twist the signals for drive B are presented to the drive; with the twist drive A’s signals appear. Annoyingly that means that if you use a cable without the twist you’ll see drive B, not drive A. I guess this stems from a time when termination mattered.
Although the 4-pin power connector nominally needs both a 12V and 5V supply, in practice the 12V supply isn’t needed for most modern drives.
The Greaseweazle
Modern Macs don’t have 34-pin sockets for floppy drives, but after a bit of searching I found that people make fancy drive controllers which sit on USB.
Foremost amongst these is the Greaseweazle2, a 200MHz Cortex M-4 based design. There are multiple versions, and the designs are open enough that you could build your own if you wished. Being lazy I just bought one of the V4 models from the designer’s eBay shop for about £25.
The Greseweazle appears to the host computer as a USB serial device. To control it, you need to install the the host tools3. On the Mac these come as a python package.
The case
Happily, there’s a perfectly functional printable case4 on Thingiverse.
Reading Atari ST disks
The gw
command is installed as part of the host tools, and talks
to the hardware. To read disks you typically want something like this:
% gw read --drive 1 --format atarist.720 a.img
Reading c=0-79:h=0-1 revs=2
Format atarist.720
T0.0: IBM MFM (9/9 sectors) from Raw Flux (87474 flux in 400.33ms)
T0.1: IBM MFM (9/9 sectors) from Raw Flux (94299 flux in 400.33ms)
...
The --format
flag is a shorthand way to set the number of tracks and
so on. You can see a full list in
diskdefs.cfg5.
To read Atari ST disks, you need the atarist.nnn format where nnn ∈ {
360, 400, 440, 720, 800, 880 }.
If you get the number of sectors wrong, you’ll see helpful diagnostics:
% gw read --drive 1 --format atarist.800 b.img
Reading c=0-79:h=0-1 revs=2
Format atarist.800
T0.0: IBM MFM (9/10 sectors) from Raw Flux (87475 flux in 400.44ms)
T0.0: IBM MFM (9/10 sectors) from Raw Flux (218639 flux in 1000.68ms) (Retry #1.1)
T0.0: IBM MFM (9/10 sectors) from Raw Flux (349804 flux in 1600.89ms) (Retry #1.2)
T0.0: IBM MFM (9/10 sectors) from Raw Flux (480969 flux in 2201.08ms) (Retry #1.3)
T0.0: Giving up: 1 sectors missing
...
If you specify too many tracks the error will be obvious, too few and you’ll just miss data.
Summary
Even in 2023 it’s easy to read old floppy disks. One recipe is:
Buy a used floppy disk drive from eBay.
Buy a Greaseweazle6.
Print a case7.
Enjoy!
References
- 1. https://thejpster.org.uk/blog/blog-2023-08-28/
- 2. https://github.com/keirf/greaseweazle/wiki
- 3. https://github.com/keirf/greaseweazle/wiki/Software-Installation
- 4. https://www.thingiverse.com/thing:5522437
- 5. https://github.com/keirf/greaseweazle/blob/master/src/greaseweazle/data/diskdefs.cfg
- 6. https://github.com/keirf/greaseweazle
- 7. https://www.thingiverse.com/thing:5522437