HP 3000 Manuals

ARITRAP [ MPE/iX Intrinsics Reference Manual ] MPE/iX 5.0 Documentation


MPE/iX Intrinsics Reference Manual

ARITRAP 

NM and CM callable (differences noted below).

Collectively enables all arithmetic traps (except the IEEE inexact result
trap) or disables all arithmetic traps.

Syntax 
_____________________________________
|                                   |
|               I*V                 |
|     ARITRAP(trapstate);           |
_____________________________________

            

Parameters 

trapstate             (NM)32-bit signed integer by value (required) 
                      (CM)16-bit signed integer by value (required) 

                      (NM) Enables/disables arithmetic traps:

                         Value    Meaning 

                           0      Disable all arithmetic traps

                           1      Enable all arithmetic traps (except the IEEE inexact
                                  result trap)

                      (CM) Enables/disables CM arithmetic traps.

Operation Notes 

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 happen when an arithmetic trap condition occurs:

   *   If a trap is both enabled and armed, the user-written trap handler
       is invoked.

   *   If a trap is enabled but not armed, one of two situations apply:

          *   If a Pascal/XL TRY statement was executed, pass control to
              the RECOVER block by doing an ESCAPE.

          *   If a Pascal/XL TRY statement was not executed, an error
              message is output and the process aborts.

   *   If a trap is disabled, even though it is armed, the trap is
       ignored, and execution of the process continues without any
       interruption.


NOTE By default, all traps (except the IEEE inexact result trap) are enabled and the system trap handler is armed.
(NM) The possible interrupts listed below are collectively called the arithmetic traps: * 3000 mode double-precision divide by zero * 3000 mode double-precision overflow * 3000 mode double-precision underflow * 3000 mode floating-point divide by zero * 3000 mode floating-point overflow * 3000 mode floating-point underflow * 3000 mode packed decimal error * Decimal divide by zero * Decimal overflow * IEEE floating-point divide by zero * IEEE floating-point underflow * IEEE floating-point overflow * IEEE floating-point, invalid operation * Integer divide by zero * Integer overflow * Invalid ASCII digit * Invalid decimal digit * Paragraph stack overflow * Range errors * Result of software-detected pointer arithmetic misaligned or error in conversion from long pointer to short pointer * Software-detected NIL pointer reference * Unimplemented condition traps
NOTE The IEEE inexact result trap is not enabled by ARITRAP.
(CM) The possible interrupts listed below are collectively called the arithmetic traps: * 3000 mode double-precision divide by zero * 3000 mode double-precision overflow * 3000 mode double-precision underflow * 3000 mode floating-point divide by zero * 3000 mode floating-point overflow * 3000 mode floating-point underflow * Decimal divide by zero * Decimal overflow * Integer divide by zero * Integer overflow * Invalid ASCII digit * Invalid decimal digit * Invalid decimal operand length * Invalid source word count Condition Codes CCE (2) Request granted. All arithmetic traps were originally disabled. CCG (0) Request granted. At least one arithmetic trap was originally enabled. CCL (1) Not returned. Related Information Intrinsics XARITRAP Commands None Manuals Trap Handling Programmer's Guide (32650-90026)


MPE/iX 5.0 Documentation