!***COPYRIGHT (C) 1974, 1975, 1976, 1977 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.*** MODULE ERR(RESERVE(#11, #12, #13, #14), SREG = #17, FREG = #16, DREGS = 4, VREG = #15, MLIST, TIMER = EXTERNAL(SIX12), FSAVE, ENTRIES=(ERR)) = BEGIN REQUIRE DATA.BLI; ! EVERYONE NEEDS THIS ! LAST MODIFIED: 2 JUL 76 BY CDO EXTERNAL ERLEAF, GETREQUEST, OUTMSG, WHYERROR, KILGROUP; ! ROUTINE ERR ! ======= === ! THIS ROUTINE PROCESS THE ENTRIES INTO THE ERROR LEAF GLOBAL ROUTINE ERR = BEGIN REGISTER MHPTR, GHPTR, UDX, SRCPTR; MAP FORMAT GHPTR; MAP FORMAT MHPTR; MAP FORMAT SRCPTR; BIND WHYSTR = PLIT( 0, !NO ERROR 0 PLIT(#440700000000, #000003000016, ASCIZ 'NOT SIGNED ON:'), PLIT(#440700000000, #000004000020, ASCIZ 'NOT ENOUGH DATA:'), PLIT(#440700000000, #000005000031, ASCIZ 'UNKNOWN TRANSACTION CODE:'), PLIT(#440700000000, #000010000044, ASCIZ 'MAY NOT ENTER THAT TRANSACTION CODE:') ), WHATB = PLIT( #440700000000, #000001000001, ASCIZ '??' ), WHATE = PLIT( #440703000000, #000001000003, ASCIZ '???M?J' ); IF (GHPTR _ GETREQUEST(ERLEAF)) EQL 0 THEN RETURN; IF .GHPTR[G0TYPEOFSENDER] EQL LEAFTYPE THEN RETURN; SRCPTR _ .GHPTR[G0SENDER]; ! GET THE SENDER UDX _ .SRCPTR[S0PORTPTR]; ! GET UDX OF SENDER OUTMSG(WHATB, .UDX, TRUE, TRUE); IF .WHYERROR GTR 0 AND .WHYERROR LSS .WHYSTR[-1] THEN OUTMSG(.WHYSTR[.WHYERROR],.UDX,TRUE,TRUE); MHPTR _ .GHPTR[ G0FMHPTR ]; !TO THE MESSAGE HEADER DO OUTMSG(.MHPTR[M0INCHNK],.UDX,TRUE,TRUE) WHILE (MHPTR_.MHPTR[M0FORE]) NEQ 0; OUTMSG(WHATE,.UDX, TRUE, FALSE); KILGROUP( .GHPTR, -1) !CLEAN UP THE INPUT SIDE END; END; ! END OF ERR.BLI