.TITLE COPY RT11 FILE .MCALL .READC,.WRITC,.LOOKUP,.FETCH,.CLOSE,.EXIT,.PRINT,.ENTER .MCALL .SPND,.RSUM,.SPCPS .NLIST BEX .ENABL LC START: .FETCH #INFIL .FETCH #OUTFIL .LOOKUP #AREA,#0,#INFIL BCC 1$ .PRINT #INOERR BR EOF 1$: .ENTER #AREA,#1,#OUTFIL BCC 5$ .PRINT #OUOERR BR EOF 5$: CLR %1 10$: .READC #AREA,#0,#BUFFER,#256.,#COMP,%1 BCS ERRU MOV %0,%2 .SPND .WRITC #AREA,#1,#BUFFER,%2,#COMP,%1 INC %1 BCS ERRU .SPND BR 10$ ERRU: .PRINT #UNTRAP BR EOF ERR: .PRINT #IOERR EOF: .CLOSE #0 .CLOSE #1 .PRINT #UNSTOP .SPND .EXIT COMP: BIT #1,%0 ; HARD ERROR? BEQ 10$ ; NO, CONTINUE .SPCPS #AREA,#ERRCTL ; YES, EXIT TO I/O ERROR MESSAGE BR 30$ 10$: TST %1 ; INPUT CHANNEL? BNE 30$ ; NO, JUST RETURN BIT #20000,%0 ; YES, END-OF-FILE? BEQ 30$ ; NO, CONTINUE .SPCPS #AREA,#EOFCTL ; YES, DONE 30$: .RSUM RTS PC INFIL: .RAD50 /SY0INPUT TXT/ OUTFIL: .RAD50 /SY0OUTPUTTXT/ AREA: .BLKW 5. ERRCTL: .WORD ERR,0,0 EOFCTL: .WORD EOF,0,0 BUFFER: .BLKW 256. IOERR: .ASCIZ "I/O ERROR" INOERR: .ASCIZ "INPUT OPEN ERROR" OUOERR: .ASCIZ "OUTPUT OPEN ERROR" UNTRAP: .ASCIZ "UNTRAPPED I/O ERROR" UNSTOP: .ASCIZ "STOPPING -- TYPE UNS TO EXIT" .EVEN .END START