Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | /TD8E FORMATTER V4 |
2 | / | |
3 | / | |
4 | / | |
5 | / | |
6 | / | |
7 | / | |
8 | // | |
9 | / | |
10 | / | |
11 | / | |
12 | / | |
13 | /COPYRIGHT (C) 1971, 1975 | |
14 | /DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. | |
15 | / | |
16 | / | |
17 | / | |
18 | /THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A | |
19 | /SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLU- | |
20 | /SION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANT OTHER | |
21 | /COPIES THEREOF, MAY NOT BR PROVIDED OR OTHERWISE MADE AVAILABLE | |
22 | /TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO | |
23 | /AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE | |
24 | /SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. | |
25 | / | |
26 | / | |
27 | /THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT | |
28 | /NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL | |
29 | /EQUIPMRNT COROPATION. | |
30 | / | |
31 | /DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS | |
32 | /SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. | |
33 | / | |
34 | / | |
35 | / | |
36 | / | |
37 | / | |
38 | / | |
39 | \f | |
40 | ||
41 | /TD8E DECTAPE FORMATTER COPYRIGHT 1971 | |
42 | /DIGITAL EQUIPMENT CORP. | |
43 | /MAYNARD , MASS | |
44 | ||
45 | ||
46 | ||
47 | ||
48 | ||
49 | X1=10 | |
50 | X2=11 | |
51 | ||
52 | /SYMBOL TABLE AUGMENTATION | |
53 | ||
54 | SDSS=6771 | |
55 | SDST=6772 | |
56 | SDSQ=6773 | |
57 | SDLC=6774 | |
58 | SDLD=6775 | |
59 | SDRC=6776 | |
60 | SDRD=6777 | |
61 | ||
62 | ||
63 | *0 | |
64 | 0 | |
65 | JMP 1 /HLT PROGRAM GOT INTERRUPTED SOMEHOW | |
66 | 2 | |
67 | 3 | |
68 | 0 | |
69 | 0 | |
70 | ||
71 | /WORKING LOCATIONS | |
72 | ||
73 | *20 | |
74 | ||
75 | W1, 0000 | |
76 | W2, 0000 | |
77 | W3, 0000 | |
78 | W4, 0000 | |
79 | W5, 0000 | |
80 | W6, 0000 | |
81 | BLOCKS, 0000 | |
82 | DTA, 0000 | |
83 | PHASE, 0000 | |
84 | TOTAL, 0000 | |
85 | VAR1, 0000 | |
86 | VAR2, 0000 | |
87 | /CONSTANTS | |
88 | ||
89 | C0017, 0017 | |
90 | C0070, 0070 | |
91 | C0077, 0077 | |
92 | C0007, 0007 | |
93 | C0700, 0700 | |
94 | C203, 0203 | |
95 | C201, 0201 | |
96 | C260, 0260 | |
97 | C261, 0261 | |
98 | C270, 0270 | |
99 | C271, 0271 | |
100 | C277, 0277 | |
101 | C1620, 1620 | |
102 | C7000, 7000 | |
103 | C7700, 7700 | |
104 | C7714, 7714 | |
105 | C7761, 7761 | |
106 | CRCOD, 0215 | |
107 | LETK, 0313 | |
108 | LFCOD, 0212 | |
109 | M2, -2 | |
110 | M3, -3 | |
111 | M6, -6 | |
112 | M7, -7 | |
113 | M14, -14 | |
114 | M144, -144 | |
115 | SPCOD, 0240 | |
116 | ||
117 | BADD, BUFFER-1 | |
118 | BFR, BUFFER | |
119 | COMPAR, COMPRE | |
120 | IT, INIT1 | |
121 | QU1, Q1 | |
122 | QU2, Q2 | |
123 | QU3, Q3 | |
124 | QU4, Q4 | |
125 | MESS, MES | |
126 | STX, START | |
127 | TYOCT, TYCT | |
128 | TYPE, MESAGE | |
129 | TYPIN, TYPN | |
130 | WAIT, STALL | |
131 | WC, 0 | |
132 | MTR, 0 | |
133 | SLRDRC, SRDRC | |
134 | DATRD, 0 | |
135 | M55, -55 | |
136 | M25, -25 | |
137 | M26, -26 | |
138 | M32, -32 | |
139 | M10, -10 | |
140 | M70, -70 | |
141 | M73, -73 | |
142 | M51, -51 | |
143 | M45, -45 | |
144 | M22, -22 | |
145 | M143, -143 | |
146 | M52, -52 | |
147 | M31, -31 | |
148 | M306, -306 | |
149 | CNT, 0 | |
150 | M4, -4 | |
151 | M307, -307 | |
152 | SSDSQT, SDSQT | |
153 | SA3LNS, A3LNS | |
154 | SCEXPC, CEXPC | |
155 | MSK77, 0077 | |
156 | NUD, NUDTA | |
157 | BLK, 0 | |
158 | REVBLK, 0 | |
159 | BCXOR, SBCXOR | |
160 | CHKSUM, 0 | |
161 | SBWORD, 0 | |
162 | ||
163 | ||
164 | ||
165 | /TYPE THE CHARACTER IN THE AC ON THE KEYBOARD PRINTER | |
166 | ||
167 | RSEND, 0000 | |
168 | TLS /LOAD AND PRINT, CLEAR FLAG | |
169 | TSF /WAIT FOR CONFIRMATION | |
170 | JMP .-1 /ENDLESSLY | |
171 | TCF /CLEAR THE FLAG ANYWAY | |
172 | JMP I RSEND | |
173 | ||
174 | ||
175 | /PRINT A "?" ON THE KEYBOARD TYPER | |
176 | ||
177 | QU, .+1 | |
178 | IOF | |
179 | CLA CLL /C(AC)+C(L)=0 | |
180 | TAD C277 /"?" | |
181 | JMS RSEND /TYPE THE CHARACTER | |
182 | JMP I .+1 /RESTART | |
183 | INIT | |
184 | ||
185 | /DECTAPE CONTROL WORDS | |
186 | ||
187 | DT1400, 1400 | |
188 | DT0400, 0400 | |
189 | DT2000, 2000 | |
190 | DT3000, 3000 | |
191 | DT1000, 1000 | |
192 | ||
193 | BINCO, BINCON | |
194 | SELTIM, ZTIM | |
195 | MARKER, ZMKTK | |
196 | BLKERR, ZBLK | |
197 | DATERR, ZDATA | |
198 | CHKERR, ZPAR | |
199 | DOMARK, STMK | |
200 | DBUFPT, 0 /POINTER TO CURRENT POSITION IN DTA LIST | |
201 | ||
202 | ||
203 | ||
204 | *200 /PAGE 1 | |
205 | /TYPE CANNED MESSAGES..... | |
206 | /THANKS TO DIGITAL 8-18-U | |
207 | JMP I .+1 | |
208 | PATCH | |
209 | ||
210 | MESAGE, 0 | |
211 | IOF | |
212 | CLA CMA /SET C(AC)=-1 | |
213 | TAD MESAGE /ADD LOCATION | |
214 | DCA 10 /AUTO INDEX REGISTER | |
215 | TAD I 10 /FETCH FIRST WORD | |
216 | DCA MSRGHT /SAVE IT | |
217 | TAD MSRGHT | |
218 | RTR | |
219 | RTR /ROTATE 6 BITS TO THE RIGHT | |
220 | RTR | |
221 | JMS TYPECH /TYPE IT | |
222 | TAD MSRGHT /GET DATA AGAIN | |
223 | JMS TYPECH /TYPE RIGHT HALF | |
224 | JMP MESAGE+5 /CONTINUE | |
225 | MSRGHT, 0 /TEMPORARY STORAGE | |
226 | TYPECH, 0 /TYPE CHARACTER IN C(AC)6-11 | |
227 | AND C0077 | |
228 | SNA /IS IT END OF MESSAGE? | |
229 | JMP I 10 /YES: EXIT | |
230 | TAD M40 /SUBTRACT 40 | |
231 | SMA /<40? | |
232 | JMP .+3 /NO | |
233 | TAD C340 /YES: ADD 300 | |
234 | JMP MTP /TO CODES <40 | |
235 | TAD M3 /SUBTRACT 3 | |
236 | SZA /IS IT ZERO? | |
237 | JMP .+3 /NO | |
238 | TAD C212 /YES: CODE 43 IS | |
239 | JMP MTP /LINE-FEED (212) | |
240 | TAD M2 /SUBTRACT 2 | |
241 | SZA /IS IT ZERO? | |
242 | JMP .+3 /NO | |
243 | TAD C215 /YES: CODE 45 IS | |
244 | JMP MTP /CARRIAGE RETURN (215) | |
245 | TAD C245 /ADD 200 TO OTHERS >40 | |
246 | MTP, TLS /TRANSMIT CHARACTER | |
247 | TSF /WAIT FOR THE FLAG | |
248 | JMP .-1 /NOT SET YET | |
249 | CLA /SET: CLEAR C(AC) | |
250 | JMP I TYPECH /RETURN | |
251 | ||
252 | /CONSTANTS | |
253 | ||
254 | M40, -40 | |
255 | C340, 340 | |
256 | C212, 212 | |
257 | C215, 215 | |
258 | C245, 245 | |
259 | /ROUTINE WAITS UNTILL A COMPLETE MESSAGE HAS BEEN ENTERED | |
260 | /SIGNIFIED BY A CR. | |
261 | ||
262 | TYPN, 0 | |
263 | IOF | |
264 | KCC /CLEAR AC, KEYBOARD FLAG | |
265 | TAD BADD /GET BUFFER ADDRESS | |
266 | DCA W1 /STORE FOR THE CHARACTER STRING | |
267 | ||
268 | /READ AND RESPOND WITH THE CHARACTER | |
269 | ||
270 | NTYRTN, ISZ W1 /NORMAL RETURN. INCREMENT BUFFER | |
271 | KSF /WAIT FOR KEYBOARD | |
272 | JMP .-1 /FLAG TO RAISE | |
273 | KRB /GOT FLAG, RESET IT, GET CHARACTER | |
274 | JMS RSEND /SEND CHARACTER BACK | |
275 | AND (177 /TAKE CARE OF PARITY | |
276 | TAD (200 | |
277 | DCA I W1 /LOAD CHARACTER INTO BUFFER AREA | |
278 | TAD I W1 /CHECK FOR CTRL C | |
279 | CIA | |
280 | TAD C203 | |
281 | SZA CLA | |
282 | JMP CHKSP /NO- CHECK FOR SPACE | |
283 | 6007 /CAF- CLEAR ALL FLAGS | |
284 | NOP /JUST IN CASE | |
285 | CLA | |
286 | JMP 7605 | |
287 | ||
288 | /IF CHARACTER IS A SPACE, IGNORE IT | |
289 | ||
290 | CHKSP, TAD I W1 /CHARACTER INTO THE AC | |
291 | CIA /SUBTRACT FROM SPACE CODE (240) | |
292 | TAD SPCOD /COMPLETE COMPARISON | |
293 | SNA CLA /WAS IT A SPACE? | |
294 | JMP NTYRTN+1 /YES: DO NOT INCREMENT BUFFER | |
295 | ||
296 | /IF CHARACTER IS A CR, EXIT FROM ROUTINE | |
297 | ||
298 | TAD I W1 /CHARACTER TO AC | |
299 | CIA /SET AC TO SUBTRACT CR (215) | |
300 | TAD CRCOD /COMPLETE COMPARISON | |
301 | SZA CLA /WAS IT CR? | |
302 | JMP NTYRTN /NO: INCREMENT BUFFER + WAIT | |
303 | ||
304 | /CARRIAGE RETURN FOUND, EXIT FROM ROUTINE | |
305 | ||
306 | TAD LFCOD /GIVE KEYBOARD LINE FEED | |
307 | JMS RSEND /EXECUTE LINE FEED | |
308 | CLA CLL /EXIT WITH C(ACC) + AND C(L)=0 | |
309 | IOF | |
310 | JMP I TYPN /RETURN TO CALL | |
311 | \f | |
312 | /COMPARE A STRING OF CHARACTERS IN "BUFFER" | |
313 | /TO A CHARACTER STRING AFTER A JMS IN ASCII | |
314 | ||
315 | COMPRE, 0 | |
316 | CLA CMA /C(AC)=7777 | |
317 | TAD COMPRE /SUBTRACT 1 FOR INDEX REG 1 | |
318 | DCA 10 /AUTO INDEX 1 SET TO CHA STRING | |
319 | TAD BADD /AUTO INDEX 2 SET TO BUFFER-1 | |
320 | DCA 11 /LOAD X2 | |
321 | ||
322 | /COMPARE CHARACTERS TILL ONE DOESN'T COMPARE OR TILL | |
323 | /A 0 IS FOUND IN X1. IF OK, RETURN TO TWO PLUS THE | |
324 | /ZERO, IF BAD ONE PLUS | |
325 | ||
326 | TAD I X1 /CHARACTER FROM PROGRAM | |
327 | CIA /TO SUBTRACT FROM | |
328 | TAD I X2 /CHARACTER IN BUFFER | |
329 | SZA CLA /COMPARE? | |
330 | JMP CERR /NO:RESYNC FOR NON COMPARE EXIT | |
331 | TAD I X1 /YES: CHECK FOR GOOD EXIT | |
332 | SZA /IF 0, EXIT GOOD | |
333 | JMP .-6 /NO: TEST NEXT CHAACTER | |
334 | ISZ X1 /+1 TO X1(TOTAL 2 FROM THE 0) | |
335 | JMP I X1 /+1 TO X1, EXIT | |
336 | ||
337 | /ERROR FOUND. RESYNC AND EXIT NO COMPARE | |
338 | ||
339 | CERR, TAD I X1 /CHARACTER FROM PROGRAM | |
340 | SZA CLA /IS THIS EXIT KEY? (0000) | |
341 | JMP .-2 /NO: GET NEXT | |
342 | JMP I X1 /YES: EXIT, NOT COMPARE | |
343 | \f | |
344 | *400 | |
345 | /VARIOUS ERROR MESSAGES | |
346 | /"NOT DECIMAL" | |
347 | ||
348 | Q1, JMS I TYPE | |
349 | 1617 /NO | |
350 | 2440 /T | |
351 | 0405 /DE | |
352 | 0311 /CI | |
353 | 1501 /MA | |
354 | 1400 /L | |
355 | JMP QUX | |
356 | ||
357 | /"TO MANY WORDS" | |
358 | ||
359 | Q2, JMS I TYPE | |
360 | 2417 /TO | |
361 | 1740 /O | |
362 | 1501 /MA | |
363 | 1631 /NY | |
364 | 4027 / W | |
365 | 1722 /OR | |
366 | 0423 /DS | |
367 | 0000 /00 | |
368 | JMP QUX | |
369 | ||
370 | /"TO MANY BLOCKS" | |
371 | ||
372 | Q3, JMS I TYPE | |
373 | 2417 /TO | |
374 | 1740 /O | |
375 | 1501 /MA | |
376 | 1631 /NY | |
377 | 4002 / B | |
378 | 1417 /LO | |
379 | 0313 /CK | |
380 | 2300 /S0 | |
381 | JMP QUX | |
382 | ||
383 | /"NOT DIVISIBLE BY 3" | |
384 | Q4, JMS I TYPE | |
385 | 1617 /NO | |
386 | 2440 /T | |
387 | 0411 /DI | |
388 | 2611 /VI | |
389 | 2311 /SI | |
390 | 0214 /BL | |
391 | 0540 /E | |
392 | 0231 /BY | |
393 | 4063 / 3 | |
394 | 0000 /00 | |
395 | QUX, JMS I TYPE | |
396 | 4345 /CR+LF | |
397 | 0000 /END | |
398 | JMP I .+1 | |
399 | INIT | |
400 | /THE CODING BELOW CREATES THE BLOCK NUMBER | |
401 | /CONVERSION PRIOR TO THE TAPE WRITE. | |
402 | ||
403 | MES, 0 | |
404 | DCA W4 /SAVE WORD | |
405 | CLL | |
406 | TAD W4 | |
407 | CMA RTR | |
408 | RTR | |
409 | AND C7000 | |
410 | DCA V1 | |
411 | TAD W4 | |
412 | CMA RTL | |
413 | RAL | |
414 | AND C0700 | |
415 | DCA V2 | |
416 | TAD W4 | |
417 | CMA RTR | |
418 | RAR | |
419 | AND C0070 | |
420 | DCA V3 | |
421 | TAD W4 | |
422 | CMA RTL | |
423 | RTL | |
424 | AND C0007 | |
425 | TAD V1 | |
426 | TAD V2 | |
427 | TAD V3 | |
428 | JMP I MES | |
429 | ||
430 | V1, 0000 | |
431 | V2, 0000 | |
432 | 7777 | |
433 | 7700 | |
434 | 0000 | |
435 | V3, 0000 | |
436 | 0000 | |
437 | ||
438 | PATCH, CLA | |
439 | TAD .+4 | |
440 | DCA 1 | |
441 | JMP I .+1 | |
442 | START | |
443 | HLT | |
444 | /TYPE ONE FOUR CHARACTER OCTAL WORD GIVEN TO THE | |
445 | /ROUTINE VIA C(ACC). C(ACC)=0 ON EXIT | |
446 | ||
447 | TYCT, 0 | |
448 | DCA TW1 /STORE WORD GIVEN | |
449 | TAD TW1 /TO C(ACC) AGAIN | |
450 | RTR | |
451 | RTR /6 BITS RIGHT | |
452 | RTR | |
453 | DCA TYCT1+2 /SAVE ROTATED VALUE, 1ST TWO | |
454 | TAD TYCT1+2 /TO C(ACC) AGAIN | |
455 | AND C0007 /ISOLATE SECOND CHARACTER | |
456 | TAD C6060 /CONVERT TO ASCII | |
457 | DCA TYCT1+1 /STORE AS FIRST PARTIAL 2 | |
458 | TAD TYCT1+2 /ROTATED VALUE STORED ABOVE | |
459 | RTL | |
460 | RAL /3 BITS LEFT | |
461 | AND C0700 /ISOLATE FIRST CHARACTER | |
462 | TAD TYCT1+1 /CONVERT 1ST TO ASCII | |
463 | DCA TYCT1+1 /1ST AND 2ND CHARACTERS READY | |
464 | TAD TW1 /ORIGIONAL WORD | |
465 | AND C0007 /ISOLATE 4TH CHARACTER | |
466 | TAD C6060 /CONVERT 4 TH TO ASCII | |
467 | DCA TYCT1+2 /STORE 4TH FOR A MOMENT | |
468 | TAD TW1 /ORIGIONAL WORD | |
469 | RTL | |
470 | RAL /POSITION IT 3RD CHARACTER | |
471 | AND C0700 /ISOLATE 3RD CHARACTER | |
472 | TAD TYCT1+2 /CONVERT TO ASCII | |
473 | DCA TYCT1+2 /CONVERSION COMPLETE | |
474 | TYCT1, JMS I TYPE /TYPE THE FOUR CHARACTERS | |
475 | 0 /FIRST 2 | |
476 | 0 /SECOND 2 | |
477 | 0 /KILL KEY | |
478 | JMP I TYCT /EXIT FROM ROUTINE | |
479 | ||
480 | /SOME CONSTANTS FOR THE ROUTINE | |
481 | ||
482 | TW1, 0000 | |
483 | C6060, 6060 | |
484 | \f | |
485 | *600 | |
486 | ||
487 | STALL, 0 | |
488 | CLA | |
489 | TAD I 12 /WORD TO BE WRITTEN | |
490 | SDSQ /WAIT FOR QUADLINE FLAG | |
491 | JMP .-1 | |
492 | SDLD /LOAD DATA REGISTERS | |
493 | SDST /CHECK FOR TIMING ERROR | |
494 | SKP | |
495 | JMS I SELTIM /TIMING ERROR | |
496 | CLA | |
497 | JMP I STALL /GO GET NEXT WORD | |
498 | ||
499 | ||
500 | ||
501 | /WAIT TILL WORD COUNT REGISTER GOES TO ZERO | |
502 | ||
503 | /BLOCK NUMBER ERROR | |
504 | ZBLK, 0 | |
505 | CLA | |
506 | TAD DTA | |
507 | SDLC /STOP MOVEMENT OF TAPE | |
508 | JMS I TYPE | |
509 | 2003 /PC | |
510 | 4000 /END | |
511 | CLA CMA | |
512 | TAD ZBLK | |
513 | JMS I TYOCT | |
514 | JMS I TYPE | |
515 | 4040 /DOUBLE SPACE | |
516 | 0214 /BL | |
517 | 1703 /OC | |
518 | 1340 /K | |
519 | 1625 /NU | |
520 | 1502 /MB | |
521 | 0522 /ER | |
522 | 4000 /END | |
523 | JMP ZCOM | |
524 | ||
525 | /DATA ERRORS | |
526 | ZDATA, 0 | |
527 | CLA | |
528 | TAD DTA | |
529 | SDLC /STOP THE TAPE | |
530 | JMS I TYPE | |
531 | 2003 | |
532 | 4000 | |
533 | CLA CMA | |
534 | TAD ZDATA | |
535 | JMS I TYOCT | |
536 | JMS I TYPE | |
537 | 4040 | |
538 | 0401 /DA | |
539 | 2401 /TA | |
540 | 4000 /END | |
541 | JMP ZCOM | |
542 | ||
543 | /MARK TRACK ERROR | |
544 | ||
545 | ZMKTK, 0 | |
546 | CLA | |
547 | TAD DTA | |
548 | SDLC /STOP THE TAPE | |
549 | JMS I TYPE | |
550 | 2003 /PC | |
551 | 4000 /END | |
552 | CLA CMA | |
553 | TAD ZMKTK | |
554 | JMS I TYOCT | |
555 | JMS I TYPE | |
556 | 4040 | |
557 | 1501 /MA | |
558 | 2213 /RK | |
559 | 4024 / T | |
560 | 2201 /RA | |
561 | 0313 /CK | |
562 | 4000 / 0 | |
563 | JMP ZCOM | |
564 | /PARITY ERROR | |
565 | ||
566 | ZPAR, 0 | |
567 | CLA | |
568 | TAD DTA | |
569 | SDLC /STOP THE TAPE | |
570 | JMS I TYPE | |
571 | 2003 /PC | |
572 | 4000 /END | |
573 | CLA CMA | |
574 | TAD ZPAR | |
575 | JMS I TYOCT | |
576 | JMS I TYPE | |
577 | 4040 | |
578 | 0310 /CH | |
579 | 0503 /EC | |
580 | 1323 /KS | |
581 | 2515 /UM | |
582 | 4000 /0 | |
583 | JMP ZCOM | |
584 | ||
585 | ||
586 | /TIMING ERROR | |
587 | ||
588 | ZTIM, 0 | |
589 | CLA | |
590 | TAD DTA | |
591 | SDLC /STOP THE TAPE | |
592 | JMS I TYPE | |
593 | 2003 | |
594 | 4000 | |
595 | CLA CMA | |
596 | TAD ZTIM | |
597 | JMS I TYOCT | |
598 | JMS I TYPE | |
599 | 4040 | |
600 | 2411 /TI | |
601 | 1511 /MI | |
602 | 1607 /NG | |
603 | 4000 / 0 | |
604 | ||
605 | /TYPE "ERROR PHASE X" | |
606 | ||
607 | ZCOM, TAD PHASE /WHAT PHASE OF OPERATION | |
608 | TAD PFORM /WAS THE MACHINE IN | |
609 | DCA TFORM /WHEN ERROR OCCURED | |
610 | JMS I TYPE | |
611 | 0522 /ER | |
612 | 2217 /RO | |
613 | 2240 /R | |
614 | 2010 /PH | |
615 | 0123 /AS | |
616 | 0540 /E | |
617 | TFORM, 4060 / X | |
618 | 4543 /CR+LF | |
619 | 0000 /END | |
620 | JMP I .+1 | |
621 | RETRY | |
622 | PFORM, 4060 | |
623 | ||
624 | ||
625 | \f | |
626 | /HERE STARTS THIS PROGRAM. IT WILL ASK THE | |
627 | /OPERATOR FOR DRIVE NUMBERS, THEN ASK HIM FOR | |
628 | /A DIRECTION ON WHAT TO DO WITH THE DRIVES. | |
629 | ||
630 | /THE SEQUENCE FOR MARKING A TAPE WOULD APPEAR AS: | |
631 | ||
632 | ||
633 | /UNIT? (0 OR 1 OR 0 1) | |
634 | /FORMAT? (MARK 1215) | |
635 | /2277 WORDS, 0256 BLOCKS.OK? YES OR NO | |
636 | /(YES) | |
637 | ||
638 | ||
639 | /THAT DATA IN PARENTHESIS IS TYPED BY THE OPERATOR | |
640 | /(HE DOESN'T TYPE THE PARENTHESIS) | |
641 | /IF HE HAD ANSWERED NO, "FORMAT?" WOULD BE TYPED OUT. | |
642 | /IF THE DRIVE WAS WRONG, HE WOULD TYPE RESTART. | |
643 | /IF HE HAD TYPED "MARK" IN RESPONSE TO "FORMAT?" THE | |
644 | /TAPE WOULD BE MARKED WITH THE STANDARD PDP-8 CONFIGURATION. | |
645 | /IF HE HAD TYPED "MARK 384" THE TAPE WOULD | |
646 | /BE MARKED WITH THE STANDARD PDP-10 CONFIGURATION | |
647 | /NOTE: THE WORD AND BLOCK NUMBERS ARE TYPED IN OCTAL | |
648 | /IF A MISTAKE OCCURS ON THE OPERATORS PART (WITH REFERANCE | |
649 | /TO BLOCK + WORD SIZE) HE WILL BE TOLD ABOUT IT | |
650 | ||
651 | ||
652 | ||
653 | ||
654 | ||
655 | *1000 | |
656 | ||
657 | /MAKE A CALL FOR THE DECTAPE NUMBERS TO BE | |
658 | /WORKED. | |
659 | ||
660 | STAR0, JMS I TYPE /TYPE VERSION NUMBER | |
661 | 4543 /CR+LF | |
662 | 4300 /LF+0 | |
663 | JMS I TYPE | |
664 | TEXT /TDFMT V4A/ | |
665 | START, JMS I TYPE /SET UP TYPER | |
666 | 4543 /CR+LF | |
667 | 4300 /LF+END | |
668 | ||
669 | TYQU, JMS I TYPE /"UNIT?" | |
670 | 2516 /UN | |
671 | 1124 /IT | |
672 | 7740 /? | |
673 | 0000 /END | |
674 | ||
675 | /WAIT FOR A REPLY | |
676 | ||
677 | JMS I TYPIN /GET NUMBERS | |
678 | TAD BADD /INITIALIZE POINTER (BFR) | |
679 | IAC /(BADD=BUFFER-1, SO BUMP THE AC) | |
680 | DCA BFR /TO START OF INPUT BUFFER | |
681 | DCA DCTR /INITIALIZE DTA COUNTER TO 0 | |
682 | DCA CRFLAG /CLEAR FLAG SO CR NOT ACCEPTIBLE | |
683 | CRCHK, TAD CRCOD /GET CODE FOR CAR. RETN | |
684 | CIA /NEGATE IT | |
685 | TAD I BFR /SEE IF NEXT CHAR. IN | |
686 | SNA /BUFFER IS CAR. RETN. | |
687 | JMP OKCR /YES: SEE IF C.R. LEGAL HERE | |
688 | DCA CRFLAG /NO: SO C.R. IS LEGAL NOW | |
689 | VALCHK, TAD C260 /SEE IF # IS LESS THAN | |
690 | CIA /ASCII 0 (260) | |
691 | TAD I BFR /SUBTRACT BUFFER DATA | |
692 | SPA CLA /IS IT LESS THAN ASII 0? | |
693 | JMP TYQU /YES: TELL OUTSIDE WORLD | |
694 | TAD C261 /NO: SEE IF GREATER THAN | |
695 | CMA /ASC II 1 (261) | |
696 | TAD I BFR /SUBTRACT BUFFER DATA | |
697 | SMA CLA /GREATER THAN ASCII 7? | |
698 | JMP TYQU /YES: TELL OUTSIDE WORLD | |
699 | TAD I BFR /NO: ACCEPT BUFFER | |
700 | RTR | |
701 | AND C7000 /ISOLATE DTA | |
702 | JMS REPEAT /GO CHECK FOR REPEATED DTA AND STORE # | |
703 | ISZ BFR /INCREMENT INPUT BUF. PTR. | |
704 | JMP CRCHK /GO LOOK AT NEXT CHAR. | |
705 | ||
706 | /THIS SECTION CHECKS TO SEE IF THERE HAS BEEN ANY | |
707 | /VALID INPUT ONCE A CARRIAGE RETURN IS SEEN | |
708 | OKCR, CLA /CLEAR AC | |
709 | TAD CRFLAG /LOAD CR FLAG; 0 MEANS NO GOOD | |
710 | SNA CLA | |
711 | JMP START /0: NO VALID INPUT; RESTART | |
712 | TAD DCTR /NOT 0: SO HAVE VALID INPUT | |
713 | TAD DBUFAD /CALCULATE END OF DTA LIST +1 | |
714 | DCA DBUFPT /STORE IT IN BUFFER POINTER, THEN | |
715 | CMA /COMPLEMENT THE AC AND | |
716 | DCA I DBUFPT /TERMINATE DTA LIST WITH 7777 | |
717 | INIT1, CLA /CLEAR AC IF COME THRU LOC IT | |
718 | TAD DBUFAD /AND RESET LIST POINTER | |
719 | DCA DBUFPT /TO START OF LIST | |
720 | JMS I GETDTA /GO GET A DTA NUMBER | |
721 | ||
722 | /INFORM THE OPERATOR THAT THE PROGRAM IS SET TO START | |
723 | /TYPE "FORMAT" AND WAIT FOR THE REPLY | |
724 | ||
725 | INIT, JMS I TYPE /MESSAGE OUT | |
726 | 0617 /FO | |
727 | 2215 /RM | |
728 | 0124 /AT | |
729 | 7740 /? | |
730 | 0000 /END | |
731 | JMS I TYPIN /WAIT FOR A REPLY | |
732 | JMS I COMPAR /DID HE TYPE "MARK"? | |
733 | 0315 /M | |
734 | 0301 /A | |
735 | 0322 /R | |
736 | 0313 /K | |
737 | 0000 /END | |
738 | JMP .+3 | |
739 | JMP I .+1 | |
740 | MARK /TO MARK A TAPE | |
741 | /SEE IF HE TYPED "RDR" (READ AND TYPE FIRST 12 | |
742 | /BLOCK NUMBERS IN REVERSE). | |
743 | ||
744 | JMS I COMPAR | |
745 | 0322 /R | |
746 | 0304 /D | |
747 | 0322 /R | |
748 | 0000 /0 | |
749 | JMP .+3 | |
750 | JMP I .+1 | |
751 | RDR /TYPE BLOCKS | |
752 | ||
753 | /SEE IF HE TYPED "RDF" (READ AND TYPE FIRST 12 | |
754 | /BLOCK NUMBERS FORWARD). | |
755 | ||
756 | JMS I COMPAR | |
757 | 0322 /R | |
758 | 0304 /D | |
759 | 0306 /F | |
760 | 0000 /0 | |
761 | JMP .+3 | |
762 | JMP I .+1 | |
763 | RDFA /TYPE BLOCKS | |
764 | ||
765 | /SEE IF HE TYPED "SAME" (MEANING MARK A TAPE | |
766 | /USING THE SAME CONSTANTS AS BEFORE). | |
767 | ||
768 | JMS I COMPAR | |
769 | 0323 /S | |
770 | 0301 /A | |
771 | 0315 /M | |
772 | 0305 /E | |
773 | 0000 /0 | |
774 | JMP .+3 | |
775 | JMP I .+1 | |
776 | SWCHK /TO MARK AS BEFORE | |
777 | ||
778 | /SEE IF HE TYPED "RESTART" | |
779 | ||
780 | JMS I COMPAR | |
781 | 0322 /R | |
782 | 0305 /E | |
783 | 0323 /S | |
784 | 0324 /T | |
785 | 0301 /A | |
786 | 0322 /R | |
787 | 0324 /T | |
788 | 0000 /0 | |
789 | JMS QU /MUST BE NONSENSE | |
790 | JMP START /START ALL OVER | |
791 | GETDTA, NUDTA /POINTER TO ROUTINE TO SWITCH UNITS | |
792 | CRFLAG, 0 /=0, CR NO GOOD; NOT 0, CR IS OK | |
793 | \f\f | |
794 | *1200 | |
795 | /MARK WAS TYPED IN, IF W1-1 IS NOT A "K",ASSUME THAT | |
796 | /A NUMBER WAS TYPED IN, AND VERIFY THIS. IF W1-1 IS | |
797 | /A "K", ASSUME STANDARD FORMAT.(W1=LAST ENTRY INTO THE BUFFER) | |
798 | ||
799 | MARK, TAD I BINCO /ADDRESS OF FIRST BINARY | |
800 | DCA W5 /CONSTANT FOR DEC TO BIN | |
801 | DCA TOTAL /WILL BE BINARY EQUIVILANT | |
802 | ||
803 | /SAVE C(X1) FOR DECREMENT THROUGH BUFFER | |
804 | ||
805 | DNC, CLA CMA /DECREMENT BUFFER ADDRESS | |
806 | TAD W1 /ADDRESS BY 1 | |
807 | DCA W1 /W1=SWEEP ADDRESS | |
808 | ||
809 | /LOOK FOR END OF PROCESSING BY LOOKING FOR A "K" IN BUFFER | |
810 | ||
811 | TAD LETK /LETTER ASCII "K" | |
812 | CIA /SUBTRACT FROM CHARACTER | |
813 | TAD I W1 /IN BUFFER | |
814 | SNA CLA /EQUAL? | |
815 | JMP DIV3 /YES: SEE IF DIVISIBLE BY 3 | |
816 | ||
817 | /VERIFY THIS CHARACTER AS BEING OF DECIMAL ORIGIN | |
818 | ||
819 | TAD C260 /ASCII FOR 0 | |
820 | CIA /TO SEE IF CHARACTER | |
821 | TAD I W1 /IS LESS THAN 260 | |
822 | SPA CLA /IS IT? | |
823 | JMP I QU1 /YES: NOT DECIMAL CHARACTER | |
824 | TAD C271 /ASCII FOR 9 | |
825 | CMA /TO SEE IF GREATER THAN | |
826 | TAD I W1 /9 | |
827 | SMA CLA /IS IT? | |
828 | JMP I QU1 /NOT A DECIMAL CHARACTER | |
829 | /CHARACTER IS DECIMAL. NOW CONVERT IT TO BINARY | |
830 | /REMEMBER POSITION OF CHARACTER IN BUFFER MAY BE | |
831 | /10,100,1000. | |
832 | ||
833 | TAD I W1 /ISOLATE THE NUMBER | |
834 | AND C0017 /FOR PROPER CONVERSION | |
835 | SNA /IF 0, NO BINARY CONVERSION NEEDED | |
836 | JMP IBS /YES: 0: INCREMENT BINARY CONVERSION | |
837 | ||
838 | /NOT 0, SET UP CONVERSION LOOP | |
839 | ||
840 | CLL CIA /NUMBER OF ADDITIONS | |
841 | DCA W4 /TO NEGATIVE FOR ISZ | |
842 | TAD I W5 /BINARY POSITION TO C(ACC) | |
843 | TAD TOTAL /ADD TO PRESENT TOTAL | |
844 | SZL /CHECK ON TO MANY WORDS | |
845 | JMP I QU2 /TO MANY WORDS CALLED FOR | |
846 | DCA TOTAL /KEEP RUNNING SUM | |
847 | ISZ W4 /LAST ADDITION? | |
848 | JMP .-6 /NO: ADD AGAIN | |
849 | ||
850 | /FINAL ADDITION FOR THIS POSITION COMPLETED | |
851 | ||
852 | IBS, ISZ W5 /NEXT POSITION | |
853 | JMP DNC /DO NEXT CHARACTER | |
854 | ||
855 | /LAST CHARACTER COMPLETED. SEE IF DIVISIBLE BY 3 | |
856 | /IF NOT A NORMAL INPUT | |
857 | ||
858 | DIV3, TAD TOTAL /GET TOTAL WORDS | |
859 | SNA /IF TOTAL 0, NORMAL INPUT | |
860 | TAD C201 /129 OCT. THIS TEST REDUNDANT | |
861 | TAD C0017 /ADD CONSTANT 15 TO TOTAL | |
862 | DCA TOTAL /FOR FUTURE CONSIDERATIONS | |
863 | DCA VAR1 /# OF WORDS/3 FOR MARK TRACK WRITING | |
864 | TAD TOTAL /RESTORE IN THE ACC | |
865 | CLL /TO DIVIDE BY 3, LINK KEEPS OVERFLOW | |
866 | TAD M3 /SUBTRACT 3 | |
867 | ISZ VAR1 /ON EACH DIVISION, KEEP RUNNING SUM | |
868 | SZA /IF AC = 0,NO REMAINDER | |
869 | SNL /WHEN LINC GOES TO 0, DIVISION ENDED | |
870 | SKP /NOW SEE IF IT DIVIDED EVENLY | |
871 | JMP .-6 /SUBTRACT 3 MORE | |
872 | SZA CLA /IF 0,OK. OTHERWISE ERROR | |
873 | JMP I QU4 /NOT DIVISIBLE BY 3 | |
874 | ||
875 | /CORRECT "VAR1" ( THE NUMBER OF WORDS/3) FOR THE +15 | |
876 | /ADDED JUST ABOVE AND AN INHERANT +2 DUE TO MARK TRACK | |
877 | /CONFIGURATION TO BE WRITTEN. | |
878 | ||
879 | TAD M7 /SUBTRACT 7 FROM PHONY SETUP | |
880 | TAD VAR1 /GIVING THE NUMBER OF TIMES | |
881 | CIA /TO BE USED LATER IN A ISZ | |
882 | DCA VAR1 /DATA MARK WILL BE WRITTEN | |
883 | /COMPUTE A VALUE FOR TOTAL NUMBER OF BLOCKS | |
884 | /RECORD SIZE + 15 INTO 636160 OCT. | |
885 | ||
886 | TAD C7714 /EXTENDED 64 VALUE. SETS AC#2 | |
887 | DCA W1 /SET FOR 640000 | |
888 | JMS I FORM10 /PATCH TO CHECK FOR STD.10 FORMAT | |
889 | TAD C1620 /VERNIER ADJUSTMENT FOR FORMULA | |
890 | CLL /ACC#2 CARRY FUNCTION | |
891 | TAD TOTAL /WORD COUNT | |
892 | ISZ BLOCKS /+1 TO BLOCK COUNT | |
893 | SKP | |
894 | JMP I QU3 /TO MANY BLOCKS CALLED FOR | |
895 | SNL /CARRY INTO ACC#2? | |
896 | JMP .-5 /NO: CONTINUE COUNT | |
897 | ISZ W1 /YES: FULLY DIVIDED? | |
898 | JMP .-10 /NO: CONTINUE PROCESS | |
899 | CLA CLL /C(ACC)+ C(L)=0 | |
900 | F10RTN, TAD BLOCKS /FOR MARK TRACK (COME HERE FR F10PAT IF 10 FRMT) | |
901 | CMA /WRITING | |
902 | DCA VAR2 /SEE MARK WRITE | |
903 | ||
904 | /VALUES FOR BLOCK AND RECORD SIZE HAVE BEEN | |
905 | /COMPUTED. TELL OUTSIDE WORLD AND GET THE OK. | |
906 | ||
907 | TAD TOTAL /SUBTRACT 15 FROM TOTAL | |
908 | TAD C7761 /WORDS FOOLING OPERATOR | |
909 | DCA TOTAL /CORRECTED FOR TAPE WRITING | |
910 | TAD TOTAL /FOR OCTAL TYPEOUT | |
911 | JMS I TYOCT /TYPE OCTAL WORDS | |
912 | JMS I TYPE /TYPE MESSAGE | |
913 | 4027 / W | |
914 | 1722 /OR | |
915 | 0423 /DS | |
916 | 5400 /, END | |
917 | TAD BLOCKS /TYPE OUT BLOCK #S | |
918 | IAC /TO FOOL THE OPERATOR | |
919 | JMS I TYOCT /IN OCTAL | |
920 | JMS I TYPE /TYPE MESSAGES | |
921 | 4002 / B | |
922 | 1417 /LO | |
923 | 0313 /CK | |
924 | 2356 /S. | |
925 | 1713 /OK | |
926 | 7733 /?( | |
927 | 3105 /YE | |
928 | 2340 /S | |
929 | 1722 /OR | |
930 | 4016 / N | |
931 | 1735 /O) | |
932 | 4543 /CR+LF | |
933 | 0000 /END | |
934 | JMS I TYPIN /WAIT FOR REPLY | |
935 | /SEE IF A YES OR NO ANSWER WAS GIVEN | |
936 | ||
937 | JMS I COMPAR | |
938 | 0331 /Y | |
939 | 0305 /E | |
940 | 0323 /S | |
941 | 0000 /END | |
942 | JMP I IT | |
943 | ||
944 | JMP I .+1 | |
945 | SWCHK | |
946 | FORM10, F10PAT | |
947 | ||
948 | ||
949 | \f | |
950 | *1400 | |
951 | /SET THE TAPE INTO MOTION. ALL VARIABLES ARE SET. | |
952 | ||
953 | /WRITE TIMING AND MARK TRACK | |
954 | ||
955 | STMK, CLA | |
956 | DCA PHASE | |
957 | TAD DT1400 /FWD, WRITE, GO | |
958 | TAD DTA /GET UNIT NUMBER | |
959 | SDLC /LOAD COMMAND REGISTER | |
960 | TAD VAR2 /TO MAKE A RESTART FOR THE SAME | |
961 | DCA W6 /OPTION POSSIBLE | |
962 | ||
963 | /WRITE ABOUT 10 FEET OF END ZONE | |
964 | DCA W1 | |
965 | CEZ, TAD REZ /ADDRESS OF DATA | |
966 | JMS SETUP | |
967 | ISZ W1 | |
968 | JMP CEZ /NOT END FOOTAGE | |
969 | TAD M144 /OK WRITE INTERBLOCK SYNC | |
970 | DCA W1 | |
971 | JMS INBLSY | |
972 | ISZ W1 | |
973 | JMP .-2 | |
974 | JMP WDZ | |
975 | ||
976 | /WRITE INTERBLOCK SYNC | |
977 | INBLSY, 0 | |
978 | TAD VAR1 /RESET THE WORDS | |
979 | DCA W5 | |
980 | TAD IBZ /ADDRESS OF DATA | |
981 | JMS SETUP /GO OUT AND WRITE 1 | |
982 | JMP I INBLSY /GO DO AGAIN | |
983 | ||
984 | /WRITE FORWARD BLOCKMARK AND REVERSE GUARD | |
985 | WDZ, TAD FBM /ADDRESS OF PATTERN | |
986 | JMS SETUP | |
987 | ||
988 | /WRITE LOCKMARK, REVERSE CHECKSUM, REV FINAL, REV PREFINAL | |
989 | LRCFP, TAD WLMRF | |
990 | JMS SETUP1 | |
991 | ||
992 | /WRITE THE DATA TRACK | |
993 | DTRK, TAD DZ /ADDRESS OF PATTERN | |
994 | JMS SETUP | |
995 | ISZ W5 | |
996 | JMP DTRK /NOW WRITE DATA MARK TRACK AGAIN | |
997 | /WRITE PREFINAL, FINAL, CHECKSUM, AND REVERSE LOCK | |
998 | PFCRC, TAD FEZ /ADDRESS OF DATA | |
999 | JMS SETUP1 | |
1000 | ||
1001 | /WRITE GUARD REVERSE BLOCK | |
1002 | GRB, TAD GRZ | |
1003 | JMS SETUP | |
1004 | ||
1005 | /THIS COMPLETES 1 BLOCK, GO BACK AND WRITE THE REST | |
1006 | JMS INBLSY /WRITE INTERBLOCK SYNC | |
1007 | ISZ W6 /TOTAL NUMBER OF BLOCKS | |
1008 | JMP WDZ /WRITTEN? NO: | |
1009 | ||
1010 | /ALL DATA BLOCKS WRITTEN NOW WRITE BUFFER ZONE OF INTERBLOCK SYNC | |
1011 | TAD M143 /198 EXPAND CODES AT END OF BLOCKS | |
1012 | DCA W1 | |
1013 | JMS INBLSY | |
1014 | ISZ W1 | |
1015 | JMP .-2 | |
1016 | ||
1017 | /FINISHED BLOCK WRITTING, WRITE ANOTHER 10(1) OF END ZONES | |
1018 | DCA W1 | |
1019 | WEZF, TAD EZM | |
1020 | JMS SETUP | |
1021 | ISZ W1 | |
1022 | JMP WEZF | |
1023 | SDST | |
1024 | SKP CLA | |
1025 | JMS I SELTIM /TIMING ERROR | |
1026 | TAD C1 | |
1027 | DCA PHASE | |
1028 | JMP I .+1 | |
1029 | MWTM | |
1030 | ||
1031 | SETUP, 0 | |
1032 | DCA 12 /WORD TO BE WRITTEN ON MARK TRACK | |
1033 | TAD M3 | |
1034 | DCA WC | |
1035 | JMS I WAIT | |
1036 | ISZ WC | |
1037 | JMP .-2 | |
1038 | JMP I SETUP | |
1039 | ||
1040 | SETUP1, 0 | |
1041 | DCA 12 | |
1042 | TAD M6 | |
1043 | DCA WC | |
1044 | JMS I WAIT | |
1045 | ISZ WC | |
1046 | JMP .-2 | |
1047 | JMP I SETUP1 | |
1048 | /THESE ARE THE DATA CONFIGURATIONS FOR THE MARK TRACK | |
1049 | ||
1050 | ||
1051 | /REVERSE END ZONE | |
1052 | ||
1053 | REZ, . | |
1054 | 4044 /ON TAPE AS 5555 (OCT) | |
1055 | 0440 | |
1056 | 4404 | |
1057 | ||
1058 | /INTERBLOCK SYNC | |
1059 | ||
1060 | IBZ, . | |
1061 | 0404 /ON TAPE AS 2525 (OCT) | |
1062 | 0404 | |
1063 | 0404 | |
1064 | ||
1065 | /FORWARD BLOCK MARK AND REVERSE GUARD | |
1066 | ||
1067 | FBM, . | |
1068 | 0404 /ON TAPE AS 2632 (OCT) | |
1069 | 4004 | |
1070 | 4040 | |
1071 | ||
1072 | /LOCK MARK, REVERSE CHECKSUM, REVERSE FINAL | |
1073 | /AND REVERSE PREFINAL | |
1074 | ||
1075 | WLMRF, . | |
1076 | 0040 /ON TAPE AS 10101010 (OCT) | |
1077 | 0000 | |
1078 | 4000 | |
1079 | 0040 | |
1080 | 0000 | |
1081 | 4000 | |
1082 | ||
1083 | /DATA MARK | |
1084 | ||
1085 | DZ, . | |
1086 | 4440 /ON TAPE AS 7070 (OCT) | |
1087 | 0044 | |
1088 | 4000 | |
1089 | ||
1090 | /PREFINAL, FINAL, FWD CHECKSUM, AND REVERSE LOCK | |
1091 | ||
1092 | FEZ, . | |
1093 | 4440 /ON TAPE AS 73737373 (OCT) | |
1094 | 4444 | |
1095 | 4044 | |
1096 | 4440 | |
1097 | 4444 | |
1098 | 4044 | |
1099 | /FORWARD GUARD AND REVERSE BLOCK NUMBER | |
1100 | ||
1101 | GRZ, . | |
1102 | 4040 /ON TAPE AS 5145 (OCT) | |
1103 | 0440 | |
1104 | 0404 | |
1105 | ||
1106 | /FORWARD END ZONE | |
1107 | ||
1108 | EZM, . | |
1109 | 0400 /ON TAPE AS 2222 (OCT) | |
1110 | 4004 | |
1111 | 0040 | |
1112 | /SUBROUTINE TO SEE IF USER TYPED MARK 384 | |
1113 | /TO SPECIFY STANDARD PDP-10 FORMAT | |
1114 | F10PAT, 0 | |
1115 | DCA BLOCKS /CLEAR LOC. BLOCKS IN CASE NOT 10-FORMAT | |
1116 | TAD TOTAL /AND GET NUMBER TYPED BY USER | |
1117 | TAD M617 /WAS IT 384? | |
1118 | SZA CLA | |
1119 | JMP I F10PAT /NO-RETURN | |
1120 | DCA W1 /YES-CLEAR W1 FOR WAIT LOOP | |
1121 | TAD C1101 /AND ADJUST BLOCK TOTAL FOR | |
1122 | DCA BLOCKS /1102(OCTAL) BLOCKS. | |
1123 | JMP I .+1 | |
1124 | F10BAK, F10RTN | |
1125 | M617, -617 | |
1126 | C1101, 1101 | |
1127 | C1, 0001 | |
1128 | \f | |
1129 | *1600 | |
1130 | /THE MARK TRACK HAS BEEN WRITTEN, AND TAPE IS | |
1131 | /MOVING FORWARD IN THE FORWARD END ZONE. STOP | |
1132 | /THE TAPE AND SEE IF THERE ARE ANY TAPES LEFT TO | |
1133 | /MARK--IF SO GO DO THEM, ELSE TELL OPERATOR TO THROW THE | |
1134 | /"OFF/WTM" SWITCH TO "OFF" | |
1135 | /HE WILL THEN CONTINUE AFTER THIS ACTION | |
1136 | ||
1137 | ||
1138 | /KILL WRITE,STOP TAPE | |
1139 | ||
1140 | MWTM, CLA | |
1141 | TAD DTA /UNIT | |
1142 | SDLC | |
1143 | JMS NUDTA | |
1144 | JMP I DOMARK | |
1145 | ||
1146 | /MESSAGE TO THE OPERATOR | |
1147 | OFF, JMS I TYPE | |
1148 | 2305 /SE | |
1149 | 2440 /T | |
1150 | 2327 /SW | |
1151 | 1124 /IT | |
1152 | 0310 /CH | |
1153 | 4024 /T | |
1154 | 1740 /O | |
1155 | 1706 /OF | |
1156 | 0600 /F | |
1157 | JMS I TYPIN /WAIT FOR CR | |
1158 | JMP I .+1 | |
1159 | SWOFF /CHECK TO MAKE SURE THAT SWITCH IS OFF | |
1160 | /REVERSE TAPE AND READ MARK TRACK | |
1161 | PSER, TAD DT3000 /REVERSE GO | |
1162 | TAD DTA /UNIT | |
1163 | SDLC /LOAD COMMAND REGISTER | |
1164 | DCA W1 /STALL ROUTINE TO GET UP TO SPEED | |
1165 | SDSQ | |
1166 | JMP .-1 | |
1167 | SDRC | |
1168 | ISZ W1 | |
1169 | JMP .-4 | |
1170 | SDSQ /SKIP ON QUAD LINE IF SET AFTER WAIT ROUTINE | |
1171 | SKP | |
1172 | JMP .+3 /FLAG WAS SET | |
1173 | SDSS /READ IN A LINE OF TAPE | |
1174 | JMP .-1 | |
1175 | SDRC /READ THE COMMAND REGISTER | |
1176 | SDST /CHECK FOR A TIMING ERROR | |
1177 | SKP | |
1178 | JMS I SELTIM /TIMING ERROR | |
1179 | AND MSK77 /CHECK TO SEE IF TAPE IS STILL IN END ZONE | |
1180 | TAD M55 | |
1181 | SZA CLA | |
1182 | JMP .-11 /NOT A 55 YET | |
1183 | JMS I SSDSQT /YES,READ IN SOME MORE | |
1184 | TAD M55 /IS IT END ZONE | |
1185 | SNA CLA | |
1186 | JMP .-3 /STILL IN END ZONE | |
1187 | TAD MTR /GET THE MARK TRACK | |
1188 | TAD M25 /IS IT EXPAND CODE | |
1189 | SZA CLA | |
1190 | JMS I SCEXPC /NOT YET,CHECK FOR A 52,AND ADVANCE 3 LINES | |
1191 | CLA /YES IT IS EXPAND CODE | |
1192 | TAD M306 /SET UP FOR 198 EXPAND CODES | |
1193 | DCA CNT | |
1194 | JMS I SSDSQT /THE TAPE SHOULD BE IN SYNC NOW | |
1195 | TAD M25 /READ THE REST OF EXPAND CODE | |
1196 | SZA CLA | |
1197 | JMS I MARKER /MARK TRACK ERROR | |
1198 | ISZ CNT /INCREMENT COUNTER | |
1199 | JMP .-5 | |
1200 | TAD VAR2 /NUMBER OF BLOCKS | |
1201 | DCA W6 | |
1202 | RSTBLK, JMS I SSDSQT /START OF A STANDARD BLOCK | |
1203 | TAD M25 /FIRST EXPAND CODE AT BEGINNING | |
1204 | SZA CLA /OF BLOCK | |
1205 | JMS I MARKER /MARK TRACK ERROR | |
1206 | JMS I SSDSQT /READ MARK BLOCK NUMBER | |
1207 | TAD M26 | |
1208 | SZA CLA | |
1209 | JMS I MARKER /MARK TRACK ERROR | |
1210 | JMS I SSDSQT /READ MARK GUARD | |
1211 | TAD M32 | |
1212 | SZA CLA | |
1213 | JMS I MARKER /MARK TRACK ERROR | |
1214 | TAD M4 | |
1215 | DCA CNT | |
1216 | JMS I SSDSQT /READ L,CK,F,PF | |
1217 | TAD M10 | |
1218 | SZA CLA | |
1219 | JMS I MARKER /MARK TRACK ERROR | |
1220 | ISZ CNT | |
1221 | JMP .-5 | |
1222 | CLA CLL | |
1223 | TAD VAR1 | |
1224 | RAL | |
1225 | DCA W5 /NUMBER OF DATA MARKS | |
1226 | JMS I SSDSQT /READ DATA MARKS | |
1227 | TAD M70 | |
1228 | SZA CLA | |
1229 | JMS I MARKER /MARK TRACK ERROR | |
1230 | ISZ W5 /COUNT FOR NUMBER OF BLOCKS | |
1231 | JMP .-5 | |
1232 | TAD M4 | |
1233 | DCA CNT | |
1234 | JMS I SSDSQT /READ PF,F,CK,L | |
1235 | TAD M73 | |
1236 | SZA CLA | |
1237 | JMS I MARKER /MARK TRACK ERROR | |
1238 | ISZ CNT | |
1239 | JMP .-5 | |
1240 | JMS I SSDSQT /READ REVERSE GUARD | |
1241 | TAD M51 | |
1242 | SZA CLA | |
1243 | JMS I MARKER | |
1244 | ||
1245 | JMS I SSDSQT /READ BLOCK NUMBER | |
1246 | TAD M45 | |
1247 | SZA CLA | |
1248 | JMS I MARKER /MARK TRACK ERROR | |
1249 | JMS I SSDSQT /READ EXPAND CODE | |
1250 | TAD M25 | |
1251 | SZA CLA | |
1252 | JMS I MARKER /END OF ONE BLOCK,MARK TRACK ERROR | |
1253 | ||
1254 | ISZ W6 /FINISHED ALL BLOCKS | |
1255 | JMP RSTBLK /NO:DO OTHER BLOCKS | |
1256 | TAD M307 /SET UP FOR INTERBLOCK SYNC AT END OF TAPE | |
1257 | DCA CNT | |
1258 | JMS I SSDSQT /CHECK FOR 199 EXPAND CODES | |
1259 | TAD M25 | |
1260 | SZA CLA | |
1261 | JMS I MARKER /MARK TRACK ERROR | |
1262 | ISZ CNT | |
1263 | JMP .-5 | |
1264 | JMS I SSDSQT | |
1265 | TAD M22 | |
1266 | SZA CLA | |
1267 | JMS I MARKER | |
1268 | TAD DTA | |
1269 | SDLC | |
1270 | JMP I .+1 | |
1271 | WDBLKN, DBLKN /GO OUT TO WRITE DATA AND BLOCK NUMBERS FORWARD | |
1272 | ||
1273 | ||
1274 | \f | |
1275 | *2000 | |
1276 | DBLKN, TAD C2 | |
1277 | DCA PHASE | |
1278 | TAD VAR2 /NUMBER OF BLOCKS | |
1279 | ||
1280 | DCA W6 | |
1281 | DCA BLK /INITIAL BLOCK IS 0 | |
1282 | TAD BLK | |
1283 | JMS I MESS /COMPUTE THE COMP OBVERSE OF REV BLK | |
1284 | DCA REVBLK | |
1285 | SDLD | |
1286 | TAD DT1400 /FORWARD,WRITE,GO | |
1287 | TAD DTA /UNIT | |
1288 | SDLC /LOAD THE COMMAND REGISTER | |
1289 | SDRC /CHECK TO MAKE SURE WRITE IS SET | |
1290 | RTL | |
1291 | RAL | |
1292 | SMA CLA | |
1293 | JMS WLO /WRITE FAILED TO SET | |
1294 | TAD M6 | |
1295 | DCA CNT | |
1296 | SDSQ /ROUTINE TO GET UP TO SPEED | |
1297 | JMP .-1 | |
1298 | SDLD | |
1299 | ISZ CNT | |
1300 | JMP .-4 | |
1301 | SDLD | |
1302 | SDST | |
1303 | SKP | |
1304 | JMS I SELTIM /TIMING ERROR | |
1305 | LINE, SDSS /WRITE ALL ZEROES TO THE FIRST BLOCK | |
1306 | JMP .-1 | |
1307 | SDLD /LOAD THE DATA BUFFER | |
1308 | SDRC | |
1309 | SDST | |
1310 | SKP | |
1311 | JMS I SELTIM /TIMING ERROR | |
1312 | AND MSK77 | |
1313 | DCA MTR | |
1314 | TAD MTR | |
1315 | TAD M26 | |
1316 | SZA CLA | |
1317 | JMP LINE | |
1318 | SDLD | |
1319 | SDST | |
1320 | SKP | |
1321 | JMS I SELTIM /TIMING ERROR | |
1322 | JMP WDOBLK /GO AND WRITE REVERSE GUARD | |
1323 | WDBLK, CLA CLL /BEGINNING OF BLOCK,WRITE DATA AND BLOCK NUMBER | |
1324 | JMS W4L /WRITE EIGHT LINES | |
1325 | JMS W4L /END OF EXPAND CODE,BEGINNING OF BLK NUMBER | |
1326 | TAD BLK /GET FORWARD BLOCK NUMBER | |
1327 | JMS W4L /WRITE IT | |
1328 | CLA | |
1329 | JMS W4L /WRITE FIRST WORD OF REV GUARD | |
1330 | WDOBLK, CLA | |
1331 | JMS W4L /SECOND WORD OF REVERSE GUARD | |
1332 | JMS W4L | |
1333 | JMS W4L /FIRST WORD OF REVERSE CHECKSUM | |
1334 | WDATA, TAD TOTAL /NUMBER OF DATA WORDS TO BE WRITTEN | |
1335 | CIA | |
1336 | DCA W5 /SET UP COUNTER | |
1337 | JMS W4L | |
1338 | ISZ W5 /INCREMENT COUNTER | |
1339 | JMP .-2 | |
1340 | CLA CLL | |
1341 | TAD MSK77 /COME BACK TO WRITE LAST WORD AND CHECKSUM | |
1342 | JMS W4L | |
1343 | CLA | |
1344 | JMS W4L /FINISH CHECKSUM | |
1345 | JMS W4L /FIRST WORD OF REVERSE LOCK | |
1346 | JMS W4L /LAST WORD OF RL. AND HALF OF GUARD | |
1347 | JMS W4L /REST OF GUARD | |
1348 | TAD REVBLK /GET REVERSE BLOCK NUMBER | |
1349 | JMS W4L | |
1350 | CLA CMA | |
1351 | JMS W4L /END OF BLOCK NUMBER AND HALF OF EXPAND CODE | |
1352 | JMS W4L /END OF EXPAND CODE | |
1353 | ISZ BLK | |
1354 | CLA | |
1355 | TAD BLK | |
1356 | JMS I MESS /COMPUTE NEW BLK NUMBER | |
1357 | DCA REVBLK | |
1358 | SDST | |
1359 | SKP | |
1360 | JMS I SELTIM /TIMING ERROR | |
1361 | ISZ W6 /IS IT DONE WRITING BLK AND DATA | |
1362 | JMP WDBLK /NO | |
1363 | SDSQ | |
1364 | JMP .-1 | |
1365 | SDRD | |
1366 | CLA | |
1367 | TAD DT1000 /SEARCH FOR END ZONE | |
1368 | TAD DTA /GET UNIT | |
1369 | SDLC /LOAD THE COMMAND REG | |
1370 | SDSS | |
1371 | JMP .-1 | |
1372 | SDRC | |
1373 | AND MSK77 | |
1374 | TAD M22 | |
1375 | SZA CLA | |
1376 | JMP .-6 | |
1377 | JMP I .+1 | |
1378 | DBLOCK | |
1379 | ||
1380 | W4L, 0 | |
1381 | SDSQ | |
1382 | JMP .-1 /SKIP ON QUAD LINE FLAG | |
1383 | SDLD /LOAD THE DATA BUFFER | |
1384 | SDST /CHECK FOR A TIMING ERROR | |
1385 | SKP | |
1386 | JMS I SELTIM /TIMING ERROR | |
1387 | JMP I W4L | |
1388 | ||
1389 | C2, 0002 | |
1390 | ||
1391 | WLO, 0 | |
1392 | TAD DTA /STOP THE TAPE | |
1393 | SDLC /LOAD THE COMMAND REGISTER | |
1394 | JMS I TYPE | |
1395 | 2003 /PC | |
1396 | 4000 /END | |
1397 | CLA CMA | |
1398 | TAD WLO | |
1399 | JMS I TYOCT | |
1400 | JMS I TYPE | |
1401 | 4040 | |
1402 | 2722 /WR | |
1403 | 1124 /IT | |
1404 | 0540 /E | |
1405 | 0000 /END | |
1406 | JMP I .+1 | |
1407 | ZCOM | |
1408 | ||
1409 | ||
1410 | ||
1411 | \f | |
1412 | *2200 | |
1413 | BLCSD, TAD C4 | |
1414 | DCA PHASE | |
1415 | CLA CLL | |
1416 | TAD VAR2 | |
1417 | DCA W6 /SET UP FOR THE NUMBER OF BLOCKS | |
1418 | DCA BLK /SET BLK TO 0 | |
1419 | TAD DT1000 /FORWARD READ | |
1420 | TAD DTA /UNIT | |
1421 | SDLC /LOAD THE COMMAND REG | |
1422 | TAD BLK | |
1423 | JMS I MESS /CALCULATE THE COMPLEMENT OBVERSE | |
1424 | DCA REVBLK | |
1425 | SDST | |
1426 | SKP | |
1427 | JMS I SELTIM /TIMING ERROR | |
1428 | TAD M6 /WAIT TO GET UP TO SPEED | |
1429 | DCA CNT /SET UP COUNTER | |
1430 | SDSQ /SKIP ON A QUAD LINE FLAG | |
1431 | JMP .-1 | |
1432 | SDRD /READ THE DATA BUFFER TO CLEAR FLAG | |
1433 | ISZ CNT | |
1434 | JMP .-4 | |
1435 | CLA | |
1436 | BLCSDA, DCA CHKSUM | |
1437 | JMS I SLRDRC /READ A SINGLE LINE AT A TIME | |
1438 | TAD M26 | |
1439 | SZA CLA /IS IT BLOCK MARK | |
1440 | JMP SRDRC+4 /NO,GO BACK | |
1441 | SDST | |
1442 | SKP | |
1443 | JMS I SELTIM /TIMING ERROR | |
1444 | TAD DATRD | |
1445 | CIA | |
1446 | TAD BLK | |
1447 | SZA CLA | |
1448 | JMS I BLKERR /BLK NUMBER ERROR | |
1449 | JMS I SSDSQT /READ GUARD | |
1450 | JMS I SSDSQT /READ REVERSE LOCK | |
1451 | JMS I SSDSQT /READ CHECKSUM | |
1452 | SDRD /READ THE DATA BUFFER | |
1453 | SDST | |
1454 | SKP | |
1455 | JMS I SELTIM /TIMING ERROR | |
1456 | AND MSK77 | |
1457 | JMS I BCXOR /GO OUT TO CHECKSUM ROUTINE | |
1458 | RDATA, TAD TOTAL /NUMBER OF WORDS PER BLOCK | |
1459 | CIA | |
1460 | DCA W5 /SET UP COUNTER | |
1461 | SDSQ | |
1462 | JMP .-1 | |
1463 | SDRD /READ THE DATA BUFFER | |
1464 | SDST | |
1465 | SKP | |
1466 | JMS I SELTIM /TIMING ERROR | |
1467 | DCA DATRD | |
1468 | TAD DATRD /SAVE THE DATA WORD | |
1469 | SZA CLA | |
1470 | JMS I DATERR /DATA ERROR | |
1471 | TAD DATRD | |
1472 | JMS I BCXOR | |
1473 | SDST /CHECK FOR A TIMING ERROR | |
1474 | SKP | |
1475 | JMS I SELTIM /TIMING ERROR | |
1476 | ISZ W5 | |
1477 | JMP RDATA+3 | |
1478 | SDSQ /READ REVERSE CHECKSUM | |
1479 | JMP .-1 | |
1480 | SDRD /READ IT IN | |
1481 | SDST | |
1482 | SKP | |
1483 | JMS I SELTIM /TIMING ERROR | |
1484 | AND C7700 | |
1485 | JMS I BCXOR /CHECK CHECK SUM | |
1486 | TAD CHKSUM | |
1487 | AND MSK77 | |
1488 | IAC | |
1489 | TAD C7700 | |
1490 | SZA CLA | |
1491 | JMS I CHKERR /CHECKSUM ERROR | |
1492 | SDST | |
1493 | SKP | |
1494 | JMS I SELTIM /TIMING ERROR | |
1495 | JMS I SLRDRC /ADVANCE A SINGLE LINE FLAG | |
1496 | TAD M31 /LOOK FOR REV BLK NUMBER | |
1497 | SZA CLA | |
1498 | JMP SRDRC+4 | |
1499 | SDST | |
1500 | SKP | |
1501 | JMS I SELTIM /TIMING ERROR | |
1502 | TAD DATRD | |
1503 | CIA | |
1504 | TAD REVBLK /COMPARE BLOCK READ WITH ONE COMPUTED | |
1505 | SZA CLA | |
1506 | JMS I BLKERR /BLOCK NUMBER ERROR | |
1507 | SDSQ | |
1508 | JMP .-1 | |
1509 | SDRD | |
1510 | SDST | |
1511 | SKP | |
1512 | JMS I SELTIM /TIMING ERROR | |
1513 | CLA CLL | |
1514 | ISZ BLK | |
1515 | TAD BLK | |
1516 | JMS I MESS | |
1517 | DCA REVBLK | |
1518 | SDST | |
1519 | SKP | |
1520 | JMS I SELTIM /TIMING ERROR | |
1521 | ISZ W6 | |
1522 | JMP BLCSDA | |
1523 | TAD DT1000 | |
1524 | TAD DTA | |
1525 | SDLC | |
1526 | SDSS | |
1527 | JMP .-1 | |
1528 | SDRC | |
1529 | AND MSK77 | |
1530 | TAD M22 | |
1531 | SZA CLA | |
1532 | JMP .-6 | |
1533 | JMP I .+1 | |
1534 | RDBLKS | |
1535 | ||
1536 | C4, 0004 | |
1537 | ||
1538 | \f | |
1539 | *2400 | |
1540 | DBLOCK, TAD C3 | |
1541 | DCA PHASE | |
1542 | CLA CLL | |
1543 | DCA DISBLK | |
1544 | TAD DT3000 /REVERSE,GO | |
1545 | TAD DTA /UNIT | |
1546 | SDLC /LOAD THE COMMAND REGISTER | |
1547 | CLA CLL | |
1548 | DISLUP, SDSS | |
1549 | JMP .-1 | |
1550 | CLA CLL | |
1551 | SDRD | |
1552 | DCA DISDAT /SAVE THE DATA BUFFER | |
1553 | SDRC | |
1554 | AND MSK77 /MASK OUT THE MARK TRACK | |
1555 | TAD M26 /CHECK FOR BLOCK NUMBER | |
1556 | SZA | |
1557 | JMP DISEND /NOT BLK MARK,CHECK FOR END ZONE | |
1558 | TAD DISDAT /DISPLAY THE NUMBER IN THE AC | |
1559 | ISZ DISBLK | |
1560 | JMP .-1 | |
1561 | JMP DISLUP /GO SEARCH FOR THE NEXT BLOCK | |
1562 | DISEND, TAD FOUR /IS IT END ZONE | |
1563 | SZA CLA | |
1564 | JMP DISLUP /NO,GO GET NEXT LINE | |
1565 | TAD DTA /STOP GET READY TO READ | |
1566 | SDLC /LOAD THE COMMAND REGISTER | |
1567 | JMP I .+1 | |
1568 | BLCSD | |
1569 | DISBLK, 0 | |
1570 | DISDAT, 0 | |
1571 | FOUR, 4 | |
1572 | C3, 0003 | |
1573 | C5, 0005 | |
1574 | ||
1575 | RDBLKS, TAD C5 | |
1576 | DCA PHASE | |
1577 | TAD VAR2 | |
1578 | DCA W5 /SET UP FOR NUMBER OF BLOCKS | |
1579 | IAC | |
1580 | TAD VAR2 | |
1581 | DCA W6 /SET UP TO CHECK BLK REVERSE | |
1582 | TAD DT3000 /READ REVERSE GO | |
1583 | TAD DTA /UNIT | |
1584 | SDLC /LOAD THE COMMAND REGISTER | |
1585 | TAD M6 | |
1586 | DCA CNT | |
1587 | SDSS | |
1588 | JMP .-1 | |
1589 | SDRC | |
1590 | CLA | |
1591 | ISZ CNT | |
1592 | JMP .-5 | |
1593 | RDBLK, SDSS | |
1594 | JMP .-1 | |
1595 | SDRD /READ THE DATA BUFFER AND STORE IT AWAY | |
1596 | DCA CNT | |
1597 | SDRC | |
1598 | AND MSK77 | |
1599 | TAD M26 | |
1600 | SZA CLA /IS IT BLOCK NUMBER | |
1601 | JMP RDBLK | |
1602 | TAD CNT | |
1603 | TAD W6 | |
1604 | SZA CLA | |
1605 | JMS I BLKERR /BLOCK NUMBER ERROR | |
1606 | IAC | |
1607 | TAD W6 /INCREMENT A NUMBER FOR COMPARE COUNTER | |
1608 | DCA W6 | |
1609 | ISZ W5 /INCREMENT BLK COUNTER | |
1610 | JMP RDBLK | |
1611 | SDSS | |
1612 | JMP .-1 | |
1613 | SDRC | |
1614 | AND MSK77 | |
1615 | TAD M22 | |
1616 | SZA CLA | |
1617 | JMP .-6 | |
1618 | TAD DTA | |
1619 | SDLC /LOAD THE COMMAND REGISTER WITH UNIT STOP | |
1620 | IAC | |
1621 | DCA PHASE | |
1622 | JMS NUDTA | |
1623 | JMP PSER | |
1624 | JMP I .+1 | |
1625 | INIT /END GO BACK TO DIRECT | |
1626 | / | |
1627 | / | |
1628 | /SUBROUTINE TO CHECK FOR REPEATED DTA NUMBERS | |
1629 | /DTA # TO COMPARE TO LIST IS IN AC ON ENTRY--THIS | |
1630 | /ROUTINE STORES THE DTA # IF IT IS NEW AND IGNORES IT | |
1631 | /IF IT IS NOT-CALL BY JMS REPEAT WITH DTA # IN AC | |
1632 | REPEAT, 0 | |
1633 | DCA DNUM /TEM STORAGE FOR NEW DTA # | |
1634 | TAD DBUFAD /INITIALIZE POINTER (DBUFPT) | |
1635 | DCA DBUFPT /TO START OF DTA LIST | |
1636 | TAD DCTR /LOAD NUM. OF DTAS STORED | |
1637 | CMA /COMPLEMENT IT | |
1638 | DCA COMCTR /STORE IN COMPARE COUNTER | |
1639 | COMCHK, ISZ COMCTR /DONE WITH ALL COMPARES? | |
1640 | JMP DOCOMP /NO: GO DO COMPARE | |
1641 | TAD DNUM /YES: STORE NEW DTA# | |
1642 | DCA I DBUFPT /AT END OF LIST | |
1643 | ISZ DCTR /INCR. # OF DTAS STORED | |
1644 | JMP I REPEAT /RETURN | |
1645 | ||
1646 | COMCTR, 0 /COUNTER FOR # OF LIST COMPARISONS TO BE DONE | |
1647 | DCTR, 0 /COUNTER FOR # OF DTAS IN LIST | |
1648 | DBUFAD, DTABUF /START OF DTA NUM. LIST | |
1649 | DNUM, 0 /TEM STORAGE FOR DTA # | |
1650 | / | |
1651 | / | |
1652 | /THIS SECTION DOES THE ACTUAL COMPARISON BETWEEN | |
1653 | /THE DTA# PASSED TO THE ROUTINE AND A NUMBER ON THE LIST | |
1654 | ||
1655 | DOCOMP, TAD I DBUFPT /GET NXT DTA NUMBER PASSED | |
1656 | CIA /NEGATE IT | |
1657 | TAD DNUM /ADD IN DTA NUMBER PASSED | |
1658 | SNA CLA /ARE THEY THE SAME | |
1659 | JMP I REPEAT /YES: RETURN | |
1660 | ISZ DBUFPT /NO: INCREMENT LIST POINTER | |
1661 | JMP COMCHK /SEE IF DONE ALL COMPARES | |
1662 | / | |
1663 | / | |
1664 | ||
1665 | \f | |
1666 | *2600 | |
1667 | ||
1668 | RDFA, CLA CLL | |
1669 | TAD DT3000 /REVERSE READ GO | |
1670 | TAD DTA /GET UNIT | |
1671 | SDLC /LOAD THE COMMAND REGISTER | |
1672 | SDSS /SKIP ON A SINGLE LINE FLAG | |
1673 | JMP .-1 | |
1674 | SDRC /READ THE COMMAND REGISTER | |
1675 | AND MSK77 | |
1676 | TAD M22 /IS IT END ZONE | |
1677 | SZA CLA /YES | |
1678 | JMP .-6 /NO GO BACK AND LOOK AGAIN | |
1679 | TAD DT1000 /FORWARD READ GO | |
1680 | TAD DTA /UNIT | |
1681 | SDLC /LOAD THE COMMAND REGISTER | |
1682 | TAD M6 | |
1683 | DCA CNT | |
1684 | SDSS | |
1685 | JMP .-1 | |
1686 | SDRC | |
1687 | CLA | |
1688 | ISZ CNT | |
1689 | JMP .-5 | |
1690 | RDFA1, TAD M26 | |
1691 | DCA W3 /SET UP COUNTER TO READ 22 BLOCKS | |
1692 | TAD BADD /SET UP BUFFER ADDRESS | |
1693 | DCA X2 | |
1694 | SDSS /GO SINGLE LINE FLAGS | |
1695 | JMP .-1 | |
1696 | SDRD /READ THE DATA BUFFER | |
1697 | DCA CNT | |
1698 | SDRC /READ THE COMMAND REGISTER | |
1699 | AND MSK77 | |
1700 | TAD M26 /SEARCH FOR BLOCK NUMBER | |
1701 | SZA CLA | |
1702 | JMP RDFA1+4 /NOT BLOCK NUMBER YET GO BACK AGAIN | |
1703 | TAD CNT /OK BLK NUMBER STORE IT AWAY | |
1704 | DCA I X2 | |
1705 | ISZ W3 /INCREMENT COUNTER | |
1706 | JMP RDFA1+4 /NOT 22 BLOCKS YET | |
1707 | TAD DTA | |
1708 | SDLC /STOP THE DTA | |
1709 | ||
1710 | /TYPE OUT BLOCK NUMBERS AND DTA UNIT# | |
1711 | ||
1712 | JMS I TYPE | |
1713 | 0424 /DT | |
1714 | 0140 /A | |
1715 | 0000 /END | |
1716 | TAD DTA /GET UNIT NUMBER | |
1717 | RTL | |
1718 | JMS I TYOCT /AND TYPE IT OUT | |
1719 | JMS I TYPE | |
1720 | 4345 /CR&LF | |
1721 | 0000 /END | |
1722 | TAD M26 /WILL TYPE ALL | |
1723 | DCA W1 /22 WORDS | |
1724 | TAD BADD /ADDRESS OF BLOCK | |
1725 | DCA X2 /NUMBERS TO INDEX | |
1726 | TAD I X2 /FIRST OR NEXT BLOCK | |
1727 | JMS I TYOCT /TYPE IT OUT | |
1728 | JMS I TYPE /CR&LF | |
1729 | 4345 /CR&LF | |
1730 | 0000 /END | |
1731 | ISZ W1 /COMPLETE | |
1732 | JMP .-6 | |
1733 | JMP I IT /GO ASK FOR FORMAT | |
1734 | ||
1735 | RDR, CLA CLL | |
1736 | TAD DT1000 /FORWARD READ GO | |
1737 | TAD DTA /UNIT | |
1738 | SDLC /LOAD THE COMMAND REGISTER | |
1739 | SDSS /SKIP ON A SINGLE LINE FLAG | |
1740 | JMP .-1 | |
1741 | SDRC /READ THE COMMAND REGISTER | |
1742 | AND MSK77 | |
1743 | TAD M22 /CHECK FOR END ZONE | |
1744 | SZA CLA | |
1745 | JMP .-6 /NOT YET GO BACK | |
1746 | TAD DT3000 /REVERSE READ GO | |
1747 | TAD DTA /UNIT | |
1748 | SDLC /LOAD THE COMMAND REGISTER | |
1749 | TAD M6 | |
1750 | DCA CNT | |
1751 | SDSS | |
1752 | JMP .-1 | |
1753 | SDRC | |
1754 | CLA | |
1755 | ISZ CNT | |
1756 | JMP .-5 | |
1757 | JMP RDFA1 /STORE NUMBERS IN REVERSE | |
1758 | ||
1759 | RETRY, JMS I TYPIN | |
1760 | JMS I COMPAR | |
1761 | 0322 /R | |
1762 | 0305 /E | |
1763 | 0324 /T | |
1764 | 0322 /R | |
1765 | 0331 /Y | |
1766 | 0000 /END | |
1767 | JMP I IT /GUESS HE DOESN'T WANT TO TRY AGAIN | |
1768 | CLA | |
1769 | TAD DT1000 /FORWARD READ GO | |
1770 | TAD DTA /UNIT | |
1771 | SDLC /LOAD THE COMMAND REGISTER | |
1772 | TAD M6 | |
1773 | DCA CNT /WAIT 6 LINES | |
1774 | SDSS | |
1775 | JMP .-1 | |
1776 | SDRC /READ THE COMMAND REGISTER | |
1777 | ISZ CNT | |
1778 | JMP .-4 | |
1779 | SDSS | |
1780 | JMP .-1 | |
1781 | SDRC | |
1782 | AND MSK77 | |
1783 | TAD M22 | |
1784 | SZA CLA | |
1785 | JMP .-6 | |
1786 | TAD DT3000 | |
1787 | TAD DTA | |
1788 | SDLC | |
1789 | CLA IAC | |
1790 | DCA PHASE | |
1791 | JMP I .+1 | |
1792 | PSER+11 | |
1793 | ||
1794 | ||
1795 | \f | |
1796 | *3000 | |
1797 | ||
1798 | ||
1799 | SDSQT, 0 | |
1800 | SDSQ /ADVANCE SIX LINES | |
1801 | JMP .-1 /SKIP ON QUAD LINE FLAG | |
1802 | SDRC /READ COMMAND REGISTER | |
1803 | SDST | |
1804 | SKP | |
1805 | JMS I SELTIM /TIMING ERROR | |
1806 | SDSS | |
1807 | JMP .-1 /SKIP ON SINGLE LINE FLAG | |
1808 | SDRC | |
1809 | SDST | |
1810 | SKP | |
1811 | JMS I SELTIM /TIMING ERROR | |
1812 | SDSS | |
1813 | JMP .-1 | |
1814 | SDRC /READ THE COMMAND REGISTER | |
1815 | SDST | |
1816 | SKP | |
1817 | JMS I SELTIM /TIMING ERROR | |
1818 | AND MSK77 /SAVE THE MARK TRACK LAST 6 BITS | |
1819 | DCA MTR | |
1820 | TAD MTR | |
1821 | JMP I SDSQT | |
1822 | ||
1823 | A3LNS, 0 /ADVANCE THREE LINES | |
1824 | SDSS | |
1825 | JMP .-1 /SKIP ON SINGLE LINE FLAG | |
1826 | SDRC | |
1827 | SDST | |
1828 | SKP | |
1829 | JMS I SELTIM /TIMING ERROR | |
1830 | SDSS | |
1831 | JMP .-1 | |
1832 | SDRC | |
1833 | SDST | |
1834 | SKP | |
1835 | JMS I SELTIM /TIMING ERROR | |
1836 | SDSS | |
1837 | JMP .-1 | |
1838 | SDRC | |
1839 | SDST | |
1840 | SKP | |
1841 | JMS I SELTIM /TIMING ERROR | |
1842 | AND MSK77 | |
1843 | DCA MTR | |
1844 | TAD MTR | |
1845 | JMP I A3LNS | |
1846 | ||
1847 | CEXPC, 0 | |
1848 | TAD MTR | |
1849 | TAD M52 | |
1850 | SZA CLA | |
1851 | JMS I MARKER /MARK TRACK ERROR | |
1852 | JMS A3LNS /READ THREE MORE LINES | |
1853 | TAD M25 /IS IT 25 NOW | |
1854 | SZA CLA | |
1855 | JMS I MARKER /NO ,MARK TRACK ERROR | |
1856 | JMP I CEXPC /YES:IT IS EXPAND CODE NUMBER 1 | |
1857 | ||
1858 | /SIXBIT COMPLEMENT XOR SUBROUTINE | |
1859 | /SUBROUTINE IS ENTERED WITH DATA WORD TO BE XORED IN AC | |
1860 | /TWO SIX-BIT COMPLEMENT XORS WILL TAKE PLACE TO LOC CHKSUM | |
1861 | /WITH THE RESULT IN CHKSUM | |
1862 | ||
1863 | SBCXOR, 0 | |
1864 | CMA /COMPLEMENT WORD | |
1865 | DCA SBWORD /AND SAV | |
1866 | TAD SBWORD | |
1867 | AND CHKSUM | |
1868 | CIA | |
1869 | CLL RAL | |
1870 | TAD SBWORD | |
1871 | TAD CHKSUM | |
1872 | DCA CHKSUM | |
1873 | TAD SBWORD | |
1874 | RTR CLL;RTR;RTR | |
1875 | DCA SBWORD | |
1876 | TAD SBWORD | |
1877 | AND CHKSUM | |
1878 | CIA | |
1879 | CLL RAL | |
1880 | TAD SBWORD | |
1881 | TAD CHKSUM | |
1882 | AND MSK77 | |
1883 | DCA CHKSUM | |
1884 | JMP I SBCXOR | |
1885 | ||
1886 | SRDRC, 0 | |
1887 | SDSQ | |
1888 | SKP | |
1889 | JMP .+3 | |
1890 | SDSS | |
1891 | JMP .-1 | |
1892 | SDRD | |
1893 | DCA DATRD | |
1894 | SDRC | |
1895 | AND MSK77 | |
1896 | JMP I SRDRC | |
1897 | ||
1898 | NUDTA, 0 | |
1899 | TAD I LSTPT /GET CURRENT VALUE OF DATA LIST PTR | |
1900 | DCA TBUFPT /STORE IT AS TEM,BUF,PTR | |
1901 | TAD I TBUFPT /GET A DTA # FROM THE LIST | |
1902 | AND C0007 | |
1903 | SZA CLA /IS IT A 7777 | |
1904 | JMP LSTEND /YES END OF LIST | |
1905 | TAD I TBUFPT /NO;GET IT BACK | |
1906 | DCA DTA | |
1907 | ISZ I LSTPT /INCREMENT LIST POINTER | |
1908 | JMP I NUDTA /RETURN | |
1909 | /COME HERE AT END OF LIST TO RESET POINTERS AND RETURN TO CALL+2 | |
1910 | LSTEND, ISZ NUDTA /INCREMENT RETURN POINTER | |
1911 | TAD I STRTPT /GET ADR OF START OF LIST | |
1912 | DCA I LSTPT | |
1913 | JMP NUDTA+1 /GO GET FIRST DTA# AND RETURN | |
1914 | STRTPT, DBUFAD /POINTER TO START OF DATA LIST | |
1915 | TBUFPT, 0 /TEM STORAGE FOR BOT PTR | |
1916 | LSTPT, DBUFPT /POINTER TO CURRENT VALUE OF DTA LIST PTR | |
1917 | ||
1918 | /CONSTANTS FOR FORMULA TRANSLATION SECTION | |
1919 | BINCON, .+1 | |
1920 | 0001 | |
1921 | 0012 | |
1922 | 0144 | |
1923 | 1750 | |
1924 | DTABUF, 0 | |
1925 | ||
1926 | ||
1927 | ||
1928 | ||
1929 | \f | |
1930 | *3200 | |
1931 | /CHECK SWITCH TO SEE IF SET TO WTM POSITION | |
1932 | SWCHK, JMS I TYPE /TYPE OUT MESSAGE | |
1933 | 2305 /SE | |
1934 | 2440 /T | |
1935 | 2327 /SW | |
1936 | 1124 /IT | |
1937 | 0310 /CH | |
1938 | 4024 /T | |
1939 | 1740 /O | |
1940 | 2724 /WT | |
1941 | 1500 /M | |
1942 | JMS I TYPIN /WAIT FOR CR | |
1943 | CLA | |
1944 | DCA CNTERL | |
1945 | SDLD /CLEAR SINGLE AND QUAD FLAGS | |
1946 | SDSS | |
1947 | SKP | |
1948 | JMP .+4 | |
1949 | ISZ CNTERL | |
1950 | JMP .-4 | |
1951 | JMP SWCHER /ERROR,TYPE ERROR MESSAGE AND GO TO SWCHK | |
1952 | /SEE IF THE DRIVE IS OK | |
1953 | RSTSM, SDLC /LOAD CR TO CLEAR TIMEING ERROR | |
1954 | SDLD /LOAD DATA BUFFER TO CLEAR S Q FLAGS | |
1955 | TAD DT0400 /SET WRITE | |
1956 | TAD DTA /GET UNIT | |
1957 | DCA SAV /STORE IT AWAY | |
1958 | TAD SAV | |
1959 | SDSS | |
1960 | JMP .-1 | |
1961 | SDLC | |
1962 | TAD SAV | |
1963 | SDLC /LOAD THE TRANSPORT | |
1964 | SDRC /READ THE COMMAND REGISTER AND CHECK IT | |
1965 | RTL | |
1966 | RAL | |
1967 | SMA /CHECK WRITE TO BE SET | |
1968 | JMP ERCHK /WRITE IS NOT SET | |
1969 | RAL /CHECK WLO | |
1970 | SPA | |
1971 | JMP ERCHK /WLO | |
1972 | RAL /CHECK SELECT AND TIMING ERROR | |
1973 | SPA CLA | |
1974 | JMP ERCHK /SELECT OR TIMING ERROR | |
1975 | JMS NUDTA /CHECK OTHER DRIVE IF ANY | |
1976 | JMP RSTSM-11 /CHECK OTHER DRIVE | |
1977 | JMP I .+1 | |
1978 | STMK | |
1979 | CNTERL, 0 | |
1980 | SAV, 0 | |
1981 | ||
1982 | ERCHK, JMS I TYPE /INCORRECT SETUP | |
1983 | 2305 /SE | |
1984 | 2425 /TU | |
1985 | 2077 /P | |
1986 | 0000 /END | |
1987 | JMP I .+1 | |
1988 | START | |
1989 | ||
1990 | SWCHER, JMS I TYPE | |
1991 | 2327 /SW | |
1992 | 1124 /IT | |
1993 | 0310 /CH | |
1994 | 4016 /N | |
1995 | 1724 /OT | |
1996 | 4023 /S | |
1997 | 0524 /ET | |
1998 | 4024 /T | |
1999 | 1740 /O | |
2000 | 2724 /WT | |
2001 | 1540 /M | |
2002 | 1722 /OR | |
2003 | 4023 /S | |
2004 | 1116 /IN | |
2005 | 0714 /GL | |
2006 | 0540 /E | |
2007 | 1411 /LI | |
2008 | 1605 /NE | |
2009 | 4006 /F | |
2010 | 1401 /LA | |
2011 | 0740 /G | |
2012 | 0601 /FA | |
2013 | 1114 /IL | |
2014 | 0504 /ED | |
2015 | 4024 /T | |
2016 | 1740 /O | |
2017 | 2305 /SE | |
2018 | 2440 /T | |
2019 | 4543 /CR LF | |
2020 | 0000 /END | |
2021 | JMP SWCHK | |
2022 | ||
2023 | SWOFF, CLA | |
2024 | DCA CNTERL | |
2025 | SDLD /CLEAR ANY FLAGS THAT ARE SET | |
2026 | SDSS | |
2027 | SKP | |
2028 | JMP OFF /FLAG SHOULDN'T BE SET | |
2029 | ISZ CNTERL | |
2030 | JMP .-4 | |
2031 | CLA | |
2032 | JMP I .+1 | |
2033 | PSER | |
2034 | ||
2035 | ||
2036 | *3400 | |
2037 | /INPUT BUFFER FOR TELETYPE THIS MUST BE AT THE END OF PROGRAM | |
2038 | ||
2039 | BUFFER, 0 | |
2040 | ||
2041 | $ |