Your browser does not fully support modern features. Please upgrade for a smoother experience.
Submitted Successfully!
Thank you for your contribution! You can also upload a video entry or images related to this topic. For video creation, please contact our Academic Video Service.
Version Summary Created by Modification Content Size Created at Operation
1 handwiki Dean Liu -- 1409 2022-10-20 01:30:43

Video Upload Options

We provide professional Academic Video Service to translate complex research into visually appealing presentations. Would you like to try it?
Cite
If you have any further questions, please contact Encyclopedia Editorial Office.
HandWiki. Halt and Catch Fire. Encyclopedia. Available online: https://encyclopedia.pub/entry/33038 (accessed on 28 September 2026).
HandWiki. Halt and Catch Fire. Encyclopedia. Available at: https://encyclopedia.pub/entry/33038. Accessed September 28, 2026.
HandWiki. "Halt and Catch Fire" Encyclopedia, https://encyclopedia.pub/entry/33038 (accessed September 28, 2026).
HandWiki. (2022, November 04). Halt and Catch Fire. In Encyclopedia. https://encyclopedia.pub/entry/33038
HandWiki. "Halt and Catch Fire." Encyclopedia. Web. 04 November, 2022.
Halt and Catch Fire
Edit

In computer engineering, Halt and Catch Fire, known by the assembly mnemonic HCF, is an idiom referring to a computer machine code instruction that causes the computer's central processing unit (CPU) to cease meaningful operation, typically requiring a restart of the computer. It originally referred to a fictitious instruction in IBM System/360 computers, making a joke about its numerous non-obvious instruction mnemonics. With the advent of the MC6800, a design flaw was discovered by the programmers. Due to incomplete opcode decoding, two illegal opcodes, 0x9D and 0xDD, will cause the program counter on the processor to increment endlessly, which renders the processor useless. Those codes have been unofficially named HCF. During the design process of MC6802, engineers originally planned to remove this instruction, but kept it as-is for testing purposes. As a result, HCF was officially recognized as a real instruction. Later, HCF became a humorous catch-all term for instructions that may freeze a processor, including intentional instructions for testing purposes, and unintentional illegal instructions. Some are considered hardware defects, and if the system is shared, a malicious user can execute it to launch a denial-of-service attack. In the case of real instructions, the implication of this expression is that, whereas in most cases in which a CPU executes an unintended instruction (a bug in the code) the computer may still be able to recover, in the case of an HCF instruction there is, by definition, no way for the system to recover without a restart. The expression "catch fire" is a facetious exaggeration of the speed with which the CPU chip would be switching some bus circuits, causing them to overheat and burn.

denial-of-service malicious user central processing unit

References

  1. Clements, Alan (28 October 2006). "Embedding Ethics in Computer Architecture" (PDF). ASEE/IEEE Frontiers in Education Conference (36 ed.). p. 4. https://www.researchgate.net/publication/224061061. Retrieved 2 March 2018. 
  2. Kohler, Eddie (4 April 2005). "CS111 - Lecture 1". p. 2. http://www.read.seas.harvard.edu/~kohler/class/cs111-s05/notes/notes1.pdf. Retrieved 2 March 2018. 
  3. Dunlap, Bryan. "A Proposed Instruction Set". https://www.physics.ohio-state.edu/~bcd/humor/instruction.set.html. 
  4. Far out op codes, Werner Cirsovius, http://www.cirsovius.de/Firmen/Uni-Chaos/FUN/opcodes.html, retrieved 2015-05-28 
  5. "Overextended Mnemonics", Creative Computing 6 (4): 17 (hex) (flip–side), April 1980, https://archive.org/stream/creativecomputing-1980-04/Creative_Computing_v06_n04_1980_Apr#page/n205/mode/2up, retrieved 2017-03-12 
  6. IBM System/360 Principles of Operation, IBM, http://bitsavers.org/pdf/ibm/360/princOps/A22-6821-0_360PrincOps.pdf, retrieved 2014-07-02 
  7. "Kevin Korb's Jokes: Assembler Opcodes that should exist". https://www.sanitarium.net/jokes/getjoke.cgi?30. Retrieved December 13, 2016. 
  8. "Forgotten Assembly Language Commands". http://www.jokes2go.com/lists/list30.html. Retrieved December 13, 2016. 
  9. "Subject: HCF instruction: from Principles of Operation", Archived at textfiles.com http://www.textfiles.com/humor/COMPUTER/ibm360.jok
  10. "apocryphal opcode mnemonics,long" , 23/04/1990, alt.folklore.computers, (via Google Groups) https://groups.google.com/forum/#!topic/alt.folklore.computers/JmHpwEBOn_s
  11. Wheeler, Gerry (December 1977). "Undocumented M6800 Instructions". BYTE 2 (12): 46–47. https://archive.org/details/byte-magazine-1977-12. ""The mnemonics are, of course, assigned by me."". 
  12. Agans, David J. (2002). Debugging: the 9 indispensable rules for finding even the most elusive software and hardware problems. New York: American Management Association. p. 77. ISBN 9780814426784. OCLC 52043345. https://books.google.com/books?id=jynA9ECbBsgC&pg=PA77. Retrieved 10 July 2014. 
  13. Daniels, R. Gary; Bruce, William (April 1985). "Built-In Self-Test Trends in Motorola Microprocessors". IEEE Design & Test 2 (2): 64–71. doi:10.1109/MDT.1985.294865. "To add insult to injury, we discovered that we had an illegal HACOF, an instruction that our customers found on the MC6800. It was an unused opcode-an illegal instruction. When executed inadvertently, the program counter would increment in- definitely. The problem, which was caused by incomplete opcode decod- ing, was a nuisance because Reset was the only means of terminating the instruction. [...] During the design process, we figured out how to eliminate the HACOF instruction. About that time, the product engineers came to us with an idea. They said, "You know what we'd really like? Some way to quickly test the RAM. If we could somehow point the program counter at the first RAM address and then just increment through the RAM, we could test it a lot faster." Since the HACOF "instruction" did precisely that-and we really didn't want to invest the effort needed to remove it-we replied, "Have we got a deal for you!" HACOF thus became the first intentional built-in self-test feature on a Motorola microprocessor.".  https://dx.doi.org/10.1109%2FMDT.1985.294865
  14. "x86 Instruction Set Reference: HLT". http://x86.renejeschke.de/html/file_module_x86_id_134.html. Retrieved 2014-07-02. 
  15. Gortmaker, Paul (21 March 2003). "The Linux Boot Prompt-How To". The Linux Documentation Project. http://www.tldp.org/HOWTO/pdf/BootPrompt-HOWTO.pdf. Retrieved 2014-07-02. 
  16. "Re: Undocumented opcodes (HINT_NOP)". Archived from the original. Error: If you specify |archiveurl=, you must also specify |archivedate=. https://web.archive.org/web/20041106070621/http://www.sandpile.org/post/msgs/20004129.htm. Retrieved 2010-11-07. 
  17. "Re: Also some undocumented 0Fh opcodes". Archived from the original. Error: If you specify |archiveurl=, you must also specify |archivedate=. https://web.archive.org/web/20030626044017/http://www.sandpile.org/post/msgs/20003986.htm. Retrieved 2010-11-07. 
  18. Collins, Robert R. (1 May 1998). "The Pentium F00F Bug: Workarounds for a nasty problem". Dr. Dobb's Journal. http://www.ddj.com/architect/184410555. 
  19. Pentium Processor Specification Update. Intel Corporation. January 1999. pp. 51–52. order number 242480-041. http://download.intel.com/support/processors/pentium/sb/242480.pdf. Retrieved 2006-11-02. 
  20. "Breaking the x86 ISA (PDF)". Christopher Domas. https://www.blackhat.com/docs/us-17/thursday/us-17-Domas-Breaking-The-x86-ISA.pdf. Retrieved December 9, 2017. 
  21. "Breaking the x86 ISA (video)". Christopher Domas. https://www.youtube.com/watch?v=KrksBdWcZgQ. Retrieved December 9, 2017. 
  22. "sandsifter: the x86 processor fuzzer". Christopher Domas. https://github.com/xoreaxeaxeax/sandsifter. Retrieved December 9, 2017. 
  23. Steil, Michael. "How MOS 6502 Illegal Opcodes really work". http://www.pagetable.com/?p=39. 
  24. Offenga, Freddy. "6502 Undocumented Opcodes". http://nesdev.com/undocumented_opcodes.txt. 
  25. "GameBoy CPU Manual". http://marc.rawer.de/Gameboy/Docs/GBCPUman.pdf#page=21. 
  26. "Game Boy CPU (LR35902) instruction set". https://max-m.github.io/gb-docs/optables/classic. 
  27. "Interrupt Mechanism - Development - SMS Power!". http://www.smspower.org/Development/InterruptMechanism. 
  28. Flammenkamp, Achim. "Interrupt Behaviour of the Z80 CPU". http://www.z80.info/interrup.htm. 
  29. "Pinouts - Z80 family". http://www.cpu-world.com/info/Pinouts/Z80.html. 
  30. Vis, Peter J.. "Zilog Z80 Pinout". http://www.petervis.com/electronics/CPU_Processors/Zilog_Z80A/Z80A_CPU_Features.html. 
More
Upload a video for this entry
Information
Subjects: Others
Contributor MDPI registered users' name will be linked to their SciProfiles pages. To register with us, please refer to https://encyclopedia.pub/register :
View Times: 4.6K
Entry Collection: HandWiki
Revision: 1 time (View History)
Update Date: 04 Nov 2022
Notice
You are not a member of the advisory board for this topic. If you want to update advisory board member profile, please contact office@encyclopedia.pub.
OK
Confirm
Only members of the Encyclopedia advisory board for this topic are allowed to note entries. Would you like to become an advisory board member of the Encyclopedia?
Yes
No
${ textCharacter }/${ maxCharacter }
Submit
Cancel
There is no comment~
${ textCharacter }/${ maxCharacter }
Submit
Cancel
${ selectedItem.replyTextCharacter }/${ selectedItem.replyMaxCharacter }
Submit
Cancel
Confirm
Are you sure to Delete?
Yes No
Academic Video Service