MFM drive interface

Early hard disk drives from the 1980 lend a lot from their predecessors, floppy disk drives. Essentially, a "hard disk" drive (or "rigid disk" drives as they were sometimes called in early Micropolis documentation) are floppy disk drives in a fully capsulated enclosure utilising a magnetic medium that is not floppy but rigid. These two factors allow for smaller tolerances in how dense magnetic information is stored on the drive's platters and in a more reliable operation due to higher repeatability without error of the drives positioning mechanics. Manufacturing the drive platters as one unit together with the read/write heads in one capsuled assembly is usually called a Winchester drive.


Micropolis drives from the 1220 series all through to the 1320/1330 series use the ST506/ST412 interface, the de-facto industry standard for MFM disk drives. The ST506/ST412 interface was adopted by numerous HDD manufacturers of the time and was widely used from 1980 on and well into the 1990s.

Tracing the roots of the interface standard leads back to a very early hard disk drive, the Shugart Associates SA1000, an 8-inch hard drive which, besides being the root of the ST506 interface standard, also established disk drive and drive bay formfactors. The Shugart product line at the time consisted of floppy drives and this early SA1000 rigid disk drive. And Shugart engineers of the time designed controllers for floppy and rigid disk systems pretty similar and as such the ST506 interface is an extension of a floppy drive interface.

The successor hard disk drive, Shugart Associates' ST506, was the first 5.25 inch hard disk drive. It stored up to 5 MB after formatting (in 153 cylinders (also called "tracks" in floppy drive lingo, using 4 heads, 26 sectors/track, 256 bytes/sector). Similarly to the development of floppy drives, this hard disk device was then quickly improved by upping the storage density. In 1981 Shugart brought the ST412 hard disk drive which made 10 MB of on-line storage available by doubling the cylinder (track) count to 306. At that point, the interface used to control these drives had become the industry standard, and was either called the "ST506 interface" from the first drive to use it, or the "ST506/ST412" interface or the "ST412 interface" named after the third model to use it. However the ST-506 / ST-412 interface was called, at that point, the semantics and logics of the interface had settled.

Reading MFM drives today

As part of hobbist or archival endeavours, people still operate computers from the early days of computing. Intel 8080 or Zylog Z80 based machines like the IMSAI 8080, the Altair 8800 or computers by Vector Graphic Inc. are popular. These machines offer the S-100 bus which allows expansion cards to be plugged into the computer. If you happen to operate one of those computers, you can get hold of a 100085 Micropolis floppy controller and access a disk drive. Other vendors also offered hard disk controllers for the S-100 bus, for example XCOMP, Morrow or CompuPro.

With MFM drives, the actual drive knew little about how data was laid out onto the magnetic surface as such semantics were delegated to the attached controller. That's one reason why it is not as easy as it used to be to read/write MFM drives with a ST-506/ST-412 interface with modern hardware. Thus retro computer enthusiasts usually build a PC with hardware of the time and interface such disk drives with IBM, Western Digital, Adaptec etc. controllers from the same period.
Another option today is to use a modern interface or emulator to access these drives. There's a device called the DREM which can control MFM drives but isn't fully able to read existing data from a legacy drive. And there's the more capable "MFM Hard Disk Reader/Emulator". The latter can read existing data, extract it into a drive image and is able to emulate the original drive from the created disk image. Here's a video of Adrian demonstrating the device. Note that due to how MFM controllers of the time had variations in details about the control of the attached drive, reading a drive might require the exact same controller (or its semantics) to be able to read a drive's data back.

Related reading