OWNERCHE84

(George Source)

Macros used: BRUSEN, BXE, BXL, BXU, CHEKPRIV, FCJOB, FINDNAME, FREECORE, GEOERR, HUNT, JBC, MFREE, OWNERCHE, SEGENTRY, SETNCORE, SETREP, SREPC, TOPFCB, UP

OWNERCHE84.txt
22FL ...#SEG  OWNERCHE                      [EDWARD MOON
22^=    #OPT  K0OWNERCHE=0  
23DW    #OPT  K6OWNERCHE=0  
23YG    #LIS  K0OWNERCHE>K0ALLGEO>K0GREATGEO>K0FILESTORE
24D6                   8HOWNERCHE   
24XQ          SEGENTRY K1OWNERCHE,Z1OWNER   
25CB          SEGENTRY K2OWNERCHE,Z2OWNER   
25X2    #     THIS ROUTINE CHECKS IF FILES IN THE DIRECTORY OPEN AT THE TOP LEVE
26BL    #     ARE OWNED BY THE PROPER USER.IF THEY ARE THE REPLY 'OK' IS TO BE S
26W=    #     OTHERWISE THE REPLY IS 'NOTOWNER'.
27*W    MAS 
27TG                   12HMASTER
28*6
28SQ
28^Y ...SINFACC   8HINFACC  
2976 ...SALLACC   8HALLACC  
29#B    Z1OWNER 
29FJ ...      LDX   0  ACOMMUNE8(2) 
29LQ ...      STO   0  AWORK1(2)
29S2    #SKI  ANOUSER   
2=?L    (   
2=R=          BRUSEN   NOUS                [J IF NO USER CONTEXT
2?=W          FCJOB    2,FX2,,CPA   
2?QG          ADN   2  JUSER               [PROPER USER FROM JUSER  
2#=6          BRN      NEXT 
2#PQ    NOUS  ADN   2  CPREFIX             [PROPER USER FROM CPREFIX
2*9B    )   
2*P2    #SKI  ANOUSER<1$1   
2B8L    (   
2BN=          FCJOB    2,FX2,,CPA          [FIND JOB BLOCK OF CURRENT USER  
2C7W          LDX   4  ALOGLEN(2)   
2CMG          SBN   4  ASTJOB              [CHECK JOBLOCK LONGER THAN ASTJOB
2D76          BNZ   4  USECO               [J IF USER CONTEXT   
2DLQ          LDX   2  FX2                 [NO USER CONTEXT 
2F6B          ADN   2  CPREFIX             [PROPER USER IS TAKEN FROM CPREFIX   
2FL2          BRN      NEXT 
2G5L    USECO ADN   2  JUSER               [PROPER USER IS TAKEN FROM JUSER 
2GK=    )   
2H4W    NEXT  LDX   3  0(2)                [GET PROPER USER NAME IN X3,4,5  
2HJG          LDX   4  1(2) 
2J46          LDX   5  2(2) 
2JHQ          TOPFCB   2                   [GIVE POINTER TO FILE/FCB
2K3B    #SKI  K6OWNERCHE>49-49  
2KH2    (   
2L2L          LDX   0  COMM(2)  
2LG=          BNG   0  YDIR                [J IF DIRECTORY  
2L^W          GEOERR   1,NOTDIR 
2MFG    YDIR
2M^6    )   
2NDQ          BXU   3  FME1(2),NOT         [CHECK IF USER OF THIS DIRECTORY 
2NYB          BXU   4  FME2(2),NOT         [IS THE PROPER USER  
2PD2          BXU   5  FME3(2),NOT         [J IF NOT
2PMS ...      SREPC    OK   
2PXL    OK    SETREP   OK   
2QC=          UP
2QWW
2RBG    NOT 
2RW6    #SKI
2S*Q    (   
2STB          LDX   6  FME1(2)             [GET NAME FROM FCB   
2T*2          LDX   7  FME2(2)  
2TSL          LDX   0  FME3(2)  
2W#=          TXU   6  MAS(1)   
2WRW          TXU   7  MAS+1(1) 
2X?G          TXU   0  MAS+2(1) 
2XR6          BCC      XXMAS               [J IF :MASTER
2Y=Q    )   
2YQB          SETNCORE 4,2,FILE,FABSNB     [SET UP FILE/FABSNB  
2^=2          LDN   1  4                   [SET UP RECORD HEADER=4  
2^PL          STO   1  A1(2)               [SET RECORD HEADER IN FABSNB 
329=          TOPFCB   1                   [POINTER TO FILE/FCB 
32NW          LDN   1  FME1(1)  
338G          LDN   2  A1+1(2)  
33N6          MOVE  1  3                   [MOVE USER NAME INTO FILE/FABSNB 
347Q          BRN      NFIND               [J TO EXPAND ABSOLUTE FILENAME   
34MB    #   
3572    #     CHECKOWNER MACRO  
35LL    #   
366=    #           A 4 WORD FILE/FABSNB MUST BE PROVIDED.  
36KW    #           THE ROUTINE CHECKS IF THE ENTRANT,WHOSE NAME IS IN THE FABSN
375G    #     IS OWNED BY THE PROPER USER.  
37K6    #   
384Q    Z2OWNER 
38#J ...      STOZ     AWORK1(2)
38JB    #SKI  ANOUSER   
3942    (   
39HL          BRUSEN   NOUSE               [J IF NO USER CONTEXT
3=3=          FCJOB    2,FX2,,CPA   
3=GW          ADN   2  JUSER
3?2G          BRN      PICK 
3?G6    NOUSE ADN   2  CPREFIX  
3?^Q    )   
3#FB    #SKI  ANOUSER<1$1   
3#^2    (   
3*DL          FCJOB    2,FX2,,CPA          [FIND JOB BLOCK OF CURRENT USER  
3*Y=          LDX   4  ALOGLEN(2)   
3BCW          SBN   4  ASTJOB              [CHECK LENGTH OF JOBLOCK 
3BXG          BNZ   4  USERC               [J IF USER CONTEXT   
3CC6          LDX   2  FX2  
3CWQ          ADN   2  CPREFIX             [PROPER USER FROM CPREFIX
3DBB          BRN      PICK 
3DW2    USERC ADN   2  JUSER               [PROPER USER FROM JUSER  
3F*L    )   
3FT=    PICK
3G#W          LDX   3  0(2)                [PICK UP PROPER USER NAME
3GSG          LDX   4  1(2) 
3H#6          LDX   5  2(2) 
3HRQ          HUNT     2,FILE,FABSNB       [FIND FILE/FABSNB
3J?B          BXU   3  A1+1(2),NFIND       [CHECK IF IT IS  
3JR2          BXU   4  A1+2(2),NFIND       [PROPER USER 
3K=L          BXE   5  A1+3(2),ZFREE
3KQ=    #SKI
3L9W    (   
3LPG          LDX   6  A1+1(2)  
3M96          LDX   7  A1+2(2)  
3MNQ          LDX   0  A1+3(2)  
3N8B          TXU   6  MAS(1)              [CHECK IF IT IS :MASTER  
3NN2          TXU   7  MAS+1(1) 
3P7L          TXU   0  MAS+2(1) 
3PM=          BCC      XMAST               [J IF :MASTER
3Q6W    )   
3QLG    NFIND FINDNAME                     [EXPAND ABSOLUTE FILENAME TO FULL ANM
3R66          HUNT     2,FILE,FABSNB
3RKQ          LDX   1  A1(2)               [PICK UP RECORD HEADER   
3S5B    # IF FABSNB STILL 4 WDS LONG,THEN MUST BE =MASTER & SO REPLY NOTOWNER   
3SK2          SBN   1  4
3T4L          BZE   1  XMAST               [J IF 4 WD FABSNB
3TJ=          ADN   1  A1-1                [SET POINTER TO THE BOTTOM USERNAME  
3W3W          ADX   1  2                   [IN FILE/FABSNB  
3WHG    NOPRU LDX   0  3(1)                [TEST IF IT IS PSEUDOUSER
3X36          BNG   0  PSEUS               [J IF IT IS PSEUDO   
3X44 ...      SEGENTRY K55OWNERCHE  
3X53 ...#   
3X6Y ...#      THIS SECTION CHECKS FOR ALLACC AND INFACC
3X8T ...#      PRIVELEGES USED FOR TWIN SYSTEMS 
3X=Q ...#   
3X#M ...      SMO      FX2                 [DONT CHECK FOR QUALIFIER
3XBJ ...      LDX   0  AWORK1              [IF 'NOADJ' PARAM FROM OWNERCHECK MAC
3XDF ...      BNZ   0  NOADJ
3XGB ...      HUNT     2,FILE,ADJUNCTS  
3XJ? ...      BNG   2  XMAST                [ NO QUALIFIER ?
3XL8 ...      JBC      XMAST,2,BAOWNACC    [NOT 'OWNERACC' QUALIFIER ?  
3XN5 ...NOADJ   
3XQ2 ...      CHEKPRIV 0,SALLACC,NOTALAC   [CHECK FOR 'ALLACC' PRIV.
3XRX ...      SREPC    NOTOWNER 
3XTS ...      MFREE    FILE,FABSNB  
3XXP ...      BRN      OK   
3X^L ...NOTALAC 
3Y3H ...      HUNT     2,FILE,FABSNB
3Y5D ...      STO   2  0
3Y7* ...      ADN   0  9
3Y9= ...      SMO      A1(2)
3Y?7 ...      ADN   2  A1-5                [PTR. TO LAST NAME IN FABSNB 
3Y*4 ...NXTUSA  
3YB^ ...      BXU   3  0(2),NOTUSER 
3YDW ...      BXU   4  1(2),NOTUSER 
3YGR ...      BXU   5  2(2),NOTUSER          [IS USERNAME INFERIOR TO PROPER USE
3YJN ...      CHEKPRIV 0,SINFACC,NOTINFAC  [ I.E. IS 'INFACC' PRIV. REQUIRED ?  
3YLK ...      SREPC    NOTOWNER            [ IF IT IS, CHECK FOR IT 
3YNG ...      MFREE    FILE,FABSNB  
3YQC ...      BRN      OK   
3YS# ...NOTUSER 
3YW9 ...      SBN   2  6
3YY6 ...      BXL   2  0,NOTALACPR  
3^23 ...      BRN      NXTUSA   
3^3Y ...NOTINFAC
3^5T ...      SETREP   NOINFACC 
3^7Q ...      BRN      REPFREE  
3^9M ...NOTALACPR   
3^?J ...      SETREP   NOALLACC 
3^*F ...      BRN      REPFREE  
3^CB ...XXMAST  
3^F? ...      SETREP   NOTOWNER 
3^H8 ...      BRN      REPLY
3^J6 ...      SEGENTRY K56OWNERCHE  
3^K5 ...XMAST   
3^M2 ...      SETREP   NOTOWNER 
3^NX ...REPFREE 
3^QS ...      MFREE    FILE,FABSNB  
3^SP ...REPLY   
3^WL ...      UP
3^YW    PSEUS SBN   1  6                   [SET POINTER TO NEXT USER IN FABSNB  
42DG          BXU   3  0(1),NOPRU   
42Y6          BXU   4  1(1),NOPRU          [J IF IT IS NOT  
43CQ          BXU   5  2(1),NOPRU          [PROPER USER 
43XB    ZFREE   
44C2          FREECORE 2                   [RETURN FABSNB TO FREE   
44LS ...      SREPC    OK   
44WL          BRN      OK                  [PRINT 'OK'  
45B=    #GAP  20
45TW    #END
^^^^ ...64072416000200000000