*DECK XERRMSG 
USETEXT NIPDEF
USETEXT MSGIDX
USETEXT PARAMS
      PRGM XERRMSG;          # ISSUE DAYFILE MESSAGE                   #
  
 STARTIMS;
 #
*1DC  XERRMSG 
* 
*     1. PROC NAME           AUTHOR              DATE 
*        XERRMSG             P.C.TAM             80/02/11 
* 
*     2. FUNCTIONAL DESCRIPTION.
*        SECONDARY OVERLAY FOR NIP-S DAYFILE MESSAGES.
* 
*     3. METHOD USED. 
*        ERROR MESSAGE INDEX IS PASSED VIA COMMON BLOCK ITEM PARAMS1
*        ERROR MESSAGE IN ARRAY ERRTEXT 
* 
*     4. ENTRY PARAMETERS.
*          PARAMS1  MESSAGE INDEX 
*          PARAMS2  JOBNAME IF NECCESSARY 
* 
*     5. EXIT PARAMETERS.  NONE.
* 
*     6. COMDECKS CALLED AND SYMPL TEXTS USED.
*        MSGIDX    NIPDEF    OSSIZE    PARAMS 
* 
*     7. ROUTINES CALLED. 
*          OMSG              DAYFILE MESSAGES 
*          XTRACE            RECORD PROCEDURE CALLS 
* 
*     8. DAYFILE MESSAGES.
*          *NIP FATAL ERROR PROC = XXXX.* 
*          *SECURITY VIOLATION APP XXXXXXX.*
*          *APP SENT BLK ON BROKEN CONNECTION.* 
*          *NIP UNABLE TO FIND FAILED APP XXXXXXX.* 
*          *BAD MINACT/MAXACN VALUE JOBID=XXXXXXX.* 
*          *BAD NETWORK BLOCK DISCARDED.* 
*          *NIP SHUTDOWN COMPLETE.* 
*          *NIP/SCP ERROR RC = XXB,JOBID=XXXX*
*          *CS FAILURE.*
*          *BREAK OUTSTANDING.* 
* 
*        THIS PROGRAM IS A SECONDARY OVERLAY LOADED BY SUBROUTINE 
*        OVLCALL. WHEN EXECUTION IS COMPLETED, A JUMP IS MADE TO
*        LOCATION RJMAIN TO RETURN TO THE CALLING PROGRAM.
* 
*        W A R N I N G - THIS PROGRAM CANNOT EXCEED THE SECONDARY 
*CALL OSSIZE
* 
* 
 #
 STOPIMS; 
# 
                    EXTERNAL VARIABLES
# 
 XREF 
   BEGIN
   PROC OMSG;                # DAYFILE MESSAGE                         #
   PROC ABORT ; 
   PROC XTRACE;              # TRACE CALL                              #
   LABEL RJMAIN;             # RETURN ADDRESS IN OVLCALL               #
   END
# 
                    INTERNAL VARIABLES
# 
 ARRAY ERRMSG S(4);          # ASSEMBLEY AREA FOR ERROR MESSAGE        #
   BEGIN
   ITEM TEXT    C(0,0,38);
   ITEM EM01ID  C(2,18,4);
   ITEM EM02ID  U(2,18,42); 
   ITEM EM04ID  U(3,0,42);
   ITEM EM07RC  U(2,0,12);
   ITEM EM07ID  U(3,0,42);
   ITEM ENDTEXT I(3,48,12) = [0]; 
   END
 ARRAY ERRTEXT[1:MSGNUM] S(4);
   BEGIN
   ITEM EM      C(0,0,38) = [ 
        "NIP FATAL ERROR PROC =     .",                      # DFMSG01 #
        "SECURITY VIOLATION APP        .",                   # DFMSG02 #
        "APP SENT BLK ON BROKEN CONNECTION.",                # DFMSG03 #
        "NIP UNABLE TO FIND FAILED APP        .",            # DFMSG04 #
        "BAD NETWORK BLOCK DISCARDED.",                      # DFMSG05 #
        "NIP SHUTDOWN COMPLETE.",                            # DFMSG06 #
        " NIP/SCP ERROR RC =   B,JOBID=       ",             # DFMSG07 #
        "BREAK OUTSTANDING.",                                # DFMSG11 #
        "NIP RECEIVED BLK ON PRU CONNECTION.",               # DFMSG09 #
        "BAD MINACN/MAXACN VALUE JOBID=       .",            # DFMSG20 #
        "INVALID TRIGGER NUMBER -   STTP."                   # DFMSG26 #
                            ];
   END
   ITEM ERRNUM;              # ERROR MESSAGE NUMBER TO BE DAYFILED     #
   ITEM TEMP;                # TEMPORARY STORAGE LOCATION              #
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  #
      BEGIN 
      CONTROL IFEQ DEBUG,1 ;
        XTRACE("XERRM") ; 
      CONTROL FI; 
  
      ERRNUM = B<54,6> PARAMS1; 
      TEXT = EM[ERRNUM];
      IF ERRNUM EQ 1
      THEN
        EM01ID[0] = C<0,4>PARAMS6;
      IF ERRNUM EQ DFMSG02
      THEN
        EM02ID[0] = B<0,42>PARAMS2; 
      IF ERRNUM EQ DFMSG04 OR ERRNUM EQ DFMSG20 
        THEN EM04ID = B<0,42> PARAMS2 ; 
      IF ERRNUM EQ DFMSG07
      THEN
        BEGIN 
        TEMP = PARAMS2/8; 
        EM07RC[0] = TEMP*O"100" + PARAMS2-TEMP*8 + O"3333"; 
        EM07ID[0] = B<0,42> PARAMS3;
        END 
      OMSG(ERRMSG,0);          # ISSUE DAYFILE MESSAGE                 #
      IF PARAMS1 GR 64
      THEN
        ABORT(0,0) ;
      ELSE
        GOTO RJMAIN;
  
      END 
TERM
