Recovering Data From A Vintage MFM Drive

Even if you aren’t a vintage computer aficionado, you’re probably aware that older computer hard drives were massive and didn’t hold much data. Imagine a drive that weighs several pounds, and only holds 1/1000th of what today’s cheapest USB flash drives can. But what you might not realize is that if you go back long enough, the drives didn’t just have lower capacity, they utilized fundamentally different technology and relied on protocols which are today little more than historical footnotes.

A case in point is the circa 1984 Modified Frequency Modulation (MFM) drive which [Michał Słomkowski] was tasked with recovering some files from. You can’t just pop this beast into a USB enclosure; copying files from it required an interesting trip down computing’s memory lane, with a sprinkling of modern techniques that are sure to delight hackers who still like to dip their toes into the MS-DOS waters from time to time.

The drive, a MiniScribe 2012, has its own WD1002A-WX1 8-bit ISA controller card. [Michał] is the kind of guy who just so happens to have an ISA-compatible AT motherboard laying around, but he didn’t have the correct cooler for its Pentium processor. He stuck a random heatsink down onto it with a rubber band and set the clock speed as low as possible, which worked well enough to get him through the copying process.

Not wanting to fiddle with floppies, [Michał] then put together a setup which would let him PXE boot MS-DOS 6.22 under Arch Linux. He used PXELINUX, part of the syslinux package, and created an entry for DOS in the configuration file under the pxelinux.cfg directory. He then installed netboot which combines a DHCP and TFTP server into one simple package, and configured it for the MAC address of the AT machine’s 3com 3C905C-TXM network card.

With the hardware and operating system up and running, it was just a matter of getting the files off of the MFM drive and onto something a bit more contemporary. He tried to copy them to a secondary IDE drive, but it seemed there was some kind of conflict as both drives wouldn’t operate at the same time. So he pulled another solution from his bag of tricks: using a USB mass storage device on MS-DOS. By emulating a SCSI drive, he was able to get a standard flash drive plugged into a PCI USB card working, which ultimately dragged these ~35 year old files kicking and screaming into the 21st century.

We love keeping old hardware alive here at Hackaday, and documented methods to not only PXE boot DOS but use USB storage devices when you get it up and running will hopefully inspire some more hackers to blow the dust off that old 386 in the attic.

53 thoughts on “Recovering Data From A Vintage MFM Drive

      1. Modern drives use voice coil actuators, most (if not all) MFM drives used stepper motors, paired to the mechanism either directly by a gear or by a flexible piece of metal (don’t know which kind though).
        Look at the interface, there are “step up” and “step down” pins on the control bus.

        I’m a bit dissapointed this is just an article about booting dos to copy files.. I was looking foward to someone actually going out and controlling the heads and reading/decoding the analogue data.. Mostly because I started such a project once (and got stuck when I realized that I’d need a rather fast (compared to the arduino I planned on using) ADC and chip to actually read that data.

        1. The “flexible piece of metal” to move the haed is some stainless spring steel tape. Although I think the motor was no real stepper. It looked like a stepper, but some kind of brushless 3 phase construction with only three poles. So it was more or less a hybrid between stepper and (rotary) voice coil actuator. It had an optical encoder disc.

        2. i was also secretly hoping to see a project that entailed a home made wirewrapped board with an ST-506 connector on one end and a parallel printer port connector on the other end and a link to a github repository where MFM was decoded in software :-)

      2. Vintage 🤔? That makes me ancient….🤣 … my first HD was a Corvus – which I connected to a hand etched/soldered custom ROM Apple II (not plus ) ….with a similarly constructed controller…

        of course is was smaller than my PDP/8E …. 🤔

  1. I remember having to recover the data fr an accountant way back in the day. The spindle motor had died so with some creativity I drilled and tapped the center shaft the attached a high speed drill with a speed controller. started spinning up the drive on a machine that was booted with MS DOS and a batch file that kept trying to read the drive until it was able to read the directory structure.

    Once that was done copied all the data off on to another drive and had one really happy client that learnt it was a good idea make backups.:)

    Thankfully it had not had a head crash.

    1. Reminds me of the drive my Dad had in the ’80s (20 meg Seagate, or similar) that didn’t have enough spin motor torque to start spinning. He wrapped a string around the motor shaft and gave it a pull at power up, just like starting an old outboard motor! Drives were expensive enough that he did this for a year or so!

      1. Yeah, I remember about 1988 or so getting a 20 MB drive free at a flea market. The case had been pried open. To start the drive spinning, I had to insert my index finger and manually spin the exposed top platter. Copied almost all the files off it.

    2. Close to one I had to do. A law office had an XT-class machine that the MFM drive went bad on. The disk would not spin up on it’s own. So I had it in a newer system (probably ‘386 or ‘486 at the time) with the circuit board on the drive itself unscrewed (but still connected) so I could get to the flywheel/fan on the bottom. I would switch on the power, reach under the drive and manually spin up the drive. Then I would copy off as many files as I could until the disk decided to hang up again. Then I would repeat the process, and eventually got all their files off.

  2. My first hard disc was bought not working. 20 meg. Western Digital. It had a faulty chip that was WD specific. A quick search in the phone book, found their phone number in Scotland and rang them up. The guy I spoke to stuck two of the chips in an envelope and posted them to me gratis, changed the chip and it worked wonderfully, I still have the second one somewhere.

    Is the world really getting better? :(

    1. Before the WWW. Western Digital had the best tech support. They had a dialup BBS with files to download. If you needed documents you looked them up on the BBS then made note of their numbers. The next step was dialing their 1-800 support line and entering the document numbers, followed by your FAX number. A couple of minutes later the docs would be rolling out of your FAX machine.

      Even better, WD had software and docs for product lines they had sold off to other companies, such as the Orchid video cards.

    2. Yes the world IS getting better you curmudgeon: I don’t have to run a special command to park my hard drive before turning off my PC, my HDD holds frickin’ TERABYTES and cost like 1/20th of what that 20Mb one cost, and has a far longer MTBF.

  3. With tweezers.
    Just pull the directory and files canvas out with the tweezers, from the hard drive´s vent.
    Then pull every bit of the canvas, pinning them on a large wall, eventually grouping them with 16 color pins for easier reading.
    Use as many walls as needed.
    Then take photos of the walls, stitch them, and use your preferred AI to move the data to our 256HB femtoSD… if you can find it. This is where magnifying glasses can prove handy !
    Otherwise you can 3D print a handle to crank the drive and spin the disk, sensing the data with the tongue on the connector but it´s tricky.
    Don´t attempt to use a oil lamp to melt the data to fill an e-ink bottle , it won´t work!

  4. Hello, author here; just couple of minutes ago I managed to convert the important files (MS Word for DOS 4.0 documents, over 200 of them) to RTF and subsequently, PDF. This required fiddling with MS Word Converter API (GC1039). I ended up writing simple wrapper application for DLL converter library, which usable in batch mode. I’ll complete the article describing it in a couple of days.

  5. That was quite the trip down memory lane. Am I vintage as well now? hm.. I just wondered if it wouldn’t have been easier to first get an old linux kernet working on another old disk interface with an.. old disk, and then mount the mfm drive? or are there no mfm modules for old kernels?
    Good writeup, I enjoyed that. Cheers, Leonard

  6. I’m going to have to do something similar soon — with 5.25 inch floppies. Just got done archiving all my old data from the 3.5 inch floppies (using the requisite eBay usb floppy drive), but will ahve to obtain an older computer to do the 5 inch ones. Thank goodness I don’t have anything important on my stash of 8 inch floppies anymore :)

  7. If it had a network card, why not just FTP?

    Fun stuff though. I finally had to dump a lot of my old PC hardware due to space constraints, but it was always nice to imagine I -could- do stuff like this.

    1. Because then he would need to load tcp drivers and the ftp program and stuff. Not that fun to do with MSDOS.

      But I agree , he could have, if so inclined, booted an old version of linux, then he could even send the files over nfs.

      It probably depends on what was on hand at the time.

      1. That’s a fair answer!
        I did grow up in the MS-DOS era, but have forgotten the days where the OS isn’t just loading the TCP/IP stack even if you had the hardware and drivers installed.
        A fun era to visit, but I don’t miss it.

  8. Yah the MFM drive controller would be hard wired for IRQ 14 primary HDD controller, and you’d have to use an IDE controller that allowed it to be set to secondary on IRQ 15… however, might also have needed one with it’s own BIOS extension because that looks like an early-ish pentium board, and BIOS might only have supported 2 HDD.

    1. Ohhh, no it was an 8 bit controller, must have been the int03h address that clashed, IRQ would have been 7 or 9 I think (Rusty on PC/XT 8 bit stuff without looking it up) but still you’ll need the IDE to be settable at secondary address, think it was 15something.

  9. im still waiting to use the 64mb pc 100 ram chip i have sitting in a box of other ram from upgrades and street scores hoping for an old amd k62 400 and board for some retro games 98se era and a good old vodo 5 5500 agp

  10. We had a project where a customer wanted a 5MB MFM hard drive. This is when MFM was on the way out. $25,000 later and we had the screaming monster installed. FWIW it was a government customer.

    1. It’s been 20 years but I used to use an old dos terminal program and x or zmodem to transfer files. I think I still have my null modem cable around even though I haven’t used it since then. 115200 baud took a few days if you had a lot to transfer. I had a laptop from ebay with no floppy or cd drive but it came with DOS 6.22 installed and I wanted to install Windows 95. I forget how I even got that process started. I might have looked up a program that I could type into debug to receive the inital terminal program over the wire in base64 format.

Leave a Reply to rasz_plCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.