File: TD8EA.LS of Disk: V50/Source/Source-Listing-PAL-1
(Source file text)
/TD8E HANDLER TD8E-A VERSION 50 PAL8-V50A 29-MAI-87 PAGE 1 /TD8E HANDLER TD8E-A VERSION 50 / / / / / / / / / /COPYRIGHT (C) 1974,1975,1977 BY DIGITAL EQUIPMENT CORPORATION / AND 2015 W. VAN DER MARK / / / / / / / / / / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. / /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. / /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY /DIGITAL. / / / / / / / / / / 0000 *0 000000 7776 -2 000001 2404 DEVICE TD8A;DEVICE DTA0;4210;4010;ZBLOCK 2 000002 7001 000003 0424 000004 0160 000005 4210 000006 4010 000007 0000 000011 2404 DEVICE TD8A;DEVICE DTA1;4210;4014;ZBLOCK 2 /TD8E HANDLER TD8E-A VERSION 50 PAL8-V50A 29-MAI-87 PAGE 1-1 000012 7001 000013 0424 000014 0161 000015 4210 000016 4014 000017 0000 6771 SDSS=6771 /SKIP ON SINGLE LINE FLAG 6772 SDST=6772 /SKIP ON TIME ERROR 6773 SDSQ=6773 /SKIP ON QUAD LINE FLAG 6774 SDLC=6774 /LOAD TAPE COMMAND REGISTER 6775 SDLD=6775 /LOAD DATA REGISTER 6776 SDRC=6776 /READ COMMAND REGISTER 6777 SDRD=6777 /READ DATA REGISTER 0030 TDVERSION="X&77 /V3 CHANGES: /1. VERSION # IS NOW 1 /2. PARITY ^C IS NOW LEGAL /3. ^C CHECK NO LONGER WILL ADVANCE READER /MAINTENANCE RELEASE CHANGES: /4. FIXED ^C BUG /5. MADE CODE IMPROVEMENTS /6. FIXED RETRY BUG 0200 *200 000200 7600 NXINIT, 7600 /CLEAR AC HERE!!! 000201 4763 JMS I CINIT2 /PART OF INITIALIZATION..DO THE PART 000202 3250 BASE2, DCA JINIT /ON SECOND PAGE AND THEN TO JINIT 000203 5250 JMP JINIT 000204 0000 BUFF, 0 000205 0000 PGCT, 0 000206 0000 FUNCT, 0 000207 1000 C1000, 1000 000210 0030 DTA0, TDVERSION /ENTRY FOR UNIT 0 000211 7300 CLA CLL 000212 5220 JMP DTA1X 000213 0000 UNIT, 0 /FILLER WORD 000214 0030 DTA1, TDVERSION /ENTRY FOR UNIT 1 000215 7320 CLA CLL CML 000216 1214 TAD DTA1 000217 3210 DCA DTA0 /PICK UP ARGS AT DTA0 000220 7010 DTA1X, RAR 000221 3213 DCA UNIT /UNIT # FROM LINK 000222 6214 RDF 000223 1247 TAD C6203 000224 3347 DCA LEAVE /SET UP EXIT FROM HANDLER /TD8E HANDLER TD8E-A VERSION 50 PAL8-V50A 29-MAI-87 PAGE 1-2 000225 1610 TAD I DTA0 000226 3206 DCA FUNCT /SAVE FUNCTION WORD 000227 1206 TAD FUNCT 000230 7104 CLL RAL 000231 0200 C200, AND CM200 /GET A PAGE COUNT 000232 3205 DCA PGCT 000233 1206 TAD FUNCT 000234 0374 C374, AND C70 /ISOLATE FIELD OF TRANSFER 000235 1247 TAD C6203 000236 3377 DCA XFIELD 000237 2210 ISZ DTA0 /POINT TO BUFFER 000240 1610 TAD I DTA0 000241 3204 DCA BUFF 000242 2210 ISZ DTA0 /POINT TO RECORD 000243 1610 TAD I DTA0 000244 7104 CLL RAL /CONVERT TO DECTAPE BLOCKS 000245 3214 DCA TBLOCK 000246 2210 ISZ DTA0 /POINT TO ERROR RET. 000247 6203 C6203, CIF CDF 0 /TD8E HANDLER TD8E-A VERSION 50 PAL8-V50A 29-MAI-87 PAGE 2 000250 5351 JINIT, JMP INIT /FIRST TIME THRU IT GETS EXECUTED /THE RETURN FROM INIT ZEROES IT 000251 7346 CLA CLL CMA RTL 000252 3352 DCA ERCNT /3 ERROR TRIES 000253 1213 TAD UNIT 000254 3765 DCA I CXUNIT 000255 4764 JMS I CSELCT /CHECK FOR SELEC ERROR 000256 5255 JMP .-1 /LOOPS IF NO ^C AND SELECT ERROR 000257 1206 TAD FUNCT 000260 7110 CLL RAR 000261 5277 JMP GO /OK.. START THE SEARCH 000262 6772 TRWCOM, SDST /TIME OR CHECK SUM ERROR? 000263 7640 SZA CLA 000264 5336 JMP TRY3 /YES TRY UP TO 3 TIMES 000265 1205 TAD PGCT /NO.. IS PAGE COUNT EXHAUSTED? 000266 1200 TAD CM200 000267 7450 SNA 000270 5342 JMP EXIT /YES.. DONE THIS TRANSFER 000271 3205 DCA PGCT /NEW PAGE COUNT 000272 2214 ISZ TBLOCK 000273 1204 TAD BUFF 000274 1231 TAD C200 /GET NEW BUFFER ADDRESS 000275 3204 DCA BUFF 000276 7120 CLL CML /FORCE FORWARD MOTION 000277 7232 GO, CLA CML RTR /PUT IN DIRECTION BIT 000300 1207 TAD C1000 000301 1213 TAD UNIT 000302 6774 SDLC /INITIATE THE MOTION 000303 4762 JMS I CRDQAD /WAIT FOR 8 LINES TO PASS 000304 4762 JMS I CRDQAD 000305 7760 M20, 7760 /DON'T CARE IF IT DOES SKIP!!! 000306 6771 TSRCH, SDSS /WAIT FOR BLOCK MARK OR END ZONE 000307 5306 JMP .-1 000310 6776 SDRC 000311 7106 CLL RTL /DIRECTION TO LINK, DATA TO AC 4-9 000312 0234 AND C374 /ISOLATE M.T BITS 000313 1331 TAD M110 /IS IT END ZONE? 000314 7450 SNA 000315 5333 JMP ENDZ /YES..DO SOMETHING REASONABLE 000316 1305 TAD M20 /HOW ABOUT BLOCK MARK? 000317 7640 SZA CLA 000320 5306 JMP TSRCH /NEITHER..KEEP LOOKING 000321 6777 SDRD /WHAT IS THIS BLOCK'S #? 000322 7430 SZL /IF IN REVERSE, LOOK FOR 3 BEFORE 000323 1375 TAD TC3 /THE ACTUAL TARGET BLOCK 000324 7040 CMA 000325 1214 TAD TBLOCK 000326 7040 CMA 000327 7450 SNA /IS THIS THE BLOCK? 000330 5367 JMP TFOUND /YES..HAVE CORRECT ONE 000331 7670 M110, SZL SNA CLA /ARE WE HEADED PROPERLY? 000332 5306 JMP TSRCH /YES.. KEEP LOOKING /TD8E HANDLER TD8E-A VERSION 50 PAL8-V50A 29-MAI-87 PAGE 2-1 000333 6776 ENDZ, SDRC /IF WE ARE IN END ZONE FORWARD, WE LOSE 000334 7106 CLL RTL 000335 5277 JMP GO /EXECUTE TURN AROUND AND SEARCH /TD8E HANDLER TD8E-A VERSION 50 PAL8-V50A 29-MAI-87 PAGE 3 000336 7300 TRY3, CLA CLL /V3C 000337 2352 ISZ ERCNT /TRIED 3 TIMES? 000340 5277 JMP GO 000341 5344 JMP FATAL 000342 2210 EXIT, ISZ DTA0 /NORMAL RETURN 000343 7120 CLL CML 000344 1213 FATAL, TAD UNIT /STOP TAPE FIRST 000345 6774 SDLC 000346 7230 CLA CML RAR /EITHER 0 OR 4000 IN AC 000347 7402 LEAVE, HLT /GETS CIF CDF N 000350 5610 JMP I DTA0 000351 4351 INIT, JMS . /FIND OUT WHERE WE GOT LOADED 000352 1362 BASE, TAD CRDQAD 000353 7510 SPA /NEGATIVE ENDS LIST 000354 5200 JMP NXINIT 000355 1351 TAD INIT 000356 3362 DCA CRDQAD 000357 2356 ISZ .-1 000360 2352 ISZ BASE 000361 5352 JMP BASE 000362 0132 CRDQAD, R4LINE-BASE 000363 0167 CINIT2, INIT2-BASE 000364 0205 CSELCT, SELECT-BASE 000365 0173 CXUNIT, XUNIT-BASE 0367 *367 000367 7630 TFOUND, SZL CLA /ARE WE IN RIGHT DIRECTION 000370 5277 JMP GO /NOT YET 000371 1206 TAD FUNCT 000372 7104 CLL RAL /R/W TO LINK 000373 7200 CLA 000374 0070 C70, 70 000375 0003 TC3, 3 000376 1204 TAD BUFF 000377 7402 XFIELD, HLT /CONTROL 'TRICKLES THROUGH 0214 TBLOCK=DTA1 0352 ERCNT=INIT+1 0200 CM200=NXINIT 0210 DTA2=DTA0 0214 DTA3=DTA1 0210 DTA4=DTA0 0214 DTA5=DTA1 0210 DTA6=DTA0 0214 DTA7=DTA1 /TD8E HANDLER TD8E-A VERSION 50 PAL8-V50A 29-MAI-87 PAGE 4 0400 *400 000400 6202 CIF 0 /WE ARE IN FIELD 0 000401 3354 DCA XBUFF 000402 7010 RAR 000403 3341 DCA XFUNCT /READ/WRITE TO FUNCTION 000404 6771 RGRD, SDSS 000405 5204 JMP .-1 /LOOK FOR REVERSE GUARD PATTERN 000406 6776 SDRC 000407 0241 AND K77 000410 1355 TAD CM32 000411 7640 SZA CLA /IF NOT REV. GUARD, KEEP LOOKING 000412 5204 JMP RGRD 000413 1226 TAD C7600 000414 3343 DCA WORDS /128 WORDS/BLOCK 000415 1341 TAD XFUNCT 000416 7700 K7700, SMA CLA /IS IT READ OR WRITE? 000417 5251 JMP TREAD 000420 6776 SDRC /CHECK FOR WRITE LOCKOUT 000421 0263 AND TC300 000422 7100 CLL /SETUP TO RETRY IF WRITE LOCK 000423 7640 SZA CLA 000424 5752 JMP I CTRY3 /IF LOCKED OUT, ERROR 000425 4304 JMS R4LINE /SKIP A WORD 000426 7600 C7600, 7600 /CLA 000427 1356 TAD C1400 000430 1345 TAD XUNIT 000431 6774 SDLC /TURN ON WRITE HEAD 000432 7240 CLA CMA 000433 4275 JMS W4LINE /7777 IN REV. CHECKSUM 000434 7240 CLA CMA 000435 3342 DCA CSUM /AND ALSO TAPE CHECKSUM 000436 1754 WRTLP, TAD I XBUFF 000437 4275 JMS W4LINE 000440 2354 ISZ XBUFF /INCREMENT BUFF. ADD. 000441 0077 K77, 77 000442 2343 ISZ WORDS /DONE A BLOCK? 000443 5236 JMP WRTLP 000444 4275 JMS W4LINE /A 129 TH WORD OF 0 000445 4326 JMS GCHK /GET 6 BIT CHECKSUM 000446 4275 JMS W4LINE /WRITE IT TO TAPE 000447 4275 JMS W4LINE /LET CHECK SUM FINISH 000450 5753 JMP I CRWCOM /SEE IF WE ARE FINISHED /TD8E HANDLER TD8E-A VERSION 50 PAL8-V50A 29-MAI-87 PAGE 5 000451 4304 TREAD, JMS R4LINE 000452 4304 JMS R4LINE /SKIP CONTROL WORDS 000453 4304 JMS R4LINE 000454 0241 AND K77 /CHECKSUM 000455 1216 TAD K7700 000456 3342 DCA CSUM 000457 4304 RDLP, JMS R4LINE 000460 4311 JMS EFUN /ADD WORD TO CHECKSUM 000461 3754 DCA I XBUFF 000462 2354 ISZ XBUFF 000463 0300 TC300, 300 000464 2343 ISZ WORDS /DONE BLOCK? 000465 5257 JMP RDLP 000466 4304 JMS R4LINE 000467 4311 JMS EFUN /CHECK SUM 129 TH WORD 000470 4304 JMS R4LINE 000471 0216 AND K7700 /READ CHECKSUM 000472 4311 JMS EFUN 000473 4326 JMS GCHK /COMPARE TAPE AND OUR CHECKSUM 000474 5753 JMP I CRWCOM 000475 0000 W4LINE, 0 /ADD TO CHECKSUM AND WRITE A 12 BIT 000476 4311 JMS EFUN /WORD 000477 6773 SDSQ 000500 5277 JMP .-1 /SKIP ON QUAD LINE FLAG 000501 6775 SDLD 000502 7200 CLA /AC IS NOT CLEARED AFTER SDLD 000503 5675 JMP I W4LINE 000504 0000 R4LINE, 0 /WAIT FOR QUAD FLAG AND READ 000505 6773 SDSQ 000506 5305 JMP .-1 000507 6777 SDRD 000510 5704 JMP I R4LINE 000511 0000 EFUN, 0 /COMPUTE EQUIVALENCE CHECKSUM 000512 7040 CMA 000513 3344 DCA ETMP /ACTUALLY CHECKSUMS ON DECTAPE ARE 000514 1344 TAD ETMP /EQUIVALENCE OF ALL WORDS IN A RCORD 000515 0342 AND CSUM /6 BITS AT A TIME. SINCE EQUIVALENCE 000516 7041 CIA /IS ASSOCIATIVE WE DO IT 12 AT A TIME 000517 7104 CLL RAL /AND CONDENSE LATER. 000520 1344 TAD ETMP /IDENTITIES USED ARE: 000521 1342 TAD CSUM /A+B=(A.XOR.B)+2*(A.AND.B) 000522 3342 DCA CSUM /A.EQU.B=.NOT.(A.XOR.B)=A.XOR.(.NOT.B) 000523 1344 TAD ETMP /A.EQU.B=(A+(.NOT.B))-2*(A.AND.(.NOT.B)) 000524 7040 CMA 000525 5711 JMP I EFUN /TD8E HANDLER TD8E-A VERSION 50 PAL8-V50A 29-MAI-87 PAGE 6 000526 0000 GCHK, 0 /FORM 6 BIT CHECKSUM 000527 7200 CLA 000530 1342 TAD CSUM 000531 7146 CLL CMA RTL 000532 7006 RTL 000533 7006 RTL 000534 4311 JMS EFUN 000535 7320 CLA CLL CML 000536 1342 TAD CSUM 000537 0216 AND K7700 000540 5726 JMP I GCHK 000541 0000 INIT2, 0 /TIS INITIALIZES LOCS IN PAGE 2 000542 1352 INIT3, TAD CTRY3 000543 7450 SNA 000544 5741 JMP I INIT2 /0 ENDS LIST 000545 1341 TAD INIT2 000546 3352 DCA CTRY3 /UPDATE THE LIST 000547 2346 ISZ .-1 000550 2342 ISZ INIT3 000551 5342 JMP INIT3 000552 0134 CTRY3, TRY3-BASE2 000553 0060 CRWCOM, TRWCOM-BASE2 000554 0000 XBUFF, 0 /0 MUST TERMINATE IT!! 000555 7746 CM32, -32 000556 1400 C1400, 1400 000557 0000 SELECT, 0 /THIS ROUTINE CHECKS FOR SELECT 000560 1345 TAD XUNIT /AND ^C TYPED 000561 6774 SDLC 000562 6776 SDRC /GET STATUS AND SEE IF SELECT ERROR ON 000563 0376 AND C100 000564 7650 SNA CLA 000565 2357 ISZ SELECT /NOPE .TAKE NORMAL OUT 000566 6031 KSF /SEE IF FLAG IS UP 000567 5757 JMP I SELECT /NO..EXIT 000570 1226 TAD C7600 000571 6034 KRS 000572 1377 TAD (-7603 /IS IT A ^C? 000573 7640 SZA CLA 000574 5757 JMP I SELECT /NO..EXIT 000575 5626 JMP I C7600 000576 0100 C100, 100 0541 XFUNCT=INIT2 0542 CSUM=XFUNCT+1 0543 WORDS=CSUM+1 0544 ETMP=WORDS+1 0545 XUNIT=ETMP+1 000577 0175 $$$$$$$ /TD8E HANDLER TD8E-A VERSION 50 PAL8-V50A 29-MAI-87 PAGE 7 BASE 0352 SDRD 6777 BASE2 0202 SDSQ 6773 BUFF 0204 SDSS 6771 CINIT2 0363 SDST 6772 CM200 0200 SELECT 0557 CM32 0555 TBLOCK 0214 CRDQAD 0362 TC3 0375 CRWCOM 0553 TC300 0463 CSELCT 0364 TDVERS 0030 CSUM 0542 TFOUND 0367 CTRY3 0552 TREAD 0451 CXUNIT 0365 TRWCOM 0262 C100 0576 TRY3 0336 C1000 0207 TSRCH 0306 C1400 0556 UNIT 0213 C200 0231 WORDS 0543 C374 0234 WRTLP 0436 C6203 0247 W4LINE 0475 C70 0374 XBUFF 0554 C7600 0426 XFIELD 0377 DTA0 0210 XFUNCT 0541 DTA1 0214 XUNIT 0545 DTA1X 0220 DTA2 0210 DTA3 0214 DTA4 0210 DTA5 0214 DTA6 0210 DTA7 0214 EFUN 0511 ENDZ 0333 ERCNT 0352 ETMP 0544 EXIT 0342 FATAL 0344 FUNCT 0206 GCHK 0526 GO 0277 INIT 0351 INIT2 0541 INIT3 0542 JINIT 0250 K77 0441 K7700 0416 LEAVE 0347 M110 0331 M20 0305 NXINIT 0200 PGCT 0205 RDLP 0457 RGRD 0404 R4LINE 0504 SDLC 6774 SDLD 6775 SDRC 6776 ERRORS DETECTED: 0 LINKS GENERATED: 0