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