Reminiscences on 5.25″ floppy drives of the early 1980’s

Raymond Chen

Raymond

There is some discussion going on over on Reddit in response to my story of how two seconds was chosen as the floppy disk cache validity.

There were quite a few links to pictures of 5.25″ floppy drives, but none of them were correct. They all showed the half-height drives, which didn’t come onto the scene until the IBM PC AT in the mid 1980’s. The floppy-disk-changing speed tests were performed on full-height drives.

One obvious difference between half-height and full-height drives was the size, but another difference is the nature of the drive latch. On half-height drives, the latch is operated by twisting, but on full-height drives, the latch swings outward. Another more significant difference for the purpose of the story is that on half-height drives, opening the latch ejected the floppy disk from the drive, but on full-height drives, you had to reach in and pull the disk out.

Reaching in and pulling out the floppy disk no doubt added precious tenths of a second to the overall operation of changing floppies.

There was no disk change signal in the original floppy drives, so you couldn’t ask the drive whether the disk had changed. There was also no media sense signal, so you didn’t even know whether there was a disk in the drive at all. (Over a decade later, one of my colleagues would reverse-engineer a way to detect a floppy in the drive without spinning up the drive.)

The disk cache validity was maintained on a per-drive basis. After all, you can’t swap half of a floppy disk. If the drive remained in continuous use, or at least was never idle for more than two seconds, then the entire contents of the cache for that drive was considered valid. Only after two seconds of inactivity did the cache get invalidated, and it invalidated the entire cache for that volume. Because, y’know, half of a floppy.

Bonus chatter: IBM PC floppy disks were originally single-sided, with a capacity of 160KB. This meant that you could store nearly an entire second of CD-quality stereo audio. Of course, you couldn’t actually stream the data off the drive that fast.¹ You’d probably have to read the whole thing into memory first. and then play it out the one-bit speaker. So maybe you didn’t need CD quality. Which was probably a good thing, because you didn’t have 160KB of RAM either. And because CDs hadn’t been invented yet.

¹ Floppy drives of that era had a maximum transfer rate of around 1000 kilobits per second, but CD-quality stereo audio requires around 1400 kilobits per second, so even at theoretical maximum speed, you wouldn’t be able to stream the data off the floppy fast enough. In practice, the theoretical maximum was nowhere near achieved due to the rotational nature of the floppy disk: The floppy rotated at 300 revolutions per minute, or five revolutions per second. Therefore, you could read at most five tracks per second. The disk had forty tracks, which means that if you had a magical drive head with zero seek and settle time, it would take you eight seconds to get every bit of data to pass under the drive head for reading.

Raymond Chen
Raymond Chen

Follow Raymond   

14 comments

Comments are closed.

  • Avatar
    chazste@yahoo.com

    A couple of things. First I thought Sony and Phillips did get the audio CD out in time for the 5150 PC. I was wrong. According to Wikipedia they missed it by a whole year. But the point is still somewhat valid because Microsoft did push CD-ROM technology on machines of that vintage.

    My other thought was that IIRC 5 1/4″ floppy disk sectors were interleaved so it takes two or three rotations to read a single track.

    • Raymond Chen
      Raymond Chen

      Interleaving is to give the CPU time to process one sector before delivering the next one. So yes, I’m also assuming an infinitely fast CPU that can process sectors as fast as they arrive from the controller.

  • Avatar
    R Wells

    The IBM PC’s floppy controller only ran at 250 kbits per second. The megabit floppy controller didn’t arrive until 1991 along with the 2.88 MB drive.

    It is a good thing that side switch toggles never took hold on the IBM PC. That treats a double sided disk as a pair of single sided disks and instantly swaps the active side. Would have wrecked the cache delay logic.

  • Avatar
    Keith Patrick

    My next door neighbor in the late 80s had an 8″ drive. The disks looked like regular 5 1/4″s, except they were comically bigger. At the time, all I really messed with was Commodore, so 8″ drives and 4k *colors* (I had another neighbor with an Atari ST) were very exotic things to me.

  • Avatar
    Paul Topping

    There ought to be a name for this practice of laughing at how slow (or small, or whatever) technology was back in the olden days. Retro-gloating? Reverse-tech-envy?

  • Avatar
    Jonathan Duncan

    A question about the linked article on Win95 almost floppy detection algorithm.

    The article explains why the various strategies for training were prohibitive but doesn’t mention the strategy of “wait until the first time the drive is read from successfully, at that point we know a disk is present, so quickly run the algorithm”, why wasn’t this approach taken?

    If I had to guess I’d say that either a) The magic technique relied on something like the output of the read head when reading a non-moving platter, and having active reads from the drive would make the data returned unusable, or b) The confusion cost of “the disk detection feature won’t detect disks until the first time you actually use your disk” was considered too bad.

    • Avatar
      Erik Fjeldstrom

      Sadly all the comments were lost in the great blog migration, but (b) was essentially the reason. IMO another factor is likely that few programs would take advantage of this feature: floppies were already starting to disappear as an installation medium by this time, and older programs wouldn’t know about this ability (and so would still require you to press the “ANY” key to continue!)

      • Avatar
        cheong00

        Oh, the old joke regarding somebody insist on finding a key labeled “Any” on the keyboard, so they mailed him a label printed “Any” on it and make him paste it on the spacebar.

        You want it, you get it.

        • Avatar
          cheong00

          Btw, any story on the idea regarding “Press any key to continue”?

          Yeah technically most of the keys on keyboard will let you continue (I think Ctrl-C will not work when you set “break on”… “break on” and “verify on” are another set of old memories), but why not be more specific and say “Press Enter to continue” or “Press space to continue”?

          • Avatar
            Rick C

            Most likely, the answer is “the programmer didn’t think ‘any key’ would confuse people, because it means, you know, any key.”

          • Avatar
            toasterking

            I’ve never used the word “any” in such a prompt for that reason. At one point, I saw a program where the developer was thinking ahead and more specifically prompted “Type a character to continue” and I adopted that practice. 🙂

  • Avatar
    Neil Rashbrook

    If you wanted to play music from your floppy disk than instead of streaming it you might want to deliberately fragment your file so that your drive has to seek backwards and forwards to read it? Well, maybe you wouldn’t quite get the same results as people do these days by hooking up their floppy drives to a Raspberry Pi…

  • Avatar
    Jernej Simončič

    > Another more significant difference for the purpose of the story is that on half-height drives, opening the latch ejected the floppy disk from the drive

    I’ve only ever used half-height 5.25″ drives, and none of them ejected the floppy when you unlatched them – you had to reach in and pull it out.