File: TDCO50.LS of Disk: V50/Source/Source-Listing-PAL-1
(Source file text)
/TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 1 /TD8E DECTAPE COPY, V50 / / / / / / // / / / / /COPYRIGHT (C) 1972, 1975 /DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. / / / /THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A /SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLU- /SION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANT OTHER /COPIES THEREOF, MAY NOT BR PROVIDED OR OTHERWISE MADE AVAILABLE /TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO /AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE /SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. / / /THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT /NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL /EQUIPMRNT COROPATION. / /DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS /SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. / / / / / / /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 2 /DEFINITIONS FOR PAL8 AND PAL10 7002 BSW=7002 7421 MQL=7421 7501 MQA=7501 7621 CAM=7621 7521 SWP=7521 7701 ACL=7701 6007 CAF=6007 6203 CDI=6203 6030 KCF=6030 6771 SDSS=6771 6772 SDST=6772 6773 SDSQ=6773 6774 SDLC=6774 6775 SDLD=6775 6776 SDRC=6776 6777 SDRD=6777 FIXTAB 7402 HALT=HLT /UNIT NUMBER DEFINITIONS FOR TD8E IOT'S 0770 UNIT01=0770 0760 UNIT23=0760 0750 UNIT45=0750 0740 UNIT67=0740 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 3 7600 LIMIT=7600 0011 *11 000011 0000 X11, 0 000012 0000 X12, 0 /PAGE 0 CONSTANTS AND VARIABLES 0020 *20 000020 0000 INPUT, 0 /INPUT UNIT CONSTANT 000021 0000 OUTPUT, 0 /OUTPUT UNIT CONSTANTS 000022 0000 0 000023 0000 0 000024 0000 0 000025 0000 0 000026 0000 0 000027 0000 0 000030 0000 OCOUNT, 0 /NUMBER OF OUTPUT UNITS SPECIFIED 000031 0000 OPOINT, 0 000032 0020 LIST, OUTPUT-1 000033 0000 OUTNUM, 0 000034 0000 IBLOCK, 0 /STARTING INPUT BLOCK 000035 0000 OBLOCK, 0 /STARTING OUTPUT BLOCK 000036 0000 NUMBER, 0 /NUMBER OF BLOCKS TO TRANSFER 000037 0000 FIELDS, 0 /-(HIGHEST FIELD AVAILABLE) 000040 0000 COUNT, 0 /TEMPORARY COUNTERS 000041 0000 COUNT1, 0 / " 000042 0000 COUNT2, 0 / " 000043 0000 COUNT3, 0 / " 000044 0000 COUNT4, 0 / " 000045 0000 UNIT, 0 /UNIT CONSTANT--THIS TRANSFER 000046 0000 VERF, 0 /VERIFY SWITCH (1=YES,0=NO) 000047 0000 WDCNT, 0 /-(NUMBER OF WORDS PER BLOCK) 000050 0000 RW, 0 /READ/WRITE BIT--THIS TRANSFER 000051 0000 FLD0, 0 /# OF BLOCKS IN FIELD 0 BUFFER 000052 0000 FLDN, 0 /# OF BLOCKS IN FIELD N BUFFER 000053 0000 BUF0, 0 /START OF FIELD 0 BUFFER 000054 0000 BUFN, 0 /START OF FIELD N BUFFER 000055 0000 XNUMB, 0 /# OF BLOCKS LEFT TO TRANSFER 000056 0000 BLOCKN, 0 /STARTING BLOCK NUMBER--THIS TRANSFER 000057 0000 NUMB1, 0 000060 0000 NUMB2, 0 000061 0000 VB, 0 000062 0000 END0, 0 /BEGINNING OF FIELD 0 VERIFY BUFFER 000063 0000 ENTRY, 0 /ENTRY TO TD8E HANDLER 000064 0000 INB, 0 000065 0000 OUTB, 0 000066 0000 OHOLD, 0 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 4 000067 2404 MESSG1, TEXT @TD8E COPY V50@ 000070 7005 000071 4003 000072 1720 000073 3140 000074 2665 000075 6000 000076 4061 MESSG3, TEXT @ 12-BIT WORDS PER BLOCK@ 000077 6255 000100 0211 000101 2440 000102 2717 000103 2204 000104 2340 000105 2005 000106 2240 000107 0214 000110 1703 000111 1300 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 5 0200 *200 000200 6046 START, TLS 000201 4317 JMS CRLF 000202 4577 JMS I [MESSGE 000203 0067 MESSG1 /@TD8E COPY@ 000204 4317 JMS CRLF 000205 3040 DCA COUNT 000206 5576 JMP I [END /ONCE ONLY CODE FOR MULTIPLE FIELD TEST 000207 4336 START1, JMS QUEST 000210 2457 MESSG4 /@FROM UNIT:@ 000211 7521 SWP 000212 4352 JMS UNITNO /MAKE UNIT NUMBER CONSTANT 000213 3020 DCA INPUT 000214 1032 TAD LIST 000215 3031 DCA OPOINT 000216 7410 SKP 000217 4325 AGAIN, JMS ERR4 /*ILLEGAL RESPONSE* 000220 3030 DCA OCOUNT 000221 3040 DCA COUNT 000222 4577 JMS I [MESSGE 000223 2465 MESSG5 /@TO UNITS:@ 000224 4575 MORE2, JMS I [ANSWER 000225 5217 JMP AGAIN 000226 7701 ACL 000227 4352 JMS UNITNO /MAKE UNIT NUMBER CONSTANT 000230 7421 MQL /STORE IN MQ 000231 7501 MQA /RESTORE TO AC 000232 7041 CIA 000233 1020 TAD INPUT 000234 7650 SNA CLA /IS OUTPUT UNIT = INPUT UNIT ? 000235 5225 JMP MORE2+1 /YES--ERROR 000236 2031 ISZ OPOINT 000237 2030 ISZ OCOUNT /COUNT ONE MORE OUTPUT UNIT 000240 1030 TAD OCOUNT 000241 1174 TAD [-10 000242 7710 SPA CLA /WERE MORE THAN 7 UNITS SPECIFIED? 000243 5246 JMP .+3 000244 4317 JMS CRLF /YES--CARRIAGE RETURN 000245 5255 JMP OALL /IGNORE EXTRA ONE 000246 7521 SWP /NO-- 000247 3431 DCA I OPOINT /STORE UNIT CONSTANT IN LIST 000250 1040 TAD COUNT 000251 7041 CIA 000252 1030 TAD OCOUNT 000253 7750 SPA SNA CLA /ALL UNITS IN? 000254 5224 JMP MORE2 /YES /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 6 000255 3040 OALL, DCA COUNT 000256 4577 JMS I [MESSGE 000257 1040 MESSG6 /@FIRST INPUT BLOCK:@ 000260 4575 JMS I [ANSWER 000261 5306 JMP WHOLE /COPY WHOLE TAPE 000262 1040 TAD COUNT 000263 7650 SNA CLA /WERE TOO MANY SPECIFIED? 000264 5271 JMP .+5 000265 4577 JMS I [MESSGE /YES 000266 2511 ERROR4 /@ILLEGAL RESPONSE@ 000267 4317 JMS CRLF 000270 5255 JMP OALL /REPEAT THE QUESTION 000271 7701 ACL /NO 000272 3034 DCA IBLOCK /STORE 000273 4336 JMS QUEST 000274 1052 MESSG7 /@FIRST OUTPUT BLOCK:@ 000275 7701 ACL 000276 3035 DCA OBLOCK 000277 4336 JMS QUEST 000300 1064 MESSG8 /@NUMBER OF BLOCKS TO COPY:@ 000301 7701 ACL 000302 7450 SNA /WERE 0 BLOCKS SPECIFIED? 000303 5345 JMP QUEST1 /YES--REPEAT QUESTION 000304 3036 DCA NUMBER 000305 5311 JMP .+4 000306 3034 WHOLE, DCA IBLOCK 000307 3035 DCA OBLOCK 000310 3036 DCA NUMBER /0 MEANS WHOLE TAPE 000311 4336 JMS QUEST 000312 1101 MESSG9 /@VERIFY OUTPUT (YES=1,NO=0):@ 000313 7701 ACL 000314 0173 AND [7 000315 3046 DCA VERF 000316 5777 JMP I (SETUP /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 7 /OUTPUT CARRIAGE RETURN/LINE FEED 000317 0000 CRLF, 0 000320 1376 TAD (215 000321 4572 JMS I [TYPE 000322 1171 TAD [212 000323 4572 JMS I [TYPE 000324 5717 JMP I CRLF /--RETURN-- 000325 0000 ERR4, 0 000326 4577 JMS I [MESSGE 000327 2511 ERROR4 /@ILLEGAL RESPONSE@ 000330 4317 JMS CRLF /OUTPUT CARRIAGE RETURN/LINE FEED 000331 1170 TAD [-4 000332 1325 TAD ERR4 000333 3325 DCA ERR4 000334 3040 DCA COUNT 000335 5725 JMP I ERR4 /--RETURN-- /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 8 000336 0000 QUEST, 0 000337 1736 TAD I QUEST 000340 3343 DCA MNUM 000341 2336 ISZ QUEST 000342 4577 JMS I [MESSGE 000343 0000 MNUM, 0 000344 4575 JMS I [ANSWER 000345 4325 QUEST1, JMS ERR4 000346 1040 TAD COUNT 000347 7640 SZA CLA 000350 5345 JMP QUEST1 000351 5736 JMP I QUEST /--RETURN-- /CONVERT UNIT NUMBER TO A WORD OF THE FORM /000 XXX XXX 000 OR /100 XXX XXX 000 /WHERE XY0 IS THE THIRD DIGIT OF THE IOT /AND 0 OR 1 REFLECTS THE TD8E UNIT NUMBER /ENTER WITH THE UNIT NUMBER IN THE AC /EXIT WITH SPECIAL CODE IN AC 000352 0000 UNITNO, 0 000353 0173 AND [7 /MASK OUT ALL EXTRANEOUS BITS 000354 7110 CLL RAR /SAVE 0/1 BIT IN LINK 000355 7421 MQL /STORE ROTATED WORD, CLEAR AC 000356 7010 RAR 000357 7521 SWP /PRESERVE 0/1 BIT IN MQ 000360 1365 TAD TABX /GET DEVICE NUMBER CORRECTLY 000361 3317 DCA CRLF 000362 1717 TAD I CRLF 000363 7501 MQA /OR IN 0/1 BIT 000364 5752 JMP I UNITNO /--RETURN-- 000365 2435 TABX, UNITS /SKIP 4 LINES AND FETCH MARK TRACK 000366 0000 SKIPQ, 0 000367 6773 IOTR5, SDSQ 000370 5367 JMP .-1 000371 6776 IOTR6, SDRC 000372 5766 JMP I SKIPQ /--RETURN-- /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 9 000376 0215 000377 0600 0400 *400 /USER RESPONSE HANDLER /USES MQ FOR TEMPORARY STORAGE /EXIT WITH RESPONSE IN MQ /EXIT TO CALL+1 IF JUST CARRIAGE RETURN /OR ILLEGAL CHARACTER, CARRIAGE RETURN /OR ;,CARRIAGE RETURN /EXIT TO CALL+2 IF GOOD DATA, CARRIAGE RETURN /INCREMENT COUNT AND EXIT TO CALL+2 IF GOOD DATA; /ILLEGAL CHARACTERS CAUSE WHOLE ANSWER TO BE IGNORED /AND EXIT TO CALL+1 000400 0000 ANSWER, 0 000401 7621 CAM /CLEAR AC AND MQ 000402 1236 TAD CLEAR 000403 3212 DCA SWITCH 000404 4250 MORE, JMS LISTEN /FETCH A CHARACTER 000405 1377 TAD (-215 000406 7440 SZA /IS IT A CARRIAGE RETURN? 000407 5214 JMP .+5 /NO 000410 1171 TAD [212 /YES--OUTPUT LINE FEED 000411 4327 JMS TYPE 000412 7000 SWITCH, NOP /SET UP EXIT ADDRESS 000413 5600 JMP I ANSWER /--RETURN-- 000414 1376 TAD (215-260 000415 7510 SPA /IS CHARACTER LESS THAN 260? 000416 5240 JMP BAD /YES--ILLEGAL CHARACTER 000417 1174 TAD [260-270 /NO 000420 7500 SMA /IS IT MORE THAN 269? 000421 5243 JMP SEMI /YES--CHECK FOR SEMICOLON 000422 1375 TAD (270 /RESTORE CHARACTER 000423 0173 AND [7 /MASK OUT EXTRANEOUS BITS 000424 7100 CLL 000425 7521 SWP 000426 0374 AND (777 /MASK OUT FIRST DIGIT IF THERE ARE 4 000427 7004 RAL /ROTATE 3 LEFT 000430 7006 RTL 000431 7501 MQA /FETCH NEW CHARACTER 000432 7421 MQL /STORE RESULT IN MQ 000433 1237 TAD SKIP /SET UP TO SKIP ON RETURN 000434 3212 DCA SWITCH 000435 5204 JMP MORE /FETCH ANOTHER /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 10 000436 7000 CLEAR, NOP 000437 2200 SKIP, ISZ ANSWER 000440 7200 BAD, CLA /ILLEGAL CHARACTER 000441 4567 JMS I [CRLF 000442 5600 JMP I ANSWER /--RETURN-- /TEST FOR SEMICOLON 000443 1373 SEMI, TAD (270-273 000444 7640 SZA CLA /IS CHARACTER A SEMICOLON? 000445 5240 JMP BAD /NO--ILLEGAL CHARACTER 000446 2040 ISZ COUNT /YES--INCREMENT COUNTER 000447 5212 JMP SWITCH /EXIT FROM ANSWER ROUTINE /TELETYPE INPUT AND ECHO HANDLER 000450 0000 LISTEN, 0 000451 6031 KSF 000452 5251 JMP .-1 000453 4566 JMS I [PARITY 000454 6046 TLS /ECHO CHARACTER 000455 4257 JMS CHECK /CHECK FOR CTRL/C AND CTRL/S 000456 5650 JMP I LISTEN /--RETURN-- /CHECK FOR CTRL/C AND CTRL/S /ENTER WITH INPUT CHARACTER IN AC /EXIT TO HANDLER OR WITH CHARACTER IN AC 000457 0000 CHECK, 0 000460 1372 TAD (-203 000461 7450 SNA /IS IT CTRL/C? 000462 5670 JMP I CTRLC /YES--HANDLE IT 000463 1371 TAD (203-223 000464 7450 SNA /IS IT CTRL/S? 000465 5565 JMP I [REPEAT /YES--HANDLE IT 000466 1370 TAD (223 /RESTORE CHARACTER 000467 5657 JMP I CHECK /--RETURN-- 000470 7600 CTRLC, LIMIT /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 11 /MESSAGE OUTPUT HANDLER /EXPECTS MESSAGE ADDRESS TO BE IN LOCATION AFTER CALL /EXITS TO CALL+2 000471 0000 MESSGE, 0 000472 1671 TAD I MESSGE 000473 3324 DCA FINDER /SET UP POINTER 000474 2271 ISZ MESSGE 000475 3325 DCA LOC /SET L/R SWITCH TO L (EVEN) 000476 1724 LNEXT, TAD I FINDER /GET WORD 000477 7002 BSW 000500 0164 RHALF, AND [77 000501 7450 SNA /IS CHARACTER 0 (TERMINATOR)? 000502 5671 JMP I MESSGE /YES--RETURN-- 000503 3326 DCA CHAR 000504 1326 TAD CHAR 000505 0367 AND (40 000506 7650 SNA CLA /IS IT A LETTER? 000507 1163 TAD [100 /YES--301-337 000510 1162 TAD [200 /NO--240-277 000511 1326 TAD CHAR /RESTORE CHARACTER 000512 4327 JMS TYPE /OUTPUT IT 000513 2325 ISZ LOC 000514 1325 TAD LOC 000515 7010 RAR 000516 7630 SZL CLA /WHICH HALF WAS THAT? 000517 5322 JMP .+3 000520 2324 ISZ FINDER /RIGHT 000521 5276 JMP LNEXT 000522 1724 TAD I FINDER /LEFT 000523 5300 JMP RHALF 000524 0000 FINDER, 0 000525 0000 LOC, 0 000526 0000 CHAR, 0 /TELETYPE OUTPUT ROUTINE 000527 0000 TYPE, 0 000530 6041 TSF 000531 5330 JMP .-1 000532 6046 TLS 000533 7200 CLA 000534 5727 JMP I TYPE /--RETURN-- /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 12 /INSERT IOT'S ACCORDING TO TABLES /UNIT CONTAINS APPROPRIATE UNIT CODE /COUNT CONTAINS -(NUMBER OF IOT'S TO TRANSFER) /COUNT1 CONTAINS ADDRESS OF ADDRESS TABLE /UNIT CONTAINS UNIT CODE OF CURRENT UNIT 000535 0000 INSERT, 0 000536 1441 TAD I COUNT1 000537 3043 DCA COUNT3 000540 1045 TAD UNIT 000541 7421 MQL 000542 1443 TAD I COUNT3 /MAKE NEW IOT 000543 0366 AND (7007 000544 7501 MQA 000545 7041 CIA 000546 1443 TAD I COUNT3 /COMPARE WITH IOT FROM PROGRAM 000547 7650 SNA CLA /ARE THE IOT'S THE SAME AS THE LAST UNIT? 000550 5735 JMP I INSERT /YES--RETURN-- 000551 1441 INS1, TAD I COUNT1 000552 3043 DCA COUNT3 000553 1443 TAD I COUNT3 /GET IOT FROM PROGRAM 000554 0366 AND (7007 /RETAIN ONLY SIGNIFICANT BITS 000555 7501 MQA /OR IN UNIT NUMBER 000556 3443 DCA I COUNT3 /PUT IT IN PROGRAM 000557 2041 ISZ COUNT1 /BUMP COUNTERS 000560 2040 ISZ COUNT /DONE YET? 000561 5351 JMP INS1 /NO 000562 5735 JMP I INSERT /YES--RETURN-- 000566 7007 000567 0040 000570 0223 000571 7760 000572 7575 000573 7775 000574 0777 000575 0270 000576 7735 000577 7563 0600 PAGE /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 13 /COUNT THE NUMBER OF WORDS PER BLOCK /PLACE IT IN MWORDS /BE SURE ALL TAPES MATCH INPUT FORMAT 000600 1032 SETUP, TAD LIST 000601 3031 DCA OPOINT /SET POINTER TO I/O LIST 000602 3042 DCA COUNT2 /CLEAR COUNTER 000603 1030 TAD OCOUNT 000604 7040 CMA 000605 3033 DCA OUTNUM /SET # OF UNITS 000606 1377 SET4, TAD (TABLE1-END1-1 /SET UP COUNTERS FOR IOT FIX 000607 3040 DCA COUNT 000610 1376 TAD (TABLE1 000611 3041 DCA COUNT1 000612 1431 TAD I OPOINT 000613 3045 DCA UNIT 000614 4561 JMS I [INSERT /PUT THE PROPER IOT'S IN THE FOLLOWING ROUTINE 000615 3047 DCA WDCNT /CLEAR WORD COUNT 000616 1045 TAD UNIT 000617 0160 AND [4000 000620 1375 TAD (2000 000621 6774 IOTX7, SDLC 000622 7200 CLA 000623 6776 IOTX8, SDRC 000624 7006 RTL 000625 7430 SZL /DOES UNIT EXIST? 000626 5231 JMP .+3 /YES 000627 4557 SELERR, JMS I [ERR3 /@SELECT ERROR UNIT N@ 000630 5200 JMP SETUP 000631 0374 AND (400 000632 7640 SZA CLA /TURNED ON? 000633 5227 JMP SELERR /NO 000634 1045 TAD UNIT /GET 0 OR 1 UNIT BIT (0 OR 4000) 000635 0160 AND [4000 000636 1156 TAD [1000 /GET GO BIT 000637 6774 IOTX1, SDLC /START READING FORWARD 000640 4353 JMS SKIP4 /SKIP 8 LINES TO AVOID GARBAGE 000641 4353 JMS SKIP4 000642 6771 IOTX3, SDSS /LOOK FOR FORWARD BLOCK NUMBER (26) 000643 5242 JMP .-1 000644 6776 IOTX4, SDRC 000645 0164 AND [77 000646 1373 TAD (-26 000647 7640 SZA CLA /FOUND YET? 000650 5242 JMP IOTX3 /NO--KEEP LOOKING /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 14 000651 4353 SET2, JMS SKIP4 /YES--START COUNTING LINES BY FOURS 000652 2047 ISZ WDCNT 000653 7000 NOP 000654 0164 AND [77 000655 1372 TAD (-51 000656 7640 SZA CLA /FOUND GUARD YET? 000657 5251 JMP SET2 /NO 000660 1045 TAD UNIT /YES 000661 0160 AND [4000 000662 6774 IOTX2, SDLC /STOP UNIT 000663 7200 CLA 000664 1042 TAD COUNT2 000665 7440 SZA /IS THIS THE INPUT UNIT? 000666 5274 JMP SET5 /NO 000667 1371 TAD (-11 /YES--SAVE THE COUNT 000670 1047 TAD WDCNT 000671 7041 CIA 000672 3042 DCA COUNT2 000673 5300 JMP SET3 /FIRST OUTPUT UNIT 000674 1371 SET5, TAD (-11 /NOT INPUT UNIT 000675 1047 TAD WDCNT 000676 7640 SZA CLA /SAME NUMBER OF WORDS AS INPUT UNIT? 000677 5344 JMP ERR5 /NO*ILLEGAL FORMAT* 000700 2031 SET3, ISZ OPOINT /NEXT UNIT 000701 2033 ISZ OUTNUM /DONE YET? 000702 5206 JMP SET4 /NO 000703 1042 TAD COUNT2 /YES--PRINT MESSAGE 000704 3555 DCA I [MWORDS /SET UP NUMBER OF WORDS PER BLOCK 000705 1555 TAD I [MWORDS 000706 7041 CIA 000707 4554 JMS I [PRINT /PRINT 4 DIGIT NUMBER OF BLOCKS 000710 4577 JMS I [MESSGE /YES--PRINT REST OF MESSAGE 000711 0076 MESSG3 000712 4567 JMS I [CRLF /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 15 /IF WHOLE TAPE IS TO BE COPIED, IT IS NECESSARY TO /COMPUTE THE NUMBER OF BLOCKS ON THE TAPE (NB) /USING THE NUMBER OF WORDS PER BLOCK (WB) /AND THE FORMULA: /OCTAL: NB=[63 6160/(WB+17)]+2 /DECIMAL: NB=[212,080/(WB+15)]+2 000713 1036 TAD NUMBER 000714 7640 SZA CLA /COPY WHOLE TAPE? 000715 5770' JMP VERFQ /NO-- 000716 3040 DCA COUNT /YES--COMPUTE NUMBER OF BLOCKS ON TAPE 000717 1555 TAD I [MWORDS 000720 7041 CIA 000721 1367 TAD (17 000722 3041 DCA COUNT1 /GET NUMBER OF WORDS PER BLOCK+17 000723 1366 TAD (-64 000724 3042 DCA COUNT2 000725 1365 TAD (-6160 000726 7100 SUB, CLL 000727 1041 TAD COUNT1 000730 2040 ISZ COUNT /COUNT A BLOCK--TOO MANY? 000731 7410 SKP /NO 000732 5344 JMP ERR5 /YES--ERROR 000733 7430 SZL 000734 2042 ISZ COUNT2 000735 5326 JMP SUB 000736 7300 CLA CLL 000737 1040 TAD COUNT /COUNT IS [63 6160/WB+17]+1 000740 7001 IAC /ADD 1 MORE 000741 3036 DCA NUMBER /STORE AS # OF BLOCKS TO TRANSFER 000742 5743 JMP I .+1 000743 1000 VERFQ 000744 7200 ERR5, CLA 000745 4577 JMS I [MESSGE 000746 2472 ERROR5 /*ILLEGAL FORMAT UNIT* 000747 4553 JMS I [DECODE /PRINT UNIT NUMBER 000750 4552 JMS I [CTRLR /WAIT FOR CTRL/R 000751 4567 JMS I [CRLF /CARRIAGE RETURN/LINE FEED 000752 5200 JMP SETUP /TRY AGAIN /READ FOUR LINES AND FETCH MARK TRACK 000753 0000 SKIP4, 0 000754 6773 IOTX5, SDSQ 000755 5354 JMP .-1 000756 6776 IOTX6, SDRC 000757 5753 JMP I SKIP4 /--RETURN-- /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 15-1 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 16 000765 1620 000766 7714 000767 0017 000770 1000 000771 7767 000772 7727 000773 7752 000774 0400 000775 2000 000776 2447 000777 7770 1000 PAGE /IS TAPE TO BE VERIFIED? /SET UP DEPENDING ON RESPONSE 001000 1046 VERFQ, TAD VERF 001001 7640 SZA CLA /VERIFY? 001002 5210 JMP YES /YES-- 001003 1377 TAD (NOP /NO-- 001004 3616 DCA I VERF1A 001005 1376 TAD (OUTN 001006 3617 DCA I VERF2A 001007 5214 JMP CONT 001010 1375 YES, TAD (RAR 001011 3616 DCA I VERF1A 001012 1374 TAD (VERIFY 001013 3617 DCA I VERF2A 001014 5615 CONT, JMP I .+1 001015 1200 DOIT 001016 1311 VERF1A, VERF1 001017 1274 VERF2A, VERF2 /WAIT FOR CTRL/R 001020 0000 CTRLR, 0 001021 4551 JMS I [LISTEN /FETCH CHARACTER 001022 1150 TAD [-222 001023 7640 SZA CLA /IT IT CTRL/R? 001024 5221 JMP .-3 /NO--WAIT FOR ONE 001025 4567 JMS I [CRLF /CARRIAGE RETURN/LINE FEED 001026 5620 JMP I CTRLR /--RETURN-- 001027 3040 REPEAT, DCA COUNT 001030 4567 JMS I [CRLF 001031 4547 JMS I [QUEST /@REPEAT (YES=1;NO=0):@ 001032 1122 MESS11 001033 7701 ACL 001034 0173 AND [7 001035 7640 SZA CLA 001036 5546 JMP I [CLEAN /YES /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 16-1 001037 5545 JMP I [START+4 /NO--RESTART /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 17 001040 0611 MESSG6, TEXT @FIRST INPUT BLOCK:@ 001041 2223 001042 2440 001043 1116 001044 2025 001045 2440 001046 0214 001047 1703 001050 1372 001051 0000 001052 0611 MESSG7, TEXT @FIRST OUTPUT BLOCK:@ 001053 2223 001054 2440 001055 1725 001056 2420 001057 2524 001060 4002 001061 1417 001062 0313 001063 7200 001064 1625 MESSG8, TEXT @NUMBER OF BLOCKS TO COPY:@ 001065 1502 001066 0522 001067 4017 001070 0640 001071 0214 001072 1703 001073 1323 001074 4024 001075 1740 001076 0317 001077 2031 001100 7200 001101 2605 MESSG9, TEXT @VERIFY OUTPUT (YES=1,NO=0):@ 001102 2211 001103 0631 001104 4017 001105 2524 001106 2025 001107 2440 001110 5031 001111 0523 001112 7561 001113 5416 001114 1775 001115 6051 001116 7200 001117 0417 MESS10, TEXT @DONE@ 001120 1605 001121 0000 001122 2205 MESS11, TEXT @REPEAT (YES=1,NO=0):@ 001123 2005 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 17-1 001124 0124 001125 4050 001126 3105 001127 2375 001130 6154 001131 1617 001132 7560 001133 5172 001134 0000 001135 2605 ERROR1, TEXT @VERIFY ERROR BLOCK @ 001136 2211 001137 0631 001140 4005 001141 2222 001142 1722 001143 4002 001144 1417 001145 0313 001146 4000 001147 2401 ERROR2, TEXT @TAPE ERROR BLOCK @ 001150 2005 001151 4005 001152 2222 001153 1722 001154 4002 001155 1417 001156 0313 001157 4000 001160 2305 ERROR3, TEXT @SELECT ERROR UNIT @ 001161 1405 001162 0324 001163 4005 001164 2222 001165 1722 001166 4025 001167 1611 001170 2440 001171 0000 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 18 001174 1400 001175 7010 001176 1246 001177 7000 1200 PAGE /SETUP FOR ACTUAL READ/WRITE/VERIFY OPERATION 001200 1144 DOIT, TAD [LIMIT-END /SET UP NUMBER OF BLOCKS 001201 4275 JMS DIV1 /IN FIELD 0 BUFFER 001202 3051 DCA FLD0 001203 1371 TAD M200 001204 4275 JMS DIV1 /AND IN FIELD N BUFFERS 001205 3052 DCA FLDN 001206 1034 TAD IBLOCK /SET UP RUNNING COUNTERS AND POINTERS 001207 3064 DCA INB /FOR NEXT INPUT BLOCK 001210 1035 TAD OBLOCK 001211 3065 DCA OUTB /FOR NEXT OUTPUT BLOCK 001212 1036 TAD NUMBER 001213 3057 DCA NUMB1 /FOR NUMBER OF BLOCKS LEFT TO TRANSFER 001214 5220 JMP .+4 001215 1055 ALLDUN, TAD XNUMB 001216 7650 SNA CLA /DONE WITH ALL BLOCKS YET? 001217 5313 JMP REWIND /YES /READ--- 001220 1032 READX, TAD LIST /NO--SET UP POINTER TO OUTPUT UNITS 001221 3031 DCA OPOINT 001222 1030 TAD OCOUNT 001223 7040 CMA 001224 3033 DCA OUTNUM 001225 1064 TAD INB 001226 3056 DCA BLOCKN 001227 1057 TAD NUMB1 /SET POINTERS FOR TRANSFER 001230 3055 DCA XNUMB 001231 1057 TAD NUMB1 001232 3060 DCA NUMB2 /SAVE COUNTER FOR WRITE 001233 1020 TAD INPUT /SELECT INPUT UNIT 001234 3045 DCA UNIT 001235 3050 DCA RW /SET R/W BIT TO READ /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 19 001236 1176 TAD [END /SET START OF BUFFERS IN CASE 001237 3053 DCA BUF0 /THEY WERE CHANGED BY VERIFY 001240 3054 DCA BUFN 001241 4543 JMS I [READY /FILL THE BUFFERS 001242 1055 TAD XNUMB /SAVE THE POINTERS 001243 3057 DCA NUMB1 001244 1056 TAD BLOCKN 001245 3064 DCA INB 001246 2031 OUTN, ISZ OPOINT 001247 2033 ISZ OUTNUM /DONE WITH ALL UNITS YET? 001250 5254 JMP .+4 /NO--CONTINUE WRITING 001251 1066 TAD OHOLD /YES 001252 3065 DCA OUTB 001253 5215 JMP ALLDUN /READ ANOTHER BUFFER LOAD 001254 1065 WRITEX, TAD OUTB 001255 3066 DCA OHOLD 001256 1066 TAD OHOLD /WRITE 001257 3056 DCA BLOCKN /RESET POINTERS 001260 1065 TAD OUTB 001261 3061 DCA VB /SAVE COUNTER FOR VERIFY 001262 1060 TAD NUMB2 001263 3055 DCA XNUMB 001264 1431 TAD I OPOINT /SELECT OUTPUT UNIT 001265 3045 DCA UNIT 001266 7330 CLA CLL CML RAR /AC=4000 001267 3050 DCA RW /SET R/W BIT TO WRITE 001270 4543 JMS I [READY 001271 1056 TAD BLOCKN 001272 3066 DCA OHOLD 001273 5674 JMP I .+1 001274 1400 VERF2, VERIFY /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 20 /SEE HOW MANY BLOCKS WILL FIT INTO BUFFER /ENTER WITH BUFFER SIZE IN AC /EXIT WITH # OF BLOCKS IN AC 001275 0000 DIV1, 0 001276 3041 DCA COUNT1 001277 3040 DCA COUNT 001300 1041 TAD COUNT1 /TOTAL WORDS 001301 7100 DIV2, CLL 001302 1555 TAD I [MWORDS /-NUMBER OF WORDS PER BLOCK 001303 7420 SNL /RUN OUT OF ROOM? 001304 5307 JMP .+3 /YES-- 001305 2040 ISZ COUNT /NO--COUNT A BLOCK 001306 5301 JMP DIV2 001307 7300 CLA CLL /IGNORE LESS THAN A BLOCK LEFT 001310 1040 TAD COUNT 001311 7010 VERF1, RAR /DIVIDE BY 2 IF VERIFY (NOP IF NO VERIFY) 001312 5675 JMP I DIV1 /--RETURN-- /END OF OPERATION /REWIND TAPES TO INITIAL END ZONE 001313 1030 REWIND, TAD OCOUNT 001314 7040 CMA 001315 3042 DCA COUNT2 /SET NUMBER OF TAPES STILL SPINNING 001316 7240 RLIST, CLA CMA 001317 1032 TAD LIST 001320 3031 DCA OPOINT /SET POINTER TO UNIT LIST 001321 1030 TAD OCOUNT 001322 7001 IAC 001323 7040 CMA 001324 3033 DCA OUTNUM /SET NUMBER OF UNITS IN LIST 001325 4566 RUNIT, JMS I [PARITY 001326 4542 JMS I [CHECK /CHECK TTY FOR CTRL/S OR CTRL/C 001327 2033 ISZ OUTNUM /DONE WITH WHOLE LIST YET? 001330 7610 SKP CLA /NO 001331 5316 JMP RLIST /YES--START THROUGH LIST AGAIN 001332 2031 ISZ OPOINT 001333 1431 TAD I OPOINT /GET UNIT CODE 001334 7006 RTL 001335 7630 SZL CLA /STILL SPINNING? 001336 5325 JMP RUNIT /NO--TRY NEXT TAPE 001337 1431 TAD I OPOINT /YES 001340 3045 DCA UNIT /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 21 001341 1141 TAD [-6 001342 3040 DCA COUNT 001343 1140 TAD [RTAB 001344 3041 DCA COUNT1 001345 4561 JMS I [INSERT /PUT PROPER IOT'S IN THIS ROUTINE 001346 1431 TAD I OPOINT 001347 0160 AND [4000 /UNIT/READ 001350 1137 TAD [3000 /REVERSE/GO 001351 6774 IOTR1, SDLC 001352 4536 JMS I [SKIPQ 001353 4536 JMS I [SKIPQ /WAIT FOR DRIVE TO GET UP TO SPEED 001354 6771 IOTR2, SDSS 001355 5354 JMP .-1 001356 6776 IOTR3, SDRC /GET MARK TRACK BITS 001357 0164 AND [77 001360 1135 TAD [-22 001361 7640 SZA CLA /END ZONE? 001362 5354 JMP IOTR2 /NO INTERLEAVE, SEQUENTIAL DRIVES WVDMARK/JMP RUNIT /NO--NEXT UNIT 001363 7332 CLA CLL CML RTR /AC=2000 001364 7501 MQA /UNIT CODE STILL IN MQ FROM INSERT 001365 3431 DCA I OPOINT /SET STOPPED BIT 001366 1431 TAD I OPOINT 001367 0134 AND [6000 001370 6774 IOTR4, SDLC /STOP UNIT 001371 7600 M200, 7600 /CLA 001372 2042 ISZ COUNT2 /ALL TAPES STOPPED? 001373 5325 JMP RUNIT /NO--NEXT UNIT 001374 4577 JMS I [MESSGE /YES 001375 1117 MESS10 /@DONE@ 001376 5565 JMP I [REPEAT /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 22 1400 PAGE /VERIFICATION ROUTINES 001400 1061 VERIFY, TAD VB /SET POINTERS AND COUNTERS FOR TRANSFER 001401 3056 DCA BLOCKN 001402 1060 TAD NUMB2 001403 3055 DCA XNUMB 001404 3050 DCA RW 001405 1062 TAD END0 /SET BEGINNINGS OF VERIFY BUFFERS 001406 3053 DCA BUF0 001407 1377 TAD (3700 001410 3054 DCA BUFN 001411 1275 TAD CDF0 001412 3271 DCA COMP2 001413 4543 JMS I [READY /READ VERIFY BUFFERS FULL 001414 1041 TAD COUNT1 /GET # OF BLOCKS IN LAST BUFFER FILLED 001415 3043 DCA COUNT3 001416 7040 CMA /SET AUTOINDEX POINTERS TO BUFFERS 001417 1176 TAD [END 001420 3011 DCA X11 001421 7140 CMA CLL 001422 1062 TAD END0 001423 3012 DCA X12 001424 1040 TAD COUNT 001425 7040 CMA 001426 1037 TAD FIELDS 001427 3040 DCA COUNT /SET NUMBER OF FIELDS WHICH WERE FILLED 001430 4255 JMS COMP4 /GET NUMBER OF BLOCKS 001431 1051 TAD FLD0 001432 7041 CIA 001433 3044 DCA COUNT4 /SET COUNTER 001434 4266 JMS COMP /COMPARE THE BUFFERS /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 23 001435 1040 COMP3, TAD COUNT 001436 7650 SNA CLA 001437 5533 JMP I [OUTN 001440 4255 JMS COMP4 /GET NUMBER OF BLOCKS 001441 1052 TAD FLDN 001442 7041 CIA 001443 3044 DCA COUNT4 001444 1271 TAD COMP2 /EACH FIELD------ 001445 1376 TAD (10 001446 3271 DCA COMP2 /SET CDF INSTRUCTION PROPERLY 001447 7140 CMA CLL /SET AUTOINDEX POINTERS TO BUFFERS 001450 3011 DCA X11 001451 1375 TAD (3677 001452 3012 DCA X12 001453 4266 JMS COMP 001454 5235 JMP COMP3 /DO THE NEXT FIELD /ENTER WITH AC CLEAR /EXIT TO CALL+1 WITH AC CLEAR IF /NORMAL BUFFER FILL /EXIT TO CALL+2 WITH # OF BLOCKS IN AC IF /LAST BUFFER 001455 0000 COMP4, 0 001456 2040 ISZ COUNT /LAST FIELD FILLED? 001457 5655 JMP I COMP4 /NO--RETURN-- 001460 1055 TAD XNUMB /YES--OUT OF BLOCKS? 001461 7640 SZA CLA 001462 5655 JMP I COMP4 /NO--RETURN-- 001463 1043 TAD COUNT3 /YES--GET ACTUAL # OF BLOCKS 001464 2255 ISZ COMP4 /INCREMENT RETURN ADDRESS 001465 5655 JMP I COMP4 /--RETURN-- /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 24 /COMPARE PORTION OF VERIFY ROUTINE 001466 0000 COMP, 0 001467 1555 TAD I [MWORDS /SET NUMBER OF WORDS PER BLOCK COUNTER 001470 3042 DCA COUNT2 001471 7402 COMP2, HALT /SHOULD CONTAIN CDF N 001472 1411 TAD I X11 /GET CORRESPONDING WORDS FROM EACH BUFFER 001473 7041 CIA 001474 1412 TAD I X12 001475 6201 CDF0, CDF 0 001476 7640 SZA CLA /DO WORDS MATCH? 001477 5305 JMP ERR1 /NO--VERIFY ERROR 001500 2042 TRY, ISZ COUNT2 /DONE WITH BLOCK? 001501 5271 JMP COMP2 /NO--CONTINUE 001502 2044 ISZ COUNT4 /DONE WITH ALL BLOCKS? 001503 5267 JMP COMP+1 /NO 001504 5666 JMP I COMP /YES--RETURN-- 001505 4577 ERR1, JMS I [MESSGE 001506 1135 ERROR1 /*VERIFY ERROR BLOCK * 001507 1044 TAD COUNT4 /GET CURRENT BLOCK NUMBER 001510 7041 CIA 001511 1774 TAD I (BLOCKS /FROM BLOCK THIS OPERATION STARTED WITH 001512 4331 JMS PRINT /PRINT 4 DIGIT BLOCK NUMBER 001513 4577 JMS I [MESSGE 001514 2505 ERROR6 /*UNIT * 001515 4553 JMS I [DECODE /PRINT UNIT NUMBER 001516 4551 WAIT, JMS I [LISTEN /WAIT FOR RESPONSE 001517 3331 DCA PRINT 001520 4567 JMS I [CRLF 001521 1331 TAD PRINT 001522 1132 TAD [-224 001523 7450 SNA /WAS IT CTRL/T? 001524 5531 JMP I [WRITEX /YES--TRY AGAIN 001525 1130 TAD [2 001526 7640 SZA CLA /WAS IT CTRL/R? 001527 5316 JMP WAIT /NO--WAIT FOR A GOOD RESPONSE 001530 5300 JMP TRY /YES--IGNORE AND CONTINUE /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 25 /PRINT A 4 DIGIT OCTAL NUMBER /ENTER WITH NUMBER IN AC 001531 0000 PRINT, 0 001532 3577 DCA I [MESSGE /TEMPORARY STORAGE 001533 1170 TAD [-4 001534 3575 DCA I [ANSWER /SET DIGIT COUNTER 001535 1577 TAD I [MESSGE 001536 7004 RAL 001537 3567 DCA I [CRLF 001540 1567 FOUR, TAD I [CRLF 001541 7004 RAL 001542 7006 RTL 001543 3567 DCA I [CRLF 001544 1567 TAD I [CRLF 001545 0173 AND [7 001546 1127 TAD [260 001547 4572 JMS I [TYPE /PRINT ONE DIGIT 001550 2575 ISZ I [ANSWER /DONE YET? 001551 5340 JMP FOUR /NO 001552 5731 JMP I PRINT /YES--RETURN-- /CLEAN UP UNIT TABLES AFTER REWIND 001553 1032 CLEAN, TAD LIST 001554 3031 DCA OPOINT 001555 1030 TAD OCOUNT 001556 7040 CMA 001557 3033 DCA OUTNUM /SET POINTER AND COUNTER 001560 1431 CLEAN1, TAD I OPOINT /GET UNIT CODE 001561 0373 AND (4770 /MASK OUT EXTRANEOUS BITS 001562 3431 DCA I OPOINT /REPLACE IT 001563 2031 ISZ OPOINT 001564 2033 ISZ OUTNUM /DONE YET? 001565 5360 JMP CLEAN1 /NO 001566 5526 JMP I [DOIT /YES--NEXT OPERATION /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 26 001573 4770 001574 1715 001575 3677 001576 0010 001577 3700 1600 PAGE /FILL ALL N FIELDS ONCE /ENTER WITH AC CLEAR /# OF BLOCKS FOR FIELD 0 IN FLD0 /# OF BLOCKS FOR OTHERS IN FLDN /ADDRESSES OF BUFFERS IN BUF0, BUFN /R/W BIT (0 OR 4000) IN RW 001600 0000 READY, 0 001601 1125 TAD [IOTLOC-TABEND-1 001602 3040 DCA COUNT 001603 1124 TAD [IOTLOC 001604 3041 DCA COUNT1 001605 4561 JMS I [INSERT /PUT PROPER IOT'S IN HANDLER 001606 1045 TAD UNIT 001607 7710 SPA CLA /EVEN OR ODD UNIT NUMBER? 001610 7107 CLL IAC RTL /ODD 001611 1123 TAD [ORIGIN /EVEN 001612 3063 DCA ENTRY /SET UP ENTRY TO HANDLER 001613 1050 TAD RW 001614 7421 MQL /STORE UNIT BIT FOR LATER 001615 7040 CMA 001616 1037 TAD FIELDS /SET COUNTER FOR # OF FIELDS 001617 3040 DCA COUNT 001620 7100 CLL 001621 1051 TAD FLD0 /ADJUST NUMBER OF BLOCKS TO 001622 4257 JMS SUB1 /TRANSFER DEPENDING ON NUMBER 001623 1051 TAD FLD0 /LEFT TO BE TRANSFERRED 001624 4266 JMS SUB2 /RESET FUNCTION WORD 001625 1053 TAD BUF0 /SET UP BUFFER POINTERS 001626 4277 JMS SUB3 001627 4307 JMS TRANS /TRANSFER DATA--FIELD 0 001630 2040 ZOOM, ISZ COUNT /BEGINNING OF LOOP FOR EACH FIELD ABOVE 0 001631 7410 SKP /DONE YET? 001632 5600 JMP I READY /YES--RETURN-- /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 27 001633 1037 TAD FIELDS 001634 7141 CIA CLL 001635 1040 TAD COUNT 001636 7001 IAC 001637 7004 RAL 001640 7006 RTL /GET FIELD SETTING READY 001641 7421 MQL /STORE IN MQ 001642 1313 TAD FUNCTN /GET PREVIOUS FUNCTION WORD 001643 0160 AND [4000 /GET R/W BIT 001644 7501 MQA /OR IN FIELD SETTING 001645 7421 MQL /STORE 001646 7100 CLL 001647 1052 TAD FLDN /ADJUST NUMBER OF BLOCKS TO TRANSFER 001650 4257 JMS SUB1 001651 1052 TAD FLDN 001652 4266 JMS SUB2 /AND RESET FUNCTION WORD 001653 1054 TAD BUFN 001654 4277 JMS SUB3 /SET UP BUFFER POINTERS 001655 4307 JMS TRANS /TRANSFER DATA--FIELDS 1-N 001656 5230 JMP ZOOM /FILL ANOTHER FIELD 001657 0000 SUB1, 0 001660 7041 CIA 001661 1055 TAD XNUMB 001662 7120 CLL CML /SET LINK=1 001663 7500 SMA /ARE THERE LESS BLOCKS LEFT THAN A FIELD FULL? 001664 3055 DCA XNUMB /NO--REDUCE COUNT OF BLOCKS LEFT 001665 5657 JMP I SUB1 /YES-TRANSFER BLOCKS LEFT--RETURN-- 001666 0000 SUB2, 0 001667 3041 DCA COUNT1 /LINK=1 IF BLOCKS LEFT, 0 IF NONE 001670 7420 SNL /DONE WITH ALL BLOCKS YET? 001671 3055 DCA XNUMB /YES--BUMP SWITCH 001672 1041 TAD COUNT1 /NO 001673 7002 BSW 001674 7501 MQA /PUT # OF BLOCKS INTO FUNCTION WORD 001675 3313 DCA FUNCTN /START REVERSE 001676 5666 JMP I SUB2 /--RETURN-- /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 28 001677 0000 SUB3, 0 001700 3314 DCA BUFADD 001701 1056 TAD BLOCKN /SET STARTING BLOCK NUMBER 001702 3315 DCA BLOCKS 001703 1041 TAD COUNT1 001704 1056 TAD BLOCKN 001705 3056 DCA BLOCKN /RESET STARTING BLOCK FOR NEXT TIME 001706 5677 JMP I SUB3 /--RETURN-- /CALL TO THE HANDLER 001707 0000 TRANS, 0 001710 4566 JMS I [PARITY /CHECK TELETYPE 001711 4542 JMS I [CHECK /WAS ^C OR ^S TYPED? 001712 4463 JMS I ENTRY 001713 0000 FUNCTN, 0 /FUNCTION WORD 001714 0000 BUFADD, 0 /BUFFER ADDRESS 001715 0000 BLOCKS, 0 /STARTING BLOCK NUMBER 001716 5330 JMP ERR /ERROR RETURN 001717 4566 JMS I [PARITY /CHECK TELETYPE 001720 4542 JMS I [CHECK /WAS ^C OR ^S TYPED? 001721 7200 CLA 001722 1055 TAD XNUMB 001723 7640 SZA CLA /DONE YET? 001724 5707 JMP I TRANS /NO--RETURN-- 001725 2040 ISZ COUNT 001726 5600 JMP I READY /--RETURN-- 001727 5600 JMP I READY /--RETURN-- /TRANSFER ERROR HANDLER 001730 7650 ERR, SNA CLA /FATAL ERROR? 001731 5343 JMP SELECT /NO 001732 4577 JMS I [MESSGE /YES 001733 1147 ERROR2 /*TAPE ERROR BLOCK * 001734 1777 TAD I (BLOCK 001735 4554 JMS I [PRINT /PRINT BLOCK NUMBER 001736 4577 JMS I [MESSGE 001737 2505 ERROR6 /*UNIT * 001740 4354 JMS DECODE /PRINT UNIT NUMBER 001741 4567 JMS I [CRLF 001742 5522 JMP I [REWIND 001743 4346 SELECT, JMS ERR3 001744 2313 ISZ FUNCTN /TURN AROUND AND TRY AGAIN 001745 5312 JMP FUNCTN-1 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 29 001746 0000 ERR3, 0 001747 4577 JMS I [MESSGE 001750 1160 ERROR3 /*SELECT ERROR UNIT * 001751 4354 JMS DECODE /PRINT UNIT NUMBER 001752 4776' JMS CTRLR /WAIT FOR CTRL/R 001753 5746 JMP I ERR3 /--RETURN-- /DECODE UNIT NUMBER FOR PRINTING /PRINT UNIT NUMBER BEFORE RETURNING 001754 0000 DECODE, 0 001755 7100 CLL 001756 1045 TAD UNIT 001757 7004 RAL 001760 7421 MQL /SAVE ROTATED CODE IN MQ 001761 7004 RAL 001762 7521 SWP /SAVE EVEN/ODD BIT IN MQ 001763 7010 RAR /WORK ON IOT CODE 001764 7012 RTR 001765 7001 IAC 001766 7040 CMA 001767 0173 AND [7 001770 7501 MQA /INCLUDE EVEN/ODD BIT 001771 1127 TAD [260 /MAKE ASCII DIGIT 001772 4572 JMS I [TYPE 001773 5754 JMP I DECODE /--RETURN-- 001776 1020 001777 2004 2000 PAGE /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 30 /TD8E DECTAPE HANDLER /SLIGHTLY MODIFIED VERSION OF DEC-E8-UZTA-D /COPYRIGHT 1971 DIGITAL EQUIPMENT CORPORATION / MAYNARD, MASSACHUSETTS 01754 /THE CALLING SEQUENCE IS: / JMS ENTRY / FUNCTION WORD / BUFFER ADDRESS / STARTING BLOCK / ERROR RETURN / NORMAL RETURN (AC CLEAR) /FUNCTION WORD: / BIT 0: 0=READ, 1=WRITE / BITS 1-5: # OF BLOCKS TO BE TRANSFERRED / BITS 6-8: FIELD OF BUFFER AREA / BITS 9-10: UNUSED / BIT 11: 1=START FORWARD, 0=START REVERSE /ERRORS: /THE HANDLER DETECTS TWO TYPES OF ERRORS: /FATAL ERRORS: / PARITY ERROR / TIMING ERROR / TOO GREAT A BLOCK NUMBER /FATAL ERRORS TAKE ERROR RETURN WITH AC=4000 /NON-FATAL ERROR: / SELECT ERROR (IMPROPER UNIT NUMBER OR NO UNIT NUMBER) /NON-FATAL ERROR TAKES ERROR RETURN WITH AC=0 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 31 2000 PAGE 0000 MFIELD=0 2000 ORIGIN=. 002000 0000 DTA0, 0 /ENTRY POINT FROM UNIT 0 002001 7300 CLA CLL /0 TO LINK 002002 5210 JMP DTA1X 002003 1000 C1000, 1000 002004 0000 DTA1, 0 /UNIT 2 ENTRY 002005 7320 CLA CLL CML /1 TO LINK 002006 1204 TAD DTA1 002007 3200 DCA DTA0 /PICK UP ARGS AT DTA0 002010 7010 DTA1X, RAR 002011 3361 DCA YUNIT /LINK TO UNIT POSITION 002012 6214 RDF 002013 1354 TAD C6203 /GET DATA FIELD AND SETUP RETURN 002014 3351 DCA LEAVE 002015 1361 TAD YUNIT /GET FUNCTION WORD 002016 6774 IOT4, SDLC /PUT FUNCTION INTO DATA REGISTER 002017 1600 TAD I DTA0 002020 6775 IOT1, SDLD 002021 7200 CLA 002022 1360 TAD MWORDS 002023 3356 DCA WCOUNT /STORE MASTER WORD COUNT 002024 2200 ISZ DTA0 /TO BUFFER 002025 1600 TAD I DTA0 002026 3357 DCA BUFF 002027 2200 ISZ DTA0 /TO BLOCK NUMBER 002030 1600 TAD I DTA0 002031 3204 DCA BLOCK 002032 2200 ISZ DTA0 /POINT TO ERROR EXIT 002033 6203 CIF CDF MFIELD /TO ROUTINES DATA FIELD 002034 6777 IOT2, SDRD /GET FUNCTION INTO AC 002035 7104 CLL RAL 002036 0305 AND CM200 /GET # PAGES TO XFER 002037 3364 DCA PGCT 002040 6777 IOT3, SDRD 002041 0374 C374, AND C70 /GET FIELD FOR XFER 002042 1353 TAD C6201 /FORM CDF N 002043 3377 DCA XFIELD /IF=0 AND DF=N AT XFER. 002044 7346 CLA CLL CMA RTL 002045 3367 DCA TRYCNT /3 ERROR TRIES 002046 6776 IOT5, SDRC 002047 0366 AND C100 002050 7640 SZA CLA 002051 5345 JMP FATAL-1 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 32 002052 6777 IOT6, SDRD /PUT FUNCT INTO XFUNCT IN SECOND PG. 002053 3762 DCA I CXFUN 002054 1356 TAD WCOUNT 002055 3765 DCA I CXWCT 002056 6777 IOT7, SDRD /GET MOTION BIT TO LINK 002057 7110 CLL RAR 002060 5277 JMP GO /AND START THE MOTION. 002061 6772 RWCOM, SDST /ANY CHECKSUM ERRORS? 002062 7640 SZA CLA /OR CHECKSUM ERRORS? 002063 5337 JMP TRY3 /PLEASE NOTE THAT THE LINK IS ALWAYS /SET AT RWCOM. GETCHK SETS IT. 002064 1364 TAD PGCT /NO ERROR..FINISHED XFER? 002065 1305 TAD CM200 002066 7450 SNA 002067 5344 JMP EXIT /ALL DONE. GET OUT 002070 3364 DCA PGCT /NEW PAGE COUNT 002071 2204 ISZ BLOCK /NEXT BLOCK TO XFER 002072 1356 TAD WCOUNT /FORM NEXT BUFFER ADDRESS 002073 7041 CIA 002074 1357 TAD BUFF 002075 3357 DCA BUFF 002076 7120 CLL CML /FORCES MOTION FORWARD 002077 7232 GO, CLA CML RTR /LINK BECOMES MOTION BIT 002100 1203 TAD C1000 002101 1361 TAD YUNIT /PUT IN 'GO' AND UNIT # 002102 6774 IOT8, SDLC /LOOK FOR BLOCK NO. 002103 4755 JMS I CRDQUD /WAIT AT LEAST 6 LINES TO LOOK 002104 4755 JMS I CRDQUD 002105 7600 CM200, 7600 /COULD HAVE SAVED A LOC. HERE 002106 6771 SRCH, SDSS 002107 5306 JMP .-1 /WAIT FOR SINGLE LINE FLAG 002110 6776 IOT9, SDRC 002111 7106 CLL RTL /DIRECTION TO LINK. INFO BITS /ARE SHIFTED. 002112 0241 AND C374 /ISOLATE MARK TRACK BITS 002113 1331 TAD M110 /IS IT END ZONE? 002114 7450 SNA /THE LINK STAYS SAME THRU THIS 002115 5333 JMP ENDZ 002116 1363 TAD M20 /CHECK FOR BLOCK MARK 002117 7640 SZA CLA 002120 5306 JMP SRCH 002121 6777 IOT10, SDRD /GET THE BLOCK NUMBER 002122 7430 SZL /IF WE ARE IN REVERSE, LOOK FOR 3 /BLOCKS BEFORE TARGET BLOCK. THIS /ALLOWS TURNAROUND AND UP TO SPEED. 002123 1375 TAD C3 /REVERSE 002124 7040 CMA 002125 1204 TAD BLOCK 002126 7040 CMA /IS IT RIGHT BLOCK? 002127 7450 SNA 002130 5370 JMP FOUND /YES..HOORAY! 002131 7670 M110, SZL SNA CLA /NO, BUT ARE WE HEADED FOR IT? /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 32-1 /ABOVE SNA IS SUPERFLUOUS. 002132 5306 JMP SRCH /YES 002133 6776 ENDZ, SDRC /WE ARE IN THE END ZONE 002134 7106 CLL RTL /DIRECTION TO LINK 002135 7200 CLA /ARE WE IN REVERSE? 002136 5277 JMP GO /YES..TURN US AROUND /IF WE ARE IN THE END ZONE GOING FORWARD, IT IS AN ERROR 002137 7300 TRY3, CLL CLA 002140 2367 ISZ TRYCNT 002141 5277 JMP GO /TRY 3 TIMES 002142 7300 CLL CLA 002143 5346 JMP FATAL /LINK OFF MEANS AC=4000 ON RETURN 002144 2200 EXIT, ISZ DTA0 002145 7120 CLL CML /AC=0 ON NORMAL RETURN 002146 1361 FATAL, TAD YUNIT 002147 6774 SDLC /STOP THE UNIT 002150 7230 CLA CML RAR 002151 7402 LEAVE, HLT 002152 5600 JMP I DTA0 /--RETURN-- /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 33 002153 6201 C6201, 6201 002154 6203 C6203, 6203 002155 2314 CRDQUD, RDQUAD 002156 0000 WCOUNT, 0 002157 0000 BUFF, 0 002160 0000 MWORDS, 0 002161 0000 YUNIT, 0 002162 2354 CXFUN, XFUNCT 002163 7760 M20, -20 002164 0000 PGCT, 0 002165 2362 CXWCT, XWCT 002166 0100 C100, 100 002167 7775 TRYCNT, -3 2004 BLOCK=DTA1 2170 *ORIGIN+170 002170 7630 FOUND, SZL CLA /RIGHT BLOCK. HOW ABOUT DIRECTION? 002171 5277 JMP GO /WRONG..TURN AROUND 002172 1361 TAD YUNIT /PUT UNIT INTO LINK 002173 7104 CLL RAL /AC IS NOW 0 002174 0070 C70, 70 /********DON'T MOVE THIS!!!!****** 002175 0003 C3, 3 002176 1357 TAD BUFF /GET BUFFER ADDRESS 002177 7402 XFIELD, HLT /INTO NEXT PAGE 2200 *ORIGIN+200 2321 XUNIT=EQUFUN 002200 3361 DCA XBUFF 002201 6776 IOT16, SDRC 002202 6774 IOT17, SDLC 002203 7010 RAR /NOW GET UNIT # 002204 3321 DCA XUNIT 002205 6771 REVGRD, SDSS 002206 5205 JMP REVGRD /LOOK FOR REVERSE GUARD 002207 6776 IOT11, SDRC 002210 0242 AND K77 002211 1355 TAD CM32 /IS IT REVERSE GUARD? 002212 7640 SZA CLA 002213 5205 JMP REVGRD /NO.KEEP LOOKING 002214 1362 TAD XWCT 002215 3360 DCA WORDS /WORD COUNTER 002216 1354 TAD XFUNCT /GET FUNCTION READ OR WRITE 002217 7700 K7700, SMA CLA 002220 5255 JMP READ /NEG. IS WRITE 002221 6776 WRITE, SDRC 002222 0267 AND C300 /CHECK FOR WRITE LOCK AND SELECT ERROR 002223 7120 CLL CML /LOCK OUT AND SELECT ARE AC 0 ERRORS 002224 7640 SZA CLA 002225 5752 JMP I CFATAL /FATAL ERROR. LINK MUST BE ON 002226 4314 JMS RDQUAD /NO ONE EVER USES THIS WORD! /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 33-1 002227 7600 C7600, 7600 002230 1356 TAD C1400 002231 1321 TAD XUNIT /INITIATE WRITE MODE 002232 6774 IOT12, SDLC 002233 7240 CLA CMA 002234 4305 JMS WRQUAD /PUT 77 IN REVERSE CHECKSUM 002235 7240 CLA CMA 002236 3357 DCA CHKSUM 002237 1761 WRLP, TAD I XBUFF /GLORY BE! THE ACTUAL WRITE! 002240 4305 JMS WRQUAD 002241 2361 ISZ XBUFF /BUMP CORE POINTER 002242 0077 K77, 77 /ABOVE MAY SKIP 002243 2360 ISZ WORDS /DONE THIS BLOCK? 002244 5237 JMP WRLP /NOT YET..LOOP A WHILE 002245 1354 TAD XFUNCT /IS THE OPERATION FOR WDSBLK PER BLOCK? 002246 7112 CLL RTR /IF NO, WRITE A 0 WORD 002247 7630 SZL CLA /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 34 002250 4305 JMS WRQUAD /WRITE A WORD OF 0 002251 4336 JMS GETCHK /DO THE CHECK SUM 002252 4305 JMS WRQUAD /WRITE FORWARD CHECKSUM 002253 4305 JMS WRQUAD /ALLOW CHECKSUM TO BE WRITTEN 002254 5753 JMP I CRWCOM 002255 4314 READ, JMS RDQUAD 002256 4314 JMS RDQUAD 002257 4314 JMS RDQUAD /SKIP CONTROL WORDS 002260 0242 AND K77 002261 1217 TAD K7700 /TACK 7700 ONTO CHECKSUM. 002262 3357 DCA CHKSUM /CHECKSUM ONLY LOW 6 BITS ANYWAY 002263 4314 RDLP, JMS RDQUAD 002264 4321 JMS EQUFUN /COMPUT CHECKSUM AS WE GO 002265 3761 DCA I XBUFF /IT GETS CONDENSED LATER 002266 2361 ISZ XBUFF 002267 0300 C300, 300 /PROTECTION 002270 2360 ISZ WORDS /DONE THIS OP? 002271 5263 JMP RDLP /NO SUCH LUCK 002272 1354 TAD XFUNCT /IF OP WAS FOR WDSBLK-1, READ AND 002273 7112 CLL RTR /CHECKSUM THE LAST TAPE WORD 002274 7620 SNL CLA 002275 5300 JMP RDLP2 002276 4314 JMS RDQUAD /NOT NEEDED FOR WDSBLK/BLOCK 002277 4321 JMS EQUFUN /CHECKSUM IT 002300 4314 RDLP2, JMS RDQUAD /READ CHECKSUM 002301 0217 AND K7700 002302 4321 JMS EQUFUN 002303 4336 JMS GETCHK /GET SIX BIT CHECKSUM 002304 5753 JMP I CRWCOM 002305 0000 WRQUAD, 0 /WRITE OUT A 12 BIT WORD 002306 4321 JMS EQUFUN /ADD THIS TO CHECKSUM 002307 6773 IOT13, SDSQ /SKIP ON QUADLINE FLAG 002310 5307 JMP .-1 002311 6775 IOT14, SDLD /LOAD DATA ONTO BUS 002312 7200 CLA /SDLD DOESN'T CLEAR AC 002313 5705 JMP I WRQUAD 002314 0000 RDQUAD, 0 /READ A 12 BIT WORD 002315 6773 SDSQ 002316 5315 JMP .-1 002317 6777 IOT15, SDRD /READ DATA 002320 5714 JMP I RDQUAD /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 35 002321 0000 EQUFUN, 0 /COMPUTE EQUIVALENCE CHECKSUM 002322 7040 CMA 002323 3363 DCA EQUTMP /ACTUALLY CHECKSUMS ON DECTAPE ARE 002324 1363 TAD EQUTMP /EQUIVALENCE OF ALL WORDS IN A RECORD 002325 0357 AND CHKSUM /SIX BITS AT A TIME. BUT SINCE EQUIVALENCE 002326 7041 CIA /IS ASSOCIATIVE, WE CAN DO IT 12 002327 7104 CLL RAL /BITS AT A TIME AND CONDENSE LATER. 002330 1363 TAD EQUTMP /THIS ROUTINE USES THESE IDENTITIES: 002331 1357 TAD CHKSUM /A+B=(A.XOR.B)+2*(A.AND.B) 002332 3357 DCA CHKSUM /A.EQU.B=.NOT.(A.XOR.B)=A.XOR.(.NOT.B) 002333 1363 TAD EQUTMP /A.EQU.B=(A+(.NOT.B))-2*(A.AND.(.NOT.B)) 002334 7040 CMA 002335 5721 JMP I EQUFUN 002336 0000 GETCHK, 0 /FORM 6 BIT CHECKSUM 002337 7200 CLA 002340 1357 TAD CHKSUM 002341 7040 CMA 002342 7106 CLL RTL 002343 7006 RTL 002344 7006 RTL 002345 4321 JMS EQUFUN 002346 7320 CLA CLL CML /FORCES LINK ON AT RWCOM 002347 1357 TAD CHKSUM 002350 0217 AND K7700 002351 5736 JMP I GETCHK 002352 2146 CFATAL, FATAL 002353 2061 CRWCOM, RWCOM 002354 0000 XFUNCT, 0 002355 7746 CM32, -32 002356 1400 C1400, 1400 002357 0000 CHKSUM, 0 002360 0000 WORDS, 0 002361 0000 XBUFF, 0 002362 0000 XWCT, 0 002363 0000 EQUTMP, 0 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 36 2400 PAGE / / 002400 0000 PARITY, 0 002401 6036 KRB 002402 0121 AND [177 002403 1162 TAD [200 002404 5600 JMP I PARITY /IOT TABLES FOR TD8E SUBROUTINE 002405 2020 IOTLOC, IOT1 002406 2034 IOT2 002407 2040 IOT3 002410 2016 IOT4 002411 2046 IOT5 002412 2052 IOT6 002413 2056 IOT7 002414 2061 RWCOM 002415 2102 IOT8 002416 2106 SRCH 002417 2110 IOT9 002420 2121 IOT10 002421 2133 ENDZ 002422 2147 FATAL+1 002423 2205 REVGRD 002424 2207 IOT11 002425 2221 WRITE 002426 2232 IOT12 002427 2307 IOT13 002430 2311 IOT14 002431 2315 RDQUAD+1 002432 2317 IOT15 002433 2201 IOT16 002434 2202 TABEND, IOT17 2435 UNITS=. 002435 0770 UNIT01 002436 0760 UNIT23 002437 0750 UNIT45 002440 0740 UNIT67 002441 1351 RTAB, IOTR1 002442 1354 IOTR2 002443 1356 IOTR3 002444 1370 IOTR4 002445 0367 IOTR5 002446 0371 IOTR6 /IOT TABLES FOR WORDS PER BLOCK ROUTINE 002447 0637 TABLE1, IOTX1 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 36-1 002450 0662 IOTX2 002451 0642 IOTX3 002452 0644 IOTX4 002453 0754 IOTX5 002454 0756 IOTX6 002455 0621 IOTX7 002456 0623 END1, IOTX8 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 37 002457 0622 MESSG4, TEXT @FROM UNIT:@ 002460 1715 002461 4025 002462 1611 002463 2472 002464 0000 002465 2417 MESSG5, TEXT @TO UNITS:@ 002466 4025 002467 1611 002470 2423 002471 7200 002472 1114 ERROR5, TEXT @ILLEGAL FORMAT UNIT @ 002473 1405 002474 0701 002475 1440 002476 0617 002477 2215 002500 0124 002501 4025 002502 1611 002503 2440 002504 0000 002505 4025 ERROR6, TEXT @ UNIT @ 002506 1611 002507 2440 002510 0000 002511 1114 ERROR4, TEXT @ILLEGAL RESPONSE@ 002512 1405 002513 0701 002514 1440 002515 2205 002516 2320 002517 1716 002520 2305 002521 0000 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 38 2600 PAGE /ONCE ONLY CODE 002600 4777 END, JMS I (QUEST 002601 2646 MESSG2 /@HIGHEST FIELD AVAILABLE:@ 002602 7701 ACL 002603 0173 AND [7 002604 7041 CIA 002605 3037 DCA FIELDS 002606 1376 TAD (CDF 002607 3220 DCA CDF00 002610 1037 TAD FIELDS 002611 7450 SNA /MORE THAN 1 FIELD?? 002612 5237 JMP LIM /NO--NO PROBLEM 002613 3041 DCA COUNT1 /YES--ARE THEY ALL PRESENT? 002614 1220 NEXT, TAD CDF00 002615 1375 TAD (10 002616 3220 DCA CDF00 /SET FOR DATA FIELD CHANGE 002617 1374 TAD (HLT 002620 6201 CDF00, CDF 002621 3775 DCA I (10 /TRY LOCATION 10 002622 1775 TAD I (10 002623 6201 CDF 0 002624 7041 CIA 002625 1374 TAD (HLT 002626 7650 SNA CLA /IS FIELD THERE? 002627 5235 JMP NEXT1 /YES--TRY NEXT ONE 002630 4577 JMS I [MESSGE /NO 002631 2511 ERROR4 /ILLEGAL RESPONSE 002632 4567 JMS I [CRLF /CARRIAGE RETURN/LINE FEED 002633 3040 DCA COUNT /CLEAR COUNT 002634 5200 JMP END /TRY AGAIN 002635 2041 NEXT1, ISZ COUNT1 /DONE YET? 002636 5214 JMP NEXT /NO 002637 1373 LIM, TAD (LIMIT-END /SET BEGINNING OF VERIFY BUFFER 002640 7110 CLL RAR 002641 1176 TAD [END 002642 3062 DCA END0 002643 1372 TAD (NOP 002644 3771 DCA I (START1-1 002645 5770 JMP I (START1 002646 1011 MESSG2, TEXT @HIGHEST FIELD AVAILABLE:@ 002647 0710 002650 0523 002651 2440 002652 0611 002653 0514 002654 0440 002655 0126 002656 0111 002657 1401 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 38-1 002660 0214 002661 0572 002662 0000 002770 0207 002771 0206 002772 7000 002773 5000 002774 7402 002775 0010 002776 6201 002777 0336 000121 0177 000122 1313 000123 2000 000124 2405 000125 7750 000126 1200 000127 0260 000130 0002 000131 1254 000132 7554 000133 1246 000134 6000 000135 7756 000136 0366 000137 3000 000140 2441 000141 7772 000142 0457 000143 1600 000144 5000 000145 0204 000146 1553 000147 0336 000150 7556 000151 0450 000152 1020 000153 1754 000154 1531 000155 2160 000156 1000 000157 1746 000160 4000 000161 0535 000162 0200 000163 0100 000164 0077 000165 1027 000166 2400 000167 0317 000170 7774 000171 0212 000172 0527 000173 0007 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 38-2 000174 7770 000175 0400 000176 2600 000177 0471 0000 FIELD 0 0200 *200 $ /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 39 AGAIN 0217 DTA1X 2010 IOT13 2307 OUTNUM 0033 ALLDUN 1215 END 2600 IOT14 2311 OUTPUT 0021 ANSWER 0400 ENDZ 2133 IOT15 2317 PARITY 2400 BAD 0440 END0 0062 IOT16 2201 PGCT 2164 BLOCK 2004 END1 2456 IOT17 2202 PRINT 1531 BLOCKN 0056 ENTRY 0063 IOT2 2034 QUEST 0336 BLOCKS 1715 EQUFUN 2321 IOT3 2040 QUEST1 0345 BUFADD 1714 EQUTMP 2363 IOT4 2016 RDLP 2263 BUFF 2157 ERR 1730 IOT5 2046 RDLP2 2300 BUFN 0054 ERROR1 1135 IOT6 2052 RDQUAD 2314 BUF0 0053 ERROR2 1147 IOT7 2056 READ 2255 CDF0 1475 ERROR3 1160 IOT8 2102 READX 1220 CDF00 2620 ERROR4 2511 IOT9 2110 READY 1600 CFATAL 2352 ERROR5 2472 K77 2242 REPEAT 1027 CHAR 0526 ERROR6 2505 K7700 2217 REVGRD 2205 CHECK 0457 ERR1 1505 LEAVE 2151 REWIND 1313 CHKSUM 2357 ERR3 1746 LIM 2637 RHALF 0500 CLEAN 1553 ERR4 0325 LIMIT 7600 RLIST 1316 CLEAN1 1560 ERR5 0744 LIST 0032 RTAB 2441 CLEAR 0436 EXIT 2144 LISTEN 0450 RUNIT 1325 CM200 2105 FATAL 2146 LNEXT 0476 RW 0050 CM32 2355 FIELDS 0037 LOC 0525 RWCOM 2061 COMP 1466 FINDER 0524 MESSGE 0471 SELECT 1743 COMP2 1471 FLDN 0052 MESSG1 0067 SELERR 0627 COMP3 1435 FLD0 0051 MESSG2 2646 SEMI 0443 COMP4 1455 FOUND 2170 MESSG3 0076 SETUP 0600 CONT 1014 FOUR 1540 MESSG4 2457 SET2 0651 COUNT 0040 FUNCTN 1713 MESSG5 2465 SET3 0700 COUNT1 0041 GETCHK 2336 MESSG6 1040 SET4 0606 COUNT2 0042 GO 2077 MESSG7 1052 SET5 0674 COUNT3 0043 HALT 7402 MESSG8 1064 SKIP 0437 COUNT4 0044 IBLOCK 0034 MESSG9 1101 SKIPQ 0366 CRDQUD 2155 INB 0064 MESS10 1117 SKIP4 0753 CRLF 0317 INPUT 0020 MESS11 1122 SRCH 2106 CRWCOM 2353 INSERT 0535 MFIELD 0000 START 0200 CTRLC 0470 INS1 0551 MNUM 0343 START1 0207 CTRLR 1020 IOTLOC 2405 MORE 0404 SUB 0726 CXFUN 2162 IOTR1 1351 MORE2 0224 SUB1 1657 CXWCT 2165 IOTR2 1354 MWORDS 2160 SUB2 1666 C100 2166 IOTR3 1356 M110 2131 SUB3 1677 C1000 2003 IOTR4 1370 M20 2163 SWITCH 0412 C1400 2356 IOTR5 0367 M200 1371 TABEND 2434 C3 2175 IOTR6 0371 NEXT 2614 TABLE1 2447 C300 2267 IOTX1 0637 NEXT1 2635 TABX 0365 C374 2041 IOTX2 0662 NUMBER 0036 TRANS 1707 C6201 2153 IOTX3 0642 NUMB1 0057 TRY 1500 C6203 2154 IOTX4 0644 NUMB2 0060 TRYCNT 2167 C70 2174 IOTX5 0754 OALL 0255 TRY3 2137 C7600 2227 IOTX6 0756 OBLOCK 0035 TYPE 0527 DECODE 1754 IOTX7 0621 OCOUNT 0030 UNIT 0045 DIV1 1275 IOTX8 0623 OHOLD 0066 UNITNO 0352 DIV2 1301 IOT1 2020 OPOINT 0031 UNITS 2435 DOIT 1200 IOT10 2121 ORIGIN 2000 UNIT01 0770 DTA0 2000 IOT11 2207 OUTB 0065 UNIT23 0760 DTA1 2004 IOT12 2232 OUTN 1246 UNIT45 0750 /TD8E DECTAPE COPY, V50 PAL8-V50Y 03-JAN-23 PAGE 39-1 UNIT67 0740 VB 0061 VERF 0046 VERFQ 1000 VERF1 1311 VERF1A 1016 VERF2 1274 VERF2A 1017 VERIFY 1400 WAIT 1516 WCOUNT 2156 WDCNT 0047 WHOLE 0306 WORDS 2360 WRITE 2221 WRITEX 1254 WRLP 2237 WRQUAD 2305 XBUFF 2361 XFIELD 2177 XFUNCT 2354 XNUMB 0055 XUNIT 2321 XWCT 2362 X11 0011 X12 0012 YES 1010 YUNIT 2161 ZOOM 1630 ERRORS DETECTED: 0 LINKS GENERATED: 2