.TITLE INDERR - ERROR ON INDIRECT INPUT FILE .IDENT "X0204" ; ANDREW C. GOLDSTEIN 30-JUN-77 13:04 .MCALL CLOSE$ .ENABL LSB .PSECT PURE,RO,D ; ; MESSAGE FOR I/O ERROR ON INDIRECT FILE ; INDERM: .ASCII <15><12>"I/O error reading indirect file"<15><12> INDERS = .-INDERM .EVEN ;+ ; ; *** INDER1 I/O ERROR FROM INDIRECT FILE GET$, GIVE ERROR MESSAGE ; AND CLOSE THE INDIRECT FILE. ; ; INPUTS: NONE ; ; OUTPUTS: ; ; R0 ALTERED ; R3,R4 ALTERED ; ALL OTHER REGISTERS PRESERVED ; ;- .PSECT CODE,RO INDER1::CMPB F.ERR(R0),#IE.EOF ; CHECK FOR EOF BEQ INDCL1 ; IF SO, JUST CLOSE QUIETLY MOV #INDERM,R3 ; R3, R4 = ERROR DESCRIPTOR MOV #INDERS,R4 CALL PRINT ; PRINT THE ERROR MESSAGE ; CLEAN OUT NON-STANDARD ET FLAGS BIC #ET.IMG!ET.NCH!ET.CCO!ET.CKE!ET.CC,ETYPE(R5) BIT #ET.EXI,ETYPE(R5) ; SEE IF EXIT ON ERROR REQUESTED BEQ 10$ ; BRANCH IF NOT JMP TEXIT 10$: CLRB CCLFLG ; THROW AWAY CCL COMMAND LINE IF INIT FAILS INDCL1::MOV R0,-(SP) ; SAVE R0 FOR TECO MAIN MOV INDIR(R5),R0 ; CLOSE THE INDIRECT FILE IF IT'S OPEN BEQ 20$ ; BRANCH IF NOT OPEN CLOSE$ R0 ; CLOSE IT CLR CMDFDB+F.NRBD ; FLUSH REMAINING RECORD BUFFER TSTB CCLFLG ; SEE IF COMMAND LINE IS WAITING BNE 20$ ; BRANCH IF YES CLR INDIR(R5) ; ELSE BACK TO TERMINAL INPUT 20$: MOV (SP)+,R0 ; RESTORE R0 RETURN .DSABL LSB .END