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