[net.micro] HCF

cjl@ecsvax.UUCP (Charles Lord) (03/04/85)

HCF was and is alive and well on the 6800. The instruction
(HALT and catch fire) is only an expression, and does not
make the chip burn as some have suggested. The code is really
a useful utility designed by the engineers at Motorola for
testing primative systems. The address counter merely increments
from 0000-FFFF repeatedly until reset. Although handy for 
hardware repair, the code was a villan for many that learned
programming on the D2 or similar manual machines.

  As the same engineers then went to form the company
MOS Technology (the inventer of the 6502), it is conceivable
that they hid the same instruction in the 65XX family.

Anyone who has studied ATE(Auto test equipment) principles
can readily undewrstand WHY such instructions exist!

(See- we still need a NET.DiGITAL!)

                               -Charles Lord
                                cjl@ecsvax

seifert@mako.UUCP (Snoopy) (03/15/85)

In article <796@ecsvax.UUCP> cjl@ecsvax.UUCP (Charles Lord) writes:
>
>HCF was and is alive and well on the 6800. The instruction
>(HALT and catch fire) is only an expression, and does not
>make the chip burn as some have suggested.

The way I heard it (sounds like net.jokes, no?) was that there
were some leftover opcodes which were set to "don't care" when
the logic was designed.  There was one of these that would
cause the chip to get *real* hot if you managed to execute it,
say, by executing your data.  I suspect this is where the "halt
and catch fire" thing got started.


        _____
        |___|           the Bavarian Beagle
       _|___|_               Snoopy
       \_____/          tektronix!mako!seifert
        \___/

If God had intended Man to Smoke, He would have set him on Fire.
                        -the fortune AI project

jel@digi-g.UUCP (John Lind) (03/25/85)

The HCF instruction is not merely left-over microcode.  It was built into
the chip ON PURPOSE for a first-line rejection test while the chips are
still on the wafer.  The instruction causes the chip to increment the
address bus forever.  This is a simple way of seeing if the chip is alive
at all.  If it doesn't respond, it is marked dead on the wafer (the test
device has to supply proper power, ground, and reset signals first, of
course).  The name comes from two things -- 1) since the chip only
responds to interrupts at instruction COMPLETION, and this instruction
never completes, it is like a halt, and 2) if you have a front panel
with LED's on it, it resembles something burning, if you have a good
imagination.  The inspiration for the name comes from a long humorous
list of imaginary opcodes that I first saw in Sperry (then Univac) land
that included such goodies as the following:

    EDPMB	Execute Data Processing Manager and Branch
    RST		Rewind and Stretch Tape
    PRI		Print in Red Ink (this was funny at the time -- now
		we do it regularly)
    SSD		Seek and Scratch Disk
    SSP		Seek Spindle
    HCF		Halt and Catch Fire

In fact, the 6800 gets no hotter when executing this instruction than
it does with any other.  Dissapating 2W from a 40 pin chip, it gets
uncomfortably warm during normal operation.  My authority is experience
and information from Motorola.  It has been awhile since I did it, but
one of the TWO codes that used to cause that was, if I remember correctly,
D9.  I seldom had to know, as I could usually achieve the desired effect
by simply jumping to random memory -- my chances were good of hitting one
of these -- maybe it was a data item near the start of a ROM, I don't know.
------
John Lind, Starfire Consulting Services
E-mail: ihnp4!umn-cs!digi-g!jel
USnail: PO Box 13001, Mpls MN  55414

Cent.Mbeck%MIT-OZ@MIT-MC.ARPA (Mark Becker) (03/28/85)

Ah, yes.. the 6800 HCF.  If I recall correctly, opcodes 9D or DD would
start things running.  There were probably others... not to mention all
those "undocumented" opcodes which were nice to have around.

In mid-1975 Popular Electronics carried a front page article about a
machine MITS had just come up with using the 6800, called the Altair 680.
In the stock system (kit) sold, the RESET switch was driven by the Bus
Available line to the front panel.  If the processor ran into HCF, the
only way to reset the machine was to TURN IT OFF!

Easy fix - cut the line from the switch to the buffered BA and connect
it to ground.  But it sure startled a few people...

Mark Becker
Cent.Mbeck%Mit-Oz@Mit-Mc
-------