Halt and Catch Fire

· coding hardware · Source ↗

TLDR

  • The HCF mnemonic originated as engineering humor but became real: opcodes $9D and $DD on the Motorola 6800 genuinely lock the CPU into a runaway memory-scan loop until reset.

Key Takeaways

  • Gerry Wheeler named the HCF opcodes himself in BYTE Dec 1977; Motorola’s docs left 59 of 256 6800 bit patterns undocumented, two of which walk the address bus as a 16-bit counter.
  • The behavior cannot be interrupted; only a reset or power cycle escapes the loop, making it a hard hang with a distinctive oscilloscope signature.
  • Motorola engineers internally called it HACOF and deliberately kept it because it doubled as a fast RAM scan during hardware bring-up, a documented “happy accident.”
  • The IBM System/360 catching fire from a bad opcode is the origin of the “catch fire” half; the 6800 itself did not actually burn.
  • The pattern extends to 6502 illegal opcodes, the Pentium F00F bug, and modern x86 CPU fuzzing, all exploiting undefined decode behavior.

Hacker News Comment Review

  • Commenters with real hardware experience corroborate the CRT-damage angle: halting a 6845 raster controller on a Commodore PET 4032 parks the electron beam, burning phosphors within minutes.
  • The IBM 360 fire story drew skepticism, with at least one commenter calling it an urban legend, suggesting the “catch fire” etymology may be more folklore than documented incident.
  • Discussion drifted to the AMC show and a current Apple TV sale rather than the hardware details, limiting deep technical thread development.

Notable Comments

  • @greenbit: Commodore PET 4032 with 6545 CRT controller: bad POKE stops raster scan, beam parks center-screen, phosphor burns off in minutes – real-world HCF-adjacent hardware damage.
  • @kens: Calls the IBM 360 fire story an urban legend, casting doubt on the literal origin of “catch fire.”

Original | Discuss on HN