September 8th, 2025
like1 reaction

Why didn’t Windows 95 simply special-case the laptops that locked up when it executed the HLT instruction?

The 80386 HLT instruction tells the CPU to stop executing instructions until a hardware interrupt occurs. This was traditionally the instruction performed by the operating system when it had no work to do, allowing the CPU to go into a low-power mode. (In modern times, operating systems use other instructions like MWAIT to go into even lower power modes when they have nothing to do, but those fancy instructions didn’t exist in 1995.)

A while ago, I discussed how Windows 95 intentionally did not use the HLT instruction when idle because there were multiple models of laptop which locked up unrecoverably when the CPU executed a HLT instruction. People wrote aftermarket components that performed HLT instructions on behalf of Windows 95 to get low-CPU behavior, with the added notation “I can’t believe Windows 95 is so stupid that it doesn’t have this feature built-in.”

I guess these people never got bug reports from customers saying “I installed your custom program, and now my laptop freezes up as soon as it boots. How do I uninstall it if my laptop freezes up at boot?”

And that’s the problem: The failure mode is a brick.

Windows 95 could have added detection for the systems that froze up on HLT instructions, but since there were many such systems, the risk was that by the time Windows 95 shipped, not all affected systems would have been identified. The fact that many systems were affected means that this was not an isolated case. We’re probably seeing the tip of a very fragmented iceberg.

Since the failure mode is a system that is unusable, the cost of a false negative was far too high. We just had to remove the HLT.

Topics

Author

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

15 comments

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

Sort by :
  • Кирилл Ярин

    Was that the same problem that Wikipedia article about HLT instruction describes, mentioning “no-hlt” Linux kernel boot argument, or a different one?

  • 許恩嘉

    In other words, these CPUs could be irreversibly damaged by certain instructions?
    Or is it possible to repair these bricks, but only geeks can do it?

    • Shy Anonymous

      No CPU would have been damaged, it just resulted in a system freeze.

      • Mark Magagna

        If the machine is put into a mode where it cannot do anything without opening it up and fiddling with hardware, then that counts as damage.

        This includes any mode where you would have to do something like remove all power sources including the onboard battery. Since that’s often soldered onto the motherboard, particularly on laptops.

        This sounds like the relevant laptop manufacturers cut some corners, not implementing a procedure for what they saw as something that would never happen.

        But of course it would come back on the Windows people.

  • Nikolas Gloy

    >How do I uninstall it if my laptop freezes up at boot?

    Easy, you just re-install Windows

  • Bwmat

    IMO there should have been a way to enable it under some ‘advanced options’ dialog somewhere, where it warns you it may lock up, and it immediately restarts when enabling it.

    If it fails to startup successfully the next time (via writing something to disk before ever using an HLT on startup), it disables the option, and tells you why on the _next_ successful startup