Halt and Catch Fire (HCF) is a phrase from computer engineering humor that describes machine-code instructions causing a CPU to stop all useful work, forcing a reset or power cycle to recover. Though the 'catch fire' part is a joke, some early systems like the IBM System/360 could overheat due to such instructions. The term predates the AMC show of the same name and originated in the 1970s.1
The phrase HCF broadly refers to undocumented or invalid CPU opcodes that lock up processors, intentional test modes resembling hangs, and real hardware bugs. For example, early Pentium chips had the F00F bug, an illegal instruction that could freeze the CPU. The joke arose partly because assembly instructions use three-letter mnemonics like ADD, CMP, and JMP, making HCF sound like a plausible command.1
The Motorola 6800 microprocessor, released in the 1970s, had 256 possible single-byte opcodes but only 197 were officially documented. The remaining 59 undocumented opcodes sometimes behaved unpredictably. In December 1977, Gerry Wheeler published an article in BYTE magazine identifying two opcodes, $9D and $DD, that caused the chip to enter a state where it continuously read memory addresses sequentially without executing instructions, effectively halting normal operation.1
Wheeler described the HCF instruction's effect as turning the program counter into a 16-bit counter that marches through memory addresses rapidly, issuing read commands without regard to the data. Interrupts could not stop this behavior, and the only recovery was a reset or power cycle. From a user's perspective, the machine appeared to freeze completely, defying most restart attempts.1
Despite the phrase 'catch fire,' the Motorola 6800 did not literally overheat or catch fire when executing these instructions. However, the IBM System/360 did experience actual overheating due to a similar invalid opcode that caused repeated access to a specific magnetic core memory location, which could get very hot and even ignite.1
The HCF opcode family gained other nicknames in engineering circles. David J. Agans, in his 2002 book Debugging, recalled that his team called the $DD opcode the 'Drop Dead' instruction because it caused the same bus-walking behavior. Engineers sometimes used this instruction deliberately to generate cycling square waves on address and clock lines for diagnostic purposes.1
The HCF phenomenon is not unique to the Motorola 6800. Many early microprocessors had undocumented or invalid instructions that could cause the CPU to hang or behave erratically. These instructions were sometimes exploited by engineers for testing or debugging, but could also cause system crashes if triggered accidentally.1
In some early 6800-based microcomputers with memory-mapped video, the HCF instruction could produce visible 'snow' on the screen due to the continuous memory reads. This visual artifact underscored the hardware-level effects of such undocumented instructions and their impact on system behavior.1