Hardware backwards compatibility

Date:August 28, 2003 / year-entry #37
Tags:history
Orig Link:https://blogs.msdn.microsoft.com/oldnewthing/20030828-00/?p=42753
Comments:    11
Summary:Backwards compatibility applies not only to software. It also applies to hardware. And when hardware goes bad, the software usually takes the blame. The HLT instruction tells the CPU to shut itself down until the next hardware interrupt. This is a big win on laptops since it reduces power consumption and thereby saves your lap...

Backwards compatibility applies not only to software. It also applies to hardware. And when hardware goes bad, the software usually takes the blame.

The HLT instruction tells the CPU to shut itself down until the next hardware interrupt. This is a big win on laptops since it reduces power consumption and thereby saves your lap from third-degree burns.

We (well, specifically, Jeff) had this implemented and working in Windows 95 but discovered to our dismay that there were many laptops (some from a major manufacturer) which would lock up unrecoverably if you issued a HLT instruction.

So we had to back it out.

Then the aftermarket HLT programs came out and people wrote, "Stupid Microsoft. Why did they leave this feature out of Windows." I had to sit quietly while people accused Microsoft of being stupid and/or lazy and/or selfish.

But now the statute of limitations has expired so at least I can say something (though I'm still not going to name that major manufacturer, nice try).

My favorite bad hardware, though, was a system which would crash if the video card was put in an expansion slot too far away from the power supply. Manufacturers will do anything to save a nickel.

And yet Windows 95 ran on almost all of this bad hardware. Why did we go to all this effort to accomodate bad hardware? Consider:

  • You have a computer that works okay.
  • You go to the store and buy Windows 95.
  • You take it home and install it.
  • Your computer crashes.

Whom do you blame? Hint: Not your computer manufacturer.

I have more hardware stories, but I have a meeting soon so I'll have to stop here for today.


Comments (11)
  1. Martin Soles says:

    And… the operating systems seem to get a bit more stringent on the hardware requirements with each new release. I had all kinds of problems moving from 98 to 2000 on one machine (there was an issue with the memory, a new stick and it would install just fine). Moving from 2000 to XP, I had to replace a brand new hard drive. Moving from XP to 2003, I had to replace the NIC. I’ve stopped trying to install on existing hardware and just buy a whole new set of guts. One day, it’s gonna be the case…

  2. Mike Weiss says:

    Why has the "statute of limitation" on talking about this expired? What is the rule at MS about talking in public about issues like this?

  3. Alex says:

    Perhaps the stock options have vested, so that Raymond has money to hire Big Mean Lawyers now?

  4. runtime says:

    why not just check (at install time or boot time) whether this is a known-bad laptop? Let others benefit from the HLT instruction.

  5. ehsan says:

    Good blog just continue…;)

  6. Raymond Chen says:

    For many problems we did do detection of the bad machines. If you go back to your Windows 95 CD you’ll see a "machine.inf" file that contains detection signatures for all sorts of bad BIOSes. But in this case, the risk of a false negative was too high and the crash was too severe. We were forced to play it safe. (The general rule about issues like this is simply not to talk about it because the word may get back to the company that made the original mistake, but I figure it was long enough ago that the offending company probably won’t even recognize themselves.)

  7. Ian Hanschen says:

    I’m betting the company in question is famous for their calculators.

  8. Leon Brooks says:

    Ah, so you’d be talking about Texas Instruments there, Ian? (-:

    Mandrake (most Linux distros) do a lot of checking for this kind of stuff at all levels. For example, there’s a DMA blacklist in the kernel that contains a lot of LG (== "Lame Goldstar") drives. But not enough, I have a recent badge-engineered ex-GoldStar (LG) CDRW drive to hand which stops working halfway the Mandrake 9.2 install but doesn’t kill itself. It gets further with "hdc=nodma" on the kernel command line, but still dies before getting anywhere useful.

    BTW, thanks for your insight, Mr Chen!

  9. I love this entry from Raymond Chen. I’ve added his blog to the links on the main page of this site. It’s the one called "The Old New Thing". I wonder if the major manufacturer he mentions could have been…

  10. Raymond Chen says:

    Commenting on this article has been closed.

Comments are closed.


*DISCLAIMER: I DO NOT OWN THIS CONTENT. If you are the owner and would like it removed, please contact me. The content herein is an archived reproduction of entries from Raymond Chen's "Old New Thing" Blog (most recent link is here). It may have slight formatting modifications for consistency and to improve readability.

WHY DID I DUPLICATE THIS CONTENT HERE? Let me first say this site has never had anything to sell and has never shown ads of any kind. I have nothing monetarily to gain by duplicating content here. Because I had made my own local copy of this content throughout the years, for ease of using tools like grep, I decided to put it online after I discovered some of the original content previously and publicly available, had disappeared approximately early to mid 2019. At the same time, I present the content in an easily accessible theme-agnostic way.

The information provided by Raymond's blog is, for all practical purposes, more authoritative on Windows Development than Microsoft's own MSDN documentation and should be considered supplemental reading to that documentation. The wealth of missing details provided by this blog that Microsoft could not or did not document about Windows over the years is vital enough, many would agree an online "backup" of these details is a necessary endeavor. Specifics include:

<-- Back to Old New Thing Archive Index