October 1st, 2019

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

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.

Topics
History

Author

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

14 comments

Discussion is closed. Login to edit/delete existing comments.

  • 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.

  • 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…

  • 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...

    Read more
    • 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!)

      • Neil Rashbrook

        It would have been at least good enough to know when to clear the cache through, wouldn’t it?

      • 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.

      • 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”?

      • 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. 🙂

      • Rick C

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

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

  • 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.

  • 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.

  • 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 ChenMicrosoft employee Author

      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.