*COMDECK QDEBUG 
_$J+? 
_*****************************
*                            *
*         QDEBUG             *
*  RUN-TIME ERROR HANDLER    *
*                            *
*****************************?
_$R-,G-,I+     NON-RECURSIVE
               NON-INTERRUPTABLE ?
_***********************************************************************
*                                                                      *
**OVERVIEW- THE PASCAL COMPILER GENERATES CALLS TO QDEBUG WHEN         *
*           ERRORS ARE DETECTED IN SPECIAL CODE GENERATED BY           *
*           TURNING ON CERTAIN PASCAL DEBUG OPTIONS.  QDEBUG           *
*           CONVERTS THE ERROR CODE TO A PBHALT CODE AND CALLS         *
*           PBHALT.                                                    *
*                                                                      *
*      ERROR CODE        CAUSE                 ERROR PARAMETER         *
*          1         ASSIGNMENT              OUT-OF-RANGE VALUE        *
*          2         INDEX                   OUT-OF-RANGE VALUE        *
*          3         DIVIDE BY 0             ---                       *
*          4         DYNAMIC VAR OVERFLOW    NEXT AVAILABLE ADDR       *
*          5         DYNAMIC STACK OVERFLOW  NEXT AVAILABLE ADDR       *
*          6         INTERRUPT COUNT NEG     ---                       *
*                                                                      *
**INPUT- ERROR CODE AND ERROR PARAMETER.                               *
*                                                                      *
**OUTPUT- A PBHALT CODE                                                *
*                                                                      *
**EXTERNAL SUBROUTINES-                                                *
*              1) PBHALT          SYSTEM HALT                          *
*                                                                      *
***********************************************************************?
PROCEDURE QDEBUG(ERROR,PARAM : INTEGER);
VAR   CODE: ARRAY[1..6] OF INTEGER; 
VALUE CODE= (Q0AOR,Q0IOR,Q0DIV0,Q0DVO,Q0DSO,Q0ICN); 
BEGIN 
  PBHALT (CODE[ERROR]);                _ HALT CCP ? 
END; _QDEBUG? 
