A large commit.
[pdp8.git] / sw / rescue / muenchen2013 / files / krause_soft / tdchk.pa
CommitLineData
81e70d48
PH
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
21TDCHK, 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
30NEXT, 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
42BLKN, 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
59REWIND, 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
72ERROR, 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
78ERR1, JMS I (7614 /READ 1 BLOCK\r
79 0110\r
80 0000\r
81ERRBLK, 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
93ERR2, 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
105CNT, 0\r
106\r
107$\r