/TDCHK DECTAPE READ CHECK /------------------------------------------------------ / BY ROBERT KRAUSE, MAY 1983 / /READ CHECK IS STARTED BY SETTING SW0 TO 1 /IF THE TAPE HAS NO ERRORS IT IS REWOUND AND /ALL MQ BITS ARE SET. LOWER AND RAISE SW0 TO /RESTART CHECK. AFTER AN ERROR THE ROUTINE /TRIES TO FIND THE EXACT BLOCK # OF THE ERROR. /IF THE ERROR DISAPPEARED THE CHECK IS RESTARTED, /OTHERWISE THE BLOCK # OF THE ERROR IS DISPLAYED /IN THE MQ REGISTER AND THE TERMINAL BELL RINGS. /SETTING SW0 TO 0 ABORTS THE CURRENT OPERATION /AND THE TAPE IS REWOUND. /CTRL/C RETURNS TO THE KEYBOARD MONITOR. /------------------------------------------------------ *200 TDCHK, LAS /SW0 = 1 ? SMA CLA JMP .-2 TAD (-103 /SET COUNT TO # OF CLUSTERS DCA CNT DCA BLKN /SET BLOCK # TO 0 MQL /CLEAR MQ NEXT, KRS /CTRL/C TYPED ? TAD (-203 SNA JMP I (7600 /YES, RETURN TO MONITOR LAS /SW0 = 1 ? SMA CLA JMP REWIND /NO, REWIND TAPE JMS I (7614 /READ 11. BLOCKS FROM UNIT 1 1310 /INTO FIELD 1 0000 /BEGINNING AT 0000 BLKN, 0000 /BLOCK # JMP ERROR /ERROR RETURN CLA /BLKN:=BLKN+11. TAD BLKN TAD (13 DCA BLKN TAD BLKN /DISPLAY IN MQ (JUST FOR FUN) MQL ISZ CNT /INCREMENT CLUSTER COUNT JMP NEXT /CONTINUE STA /CNT = 0, DISPLAY -1 IN MQ MQL REWIND, CLA JMS I (7614 /READ BLOCK #0 TO REWIND TAPE 0110 0000 0000 NOP LAS /SW0 = 0 ? SPA JMP .-2 JMP TDCHK /RESTART ERROR, CLA /SET ERROR COUNT TAD (-13 DCA CNT TAD BLKN /ERRBLK:=BLKN DCA ERRBLK ERR1, JMS I (7614 /READ 1 BLOCK 0110 0000 ERRBLK, 0000 JMP ERR2 /ERROR RETURN ISZ ERRBLK /INCREMENT BLOCK # CLA /DISPLAY BLOCK # IN MQ TAD ERRBLK MQL ISZ CNT /INCREMENT COUNT JMP ERR1 /CHECK NEXT BLOCK ERR2, CLA /RING TERMINAL BELL TAD (207 TLS LAS /SW0 = 0 ? SPA JMP .-2 JMP REWIND /REWIND TAPE AND RESTART /------- CNT, 0 $