*DECK NPISM USETEXT NIPDEF USETEXT AHEADER USETEXT ACB USETEXT ACNB USETEXT AT USETEXT PT USETEXT PWL USETEXT PCNB USETEXT OVERLAY USETEXT PARAMP USETEXT SUPMSG PRGM NPISM; # PROCESS AN ILLOGICAL SM FROM APPLICATION# STARTIMS; # *1DC NPISM * * 1. PROC NAME AUTHOR DATE * NPISM J.C. LEE 80/04/01 * * 2. FUNCTIONAL DESCRIPTION. * PROCESS AN ILLOGICAL PRU SUPERVISORY MESSAGE FROM APPLICATION * * 3. METHOD USED. * CHECK IF LOGICAL ERROR LIMIT FOR THE APPLICATION IS REACHED, * GET BUFFER AND FORMAT THE ERR/LGL/SM * SEND LOGICAL ERROR SUPERVISORY MESSAGE TO APPLICATION * * 4. ENTRY PARAMETERS. * PARAMP1 PRU WORKLIST ADDRESS * PARAMP2 PCBN ADDRESS * * 5. EXIT PARAMETERS. * PARAMP1 NONZERO SPECIFIES ERROR CODE FOR PWL * * 6. COMDECKS CALLED AND SYMPL TEXTS USED * ACB ACNB AHEADER AT * NIPDEF OPSIZE PARAMP * PCNB PT PWL SUPMSG * * 7. ROUTINES AND OVERLAYS CALLED * BLINK LINK MESSAGE TO DATA RING * XTRACE TRACE CALLS * * 8. DAYFILE MESSAGES. * NONE * * THIS PROGRAM IS A PRIMARY OVERLAY LOADED BY SUBROUTINE OVLCALL. * WHEN EXECUTION HAS 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 PRIMARY *CALL OPSIZE * * THIS OVERLAY IS CALLED BY NPPWL. * # STOPIMS; # EXTERNAL VARIABLES # XREF BEGIN PROC BLINK; # LINK MESSAGE TO DATA RING # PROC OSCHAPP; # SCHEDULE APPLICATION # PROC XTRACE; # TRACE CALLS # LABEL RJMAIN; # RETURN ADDRESS # END # LOCAL VARIABLES # ITEM REASON; # REASON CODE FOR ERR/LGL SUP MSG # ITEM DEBUGINFO; # DEBUG INFORMATION FROM PIP # # ******************************************************************** # BEGIN CONTROL IFEQ DEBUG,1; XTRACE("NPISM") ; CONTROL FI; P = PARAMP1; # PWL ADDRESS # P = PARAMP2; # PCNB ADDRESS # P = PCNBACNB[0]; # ACNB ADDRESS # P = ATACBA[ACNBAN[0]]; # ACB ADDRESS # PARAMP1 = 0; # PRESET TO NORMAL EXIT # # CHECK IF LOGICAL ERROR LIMIT IS REACHED # IF ACBERCNT[0] LQ MAXLGERR AND # LOGICAL ERROR LIMIT NOT REACH # NOT ATNVFN[0] # APPLICATION NOT NETOFFED YET # AND NOT ATNVFF[0] # APPLICATION NOT FAILED YET # THEN BEGIN IF ACBERCNT[0] EQ MAXLGERR THEN # LOGICAL ERROR LIMIT REACHED # REASON = RLG"IAL"; ELSE # REASON CODE SPECIFIED BY PIP # REASON = PWLRC[0]; DEBUGINFO = PWLPARAM[0]; # SAVED DEBUG INFO SUPPLIED BY PIP # PWLCC[0] = O"5555"; # INDICATE ERROR LOGICAL FROM PIP # ACBERCNT[0] = ACBERCNT[0] + 1; # INCREMENT LOGICAL ERROR COUNT # P = P + BLKHSIZE; # REUSE PWL # ABHWORD[0] = 0; # CLEAR ABH WORD # ABHABT[0] = APPCMD; # BLOCK TYPE # ABHACT[0] = CT60TRANS; # CHARACTER TYPE # ABHTLC[0] = PWLBS[0] - BLKHSIZE - PWLHSIZE; # SM TEXT LENGTH # P = P + ABHSIZE; ERRWD[0] = 0; PFCSFC[0] = ERRLGL; # PFC/SFC FUNCTION CODE # ERRRLG[0] = REASON; # REASON CODE FROM PIP # SPMSG1[0] = DEBUGINFO; # RESTORE DEBUG INFO FOR RBF # BLINK(P,P); OSCHAPP(P); # SCHEDULE APPLICATION # END GOTO RJMAIN; END TERM