PDA

View Full Version : Halt Catch Fire op code


DKDeckmann
December 30th, 2006, 01:14 PM
I played around for a few hours yesterday "researching" the fabled HCF (Halt Catch Fire) op code for the Motorola M6800 microprocessor.

Some sources say that there is an instruction that will actually cause the M6800 to self destruct.

Other sources say that there is an undocumented instruction that is for factory test use and simply cause the address lines to repeatedly increment forever (or until reset).

Even less informed sources state that this cycling thru all address causes SOMETHING to overheat.

None of the pages I visited actually give the op code.

I would believe an opcode might actually cause the sequential accessing mode but, of course, accessing the address bus at full bandwidth wouldn't cause any harm - this happens while running normally...

Anyone know more of this?

Terry Yager
December 30th, 2006, 04:04 PM
I too have tried, but was never able to track down the true facts. I don't have a 6800 assembler, but if I knew the hex opcode, I could try it (using a monitor program) on a computer that I don't mind sacrificing, if necessary. The way I understand it, it's bus arbitration from toggling between address and data modes that causes the traces on the pc board to heat up, sometimes to the point of destruction (the 6800 shares the data bus with the low order byte of the address bus). I'm also not sure if the destructive opcode still exists in later versions of the cpu (6809/E, 630x, etc.). I do know from experience that a mis-placed probe can cause traces to vaporize instantly, but dat's a whole 'nother story...

--T

chuckcmagee
December 31st, 2006, 01:53 AM
What!! Terry has had the pleasure of copper vapor in his face too? I did that with my "fat" probe Radio Shack VOM and my Vector Graphics/1 S100 bus. I had to replace the trace with some #22 wire. Still worked, prolly because it was only 4 Mhz system.

Yes friends, they put the plus and minus power supply traces right next to each other.

sjv
December 31st, 2006, 07:04 AM
Terry, the address and data busses are not multiplexed on the 6800. There is no way an I/O driver in a CPU chip could melt a copper trace. A beefy driver can source/sink 20ma. This isn't enough to damage even a 4 mil copper trace. Most CPU's can't source or sink more than 4ma. The 6800 is wimpier than this.

I can maybe see an opcode that causes the sequencer to possibly enable two things internally that could create a low impedance path from VCC to ground, causing an internal transistor to blow. That seems unlikely.

-steve

The way I understand it, it's bus arbitration from toggling between address and data modes that causes the traces on the pc board to heat up, sometimes to the point of destruction (the 6800 shares the data bus with the low order byte of the address bus).
--T

Terry Yager
December 31st, 2006, 09:10 AM
Terry, the address and data busses are not multiplexed on the 6800.

Oops, sorry. I stand corrected.

--T