13 22FL ... SEG USEREXCP,860,FILESTORE 4 22_= # 19 23DW # THIS SEGMENT HOLDS EXCEPTION PATHS FROM USEROPEN AND OTHER 6 23YG # SEGMENTS. 4 24D6 # 10 24XQ SEGENTRY K1USEREXCP,X1 10 257J ... SEGENTRY K2USEREXCP,X2 10 25?F ... SEGENTRY K3USEREXCP,X3 4 25CB # 19 25X2 # THE X1 ENTRY CHECKS TO SEE IF THE CURRENT JOB MAY ACCESS A 21 26BL # USER-FROZEN FILE OR DIRECTORY. IT SETS A SUITABLE REPLY(OK,FROZEN, 20 26W= # OR NOFPRIV) AND EXITS UP+1 IF ACCESS ALLOWED, UP IF NOT ALLOWED. 4 27*W # 17 27TG PRIVFR 8HFREEZE [FOR CHEKPRIV MACROS 4 28*6 X1 16 28G# ... LDN 7 0 [SHOW X1 ENTRY 6 28MG ...X1X2COMMON 19 28SQ BRUSEN NOJOB [J IF NOT IN USER CONTEXT. 16 29#B FJOCA 3,2 [X3->JOB BLOCK 20 29S2 SPRIVJUMP JSSTART,3,UPPLUS1OK[ SYS STARTED JOB ALLOWED THRU 19 2=3S ... SPRIVJUMP JSISSUE,3,UPPLUS1OK [ LIKE WISE SYS ISSUED JOBS 5 2=?L NOJOB 19 2=HD ... BNZ 7 X2B [RETURN TO X2 COE IF X2 ENTRY 20 2=R= HUNT 3,FILE,ADJUNCTS [TEST IF USER HAS GIVEN 'FROZEN' 20 2?=W [QUALIFIER AND HAS FREEZE PRIV. 17 2?QG ... BNG 3 NOTOK1 [J IF NO QUALIFIERS 19 2#=6 JBC NOTOK1,3,BAFROZEN [J IF NOT FROZEN QUALIFIER 18 2#PQ CHEKPRIV 0,PRIVFR,NOTOK2 [J IF DOES NOT HAVE PRIV. 6 2*9B UPPLUS1OK 6 2*P2 ANSOK2 7 2B8L UPPLUS 1 5 2BN= NOTOK1 15 2C7W SETREP2 FROZEN [FILE FROZEN 5 2CMG UP UP 5 2D76 NOTOK2 20 2DLQ SETREP2 NOFPRIV [UNPRIVILEGED USE OF FROZEN QUAL 8 2F6B BRN UP 4 2FL2 # 4 2G5L # 21 2G6X ...# THE X2 ENTRY DOES THE SAME AS THE X1 ENTRY EXCEPT THAT A FILE ADJUNCT 20 2G88 ...# BLOCK IS NOT REQUIRED BEFORE WE CHECK FOR THE FREEZE PRIVILEGE 4 2G9F ...# 4 2G=Q ...X2 16 2G#3 ... LDN 7 1 [SHOW X2 ENTRY 18 2G*# ... BRN X1X2COMMON [OBEY X1 + X2 COMMON CODE 15 2GBK ...X2B [X2 ONLY CODE 18 2GCW ... CHEKPRIV 0,PRIVFR,NOTOK1 [J IF DOES NOT HAVE PRIV 15 2GF7 ... BRN UPPLUS1OK [OTHERWISE OK 4 2GGD ...# 4 2GHP ...# 21 2GH_ ...# THE X3 ENTRY IS CALLED BY USEROPEN WHEN A USER ATTEMPTS TO ACCESS A 20 2GJ9 ...# DIRECTORY (OTHER THAN FOR ERASING). IT CHECKS WHETHER THE USER IS 20 2GJF ...# ONE OF THOSE NOMINATED BY THE RESTORE TIME MACRO 'READIR' TO HAVE 21 2GJP ...# UNTRAPPED ACCESS TO ALL DIRECTORIES, AND ADDS IN THE 'UNTRAP'SUBMODE 6 2GJ_ ...# IF HE IS. 11 2GK9 ...# IT ALSO CHECKS THAT EITHER 21 2GKF ...# 1) THE OPERATION IS ALLOWED ON DIRECTORIES (SUBMODE 'DIRONLY' OR 9 2GKP ...# 'TERMDIR' SET). 15 2GK_ ...# OR 2) THE USER POSSESSES 'ASSIDIR' PRIVILEGE. 4 2GL9 ...# 16 2GLF ...PRIV 8HASSIDIR [USED BY CHEKPRIV 19 2GLP ...USERTABLE [TABLE OF 'READIR' TYPE USERS 10 2GL_ ... SEGENTRY K55USEREXCP 10 2GM9 ... 12HMANAGER 10 2GMF ... SEGENTRY K53USEREXCP 5 2GMP ...#GAP 45 4 2GM_ ...# 4 2GN9 ...X3 17 2GNF ... TESTMODE 5,XDIR,,FREEZE [CAN'T FREEZE DIRS 14 2GNP ... TESTMODE AWORK1(2),XDIR,,SAVEFREEZE 21 2GN_ ... TESTMAIN 5,XDIR,,EXECUTE [DIRS CANNOT BE LOADED OR EXECUTED 4 2GP9 ...# 19 2GPF ...# WE GET A POINTER TO THE USERNAME AND CHECK TO SEE IF HE IS IN 8 2GPP ...# THE READIR LIST. 4 2GP_ ...# 17 2GQ9 ... BRUSEN NOJOB2 [J IF NO JOB BLOCK 16 2GQF ... FJOCA 2,FX2 [X2->JOB BLOCK 8 2GQP ... BRN TUSER 21 2GQ_ ...NOJOB2 [IF THERE IS NO JOB BLOCK WE GET A 21 2GR9 ... [POINTER SUCH THAT JUSER(2) IS THE 18 2GRF ... [SAME AS CPREFIX(FX2). 10 2GRP ... ADN 2 CPREFIX-JUSER 4 2GR_ ...# 5 2GS9 ...TUSER 10 2GSF ... SEGENTRY K54USEREXCP 20 2GSP ... LDN 4 K53USEREXCP-K55USEREXCP/3 [NO OF ENTRIES IN THE TABLE 5 2GS_ ...TESTUSER 18 2GT9 ... TESTNAMX 3,USERTABLE(1),JUSER(2),NOTHIM [J IF NOT USER 15 2GTF ... ADDMODE 5,UNTRAP [ADD IN MODE 17 2GTP ... BRN USEROK [AND JUMP OUT OF LOOP 5 2GT_ ...NOTHIM 17 2GW9 ... ADN 1 3 [UPDATE POINTER TABLE 20 2GWF ... BCT 4 TESTUSER [LOOP IF MORE ENTRIES IN TABLE 5 2GWP ...USEROK 18 2GW_ ... LDX 1 FX1 [RESTORE OVERWRITTEN X1+2 8 2GX9 ... LDX 2 FX2 4 2GXF ...# 20 2GXP ...# NEXT WE CHECK THAT EITHER A DIRECTORY SUBMODE WAS GIVEN OR THE 10 2GX_ ...# USER HAS THE PRIVILEGE. 18 2GY9 ... TESTMODE 5,YDIROK,,DIRONLY,TERMDIR[J IF DIR SUBMODE 20 2GYF ... CHEKPRIV 0,PRIV,XDIR [OTHERWISE MUST HAVE PRIVILEGE 4 2GYP ...# 19 2GY_ ...# IF ALL IS WELL WE PUT THE (POSSIBLE AUGMENTED) MODE WORD INTO 16 2G_9 ...# ACOMMUNE1 FOR THE CALLING CODE AND EXIT UPPLUS 1 4 2G_F ...# 5 2G_P ...YDIROK 10 2G__ ... STO 5 ACOMMUNE1(2) 7 2H29 ... UPPLUS 1 4 2H2F ...# 10 2H2P ...# THE ERROR EXIT GOES UP. 4 2H2_ ...# 5 2H39 ...XDIR UP 4 2H3F ...# 9 2H3P ... MENDAREA 20,K99USEREXCP 4 2H4W # 4 2HJG #END 6 ____ ...172244150001