REI.MAC/-BF=REI.VGN \ -3,3 .IDENT /V01.1/ -6,6 ; Ident: V01.1 -22 ; ; ;****************************************************************************** ; ; This software is provided on an "as is" basis only. Caterpillar Tractor Co., ; disclaims all warranties on the program, including without limitation, all ; implied warranties of merchantablity and fitness. ; ; Full permission and consent is hereby given to DECUS and to the DECUS ; special interest groups to reproduce, distribute, and publish and permit ; others to reproduce in whole or in part, in any form and without restriction ; this program and any information relating thereto ; ;****************************************************************************** ; ; Modified by: ; ; The following modifications were made by Rick Webster, Process ; Control Applications, MSDGO, Caterpillar Tractor Co. ; ; RAW001 - Correct error detection on input disk ; ; RAW002 - Enable and enhance output open error message. ; Correct error detection with WRITE$ macro, enhance ; output write error message and set up to delete output ; file if write error occurs ; ; RAW003 - Correct buffer clear logic so that it clears bytes, ; not words ; ; RAW004 - Enhance error message for read error on input device ; % -275,275,/;RAW001/ CMPB (R1),#IE.BLK ; Reached end of disk? -277,277,/;RAW004/ 102$: MOV #ARGBLK,R2 ; Point to argument block MOV Q.IOSB(R0),R1 ; Move qio error code MOVB (R1),R1 ; to MOV R1,(R2) ; argument block MOV #EDINER,R1 ; Point to input error message MOV #TIBUF+1,R0 ; Point to output buffer CALL $EDMSG ; Edit error message MOV R0,R1 ; R1 points to end of generated message SUB #TIBUF+1,R1 ; R1 now has length of message MOV #TIBUF,R0 ; R0 points to message MOVB R1,(R0) ; Put message length into message for ERROR -468,470,/;RAW002/ MOV #FCSERR,ARGBLK ; Assume FCS error TSTB F.ERR+1(R0) ; Directive error code? BEQ 236$ ; No it really was an FCS error MOV #DIRERR,ARGBLK ; Yes, indicate so in message 236$: MOV #ARGBLK,R2 ; Point to argument block MOVB F.ERR(R0),R1 ; Move file error code MOV R1,2(R2) ; to argument block -474,474,/;RAW002/ MOV R0,R1 ; R1 points to end of generated message SUB #TIBUF+1,R1 ; R1 now has length of message MOV #TIBUF,R0 ; R0 points to message MOVB R1,(R0) ; Put message length into message for ERROR BR 227$ ; Go output error message -512,519,/;RAW002/ BCC 261$ ; Branch if no error BR 262$ ; Go output error message 261$: WAIT$ R0 ; Wait for it TSTB INSB3 ; Error? BPL 264$ ; If PL no 262$: MOV #FCSERR,ARGBLK ; Assume FCS error TSTB F.ERR+1(R0) ; Directive error code? BEQ 263$ ; No it really was an FCS error MOV #DIRERR,ARGBLK ; Yes, indicate so in message 263$: MOV #ARGBLK,R2 ; Point to argument block MOVB F.ERR(R0),R1 ; Move file error code MOV R1,2(R2) ; to argument block MOV #EDOUER,R1 ; Point to file error message MOV #TIBUF+1,R0 ; Point to output buffer CALL $EDMSG ; Edit error message MOV R0,R1 ; R1 points to end of generated message SUB #TIBUF+1,R1 ; R1 now has length of message MOV #TIBUF,R0 ; R0 points to message MOVB R1,(R0) ; Put message length into message for ERROR CALL ERROR ; DELET$ #FDB0 ; Delete bad output file BR 270$ ; Abort copy ; 264$: ADD #1,INQIO3+Q.IOPL+10 ; Bump input block number -592,592,/;RAW003/ 10$: CLRB (R2)+ ; Clear it -663,663,/;RAW004/ EDINER: .ASCIZ @%NREI - Error reading input device: FCS (%D).@ -668,668,/;RAW002/ -671,671,/;RAW002/ EDFOER: .ASCIZ @%NREI - Error opening output file: %I (%D).@ EDOUER: .ASCIZ @%NREI - Error writing output file: %I (%D) : aborted.@ -676,,/;RAW002/ FCSERR: .ASCIZ /FCS/ DIRERR: .ASCIZ /DIR/ /