| 1 | /TDCHK DECTAPE READ CHECK\r |
| 2 | \r |
| 3 | /------------------------------------------------------\r |
| 4 | / BY ROBERT KRAUSE, MAY 1983\r |
| 5 | /\r |
| 6 | /READ CHECK IS STARTED BY SETTING SW0 TO 1\r |
| 7 | /IF THE TAPE HAS NO ERRORS IT IS REWOUND AND\r |
| 8 | /ALL MQ BITS ARE SET. LOWER AND RAISE SW0 TO\r |
| 9 | /RESTART CHECK. AFTER AN ERROR THE ROUTINE\r |
| 10 | /TRIES TO FIND THE EXACT BLOCK # OF THE ERROR.\r |
| 11 | /IF THE ERROR DISAPPEARED THE CHECK IS RESTARTED,\r |
| 12 | /OTHERWISE THE BLOCK # OF THE ERROR IS DISPLAYED\r |
| 13 | /IN THE MQ REGISTER AND THE TERMINAL BELL RINGS.\r |
| 14 | /SETTING SW0 TO 0 ABORTS THE CURRENT OPERATION\r |
| 15 | /AND THE TAPE IS REWOUND.\r |
| 16 | /CTRL/C RETURNS TO THE KEYBOARD MONITOR.\r |
| 17 | /------------------------------------------------------\r |
| 18 | \r |
| 19 | *200\r |
| 20 | \r |
| 21 | TDCHK, LAS /SW0 = 1 ?\r |
| 22 | SMA CLA\r |
| 23 | JMP .-2\r |
| 24 | \r |
| 25 | TAD (-103 /SET COUNT TO # OF CLUSTERS\r |
| 26 | DCA CNT\r |
| 27 | DCA BLKN /SET BLOCK # TO 0\r |
| 28 | MQL /CLEAR MQ\r |
| 29 | \r |
| 30 | NEXT, KRS /CTRL/C TYPED ?\r |
| 31 | TAD (-203\r |
| 32 | SNA\r |
| 33 | JMP I (7600 /YES, RETURN TO MONITOR\r |
| 34 | \r |
| 35 | LAS /SW0 = 1 ?\r |
| 36 | SMA CLA\r |
| 37 | JMP REWIND /NO, REWIND TAPE\r |
| 38 | \r |
| 39 | JMS I (7614 /READ 11. BLOCKS FROM UNIT 1\r |
| 40 | 1310 /INTO FIELD 1\r |
| 41 | 0000 /BEGINNING AT 0000\r |
| 42 | BLKN, 0000 /BLOCK #\r |
| 43 | \r |
| 44 | JMP ERROR /ERROR RETURN\r |
| 45 | \r |
| 46 | CLA /BLKN:=BLKN+11.\r |
| 47 | TAD BLKN\r |
| 48 | TAD (13\r |
| 49 | DCA BLKN\r |
| 50 | TAD BLKN /DISPLAY IN MQ (JUST FOR FUN)\r |
| 51 | MQL\r |
| 52 | ISZ CNT /INCREMENT CLUSTER COUNT\r |
| 53 | \r |
| 54 | JMP NEXT /CONTINUE\r |
| 55 | \r |
| 56 | STA /CNT = 0, DISPLAY -1 IN MQ\r |
| 57 | MQL\r |
| 58 | \r |
| 59 | REWIND, CLA\r |
| 60 | JMS I (7614 /READ BLOCK #0 TO REWIND TAPE\r |
| 61 | 0110\r |
| 62 | 0000\r |
| 63 | 0000\r |
| 64 | NOP\r |
| 65 | \r |
| 66 | LAS /SW0 = 0 ?\r |
| 67 | SPA\r |
| 68 | JMP .-2\r |
| 69 | \r |
| 70 | JMP TDCHK /RESTART\r |
| 71 | \r |
| 72 | ERROR, CLA /SET ERROR COUNT\r |
| 73 | TAD (-13\r |
| 74 | DCA CNT\r |
| 75 | TAD BLKN /ERRBLK:=BLKN\r |
| 76 | DCA ERRBLK\r |
| 77 | \r |
| 78 | ERR1, JMS I (7614 /READ 1 BLOCK\r |
| 79 | 0110\r |
| 80 | 0000\r |
| 81 | ERRBLK, 0000\r |
| 82 | \r |
| 83 | JMP ERR2 /ERROR RETURN\r |
| 84 | \r |
| 85 | ISZ ERRBLK /INCREMENT BLOCK #\r |
| 86 | CLA /DISPLAY BLOCK # IN MQ\r |
| 87 | TAD ERRBLK\r |
| 88 | MQL\r |
| 89 | ISZ CNT /INCREMENT COUNT\r |
| 90 | \r |
| 91 | JMP ERR1 /CHECK NEXT BLOCK\r |
| 92 | \r |
| 93 | ERR2, CLA /RING TERMINAL BELL\r |
| 94 | TAD (207\r |
| 95 | TLS\r |
| 96 | \r |
| 97 | LAS /SW0 = 0 ?\r |
| 98 | SPA\r |
| 99 | JMP .-2\r |
| 100 | \r |
| 101 | JMP REWIND /REWIND TAPE AND RESTART\r |
| 102 | \r |
| 103 | /-------\r |
| 104 | \r |
| 105 | CNT, 0\r |
| 106 | \r |
| 107 | $\r |