

PCs generally relied on the user correctly identifying the drive type in BIOS setup. Unfortunately this mechanism never became widespread. The mechanism was later enhanced with another pin to provide two bits of information and enable detection of 1.44M, 2.88M, and 1.2M drives. First, a pin was added to distinguish between 720K and 1.44M 3½” drives. In some IBM machines built around 1990, drive detection was possible. For this reason, operating systems generally rely exclusively on CMOS information for detecting the type, if not presence, of floppy drives. To software, a typical 1.2M 5¼” drive does not look any different than a 1.44M 3½” drive-especially when there’s no disk in it. This method seems somewhat brutal but must have worked reliably enough for IBM to use it.īeyond this, drive detection gets very sketchy. On a 40-track drive, it will activate sooner because the drive was in fact not able to step all the way to track 48 (the head cannot physically move that far). On an 80-track drive, TRK0 would go active after 48 steps.

The method IBM’s PC/AT BIOS uses is to seek to track 48, then step back towards the outermost track and watch for the TRK0 signal. It’s possible to detect an old 40-track drive. If drive presence is detected, the real fun starts. If no drive is present, recalibration will fail because the FDC will never detect the TRK0 (track 0) signal (typically after stepping 80 or so tracks). If a (functioning) drive is present, the RECALIBRATE command will succeed. In the ideal world, software could determine how many floppy drives are attached, what their capabilities are, and what media is installed in them, if any. In the real world, software can only accomplish some of those tasks.ĭetecting whether a drive is present is the only easy part. Detecting floppy drive types and installed media is a far trickier topic than it should have been.
