reading mac 800k floppies, more complex than you’d think!

part of our floppy quest is we want to read mac 800k floppies – partially because there’s a lotta good content out there on 800k floppies, and partially because we are still heading towards imaging the prince floppy (which, being 800k formatted made it a bit of a pain to read).

1.4MB floppies on mac are easily readable because by the time they got to 1.4MB apple stopped being clever with their disk formatting. but 800K floppies are really clever/freaky!

unlike ibm pc formatting, there are not a fixed number of sectors per track. there’s four groupings of tracks, and there are MORE sectors on the outer tracks (tracks 0 thru 31) than on the innermost sectors (64 thru 79). that’s because there’s technically more surface area on the outer edges of the disc where the lower number tracks live.

mac floppies also rotate at different speeds depending on the track, which is also a joy. given its quite hard to find and control those old floppy drives compared to our bog-standard ‘shugart 34 pin’ pc types, there’s incentive to try to get these to read cleanly on cheap and available hardware. (apple superdrives are…not cheap. no not that superdrive, the OTHER one)

but the problem remains: the inner tracks have flux pulses that are significantly longer than the outermost tracks, because if we have a flux-per-inch limit, then we have to spend more time to traverse that distance on the inner tracks.

and ibm pc mfm-optimized drives do not like this: they really expect the flux to change on very specific timebases: about 2us, 3us and 4us -ish. and once you start reading those longer pulses they get into 10 or 11us and that is much longer than the drive and media expect.

firstly, the HD diskette isn’t really meant to encode such long pulses, and secondly the disk drive automatic gain control starts getting amped up after 5 or 6us and thinks it must have lost a pulse, so it ends up reading old/weak flux inversions and ‘splits’ the longer pulse into 2 or 3 ghost fragments. the flux decoder is getting extra bits where it ought not, and gives up.

we’re going to order some true DD diskettes to see if that helps with the first issue. for the second issue, we tried setting the DENSITY input low but that didn’t help – we’re thinking we could try to detect spurious pulses to try and repair the GCR cells during flux read. hopefully we’ll figure something out? – video.


Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7:30pm ET! To join, head over to YouTube and check out the show’s live chat and our Discord!

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Join over 38,000+ makers on Adafruit’s Discord channels and be part of the community! http://adafru.it/discord

CircuitPython – The easiest way to program microcontrollers – CircuitPython.org


New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — New Products 11/15/2024 Featuring Adafruit bq25185 USB / DC / Solar Charger with 3.3V Buck Board! (Video)

Python for Microcontrollers – Adafruit Daily — Python on Microcontrollers Newsletter: A New Arduino MicroPython Package Manager, How-Tos and Much More! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi

EYE on NPI – Adafruit Daily — EYE on NPI Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

Adafruit IoT Monthly — The 2024 Recap Issue!

Maker Business – Adafruit Daily — Apple to build another chip at TSMC Arizona

Electronics – Adafruit Daily — SMT Tip – Stop moving around!

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !


No Comments

No comments yet.

Sorry, the comment form is closed at this time.