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.


Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.

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

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.

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

Follow Adafruit on Instagram for top secret new products, behinds the scenes and more https://www.instagram.com/adafruit/

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


Maker Business — A development to watch: Intel in Ohio

Wearables — This sensor is the key to color detection

Electronics — Vias in pad?

Python for Microcontrollers — Python on Microcontrollers Newsletter: CircuitPython 7.3.0 RC0 Out and Much More! #Python #CircuitPython @micropython @ThePSF

Adafruit IoT Monthly — Detecting Water Pollution, Smart Girder, and more!

Microsoft MakeCode — MakeCode Thank You!

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

New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — JP’s Product Pick of the Week — 4pm Eastern TODAY! 5/17/22 @adafruit @johnedgarpark #adafruit #newproductpick

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.