NAMEPRIV

(George Source)

Macros used: CJOBLOCK, CLOSE, COMERR, COMERRX, DICTJL, DICTWELL, ENDCOM, FREECORE, GEOERR, HUNT, MENDAREA, MHUNTW, NAME, OPEN, READ, REWRITE, SEGENTRY, SETNCORE, SPARAPAS, TESTREP, TESTRPN2, UNIFREE, WKPFIND, WKPTABLE

NAMEPRIV.txt
22FL    #SEG           NAMEPRIV            [M.B.KINGHAM 
22^=    #OPT K0NAMEPRIV=0   
23DW    #OPT K6NAMEPRIV=K6ALLGEO
23YG    #LIS K0NAMEPRIV>K0ALLGEO
24D6                   8HNAMEPRIV   
24XQ          SEGENTRY K1NAMEPRIV,QK1NAMEPRIV   
257J ...WKPT  WKPTABLE                     [TABLE OF WELLKNOWN PRIVS
25CB    # THIS SEGMENT IMPLEMENTS THE NAMEPRIV COMMAND. THE NAMEPRIV COMMAND
25X2    # PERMITS :MANAGER TO RENAME A PRIVILEGE
26BL    QK1NAMEPRIV 
26W=    # THIS SECTION CHECKS THAT THE PROPER USER IS :MANAGER  
27*W    #   
27TG          CJOBLOCK 3                   [GET POINTER TO CURRENT JOBLOCK  
28*6          LDX   4  PUSER(1)            [MANA
28SQ          LDX   5  PUSER+1(1)          [GER 
29#B          LDX   6  ACES                [       SPACES   
29S2          TXU   4  JUSER(3) 
2=?L          TXU   5  JUSER+1(3)   
2=R=          TXU   6  JUSER+2(3)   
2?=W          BCC      PARACHEC            [IF :MANAGER,GO CHECK PARAMS 
2?QG          CALL  1  ONERR
2#=6                   +JMAN               [ONLY :MANAGER CAN RENAME PRIVILEGES 
2#PQ    #   
2*9B    # THIS SECTION PASSES OUT THE NEW PRIVILEGE NAME PARAMETER,CHECKING 
2*P2    # THAT IT EXISTS AND IS NOT MORE THAN 8 CHARACTERS LONG.
2B8L    #   
2BN=    PARACHEC
2C7W          CALL  5  NEXTPARA 
2CMG                   +JNEWPRIV           [NO NEW PRIV PARAM   
2D76    #   
2DLQ    # THIS SECTION PASSES OUT THE OLD PRIVILEGE NAME PARAMETER,CHECKING 
2F6B    # THAT IT EXISTS AND IS NOT MORE THAN EIGHT CHARACTERS LONG.
2FL2    #   
2G5L          CALL  5  NEXTPARA 
2GK=                   +JOLDPRIV           [NO OLD PRIV PARAM   
2H4W    #   
2HJG    # THIS SECTION SETS UP A FILE/FABSNB BLOCK,10 WORDS LONG AND SETS IN IT 
2J46    # THE INFORMATION NECESSARY TO OPEN THE DICTIONARY  
2JHQ    #   
2K3B          SETNCORE 10,5,FILE,FABSNB    [GET 10 WORD FILE/ ABSNB BLOCK   
2KH2          ADN   5  A1   
2L2L          LDN   4  PDICT(1) 
2LG=          MOVE  4  10                  [MOVE IN NECESSARY INFORMATION   
2L^W    #   
2MFG    # THIS SECTION OPENS UP THE DICTIONARY AND READS THE FIRST RECORD   
2M^6    #   
2NDQ          OPEN     XBREAK,GENERAL,QUERY 
2NYB          TESTRPN2  OK,X10             [J IF NOT OPEN   
2PD2          READ                         [READ THE FIRST RECORD   
2PXL          MHUNTW   2,FILE,FRB   
2QC=    #   
2QWW    # THIS SECTION LOCATES THE OLD PRIVILEGE NAME IN THE FIRST RECORD   
2RBG    #   
2RW6          LDX   7  IZPRIV(2)           [LOAD THE COUNT OF PRIVILEGES
2S*Q          HUNT     3,CPB,CUNI          [FIND BLOCK HOLDING OLD PRIVILEGE
2STB    X7    LDX   4  APARA(3)            [LOAD FIRST WORD OF OLD PRIVILEGE
2T*2          LDX   5  ACES                [LOAD SPACES IN CASE OLD PRIVILEGE   
2TSL                                       [IS LESS THAN FIVE CHARACTERS LONG   
2W#=          SBN   6  5
2WRW          BNG   6  X4                  [J IF LESS THAN 5 CHARS  
2X?G          LDX   5  APARA+1(3)          [LOAD 2ND WORD OF OLD PRIVILEGE  
2XR6    X4    TXU   4  IZPRIV+2(2)         [TEST 1ST WORD OF OLD PRIVILEGE  
2Y=Q          BCS      X5                  [AGAINST 1ST WORD OF PRIVILEGE IN
2YQB                                       [FIRST RECORD OF DICTIONARY JUMPING  
2^=2                                       [IF UNEQUAL  
2^PL          TXU   5  IZPRIV+3(2)         [TEST 2ND WORD SIMILARY,JUMPING IF   
329=          BCC      X6                  [EQUAL   
32NW    X5    ADN   2  IZLINE              [UPDATE X2 TO POINT TO NEXT ENTRY
338G          BCT   7  X4                  [J IF MORE ENTRIES LEFT  
33N6          CLOSE                        [CLOSE THE DICTIONARY
347Q          CALL  1  ONERR
34MB                   +JPRIVX1            [ERROR:PRIVILEGE DOES NO 
3572    #   
35LL    #     THIS SECTION OVERWRITES OLD PRIVILEGE NAME WITH NEW PRIVILEGE 
366=    #   
36KW    X6    LDX   6  2                   [SAVE POINTER TO ENTRY   
375G          FREECORE 3                   [FREE BLOCK HOLDING OLD PRIVILEGE
37K6          HUNT     3,CPB,CUNI          [LOCATE BLOCK HOLDING NEW PRIVILEGE  
384Q          LDX   2  6                   [RESTORE POINTER TO ENTRY
38JB          LDX   6  ANUM(3)  
3942          ANDN  6  #7777               [RETAIN PARAMETER LENGTH 
39HL          LDX   4  APARA(3)            [LOAD FIRST WORD OF NEW PRIVILEGE
3=3=          LDX   5  ACES                [LOAD SPACES IN CASE NEW PRIVILEGE   
3=GW                                       [IS LESS THAN 5 CHARACTERS LONG  
3?2G          SBN   6  5
3?G6          BNG   6  X8                  [J IF LESS THAN FIVE CHARS   
3?^Q          LDX   5  APARA+1(3)          [LOAD 2ND WORD OF NEW PRIVILEGE  
3#9J ...X8    LDX   6  IZPRIV+2(2)         [RETAIN OLD PRIV NAME
3#FB ...      LDX   7  IZPRIV+3(2)  
3#P8 ...   STO   4  IZPRIV+2(2)         [OVERWRITE OLD PRIVILEGE NAME WITH  
3#^2          STO   5  IZPRIV+3(2)         [NEW PRIVILEGE NAME  
3*39 ...      WKPFIND  6,WKPT(1),3,NOTWKA  [IS OLD PRIV WELLKNOWN   
3*5D ...      DICTWELL PUSER(1),PRIV,3,OFF [YES-RECORD IT AS OFF
3*7M ...NOTWKA  
3*9W ...      WKPFIND  4,WKPT(1),6,NOTWK   [IS NEW PRIV WELLKNOWN   
3*#5 ...      DICTWELL PUSER(1),PRIV,6,ON  [YES-RECORD IT   
3*B# ...NOTWK   
3*DL    #   
3*Y=    # THIS SECTION REWRITES THE FIRST RECORD AND CLOSES THE DICTIONARY  
3BCW    #   
3BXG          MHUNTW   3,FILE,FRB   
3CC6          NAME     3,FILE,FWB          [RENAME BLOCK FOR WRITING
3CWQ          REWRITE                      [REWRITE RECORD  
3DBB          CLOSE                        [CLOSE THE DICTIONARY
3DL8 ...      DICTJL                       [UPDATE JOBLIST  
3DW2          ENDCOM                       [RETURN TO COMMAND PROCESSOR 
3F*L    X10 
3FT=          TESTREP  CLUDGE,X10A  
3G#W          GEOERR   BRIEFPM,NOTOPEN     [DICTIONARY NOT OPEN 
3GSG    X10A
3H#6          UNIFREE   
3HRQ          COMERR   ERSYSCLUDG,FDIC  
3J?B    XBREAK  
3JR2          GEOERR   BRIEFPM,BREAKIN     [BREAK IN DETECTED WHILE OPENING 
3K=L                                       [DICTIONARY  
3KQ=    [   
3L9W    [     SUBROUTINE TO READ NEXT PARAM - CORRUPTS X6   
3LPG    [   
3M96    NEXTPARA
3MNQ          SBX   5  FX1  
3N8B          SPARAPAS  
3NN2          HUNT     3,CPB,CUNI   
3P7L          ADX   5  FX1  
3PM=          LDX   6  ANUM(3)  
3Q6W          BZE   6  NULL                [J IF PARAM NULL 
3QLG          BNG   6  NULL                [OR NONEXISTENT  
3R66          ANDN  6  #7777               [ LENGTH OF PARAM
3RKQ          SBN   6  9
3S5B          BPZ   6  TOOLONG             [J IF MORE THAN 8 CHARS  
3SK2          ADN   6  9
3T4L          EXIT  5  1
3TJ=    NULL
3W3W          SMO      5
3WHG          LDX   5  0                   [ADDRESS OF ERROR MESSAGE
3X36          LDX   6  PARMIS(1)
3XGQ          COMERRX  6,5                 [PARAMETER MISSING   
3Y2B    TOOLONG 
3YG2          CALL  1  ONERR
3Y^L                   +JPRIVLONG   
3^F=    [   
3^YW    [     SR TO DO COMMAND ERROR
42DG    [   
42Y6    ONERR   
43CQ          LDX   5  0(1)                [PICK UP ERROR MESSAGE   
43XB          COMERRX  5
44C2    PDICT          +10  
44WL                   12HMASTER
45B=                   12HDICTIONARY
45TW                   +1   
46*G                   +1   
46T6                   4HB1 
47#Q    PARMIS         +JPARMIS 
47SB ...PUSER          12HMANAGER   
48#2          MENDAREA 50,K99NAMEPRIV   
48RL    #END
^^^^ ...26036132000400000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1