{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: CHEKPRIV867)}}
====== CHEKPRIV867 ======
(George Source)
**Macros used:** [[george:macro:BRUSEN|BRUSEN]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:FCJOB|FCJOB]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:OPEN|OPEN]], [[george:macro:PICKREP|PICKREP]], [[george:macro:PUTREP2|PUTREP2]], [[george:macro:READDICT|READDICT]], [[george:macro:REWIND|REWIND]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETREP|SETREP]], [[george:macro:SETREP2|SETREP2]], [[george:macro:STEP|STEP]], [[george:macro:TESTHKN|TESTHKN]], [[george:macro:TESTHOOK|TESTHOOK]], [[george:macro:TESTPRIV|TESTPRIV]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TRACE|TRACE]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]], [[george:macro:WKPFIND|WKPFIND]], [[george:macro:WKPTABLE|WKPTABLE]]
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