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