DTSUBSA867
(George Source)
Macros used: ALTLEN, BC, BS, BXE, BXGE, BXL, BXU, CHAIN, CONSERNO, DOWN, FDTENT, FON, FPUT, GEOERR, GETACT, JBC, JBS, JBSC, JMBS, LINKSET, LONGOFF, MBC, MFREEW, MHUNT, MHUNTW, PAIR, REWIND, SEG, SEGENTRY, SETBIT, STARTACT, STEP, TWDUMP, UP, UPDOLC, UPPLUS
- DTSUBSA867.txt
227T ... SEG DTSUBSA,867,C.R.JOHNSON,SCHEDULER 22*N ...[ 22HH ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 22PD ...[ 22SR ... SEGENTRY K1DTSUBSA,X1DTSUBSA 22Y6 ... SEGENTRY K2DTSUBSA,X2DTSUBSA 22^R ... SEGENTRY K3DTSUBSA,X3DTSUBSA 233F ...[ 236S ...TFMASK #42020000 23=7 ...QLOAD 8HLOADMT00 [USED BY X2DTSUBSA...CD LOAD CODE 23*G ...PAIR PAIR DTSTART,1 23DW ...[ 2SM# ...[ ****************************************************************** 2SN3 ...[ 2SNQ ...[ THIS SUBROUTINE APPENDS TO THE FDT AN ENTRY FOR THE TSN SPECIFIED 2SPF ...[ IN AWORK2 OF THE ACTIVITY BLOCK. IF AN ENTRY ALREADY EXISTS THEN T 2SQ8 ...[ SUBROUTINE WILL UNFORTUNATELY GEOERR. 2TMC ...[ THE LINK ADDRESS MUST BE RELATIVISED 2T^S ...[ 2W#= [ 2WRW ...UPFDT 2X?G SBX 7 FX1 2XR6 SMO FX2 2Y5H ... LDX 5 AWORK2 [GET TSN 2YCY ...[ 2YQ* ...[ FIND FDT ENTRY FOR TSN IN X5-IF NOT IN,GO TO NOFDTTAPE 2^4Q ...[ 2^C7 ... FDTENT 3,5,NOFDTTAPE 2^PJ ... GEOERR 1,INFDT [FDT ENTRY ALREADY 323^ ...[ 32BB ...[ TAPE NOT IN,MAKE NEW ENTRY 32NR ...[ FDT BLOCK MUST ALWAYS HAVE 4 SPARE WORDS-THERE CAN BE NO COORD. 3338 ...[ BETWEEN SEARCH AND NEW ENTRY INSERTION. 33*K ...[ 33N6 NOFDTTAPE 347Q LDX 3 BOLC [POINT TO EDT BLOCK 34MB LDX 3 A1(3) 3572 SLL 3 2 35LL ADX 3 BOLC [POINT TO SPACE FOR NEW ENTRY 366= ... STO 5 FDSN(3) [SET UP NEW ENTRY -TSN 36KW STOZ FDINC(3) [ -INCREMENT NUMBER 375G STOZ FDFILE(3) [ -FILE NUMBER 37K6 ... STOZ FDST(3) [ -STATE WORD 384Q ... BS 3,BIFDTCD [SET 'BEING OPENED' & 'CURRENT DUMP TAPE' BIT 3?7^ ... LDX 3 BOLC [X3 -> OFLC 3?G6 LDX 6 A1(3) [NUMBER OF ENTRIES 3?^Q ADN 6 1 3#FB STO 6 A1(3) [UPDATED 3#P8 ...[ 3#^2 ...[ GET SPACE FOR NEXT ENTRY 3*8S ...[ 3*DL SLL 6 2 3*Y= ADN 6 5 3BCW ALTLEN BOLC,6 3BF4 ... ADX 7 FX1 [RELATIVIZE LINK ACCUMULATOR 3BG= ... EXIT 7 0 [EXIT 3BHD ...[ 3BJL ...[ ****************************************************************** 3BKS ...[ 3BM2 ...[ THIS SUBROUTINE SETS UP A DUMP TAPE ACTIVITY FOR THE TAPE 3BN8 ...[ WHOSE TSN IS IN AWORK2 OF THE ACTIVITY BLOCK. THE FIRST 3BPB ...[ FDINCS BLOCK FOUND AFTER THE CURRENT ACTIVITY IS THEN 3BQJ ...[ CHAINED AFTER THE DTA AND THE DTA IS THEN FPUT'ED. 3BRQ ...[ 3BSY ...SETUPACT 3BW6 ... SBX 7 FX1 [RELATIVIZE LINK ACCUMULATOR 3BXG GETACT ACTDOC,ADUMPT,1 [SET UP DUMP TAPE ACTIVITY 3CC6 ... LDX 5 AWORK2(2) [GET TSN BEFORE CORRUPTING X2 3DW2 LDX 3 BPTR(2) [X2 POINTS TO ITS BASE 3F5S ...[ 3F*L [ CHECK LINKSET PARAMETERS 3FKD ...[ 3FT= LINKSET 3,PAIR(1) [SET UP LINK 3G#W ... STO 5 ADTSN(3) [MOVE IN TSN 3H#6 MHUNTW 1,FILE,FDINCS 3HRQ CHAIN 1,3 [CHAIN FDINCS AFTER NEWLY 3J?B [ SET UP DTA 3JR2 LDX 2 3 3K=L FPUT [PUT ACTIVITY ON LIST 3KQ= ADX 7 FX1 [RESETLINK 3L9W EXIT 7 0 3LPG ...[ 3M96 ...[ ****************************************************************** 3MNQ ...[ 3N8B ...[ THIS SUBROUTINE FINDS A FDT ENTRY. 3NN2 ...[ 3P7L ...XFDTENT [ 3PM= ... FDTENT 3,6,NOENTRY [J IF NO FDT ENTRY 3Q6W ... EXIT 7 1 [ENTRY FOUND 3QLG ...NOENTRY [ 3R66 ... EXIT 7 0 [ENTRY NOT FOUND 3RKQ ...[ 3S5B ...[ ****************************************************************** 3SK2 ...[ 3T4L ...[ SUBROUTINE TO SEARCH FOR FGET BLOCK ATTACHED TO DUMPER'S 3TJ= ...[ ACTIVITY .... WOULD BE BETTER IF DUMPER PUT IT IN MISC CHAIN. 3W3W ...[ 82B= XFGET LDCT 0 #443 [BLK TYPE OF FGET 82TW LDX 3 BACT 83*G XGET1 LDX 3 FPTR(3) 83T6 BXE 3 BACT,XGET2 84#Q BXU 0 ATYPE(3),XGET1 84SB EXIT 7 0 85#2 XGET2 GEOERR 1,NOFGET 85RL ...[ 86?= ...[ ****************************************************************** 86QW ...[ 87=G ...[ THIS SUBROUTINE IS DESIGNED TO DO A NON-CORDINATING SEARCH OP THE 87Q6 ...[ OLC, UPDATING ALL THE RELEVANT REQUEST BLOCKS. THERE ARE FOUR 889Q ...[ ENTRY POINTS CORRESPONDING TO FOUR SEPERATE ACTIONS TO BE TAKEN 88PB ...[ 8992 ...[ 1 XTAPEM/XTAPEP : SEARCH DOWN THE OFF LINE CHAIN 89NL ...[ INCREMENTING/DECREMENTING ADTCOUNT IN 8=8= ...[ ALL REQUEST BLOCKS WHOSE INC. NO. IS IN 8=MW ...[ THE RANGE GIVEN BY FILE FDINCS BLOCK 8?7G ...[ 8?M6 ...[ ENTRY : X2 = FX2 8#6Q ...[ FILE FDINCS BLOCK PRESENT 8#LB ...[ 8*62 ...[ 2 XCOUNT : SEARCH DOWN OLC UPDATING ADTCOUNT WITH A 8*KL ...[ VALUE SPECIFIED IN X0, IN ALL REQUEST 8B5= ...[ BLOCKS WHOSE INC. NO. IS SAME AS IN X4 8BJW ...[ AND WHOSE FILESTORE NUMBER IS IN X6. 8C4G ...[ 8CJ6 ...[ ENTRY : X2 = FX2 8D3Q ...[ X0 = COUNT OF DTAS AVAILABLE 8DHB ...[ X4 = INC. NO. 8F32 ...[ X6 = FILESTORE NUMBER. 8FGL ...[ 8G2= ...[ 3 XSTATE : SEARCH DOWN OLC SETTING APPROPRIATE BIT IN 8GFW ...[ FDTSTATE WORD IN ALL REQUEST BLOCKS WHOSE 8G^G ...[ INC.NO. IS GIVEN IN X4 AND WHOSE FILESTORE 8HF6 ...[ NUMBER IS IN X6. 8HYQ ...[ 8JDB ...[ ENTRY : X2 = FX2 8JY2 ...[ X0 = STATE WORD 8KCL ...[ X4 = INC. NO. 8KX= ...[ X6 =FILESTORE NUMBER 8LBW ...[ 8LWG ...[ EXIT IN ALL THESE CASES ALL THE ACCUMULATORS ARE CORRUPTED 8MB6 ...[ 8MTQ ...[ NOTE THE LINK ACCUMULATOR IS X7 8N*B ... UPDOLC 8NT2 ...[ 8P#L ...[ ****************************************************************** 8PS= ...[ 8Q?W ...[ THIS CODE IS ENTERED AFTER THE DTS HAS NOTICED THAT DUMPER 8QRG ...[ HAS BEEN INITIATED (VIA B21 OF INCWORD) 8R?6 ...[ 8RQQ ...[ EACH TAPE ENTRY IN DUMPERS FILE/FGET BLOCK IS LOOKED AT. 8S=B ...[ IF THE TAPE IS FOUND TO HAVE FAILED OR BE WRONGED 8SQ2 ...[ APROPRIATE BITS ARE SET IN THE FGET OTHERWISE A DUMP TAPE 8T9L ...[ ACTIVITY IS SET UP AND ALL FREQS ADTCOUNTS ALTERED 8TP= ...[ ACCORDINGLY 8W8W ...[ 8WNG ...X1DTSUBSA 8X86 ...[ 8XMQ ...[ 8Y7B ...[ FIRST THING TO DO IS TO REMOVE DUMPER BIT FROM INCWORD 8YM2 ...[ 8^6L ... BC ,BMTSREQ [CLEAR 'DUMPER REQUIRES TAPES' BIT 8^L= ...REHUNT 925W ... LDX 2 FX2 92KG ...#UNS IDC 9356 ... JBSC NOWFINI,,BMTSCAN [CLEAR BIT & J IF DUMP CANCELLED 93JQ ... CALL 7 XFGET [SEARCH FOR F/FGET BLOCK 944B ... [ON EXIT X3-> FGET 94J2 ...#UNS FPD 953L ... LDX 5 INCCOPIES(3) 95H= ...#UNS FPD 962W ...#SKI 96GG ...( 9726 ... LDX 5 3 97FQ ... ADX 5 ALOGLEN(3) 97^B ...) 98F2 ...NFGET 98YL ... LDX 0 FGETSTATE(3) 99D= ... BPZ 0 XREQNOT [IF -VE ENTRY ALREADY 99XW ... [BEEN LOOKED AT 9=CG ... ADN 3 FGETLEN 9=X6 ...#UNS FPD 9?BQ ... BCT 5 NFGET 9?WB ...#UNS FPD 9#B2 ...#SKI 9#TL ... BXU 3 5,NFGET 9**= ...NOWFINI 9*SW ... FON FGOTWAIT [ALL ENTRIES LOOKED AT 9B#G ... [SO KICK DUMPER 9BS6 ... STOZ ADUMTST(2) 9C?Q ... UP [BACK UP TO SCHEDMTX 9CRB ...XREQNOT 9D?2 ... SETBIT 0,FGETSTATE(3) [MARK ENTRY AS LOOKED AT 9DQL ... LDX 6 FGETSER(3) [PICK UP TSN FROM FGET ENTRY 9F== ... STO 6 AWORK2(2) [USE AWORK2 FOR SETUPACT 9FPW ... SBX 3 4 9G9G ... LONGOFF [DTSUBS8 OPENS INCINDEX!!! 9GP6 ... DOWN DTSUBS,8 [SETS UP A F/FDINCS BLOCK 9H8Q ... [COMES UP FOR OK CASE 9HNB ... [OR UPPLUS 1 IF TAPE FOUND 9J82 ... [TO BE FAILED OR WRONGED 9JML ... BRN TESTFDT 9K7= ...NOGOOD 9KLW ... MFREEW FILE,FDINCS 9L6G ...#UNS IDC 9LL6 ... JBSC NOWFINI,,BMTSCAN [CLEAR BIT & J IF DUMP CANCELLED 9M5Q ... LDX 6 ACOMMUNE1(2) [MAGSTATE FOR DUMPING CASE 9MKB ...NFDST 9N52 ... LDX 2 FX2 9NJL ... LDX 4 AWORK2(2) [TSN 9P4= ... CALL 7 XFGET [X3 -> FGET BLOCK 9PHW ...#UNS FPD 9Q3G ... LDX 7 INCCOPIES(3) 9QH6 ...#UNS FPD 9R2Q ...#SKI 9RGB ...( 9S22 ... LDX 7 ALOGLEN(3) [ ***** SHOULD BE RECORD HEADER 9SFL ... ADX 7 3 [POINTER TO END OF BLOCK 9S^= ...) 9TDW ...NEXTFGET 9TYG ... BXE 4 FGETSER(3),XTSNINFGET 9WD6 ... ADN 3 FGETLEN [STEP TO NEXT ELEMENT 9WXQ ...#UNS FPD 9XCB ... BCT 7 NEXTFGET 9XX2 ...#UNS FPD 9YBL ...#SKI 9YW= ... BXL 3 7,NEXTFGET 9^*W ... GEOERR 1,NOTNFGET 9^TG ...XTSNINFGET =2*6 ... BPZ 6 NOTFAILED [X6 = MAGSTATE =2SQ ... SETBIT 3,FGETSTATE(3) =34J ... BRN REHUNT =3#B ...NOTFAILED =3D? ... LDCT 0 #002 =3J8 ... ANDX 0 6 =3N5 ... BNZ 0 TWDUMP =3S2 ... SETBIT 2,FGETSTATE(3) =4?L ... BRN REHUNT [LOOK AT NEXT ENTRY IN FDINCS =4CH ...TWDUMP [SET BIT 5 IF TW DUMP =4HD ... SETBIT 5,FGETSTATE(3) =4M* ... BRN REHUNT =4R= ...TESTFDT =5=W ...#UNS IDC =5QG ... JBS NOGOOD,,BMTSCAN [J IF DUMP CANCELLED =6=6 ... LDX 7 ACOMMUNE1(2) [STATE OF MAGTAPE =6PQ ... STO 7 AWORK3(2) =79B ... CALL 7 XFDTENT [TSN IN X6 BEFORE WENT DOWN =7P2 ... BRN NOTHERE [J IF NO ENTRY IN FDT =88L ...[ =8N= ...[ FDT ENTRY ALREADY SO CHECK IF FAILING AND FREE FDINCS =97W ...[ =9MG ... SMO FX1 ==76 ... LDX 6 TFMASK [B0=FAIL,B4=CD OR OPERATOR WRONGED,B1 ==LQ ... ANDX 6 FDST(3) =?6B ... BNZ 6 XFREEFF [J IF THE TAPE IS WRONGED =?L2 ... JMBS XDUMPACT,3,BIFDTO,BIFDTJL [J TO XDUMPACT IF NO ACTIVITY =#5L ... [SET UP YET =#K= ...XFREEFF [ =*4W ... MFREEW FILE,FDINCS [FREE FDINCS BLOCK =*JG ... BNZ 6 NFDST [GO AND SET STATE OF TAPE =B46 ... [IN FGET ENTRY =BHQ ... BRN SETDUMPBIT [ =C3B ...NOTHERE =CH2 ... LDX 2 FX2 =D2L ... CALL 7 XTAPEP [NO FDT SO UPDATE ADTCOUNT =DG= ... CALL 7 UPFDT [UPDATE FDT - INSERT TSN,SET BIT =D^W ... [BIFDTO,LENGTHEN FDT BY 4 WORDS. =F^6 ... CALL 7 SETUPACT [SET UP DTA FOR DUMP TAPE AND CHAIN =GDQ ... [THE FDINCS AFTER IT =GYB ... SMO FX2 [X2 IS CORRUPT =HD2 ... LDX 6 AWORK2 [X6 => TSN FOR XFDTENT =HXL ... CALL 7 XFDTENT =JC= ... BRN XGERR [NO FDT ENTRY ? =JWW ...SETDUMPBIT =KBG ...#UNS IDC =KW6 ... JBS SETBITS,,BMTSCAN [J IF DUMP CANCELLED =L*Q ... BS 3,BIFDTD [SET 'NEEDED BY DUMPER' BIT =LTB ...SETBITS =M*2 ... MBC 3,BIFDTO,BIFDTJL [CLEAR 'TAPE TO BE OPENED' BIT =MSL ... [AND 'TAPE JUST LOADED' BIT =N#= ... BRN REHUNT =N*M ...XDUMPACT [ =NC4 ...#UNS IDC =NDF ... JBS NODUMP,,BMTSCAN [J IF DUMP CANCELLED =NFW ... BS 3,BIFDTD [SET 'NEEDED BY DUMPER' BIT =NH? ...NODUMP [ =NJN ... BS 3,BIFDTJL [SET 'TAPE JUST LOADED' BIT =NL5 ... BC 3,BIFDTO [CLEAR 'TAPE TO BE LOADED' BIT =NMG ... BS BOLC,BIFDTLMEF [SET 'EXTANT LOADED TAPE' BIT =NNX ... MFREEW FILE,FDINCS [ONE ALREADY PRESENT =NQ# ... BRN REHUNT [GO LOOK AT NEXT FGET ENTRY =NRW ...XGERR =P?G ... GEOERR 1,NOTINFDT =PR6 ...[ =Q=Q ...[ ****************************************************************** =QQB ...[ =R=2 ...[ CHECK FOR CANTDO LOAD TAPE AND SET BIT BIFDTCL IN FDT IF APPROPRIA =RPL ...[ .....ENTERED DOWN FROM MACRO CDRVTAPE =S9= ...[ =SNW ...X2DTSUBSA [ =SS2 ... LDX 6 ACOMMUNE1(2) [X6 => COUNT OF REQUESTS ALREADY FOUN =SX6 ... LDX 3 BOLC [X3 -> FDT =T2= ... LDX 0 A1(3) [X0 => NUMBER OF FDT ENTRIES =T5B ... BZE 0 NOTEXTANT [J IF NO RETRIEVE TAPES =T8G ... MHUNT 3,CPB,CUNI [FIND PARAMETER =TN6 ... LDX 4 ANUM(3) [X4 => COUNT OF CHARACTERS =W7Q ... SBN 4 1 [PARAMETER EXISTS IF X4 > 0 =WMB ... BPZ 4 XEXIST [J IF EXISTS =X72 ... BRN NOTEXTANT [GO UP - NOT AN EXTANT REQUEST =XLL ...XEXIST [ =Y6= ... ADN 4 1 [RESET X4 =YKW ... ANDN 4 #7777 [B0-11 IS PARAMETER TYPE =^5G ... ADN 3 APARA [X3 -> FIRST CHARACTER OF MESSAGE =^K6 ...XLDCH [ ?24Q ... LDN 0 0 [COMPARISON STRING ENDS WITH ZERO ?2JB ... LDCH 5 QLOAD(1) [X5 => CHARACTER FROM COMPARASON STRI ?342 ... BXE 5 0,TSNGIVEN [J IF TSN FOUND ?3HL ... LDCH 0 0(3) [X0 => CHARACTER FROM CD ?43= ... BXE 0 5,XCHEL [J IF CHARACTER EQUAL ?4GW ... BRN NOTEXTANT [GO UP - NOT AN EXTANT REQUEST ?52G ...XCHEL [ ?5G6 ... BCT 4 NOTEXAU [J IF CD CHAR CT NOT EXHAUSTED ?5^Q ... LDX 2 BOLC [CORRECT MESSAGE BUT NO TSN GIVEN ?6FB ... LDX 3 A1(2) [X3 => COUNT OF ENTRIES IN FDT ?6^2 ... BZE 3 NOTEXTANT [J IF NO EXTANT REQUESTS ?7DL ... LDN 1 0 [X1 USED AS COUNTER ?7Y= ... SLL 3 2 [FOUR WORDS PER TSN ?8CW ... ADX 3 BOLC [X3 => LAST ENTRY IN FDT ?8XG ... SBN 3 4 [LAST ENTRY IS EMPTY ?9C6 ...RMREPEAT [ ?9WQ ... JBC RMNEX,3,BIFDTO [J IF NOT TO BE LOADED ?=6J ... BNZ 6 NOTUNIQUE [MORE THAN ONE REQUEST ?=BB ... STO 3 7 [REMEMBER POINTER TO EXTANT TAPE ?=W2 ... SBN 1 1 [ARER THERE >1 OUTSTANDING REQUESTS ??*L ... BPZ 1 NOTUNIQUE [J IF YES ??T= ... ADN 1 2 [INCREMENT COUNT OF REQUESTS ?##W ...RMNEX [ ?#SG ... SBN 3 4 [UPDATE MODIFIER ?*#6 ... TXL 3 BOLC [END OF FDT? ?*RQ ... BCC RMREPEAT [J IF NOT ?B?B ... BZE 1 NOTEXTANT [J IF NO ENTRIES FOUND ?BR2 ... BS 7,BIFDTCL [SET THE CANT DO LOAD BIT ?C=L ... BRN NCDLOK [GO UPPLUS 2 - CD OK ?CQ= ...NOTEXAU [ ?D9W ... BCHX 3 £ [UPDATE POINTER TO PARAMETER ?DPG ... BCHX 1 £ [ UPDATE POINTER TO COMPARISON STRING ?F96 ... BRN XLDCH [ ?FNQ ...TSNGIVEN [X3 -> FIRST CHARACTER OF TSN ?G8B ... [X4 => NO. OF CHARACTERS LEFT ?GN2 ... LDX 7 3 [SAVE POINTER TO TSN ?H7L ... LDN 5 0 [X5 USED AS COUNTER ?HM= ... LDN 1 8 [USED TO CHECK VALIDITY OF TSN ?J6W ...TSNLOOPY [ ?JLG ... LDCH 2 0(3) [X2 => NEXT CHARACTER ?K66 ... BXGE 2 1,TSNENDED [J IF END OF TSN ?KKQ ... ADN 5 1 [UPDATE CHARACTER COUNT ?L5B ... BCHX 3 £ [UPDATE POINTER ?LK2 ... BCT 4 TSNLOOPY [J IF MORE TSN ?M4L ... [X7 -> START OF TSN ?MJ= ... [X5 => NO. OF CHARS IN TSN ?N3W ... [X4 => NO. OF CHARS REMAINING ?NHG ... [X3 -> NEXT CHARACTER ?P36 ...TSNENDED [ ?P9^ ... BZE 5 NOTEXTANT [J IF ZERO LENGTH TSN ?PDS ... BXL 1 5,NOTEXTANT [J IF MORE THAN 8 CHARS IN TSN ?PMM ... NGX 6 6 [SET X6 TO -1 IF +1 ... USED LATER ?PWG ... MHUNT 2,CPB,CUNI [FIND CUNI ?Q5* ... SLL 2 2 [CONVERT TO CHARACTER COUNT ?Q#8 ... SLC 7 2 [CONVERT TSN POINTER AS WELL ?QH3 ... SBX 7 2 [RELATIVIZE POINTER ?QPW ...TSNREPEAT1 [START LOOKING DOWN FDT BLOCK ?QYP ... LDX 1 BOLC [X1 -> FDT ?R7J ... LDX 2 A1(1) [X2 => NUMBER OF ENTRIES ?RBC ... BZE 2 NOTEXTANT [J IF NO EXTANT REQUESTS ?RK= ... SLL 2 2 [FOUR WORDS PER TSN ?RS5 ... ADX 2 BOLC [X3 -> LAST ENTRY IN FDT ?S2Y ... SBN 2 4 [LAST ENTRY IS EMPTY ?S9R ...TSNREPEAT2 [LOOK AT NEXT FDT ENTRY ?SDL ... JBC TSNEXT,2,BIFDTO [J IF NOT TO BE LOADED ?SMF ... LDX 3 FDSN(2) [X3 => BINARY TSN ?SW# ... CONSERNO 3,ACOMMUNE1 [CONVERT TO CHARACTERS ?T57 ... MHUNT 1,CPB,CUNI [REFIND CUNI ?T#2 ... SLL 1 2 [CONVERT ADDRESS TO CHARACTERS ?TGT ... ADX 1 7 [X1 -> TSN IN CHARACTERS IN COMMAND P ?TPN ... SRC 1 2 [X1 -> TSN IN WORDS AND CHARACTERS ?TYH ... LDX 0 ACOMMUNE1(2) [X0 => CHARACTER COUNT OF FDT TSN ?W7B ... BXL 0 5,REFIND [J IF TSN IN COMMAND LONGER THAN IN F ?WB9 ... LDX 0 5 [X0 => NUMBER OF CHARACTERS TO COMPAR ?WK4 ... STO 7 ACOMMUNE1(2) [STORE X7 TEMPORARILY ?WRX ...TSNREPEAT3 [NOW COMPARE TWO TSNS ?X2Q ... LDCH 4 ACOMMUNE2(2) [X4 => FIRST CHARACTER OF FDT TSN ?X9K ... LDCH 7 0(1) [X7 -> FIRST CHARACTER OF COMMAND TSN ?XDD ... BXE 4 7,MODUPDATE [J IF EQUAL...SO FAR! ?XM? ... LDX 2 FX2 [ ?XW6 ... LDX 7 ACOMMUNE1(2) [REINSTATE X7 ?Y4^ ... BRN REFIND [NOT THIS TSN ?Y?S ...MODUPDATE [ ?YGM ... BCT 0 NOTEXAU1 [J IF MORE CHARACTERS TO COMPARE ?YPG ... BNZ 6 NOTUNIQUE [MORE THAN ONE REQUEST ?YY* ... STO 3 6 [STORE BINARY TSN ?^78 ... LDX 2 FX2 [ ?^B3 ... LDX 7 ACOMMUNE1(2) [REINSTATE X7 ?^JW ...REFIND [ ?^RP ... FDTENT 2,3,TSNREPEAT1 [ACUMMULATORS UNSUITABLE FOR XFDTENT! #22J ...TSNEXT [POSITION ON NEXT FDT ENTRY #29C ... SBN 2 4 [FOUR WORDS PER ENTRY #2D= ... TXL 2 BOLC [END OF FDT #2M5 ... BCC TSNREPEAT2 [J IF NOT #2TY ... BNG 6 NOTEXTANT [J IF NO EXTANT REQUESTS #34R ... BZE 6 NOTEXTANT [DITTO #3?L ... CALL 7 XFDTENT [REFIND FDT ENTRY #3GF ... BRN NOTEXTANT [J IF ENTRY NO LONGER WITH US #3P# ... JBC NOTEXTANT,3,BIFDTO [J IF NO LONGER TO BE LOADED #3Y7 ... BS 3,BIFDTCL [SET CD LOAD BIT #472 ... BRN NCDLOK [EVERYTHING OK #4*T ...NOTEXAU1 [UPDATE POINTERS #4JN ... BCHX 2 £ [UPDATE POINTER TO FDT TSN #4RH ... BCHX 1 £ [UPDATE POINTER TO COMMAND TSN #52B ... BRN TSNREPEAT3 [COMPARE NEXT CHARACTER #59Q ...NCDLOK [ #5PB ... BS BOLC,BIFDTLMEF [SET 'LOOK AT FDT FIRST' BIT #692 ... STARTACT RET [KICK DTS TO DEAL WITH TAPE #6NL ... UPPLUS 2 [CD LOAD OK #78= ...NOTUNIQUE [ #7MW ... UPPLUS 1 [NOT UNIQUE #87G ...NOTEXTANT [ #8M6 ... UP [NOT EXTANT #8MP ...[ #8N# ...[ ******************************************************* X3DTSUBSA #8NX ...[ #8PG ...[ #8Q5 ...[ ENTRY FROM TSININC MACRO TO CHECK IF GIVEN TSN IN INCINDEX #8QN ...[ #8R? ...X3DTSUBSA #8RW ... LDX 4 ACOMMUNE2(2) [X4 = TSN #8SF ... LDX 5 ACOMMUNE1(2) [X5 = DEPTH OF INCINDEX #8T4 ... LDX 2 5 #8TM ... REWIND 0(2) #8W= ...XIN1 #8WT ... LDX 2 5 #8XD ... STEP 0(2) #8Y3 ... BZE 3 XIN4 #8YL ... LDX 6 AMTS-A1(3) #8^9 ...XIN2 #8^S ... BXE 4 AMAG-A1(3),XIN3 #92C ... ADN 3 INCMAGLEN #932 ... BCT 6 XIN2 #93K ... BRN XIN1 #948 ...XIN3 #94R ... UP #95B ...XIN4 #95^ ... UPPLUS 1 #96Q ...[ #9LB ...#END ^^^^ ...447450050001