MPE/iX Intrinsics Reference Manual (32650-90875)

Chapter 7 349
Command Definitions (HP32208-HPLOACNMPROC)
HPENBLTRAP
13:1 IEEE floating-point, invalid operation
12:1 Range errors
11:1 Software-detected NIL pointer reference
10:1 Software-detected misaligned result of pointer arithmetic
or error in conversion from long pointer to short pointer
9:1 Unimplemented condition traps
8:1 Paragraph stack overflow
7:1 3000 mode packed decimal error
1:7 Reserved for MPE/iX
0:1 Assertion trap
NOTE
The following apply to various trap conditions represented in the
mask
parameter:
Native mode supports two floating-point formats: IEEE and 3000 mode.
Both execute in native mode, but 3000 mode performs HP 3000 type
manipulations. Since it is possible to use both formats during program
execution, there are separate bits in the
mask
for enabling/disabling traps
of these formats.
Some error conditions specified are not strictly arithmetic traps (for
example, range errors, nil pointers, and paragraph stack overflow).
However, many arithmetic traps are caught by reserved instructions that
raise the conditional traps. For this reason, all are enabled/disabled by
HPENBLTRAP.
Some of the instructions that raise conditional traps are reserved to
indicate some of the above trap conditions. A nonreserved instruction is
one not generated by a compiler. If a nonreserved instruction causes a
conditional trap, this is reported as an unimplemented condition trap.
oldmask
32-bit signed integer by reference (required)
Returns the value of the previous
mask
to the program.
Operation Notes
Allows selective enabling or disabling of arithmetic traps. It provides more flexibility than
the ARITRAP intrinsic, which collectively enables or disables traps.
There is a difference between arming and enabling traps:
Enabling a trap means that the occurrence of a trap condition is not ignored.
Arming a trap is required so that, on a trap condition, a user-written routine is invoked
and can take appropriate recovery actions.
The following list summarizes what can occur when an arithmetic trap condition arises: