What are IOT and EMT instructions?

gwyn%brl-vld at sri-unix.UUCP gwyn%brl-vld at sri-unix.UUCP
Sun Aug 21 02:54:52 AEST 1983


From:      Doug Gwyn (VLD/VMB) <gwyn at brl-vld>

IOT and EMT are PDP-11 machine instructions.  On a non-PDP-11 UNIX these
instructions probably don't exist, but signals SIGIOT and SIGEMT can
still be generated; in fact, the abort() library function generates a
SIGIOT to force a core dump.  SIGEMT, on the other hand, is rarely used.

On a PDP-11, unexpected IOT and EMT signals often are the result of
accidentally executing data as instructions.  Using ld's -n or -i flag
will often help track this particular bug down.

I do recall HCR's RT-11 emulator using EMT instructions (since RT-11 did),
and kernel modification was necessary to keep these from generating
SIGEMT and instead branch to a user process's EMT handler.

If the code you are converting is PDP-11 assembly language, then the
most probable cause of EMTs and IOTs would be the fact that these perform
system calls on DEC operating systems and/or standalone applications, but
UNIX has its own system calls (invoked by TRAP instructions on PDP-11s).
In this case, you will have to find equivalent UNIX functions for the
original EMTs/IOTs.  I would suggest tossing whatever it is and redoing
it in C, since there is no future in PDP-11 assembly language programming.



More information about the Comp.unix.wizards mailing list