11

I have a Seagate ST-225 20MB hard drive. It used a ST-412 MFM (Modified Frequency Modulation) controller which unfortunately went to the great bit bucket some time ago.

Is it possible to get this hard drive working with a modern PC? My thoughts are to either find a ST-412 MFM controller for ISA and hope I can find some drivers that work in Windows XP or Linux or to try to get or make some sort of adapter bridge to SATA, PATA/IDE/ATAPI or USB.

I know that there are ESDI->SCSI adapters that could be chained to a SCSI->Something Modern adapter, but AFAIK ST-412 is an older protocol that is very similar to but not quite compatible with it.

I don't have any need to retrieve/salvage data from this drive. I'm more interested in the novelty of getting such a disk working again and astonishing little children with the fixed storage media of their ancestors.

Assume for the sake of this question that the drive itself is working - the scope of the question is how to interface it.

  • 2
    Maybe use some microcontroller with USB and enough GPIO to drive it? The pin assignment is documented, "just" needs proper timing for MFM read/write. Sounds like a major project, though ... ATA is no use, the interface is too different, so you might as well use anything the microcontroller supports out of the box, which would be most likely USB, and then you can implement USB storage on top of it. – dirkt Mar 4 '17 at 19:56
  • 3
    Or perhaps something like this MFM board (which allows at least reading real drives, although its main use is emulating MFM drives). A real ST-506 might still be supported on Linux, there appears to still be related code in the kernel. – Stephen Kitt Mar 4 '17 at 20:43
  • 1
    It's an interesting project, but you are swimming against the tide. Most retro-computing projects seek to attach modern flash storage devices to some ancient disk controller. – Brian H Mar 5 '17 at 3:25
  • 6
    With MFM disks, didn't the controller and drive effectively form a pair? I could be wrong, but as I recall things, the drive itself fed (and accepted) analog signals to/from the disk controller, which in turn was responsible for actually encoding/decoding the data. So you might need to find a MFM controller of at least the same model as was used with the drive. The major difference between IDE (now called PATA) and many previous interfaces was how this part of the controller was moved to the drive itself; hence Integrated Drive Electronics. – a CVn Mar 6 '17 at 21:16
  • 1
    The ST-412 controller is an updated and backwards compatible version of the ST-506 controller. The ATA command set and interface registers are backwards compatible with the ST-506. In theory at least, any OS should be able to use an ST-412 controller as a very primitive IDE drive. The first IDE drives were basically just drives with a builtin ST-506/412 compatible controller. If nothing else if you can find an ISA MFM or RLL controller and a PC with ISA slots to stick it in it will work MS-DOS (and by extension Windows 95/98/ME since they can fall back to MS-DOS if necessary). – Ross Ridge Apr 18 '17 at 22:06
6

Unless going the SCSI bridge route described in another post, you will very likely need a PC with an ISA slot - such mainboards were only common up to the Pentium 3 era, unless you are using a PC using the PICMG backplane form factor used for industrial control.

ST-506 interface drives (aka MFM/RLL) were very dependent on the controller paired to it. A factory new drive was commonly low level formatted using a tool in the controller ROM (debug g=c800:5 IIRC) and would then only work correctly with this or a similarly designed controller card until low level formatted with another controller's tool. In some cases, defect lists had to be typed in from a label on the drive itself, or from accompanying paper documentation, or built by the firmware tool. These were then stored in some location on the drive itself for use of the controller - an ST-506 drive does not hide damaged sectors at its connector, this is the controller card's job to handle.

There is no drive identification of any kind with this interface, the BIOS and the controller firmware has to be told what kind of drive is connected and what its operating parameters are.

An old school IDE drive was basically offering a reduced ISA bus on its connector, emulating a WD1003 controller card.

It can prove necessary to disable most or any on-mainboard IDE, SATA, Floppy functionality to stop it from conflicting with the ST-506 card.

Be aware that two standards - ST-506 aka MFM/RLL, and ESDI, existed back then that had identical looking connectors and superficially identical looking controller cards. These also are very similar from a what-to-do view, but the electrical interface drive-to-controller is totally different.

Be aware that some drives need terminating resistors on the last drive on the cable enabled or installed, similar to SCSI. Be aware that some of the signalling on the two cables is essentially analog.

If experimenting, mind that accidentally letting the low level format tool from a ST-506 controller loose on an IDE drive (some IDE might have it built into a corner of their own firmware, or the firmware from an actual controller card could mess with registers on an IDE drive installed in the same machine) was a known way of messing up IDE drives back in the day.

4

As people have mentioned in comments, you're looking at a lot of work. You are better off trying to locate a MFM controller. If you only want what is on the disc then maybe somebody with a controller would read it for you. That is of course assuming the data on the drive hasn't degraded.

While the electrical connections are known and well-documented the format of the data on the drive is also not what was used on later IDE drives. MFM drives use RLL encoding. That's when it gets fun because there were different configurations of RLL encoding. Controllers needed to look at the disk and figure out which was used. I hazilly remember there being a way that you could specify during format, but I only used MFM drives for a very short period of time. It was more my curiosity on how something worked than needing it for a particular task.

About half of the electronics to read the disk, and the optional second drive, are on the card. That card had BIOS which presented the drive(s) to the computer as a storage device and hooked interrupt (INT)13 to make it bootable. SCSI controllers also do this. When a drive is presented as INT13 however you don't really need a driver to talk to it.

A software driver was not used to describe drives until Windows 95, which booted from MSDOS. A actual software driver for harddives didn't exist until 2000. Linux started in 1991 so is not much older than Windows 95. The drive is probably predates that by 10 years.

This is 20 megabytes so you're not really going to be able to use it on a modern operating system. At the time 20 megabytes was a lot compared to the 360 K boot disk of dos 3.3(if it was used in a 8088).

  • "Linux ... is not much older than Windows 95" Also note that early Linux only supported IDE/ATA drives, in part I'm sure due to its not relying on the BIOS. "20 MB was a lot compared to the 360 K" True, but it was still quite managable to back up to a set of 1.2 MB floppies. :-) – a CVn Apr 16 '17 at 20:53
  • The Linux 1.2.13 kernel has a compile-time option to add support for XT hard drives ('at least the DTC 5150X'). According to the comments this was added in 1992. – john_e Apr 16 '17 at 22:45
  • I actually need to correct that part of my answer. Unix probably had kernel support for MFM drives, but Linux likely did not. An old edition of BSD 4 would probably support it, but I don't know for sure. – Rowan Hawkins Apr 16 '17 at 22:52
  • The dtc5150 looks like a floppy controller and not drive controller. – Rowan Hawkins Apr 16 '17 at 22:59
  • 1
    MFM controllers use Modified Frequency Modulation (MFM) as the encoding. RLL controllers use Run Length Limited (RLL) encoding. The drives used with these controllers weren't intelligent enough to encode anything, so just used the encoding the controller used. You could take a 40MB MFM formatted drive and turning it into a 52MB RLL formatted drive simply by attaching it to an RLL controller and reformatting it. – Ross Ridge Apr 18 '17 at 21:54
4

There were such things as SCSI-to-MFM bridgeboards, such as the Adaptec ACB-4000 or the Xebec 1410.

The only experience I've had with this is trying to use Linux (running on a Pentium II PC) to access an MFM drive with an Xebec 1410-type bridgeboard. I was able to establish partial communication with the drive by disabling parity and applying a patch ('adaptec-40XX-1.02') to the kernel which hardcoded the drive size. However I didn't manage to get as far as reading data before the drive failed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.