Windows 95 almost had floppy insertion detection but the training cost was prohibitive


One feature which Windows 95 almost had was floppy disk insertion detection. In other words, Windows 95 almost had the ability to detect when a floppy disk was present in the drive without spinning up the drive.

The person responsible for Windows 95’s 32-bit floppy driver studied the floppy drive hardware specification and spotted an opportunity. Working through the details of the specification revealed that, yes, if you issued just the right extremely clever sequence of commands, you could determine whether a disk was in the floppy drive without spinning up the drive. But there was a catch.

The floppy drive hardware specification left one aspect of the drive behavior unspecified, and studying the schematics for various floppy drive units revealed that about half of the floppy drive vendors chose to implement it one way, and half the other way. Here’s the matrix:

Floppy Style Disk present Disk absent
“A” 1 0
“B” 0 1

The results were completely reliable within each “style” of floppy drive, but the two styles produce exactly opposite results. If you knew which style of drive you had, then the results were meaningful, but the hard part was deciding which style of drive the user had.

One idea was to have an additional “training” step built into Setup:

  • “Please insert a floppy disk into the drive and click Next.”

Once the disk was in, we could run the algorithm and see whether it returned 0 or 1; that would tell us which style of floppy drive we had.

Unfortunately, this plan fell short for many reasons. First of all, a user who bought a computer with Windows 95 preinstalled would have bypassed the training session. You can’t trust the OEM to have gone through the training, because OEMs change suppliers constantly depending on who gave them the best deal that week, and it’s entirely likely that on the floor of the warehouse are a mix of both styles of floppy drive. And you certainly don’t want to make the user go through this training session when they unpack their computer on Christmas morning. “Thank you for using Window 95. Before we begin, please insert a floppy disk in drive A:.” You can’t just try to figure out what type of drive the user has by comparing the clever technique against the boring “turn on the floppy drive light and make grinding noises” technique, at least not without displaying a warning to the user that you’re about to do this—users tend to freak out when the floppy drive light turns on for no apparent reason. “Thank you for using Windows 95. Before we begin, I’m going to turn on your floppy drive light and make grinding noises. Press OK.”

Floppy disk insertion detection is not a sufficiently compelling feature that users will say, “I appreciate the benefit of going through this exercise.”

Sadly, floppy insertion detection had to be abandoned. It was one of those almost-features.

Comments (119)
  1. Matteo Italia says:

    Interesting, but couldn’t they solve the problem postponing the training to the first time a floppy was used?

  2. Someone says:

    I understand the reasons for not implementing the feature, but out of curiosity: what (if any) were the reasons for the ‘leave the feature off by default and enable it the first time the user uses the floppy drive’ option?

  3. Mike says:

    or how about on boot (while showing the windows boot logo) it just polls the drive using that method than using the old spin up disk method to check what type it is – gets past all of the problems, floppy checking while booting wouldn’t bother users (POST does it on most systems anyway, so they are used to it) and would allow for change of floppy drives after install

    then all you’d need to post here is an article about why you chose to add 3 seconds delay to the boot time because you thought floppy detection was worth a delay..

  4. John Topley says:

    Why not just set the flag the first time the drive was accessed, so that the feature becomes available from the time after that?

    I guess you then have the problem that the user may at some point change the drive for one of the other type, but I guess that would trigger the Add New Hardware wizard (I’m not sure), thus giving you a hook into removing the flag for that drive until it was first used.

  5. Bryan says:

    I’ve never seen the add new hardware wizard show up for adding or removing a floppy drive, which I’ve done a few times while using Windows XP.

    Other OSes may vary, but that one at least doesn’t show a visible hardware wizard or notification of any kind.

  6. Adam V says:

    Floppy disk insertion detection is not a sufficiently compelling feature that users will say, "I appreciate the benefit of going through this exercise."

    It sounds compelling enough for me, but then I’m a geek, not a normal person.

    Also, when the hardware companies realized there was ambiguity in the spec, why didn’t someone (at the hardware companies, not at MS) point it out and get version 1.1 of the spec to resolve the ambiguity?

    Wait, I can answer my own question – by the time people realized it was underspecified, there were already a bunch of floppy drives out there. So they had three options – spend a bunch of time and money lobbying for the spec to go your way, (potentially) spend a bunch of time and money to fix the problem if the spec goes the other way, or spend no money or time by keeping quiet about the whole thing and hope no one else notices.

    (Alternately, after the spec goes the other way, ignore the problem and put the blame on MS when it continuously tries to spin up an empty drive.)

  7. Duke of New York says:

    Someone: By 1995 Steve Jobs was already predicting the imminent death of floppies. It wasn’t really worth the trouble of trying to "enhance" them in their final years of life. I doubt IBM would have gone along anyway.

  8. Marc says:

    Did CD ROM Drive manufactures learn from this?

  9. John says:

    I have nothing to add other than "Don’t copy that floppy!"

  10. Alexander Grigoriev says:

    Yes, I guess either nobody could be bothered to detect the type at the first access, or the detection was not really bulletproof. It’s not that the users routinely change the floppy drives without rebooting their machines.

    But I’m glad they ditch the "smart" thing. It’s way too often WIndows is trying to be too smart to figure out something behind our back, getting absolutely stupid result, WITHOUT ANY OPTION FOR AN USER TO OVERRIDE THE "SMART" THING.

  11. Adrian says:

    I just wish I could keep my XP machines from grinding away on the empty floppy drives each time I bring up an Explorer window.

  12. Alexandre Grigoriev says:

    Adrian,

    It’s not XP, it’s your favorite antivirus or other addon. Or your floppies have "disk change" line stuck.

  13. Maurits says:

    Moral of the story: a feature can only be as good as the spec…

    Suppose the user changes out the floppy drive, or perhaps takes the hard drive and puts it in another system – how does the system retrain?

  14. "Thank you for using Windows 95. Before we begin, I’m going to turn on your floppy drive light and make grinding noises. Press OK."

    Thank you Raymond for making me spit coffee and crack up at work.

  15. Aaargh! says:

    The first time I installed Win95 was from 3.5" floppy disks, that took a loooong time, especially since you has to swap disks every few minutes.

    You could have included this feature on the floppy version it made grinding noises all through the installation procedure ;-)

  16. smith says:

    Gosh, to think of all I lost wondering whether there was a disk in the drive…

  17. Mike says:

    Why couldn’t you just postpone this check to the first time someone double-clicked a floppy? It would require zero effort on the user’s part . I noticed two other people in the comments also thought of that, it seems like a no-brainer.

  18. Jonathan says:

    Adrian: Why, in this day and age, is there a floppy drive in the computer at all. My PC has no floppy, it’s disabled in the BIOS, and Windows XP copes fine (just C: and D: in explorer).

  19. gkeramidas says:

    "users tend to freak out when the floppy drive light turns on for no apparent reason".

    it still does in windows 7, i have defrag turned off and have no idea what it’s doing when the drive starts accessing by itself.

  20. Sean Harlow says:

    @John: Unfortunately I do not believe the Plug-and-Play system would know the floppy drive had been changed.  As far as I am aware (and I very well could be wrong) there is no initialization on the old floppy bus, just a standard set of commands, so the OS doesn’t even bother to look at it until you try to use it.  Thus being why my floppy-less desktops still list an A drive until I disable it in the BIOS.  If I try to access the phantom A drive Windows still acts like it’s just missing a disk, not that the drive completely isn’t there, so I assume either the Windows team is very lazy or there’s no point in boot where they’re communicating with the floppy drive in any way.

    @Adrian: As others have pointed out it’s probably some third party application like a virus scanner, but I think I have a better solution than looking for what’s doing it.  Turn the floppy off.  Seriously, go in to your BIOS and disable it.  How often have any of those reading this blog used a floppy for anything other than BIOS flashing recently?  Even emergency boot disks are CDs or on USB keys anymore.  If you need it again, turn it on, but personally I haven’t had a floppy drive in any of my computers bought after 1998 and don’t intend on ever having one again.

    Everything I own except one 1991 model IBM I keep around for sentimental reasons can boot from CD, USB, and most all of them can even PXE netboot, so with a 64MB USB drive equipped with FreeDOS around to flash BIOSes from there is no need for one.

    @Mike: It does seem like a no-brainer, but since there apparently isn’t an easy way to detect if the drive has been changed what happens when a drive breaks and is replaced with another model that handles things differently?  There is the potential to make the experience worse for the user, so it doesn’t seem like a bad idea to just leave things alone rather than possibly annoying users.

  21. ReAaargh! says:

    Aaargh!: That wouldn’t have helped those with the CD version.  Also OEMs who have 1000 computer order to fill probably don’t use floppys to install Windows.

  22. J says:

    How about doing the opposite? Tell the user to ensure the drive is empty, and then run the A/B detection routine.

  23. Mike says:

    @Sean: You’re right, the case of a swapped floppy drive complicates things. However, f you tested for the type of drive every time the user double-clicked the floppy drive, the problem would resolve itself as soon as the user double-clicked a floppy. Still its a bit messy and I could still see the argument for dropping this feature, but replacing a floppy is something that less than 1% of people do and you could still have reasonable behavior for that less than 1%.

  24. Aaargh! says:

    Aaargh!: That wouldn’t have helped those with the CD version.  Also OEMs who have 1000 computer order to fill probably don’t use floppys to install Windows.

    http://en.wikipedia.org/wiki/List_of_emoticons

  25. Cale Gibbard says:

    Given what’s presented in the article, the reasoning for not including the feature seems silly.

    The first time the drive is installed, it could do both a fast test and a normal test for whether there’s a disk present, and regardless of whether there was really a disk there or not, it could determine as per the table which sort of floppy drive it was. There’d be no need to present the user with anything.

    However, if there are further cases where the fast test doesn’t actually work at all (say, where it gave 0 in either case), then it would require waiting for times where the drive was both full and empty before being able to determine if the fast check was possible.

  26. tb says:

    I’m confused by the matrix.

    Does this represent the two types with a floppy present?

    (Floppy Style – Disk present – Disk absent)

    STY – P – A

    "A" – 1 – 0

    "B" – 0 – 1

    And does it look like this when a floppy is absent?

    STY – P – A

    "A" – 0 – 0

    "B" – 0 – 0

  27. Ryan Fox says:

    Couldn’t you watch for a change in the drive state, and then do whatever?

    For instance, poll the drive and find nothing. There must be no floppy, so wait until the state changes.

    If you poll and find a floppy, but not the file you’re looking for, wait until the state changes twice.

  28. Bob says:

    Guys, you’re over-thinking it. This isn’t a technology problem, its a social engineering problem.

    Here’s the correct solution:

    Couldn’t you just get a bunch of goons to break the kneecaps of the people who wrote the floppy drive specification?  If not, toss a coin to decide which group of vendors get asked to choose between "changing their hardware" and "geting their kneecaps removed" based on the fact that "unspecified" is a synonym for "useless" and therefore their random choice justifies your random choice.

    Violence is never the answer. Violence is the question. "Yes" is the answer.  :)

  29. Joe Butler says:

    I guess it was not as superficially easy to check the bit’s meaning by checking on first access because the check couldn’t be done atomically. So, if someone happless user ejected their disc at the critical moment between Windows doing the first disc access and the first check status flag probe, you’d end up with a ‘status inversion’ for the disc’s presence status – perhaps until next boot – or worse, forever.

  30. Richard says:

    I see two possible uses of knowing a floppy has been inserted

    1) A program is all ready running that is reading/writing multiple floppies (anybody out there old enough to remember Fastback Plus).  

    2) Someone inserts a floppy and wants to do something with the media.  Let’s call this option “Autorun”.  

    Option 1 likely yields minimal improvements.  Option 2 opens the door for potential exploits by Malware.  Even if option 2 is used for legitimate purposes, many people find “Autorun” an intrusive annoyance.  I for one am glad Microsoft did not implement this “feature”.

  31. Art says:

    I have an XP computer that detects and shows the floppy drive even though it is disabled in the bios and can’t be accessed.  If I unplug the drive it disappears, but it does come back if plugged in.  Popular ASUS MB, so I’m guessing it’s not a bios issue.

    I also have a win98SE computer that hits the floppy right and left even though it hasn’t been used in years.  File open dialogs always start there too as does windows setup.  No antivirus or utility to blame, it continued to do it from a wipe and fresh install on a new hard drive.  I’ve even removed every registry reference I could find to the drive letter and they come back.  Weird jumble of parts in this one though.

  32. Bob says:

    @tb: It’s a single bit being checked, not two. Drives of one type set the bit to 0 when empty, while drives of another type set it to 1 when empty.

  33. gedoe says:

    I *so* knew that the first few entries would be about how it would have been possible to detect the type of hardware (maybe because my first instinct was to think of a clever way to do it also :) )

  34. steveg says:

    I can see why it was abandoned: "This is going to be awesome for 90% of users. The other 10% are going to call Support. That’ll cost N million bucks."

  35. Chris says:

    If I recall correctly, OS/2 had floppy detection. I remember that you could insert a disk and see its directory. You could then bring up that directory over and over again and it’d never spin up the disk. But if you ejected and reinserted the disk then it’d spin up the next time you tried to see the directory.

  36. Leo Davidson says:

    @Jonathan:

    I have a floppy in my desktop after building a previous machine without one and then finding the POS DOS-based firmware/feature tool for one of my HDDs or optical drives pooped itself when faced with SATA, or something like that, and would only work if run from a floppy drive…

    I can’t remember the details but I had to take apart an old PC, plug its floppy into my new PC (whose case didn’t even have room for a floppy, so it all hung out the top), do the changes and then put everything back how it was.

    Then I needed to do them again a few hours later…

    After that hassle I decided to just keep putting floppies in my machines where practical, given they cost next to nothing.

    Perhaps things are better now, though. I’d hope so!

  37. Brian K says:

    It still irks me that when I accidentally click on the floppy drive in Windows Explorer and the "Please Insert a disk into drive A:" box pops up. Its stil detecting as I write this.

  38. Jason says:

    That’s ridiculous.

    When the floppy is read for any reason, and you don’t get a failure exception, you can set the registry flag at that time to record the inserted/not inserted type.

    Way to not solve a problem effectively!

  39. Jonathan Wilson says:

    What I want to know is why modern chipsets even include legacy stuff like floppy disk drive controllers, serial port controllers, PS2 keyboard and mouse support etc.

  40. Mark Sowul says:

    This seems trivial – just figure it out the first time they actually try to access the disk since the PC has started.  The first time it will grind or find the disk (as it does without the feature anyway) and from that you can infer what the states mean.  Maybe I’m missing something or Raymond has oversimplified the problem to make his point.

  41. Mike Caron says:

    Jonathan Wilson: That’s a joke, right? USB keyboards don’t work in the BIOS on my motherboard (about a year old).

    Why? Who knows.

  42. shawn says:

    couldn’t it just go through this simple process everytime windows rebooted?

    Step 1:Do the test above and see if you got a 1 or a 0.

    Step 2: Spin up the drive for a moment and see if there’s actually a disk in there.

    Step 3: Use the two pieces of information that you got from the first two steps to determine what type of drive you’ve got.

    Step 4: Bingo.

    It could be a regular part of the windows startup process, wouldn’t be noticeable to the user, and it’d be accurate. As long as you assume that the user hasn’t changed out the floppy drive without rebooting windows.

  43. Marc says:

    Just because you *can* do something, doesn’t mean you *should* do something.

  44. abc says:

    Why could MacOS do it but Windows could not? (Probably because Apple had tighter control of the hardware.)

  45. redmaxx says:

    Couldn’t Windows 95 have activated the feature as soon as it was 100% sure there was a floppy in the drive (such as actually reading a file of the disk)? By then it would surely know what type the drive was.

  46. Alexander Grigoriev says:

    "Even if option 2 is used for legitimate purposes, many people find “Autorun” an intrusive annoyance.  I for one am glad Microsoft did not implement this “feature”."

    You won’t believe that, but Microsoft even implemented Autorun for USB drives! Which, purely accidentally, is another way Conficker worm spreads. And have also caused several security incidents in government (DoD) institutions. I’m afraid, in the long run this little feature will cost Microsoft big contracts.

  47. Alexander Grigoriev says:

    "If I recall correctly, OS/2 had floppy detection. I remember that you could insert a disk and see its directory. You could then bring up that directory over and over again and it’d never spin up the disk. But if you ejected and reinserted the disk then it’d spin up the next time you tried to see the directory."

    This is called "caching" and even DOS with smartdrive loaded could do that. The cache stays valid until you get "disk changed" signal.

  48. Barry Kelly says:

    Win95 Setup *does* make the floppy drive grind, though, as have all versions of Windows Setup from 95 through to XP. (Speaking as an ex hardware technician who installed Windows hundreds of times.)

    Specifically, it makes the grinding noise when it’s setting up the Start Menu items for the first time (it says). I personally suspect it’s because it’s creating the "Send To" shortcut, but that’s only my suspicion.

    I believe a statistical approach could have worked. The problem would be if the drive was ever changed, and Windows thought the drive was empty even though it was actually full. It would still need to poll on disk access occasionally to get back to normal; this would be rare, though.

  49. mcovey says:

    I love how everyone has offered the 3 or 4 "obvious" solutions that spring to mind after reading the story. Clearly there were more circumstances than the story lets off that prevented the use of the technology – I refuse to believe that everyone was such a big idiot that they didn’t think "well instead of asking them for a floppy, let’s just ask them to ensure the drive is absent, and reverse the result."

    Beside that, nobody uses floppies anymore – so who cares?

  50. djhayman says:

    I really don’t think that "detecting the first time you try to access the floppy" would have been a good idea. You’d completely confuse the user:

    First time they insert a floppy, nothing happens. So they go to My Computer and open it from there.

    Next time they insert a floppy, the Explorer folder would just appear all by itself.

    I think the smartest option would be to just check it during every Windows boot. That way, there’s no confusing questions, and it doesn’t matter if you change the drive at any point.

  51. Jim says:

    not the file you’re looking for

    These aren’t the droids you’re looking for.

  52. Neil (SM) says:

    steveg wrote:

    >I can see why it was abandoned: "This is going to be awesome for 90% of users. The other 10% are going to call Support. That’ll cost N million bucks."

    I’m not seeing how that feature would have been awesome for more than about 5% of users max. The rest would have split between calling support, getting irritated, not noticing, or simply not caring.

  53. alex.r. says:

    To handle the case where the user changes the floppy drive, you just ask the user to *always* leave a floppy in the drive!

    I can’t believe the feature was cut for such a trivial matter ;)

  54. Worf says:

    All these people and no one asks to find out what the clever method actually was? Sure it’s not so useful now, but there may be use in some oddball purpose in an embedded system…

  55. Mike says:

    The P and A in the chart represent Present and absent. There is only one bit in question here. The point is that in type A, a disk being present was represented by a 1 and 0 for absent. In Model B a 0 meant present and a 1 ment absent.

    STY – P – A

    "A" – 1 – 0

    "B" – 0 – 1

  56. kormgar says:

    Um…why require the user to do anything at all?

    If the OS could already detect the presence of a floppy by spinning up the drive, then why not just simply have a one-time training check…

    If the flag isn’t set, spin up the drive and check for floppy.  Compare this to the results of the no-spin method and viola, you now know what sort of drive you have.

  57. dmfdmf says:

    Adrian wrote…

    > I just wish I could keep my XP machines from grinding away on the empty floppy drives each time I bring up an Explorer window.

    I think that can be caused by a shortcut (*.lnk) that refers to a file that was once on the A: drive. The problem link probably exists in the Recent folder or somewhere in All Users folder or somewhere in MS Office folders. Do a search on all *.lnk files containing "a:" and delete them and see if that helps.

  58. MDW says:

    Ah bring backs memories of the Commodore Amiga, now that did detect the 3.5" floppy in the drive, but it clicked periodically rather than span…

  59. IDIOTS says:

    boolean hasFloppy() {

       return a || b;

    }

    idiots.

  60. Stu says:

    Sigh… I wish win95 (and in fact later windows) had this…

    Even my new computer came with a floppy drive, it would be so much cooler if this worked.

    Still… maybe linux should gain this…

  61. nt says:

    Hey, I have an idea nobody else has thought of: why not do the slow check the first time the floppy drive is used after each boot to determine the fast check result you are looking for?

    Come on Raymond, admit it.  You sometimes post softballs like this to watch people falling all over themselves to prove how clever they are, don’t you?

  62. Somehow, I always get this huge level of frustration when the system goes unresponsive for the slightest moment of time… So when I read this entry, I thought "why, oh why?".

    It does sound obvious that the system should be able to decide what kind of drive it has whenever it succeeds in accessing a file on the floppy. So, training really wasn’t necessary : just act dumb until you read something from a floppy, then become clever.

    And then it hit me…

    "Clever", I said…

    Somehow clever just means "trouble in the making", doesn’t it?

    User replaces floppy drive. Cleverness must disappear somehow… More detection code, more bug potential, how does QA deal with these? yuk…

    In the future a manufacturer might come up with a third category (why? why not?), yuk…

    So yeah…

    I can see the point…

    There is always a good reason why something didn’t happen, and it always is the same:

    it wasn’t a priority ;)

  63. Carl says:

    "it still does in windows 7, i have defrag turned off and have no idea what it’s doing when the drive starts accessing by itself."

    It’s just doing to remind you that it’s there, sort of like a ‘Hey! Don’t you think that a card reader would look much better in this bay???’

  64. 640k says:

    With 2 (or more) different floppy drives the hardware behaviour cannot be stored by a single bit/flag. Messages like "please insert disk into floppy drive" would also be ambiguous.

  65. floppie seeker says:

    Is there a secret registry value which can enable this feature?

  66. Great story. I love to read posts like this. Thanks Raymond

  67. Neil says:

    How about a "secret" executable "FastFlpy.exe" to run the "training" step. Or just enable the "Auto insert notification" box in the floppy device properties, and that would initiate training.

  68. Mark (The other Mark) says:

    The funny part is watching all the people who suggest really bad solutions that have the potential to render any FDD unusable. Or the ones saying they never use a FDD anymore, apparently missing the Windows 95 part.

    It would’ve been a cool feature, if it had been quick and easy, but I can understand why it got cut when it turned out to be more complicated then it looked. Kudos to the unnamed Dev who looked up the real-world behavior of actual FDD’s before this code shipped!

  69. Stuarticus says:

    Yes that would have been great – I mean how many people actually kept auto insert notification ON in those days! It was crap!

  70. I knew it. The Dutch documentation for Windows 95 and some early software for Windows 95 suggested that this worked, with phrases like ‘Insert the diskette and wait until Setup starts.’ and such. I reasoned that that must have been a feature that was originally scheduled for inclusion but was later scrapped.

    By the way, Raymond, why didn’t you go for this solution: The disk-in drive state changed. Maybe there’s a disk in the drive (although probably not), grind it. You now know whether your assumption was correct. If it was you will have to open an Explorer window, and the user won’t notice because opening that window will cause grinding itself. You can now save a flag that tells you how to interpret all future disk state changes.

    The bad? In a small percentage of cases you will get a spurious spin-up, only once. But Windows 95 did that a lot of the time anyway, right from a blank install, so I don’t think the users would have noticed or cared. If you’re afraid users would call support over it, pop up a window that says ‘I thought there was a disk in the drive, I was wrong, sorry, it won’t happen again’.

  71. tb says:

    @mike

    @bob

    Thanks for the clarification. That’s just… wow. Yet another reason floppy == fail.

  72. SuperKoko says:

    > Hey, I have an idea nobody else has thought of: why not do the slow check the first time the floppy drive is used after each boot to determine the fast check result you are looking for?

    Because users wouldn’t understand why autorun doesn’t work when they’ve freshly rebooted their computers…

    They would have to explicitly access the floppy drive once everytime their computer is booted to make auto-detection work.

    Or, you may check the floppy everytime Windows is booted, but that would:

    1) Not work if the user inserts or removes a floppy disk in the short time between the slow check and the fast check.

    2) Unnecessary delay the boot time for people not using floppy drives.

    3) Make noise.

    To provide… A feature useful for 1% of good guys but very useful to malwares guys!

    BTW, how many people do read comments before posting their own? 20% ?

  73. t_u says:

    Ah bring backs memories of the Commodore Amiga, now that did detect the 3.5" floppy in the drive, but it clicked periodically rather than span…

    Yep, but there was also a "no click" patch which still enabled the disk detection ;)

    http://aminet.net/search?query=no+click

  74. Dex says:

    Now if they want to get clever they should auto-detect when I have just sat in my chair and power up the system. Oh, I just remembered there’s no standard yet for the value of the "ASS PRESENT" data bit…

  75. geo says:

    They just couln’t have a miserable button/config option/menu or similar i.e when viewing the properties of the floppy, that could then guide the user to setup this feature? No, just disable the feature for all users, because the stupid ones won’t know what to do with that!

    I just hope some day there will be an option in the setup somewhere What type of user you are

    a.complete idiot

    b.knows what a computer is

    [Oh right, a deeply-buried configuration option for something advanced users would probably never turn on in the first place. -Raymond]
  76. Derek says:

    If only the CD/DVD spec didn’t make presence detection optional (they probably thought people didn’t care since nobody bothered with it for floppies).  Most CD/DVD drives don’t support it, so you have to wait 10-30 seconds for the spin-up.  I guess it isn’t a huge loss though as in many cases spin-up is required anyway in order to determine the disk type.

  77. Jinesh says:

    They could have just spinned the drive when they detect it for the first time. If the spinning revealed that the floppy was present, then they could have tried the new logic at the same time to determine what kind of drive it was. Simple !

  78. Anachronda says:

    All these comments and no one has asked the most important question: What was the loophole that was used to detect the floppy? Behavior of the track 0 signal? There’s not a whole lot you can look at without spinning up the drive.

  79. Stefan Ciobaca says:

    Let’s think outside the box.

    At installation time: run the smart algo, make a note of what it says.

    (Quickly thereafter) run the reliable algo, make a note of what it says.

    I’m sure you can take it from here.

  80. Artem S. Tashkinov says:

    The results were completely reliable within each "style" of floppy drive, but the two styles produce exactly opposite results. If you knew which style of drive you had, then the results were meaningful, but the hard part was deciding which style of drive the user had.

    Sorry, but you are talking bullocks. You could easily automatically train your wonderful system as soon as user inserted a floppy drive and tried to access it – now you had all required data – floppy is actually is in drive and you can know the bits to identify this floppy presence.

    Issue solved.

    Probably the issue is more complicated from the programmers POV and you don’t give enough information.

  81. Anachronda says:

    And while I’m at it, let me introduce you to my friend the TEAC FD55GFV. This is the 5.25" high-density drive used by DEC in stuff like MicroVAXen and their AT class machines. It’s like an average TEAC FD55 *except* that it doesn’t have the little spring that kicks the floppy out when you open the door.

    To add insult to injury, the drive doesn’t turn on Diskete Changed until the diskette has moved a bit. This isn’t a problem with your average TEAC FD55, since it has the spring to move the diskette when the door opens.

    Point being that it’s possible for an evil user to open the door of the drive and leave the diskette in. The drive thinks there’s a diskette, but you can’t spin it because it’s not clamped to the hub.

    In other words, that drive has a *three* states: diskette out, diskette in, and diskette kinda sorta in.

    Man, I hate that drive.

  82. oldnewthing says:
  83. Christopher Yeleigton says:

    MSBACKUP for DOS and several disk imaging utilities had this smart functionality built in.  They were useless when a nonstandard floppy driver was used, like a PC card.  The last screen was "Please insert the floppy disk", then you could only reboot.  You can easily experience this feature under NTVDM.

    And MSBACKUP for Windows 3.1 used to hang Windows during launch.

  84. Arnold Kernelhacker says:

    1.44MB floppy drives spin up the floppy anyway for a few rounds when inserted. Most floppy drives don’t even turn the spindle motor on if there is no disk in drive.

    So as we don’t know what feature or bug in the floppy drive system was thought to be useful detecting the floppy drive, there is no point speculating what it might have been.

    We need more info, like what signal is/was used and why it was not reliable.

    Nowadays floppy drives can be polled for the DISK CHANGE signal, which is supposed to be in one state when floppy is in drive and in other state when floppy is not in drive. But it may be that it was at one point used as a pulse, which was only active for one poll round and then resets.

    Track0 signal it can’t be. Neither Write Protect. Nor Density Select, as it has been used as input or output or not used at all.

  85. DaveK says:

    "Thank you Raymond for making me spit coffee and crack up at work."

    While a cup of coffee is a perfectly socially acceptable stimulant, I feel it is quite unprofessional to be taking /any/ form of cocaine during office hours.

    ObTopic:  Yes.  Colour me also none too impressed with the "cleverness" of a failed attempt to do something that Amiga had been doing for years.

  86. Me says:

    It’s a pity you only gave up on this part of the Windoze 95 project.  If you given up on the whole thing you might have spared us all the subsequent pain from the various broken beyond belief versions of Windoze.

  87. Those Amiga fans out there touting the drive detect should also remember that when Amiga spun a drive up, it actually read the disk and executed something on it.  So, with the Amiga, you could easily spread a virus by merely inserting a disk.  Lost many disks that way!  Thank GOD Microsoft did not follow suit.

  88. Nick says:

    Congrats Raymond on (still) being the most Slashdotted Microsoft blogger :)

    http://tech.slashdot.org/article.pl?sid=09/04/04/1717242

    What’s sad is reading over the comments in that story that just re-hash what’s already been asked and answered here and your other post. I know nobody on Slashdot RTFA, but still. It also doesn’t help that the shmuck submitter didn’t include a link to the followup.

  89. Will says:

    I think that the people suggesting autotraining are underestimating how bewildering it would be to have a system with an unknown degree of cleverness at any given moment for most users.  If I were king of Microsoft at the time, I would have implemented a simpler solution:  a control panel where you can turn on autodetection, and a little toggle option where the user can tell the system which type of drive they have.  Nobody would have been bothered by the feature since it would be off by default.  OEM’s who know what type of drive they are shipping with could turn it on by default, and users who find the feature useful could turn it on manually.  Negligible extra cleverness needed, no unpredictability on a given system, very little to go wrong.  And, Microsoft would have succeeded in doing something which was known at the time to be impossible.  Which would have annoyed the crap out of those of us who were Mac fanboys at the time.  :)

  90. Buanzo says:

    So… why didn’t anybody ask for the command sequence? I can’t believe everybody provided the same idea (delay the training to first floppy disk usage), and NO ONE asked for the command sequence, or more technical details, just for the hack of it… :)

    SADDDDDDDDDDDD

  91. Warner Losh says:

    Couldn’t they have ACCESSED the floppy?  You run your test for present or absent.  Then you access the floppy once to see if you were right.  Instantly, you know the right thing for future operations.  No need to have the user insert a disk, click OK, or anything else.  There’s 100% reliable ways of knowing if a floppy is in the drive (assuming that the sector you want to read is good, but if it isn’t you get different errors).

    This seems like an urban legend more than an interesting cool old fact.

  92. Louis Cypher says:

    Or, does anyone know: What’s the most efficient (least labor intensive way) to retrieve data from, then erase/scramble a couple hundred floppy disks?

  93. Adam S. says:

    This sounds like a rather trivial problem to solve.  Simply have three states for the floppy drive: type A, type B, and unknown.  

    The state defaults to unknown (ie. when the machine is built, or floppy hardware changes).

    The state changes to A or B when a disk is inserted and the drive accessed.

    But maybe I’m missing something here..

  94. Kolano says:

    Um, it would seem that one could work this out whether a disk was inserted or not. I’m not sure why a one time disk spin up without a disk was avoided.

  95. LoadWB says:

    @Todd Brandowsky

    Can you give an exact example of this?

    The only thing the AmigaOS did with a newly inserted floppy was load the disk.info icon, and put any left out icons onto the Workbench.

    Floppy insertion detection is a great feature.  You can detect inserted volumes automatically, meaning you do not have to grab the mouse when changing disks.

    Now removable drives (CD-ROM, USB, etc.) make that a moot issue except when dealing with software which only has floppies from which to install.

  96. ohxten says:

    Interesting little tidbit. Thanks for sharing. But what I don’t understand is, why couldn’t you just wait until a user accessed a floppy drive; if there was no error when the user attempted to access it, then you could assume there was a floppy in the drive, and then run the algorithm? Or am I missing something?

    Windows 95… ahh, the good old days.

  97. John Wallaby says:

    So…. how about adding the feature to Windows 7?

    The floppy autorun could be set up when the floppy drive is first used. A quad-state setting could be used to track how to handle the disk: Disabled, A, B, Unknown.

    Few have floppy drives anymore, but it would be a really nifty feature for Win7.

  98. Anachronda says:

    Actually, what you’re describing is closer to the way Drive Ready worked. Diskette Changed becomes asserted when the floppy is removed and isn’t cleared until *the drive is stepped* with a floppy in place.

  99. Darren says:

    "What I want to know is why modern chipsets even include legacy stuff like floppy disk drive controllers"

    That’s so that I can connect a 5.25" floppy drive to my newly-built Core2 Windows 7 system. True story – 7 even has a nice shiny 5.25" floppy icon, copied from Vista. Windows XP just reused the Windows 98 icon.

  100. James says:

    I love these posts where all our old questions are answered. Thanks for the update!

  101. me says:

    Why don’t you post the magic sequence? There are still machines with floppies out there, and somebody might want to implement the technique.

    As for the noisy auto detection sequence – people put up with so many bugs and errors of software all the time that with such a little one-time quirk at first start, I don’t think that it would have mattered.

  102. Bla says:

    Just pick one and stick with it…

    If it fails do the normal detection thing ;)

  103. MadQ says:

    @Dex:

    Now if they want to get clever they should auto-detect when I have just sat in my chair and power up the system. Oh, I just remembered there’s no standard yet for the value of the "ASS PRESENT" data bit…

    My PC has an "Ass Still Present" bit. It’s a passive infrared motion detector with some custom circuitry connected to COM1, and a little app that prevents the screen saver from kicking in when I’m around. I got tired of using circuit diagrams as screen savers when I’m doing geeky electronics things.

  104. Jakob Greve says:

    skimmed the comments. Based on the very simple scheme woulden’t it be easier to detect if a floppy was not present much like the remove all disk messenging. You have to remember that you had to go into the Bios to change a boot-sequence so it probably would make more sense to the end user to tell something not to be present.

    Also I remember cd-rom drives had been introduced mostly to include the obsolete encarta but that is another story…

  105. Djdat says:

    Do we really need floppy detection? Are you all so lazy as not to just look? lol Seems pointless to me.

  106. Igor Levicki says:

    As many mentioned, Amiga was able to detect whether a floppy was present or not. It was usefull because it allowed the computer to start booting of the floppy as soon as you inserted one or to pre-cache the disk contents before you manage to grab a mouse and double-click on a floppy icon.

    Now before anyone says that Amiga floppy was different let me add that I have succesfully built and used an external Amiga floppy drive using a standard PC floppy drive — all I had to do is to place a jumper because Amiga used different select line, and even that was only because PC used stupid mid-cable twist to select whether floppy gets to be A: or B: instead of using proper method with jumpers.

    Whole PC hardware is a hack upon a hack. Take a look at a floppy controller for example — it can only read PC floppy disks because it assumes disk format, and decodes it without allowing you to read or write RAW MFM data. Amiga floppy controller was format agnostic and could read/write ATARI and PC floppies as well as custom formats without any issues.

    Furthermore, Amiga floppy controller was able to use more than one floppy drive at once — you could have copied from one floppy to three other floppies at once.

    Not to mention that accessing the floppy didn’t block the computer with a single core Motorola MC68000 running at 7.09 MHz like it blocks your PC even today running Windows 7 on a 3.0+ GHz quad-core.

    PC hardware and software == epic fail. What is it good for if it still can’t stay responsive while accessing the floppy or a DVD drive?

  107. fade says:

    The title should be "Windows 95 almost got WGA detection scheme built-in but the first step to detect if there’s a floppy present was proven to be a challenge" :p

  108. Henque says:

    Place a trigger to react the first time anything successfully reads anything from the floppy drive. When this happens check what kind of floppy drive it is and pop a requester and ask the user if he/she would like to enable floppy detection. Windows has asked more stupid questions than this…

  109. Igor Levicki says:

    "Several manufacturers provided the OEM parts for this drive, usually a Matsushita JU262 or Chinon FB354. It was no different than a normal PC DD floppy, except it had the diskchange line enabled, where many modern PC floppy designs do not."

    So there you have it, ask those cheap PC manufacturers why your floppy doesn’t have DISKCHG signal enabled.

    It can actually be enabled on most of the drives with a little bit of electronics skill, but it is a bit too late for that now.

    Conclusion of this topic would be that while Microsoft’s goal was for PC to be cheap so they can sell more software, they over-engineered the cheapness by not having strong enough compatibility requirements, and it came back to bite them (multiple times if I might add).

  110. Igor Levicki says:

    "Several manufacturers provided the OEM parts for this drive, usually a Matsushita JU262 or Chinon FB354. It was no different than a normal PC DD floppy, except it had the diskchange line enabled, where many modern PC floppy designs do not."

    So there you have it, ask those cheap PC manufacturers why your floppy doesn’t have DISKCHG signal enabled.

    It can actually be enabled on most of the drives with a little bit of electronics skill, but it is a bit too late for that now.

    Conclusion of this topic would be that while Microsoft’s goal was for PC to be cheap so they can sell more software, they over-engineered the cheapness by not having strong enough compatibility requirements, and it came back to bite them (multiple times if I might add).

  111. Igor Levicki says:

    The website said "sorry we are unable to process your blah, blah" first time through.

Comments are closed.