• Please review our updated Terms and Rules here

MFM drives in AT machines

RetroSpector78

Experienced Member
Joined
Dec 30, 2018
Messages
153
Location
Belgum
Hi,

I have a 286 with a 16 bit ISA Western Digital MFM controller card and a Seagate ST-124 MFM hard drive (20MB).

I've worked with MFM drives and controllers before on XT systems, but this is the first time I'm seeing one in an AT.

Now, on an XT you don't have a CMOS setup utility to setup the drive. You low level format the drive using some built-in routing in the MFM controller card bios, and the XT can immediately start using the disk.

On the AT machine, there is a CMOS utility where you setup the drive (cylinders / heads / sectors / ....). The 286 can see the drive that way and can make use of it, but I had some questions regarding the differences between using MFM controllers drives on an AT vs an XT based system.

  • How do you low-level format the drive on an AT ? Do I need to use an external piece of software ? Does Western Digital provide something like that ?
  • Am I correct to assume there is no built-in routing or bios in the 16 bit ISA mfm controller card (like on the 8 bit MFM cards - g=c800:5) ?
  • Why is it required to setup the drive parameters in the bios of the computer, and why is it that the XT machine can use the disk without any such bios settings ?
 
How do you low-level format the drive on an AT ? Do I need to use an external piece of software ? Does Western Digital provide something like that ?
Yes and yes. I'll have a look around my stash. I've attached it at the bottom.

Am I correct to assume there is no built-in routing or bios in the 16 bit ISA mfm controller card (like on the 8 bit MFM cards - g=c800:5) Why is it required to setup the drive parameters in the bios of the computer, and why is it that the XT machine can use the disk without any such bios settings ?
Like you said above, the XT card has a BIOS on it.

Why is it required to setup the drive parameters in the bios of the computer, and why is it that the XT machine can use the disk without any such bios settings ?
Same answer as the one just above this.

View attachment WDFMT.ZIP
 
286 AMI BIOS 'diagnostic' utilities (which you enter by pressing DEL - just like setup) has low level format and interleave utility which you can use. Works fine in most cases. You can also use CheckIt, or SpeedStor to initialize (low level format) your harddrive http://minuszerodegrees.net/software/speedstor.htm - or you can use debug command.

Like Stone said - XT drive controllers have addon BIOS - similar to SCSI controllers or modern SAS controllers.
 
I have a problem with people calling them "MFM drives". The MFM, or any other encoding, is a function of the controller, not the drive. You can use any modulation/encoding that you'd like within the operating parameters of the read/write channels. My 14" SA4008 drive uses MFM encoding, for example. My 700MB 5.25" ESDI drive uses MFM also. Most PC floppy drives use MFM encoding. Neither is apparently what the OP is speaking of.

It's far preferable to identify the drive bt its interface type, as in "ST506 interface" or, better, "ST412 interface". FWIW, I don't believe there was ever a generic name given to the interface; it's always been associated with Al Shugat's Seagate.

It's similar calling the RTC/Configuration RAM device "CMOS". By the time of the 80386, the typical motherboard had lots of CMOS logic ICs.

/rant
 
I had a 386 that could low level format a drive from within setup, after setting the parameters.
 
It's not a precise term. What Seagate, et al. mean is that using commodity controllers that's what they've been designed to use. Seagate et al. always classify them by the interface type, e.g., they're not SMD are they?

The drive doesn't know from MFM or any other encoding method. Some of these drives were used as video frame buffers.

You don't call floppy drives "MFM" (or GCR, or MMFM or FM) do you? But they use that encoding.

I realize that I'm shouting at the wind, but sometimes it gets to me.
 
If using an 8-bit controller (WD1002s-wx2) in a newer machine (Pentium Socket 7), what is the suggested method for low level format? I have a FH 10MB IBM drive. I tried using the controller's LLF, and it runs to completion, but FDISK (MSDOS 3.30) reports an error when I run it, regardless of whether I boot after the LLF or not.

I downloaded the .zip file in this thread and can try that. I have not looked at the BIOS setup to see if it has the capability.
 
If using an 8-bit controller (WD1002s-wx2) in a newer machine (Pentium Socket 7), what is the suggested method for low level format? I have a FH 10MB IBM drive. I tried using the controller's LLF, and it runs to completion, but FDISK (MSDOS 3.30) reports an error when I run it, regardless of whether I boot after the LLF or not.

I downloaded the .zip file in this thread and can try that. I have not looked at the BIOS setup to see if it has the capability.
https://stason.org/TULARC/pc/hard-d...L-CORPORATION-Two-MFM-ST506-412-driv-222.html

That ZIP file is, as stated, for an AT.

Since you're using an 8-bit controller you might do better to set up (format) the drive in an XT and then bring it over to the Pentium. It's also possible the Pentium is just too fast for an 8-bit controller even when the drive has already been formatted.
 
DOS <--> BIOS <--> Hardware
I.e. DOS communicates with a hard disk BIOS (wherever that BIOS is located) and that BIOS communicates with the controller and hard disk (the hardware).

As for the location of the 'MFM' hard disk BIOS, refer to the diagram at [here].

Why is it required to setup the drive parameters in the bios of the computer, and why is it that the XT machine can use the disk without any such bios settings ?
It is the hard disk BIOS that has the 'responsibility' of knowing the parameters of the attached drive.

For XT-class MFM controllers, the MFM hard disk BIOS resides on the controller. Different techniques have been used by different XT-class MFM controllers to 'record' the parameters of the attached MFM hard disk drive. Examples at [here].

In the move to the AT, the location of the MFM hard disk BIOS moved to the motherboard. So, now the motherboard has the responsibility to 'record' the parameters of the attached MFM hard disk. The 'CMOS SETUP' was the logical place to record those parameters.
 
https://stason.org/TULARC/pc/hard-d...L-CORPORATION-Two-MFM-ST506-412-driv-222.html

That ZIP file is, as stated, for an AT.

Since you're using an 8-bit controller you might do better to set up (format) the drive in an XT and then bring it over to the Pentium. It's also possible the Pentium is just too fast for an 8-bit controller even when the drive has already been formatted.

Yes, I noticed that when I read the READ.ME in the zip. The wd1002s-wx2 controller manual is on the minus zero degrees site, so I set up the jumpers for to match the drive. I don't have an XT, just a 5150. I'm trying to determine if the drive works. I'll try to format in the 5150 using an external power supply.
 
I'll try to format in the 5150 using an external power supply.

Not to advocate for bad behavior, but back in the day I had a 5150 equipped with an ST-412 running off the original power supply and it... seemed to work fine. But I suppose these things aren't as young as they used to be.
 
Last edited:
DOS <--> BIOS <--> Hardware
I.e. DOS communicates with a hard disk BIOS (wherever that BIOS is located) and that BIOS communicates with the controller and hard disk (the hardware).

As for the location of the 'MFM' hard disk BIOS, refer to the diagram at [here].

Thx for the excellent reference. Much clearer now, was also going to ask about the interrupts but see that's also covered. Excellent.
So these is really a clear distinction between XT and AT based MFM controller (XT ones always having a bios to manage hard drive interaction, and AT ones never had a bios but always rely on the AT computer bios to configure the hard drive and then the computer can talk to the controller).
Does that mean you could in theory use an XT based MFM controller in an AT system (providing they don't clash with memory / irq / IO resources) but never the other way round ?

It is the hard disk BIOS that has the 'responsibility' of knowing the parameters of the attached drive.

For XT-class MFM controllers, the MFM hard disk BIOS resides on the controller. Different techniques have been used by different XT-class MFM controllers to 'record' the parameters of the attached MFM hard disk drive. Examples at [here].

In the move to the AT, the location of the MFM hard disk BIOS moved to the motherboard. So, now the motherboard has the responsibility to 'record' the parameters of the attached MFM hard disk. The 'CMOS SETUP' was the logical place to record those parameters.

One thing that is still not 100% clear to me :

on an XT-class MFM controller there is a read-only BIOS ROM. When you setup a hard drive on it you either use jumpers of you dynamically configure the drive during low level formatting.
In case of dynamically configuring the drive, the info regarding cylinders / headers / sectors is never "stored" on the MFM controller card. (I guess they are somehow encoded on the hard drive itself during the LLF so that the controller knows how to interpret the hard drive layout).
If the latter is the case, it's the "magical combo" of controller card + hard drive that make it work
on an AT based system with an AT based controller you are always forced to enter and store the cylinders / heads / sectors in the CMOS ? There's no way for an AT based controller to "magically" work out of the box without the AT bios setup ?
 
Yes, I noticed that when I read the READ.ME in the zip. The wd1002s-wx2 controller manual is on the minus zero degrees site, so I set up the jumpers for to match the drive. I don't have an XT, just a 5150. I'm trying to determine if the drive works. I'll try to format in the 5150 using an external power supply.

Just FYI ... did a video a couple of weeks on LLF in XT based systems, including that particular controller card (coming from my Commodore PC-20). Feel free to take a look ... spent some time looking at lots of controllers / hard drives on XT based systems : https://youtu.be/uWWNbpd56Xs
 
Does that mean you could in theory use an XT based MFM controller in an AT system (providing they don't clash with memory / irq / IO resources) but never the other way round ?
Not just in theory... I use an 8-bit controller in my 386 all the time.

As far as the other way around... since the 16-bit section of the controller won't plug into the 8-bit slot you're not going to get it to work.


There's no way for an AT based controller to "magically" work out of the box without the AT bios setup ?
Actually, you need to set the drive type to not installed for a SCSI or RLL controller since these cards have their own BIOSes.
 
Does that mean you could in theory use an XT based MFM controller in an AT system (providing they don't clash with memory / irq / IO resources) but never the other way round ?
Yes. Either on its own, or in addition to the AT-class MFM controller. If on its own, you would normally set the hard drive number in 'CMOS SETUP' to zero, otherwise the motherboard's POST will 'complain' when it cannot find an AT-class MFM controller.

Some XT-class MFM controllers will not be compatible with the ISA bus in an AT-class computer.

on an XT-class MFM controller there is a read-only BIOS ROM. When you setup a hard drive on it you either use jumpers of you dynamically configure the drive during low level formatting.
In case of dynamically configuring the drive, the info regarding cylinders / headers / sectors is never "stored" on the MFM controller card.
I wouldn't say "never". Maybe there was an MFM card that had onboard NVRAM for the card's BIOS to store the geometry information.

... on an AT based system with an AT based controller you are always forced to enter and store the cylinders / heads / sectors in the CMOS ? There's no way for an AT based controller to "magically" work out of the box without the AT bios setup ?
I am pretty sure you are still speaking within the scope of MFM controllers, but think about an AT-class SCSI controller. 16-bit and has its own BIOS. The hard disk BIOS on the AT motherboard, and associated hard drive types in CMOS SETUP, are not used.

There is no reason why I could not design my own 16-bit MFM hard drive controller that contains its own BIOS, and say, has jumpers for selecting the desired geometry.

Basically, in an AT-class computer, there is a hard drive BIOS (including the associated hard drive types in CMOS SETUP) built into the motherboard. Your standard AT-class MFM controller uses that. And it is available for use by anything else that is compatible. But, the AT-class computer also allows for hard disk controllers that have their own BIOS.
 
Last time I checked Seagate, Western Digital, and Maxtor, etc., weren't 'people' and they called them MFM drives. :)

Yes, that's true. They have the ST-506 interface, but some could only be formated with the MFM encoding, some also could use the RLL encoding. So calling the ones MFM-drives (like ST-225) or RLL-drives (like NEC D5655) makes the difference.

ESDI is different, it's looking like ST-506 but it's incompatible. You can't attach such a drive to an MFM or RLL controller. They are not MFM. Due to their higher capacity they should be RLL, but we don't know, because all of the encoding intelligence of ESDI drives has been moved from the addon card controller into the drive electronics.
 
I can use an ST506 drive to record, or any other modulation scheme, such as FM or Manchester encoding--I believe that there was one manufacturer who used async comm for their hard drive work as a cheap solution. There's nothing inherently "MFM" about an ST506 drive just as there's nothing inherently FM or MFM about an SA400-interface floppy drive. Your encoding methods (modulation) are limited only by the characteristics of the read/write channel and the resolution of the medium.

The reason that manufacturers initially specified ST506-interface drives as suitable for MFM or (2,7) RLL has mostly to do with the media coating--and a bit of head geometry. RLL uses the same frequency spectrum as MFM (or FM for that matter), but demands somewhat more precise transition timing ('jitter"). Thicker coated media with larger particle size are "fuzzier" in this respect. When coatings improved or went to plated media, the RLL vs. MFM distinction was largely a marketing tool (you could charge more for an RLL-certified drive). But the bottom line is that ST506-interface drives are very much akin to SA400-interface floppy drives--you can shoot anything you want at them--they're "dumb" devices.

ESDI was an attempt to put the data separation and encoding on the drive electronics. The goal was to expand the number and type of devices that could be attached to a single controller and expand the bandwidth. It made sense--the closer you can put the encoding and decoding circuitry to the actual drive heads means that you didn't have to deal with transmission line problems of unencoded data.

ATA/IDE was the ultimate end of this process, moving the entire controller on to the drive. (An "IDE controller" is somewhat of a misnomer--it's primarily an interface adapter). But it is true that the modulation method with ESDI is "black boxed", just as the notion of cylinders, heads and sectors is opaque on modern IDE/ATA and SATA drives. (It's always been a bit of a black box with SCSI drives). As a matter of fact, few programs can tell the difference between IDE/ATA drives and ESDI ones--the command set is the same.
 
Back
Top