.TITLE ERRTS ; ; ERROR CODE HANDLER FOR FORTRAN TIME-SHARING SUBROUTINES ; ; CALLED IF C-BIT SET ON RETURN FROM MACRO+, WITH TDB ADDRESS IN R0. ; CHECKS ERROR STATUS ; BLOCK AND RETURNS AN ERROR CODE IN R0. FOR CODES, SEE THE LISTING. ; .PSECT SUBTAS,RO,I,LCL,REL,CON ; ERRTS:: .IRP RX, ;SAVE REGISTERS MOV RX,-(SP) .ENDR MOV T.TESB(R0),R1 ;ADDRESS ERROR STATUS BLOCK MOV #ERRLST,R2 ;ADDRESS PRIMARY ERROR LIST 1$: CMPB @R1,(R2) ;LOOK FOR PRIMARY ERROR BEQ 10$ ADD #LENPRI,R2 ;NEXT ENTRY CMP #ENDLST,R2 ;OUT OF LIST? BGE 1$ ;NO BR 50$ ;YES: UNKNOWN ERROR ; 10$: ADD #2,R2 MOV (R2)+,R3 ;ADDRESS SUBCODE LIST MOV (R2),R2 ;SUBCODE COUNT ADD #2,R1 ;ADDRESS SUBCODE IN ERSB 12$: CMPB (R3)+,@R1 ;LOOK FOR SUBCODE BEQ 15$ INC R3 ;NEXT ENTRY SOB R2,12$ ;COUNT AND LOOP BR 50$ ;NOT FOUND ; 15$: MOVB (R3),R0 ;RETURN NUMERIC CODE 20$: .IRP RX, ;RESTORE REGISTERS MOV (SP)+,RX .ENDR RTS PC ; 50$: MOVB #-255.,R0 ;CODE FOR UNKNOWN ERROR BR 20$ ; ; ERROR CODES. ; ***NOTE*** THE DESCRIPTION OF THE SUBCODE GIVEN IN THE THIRD ; (DUMMY) ARGUMENT TO THE MACRO .SBER IS THAT FOR THE FIRST TCS ; MACRO IN ALPHABETICAL ORDER. OTHER MACROS MAY USE SUBCODES ; FOR SOMEWHAT DIFFERENT PURPOSES. ; .PSECT SUBERR,RO,D,GBL,REL,CON ; .MACRO .TSER A,B,C .WORD A ;PRIMARY ERROR CODE .WORD B ;A(SUBLIST) .WORD C ;L(SUBLIST) .ENDM ; .MACRO .SBER A,B,C .BYTE A ;ERROR SUBCODE .BYTE B ;NUMERIC CODE TO RETURN .ENDM ; ERRLST: .TSER PE.BAD,BADLST,BADLEN LENPRI=.-ERRLST .TSER PE.PRI,PRILST,PRILEN .TSER PE.UPN,UPNLST,UPNLEN .TSER PE.ABO,ABOLST,ABOLEN ENDLST=. ; BADLST: .SBER 0,-2., .SBER PE.PRI,-3., BADLEN=.-BADLST ; PRILST: .SBER 0,-11., .SBER PE.ILL,-12., .SBER PE.NTS,-13., PRILEN=.-PRILST ; UPNLST: .SBER 0,-21., UPNLEN=.-UPNLST ; ABOLST: .SBER 0,-31., .SBER PE.BUF,-32., .SBER PE.MJN,-33., .SBER PE.NTA,-34., .SBER PE.TSE,-35., .SBER PE.ADR,-36., .SBER PE.ILL,-37., .SBER PE.TNI,-38., .SBER PE.UPN,-39., .SBER PE.IBS,-40., .SBER PE.CTC,-41., .SBER PE.ILL,-42., .SBER PE.NOD,-43., .SBER PE.MJA,-44., .SBER PE.TDB,-45., .SBER PE.NOB,-46., .SBER PE.GEF,-47., .SBER PE.INS,-48., .SBER PE.NOS,-49., .SBER PE.TAA,-50., ABOLEN=.-ABOLST .END