On the almost-feature of floppy insertion detection in Windows 95


Gosh, that floppy insertion article generated a lot of comments.

First, to clarify the table: The table is trying to say that if you had a Style A floppy drive, then issuing the magic series of commands would return 1 if a floppy was present, or 0 if the floppy was not present. On the other hand, if you had a Style B floppy drive, then issuing the magic series of commands would return 0 if a floppy was present, or 1 if the floppy was not present. That's what I was trying to say in the table. The answer was consistent within a floppy style, but you first had to know what style you had.

The downside of waiting until the user uses a floppy for the first time is that you have the it sometimes works and sometimes doesn't problem. Dad buys a new computer and a copy of the Happy Fun Ball game for his son. Dad turns on the computer, and then follows the instructions that come with the Happy Fun Ball package: "Just insert the floppy and follow the instructions on the screen." Dad inserts the floppy and... nothing happens because this is the first time Dad used the floppy, and he was expecting autodetection to work.

Dad says, "Stupid program doesn't work."

Dad complains to his co-workers at work. "He loves this game Happy Fun Ball when he visits his cousin's house, so I bought a computer and a copy of Happy Fun Ball, and it doesn't work!"

Dad tries again that evening and this time it works, because in the meantime, he inserted a floppy to do something else (say, create an emergency boot disk). Bizarre. This just reinforces Dad's impression that computers are unpredictable and he will never understand how to use them.

One could say that a feature that mysteriously turns itself on and off is worse than a feature that simply doesn't work. At least when it doesn't work, it predictably doesn't work. Human beings value predictability.

You can't perform the test "the first time the drive is installed" because there is no way to tell that a drive has been installed. (Classic floppy drives are not Plug-and-Play.) Even worse, you can't tell that the user has replaced the Style A floppy drive with a Style B floppy drive. The user will see that floppy insertion detection stopped working and return the drive to the store. "This drive is broken. Floppy insertion detection doesn't work."

It is also not the case that the ambiguity in the specification indicated a flaw in the specification. The C++ language specification, for example, leaves a lot of behaviors at the discretion of the implementation. This allows implementations to choose a behavior that works best for them. The no-spin-up floppy presence detection algorithm relied on several behaviors which were covered by the specification, and one that was not. It was not part of the original charter for the floppy specification committee to support spinless presence detection; it's just something that my colleague discovered over a decade after the specification was written.

But the main reason for not bothering is that the benefit was minuscule compared to the cost. Nobody wants floppy drives to spin up as soon as a disk is inserted. That just makes them think they've been attacked by a computer virus. It'd all just be a lot of work for a feature nobody wants. And then you'd all be posting, "I can't believe Microsoft wasted all this effort on floppy insertion detection when they should have fixed insert favorite bug here."

Comments (80)
  1. nathan_works says:

    Random floppy spin ups makes folks think they have a virus.

    But isn’t that how a number of autoplay attacks work ? People liked "put a CD in and it runs", but now that feature is a liability (at least for USB, probably others)

  2. Nobody wants floppy drives to spin up as soon as a disk is inserted.

    At least we know why the Amiga failed now.  ;)

  3. someone else says:

    Forget floppy detection. What I really want to know: Why is there no detect-drives-besides-floppy-in-Windows-NT-5.x-setup-when-I-want-to-install-that-freakin-SATA-driver feature?

  4. a feature that mysteriously turns itself on and off is worse than a feature that simply doesn’t work

    … and worst of all is a feature that works all the time but isn’t what you want.

    (I’m looking at you, CD autoplay… and smart quotes… and hiding known file extensions… and thumbnails… and drop-shadow on the mouse… and virtual memory… and spelling dictionaries with the word "manger"…)

  5. Mark (The other Mark) says:

    The real question is- Did you bump today’s entry for this one (Probably true, but boring) or did your psychic powers tell you this entry would be needed?

    [In life, the boring answer is the far more likely one. Today is no exception. -Raymond]
  6. Clifton says:

    Discontinue use of floppy insertion detection if any of the following occurs:  itching, vertigo, dizziness, tingling in extremities, loss of balance or coordination, slurred speech, temporary blindness, profuse sweating, or heart palpitations.  Do not taunt floppy insertion detection.

  7. Rikard says:

    Ah. Now I understand. When I read the original article, I simply thought of the detection as a way to avoid the scary sounding things that happened when a program wanted to read from the floppy drive when there was no disk present. Autorun and things like that never even entered my mind.

    I suppose the commenters suggesting the first-use check thought like me.

  8. Nawak says:

    The funny thing is that I did not understand what you meant by "floppy detection" until now.

    Sure, I understood your technical explanation but not what was the projected use! It was for autoplay all along!! My disappointment for the missing feature has completely disappeared! Autoplay is such a bad idea (retrospectively of course)!

    I thought that the "floppy detection" was to avoid grinding for seconds (that seem an eternity) when clicking on an empty drive in explorer or when an antivirus checks all drive at a given time… Now that would have been an improvement!!

    And that’s why I didn’t get the "user experience" argument, because "sometimes when I click on an empty drive it grinds before telling me to insert a disk and sometimes it tells me right away" is not a troubling experience!

    I was disappointed to see that today’s post still wasn’t a technical one, like the ones you were posting some time ago. But that disappointment is lowered now that I saw that it wasn’t a useless

    post for me :)

  9. Nawak says:

    Rikard:

    Not only you post the same thing as me, but on top of that you are doing it while I struggle with words and you are quicker!

    And who will be blamed for posting without reading previous comments now??

    Me! Yes, thanks, I know! :)

  10. SuperKoko says:

    I’m not sure if you’re just trying to be smug or making a joke– sorry if the latter.

    You should have looked at the smiley.

    It’s a joke.

    ;)

  11. Duke of New York says:

    We certainly wouldn’t want anyone to get angry at Happy Fun Ball…

    There’s another potential problem with having the drive spin up arbitrarily: People need to be afraid of a spinning floppy drive, so that they don’t take the disk out in the middle of the operation.

  12. asdf says:

    I hate it when the computer does something when I put in any kind of media.

    Then again, I’m a software developer.

  13. Pierre B. says:

    You could have chosen one of the alternative and stick to it and then sell a Microsoft Certified Floppy logo to the drive manufacturers that comply with your new standard. Microsoft makes money by selling the logo, (some) manufacturers get a nice shiny logo on their box, and users know what to expect (or not).

    Not sure if I’m kidding.

  14. John says:

    Pierre: That’s a dangerous road to travel.  Imagine the dismay of a user when they bring home their brand new Windows Capable Floppy Drive, only to discover that their computer is underpowered and can only read single-sided single-density disks.  The horror!

  15. Rich S. says:

    Do not taunt Happy Fun Ball. . .

  16. Killer{R} says:

    But could you just ‘active’ both detection mechanisms before user actually insert floppy? And if something ‘changed’ (it means drive switched from state ‘A’ to state ‘B’) – this means floppy was inserted. Of cause in this case you must ensure that no floppy inserted during windows boot – simple by spining it up. But after user inserted (or removed) floppy first time – it will be not neccessary anymore.

  17. marc says:

    Do you think that back in 1993 (or whenever this was) the folks who were deciding this thought that in 2009 a group of people would be debating their decision? In between riding our hover-boards of course.

  18. GregM says:

    "The downside of waiting until the user uses a floppy for the first time"

    I thought that was a good idea as well, because I was also thinking along the lines of "detecting whether there was a floppy in the drive when a request came in" rather than "watching for the insertion of a floppy disk and running something on the disk automatically".

    Another case where asking for a particular behavior can get you the wrong answer if you don’t specify why you want that particular behavior.

  19. Alexey Borzenkov says:

    Either you’re not telling us something, or your engineers overthought this problem. Because really, you can only have mistake once, and then you know for sure. Here’s how your engineers could make it 100% reliable:

    – (optional) on every boot check the magic response, then spin the drive and check the actual status, so now you have a definite correlation. this is optional, because sooner or later we’ll know for sure, and might be sooner than you think. it’s a good thing to do because user might have replaced their floppy drive and already have floppy inserted, which might not be detected right away (see below), but maybe it is not needed.

    – periodically check the magic response (how often did you plan to check on it, once every second or something like that?), acting with accordance to the correlation that system has internally, and if it determines that floppy is inserted, spin the drive (you’ll need to do it anyway, to read the files!). if it turns out that floppy isn’t there, just change floppy style in the registry. floppy will only spin once, and then we know for sure.

    – now suppose that user changes floppy drive while Windows is still running, and style A changes to style B, or vice versa. If user already has floppy inserted, he can’t expect autorun to fire right away (after all, user didn’t insert it, it was already there). And we have two situations.

    – either floppy isn’t there and we detect it in a second or so if we’re wrong.

    – or floppy is there and we don’t care until user actually accesses the drive (then we know magic response was lying to us), or user removes the floppy and we know for sure right after that!

    So I don’t understand what was the actual problem with your engineers. If it was as deterministic as you described then it should have been as simple as I’ve just written above, and it would be reliable as hell. Or you’re not telling as something.

    [You think the feature was all written and then pulled at the last minute? Hardly. Somebody discovered a neat feature, tested it up, and then found out that it wasn’t reliable, so he said to himself, “Oh well, I guess I won’t pursue this.” You have already put far more thought into this problem than the person who discovered the technique in the first place. -Raymond]
  20. a-non-e-mouse says:

    looks like this would’ve been a great way for viruses to spread if floppy had autorun. it was already bad enough back then, this would’ve fanned the flames.

  21. BradC says:

    Ah, that makes sense now.

    When you introduce a feature, people will come to rely on it, and installation instructions will start to assume it.

    So even if it works 95% of the time, that 5% is millions and millions of customers who are having a bad/inconsistent experience.

    The only suggestion that I thought made *some* sense was to have a floppy spin-up during Windows startup to compare the "magic value" to the "actually check the floppy drive" answer. Even if there is nothing in the drive,

    This fixes the "first-time use" problem, and the "replace the floppy drive with the other type" problem, but adds a new "why does it take so long to boot Windows" problem. And maybe a "why the heck is it checking the floppy disk" problem.

    And looking back at a Windows 98 machine I had to use the other day, it booted up FAST compared to my Windows Vista machine!

  22. John Muller says:

    Of the two platform I’ve used that had auto-run for floppies, both had rampant floppy virus problems.

    I’m surprised there hasn’t been a huge outbreak of USB-Key viruses yet; but I suppose document macro viruses fill that gap, and work over networks as well.

  23. James Schend says:

    Jess Sightler: At least we know why the Amiga failed now.  ;)

    The difference is that Amigas (and Classic Macs) *always* did it since day one, so it was expected and proper. In this case, though, Windows 3.11 didn’t spin up the floppy, nor did any version of DOS, so it would be completely unexpected, and I could easily see people attributing it to a virus.

    I’m not sure if you’re just trying to be smug or making a joke– sorry if the latter.

  24. Mark says:

    John: because network-provided content is much faster and has far more cracks.  Almost anything that will work on a USB key will work on a share, so why make your life hard?  It’s the same reason few viruses target Safari.

  25. BCS says:

    I’d have been happy with the ability to get an  *on demand* no-moving-parts answer to "is there a floppy present?". I’d have no real use for any automatic reaction to inserting a floppy but the seek time on floppies is so bad that the on-demand option would speed thing up.

  26. I’m not sure if you’re just trying to be smug or making a joke– sorry if the latter.

    Pretty much just a lame joke.  

    I get the tradeoffs involved.  I don’t really 100% agree with them, but I totally see why they were made and made sense to them.  :)

  27. Worf says:

    Well, I still want to know the clever solution that caused the last article and its followup!

    Sounds clever enough that those who know the spec don’t know about it, or drives would be of one style already. Do share!

  28. Not Randall says:

    Any chance of actually posting the algorithm?

    [Zero, because I don’t know what the algorithm is. Even if my colleague had explained it to me at the time (I never asked for the details), I wouldn’t have understood it anyway. I didn’t realize there would be a quiz over a decade later. -Raymond]
  29. someone else says:

    I just remember: That autorun excuse isn’t as good as it may look. Every installation instruction involving CDs that I remember contained a “if setup doesn’t run automatically” part.

    [But it doesn’t invalidate the “unpredictable” argument. Sometimes floppy insertion detection works, sometimes it doesn’t, I have no idea what the difference is. I will never understand computers. -Raymond]
  30. That doesn’t address my solution though, which elegantly solves all the problems mentioned.

    As for autorun and virusses, Microsoft still hasn’t got that quite under control. Never mind the Sony scandal, consider the following… By default, Windows disables autorun on ‘editable’ media like diskettes and usb-drives. However, it turns out that there is a brand of usb-drives that present themselves to the operating system as two separate usb-devices (it behaves a bit like a kind of virtual hub), namely a cd-rom and a usb-drive. Windows enables autorun for the virtual cd-rom because it is read-only and it will autorun a program that searches for the usb-drive and execute whatever is on it.

    Is autorun for floppy disks a good idea? Maybe not, but having the Explorer window for the drive open, and only updating the file listing if the diskette was swapped for another would have been nice time savers.

  31. Leo Davidson says:

    “and only updating the file listing if the diskette was swapped for another would have been nice time savers”

    It’d also be nice to update the icon & label automatically.

    Even better, file managers which hide empty devices could hide floppies as well (without causing an Amiga-like “click” by polling the drive). That’s become a great feature in these days of 924982-in-1 memory card readers that add four drive letters each, all of which are almost always empty and needlessly clutter up the list of drives.

    It ain’t the end of the world, and floppies are on their way out (but still vital for running a few stupid BIOS/firmware tools) but it would’ve been nice all the same.

    Definitely no autorun, of course, but that’s not the only reason for detecting a media change.

    I think it’s clear that autorun on CDs was a mistake in hindsight. (To be fair to the designers at the time, writeable CDs were not a consumer technology back then.)

    [Everybody seems to assume that, in 1995, a floppy drive light turning on of its own volition would not freak out users. How soon we forget Jerusalem and Michaelangelo. And how many of you would have gone in and turned off this idiotic feature? I remember all of you guys who went in and disabled CD autodetection because it too was an idiotic feature. (And what if the feature stops working – e.g. your drive sensor is broken. Now you’re stuck with a floppy drive that would have worked if only Windows hadn’t outsmarted itself. Sometimes dumber is smarter.) People already complain about CDs that spin up randomly. And you’re suggesting that we should have added floppies to the list? -Raymond]
  32. jz says:

    Getting usb flash media to show up as a cdrom drive is easy, just write an iso9660 filesystem to it.

  33. Kim Helberg says:

    I completely agree that if the problem was as simple as you stated (some drives reporting true on "no disk" and some reporting false) then this feature should without a smidgeon of doubt have been implemented!

    Not for auto-run. For detecting if there is a disk in there without the buzzing and scraping and the several second wait.

    The first time the user opens "My Computer" or whatever, the disk is read using the spin-up method and the correct true/false values for the other, fancy way of checking are stored in a temporary value that gets reset when the machine is shut down or rebooted.

  34. Leo Davidson says:

    [Everybody seems to assume that, in 1995, a floppy drive light turning on of its own volition would not freak out users…]

    The Amiga did that and it didn’t freak anyone out. You put a disk in and it spun up for a moment to read the icon and label. It was fine and people only freaked out when it *didn’t* happen.

    Given that in Windows the opposite decisions were applied to CD-ROMs I find it hard to believe that the decision not to detect floppies was made because it seemed like a bad idea. If the idea seemed bad then it would not have been applied to CD-ROMs.

    If it wasn’t done because it seemed too difficult to do reliably then that’s fair enough.

    "And how many of you would have gone in and turned off this idiotic feature?"

    I can’t speak for anyone else, but I would not have.

    "I remember all of you guys who went in and disabled CD autodetection because it too was an idiotic feature."

    I don’t know anyone who disabled that on purpose. I know plenty of people who disabled it by accident when they only meant to turn off autoplay, but in those cases they’ve then been seen asking on forums why the OS no longer updates the icon and label for their CD-ROMs when the media changes. i.e. They clearly did want autodetection, they just didn’t want an exe to be run automatically. Seems fair enough to me, and nobody is arguing for autoplay on floppies.

    Also, people’s complaints about CDs spinning up randomly are not a reason to avoid detectig CDs (or floppies). They’re a reason to make the OS cache that data better and/or proactively. If the OS knows the media hasn’t changed then it should be able to retrieve a cached icon and directory listing for it but, it seems, sometimes it can’t.

    I suspect a large part of the complaints were also due to how CD access on earlier versions of Windows would cripple the machine’s overall performance. But if that’s a problem for floppies then it’s definitely a problem for CD-ROMs, yet CD-ROMs got the feature and floppies didn’t.

    "And what if the feature stops working – e.g. your drive sensor is broken."

    The same thing that happens with a CD-ROM if the sensor stops working. You might be able to work around the issue (e.g. by hitting F5) or you might have to replace the drive like any other faulty piece of hardware.

    Or do you mean that that sensor, not being part of the spec, may have been prone to behaving unexpectedly? That I can buy, but it didn’t seem to be what you were saying. (It seemed more like someone arguing against the introduction of the mouse because the optical sensors might break.)

    As I say, I can totally accept that, given the range of hardware implementations, making the detection reliable may have been (or at least seemed to be) too difficult. If that’s why it wasn’t done then I’m fine with that. I don’t really buy the other arguments, though. They contradict the choices made by the same people at the same time regarding CD-ROMs. Some of them seem to be based on retrospective issues/complaints which nobody knew about at the time. It seems like a bunch of issues were invented/selected now to back up a choice that was made a long time ago for different reasons.

  35. Dave says:

    Why is there no detect-drives-besides-floppy-in-Windows-NT-5.x-setup-when-

    I-want-to-install-that-freakin-SATA-driver feature?

    You need this: http://www.nliteos.com/.  Fantastic piece of software (if not the most user-friendly), you can slipstream SATA drivers as well as turning off a vast amount of crap that XP installs by default which you never need.  I was pleasantly surprised after my last install as I started to go through my usual half-day-long post-install cleanup to find that most of the cleanup wasn’t actually necessary any more because nLite had prevented most of it from being installed in the first place.

  36. Dave says:

    Any chance of actually posting the algorithm?

    It wasn’t really an "algorithm", it was related to the use of the WDC765 SENSE DRIVE STATUS command (which meant it was also tied to the use of a ‘765-compatible controller, although luckily most were).  There were certain status bits that would work for a disk-presence check in the ST2 or ST3 result register even though they weren’t specifically designed for this, which is why there was some ambiguity over their interpretation/use.

    Disclaimer: This was a long time ago and I’ve managed to repress most of it, so treat the above with a certain amount of scepticism.

  37. Bla says:

    Article doesn’t actually explain what pieces of hardware are responsible for the detection ?

  38. jon says:

    "Everybody seems to assume that, in 1995, a floppy drive light turning on of its own volition would not freak out users."

    It wouldn’t have freaked users out if it was standard behaviour for floppies. The Amiga had auto-detection of floppies since 1986 and I don’t remember ever being freaked out by that. I also remember thinking how primitive Windows was when I discovered it didn’t have the same basic ability.

    "I remember all of you guys who went in and disabled CD autodetection because it too was an idiotic feature"

    No, I think you’ll find it’s Auto-Play that was the idiotic feature, and in fact still is…

  39. Tanveer Badar says:

    It is amusing to see such a hot discussion about a feature which is out of business for 5-8 years now. Floppies belong to museums, let them be there and don’t reopen their graves.

  40. Nick says:

    @Leo

    You wrote:

    "[Everybody seems to assume that, in 1995, a floppy drive light turning on of its own volition would not freak out users…]

    The Amiga did that and it didn’t freak anyone out. You put a disk in and it spun up for a moment to read the icon and label. It was fine and people only freaked out when it *didn’t* happen."

    You need to look up the word "volition" in a dictionary.  Putting a disk into the computer and then having the computer react is *not* what Raymond is describing.

    You also wrote:

    "They contradict the choices made by the same people at the same time regarding CD-ROMs."

    Really?  That is a big assumption.  What thing I have learned from years of reading this blog is that Microsoft is a *big* place and Raymond and his colleagues are *not* responsible for *all* the design decisions.  Chances are that the person who worked on this algorithm for floppy detection had nothing do with the handling of CD-ROMs, which also probably had nothing to do with the handling of floppys.

    @Everyone

    To all those people who reply with a "so-called" solution: clearly you must younger than 18-years old.  Or, you don’t have long-term memory.  There is no discussion here.  The fact of the matter is this: 1) the hardware of floppy drives was anything but standardized and consistent so no algorithm could ever be 100%, 2) somebody at Microsoft decided that having the computer do things to the floppy drive *without* cause by the user (see http://www.merriam-webster.com/dictionary/volition) would not make for a good user experience, 3) point #2 has nothing to do with the fact that perhaps someone *else* decided differently about CD-ROMS.

    It never ceases to amaze me how people love flexing their muscle.  But you know what, if they truly had a crack at it they would have found that it couldn’t be done to a certain level of satisifaction.  Don’t reply with non-sense about what what Linux or other systems do *today*.  We are talking about the early 90’s.

    Seriously now.  CSS and HTML are standards and browsers had quite a few releases to get them right.  To this day I still have to wrestle to get a consistent look across the major browsers.  You people really believe you could have done better back in the day of non-standard OEM junk for the IBM PC (the platform of non-sophisticated off-the-shelf parts)?  Arrogance and ignorance, pure and simple.

  41. Dog says:

    Since there is one sure-fire way of knowing weather there is a disc in the drive or not (attempting to read from it, the way that PC applications have been testing for disc-presence since the XT) whats wrong with the following solution:

    1) During boot (or initialization in the case of hot-swappable drives), run the "test".

    2) Regardless of the outcome of this test, attempt to read from the disc. Note weather it succeeded or not.

    3) You have now "calibrated" the test and may use it from now on.

    4) For added certainty, re-run this calibration occasionally when an application attempts floppy I/O.

    Since this is during boot or HW initialization, the added "click" that the drive might make is not going to worry anybody (since it probably clicks several times under these circumstances anyway).

    Since you are not storing the result, changing the drive (cold-swapping) won’t matter.

    Due to the similicity of this proposed solution, I suspect (not in a conspiracy-implying way), that there are further complications that Raymond did not feel relevant, such a drive type "B1" that "clicks" when the "test" is run, or type "A6", commonly used in laptops, that interprets the test as a request to keep the drive spinning if a disc is present.

    (Note that those are hypothetical drives, I am not a floppy drive expert. I can’t believe I had to type that.)

    Secondly, the user-expectation issue could be solved the same way that it was for CD autorun. Virtually all* CD-ROM (and DVD-ROM), instructions say something to the effect of "Insert the disc and it should autorun, but if it does not …"

    (* in my experience, YMMV)

  42. Ulric says:

    Actually, in response to all the comments that say they should have done this, Windows scanning the floppy drives or CD-ROM drivers on boot is really, really annoying and slows down booting Windows for several seconds for a feature that would be totally useless.

    The BIOS boot already scanned the floppies on boot — we’re all thankful they stopped doing that — now Windows would have scanned then a second time, to satisfy some nerd that really wants his almost-coded feature in?

    p.s.: no one really cares about what the Amiga did, hardly anyone had them compared to PCs.  It was a nerds-only device.  And optimizing floppy workflow isn’t exactly forward-looking, now is it?

  43. Bart says:

    On first boot / new drive detection (PnP):

    Step 1: spin up the drive

    Step 2: check drive for floppy

    Step 3: run magic code

    Processing:

    If at step 2 a floppy was present, and step 3 returned a 1, register type A

    If at step 2 a floppy was present, and step 3 returned a 0, register type B

    If at step 2 no floppy was present, and step 3 returned a 0, register type A

    If at step 2 no floppy was present, and step 3 returned a 1, register type B

    Requires no user interaction, can be run at any time.

    Please integrate in Windows 7 and back port to Windows 2000 – Vista :)

  44. porter says:

    > p.s.: no one really cares about what the Amiga did, hardly anyone had them compared to PCs.

    Agreed, if you have a broken model of user interaction it is important to ignore other systems that have elegant solutions. It lets you claim there is no solution without appearing contradictory.

  45. Jeremy says:

    I honestly do not understand why people are so worked up about this!  I mean, Raymond posts about some cool technical topic, and there are like 10 responses.  But post about a floppy drive issue from 15 years ago and it spans two posts with almost 200 comments!  Come on people!

  46. kristof says:

    Personally I would have tossed the feature as soon as someone came to me with the words "not in the hardware spec" and "doesn’t work the same on all devices".

    Imagine if this didn’t work for 0.1% of the floppy drives out there (or potentially ones that were manufactured in the future), the results would be catastrophic… not being able to access your floppy drive in those days would be a huge deal.

  47. porter says:

    > People need to be afraid of a spinning floppy drive

    That’s an interesting way of making computers user friendly.

  48. Anonymous says:

    I’m digging this blog.  Brings back a lot of memories, good and bad, about how bad the good old days were…

    Suggestion for a future article:

    http://www.annoyances.org/exec/show/article07-039

    I remember losing an annoyingly copy-protected DOS floppy to this 9x "feature".  And while I understand that for the majority of cases, it was a win to automagically "upgrade" a DOS-style floppy to one capable of supporting long filenames, I was pretty annoye~1.txt when I got bit by the bug :)

  49. Killer{R} says:

    ..just to contunie flame :)

    1. booting up OS
    2. reading ‘floppy-state’ code. No matter, if it is ‘A’ or ‘B’, let store it as ‘X’.

    3. checking this status every .. sec for autoplay feature. If ‘X’ changed to something else (let it be ‘Y’), then something happened. Spin up drive, check if disk is there:

    If yes – then we should start autoplay, and remember  that ‘Y’ – means disk inserted, ‘X’ – no disk.

    If no – remember ‘X’ – means disk was there, but ‘Y’ – disk removed.

    Then we can know next time whether disk was inserted or removed.

    The only ‘negative’ side effect for user experience – one time floppy spin up when he/she removed disk from there (if it was inserted before system boot). I think this is not problem.

  50. Leo Davidson says:

    @Nick:

    "You need to look up the word "volition" in a dictionary.  Putting a disk into the computer and then having the computer react is *not* what Raymond is describing."

    Erm, it seems like it is to me. Why else would you want the computer to detect a disk insertion if not to do something as a result of it?

    "Chances are that the person who worked on this algorithm for floppy detection had nothing do with the handling of CD-ROMs, which also probably had nothing to do with the handling of floppys."

    Maybe, if you only think about the low-level algorithm.

    If you think about the high-level features of the OS I cannot believe that the entire Windows team would have failed to notice the disconnect between how two different removable media types were handled and never even considered or desired to give some of the CD-ROM features to floppies, if only the hardware made it possible.

    So maybe it was the case that the people who may have wanted the feature did not know it was possible, and the person who discovered that it might be possible did not realise the discovery was worth investigating further.

    That doesn’t make it a valid argument that "people now think autorun/autoplay sucks on CD-ROMs so it made sense that it wasn’t implemented for floppies in the early 1990s."

    It also doesn’t invalidate the argument that it would have been nice if Windows had floppy media detection like the Amiga had it.

    I also have to ask, why was this feature even being investigated by one person if there was no desire to use it for something?

    As I’ve said already, I have no problem with the explanation that people felt that making it work reliably given the range of hardware was too difficult to justify the benefit. I also have no problem with the explanation that the people who wanted the feature didn’t realise it was possible.

    What I have a problem with is explanations that say "nobody wanted the feature" and seem to be based on things that are not true or  which were not known at the time.

  51. Stu says:

    /me hopes somebody writes a custom driver that can do this :)

  52. ulric says:

    Windows is multitasking OS, so it could perfom

    this check in background, without delaying

    whole system boot

    The way I remember it, Windows completely froze when it did anything with a floppy disk and CD Rom. Perhaps something related to interrupts.

  53. someone else says:

    “The way I remember it, Windows completely froze when it did anything with a floppy disk and CD Rom. Perhaps something related to interrupts.”

    At least for CDs, I suspect this had something to do with the CD drive blocking the ATA channel which was simultaneously trying to access the HDD (probably for swapping).

  54. Killer{R} says:

    /*Actually, in response to all the comments that say they should have done this, Windows scanning the floppy drives or CD-ROM drivers on boot is really, really annoying and slows down booting Windows for several seconds for a feature that would be totally useless.*/

    Windows is multitasking OS, so it could perfom this check in background, without delaying whole system boot. And this might be neccessary only until user insert/remove floppy 1st time.

  55. Leo Davidson says:

    @Nick,

    “What … does … your … uber … solution … do … when … the … user … changes … the … floppy … drive?”

    I guess you haven’t been reading all of the comments since several people suggested the blindingly obvious solution.

    It doesn’t matter if the drive is type A or type B. You just poll the value and check for a disk when the value changes. That works for both types of drive.

    “Amiga and Apple do have an elegant solution.  But they had the advantage of building both the hardware and software.”

    Wrong. Commodore/Amiga did not control the drive hardware. There was a range of different drives in the machines themselves and it was very common for people to add third-party drives which CBM had no control over.

    In fact, the reason the Amiga clicked by default was that it stepped between tracks 0 and 1 to trigger the disk check. It was originally going to stay on track 0 and request the drive go to track -1 to trigger the check, and that’s what all of the “NoClick” utils on the Amiga did.

    However, it turned out that some drive hardware didn’t protect against moving the head to track -1 and slammed it into the side of the drive instead, making an even louder noise and damaging the alignment. So they had to use a method which worked with all drive types instead.

    The method Raymond described seems like it could have been used to do silent disk detection as well, assuming the method for reading the boolean wasn’t the same one the Amiga used. If it was the same then it’d have to click to avoid hardware compatibility problems, and that is something I can understand Microsoft not wanting to add to the OS. The clicking was annoying and I imagine anyone unlucky enough to have a drive that didn’t work with “noclick” would’ve replaced the hardware rather than put up with it. :)

    [Since the behavior was theoretically unspecified, there could in principle be a perfectly legitimate Style C drive which returned random values. None were found in practice, but such a drive was still legal. (Maybe it acted like a Style A drive if the most recent floppy was write-protected, but like a Style B drive if it was write-enabled.) Dunno if anybody’s “obvious solutions” took that into account. I find it interesting that everybody is suggesting that Microsoft should have relied on undocumented behavior. -Raymond]
  56. someone else says:

    >You need this: http://www.nliteos.com/.

    Yes, I know. Wouldn’t have been able to install my system without. Still, we are talking about systems which have *built-in* USB support, and, more importantly, came around when floppy drives rapidly fell out of fashion (thanks to USB).

  57. Nick says:

    Wow, some of you know-it-alls are still failing to separate the year 2009 from the year 1995.  Your average floppy drive was *not* PnP.  Hell, even PnP hardware wasn’t as good then as it is today.

    I don’t know how else to spell this out since Raymond cannot do this (and I think he is an excellent writer).  What … does … your … uber … solution … do … when … the … user … changes … the … floppy … drive?  Do you now run your uber solution at every boot up?  Are you comfortable with that?  Aren’t you one of those people who bitch about boot up times because the OS is doing too many things?

    I also remember my 386 computer.  A disk drive without a disk inserted did make a rather disturbing noise.  Sure, this is not a problem for us nerds, but I can understand Raymond’s argument that this could have caused concern in anyone else.  And now you want to cause this noise to happen *twice*?  Once from the BIOS and twice from the uber solution used during OS boot?

  58. Nick says:

    @porter

    In reponse to someone else’s comment you wrote:

    "if you have a broken model of user interaction it is important to ignore other systems that have elegant solutions"

    OK, fair point.  I would say that the argument of "PCs were the marjority, Amiga/Mac were the minority" is a bad argument.  Let’s look at this from another perspective.

    Amiga and Apple do have an elegant solution.  But they had the advantage of building both the hardware and software.  Microsoft cannot be blamed, or at least blamed entirely, because Microsoft builds software (putting mice aside for the moment).  They had *no* control over hardware.  Even IBM had no control over quality, and they created the IBM-PC, which was very different for IBM because they chose to use off-the-self parts instead of building it themselves (you really think Intel chips were designed for general purpose personal computers?  Ha, then you really don’t know your computing history).

    What is my point?  Point is that you can’t really say "Hey, Amiga and Apple figured it out.  Microsoft should have figured it out too" because it is comparing apples to oranges.

  59. Igor Levicki says:

    BIOS had a feature called "Bootup Floppy Seek" which was on by default and freaked everyone (who wasn’t a geek) out.

    It would have been more usefull if Microsoft asked BIOS manufacturers to include a floppy type flag at some standard location in CMOS RAM so that any OS can determine whether installed floppy was type A or type B.

    But no, that would be too much brains to ask for from everyone involved as usual.

  60. bramster says:

    OK.  Here goes.

    Having been away for a few weeks, and having done a (very) cursory scan of the  comments on this topic. . .  

    Despite having paid Mick Jagger and Keith Richards a large chunk of cash, Microsoft’s implementation of Windows 95 was NOT repeat NOT an operating system.   Windows 95 was a graphical interface laid on top of a disabled version of DOS.

    As for the folks who had anything to do with Windows 95, 98, and ME, I day, "may their children have warts, and walk backwards".  

    Windows 2000, restoring the functionality of DOS 6.22, with "append", and W2K’s successor, XP, has kept me in the fold.

    Vista?  Windows 7?  

    Raymond, et al, you’re just offering me shorter versions of the cane I’m walking with.

  61. John K. says:

    The real problem is that Dad shouldn’t be getting Junior "Happy Fun Ball" – what Junior really wants is Log from Blammo!.

  62. Nick says:

    Oh, I’ve been reading the comments.  But, nobody has read what Raymond has written, because they would have read that polling the drive comes at a price.

    Nevermind, I give up.  You people win, you are all the world’s smartest programmers and Microsoft clearly only hired idiots to write software.

  63. Jolyon Smith says:

    "Nobody wants floppy drives to spin up as soon as a disk is inserted"

    I doubt that this is true except as the hyperbolic generalisation (where "Nobody" = "only a very very few people").

    But this is a conflation of two separate concerns.

    WHen I attach a USB drive to my machine I do not want it to "auto-play", but I *DO* want it to show up in my list of drives and I want it to NOT show up when I unplug it.

    With a floppy the same logic should apply.

    Just because I insert a floppy may/may not mean I want it to spin up and do anything.  But it would be an improvement worth having if the "A:" drive only showed up in explorer when there was actually a disk in that drive.

    And all those times when an application stops and asks me to insert a disk AND then press a goddam button to let the app know that I have done so (or then again maybe I haven’t and just clicked OK by mistake, only to have to wait for the stupid machine to realise MY mistake) would be reduced to simply having to insert the disk, as I was asked to.

    But that was then.

    In the here and now, floppies aren’t used enough to warrant it.

    But THEN…. things were different.

  64. someone else says:

    @Joylon Smith:

    “Just because I insert a floppy may/may not mean I want it to spin up and do anything.  But it would be an improvement worth having if the "A:" drive only showed up in explorer when there was actually a disk in that drive.”

    You think so? Then you’d have to explain to granny™ where her drive A: went, instead of leaving it to the computer (“please insert a disk”).

    @bramster:

    “Despite having paid Mick Jagger and Keith Richards a large chunk of cash, Microsoft’s implementation of Windows 95 was NOT repeat NOT an operating system.   Windows 95 was a graphical interface laid on top of a disabled version of DOS.”

    Ok. Now go back to slashdot.

  65. Gregory Kong says:

    bramster: Ever read Andrew Schulman’s Unauthorized Windows 95? If not, get yourself a copy and be enthralled, enlightened and educated. If you have, then I must confess to astonishment that you can make those statements with a straight face (or perhaps not, how can I know?)

    Win95 and Win98 (even WinME with a bit of work) all had fully functional versions of DOS. And that fact means nothing to whether the Win9x family were real OSes or not, because all they used DOS for was a bootloader.

    I gotta tell you, when I read some of the stuff Microsoft managed to pull off even with Win3.x + Win32s, it boggles my mind. Absolute brilliance. As for floppy detect? Eh, not something high on my list of priorities, even at the height of their popularity.

  66. Dave says:

    > p.s.: no one really cares about what the Amiga did, hardly anyone had

    >them compared to PCs.

    >

    Agreed, if you have a broken model of user interaction it is

    important to ignore other systems that have elegant solutions.

    It lets you claim there is no solution without appearing

    contradictory.

    Oh man, Amigahole-baiting, it’s been years since I had a chance to do this…

    Actually I’ve avoid turning Raymond’s blog into a late-80s flamewar (although it’d be so much fun) and restrict myself to commenting that except for the software (Tripos, a partly-completed undergraduate student project) and Commodore’s handling of the hardware it wasn’t a bad machine.

  67. Dave says:

    I honestly do not understand why people are so worked up about this!  

    I mean, Raymond posts about some cool technical topic, and there are like

    10 responses.  But post about a floppy drive issue from 15 years ago

    and it spans two posts with almost 200 comments!  Come on people!

    It made Slashdot, at which point the rest is a foregone conclusion.  I mean, how many Amiga users do you think normally read this blog?

  68. Dave says:

    It doesn’t matter if the drive is type A or type B. You just poll

    the value and check for a disk when the value changes. That works for

    both types of drive.

    Ahh, level-triggered interrupts.  Yup, that’ll fly.

  69. Stephen says:

    Seems a shame that you don’t just check at boot time, most users expect weird checks to happen during boot because most bios’s delegate boot priority around anyway..

  70. 640k says:

    There’s a race-condition between polling the bit and confirming by reading data from the floppy (or the other way around), the user can eject the floppy in the middle of the operation. With floppies so slow this would happen all the time with as many users windows have.

  71. too late says:

    Why is this info released 2009? NDA recently expired? Maybe the guy who researched this is dead by now and cannot bring a lawsuit?

    [You must be new here. -Raymond]
  72. Igor Levicki says:

    >Tripos, a partly-completed undergraduate student project<<

    I disagree with this statement and here is what I have to show as a proof that it isn’t correct:

    http://img105.imageshack.us/gal.php?g=tripos01.jpg

    If the gallery view doesn’t work for you check the individual scans:

    http://img105.imageshack.us/img105/1125/tripos01.jpg

    http://img408.imageshack.us/img408/5352/tripos02.jpg

    http://img219.imageshack.us/img219/2159/tripos03.jpg

    http://img219.imageshack.us/img219/6457/tripos04.jpg

    In short, Tripos was in 1978 what Windows and other operating systems still strive to be 31 year later.

  73. dm says:

    That Raymond had to write a follow-up article on this topic shows that the dumbest % of readers are the heaviest commenters.

  74. bob says:

    "That Raymond had to write a follow-up article on this topic shows that the dumbest % of readers are the heaviest commenters." — Seconded.

    On a completely unrelated note, i remember it being the super happy fun ball; just plain happy fun ball doesn’t seem as funny. Or maybe my mind is playing tricks on me.

  75. porter says:

    > the user can eject the floppy in the middle of the operation.

    Suddenly drives with no eject button look sensible. Hey, where’s my straightened paper clip?

  76. someone else says:

    “Suddenly drives with no eject button look sensible. Hey, where’s my straightened paper clip?”

    Right next to the time machine.

  77. Neil says:

    I mean, how many Amiga users do you think normally read this blog?

    Both of them.

    [In reality that is of course the answer to a completely different joke.]

  78. Dave says:

    >Tripos, a partly-completed undergraduate student project

    >

    I disagree with this statement and here is what I have to show as a proof

    that it isn’t correct:

    Oh great, a news/marketing story from 198-something telling us how wonderful Tripos was supposed to be.  And I have a news story from the Uganda Monitor telling us that Idi Amin is really such a sweet guy, so it must be true.  

    The source of the comments on the quality of Tripos was a guy called RJ Mical, who, unless your name happens to be Haynie, knows a tad more about the whole thing than you do.

    (For non-Commodore people, Mical was one of the people who created the Amiga, and had detailed knowledge of Tripos internals and the Amiga).

  79. Igor Levicki says:

    >>Oh great, a news/marketing story from 198-something telling us how wonderful Tripos was supposed to be.<<

    First, Electronics & Wireless World magazine wasn’t a marketing outlet — it was high-quality educational read. But obviously, you have never read anything like that.

    Second, Tripos *was* great — it did its job tremendously well with several orders of magnitude less resources than those bloated "lipstick-on-a-pig" resource hogs you nowadays call operating system do.

    Finally, the article I presented deals with facts about Tripos. If you believe some of those facts are incorrect or inaccurate feel free to dispute them (we can do it via email or MSN chat) but not without citing the source.

    As for me and what I do or don’t know — I was lucky enough to use Amiga (and thus Tripos) and believe me, that was the best multi-tasking experience I ever had in computing to date, and judging by the current bloatware and pointless complexification trends in hardware design and programming it will obviously stay that way.

Comments are closed.

Skip to main content