CHEKPRIV867

(George Source)

Macros used: BRUSEN, CLOSETOP, FCJOB, FREECORE, GEOERR, MENDAREA, MFREE, MHUNT, MHUNTW, OPEN, PICKREP, PUTREP2, READDICT, REWIND, SEG, SEGENTRY, SETNCORE, SETREP, SETREP2, STEP, TESTHKN, TESTHOOK, TESTPRIV, TESTRPN2, TRACE, UP, UPPLUS, WKPFIND, WKPTABLE

CHEKPRIV867.txt
225X ...      SEG      CHEKPRIV,83,M.B.KINGHAM,,G400
229S ...[   
22*P ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD  1982   
22FL ...[   
22KH ...
22PD ...#UNS G400   
22T* ...#     THIS CHAPTER IS MODIFIED FOR G3PLUS-IH MK2
22^=          SEGENTRY K1CHEKPRIV,QK1CHEK   
23DW          SEGENTRY K2CHEKPRIV,QK2CHEK   
23YG          SEGENTRY K10CHEKPRIV,QK10CHEK 
24D6          SEGENTRY K11CHEKPRIV,QK11CHEK 
24XQ    NDICT 10
25CB          12HMASTER 
25X2          12HDICTIONARY 
26BL          1,1,4HB1  
26CK ...WKPT  WKPTABLE                     [TABLE OF WELL KNOWN PRIVILEGES  
26DJ ...[   
26FH ...[              ROUTINE TO CHECK FOR WELL KNOWN PRIVILEGE
26GG ...[              IN JPRIV OF JOB BLOCK
26HF ...[   
26HY ...PCMIN LDX   0  AWORK1(2)
26JC ...      BNZ   0  NOWK 
26JW ...      WKPFIND  5,WKPT(1),4,NOWK    [GET WELL KNOWN PRIV BIT 
26JY ...#UNS G400   
26K2 ...(   
26K3 ...      SEGENTRY K20CHEKPRIV  
26K4 ...      NULL  
26K5 ...      TESTHKN  XHK1 
26K6 ...      EXIT  7  0
26K7 ...      SEGENTRY K21CHEKPRIV  
26K8 ...XHK1
26K= ...)   
26KC ...      FCJOB    3,2,PCA,CPA,OLPA    [X3 POINTS TO JOB BLOCK  
26LB ...      ANDX  4  JPRIV(3) 
26M* ...      BZE   4  NOPR                [J IF NOT POSSESSED BY CURRENT USER  
26N# ...      EXIT  7  0                   [PRIV WELL KNOWN AND POSSESSED   
26P? ...                                   [BY CURRENT USER 
26Q= ...NOPR  EXIT  7  1                   [PRIV WELL KNOWN BUT NOT POSSESSED   
26R9 ...                                   [BY CURRENT USER 
26S8 ...NOWK  EXIT  7  2                   [PRIV NOT WELL KNOWN 
26T7 ...[   
26W=    QK11CHEK
27*W          REWIND                       [DICTIONARY  
27TG          NGNC  7  1
28*6    QK1CHEK 
28SQ    QK10CHEK
29#B          LDN   7  0                   [X7=%A   
29S2          LDX   5  ACOMMUNE1(2)        [X5,6 CONTAIN PRIVILEGE NAME 
2=?L          LDX   6  ACOMMUNE2(2) 
2=?T ...#UNSET FTS1 
2=#4 ...(   
2=#? ...      LDCH  0  ATYPE(2)            [OMIT MINI   
2=#G ...      SBN   0  CPAT/64             [CHEKPRIV IF 
2=#P ...      BNZ   0  NOCPU               [CPAT IN NO  
2=#Y ...      BRUSEN   SPCM,2              [USER CONTEXT
2=*7 ...NOCPU   
2=*B ...)   
2=*T ...      STO   7  AWORK1(2)           [SAVE ENTRY MARKER   
2=D4 ...      CALL  7  PCMIN               [MINI CHEKPRIV   
2=G? ...      BRN      UP1A                [OK  
2=JG ...      BRN      NOTY                [NOTYPE  
2=LP ...                                   [PRIV NOT WELL KNOWN 
2=NY ...      LDX   7  AWORK1(2)           [RESTORE ENTRY MARKER
2=Q5 ...SPCM
2=R=          BNZ   7  ODD                 [DICT ALREADY OPEN   
2?=W          SETNCORE 10,2,FILE,FABSNB 
2?QG          ADN   1  NDICT
2#=6          ADN   2  A1   
2#PQ          MOVE  1  10   
2*9B          OPEN     XBR,READ 
2*P2    #SKI  K6CHEKPRIV
2B8L          TESTRPN2  OK,XBR  
2BN=          MFREE    FILE,FABSNB  
2C7W    ODD 
2CMG          STEP  
2D76          LDX   0  IZPRIV-A1(3)        [NO OF PRIVS 
2DLQ    TP  
2F6B          TXU   5  IZLIST+1-A1(3)   
2FL2          TXU   6  IZLIST+2-A1(3)   
2G5L          BCC      PFND                [PRIV FOUND  
2GK=          ADN   3  IZLINE   
2H4W          BCT   0  TP   
2HJG          SETREP2  NOSUCH              [PRIV NOT ON THIS INSTALLATION   
2J46    UP  
2JHQ    #SKI  K6CHEKPRIV>99-99  
2K3B          TRACE    EXEC3(2),XREP
2KH2          PICKREP  4
2L2L          CLOSETOP  
2LG=          PUTREP2  4
2L^W          UP
2MFG    PFND
2MLN ...#UNS G400   
2MM^ ...(   
2MP= ...      SEGENTRY K22CHEKPRIV  
2MQH ...      NULL  
2MRT ...      TESTHOOK UP1B 
2MT8 ...      SEGENTRY K23CHEKPRIV  
2MWG ...PFND2   
2MXS ...)   
2M^6          LDX   6  IZLIST-A1(3)        [X6 CONTAINS PRIV BIT NO.
2NDQ          BNZ   7  TPR  
2NYB          SETNCORE 3,3,FILE,ADICT   
2N^M ...#UNSET FTS1 
2P2Y ...(   
2P49 ...      LDCH  0  ATYPE(2) 
2P5G ...      SBN   0  CPAT/64  
2P6R ...      BNZ   0  NOCPAT   
2P84 ...      BRUSEN   USERC,2  
2P9* ...      BRN      NOCPAT   
2P=L ...USERC LDN   2  CPREFIX(2)          [GET USERNAME FROM CPREFIX IF
2P?X ...      BRN      SADICT              [CPAT IS IN NOUSER CONTEXT   
2P*8 ...NOCPAT  
2PBF ...)   
2PM3 ...      FCJOB    2,2,PCA,CPA,OLPA 
2PXL    #SKI  K6CHEKPRIV>99-99  
2QC=    (   
2QWW          LDX   0  ALOGLEN(2)   
2RBG          SBN   0  EXTJOB   
2RW6          BPZ   0  X1   
2S*Q          GEOERR   1,CONTEXT
2STB    X1  
2T*2    )   
2TSL          ADN   2  JUSER
2W4D ...SADICT  
2W#=          ADN   3  A1   
2WRW          MOVE  2  3
2X?G          READDICT  
2XR6          TESTRPN2  OK,UP   
2Y=Q    TPR 
2YQB          MHUNTW   1,FILE,ADICTENT  
2^=2          LDCT  0  #600 
2^PL          ANDX  0  CPSEU(1) 
329=          BNZ   0  NOT                 [PSEUDO-USER DOES NOT HAVE PRIV  
32NW          TESTPRIV 6,1  
338G          BNZ   0  UP1  
33N6    NOT 
347Q          FREECORE 1                   [FILE,ADICTENT   
34MB ...      SETREP2  NOTYPE              [USER DOES NOT HAVE PRIV 
3572          BRN      UP   
35#8 ...NOTY  SETREP2  NOTYPE              [NOTYPE AFTER MINI CHEKPRIV  
35*X ...      LDX   0  AWORK1(2)
35CL ...      BNZ   0  UP   
35FB ...      UP
35GC ...UP1B
35HD ...      BNZ   7  UP1A 
35JF ...      CLOSETOP  
35KG ...      BRN      UP1A 
35LL    UP1 
366=          BNZ   7  UP1A 
36KW          FREECORE 1
375G          CLOSETOP  
37K6    UP1A
384Q          UPPLUS   1                   [REPLY OK
38JB    TABLE   
3942          8HBUDGEXT 
39HL          +USL1 
3=3=          +0
3=GW          8HHLSEXT  
3?2G          +USL1 
3?G6          +1
3?^Q          8HSJMESS  
3#FB          +USL1 
3#^2          +1
3*DL          8HSYSISS  
3*Y=          +USL2 
3BCW          +0
3BXG          8HUNHLS   
3CC6          +USL2 
3CWQ          +0
3DBB          8HNOTOWNER
3DW2          +USL1 
3F*L          +1
3FT=          +0
3G#W    USL1
3GSG          #40000000 
3H#6          12HMANAGER
3HRQ          12HSYSTEM 
3J?B          12HJOURNAL
3JR2          +0
3K=L    USL2
3KQ=          #40000000 
3L9W          +0
3LPG    QK2CHEK 
3M96          LDN   3  ACOMMUNE1(2) 
3MNQ          LDN   4  AWORK1(2)
3N8B          MOVE  3  4
3NN2          LDX   5  ACOMMUNE5(2) 
3P7L          LDX   6  ACOMMUNE6(2) 
3P=Q ...      CALL  7  PCMIN               [MINI CHEKPRIV   
3P*W ...      BRN      TAB5                [OK  
3PF2 ...      BRN      RDICT8              [NOPRIV  
3PJ6 ...                                   [PRIV NOT WELL KNOWN 
3PM=    #     CHECK THE TABLE   
3Q6W          LDN   3  TABLE(1) 
3QLG    TAB1
3R66          LDX   0  0(3) 
3RKQ          BZE   0  RDICT               [J IF END OF TABLE OF PRIVILEGES 
3S5B          TXU   5  0(3) 
3SK2          TXU   6  1(3) 
3T4L          BCC      TAB2                [J IF PRIV IN TABLE  
3TJ=          ADN   3  4
3W3W          BRN      TAB1 
3WHG    TAB2
3X36          LDX   7  3(3) 
3XGQ          LDX   3  2(3)                [POINTER TO TABLE OF USERS   
3Y2B          ADX   3  FX1  
3YG2          LDX   0  AWORK1(2)
3Y^L          BNZ   0  TAB4                [BRANCH IF USER NAME 
3^F=          FCJOB    1,2,PCA,CPA,OLPA 
3^YW          LDX   4  JPRIV(1) 
42DG          LDN   0  JUSER(1) 
42Y6          LDN   1  AWORK1(2)
43CQ          MOVE  0  3                   [PROPER USER NAME
43XB          LDX   0  0(3) 
44C2          BPZ   0  TAB4                [J IF PRIV NOT GIVEN TO SYSISS JOBS  
44WL          ANDN  4  JSISSUE  
45B=          BNZ   4  TAB5                [J IF SYSISS JOB 
45TW    TAB4
46*G          LDX   0  1(3) 
46T6          LDX   1  2(3) 
47#Q          LDX   4  3(3) 
47SB          BZE   0  TAB6 
48#2          TXU   0  AWORK1(2)
48RL          TXU   1  AWORK2(2)
49?=          TXU   4  AWORK3(2)
49QW          BCC      TAB5 
4==G          ADN   3  3
4=Q6          BRN      TAB4 
4?9Q    TAB5
4?PB          UPPLUS   1
4#92    TAB6
4#NL          BNZ   7  RDICT
4*8=          SETREP   NOPRIV   
4*MW          UP
4B7G    #     CHECK THE DICTIONARY  
4BM6    RDICT   
4C6Q          LDX   0  AWORK4(2)
4D62          SLL   0  1
4DKL          BPZ   0  RDICT1              [J IF DICTIONARY OPEN
4F5=          SETNCORE 10,2,FILE,FABSNB 
4FJW          ADN   1  NDICT
4G4G          ADN   2  A1   
4GJ6          MOVE  1  10   
4H3Q          OPEN     XBR,READ 
4HHB          TESTREPN OK,XBR   
4J32          MFREE    FILE,FABSNB  
4JGL    RDICT1  
4K2=          REWIND
4KFW          STEP  
4K^G          LDX   0  IZPRIV-A1(3)        [NO OF PRIVILEGES
4LF6    RDICT2  
4LYQ          TXU   5  IZLIST+1-A1(3)   
4MDB          TXU   6  IZLIST+2-A1(3)   
4MY2          BCC      RDICT3              [J IF PRIV IN LIST   
4NCL          ADN   3  IZLINE   
4NX=          BCT   0  RDICT2   
4PBW          BRN      RDICT5   
4PWG    RDICT3  
4QB6          LDX   6  IZLIST-A1(3)        [LOAD PRIVILEGE BIT PATTERN  
4QTQ          SETNCORE 3,3,FILE,ADICT   
4R*B          LDN   2  AWORK1(2)
4RT2          LDN   3  A1(3)
4S#L          MOVE  2  3
4SS=          READDICT  
4T?W          MHUNT    3,FILE,ADICTENT  
4TRG          LDCT  0  #600 
4W?6          ANDX  0  CPSEU(3) 
4WQQ          BNZ   0  RDICT7              [BRANCH IF PSEUDO USER   
4X=B          TESTPRIV 6,3  
4XQ2          BZE   0  RDICT7              [J IF USER DOES NOT HAVE PRIV
4Y9L          MFREE    FILE,ADICTENT
4YP=          SMO      FX2  
4^8W          LDX   0  AWORK4   
4^NG          SLL   0  1
5286          BPZ   0  RDICT4   
52MQ          CLOSETOP  
537B    RDICT4  
53M2          UPPLUS   1
546L    #     NO SUCH PRIVILEGE 
54L=    RDICT5  
555W          SMO      FX2  
55KG          LDX   0  AWORK4   
5656          SLL   0  1
56JQ          BPZ   0  RDICT6   
574B          CLOSETOP  
57J2    RDICT6  
583L          SETREP   NOSUCH   
58H=          UP
592W    #     USER/JOB DOES NOT HAVE PRIVILEGE  
59GG    RDICT7  
5=26          MFREE    FILE,ADICTENT
5=FQ          LDX   0  AWORK4(2)
5=^B          SLL   0  1
5?F2          BPZ   0  RDICT8   
5?YL          CLOSETOP  
5#D=    RDICT8  
5#XW          SETREP   NOPRIV   
5*CG          UP
5*X6    XBR   GEOERR   1,CHEKPRIV   
5BBQ          MENDAREA 50,K99CHEKPRIV   
5BWB    #END
^^^^ ...71242151000500000000