USELEX5

(George Source)

Macros used: ALTLEND, ANSOK, BXE, FREECORE, FUWBSET, GEOERR, GETAFURB, HUNT, MENDAREA, NAME, NEWUSER, READLEX, SCURFUB, SEGENTRY, SETNCORE, SETREP2, STEPFBLOCK, TESTNAMX, TOPFCA, TOPFCA2, UP, WRITEB

USELEX5.txt
22FL    #OPT  K0USELEX=K0LEXICON
22^=    #OPT  K6USELEX=K6LEXICON
23DW    #LIS  K0USELEX  
23YG    #SEG    USELEX5                    [ TONY HAMILTON  
24D6          8HUSELEX  
24XQ    [   
25CB          SEGENTRY K1USELEX,READLEX 
25X2          SEGENTRY K2USELEX,NEWUSER 
26BL          SEGENTRY K3USELEX,REEFLEX 
26W=    [   
27*W    READLEX                            [ENTRY FROM READLEX MACRO
27TG    [   
28*6          HUNT     3,FILE,ADICT        [GET -> TO BLOCK WITH USER NAME  
28SQ          NAME     3,FILE,ASELFLEX     [RENAME BLOCK AS ASELFLEX BLOCK  
29#B          ALTLEND  3,4                 [AND LENGTHEN LOGICAL LENGTH TO 4
29S2          CALL  4  SR                  [SEARCH FOR RECORD   
2=?L          BRN      NOUSE               [USER NOT FOUND  
2=R=          TOPFCA   1                   [X1 -> FCA OF LEXICON
2?=W          LDX   6  FREADBLOCK(1)       [BL. PTR. IN LEXICON 
2?QG          SBN   6  FBLKS
2#=6          SLL   6  9
2#PQ          ADX   6  5
2*9B          LDCT  0  #600 
2*P2          ANDX  0  GSUPUSER(2)         [PICK UP PSEUDO AND TEMP BITS
2B8L          ORX   6  0
2BN=          STO   6  GSUPUSER(3)         [PUT IN FILE/ASELFLEX
2C7W          ANSOK 
2CMG          UP
2D76    NOUSE   
2DLQ          FREECORE 3                   [FREE ASELFLEX BLOCK 
2F6B          SETREP2  NOUSER   
2FL2          UP
2G5L    [   
2GK=    NEWUSER                            [ENTRY FROM NEWUSER MACRO
2H4W    [   
2HJG          HUNT     3,FILE,ASUPLEX   
2J46          LDX   4  GSUPUSER(3)  
2JHQ          SLL   4  6                   [TO TEST IF -> IS ZERO   
2K3B          BNZ   4  R0   
2KH2          GEOERR   1,NOSUPUSE   
2L2L    R0  
2LG=          TOPFCA2  1
2L^W          SMO      FBACKPOINT(1)
2MFG          LDX   3  BPTR(1)  
2M^6          LDX   4  FBLMOD(3)
2NDQ          ADN   4  A1-1                [SET READ POINTER TO LAST BLOCK  
2NYB    R1  
2PD2          STO   4  FREADBLOCK(1)
2PXL    R6  
2QC=          SCURFUB  3,,R5
2QWW          LDN   5  0
2RBG    R2  
2RW6          ADN   5  4                   [DONT USE FIRST RECORD   
2S*Q          BXE   5  BSBS,NB             [NO SPACE IN THIS BLOCK  
2STB          SMO      5
2T*2          LDX   0  GLUSER(3)           [RECORD IN USE   
2TSL          BNZ   0  R2   
2W#=    R3  
2WRW          HUNT     2,FILE,ASUPLEX   
2X?G          LDN   4  GLUSER(2)
2XR6          ADN   5  A1(3)
2Y=Q          MOVE  4  4                   [MOVE NEW RECORD IN  
2YQB          FREECORE 2                   [FREE ASUPLEX
2^=2          FUWBSET  ,XNOT
2^PL          UP
329=    NB  
32NW          LDX   0  A1+1(3)  
338G          BNG   0  XL                  [LAST MAIN BLOCK OF LEXICON  
33N6          TOPFCA2  1
347Q          LDX   4  FREADBLOCK(1)
34MB          SBN   4  1                   [STEP BACK READ POINTER 1 BLOCK  
3572          BRN      R1   
35LL    R5  
366=          GETAFURB  
36KW          BRN      R6   
375G    XL  
37K6          SETNCORE 512,3,FILE,FWB      [SET UP NEW BLOCK
384Q          LDN   4  A1(3)
38JB          LDN   5  A1+1(3)  
3942          STOZ     A1(3)               [ZEROIZE THE FRB 
39HL          MOVE  4  511  
3=3=          HUNT     2,FILE,ASUPLEX   
3=GW          LDN   4  GLUSER(2)
3?2G          LDN   5  A1+4(3)             [MOVE IN NEWUSER TO SECOND RECORD
3?G6          MOVE  4  4                   [SPACE   
3?^Q          FREECORE 2
3#FB          WRITEB                       [WRITE NEW BLOCK TO BACKING STORE
3#^2          UP
3*DL    XNOT  GEOERR   1,LBLOKLOS   
3*Y=    [   
3BCW    REEFLEX                            [ENTRY FROM FREELEX MACRO
3BXG    [   
3CC6          CALL  4  SR                  [FIND RECORD 
3CWQ          BRN      NOUSER   
3DBB          STOZ     GLUSER(2)
3DW2          STOZ     GSUPUSER(2)  
3F*L          FREECORE 3                   [ASELFLEX BLOCK  
3FT=          FUWBSET  ,XNOT
3G#W          UP
3GSG    NOUSER  
3H#6          GEOERR   1,NOUSER 
3HRQ
3J?B
3JR2    [ THIS S/R SEARCHES THROUGH LEXICON FOR THE USERNAME IN THE FIRST FILE/ 
3K=L    [ ASELFLEX BLOCK. ON FINDING IT X2 -> RECORD IN A FILE/FRB WHICH STARTS 
3KQ=    [ A1+[5] WORDS BEFORE. IF NOT FOUND IT EXI TS TO AN ERROR BRANCH
3L9W    [ X3 -> ASELFLEX.   
3LPG    SR    SBX   4  FX1  
3M96          FASTREWI 1
3MNQ    SRA 
3N8B          SCURFUB  2,,SRB   
3NN2          HUNT     3,FILE,ASELFLEX  
3P7L          LDX   5  GLUSER(3)
3PM=          BPZ   5  SRX                 [J IF WORD DOES NOT START WITH CHAR  
3Q6W          LDN   5  0
3QLG    SR1 
3R66          ADN   5  4
3RKQ          BXE   5  BSBS,SR2 
3S5B          ADN   2  4
3SK2          TESTNAMX 3,GLUSER(2),GLUSER(3),SR1
3T4L          ADX   4  FX1  
3TJ=          EXIT  4  1
3W3W    SRB 
3WHG          GETAFURB  
3X36          BRN      SRA  
3XGQ    SRX 
3Y2B          ADX   4  FX1  
3YG2          EXIT  4  0
3Y^L    SR2 
3^F=          STEPFBLOCK    ,SRX           [STEP BLOCK POINTERS 
3^YW          BRN      SRA  
42DG          MENDAREA 25,K99USELEX 
42Y6    #END
^^^^ ...64777437000100000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1