36

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
  • 3
    I once saw a 4-floppy PC. It had the second two drives on a separate card. From memory they were D: & E:.
    – Chenmunka
    Commented May 16, 2017 at 13:40

2 Answers 2

39

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.

19
  • 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:. Commented May 16, 2017 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...) Commented May 16, 2017 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...
    – user
    Commented May 16, 2017 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). Commented May 17, 2017 at 3:47
  • 3
    @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). Commented May 20, 2017 at 11:51
-2

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?"

6
  • 6
    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. Commented Jul 12, 2018 at 4:13
  • 8
    @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! Commented Jul 12, 2018 at 7:46
  • 8
    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.
    – user
    Commented Jul 12, 2018 at 10:21
  • 2
    @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.
    – user
    Commented Jul 12, 2018 at 10:26
  • 4
    Indeed, it was no big deal at all to do 3rd/4th floppy drives as others have mentioned above. Even more than that wasn't terribly uncommon as I bought an 8 floppy drive controller (with its own BIOS on board) off the shelf from a local computer shop back in the day. No, I didn't have 8 floppies! Actually just had 3, but the controller card's BIOS supported a 2.88 MB drive I had that was unsupported by the system BIOS. Commented Jul 18, 2019 at 18:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .