Initial commit
[retro-software/dec/tops10/v1.19.git] / src / mtpser.mac
1           TITLE MTPSER - MAGNETIC TAPE SERVICE ROUTINES - NO DIRECTORIES\r
2           SUBTTL L. HANTMAN 8-9-65\r
3           T=ITEM\r
4 ; MAG TAPE SERVICE SUBROUTINES\r
5 \r
6 MTAPE1:   PUSHJ PDP,WAIT1\r
7           HRRZI IOS,776000\r
8           ANDCAB IOS,DEVIOS(DEVDAT)\r
9           MOVEI T,(UUO)\r
10           PUSHJ PDP,MTAPE+1\r
11           JRST UXIT\r
12 \r
13 MTAPE:    PUSHJ PDP,WAIT1\r
14           TLZ IOS,IODT\r
15           TRO IOS, IOACT                ;SET ACTIVE\r
16           PUSHJ PDP,MTCHK2              ;CHECK IF MAG TAPE CONTROL AV\r
17           LSH T,^D8 ;MOVE TO FUNCTION\r
18           ANDI T,7400           ;MODE BITS\r
19           CAIN T,4000           ;LOGICAL EOT?\r
20           JRST MTLEOT\r
21           CAIE T,400            ;RWD?\r
22           JRST .+3\r
23           CONSZ 224,4000        ;AT LOAD POINT?\r
24           JRST MTDMP4\r
25           MOVEI TAC, TCF                ;LOOK FOR TAPE CONTROL FREE 0\r
26 MTGO1:    HRRM TAC, MTCONO\r
27           HRRM TAC, MTCINT\r
28 MTGO1A:   LDB TAC,PUNIT         ;UNIT\r
29           DPB TAC,[POINT 3,T,31]        ;UNIT\r
30           LDB TAC, [POINT 3, IOS,28]    ;DENSITY PARITY\r
31           XORI TAC, 5                   ;ODD, 556\r
32           DPB TAC,[POINT 3,T,23]\r
33           MOVEI TAC,MTCCHN(T) ;CHANNEL\r
34 \r
35 MTGO:     CONO 224, 0                   ;DISABLE ALL INTERRUPTS\r
36           TRO TAC, 200                  ;INHIBIT RETURN TO POOL\r
37           CONO 220,(TAC)                ;COMMAND\r
38           SETZM MTEOFF#                 ;CLEAR EOF FLAG\r
39           HRRM DEVDAT,MTDEV#    ;COMMAND, DVDB\r
40           HRLM TAC,MTDEV\r
41           TLNE IOS,IODT\r
42           CONO PI,2000+DCB\r
43           MOVEI TAC,MTPDUN\r
44 MTCONO:   CONO 224,TCF+ERF              ;ENABLE FLAGS\r
45           POPJ PDP,\r
46 \r
47 ;READ\r
48 MTIN:     TLZ IOS, IO                   ;READING\r
49           PUSHJ PDP,MTCHEK              ;IS SYSTEM AVAILABLE?\r
50           SETCM TAC,@DEVIAD(DEVDAT)     ;-SIZE-1\r
51 MTIN1:    HRRI TAC,@DEVIAD(DEVDAT)      ;BUFFER ADDRESS, PROG INCLUDE\r
52           ADD TAC,[XWD 2,1]             ;-SIZE+1,BUFFER+1\r
53           MOVEI T,2400          ;READ\r
54 MTIN2:    MOVE TAC1,[BLKI DC,4000+DCN+MTDC*10]\r
55           JRST MTINDC\r
56 \f\r
57 ;IS SYSTEM AVAILABLE\r
58 MTCHEK:   TRO IOS, IOACT                ;SET ACTIVE\r
59           TLO IOS, IODT                 ;SET FOR DATA TRANSFER\r
60           MOVEM IOS, DEVIOS(DEVDAT)\r
61 MTCHK1:   AOSE DCREQ\r
62           PUSHJ PDP,DCWAIT\r
63 MTCHK2:   TLZ IOS, IOSEOF+IOBEG                 ;CLEAR SPACE TO EOF\r
64           MOVEM IOS, DEVIOS(DEVDAT)             ;STORE BITS\r
65           AOSE MTREQ\r
66           PUSHJ PDP,MTWAIT\r
67           XCT MTGO1A                    ;UNIT\r
68           ROT TAC, 4                    ;PUT IN UNIT POSITION\r
69           CONO 220, 200(TAC)    ;HAS UNIT ONLY\r
70           CONO 224, SEL                 ;JAM UNIT INTO COMMAND BUFFER\r
71           CONSZ 224, SEL                ;UNIT NOT READY?\r
72           POPJ PDP, 0                   ;EXIT\r
73           ROT TAC, -4                   ;UNIT IN TAC\r
74           HRRM DEVDAT, MTSTAK(TAC)      ;PUT IN STACK\r
75           MOVE TAC1, [XWD MTCLOK,^D32]  ;HALF SECOND\r
76           DPB TAC, [POINT 3,TAC1,23]    ;STORE UNIT NUMBER\r
77           HRLM TAC1, MTSTAK(TAC)        ;SAVE ACTUAL CLOCK REQUEST\r
78           CONO PI, 400                  ;TURN OFF PI\r
79           IDPB TAC1, CLOCK              ;REQUEST CLOCK RETURN TO MTCL\r
80           CONO PI, 200                  ;TURN PI ON\r
81           SOSL MTREQ            ;DECREMENT REQUEST COUNT, ANYONE LEFT W\r
82           SETOM MTAVAL                  ;YES,SET MAG TAPE AVAL\r
83           TLNN IOS, IODT                ;NON-DATA TRANSFER?\r
84           JRST MTCHK3           ;YES\r
85           SOSL DCREQ            ;NO,DECREMENT REQUEST COUNT,ANYONE LEFT\r
86           SETOM DCAVAL                  ;YES,SET DATA CONTROL AVAILAB\r
87 MTCHK3:   PUSHJ PDP, WSYNC              ;REQUEST WAIT\r
88           MOVE IOS, DEVIOS(DEVDAT)      ;LOAD STATUS\r
89           TLNN IOS, IODT                ;DATA TRANFER?\r
90           JRST MTCHK2+2                 ;CHECK FOR MT AVAILABLE ONLY\r
91           JRST MTCHK1                   ;CHECK FOR MT AND DC AVAIALABL\r
92 \f\r
93 ;WRITE\r
94 MTOUT:    TLO IOS, IO                   ;WRITING\r
95           PUSHJ PDP,MTCHEK\r
96           CONSZ 224,200         ;IS FILE PROTECT RING IN?\r
97           JRST MTOUTE           ;NO, ERROR CANT WRITE. CROCK!!\r
98 MTOUT1:   MOVEI TAC,@DEVOAD(DEVDAT)     ;BUFFER ADDRESS, PROG INCLUDE\r
99           MOVN TAC1,1(TAC)      ;-WD COUNT\r
100           HRL TAC,TAC1          ;-WD CMT,BUFFER\r
101           AOJG TAC,MTNOTI       ;BUFFER+1, TEST FOR ZERO WORD COUNT\r
102 MTOUT2:   MOVE TAC,[BLKO DC,3400+DCN+MTDC*10]\r
103           MOVEI T,1000          ;WRITE\r
104 MTINDC:   MOVEM TAC,MTDCCN#             ;BLKO POINTER\r
105           MOVEM TAC,DCWRD#\r
106           HRRZM TAC1, MDCSAV#           ;SAVE DC COMMAND\r
107           HRRI TAC1,DCWRD\r
108           MOVEM TAC1,40+<2*DCN>         ;BLK COMMAND\r
109           MOVE TAC1,[JSR MTDCND]\r
110           MOVEM TAC1,41+<2*DCN>\r
111           CONO PI,1100\r
112           CONO DC, @MDCSAV              ;DATA CONTROL COMMAND\r
113           MOVEI TAC, ERF\r
114           JRST MTGO1\r
115 \r
116 MTOUTE:   TRO IOS,IODERR        ;WRITE LOCK, DEVICE ERROR\r
117           PUSHJ PDP,MTEND1\r
118           JRST UXIT\r
119 \r
120 MTCLS:    LDB TAC,PIOMOD        ;MODE\r
121           CAIG TAC, 16                  ;DUMP MODE\r
122           JRST MTCLS1                   ;CLOSE OUTPUT\r
123           TLNE IOS,IO                   ;INPUT?\r
124           JRST MTCLS1+1                 ;WRITE EOFS\r
125           MOVEI T,16            ;SPACE TO EOF\r
126           JRST MTAPE                    ;GOES BACK TO UUO LEVEL\r
127 MTCLS1:   PUSHJ PDP,OUT\r
128           MOVEI T,3  ;WRITE IOF\r
129           PUSHJ PDP, MTAPE\r
130           MOVEI T,3  ;WRITE EOF\r
131           PUSHJ PDP, MTAPE\r
132           MOVEI T,7  ;BSP\r
133           JRST MTAPE\r
134 MTDISP:   POPJ PDP,                     ;RELEASE\r
135           JRST MTCLS                    ;CLOSE\r
136           JRST MTOUT                    ;WRITE\r
137           JRST MTIN                     ;READ\r
138           JRST CUXIT1           ;ENTER IN DIRECTORY\r
139           JRST CUXIT1           ;LOOKUP IN DIRECTORY\r
140           JRST MTDMPO                   ;DUMP OUT\r
141           JRST MTDMPI                   ;DUMP IN\r
142           JRST UXIT                     ;SETO\r
143           JRST UXIT                     ;SETI\r
144           JRST UXIT                     ;GETF\r
145 \r
146 MTCINI:   MOVN TAC, MTREDO              ;REPEAT COUNTER\r
147           HRREM TAC, MTERCN             ;RESET ERROR CNTR\r
148           CONO 224,0                    ;CLEAR ENABLES\r
149           HLLZS MTCINT                  ;CLEAR CONSO\r
150           POPJ PDP,\r
151 \r
152 \f\r
153 \r
154 \r
155 ;BLK COUNTED OUT\r
156 \r
157 MTDCND:   0\r
158           CONO PI,DCB+1000              ;SHUT OF DC CHANNEL\r
159           JEN @MTDCND\r
160 \f\r
161 \r
162 ;FLAG FROM TAPE CONTROL.  SET UP BY INSERT MACRO\r
163 MTCINT:   CONSO 224,TCF+ERF\r
164           JRST .\r
165           JSR MTCSAV                    ;SAVE ACS\r
166           HRRZ DEVDAT,MTDEV             ;DVBD\r
167           LDB PROG,PJOBN;               JOB NUMBER\r
168           HRRZ PROG, JBTADR(PROG)\r
169           MOVE IOS, DEVIOS(DEVDAT)\r
170           CONSO 224,TCF                 ;TAPE CONTROL FREE\r
171           JRST MTEOR\r
172 MTIDSP:   JRST MTPDUN                   ;POINTS TO MTERR FOR ERROR\r
173           JRST MTBSP                    ;AFTER BACKSPACE\r
174           JRST MTERR                    ;IF ERROR FOUND\r
175 MTPDUN:   TLNN IOS,IODT\r
176           JRST MTNIO2\r
177           LDB TAC,PIOMOD\r
178           CAIL TAC,16\r
179           JRST MTEND1                   ;DUMP\r
180           TLNE IOS,IO\r
181           JRST MTNOTI                   ;WRITING\r
182           SKIPE MTEOFF                  ;NOT EOF?\r
183           JRST MTEOF\r
184 MTINDN:   MOVEI TAC,@DEVIAD(DEVDAT)     ;BUFFER ADDRESS\r
185           MOVN TAC1,MTDCCN              ;WD CNT-1\r
186           AOBJN TAC1, .+1               ;WD CNT\r
187           HLLZS TAC1                    ;CLR RT HALF\r
188           ADD TAC1,DCWRD                ;ADD CURRENT COUNT=NO. OF WDS\r
189           HLRM TAC1,1(TAC)              ;STORE AT WORD COUNT\r
190           PUSHJ PDP,ADVBFF\r
191           JRST .+2  ;NEXT BUFFER FULL\r
192           JRST MTCON                            ;CONTINUE MODE\r
193 MTEND1:   CONO DC, 0                    ;TURN OFF DATA CONTROL\r
194           SOSL DCREQ            ;DECREMENT REQUEST COUNT, ANYONE LEFT?\r
195           SETOM DCAVAL                  ;YES, SET FLAG FOR CLOCK\r
196 MTNIO:    SOSL MTREQ\r
197           SETOM MTAVAL                  ;YES, SET FLAG FOR CLOCK\r
198           CONSZ 224,10000               ;END OF TAPE?\r
199           TRO IOS, IOTEND               ;SET END OF TAPE INDICATION\r
200           TRZ IOS, IOBOT                ;CLR LOAD POINT INDICATION\r
201           CONSZ 224, 4000               ;LOAD POINT?\r
202           TRO IOS, IOBOT                ;SET LOAD POINT INDICATION\r
203           CONSZ 224, 20000              ;TAPE REWINDING?\r
204           TRO IOS, IOBOT                ;SET LOAD POINT INDICATION\r
205           TLZE IOS, IOW                 ;CLEAR WAIT\r
206           PUSHJ PDP, SETIOD             ;REQUEST WAIT SATISFIED\r
207           TRZ IOS, IOACT                ;CLEAR ACTIVE\r
208           MOVEM IOS, DEVIOS(DEVDAT)     ;RESTORE BITS\r
209           CONO 224,0                    ;CLEAR MAG TAPE ENABLES\r
210           HLLZS MTCINT                  ;CLEAR CONSO\r
211           MOVN TAC, MTREDO              ;REPEAT COUNTER\r
212           HRREM TAC, MTERCN#\r
213           POPJ PDP,             ;DISMISS INTERRUPT OR RETURN TO CALLER\r
214 \f\r
215 MTNOTI:   PUSHJ PDP,ADVBFE              ;WRITING\r
216           JRST MTEND1\r
217 MTCON:    TRNE IOS,IOCON                ;CONTINUOUS?\r
218           JRST MTEND1                   ;STOP TAPE\r
219           CONSZ 224,10000               ;END OF TAPE?\r
220           JRST MTEND1                   ;STOP TAPE\r
221           CONO DC,0             ;CLEAR DATA CONTROL\r
222           TLZE IOS,IOW\r
223           PUSHJ PDP,SETIOD\r
224           MOVEM IOS,DEVIOS(DEVDAT)\r
225           MOVN TAC,MTREDO\r
226           HRREM TAC,MTERCN\r
227           TLNN IOS,IO           ;INPUT OR OUTPUT?\r
228           JRST MTIN1            ;CALL INPUT SUBROUTINE\r
229           JRST MTOUT1           ;CALL OUTPUT SUBROUTINE\r
230 MTNIO2:   HLRZ TAC,MTDEV                ;COMMAND\r
231           ANDI TAC,7400\r
232           CAIE TAC, 3000                ;SPACE ONE RECORD\r
233           JRST MTNIO                    ;EXIT\r
234           CONSZ 224, 400                ;EOF?\r
235           TLO IOS, IOSEOF               ;SET EOF DETECTED\r
236           JRST MTNIO                    ;EXIT\r
237 MTEOF:    TLO IOS, IOEND\r
238           JRST MTEND1\r
239 MTEOR:    CONSZ 224,LPE+CPE             ;IF END OF RECORD CHECK PARIT\r
240           SOS MTIDSP                    ;IF ERROR CAUSE INTERRUPT TO\r
241                                         ;ERROR ROUTIE VIA TCF\r
242           CONSZ 224, 400                ;EOF?\r
243           SETOM MTEOFF                  ;SET EOF FLAG\r
244 MTIGN:    CONO 224, TCF                 ;IF ERF, CAUSE INTERRUPT TO D\r
245                                         ;PATCH TABLE, DISABLE ERF FLA\r
246           MOVEM TAC, MTDCND             ;SAVE TAC\r
247           MOVEI TAC, TCF                ;LOOK FOR TCF ONLY\r
248           HRRM TAC, MTCINT              ;SET CONSO\r
249           MOVE TAC,MTDCND               ;RESTORE TAC\r
250           JRST MTCRET                   ;DISMISS AND RETURN VIA TCF\r
251 \f\r
252 MTERR:    HLRZ TAC,MTDEV                ;COMMAND\r
253           ANDI TAC,7400\r
254           CAIN TAC,2400                 ;READ?\r
255           JRST .+3\r
256           CAIN TAC,1000                 ;WRITE\r
257           JRST MTIGN2                   ;IGNORE IF NOT RD OR WRITE\r
258           TRNN IOS, IONRCK              ;RE-DO?\r
259           AOSL MTERCN                   ;THIRD ERROR?\r
260           JRST MTERR2                   ;TRIPLE ERROR\r
261           HLRZ TAC,MTDEV                ;COMMAND\r
262           ANDI TAC,770377\r
263           CONO 220,3400(TAC)    ;BSP\r
264           SOS MTIDSP\r
265           JRST MTIGN\r
266 \r
267 MTERR2:   TRO IOS, IODERR               ;DEVICE ERROR\r
268           JRST MTPDUN\r
269 \r
270 MTBSP:    MOVE TAC,MTDCCN               ;POINTER\r
271           MOVEM TAC,DCWRD               ;RESET POINTER WORD\r
272           CONI DC,TAC                   ;SAVE IN/OUT, PACK MD. DEV NU\r
273                                         ;PRIORITY\r
274           ANDI TAC,777\r
275           ADDI TAC,3000                 ;MAKE WRITE\r
276           TRNN TAC,400                  ;WAS IT WRITING?\r
277           ADDI TAC,1000                 ;MAKE READ\r
278           CONO DC,(TAC)                 ;REISSUE CONO\r
279           HLRZ TAC,MTDEV                ;COMMAND\r
280           CONSO 224,XNC                 ;WAIT FOR XNC\r
281           JRST .-1  ;SHOULD ADD A COUNT(RUNAWAY TAPE TURNED\r
282           CONO 220,(TAC)                ;REISSUE RD OR WRITE\r
283           SETZM MTEOFF                  ;CLR EOF FLAG\r
284           CONO PI,2000+DCB              ;TURN ON CHANNEL\r
285           MOVEI TAC,MTPDUN              ;RESET SWITCH\r
286           HRRM TAC,MTIDSP\r
287           MOVEI TAC, ERF\r
288           HRRM TAC, MTCINT\r
289           CONO 224, ERF\r
290           JRST MTCRET                   ;ENABLE PROPER FLAGS\r
291 MTIGN2:   AOS MTIDSP                    ;RESET DISPATCH SWITCH\r
292           JRST MTIGN\r
293 \r
294 ;NEED TO TRY WRITING LONG RECORD GAP ON OUTPUT(ONLY) AND TRY\r
295 ;ONCE MORE AT NEW SPOT ON TAPE IF TRIPLE ERROR\r
296 \f\r
297 \r
298 XNC=40000               ;TRANSFER NEW COMMAND\r
299 MTDC=2                  ;MAG TAPE DATA CONTROL DEVICE NO.\r
300 TCF=1                   ;TAPE CONTROL FREE\r
301 ERF=4                   ;END OF RECORD FLAG\r
302 LPE=20                  ;LONG. PARITY ERROR\r
303 CPE=10                  ;CHAR. PARITY ERROR\r
304 DCB=100                 ;DATA CHANNEL NUMBER\r
305 DCN=1                   ;DATA CHANNEL NUMBER\r
306 SEL=2                   ;UNIT TO COMMAND BUFFER\r
307 IOSEOF=4000             ;SPACING ONE RECORD FORWARD FOUND EOF\r
308 IOTEND=2000             ;EOT INDICATION\r
309 IONRCK=100              ;DO NOT RE-TRY ON ERRORS\r
310 IOBOT=4000              ;TAPE AT LOAD POINT\r
311 IODT=10000              ;A 1 FOR A DATA TRANFER TYPE COMMAND\r
312 EXTERNAL UXIT, ADVBFF, ADVBFE, DCREQ, DCWAIT, MTCSAV\r
313 EXTERNAL MTCRET, DCAVAL, MTAVAL, MTCCHN, MTCCHL, MTREQ\r
314 EXTERNAL MTWAIT,OUT,SETIOD,CLOCK,CUXIT1\r
315 EXTERNAL WSYNC,USRREL,WAIT1,ADRERR,PUNIT,PIOMOD,PJOBN\r
316 EXTERNAL JBTADR\r
317 ENTRY MTDISP\r
318 INTERNAL MTCINT,MTAPE1,MTCINI\r
319 ;CLOCK INTERRUPT, UNIT IN TAC\r
320 MTCLOK:   HRRZ DEVDAT, MTSTAK(TAC)      ;DVDB\r
321           ROT TAC, 4                    ;PUT UNIT IN SEL BITS\r
322           CONO 220, 200(TAC)    ;UNIT ONLY\r
323           CONO 224, SEL                 ;SEL UNIT\r
324           CONSZ 224, SEL                ;UNIT NOT READY?\r
325           JRST MTCLK2                   ;UNIT READY\r
326           ROT TAC, -4                   ;FOR INDEXING PURPOSES\r
327           HLR TAC1, MTSTAK(TAC)         ;CLOCK REQUEST\r
328           HRLI TAC1, MTCLOK             ;GET CLOCK REQUEST\r
329           CONO PI, 400                  ;TURN OFF PI\r
330           IDPB TAC1, CLOCK              ;STORE CLOCK REQUESTED\r
331           CONO PI, 200                  ;TURN ON PI\r
332           POPJ PDP, 0                   ;EXIT\r
333 MTCLK2:   MOVE IOS, DEVIOS(DEVDAT)\r
334           TLZE IOS,IOW\r
335           PUSHJ PDP, SETIOD\r
336           MOVEM IOS, DEVIOS(DEVDAT)\r
337           POPJ PDP, 0\r
338 MTSTAK:   BLOCK ^D8\r
339 \f\r
340 \r
341 ;LOGICAL END OF TAPE LOOP\r
342 MTLEOT:   CONSZ 224, 4000               ;TAPE NOT AT LOAD POINT?\r
343           JRST MTEOT2                   ;AVOID BACKSPACE IFAT LOAD P\r
344           MOVEI T,3400          ;BACKSPACE\r
345           PUSHJ PDP, MTGO1-1\r
346 MTEOT2:   MOVEI T,16            ;SPACE ONE FILE\r
347           PUSHJ PDP, MTAPE\r
348           MOVEI T,6 ;SPACE ONE RECORD\r
349           PUSHJ PDP, MTAPE\r
350           PUSHJ PDP, WAIT1              ;WAIT UNTIL SPACING IS COMPLE\r
351           MOVE IOS, DEVIOS(DEVDAT)\r
352           TLNN IOS, IOSEOF              ;WAS EOF DETECTED?\r
353           JRST MTEOT2                   ;RESUME SPACING\r
354           MOVEI T,7 ;BACKSPACE, LOGICAL EOF FOUND\r
355           JRST MTAPE                    ;RETURN BACK TO MAIN PROGRAM\r
356 MTREDO:   12        ;NUMBER OF TIMES TO RE-EXECUTE\r
357 \f\r
358 \r
359 ;DEVICE DEPENDENT DUMP MODES. MODE 16.\r
360 ;OUTPUT\r
361 MTDMPO:   TLO IOS, IO                   ;WRITING\r
362           HRRZ T,UUO\r
363           PUSHJ PDP, MTCHEK             ;IS SYSTEM AVAILABLE?\r
364           MOVE TAC1, @MTOUT2    ;BLK0 AND DATA CONTROL COMMAN\r
365           MOVE TAC,T                    ;COMMAND LIST POINTER\r
366           MOVEI T,1000          ;WRITING COMMAND\r
367 MTDMP1:   HRLI TAC, PROG                ;ACTUAL ADDRESS OF COMMAND LI\r
368           MOVEM TAC, MTCMDP#    ;COMMAND POINTER\r
369           SKIPN TAC,@TAC                ;COMMAND WORD\r
370           JRST MTDMP3                   ;NOTHING TO DO\r
371           JUMPGE TAC, MTDMP1    ;CHANGE COMMAND SEQUENCE\r
372           HLREM TAC, SVCNTR#    ;SAVE COUNTER\r
373           HRRZS TAC                     ;GET ADDRESS ALONE\r
374           SUB TAC, SVCNTR               ;GET LAST ADDRESS\r
375           CAMLE TAC, USRREL             ;LESS THAN END?\r
376           JRST MTDMP2                   ;OUT OF BOUNDS\r
377           MOVE TAC, @MTCMDP             ;PICK UP POINTER AGAIN\r
378           ADD TAC, PROG                 ;GET ACTUAL ADDRESS\r
379           PUSHJ PDP, MTINDC             ;MOVE TAPE\r
380           PUSHJ PDP,WAIT1\r
381           AOS T,MTCMDP          ;UPDATE COMMAND POINTER\r
382           TLNN IOS, IO                  ;WRITING?\r
383           JRST MTDMPI+2                 ;READING\r
384           JRST MTDMPO+2                 ;WRITING\r
385 ;INPUT\r
386 MTDMPI:   TLZ IOS, IO                   ;READING\r
387           HRRZ T,UUO\r
388           PUSHJ PDP, MTCHEK             ;IS SYSTEM AVAILABLE\r
389           MOVE TAC1,@MTIN2              ;BLKI AND DATA CONTROL COMMAN\r
390           MOVE TAC,T                    ;COMMAND LIST POINTER\r
391           MOVEI T,2400          ;READ COMMAND\r
392           JRST MTDMP1                   ;DUMP\r
393 ;ADDRESS ERROR\r
394 \r
395 MTDMP2:   PUSHJ PDP,MTDMP3\r
396           JRST ADRERR\r
397 ;CLEAR ALL USE BITS. NOTHING IN COMMAND LIST\r
398 \r
399 MTDMP3:   SOSL DCREQ\r
400           SETOM DCAVAL\r
401 MTDMP4:   SOSL MTREQ\r
402           SETOM MTAVAL\r
403           TRZ IOS,IOACT\r
404           TLZE IOS,IOW\r
405           PUSHJ PDP,SETIOD\r
406           MOVEM IOS,DEVIOS(DEVDAT)\r
407           POPJ PDP,\r
408 \r
409           END,\r