8 22FL #OPT K0LEXIFIND=0 10 22_= #OPT K6LEXIFIND=K6LEXICON 10 23DW #LIS K0LEXIFIND>K0LEXICON 15 23YG #SEG LEXIFIND [ JUDY BIDGOOD 10 24D6 8HLEXIFIND 12 24XQ SEGENTRY K1LEXIFIND,XFINDNAME 12 25CB SEGENTRY K2LEXIFIND,XPROPUSER 12 25X2 SEGENTRY K3LEXIFIND,XPROPTEST 4 26BL [ 6 26W= #OPT APAT=0 4 27*W # 21 27TG # GIVEN A FILE/FABSNB BLOCK ,LEXIFIND EXPANDS IT TO A FULL FILE/FABSNB 14 28*6 # STARTING AT MASTER USING THE LEXICON . 21 28SQ # THE LEXICON IS OPENED AND THE RECORD OF THE NAME CORRESPONDING TO THE 21 29#B # TOP USER NAME IN THE FABSNB IS FOUND . USING THE POINTER WORD IN THIS 21 29S2 # RECORD THE SUPERIOR USERS NAME IS FOUND AND THIS NAME IS PLACED IN 9 2=?L # THE EXPANDED FABSNB . 20 2=R= # THE PROCESS IS REPEATED UNTIL THE TOP USER NAME IN THE FABSNB IS 6 2?=W # MASTER . 4 2?QG # 21 2#=6 # THIS VERSION IS FOR USE IN CONJUNCTION WITH THE FILESTORE RING SYSTEM 10 2#PQ MASTER 10,12HMASTER 10 2*9B 12HLEXICON 9 2*P2 1,1,4HB1 9 2B8L ZCOL 4H : 6 2BN= SETFABSNB 8 2C7W SBX 7 FX1 7 2CMG LDN 4 4 11 2D76 SETUPCOR 4,3,FILE,FABSNB 9 2DLQ STO 4 HDREC(3) 8 2F6B ADX 7 FX1 7 2FL2 EXIT 7 0 4 2G5L [ 13 2GK= XPROPUSER [ENTRY FOR PROPUSER MACRO 4 2H4W [ 16 2HJG STOZ AWORK4(2) [REMEMBER ENTRY 9 2J46 CALL 7 SETFABSNB 10 2JHQ LDN 4 CPREFIX(2) 9 2K3B BRN XMERGE 4 2KH2 [ 13 2L2L XPROPTEST [ENTRY FOR PROPTEST MACRO 4 2LG= [ 19 2L_W STO 1 AWORK4(2) [SET +VE TO REMEMBER ENTRY 9 2MFG CALL 7 SETFABSNB 7 2M_6 TOPFCB2 2 9 2NDQ LDN 4 FME1(2) 5 2NYB XMERGE 10 2PD2 LDN 5 HDREC+1(3) 7 2PXL MOVE 4 3 9 2QC= BRN ZMERGE 4 2QWW [ 13 2RBG XFINDNAME [ENTRY FOR FINDNAME MACRO 4 2RW6 [ 19 2S*Q NGS 1 AWORK4(2) [SET -VE TO REMEMBER ENTRY 16 2STB HUNT 3,FILE,FABSNB [X3-> TO FABSNB 5 2T*2 ZMERGE 7 2TSL PHOTO 6 9 2W#= #SKI K6LEXIFIND>599-599 4 2WRW ( 11 2X?G TRACE A1+1(3),LEXIFIND 10 2XR6 TRACE 6,LEXINBL1 4 2Y=Q ) 12 2YQB TESTNAME 3,MASTER+1(1),A1+1(3) 20 2_=2 BZE 7 ZSTART [J IF DOES NOT START WITH MASTER 8 2_PL KEEPREP 7,OK 8 329= BRN ZUP 5 32NW ZSTART 14 338G # OPEN LEXICON CHECKING WHETHER MASTER OPEN 21 33N6 SETNCORE 10,2,FILE,FABSNB [GET CORE FOR BLOCK TO OPEN LEXICON 9 347Q ADN 1 MASTER 8 34MB ADN 2 A1 16 3572 MOVE 1 10 [SET UP FABSNB 18 35LL OPEN ZBRK,READR [OPEN LEXICON FOR READING 9 366= TESTRPN2 OK,ZBRK 10 36KW MFREE FILE,FABSNB 10 375G # FIND THE USER NAME RECORD 7 37K6 LDN 5 0 7 384Q TOPFCB2 2 17 38JB LDX 0 FBLMOD(2) [CHECK THAT LEXICON 16 3942 SBN 0 FBLKS-A1 [HAS SOME BLOCKS 8 39HL BNZ 0 ZBAK 10 3=3= GEOERR 1,EMPTYLEX 4 3=GW ZBAK 9 3?2G SCURFUB 2,,ZGET 18 3?G6 ADN 5 1 [ADD ONE TO BLOCK COUNT 4 3?_Q ZTW 8 3#FB TESTMOVE 6,Z2 7 3#_2 PHOTO 6 9 3*DL #SKI K6LEXIFIND>599-599 10 3*Y= TRACE 6,LEXINBL2 10 3BCW HUNT 3,FILE,FABSNB 20 3BXG Z2 LDN 1 127 [LOAD COUNT OF RECORDS IN BLOCK 17 3CC6 ZRTN ADN 2 4 [MOVE TO NEXT RECORD 12 3CWQ TESTNAME 3,GLUSER(2),A1+1(3) 18 3DBB BNZ 7 ZFD [J IF USER NAMES EQUAL 19 3DW2 BCT 1 ZRTN [J IF MORE RECORDS TO READ 15 3F*L SBN 2 508 [X2-> TO FRB 19 3FT= STEPFBLOCK ,ZNU [STEP READ PTRS ON A BLOCK 17 3G#W BRN ZBAK [J TO READ NEW BLOCK 4 3GSG ZNU 19 3H#6 KEEPREP 7,NOUSER [USER NOT FOUND BEFORE E.O.F. 8 3HRQ BRN ZFREE 4 3J?B ZGET 21 3JR2 GETAFURB [READ NEXT BLOCK FROM BACKING STORE 8 3K=L BRN ZBAK 4 3KQ= ZFD 20 3L9W SBN 5 1 [SUBTRACT ONE FROM BLOCK COUNT 10 3LPG # FIND POINTER TO SUPUSER 17 3M96 ZFN LDX 7 GSUPUSER(2) [LOAD POINTER WORD 17 3MNQ BZE 7 ZLEN [J IF REACHED MASTER 7 3N8B LDX 0 7 19 3NN2 SRL 0 9 [SHIFT TO GET BLOCK POINTER 18 3P7L ANDN 0 #777 [MASK OUT REST OF WORD 9 3PM= # FIND BLOCK OF SUPUSER 19 3Q6W BXE 0 5,ZLEN [J IF SAME BLOCK AS IN CORE 21 3QLG STO 0 5 [STORE -> TO NEXT BLOCK TO BE READ IN 19 3R66 BNG 0 ZST [J IF ORIGINAL -> WAS ZERO 17 3RKQ ADN 0 FBLKS [ADD FBLKS TO GIVE -> 7 3S5B ZST TOPFCA 2 10 3SK2 STO 0 FREADBLOCK(2) 4 3T4L ZSCU 18 3TJ= SCURFUB 2,,ZNOB [GET PTR TO CURRENT BLOCK 8 3W3W # LENGTHEN FABSNB 8 3WHG ZLEN TESTMOVE 6,Z3 7 3X36 PHOTO 6 9 3XGQ #SKI K6LEXIFIND>599-599 10 3Y2B TRACE 6,LEXINBL3 10 3YG2 HUNT 3,FILE,FABSNB 10 3Y_L Z3 LDX 6 ALOGLEN(3) 19 3_F= ADN 6 6 [ADD SIX TO LOGICAL LENGTH 8 3_YW ALTLEN 3,6 13 42DG # MOVE SIX WORD USER NAMES DOWN FABSNB 7 42Y6 PHOTO 6 9 43CQ #SKI K6LEXIFIND>599-599 10 43XB TRACE 6,LEXINBL4 10 44C2 HUNT 3,FILE,FABSNB 7 44WL Z4 LDN 0 6 18 45B= ADS 0 A1(3) [ADD 6 TO RECORD HEADER 18 45TW LDX 1 ALOGLEN(3) [LOAD NEW LOGICAL LENGTH 8 46*G SBN 1 10 21 46T6 BZE 1 ZONLY [J IF ONLY ONE USER NAME AT PRESENT 19 47#Q LDN 2 A1+3(3) [-> TO LAST WORD OF USER NAME 20 47SB ZNAGA SMO 1 [LOAD IN USER NAME CHARS STARTING 15 48#2 LDX 0 0(2) [AT BOTTOM 7 48RL SMO 1 20 49?= STO 0 6(2) [STORE SIX PLACES FURTHER DOWN 8 49QW BCT 1 ZNAGA 12 4==G # MOVE TOP USER NAME DOWN FABSNB 18 4=Q6 ZONLY LDN 0 A1+1(3) [ADDRESS OF CURRENT USER 17 4?9Q LDN 1 A1+5(3) [ADDRESS TO MOVE TO 7 4?PB MOVE 0 3 8 4#92 LDX 1 FX1 15 4#NL LDX 0 ZCOL(1) [LOAD COLON 20 4*8= STO 0 A1+4(3) [STORE IN FIRST WORD OF USER NAME 7 4*MW LDN 0 0 18 4B7G STO 0 A1+9(3) [STORE ZERO IN SIXTH WORD 17 4BM6 BPZ 7 Z5 [J IF NOT PSEUDO-USER 17 4C6Q LDCT 0 #400 [LOAD PSUEDO-USER BIT 9 4CLB Z5 STO 0 A1+8(3) 15 4D62 # MOVE IN NEW THREE WORD USER NAME TO FABSNB 9 4DKL ZTRY SCURFUB 2,,ZGON 17 4F5= BZE 7 ZMAST [J IF REACHED MASTER 21 4FJW ANDN 7 #777 [GET ADDRESS POINTER IN SUPUSER BLOCK 19 4G4G ADS 7 2 [ADD SUPUSER ADDRESS POINTER 10 4GJ6 LDN 0 A1+HUSER(2) 9 4H3Q LDN 1 A1+1(3) 7 4HHB MOVE 0 3 8 4J32 BRN ZFN 4 4JGL ZNOB 18 4K2= TOPFCB 2 [CHECK THAT NEXT BLOCK 18 4KFW LDN 0 FBLKS-A1 [WILL NOT CAUSE READING 16 4K_G ADX 0 5 [BEYOND E.O.F. 7 4LF6 SBN 0 1 11 4LYQ BXL 0 FBLMOD(2),ZRED 10 4MDB GEOERR 1,LEXIBLOK 4 4MY2 ZRED 21 4NCL GETAFURB [READ NEXT BLOCK FROM BACKING STORE 8 4NX= BRN ZSCU 4 4PBW ZGON 7 4PWG GETAFURB 10 4QB6 HUNT 3,FILE,FABSNB 8 4QTQ BRN ZTRY 8 4R*B # MOVE IN MASTER 10 4RT2 ZMAST LDN 0 MASTER+1(1) 9 4S#L LDN 1 A1+1(3) 7 4SS= MOVE 0 3 9 4T?W ZEN KEEPREP 7,OKAY 5 4TRG ZFREE 16 4W?6 CLOSETOP [CLOSE LEXICON 4 4WQQ ZUP 8 4X=B LDX 2 FX2 9 4XQ2 LDX 0 AWORK4(2) 17 4Y9L BPZ 0 SPLIT [J UNLESS FINDNAME 5 4YP= PUTREP 7 4_8W PUTREP2 7 9 4_NG #SKI K6LEXIFIND>599-599 9 5286 TRACE 7,LEXIEND 5 52MQ UP 5 537B SPLIT 17 53M2 BNZ 7 PUTREP [PASS NON-OK REPLY UP 10 546L MHUNT 3,FILE,FABSNB 15 54L= LDN 4 HDREC+4(3) [SEARCH LIMIT 9 555W LDN 1 HDREC(3) 8 55KG ADX 1 0(1) 21 5656 SBN 1 2 [ADDRESS OF WORD 5 OF LAST USERNAME 5 56JQ PSEUDO 8 574B LDX 0 0(1) 16 57J2 BPZ 0 REAL [J UNLESS PSEUDO 9 583L KEEPREP 7,PSEUDO 7 58H= SBN 1 6 9 592W BXGE 1 4,PSEUDO 10 59GG GEOERR 1,FORMUSER 4 5=26 REAL 7 5=FQ SBN 1 3 9 5=_B ADN 2 ACOMMUNE1 7 5?F2 MOVE 1 3 7 5?YL FREECORE 3 9 5#D= BRN PUTREP 4 5#XW ZBRK 21 5*CG GEOERR 1,LEXIFIND [GEOERR BREAK IN ON OPENING LEXICON 20 5*X6 [ OR REPLY FROM OPEN NOT OK 4 5BBQ ZGR1 20 5BWB GEOERR 1,LEXLOST [GEOERR LEXICON RECORD CORRUPTED 6 5CB2 ZCURRUSER 10 5CTL GEOERR 1,CURRUSER 4 5D*= [ 11 5DSW MENDAREA 20,K99LEXIFIND 4 5F#G #END 8 ____ ...24506577000200000000