The IBM PC BIOS had provisions for up to four floppy disk drives, by virtue of returning the number of floppy disk drives in a two-bit field plus a none/some flag (allowing for reporting values of 0, 1, 2, 3 or 4 floppy disk drives being installed). (See BIOS interrupt 11h, GET EQUIPMENT LIST, bits 0 and 7-6 of register AX as returned.)

Of course, most common configurations had one or two floppy disk drives installed. These were, intuitively enough, labelled A: and B:.

  • What happened if you installed a third floppy disk drive in such a system?

  • What happened if you did the same in a system that, in addition to the two floppy disk drives, also sported a hard disk? (For simplicity, you can assume that the hard disk held a single partition.)

Specifically, how were drive letters assigned by MS-DOS in each of these cases? Did the hard disk (which would ordinarily be C:) get pushed further into the alphabet (making it D: in the example above), or was the hard disk partition still referred to as C: and the third floppy disk drive became D:? Or some other combination?

  • 1
    I once saw a 4-floppy PC. It had the second two drives on a separate card. From memory they were D: & E:. – Chenmunka May 16 '17 at 13:40
up vote 22 down vote accepted

As you might imagine, the answer depends on the version of DOS.

The Wikipedia article on the topic matches my memories.

Before MS-DOS 5.0

Before MS-DOS 5.0, the basic assignments are as follows:

  • A: goes to the first floppy drive, if any, or to a “phantom” drive;
  • B: goes to the second floppy drive, if any, or to a “virtual” floppy drive (the virtual floppy drive was mapped to A:, but DOS remembered whether the floppy in the drive was A: or B:, prompting the user to switch when necessary).

Then DOS assigns drive letters to any remaining floppy drives (up to four in total), then to the first primary partitions of the first two hard drives (if any), then to the logical partitions in the first extended partition of the hard drives, then to device drivers, then to TSRs. (Before MS-DOS 5.0, other hard drives and other primary partitions were ignored by default.)

Applying this to your two examples:

  • adding a third floppy drive to a two-drive machine, with no hard drive, would result in floppies on A:, B: and C:;
  • adding a third floppy drive to a two-drive machine with a hard drive would result in floppies on A:, B: and C:, and the hard drive on D:.

MS-DOS 5.0 and later

With MS-DOS 5.0 and later, the basic assignments are as follows:

  • A: goes to the first floppy drive, if any;
  • B: goes to the second floppy drive, if any, or to the “virtual” floppy drive if there is only one floppy drive, or to nothing if there is no floppy drive;
  • C: always goes to the first primary partition on the first hard drive.

Then DOS assigns drive letters to the first primary partitions on the remaining hard drives, then to logical partitions, then to other primary partitions, then to other floppy drives (up to four altogether in practice), then to device drivers, then to TSRs (MSCDEX and network redirectors typically).

So a machine with one primary partition and four floppy drives would end up with floppies on A:, B:, D: and E:, and the hard drive on C:.

Applying this to your two examples:

  • adding a third floppy drive to a two-drive machine, with no hard drive, would result in floppies on A:, B: and C:;
  • adding a third floppy drive to a two-drive machine with a hard drive would result in floppies on A:, B: and D:, and the hard drive on C:.

Other combinations were of course possible. For a while I had a single-floppy-drive PC (no hard drive) with A: and B: mapped to the floppy drive, and C: a RAM drive. OEM versions of DOS could behave differently, and device drivers can pretty much do what they want (including replace existing drives).

Lots of software fails if the boot drive isn’t A: or C:. Drive assignments would typically get messed up by installing an additional hard drive (which would shift the logical partitions of the first hard drive by one); you could also run into trouble with network drives which might replace a local drive assignment.

  • 1
    What part(s) of this is MS-DOS specific, and what depends on the BIOS or whatever? I had a Rainbow 100 from DEC which ran MS-DOS 3.1 I think. The floppies were A:, B:, C: and D:, and the two partitions on the hard disk were E: and F:. – Wilson May 16 '17 at 15:03
  • 1
    @Wilson it’s DOS-version specific; prior to 5.0, floppies were assigned sequentially starting with A:, which matches what you had on your Rainbow. (There were also some OEMs with different behaviour...) – Stephen Kitt May 16 '17 at 15:08
  • 2
    @Wilson What Stephen said; IIRC MS-DOS 5.0 was the first version of MS-DOS that you could actually walk into a store and buy. Versions before that were tailored for each OEM, which of course means that MS-DOS 3.1 wasn't really Microsoft DOS; it was something very much based on the code made available by Microsoft, but included lesser or greater adaptations to the specific hardware of the particular system. Of course, there would be a point to avoid changing user-visible behavior, but with some companies, you just never know... – Michael Kjörling May 16 '17 at 16:41
  • 1
    My very first computer booted from a ROM drive assigned J:, so apparently manufacturers had some say on drive assignments and variations are possible (Epson QX-11 aka "Abacus", MS-DOS 2.11). – Euro Micelli May 17 '17 at 3:47
  • 2
    @rackandboneman back then, yes, there was a difference. People used the DOS supplied with their PC; very few people built their own PC, and few upgraded their DOS before 5.0. If you really wanted a new DOS you bought a new PC (something Microsoft tries to re-introduce with every new Windows release), but wanting a new DOS on its own was unusual unless you were an IT journalist (and then you just waited or asked for a new review copy, or a new review PC) or a developer (and a new PC would bring huge performance increases, so you’d just expense that). – Stephen Kitt May 20 '17 at 11:51

While Int 11h may have been able to return up to four drives available, in practice I think you'll find it extremely difficult to find a system with more than two drives. Not impossible, just very difficult.

The reason is that for the overwhelming majority of DOS systems, a floppy cable would only support two drives, see this super-user answer for the details of why: https://superuser.com/questions/849079/what-is-the-little-twist-in-this-floppy-ribbon-cable-for

This means that in this situation, with only a single 34 pin header, you're stuck with a maximum of two floppy drives.

I'd make a guess that the ability of BIOS to return up to four was due to the heritage of DOS, being basically a clean room implementation of a CP/M like operating system for the 8086. CP/M did correctly support four drives on a single cable, since it didn't do the twist, but instead relied on setting jumpers on the drives. And there are four drive select pins on the standard 34 pin floppy cable: https://allpinouts.org/pinouts/connectors/data_storage/5-1-4-inch-floppy-34-pin/

The decision to support four drives in the BIOS was quite possibly made before IBM made the decision to avoid the jumper issue, configure all drives as B:, and then throw a twist in the cable to get the far end drive to respond to drive select 0 (i.e. A: )

So to get four drives on a DOS system, you'd need either a system that used a non-standard cable, i.e. straight through without the twist, and some fiddling with jumpers on the drives, or a motherboard with two floppy headers.

Granted, I came fairly late to the MS-DOS party, getting my first DOS PC in 1991, by which time hard drives were commonplace. However the fact that two floppies places the first hard drive partition at C: and the fact that this has been so for at least the last 30 years, and still is the de facto standard today, suggests very strongly to me that anything more than two floppy drives was extremely rare, if not non-existent.

Certainly possible, DOS was incredibly good at dealing with changing setups, notice how it progressed with no trouble at all from DSDD 360K drives up through 1.2mb, 1.44Mb and later 2.88Mb floppies.

Might be another interesting retrocomputing question to ask. "Did anyone ever make a DOS machine with more than two floppy drives?"

  • 3
    While there were probably few, if any, PC clones with a 2nd motherboard floppy connector, it was quite common to add a 2nd floppy controller when needed. Typical examples were to add an external floppy - there were no USB drives and using serial or parallel would be incredibly slow, so you would add another controller with the cable brought out the end of the card. Why? 1.2 Meg. floppy on an older machine. 360K floppy for compatibility on an AT-style machine without enough internal space. 3-1/2" floppies on older machines. – manassehkatz Jul 12 at 4:13
  • @dgnuff “I think you'll find it extremely difficult to find a system with more than two drives” — tell that to the PC under my desk, with its three floppy drives... Systems with more than two drives were uncommon, certainly, but they weren’t difficult to find, at least not during the 80s when people commonly dealt with a mixture of 5.25” and 3.5” floppies. Many playground floppy disk swap-fests were enabled by kids with more than two drives in their computers! – Stephen Kitt Jul 12 at 7:46
  • Besides the fact that I don't see any answer to the question in this answer, you appear to be conflating DOS with BIOS with hardware with cabling. "The last 30 years" excludes the first nearly decade of the IBM PC, let alone its predecessors. Calling DOS "a clean room implementation of a CP/M like OS" seems debatable at best, and a misrepresentation of facts at worst. The BIOS had no concept of A:, B:, C:, or Z:, as drive letters were a CP/M construct carried over to DOS, later to OS/2 and Windows NT; other OSes (XENIX comes to mind as a contemporary alternative) use different representations. – Michael Kjörling Jul 12 at 10:21
  • @manassehkatz Besides the fact that parallel (and even more so serial) was slow, you might want to have your printer hooked up to the parallel port (which was its common use before USB and network printers took over) -- and while two serial ports wasn't that uncommon (later, one would be occupied by a modem, and the other a mouse...) systems typically had only one parallel port. While passthrough did exist, that was never an ideal solution, and having to dig around behind the computer to unplug and replug appliances wouldn't be a particularly appealing option in day-to-day usage. – Michael Kjörling Jul 12 at 10:26

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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