10 22FL SEG BMAPTAPE,865 11 22_= SEGENTRY K1BMAPTAPE,TAPE 15 23DW [THIS SEGMENT IS ENTERED FROM BMAPONE TO TAKE 11 23YG [SPECIAL ACTION ON TAPE ENTRANTS 5 25X2 NFIFTAPE 8 26BL #HAL +FI+FTAPE,0 5 26W= MTNOT 8 27*W +BMTU 5 27TG MTNOTOWN 9 28*6 +BMTWP 5 28SQ MTWRONG 9 29#B +BMTO 6 2?QG ROUNDMASK 9 2#=6 #77777774 8 2#PQ NFIVE +5 5 2*9B TAPEMASK 9 2*P2 #37777777 4 2CMG [ 4 2D76 [ 19 2DLQ [ THUIS ROUTINE SETS UP A GMON ASET BLOCK FOR MESSAGE PARAMETERS 4 2F6B [ 12 2FL2 [ ON ENTRY X5=> SIZE OF BLOCK 10 2G5L [ X7 =>LINK 4 2GK= [ 5 2H4W OUTBLOCK 8 2HJG SBX 7 FX1 7 2J46 OUTBLOCK 5 7 2JHQ STEPAGAIN 8 2K3B ADX 7 FX1 7 2KH2 EXIT 7 0 4 2L2L [ 4 2LG= [ 17 2L_W [ THIS ROUTINE PACKS A PARAMETER INTO A GMOM ASET BLOCK 15 2MFG [ ON ENTRY X2 [ ADDRESS OF PARAMATER DATA 12 2M_6 [ X5 = LENGTH OF DATA 12 2NDQ [ X6 = LPDC CHARACTER 9 2NYB [ X7 = LINK 5 2PD2 OUTPACK 8 2PXL SBX 7 FX1 8 2QC= OUTPACKX 2,5,6 8 2QWW ADX 7 FX1 7 2RBG EXIT 7 0 4 2RW6 [ 5 2S*Q MONOUT 8 2STB SBX 7 FX1 7 2T*2 MONOUTX 3 8 2TSL ADX 7 FX1 7 2W#= EXIT 7 0 19 39HL [************************************************** SERCHFENTRY 20 3=3= [ ROUTINE TO BINARY CHOP A FTAPE OR FUSER BLOCK TO FIND A REQUIRED 5 3=GW [ ENTRY 10 3?2G [ X3 => ADDRESS OF BLOCK 13 3?G6 [ X5 => KEY OF ENTRY THAT WE REQUIRE 4 3?_Q [ 6 3#FB SERCHFENTRY 21 3#_2 ANDX 7 BITS22LS ['CALL' WILL SET B0 OF LINK IF 'V' SE 8 3*DL LDX 1 FX1 9 3*Y= LDX 0 ATYPE(3) 19 3BCW BXU 0 NFIFTAPE(1),WEHAVEFUSER [J IF SEARCHING A FUSER 8 3BXG ORX 7 GSIGN 6 3CC6 WEHAVEFUSER 21 3CWQ STO 4 ACOMMUNE2(2) [WE ALSO WISH TO SAVE THIS (BMAPONE) 6 3DBB SHAREDCODE 7 3DW2 LDX 4 5 16 3F*L LDX 0 A1(3) [USED DATA 'V' 7 3FT= LDX 6 3 7 3G#W ADX 6 0 21 3GSG ADN 6 A1+1 [DISTANCE MARKER FOR LIMIT OF SEARCH 8 3H#6 LDN 5 A1+1 20 3HRQ ADX 5 3 [HOME MARKER FOR START OF SEARCH 5 3J?B NEXTCHOP 16 3JR2 SRL 0 1 [DIVIDE V BY 2 18 3K=L BPZ 7 ROUNDFUSER [IF WE HAVE A FUSER BLOCK 4 3KQ= [ 14 3L9W [******************************************* 19 3LPG [ THIS SECTION ROUNDS DOWN THE NEW 'V' FOR A FTAPE BLOCK TO BE 19 3M96 [ DIVISIBLE BY FOUR ,THUS POINTING IT AT WORD 0 OF A FTAPE ENTRY 4 3MNQ [ 20 3N8B ANDX 0 ROUNDMASK(1) [MASK FOR REMOVING B22 AND B23 9 3NN2 BRN ROUNDDONE 4 3P7L [ 15 3PM= [******************************************** 19 3Q6W [ THIS SECTION ROUNDS DOWN THE NEW 'V' FOR A FUSER BLOCK TO BE 19 3QLG [ DIVISIBLE BY FIVE,THUS POINTING IT AT WORD 0 OF A FUSER ENTRY 4 3R66 [ 6 3RKQ ROUNDFUSER 7 3S5B STO 0 2 9 3SK2 DVS 1 NFIVE(1) 7 3T4L SBX 0 1 8 3TJ= LDX 1 FX1 6 3W3W ROUNDDONE 18 3WHG STO 0 3 [PUT'V' INTO A MODIFIER 19 3X36 BPZ 7 NOMASKBMBIT [IF FUSER THEN KEY IS GENUINE 10 3XGQ LDX 2 TAPEMASK(1) 7 3Y2B SMO 5 17 3YG2 ANDX 2 0(3) [CLEANED UP KEY IN X2 9 3Y_L BRN OVERFUSER 6 3_F= NOMASKBMBIT 7 3_YW SMO 5 8 42DG LDX 2 3(3) 6 42Y6 OVERFUSER 19 43CQ BXE 2 4,WEHAVEIT [IF THIS IS THE ENTRY WE WANT 10 43XB BNZ 3 NOCHOPAGAIN 14 44C2 TRACEIF K6BMAPONE,99,299,4,DIRNDICT 7 44WL LDN 2 0 9 45B= BRN WAYOUT 6 45TW NOCHOPAGAIN 9 46*G BXL 2 4,MOREBIG 7 46T6 STO 5 6 18 47#Q ADX 6 0 [NEW'DISTANCE' = 0D+V 16 47SB BRN NEXTCHOP [TO CHOP AGAIN 5 48#2 MOREBIG 17 48RL ADX 5 0 [NEW 'HOME' = OH +V 7 49?= LDX 0 6 7 49QW SBX 0 5 16 4==G BRN NEXTCHOP [TO CHOP AGAIN 5 4=Q6 WEHAVEIT 4 4?9Q [ 18 4?PB [**********************************************:************ 15 4#92 [ WE HAVE CORRECT KEY, BUT IF IN FUSER BLOCK 15 4#NL [ WE MUST NOW LOCATE THE CORRECT USERNAME AS 12 4*8= [ KEYS ARE NOT NECESSARILY UNIQUE. 4 4*MW [ 19 4B7G ADX 3 5 [POINTER TO ENTRY IN BLOCK 9 4BM6 BNG 7 NOWOUT 8 4C6Q LDX 2 FX2 5 4CLB TRYBACK 7 4D62 SBN 3 5 8 4DKL LDX 0 3(3) 9 4F5= BXE 0 4,TRYBACK 7 4FJW ADN 3 5 5 4G4G NEXTSLOT 8 4GJ6 LDX 0 3(3) 9 4H3Q BXU 0 4,NOTFND 7 4HHB LDN 5 2 8 4J32 STOZ 1 5 4JGL NEXTWORD 8 4K2= LDX 0 0(3) 10 4KFW SMO ACOMMUNE1(2) 9 4K_G TXU 0 EUSE1N(1) 9 4LF6 BCS NOTHIS 7 4LYQ ADN 3 1 7 4MDB ADN 1 1 7 4MY2 SBN 5 1 9 4NCL BPZ 5 NEXTWORD 7 4NX= SBN 3 3 9 4PBW BRN NOWOUT 5 4PWG NOTHIS 7 4QB6 ADN 5 3 7 4QTQ ADS 5 3 9 4R*B BRN NEXTSLOT 5 4RT2 NOTFND 4 4S#L [ 16 4SS= [*************************************************** 11 4T?W [ EXIT +0 IF ENTRY NOT FOUND 4 4TRG [ 7 4W?6 STOZ 2 9 4WQQ BRN WAYOUT 5 4X=B NOWOUT 4 4XQ2 [ 19 4Y9L [************************************************************* 10 4YP= [ EXIT +1 IF ENTRY FOUND 4 4_8W [ 7 4_NG LDN 2 1 5 5286 WAYOUT 8 52MQ LDX 1 FX1 10 537B ANDX 7 TAPEMASK(1) 8 53M2 SMO FX2 9 546L LDX 4 ACOMMUNE2 7 54L= ADX 7 2 7 555W EXIT 7 0 4 55KG [ 18 5656 [************************************************* STEPAGAIN 4 56JQ [ 6 574B STEPAGAIN 8 57J2 SBX 7 FX1 7 583L STEPAGAIN 8 58H= ADX 7 FX1 7 592W EXIT 7 0 4 59GG [ 19 5=26 [************************************************* STEPREWRITE 4 5=FQ [ 6 5=_B STEPREWRITE 8 5?F2 STEPREWRITE 7 5?YL EXIT 7 0 4 5#D= [ 4 5#XW [ 19 ?JLG [********************************************************* TAPE 18 ?K66 [ ENTRY (ACROSS) FROM BMAPONE TO PROCESS ENTRY FOR A TAPE 4 ?KKQ [ 4 ?L5B TAPE 9 ?LK2 CALL 7 STEPAGAIN 15 ?M4L TRACEIF K6BMAPONE,99,299,ESERN(3),TAPE 9 ?MJ= NGX 0 ESERN(3) 9 ?N3W BPZ 0 XFILEBENT 18 ?NHG JBCC RETURN,3,BNERASE [CLEAR RETURN TAPE BIT 10 ?P36 CALL 7 STEPREWRITE 5 ?PGQ RETURN 19 ?Q2B JBCC TSINFTAPE,3,BNBMO [CLEAR ERASE RETURNING BIT 10 ?QG2 CALL 7 STEPREWRITE 6 ?Q_L TSINFTAPE 4 ?RF= [ 18 ?RYW [********************************************************** 16 ?SDG [ LOCATE FTAPE ENTRY AND CHECK IF FOR AN UNOWNED 15 ?SY6 [ TAPE(J. TO NOTOWNED), IF OWNED BY A DIFFERENT 17 ?TCQ [ USER(J. TO WRONGOWNER) OR IF THERE IS NO FTAPE ENTRY 14 ?TXB [ (J. TO MTNOTOWNED). IF O.K. MARK FOUND. 4 ?WC2 [ 18 ?WWL LDX 5 ESERN(3) [TSN WE REQUIRE IN FTAPE 10 ?XB= HUNTMISB 3,FI,FTAPE 10 ?XTW CALL 7 SERCHFENTRY 20 ?Y*G BRN MTNOTFOUND [IF NO ENTRY FOR TAPE IN FUSER 17 ?YT6 LDX 0 1(3) [WORD 1 OF USERNAME 9 ?_#Q BZE 0 NOTOWNED 8 ?_SB LDX 2 FX2 7 #2#2 TOPFCB2 1 20 #2RL TESTNAMX 3,FME1(1),1(3),WRONGOWNER,7 [ARE USERNAMES THE SAME 8 #3?= LDCT 0 #400 16 #3QW ANDX 0 0(3) [IS TSN MARKED 9 #4=G BZE 0 NOTMARKED 21 #4Q6 BRN XFILEBENT [REPEATED USERNAME - TREAT AS BENT 6 #59Q NOTMARKED 8 #5PB LDCT 0 #400 16 #692 ORS 0 0(3) [ MARK 'FOUND' 12 #6NL LDN 3 ASUPUSER-EUSE1N(2) 4 #78= [ 18 #7MW [********************************************************* 16 #87G [ NOW UPDATE PROPER OWNER'S COUNT OF TAPES IN FUSER 4 #8M6 [ 10 #96Q STO 3 ACOMMUNE1(2) 10 #9LB LDX 5 ASUPUSER(2) 10 #=62 ADX 5 ASUPUSER+1(2) 10 #=KL ADX 5 ASUPUSER+2(2) 10 #?5= HUNTMISB 3,FI,FUSER 10 #?JW CALL 7 SERCHFENTRY 8 ##4G BRN XBR 7 ##J6 LDN 0 1 18 #*3Q ADS 0 4(3) [INCREMENT USERS MT COUNT 17 #*HB [***************************************************** 16 #B32 [GO BACK TO BMAPONE TO CHECK TRAPS AND INDEX RECORDS 9 #BGL ACROSS BMAPONE,4 4 #C2= [ 20 BX4Q [****************************************************** NOTOWNED 14 BXJB [ FTAPE ENTRY SHOWS THAT TAPE IS NOT OWNED. 15 BY42 [ ARRANGE FOR IT TO BE RETURNED FROM THIS USER 12 BYHL [ AND SEND MESSAGE TO THAT EFFECT 4 B_3= [ 5 B_GW NOTOWNED 9 C22G CALL 7 STEPAGAIN 9 C2G6 BS 3,BNBM 4 C2_Q [ 20 C3FB [******************************************************* MTNOTFOUND 15 C3_2 [ NO FTAPE ENTRY FOR THIS TAPE SO AGAIN GET IT 10 C4DL [ RETURNED AND SEND MESSAGE 4 C4Y= [ 6 C5CW MTNOTFOUND 7 C5XG LDN 5 6 18 C6C6 CALL 7 OUTBLOCK [SET UP 6 WORD GMON ASET 9 C6WQ CALL 7 STEPAGAIN 9 C7BB LDN 2 ESERN(3) 7 C7W2 LDN 5 1 14 C8*L LDN 6 17 [TSN PDC 9 C8T= CALL 7 OUTPACK 7 C9#W TOPFCB 1 9 C9SG LDN 2 FME1(1) 7 C=#6 LDN 5 3 16 C=RQ LDN 6 3 [ USERNAME PDC 9 C??B CALL 7 OUTPACK 8 C?R2 SMO FX1 20 C#=L LDX 5 MTNOT [MTNOTFOUND MESSAGE IDENTIFIER 9 C#Q= CALL 7 STEPAGAIN 18 C*9W JBCC NOWOUTPUT,3,BNBM [IF CASE WAS MTNOTFOUND 10 C*PG LDX 5 MTNOTOWN(1) 17 CB96 BRN NOWOUTPUT [ TO OUTPUT MESSAGE 4 CBNQ [ 20 CC8B [****************************************************** WRONGOWNER 15 CCN2 [ THIS TAPE IS OWNED BY ANOTHER USER. GET IT 14 CD7L [ RETURNED FROM THIS USER AND SEND MESSAGE 4 CDM= [ 6 CF6W WRONGOWNER 10 CF#4 ... HUNTMISB 1,FI,FTAPE 7 CFF= ... SBX 3 1 7 CFRN ... STO 3 4 8 CG66 LDN 5 10 9 CGKQ CALL 7 OUTBLOCK 9 CH5B CALL 7 STEPAGAIN 9 CHK2 LDN 2 ESERN(3) 7 CJ4L LDN 5 1 14 CJJ= LDN 6 17 [ TSN PDC 9 CK3W CALL 7 OUTPACK 10 CK93 ... HUNTMISB 2,FI,FTAPE 7 CK=Q ... ADX 2 4 20 CK#F ... ADN 2 1 [ ? OF OTHER USERNAME IN FTAPE 7 CKB8 ... LDN 5 3 7 CKCX ... LDN 6 3 9 CKFL ... CALL 7 OUTPACK 7 CKHG TOPFCB 1 9 CL36 LDN 2 FME1(1) 7 CLGQ LDN 5 3 7 CM2B LDN 6 3 9 CMG2 CALL 7 OUTPACK 8 CRWL SMO FX1 17 CSB= LDX 5 MTWRONG [WRONGOWNER MESSAGE 6 CSTW NOWOUTPUT 20 CT*G MONOUTX 5 [ OUTPUT THE APPROPIATE MESSAGE 9 CTT6 CALL 7 STEPAGAIN 18 CW#Q BS 3,BNERASE [MARK TAPE TO BE RETURNED 8 CWSB STEPREWRITE 17 CX#2 [****************************************************** 14 CXRL [GO BACK TO BMAPONE TO SKIP BLOCKS RECORD 10 CY?= [AND CHECK TRAPS RECORD ETC 9 CYQW ACROSS BMAPONE,5 6 F=QL XFILEBENT 10 F?== ACROSS BMAPONE,12 6 F?PW XNOTAPEUSER 10 F#9G GEOERR 1,NOTAPEUS 4 F#P6 XBR 10 F*8Q ... GEOERR 1,BMAPTAPE 4 F*NB [ 4 FB82 #END 6 ____ ...173651310003