The PC floppy subsystem

The PC floppy subsystem, ubiquitous and indispensable until the early 21st century, suffered the typical fate of many “legacy” subsystems: The initial design was adequate, but did not adapt to newer and more complex hardware.

With the original IBM PC, things were simple. The only choices were single- or double-sided 5¼” double-density drive (the single-sided drives were soon obsoleted) and how many. The number of disks was configured via switches, and the number of sides was something the operating system could easily take care of when formatting a new disk. The NEC μPD765A floppy controller was used, setting the standard for years to come.

The only significant deficiency in the original PC floppy design was that the floppy could not be locked in the drive and there was no way to determine that the disk had been replaced. As a consequence, at the start of each new disk operation the OS or BIOS had to assume that the disk may have been replaced. That was not as bad as it sounds because a new operation was assumed to start only when the drive motor had to be spun up, and the motor would be stopped about 2 seconds after the last operation completed. The assumption that the user could not replace the media within such a short time was reasonable.

Things started getting interesting with the PC/AT, which introduced high-density 5¼” drives. The drive type was configured in the CMOS, since both high-density and double-density drives were supported. Many high-density drives also supported change line reporting; a flag would be set whenever the drive door was opened. The operating system could safely assume that as long as the change line was inactive, the disk in the drive hadn’t been changed.

A new complication was the possibility of reading double-density media (360KB or smaller disks) in high-density drives (with 1.2MB formatted capacity). The OS or BIOS had no way of detecting what media was inserted in the drive and had to try changing the floppy controller data rate if an operation failed (the 360KB media used 300Kbit/s while 1.2MB media used 500Kbit/s data rate). When formatting disks, it was the user’s responsibility to select the correct media type.

The situation got even worse when the 3½” drives were introduced, first for double-density 720KB media and later for high-density 1.44MB or even extra high-density 2.88MB media. A PC in the early 1990s would typically have two floppy drives installed, often one 3½” and one 5¼” drive, both high-density. The drive types had to be correctly configured by the user because software could not reliably detect the type. Various operating systems and BIOS implementation had differing strategies for detecting lower-density media in higher-density drives.

Another problem was that the BIOS diskette parameter table, which controlled several floppy drive operational characteristics, was never designed for multiple drive types installed in a system. The BIOS was forced to more or less completely ignore the parameter table. One of the consequences was that most BIOSes used very conservative head stepping values that could not be overridden. That resulted in the typical loud whirring and buzzing noises during floppy seek operations.

The Intel 82078 floppy controller made it possible to detect both the installed drive and inserted media types in software. Unfortunately, it was too little, too late and the capability was never widely utilized, in part because not all drives supported the reporting.

A very different but even more significant problem was poor reliability of floppies, especially high-density 3½” media which used much higher recording density than the other media types. Pre-recorded distribution floppies were typically readable without errors even after many years, but user-written disks often had read errors or developed bad sectors almost immediately.

Yet another issue was the fact that while the 1.44MB drives were quite adequate when they were introduced in 1987, the capacity was no longer sufficient in the 1990s. The 2.88MB drives never really caught on. By 1995, distributing software on floppies was becoming prohibitively expensive due to the number of disks required (luckily, CD-ROMs turned out to be a very suitable replacement). Backing up hard disks onto floppies was no longer feasible either, because even the smallest disk would require many dozens of floppies to back up.

Yet floppies were still indispensable, especially for repairing non-bootable systems or customized OS installs. In the early 2000s, flash-based USB mass storage media were becoming more and more useful for exchanging small amounts of data, being faster and having much larger capacity than floppies. However, it took until the late 2000s before all systems could reliably boot from USB media and floppy drives could be completely retired.

This entry was posted in PC architecture. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *