15 22FL SEG FREEZE,84,MIKE PUTNAM,USERCOMS 4 22_= # 17 23DW # THIS SEGMENT IMPLEMENTS THE FREEZE AND CANCEL FREEZE 16 23YG # COMMANDS. ENTRY 1 = FREEZE, ENTRY 2= CC FREEZE. 4 24D6 # 10 24XQ SEGENTRY K1FREEZE,X1 10 25CB SEGENTRY K2FREEZE,X2 11 25M8 ... FSHENTRY K3FREEZE,X3,,X3 4 25X2 # 7 2648 ... FSHSKIP B 4 269B ...( 9 26BL PRIV 8HFREEZE 14 26C? ...USERJ 24HJOBLIST 00010001**** 4 26CY ...# 20 26DK ...SFABS MHUNT 2,FILE,FABSNB [SR TO LOCATE FABS FOR ALTLENG 7 26F= ... EXIT 1 0 4 26FX ...# 21 26GJ ...YJOBNO [SR TO PUT X0 JOBNO INTO FILE FINTER 15 26H9 ... [CALLED ON X2 8 26HW ... SMO FX2 15 26JH ... STO 2 ACOMMUNE1 [SAVE LINK 16 26K8 ... LDX 7 0 [MHUNT USES X0 10 26KT ... MHUNTW 2,FILE,FINTER 18 26LG ... LDX 0 A1(2) [COUNT OF NOS IN FINTER 17 26M7 ... SBN 0 199 [HAS IT OVERFLOWED 14 26MS ... BZE 0 STARTJOBS [J IF SO 19 26NF ... ADN 0 200 [RESTORE AND INCREMENT BY 1 7 26P6 ... SMO 0 15 26PR ... STO 7 A1(2) [STORE NUMBER 17 26QD ... STO 0 A1(2) [STORE UPDATED COUNT 8 26R5 ... SMO FX2 9 26RQ ... LDX 2 ACOMMUNE1 13 26SC ... EXIT 2 0 [EXIT 4 26T4 ...# 4 26TM ...) 4 26W= # 17 27*W X1 LDN 6 0 [SET K1 ENTRY MARKER 20 27TG MAINCODE [SEGMNT IS MOSTLY COMMON TO BOTH 4 27W9 ...# 4 27WY ...X3 4 27XM ...# 9 27YB ... FSHCODE B,XENDB1 4 27_5 ...( 21 27_S ...# THE FREEZE COMMAND IS AN 'A' MACHINE FUNCTION. SO TRANSFER TO 12 282H ...# 'A' IF WE ARE STARTED ON 'B' 4 283= ...# 16 283_ ... TRANSBEG FSHFZCOMID,FREEZE,3,CLB,,ACOMMUNE1 4 284N ...# 18 285C ... BRN XCOMBRK [BREAK-IN RETURN POINT 17 2866 ... ENDCOM [ENDCOM RETURN POINT 4 286T ...# 5 287J ...XCOMBRK 7 288? ... COMBRKIN 4 2892 ...# 5 289P ...XENDB1 4 28=D ...) 9 28?7 ... FSHSKIP B,XNOTBX 4 28?W ...( 19 28*6 CHEKPRIV ,PRIV,XPRIV [CHECK USER HAS FREEZE PRIV 19 28SQ LDN 7 0 [CLEAR PARAMS FOUND MARKER 5 29#B NEXTPAR 7 29S2 SPARAPAS 10 2=?L MHUNT 3,CPB,CUNI 9 2=R= LDX 0 ANUM(3) 17 2?=W BNG 0 THEEND [J IF NO MORE PARAMS 18 2?QG LDN 7 1 [SET PARAMS FOUND MARKER 18 2#=6 BZE 0 NULLPAR [NULL PARAMS NOT ALLOWED 19 2#PQ NAMETOP 3,FILE,FNAME [RENAME CPB CUNI FOR FNORM. 18 2*9B FNORM [NORMALIZE ENTRANT NAME 10 2*P2 MHUNT 3,FILE,FNAME 21 2B8L NAMETOP 3,CPB,CUNI [NAME IT BACK FOR ERROR MSSGE CODE 17 2BN= TESTRPN2 OK,NUNI [J IF NAME IN ERROR 3 2BRC ... 10 2BSD ... MHUNT 3,FILE,FABSNB 19 2BS_ ... LDN 0 #2200 [ERROR IF TSN OR WF FORMAT 9 2BTG ... ANDX 0 ATYPE(3) 8 2BW3 ... BNZ 0 XTSN 10 2BWJ ... BNZ 6 NFREEZE3 4 2B_P ...# 20 2C4W ...# IN THE FREEZE CASE WE MUST CHECK AND ERROR IF THE PARAMETER IS 20 2C83 ...# A DIRECTORY WITH STARTED JOBS RUNNING UNDER IT. WE TEST THIS BY 4 2C?8 ...# 19 2CB* ...# 1)OPENING THE SUPERIOR DIRECTORY AND CHECKING PARAM IS A DIR. 4 2CFG ...# 15 2CJM ...# 2)JUMPING INTO THE FREEZE CODE IF IT IS NOT. 4 2CMS ...# 20 2CQ_ ...# 3)WE SET UP A FILE/FINTER BLOCK AND ACCUMULATE A LIST OF JOBNOS 20 2CW6 ...# FOR THIS USER FROM THE JOB + HLS QUEUES (I.E. THE STARTED JOBS) 16 2C_? ...# IF THERE ARE NONE WE PROCEED WITH THE FREEZE. 4 2D4D ...# 19 2D7K ...# 4) WE OPEN :SYSTEM.JOBLIST(/B1) AND CHECK THAT ALL THE JOBS 12 2D=Q ...# MAY RUN UNDER A FROZEN USER. 4 2D*X ...# 18 2DF4 ...SEMWT POP SEMWT,,JWACCESS [LOCK OUT JOBWELL CODE 17 2DJ9 ... OPENDIR YBREAK,CLEAN,QUERY,NOWAIT[OPEN SUP DIR 16 2DMB ... TESTRPN2 OK,NOTOK [J IF NOTOK REPLY 10 2DQH ... MHUNTW 3,FILE,ENT 18 2DTN ... BWZ EUSE1(3),NOTDIR [J IF ITS NOT A DIRECTORY 18 2DYT ... LDX 4 EUSE2(3) [GET USERNAME OF THE DIR 9 2F42 ... LDX 5 EUSE3(3) 20 2F77 ... LDX 3 EUSE1(3) [FOR COMPARING WITH JOBQ BLOCKS 16 2F=# ... CLOSETOP [CLOSE DIRECTORY 9 2F*F ... MFREEW FILE,ENT 4 2FDL ...# 20 2FHR ...# WE SET UP A FILE/FINTER BLOCK AND ACCUMULATE A LIST OF JOBNOS OF 21 2FLY ...# JOBS UNDER THE USER WHICH ARE STARTED I.E. ARE IN THE JOB OR HSLQ. 19 2FQ5 ...# THE FORMAT OF THE BLOCK IS A1=COUNT OF JOBS, A1+1 ETC =JOBNOS 20 2FT= ...# WE DARE NOT COORDINATE DURING THE SEARCH SO WE MAKE THE CRUMMY 20 2FYC ...# BUT NOT UNREASONABLE ASSUMPTION THAT THERE WILL BE LESS THAN 200 19 2G3J ...# SUCH JOBS. IF THE FINTER OVERFLOWS WE MAKE THE EQUALLY CRUMMY 19 2G6P ...# ASSUMPTION THAT AT LEAST 1 OF THE 200 MUST BE UNPRIVILEGED TO 10 2G9W ...# RUN IN A FROZEN DIRECTORY 4 2G*3 ...# 11 2GD8 ... SETNCORE 200,2,FILE,FINTER 8 2GH* ... STOZ A1(2) 18 2GLG ... LDX 1 BJOBQ [X1->1ST BLOCK IN JOBQ 5 2GPM ...TESTJOB 16 2GSS ... BXE 1 CXJO,NDJOBQ [J IF END OF JOBQ 9 2GX_ ... LDX 0 ATYPE(1) 19 2H36 ... SRL 0 12 [CHECK ITS A BLOCK WE WANT 8 2H6? ... ERN 0 JOBQE 15 2H9D ... BNZ 0 NEXTJBLOCK [J IF NOT 9 2H#K ... TXU 3 JUSER(1) 10 2HCQ ... TXU 4 JUSER+1(1) 16 2HGX ... TXU 5 JUSER+2(1) [IS IT OUR USER 14 2HL4 ... BCS NEXTJBLOCK [J IF NOT 9 2HP9 ... LDX 0 JOBNUM(1) 17 2HSB ... CALL 2 YJOBNO [ADD JOBNO TO FINTER 6 2HXH ...NEXTJBLOCK 17 2J2N ... LDX 1 FPTR(1) [MOVE ONTO NEXTBLOCK 15 2J5T ... BRN TESTJOB [LOOP ROUND 5 2J92 ...NDJOBQ 17 2J#7 ... LDX 1 BHLSQ [NOW SEARCH THE HLSQ 5 2JC# ...TESTHLS 16 2JGF ... BXE 1 CXHL,NDHLSQ [J IF END OF HLSQ 9 2JKL ... LDX 0 ATYPE(1) 19 2JNR ... SRL 0 12 [CHECK ITS A BLOCK WE WANT 10 2JRY ... ERN 0 ADATA+JSWAP 14 2JX5 ... BNZ 0 NEXTHBLOCK [J IF NOT 10 2K2= ... TXU 3 HLSUNAM(1) 16 2K5C ... TXU 4 HLSUNAM+1(1) [IS IT OUR USER 10 2K8J ... TXU 5 HLSUNAM+2(1) 14 2K?P ... BCS NEXTHBLOCK [J IF NOT 10 2KBW ... LDX 0 HLSJONO(1) 17 2KG3 ... CALL 2 YJOBNO [PUT JOBNO IN FINTER 6 2KK8 ...NEXTHBLOCK 17 2KN* ... LDX 1 FPTR(1) [MOVE ONTO NEXT BLOCK 9 2KRG ... BRN TESTHLS 5 2KWM ...NDHLSQ 10 2K_S ... MHUNTW 3,FILE,FINTER 18 2L4_ ... LDX 5 A1(3) [COUNT OF STARTED JOBS 15 2L86 ... BZE 5 PROCEED [J IF NONE 15 2L?? ... OPENSYS YBREAK,JOBLIST,READ [OPEN JOBLIST 10 2LBD ... TESTRPN2 OK,(GEOERR) 5 2LFK ...NXSJREC 10 2LJQ ... MHUNTW 3,FILE,FINTER 7 2LMX ... SMO 5 17 2LR4 ... LDX 4 A1(3) [PICK UP NEXT JOB NO 16 2LW9 ... GETJOB 4,SYSTEM [LOCATE RECORD 10 2L_B ... TESTRPN2 OK,(GEOERR) 15 2M4H ... STEPAGAIN [X3->RECORD 10 2M7N ... ADX 3 JOBDATASIZE 20 2M=T ... JBC STARTJOBS,3,JLBFROZEN [J IF USER MAY NOT BE FROZEN 19 2MB2 ... BCT 5 NXSJREC [LOOP IF MORE JOBS TO CHECK 16 2MF7 ... CLOSETOP [CLOSE JOBLIST 5 2MJ# ...PROCEED 10 2MMF ... MFREEW FILE,FINTER 20 2MQL ...NOJOBS [PARAM IS DIRECTORY WITHOUT JOBS 18 2MTR ... [STARTED AND UNPRIVILEGED 4 2MYY ...# 19 2N45 ...# THE BASIC ACTION OF FZ AND CC FZ IS SIMPLE. WE OPEN THE SUP 21 2N7= ...# DIR, SET OR CLEAR THE FZ BIT, REWRITE THE RECORD AND CLOSE THE DIR. 17 2N=C ...# SOME FURTHER ACTIONS ARE NECESSARY FOR DIRECTORIES. 4 2N*J ...# 5 2NDP ...NFREEZE3 17 2NHW ... OPENDIR YBREAK,CLEAN,QUERY,NOWAIT [OPEN SUP DIR. 15 2NM3 ... TESTRPN2 OK,NOTOK [J IF NOT OK 5 2NQ8 ...NOTDIR 10 2NT* ... MHUNTW 3,FILE,ENT 21 2NYG ... JBS XMULTEL,3,BEMULT [NOT ALLOWED TO FREEZE ELEMS OF MULTS 15 2P3M ... JBS XTEMPDIR,3,BETEMP [OR TEMP DIRS 14 2P6S ... JBS XLIBENT,3,BELIB [OR TAPES 5 2P9_ ...REWRITE 17 2P*6 ... BZE 6 YFREEZE1 [J IF FREEZE COMMAND 18 2PD? ... BC 3,BEUSERFREZ [CANCEL SO CLEAR THE BIT 9 2PHD ... BRN NFREEZE1 5 2PLK ...YFREEZE1 15 2PPQ ... BS 3,BEUSERFREZ [SET THE BIT 5 2PSX ...NFREEZE1 9 2PY4 ... LDEX 0 ECOPS(3) 9 2Q39 ... BZE 0 NOBACK 19 2Q6B ... BACKSPACE [SKIP OVER BLOCKS REC IF ANY 10 2Q7Y ... MHUNTW 3,FILE,ENT 5 2Q9H ...NOBACK 10 2Q#N ... NAME 3,FILE,FWB 7 2QCT ... REWRITE 10 2QH2 ... MHUNTW 3,FILE,FWB 9 2QL7 ... NAME 3,FILE,ENT 17 2QP# ... BWNZ EUSE1(3),YDIR [J IF JUST FROZEN DIR 19 2QSF ...NDIR CLOSETOP [CLOSE THE UPDATED DIRECTORY 9 2QXL ...NENT MFREEW FILE,ENT 10 2R2R ...NFAB MFREE FILE,FABSNB 8 2R5Y ... BNZ 6 NUNI 20 2R95 ... VOP ,JWACCESS [IF FREEZE CASE RELEASE JW SEMA 7 2R#= ...NUNI UNIFREE 18 2RCC ... BRN NEXTPAR [J TO PROCESS NEXT PARAM 4 2RD8 ...# 5 2RD_ ...XNOTBX 4 2RFQ ...) 4 2RGJ ...# 17 2RKP ...X2 LDN 6 1 [SET X2 ENTRY MARKER 9 2RNW ... BRN MAINCODE 4 2RS3 ...# 9 2RT4 ... FSHSKIP B,XNOTBY 4 2RW5 ...( 5 2RX8 ...YBREAK 9 2S2* ... BNZ 6 NFREEZE6 20 2S5G ... VOP ,JWACCESS [IN FZ CASE RELEASE JWELL SEMA 5 2S8M ...NFREEZE6 9 2S8W ... FSHCODE A,XNOTB1 4 2S95 ...( 20 2S9# ...# SHARED FILESTORE: WE MUST RETURN TO 'B' IF WE STARTED THERE 4 2S9H ...# 15 2S9Q ... TRANCHKN FSHFZCOMID,EQUAL,XNOTB1,XNOTB1 4 2S9_ ...# 17 2S=8 ... LDN 3 0 [SET BREAK-IN OFFSET 4 2S=C ...# 17 2S=L ...XFIN TRANSFIN 3 [AND GO BACK TO 'B' 4 2S=T ...# 5 2S?4 ...XNOTB1 4 2S?? ...) 21 2S?S ... COMBRKIN [BREAKIN WHILE OPENING DIR OR JOBLIST 4 2SB_ ...# 3 2SG6 ... 4 2SK? ...# 21 2SND ...# THE FOLLOWING CODE IS NECESSARY WHEN FREEZENG/CC FZ ING A DIRECTORY. 20 2SRK ...# WE MUST UPDATE THE DICTIONARY AND INFORM THE JOB HANDLING CODE OF 20 2SWQ ...# THE USERS CHANGE OF STATE, SO IT CAN ADJUST THE RECORDS FOR ANY 11 2S_X ...# WELL JOBS BELONGING TO HIM. 4 2T54 ...# 4 2T89 ...YDIR 15 2T?B ... CLOSETOP [DIRECTORY 13 2TBH ... OPENSYS YBREAK,DICTIONARY,GENERAL 10 2TFN ... MHUNTW 3,FILE,ENT 21 2TJT ... READDICT ,EUSE1(3) [LOCATE AND READ DOWN USERS RECORD 10 2TN2 ... TESTRPN2 OK,REPLYQY 16 2TR7 ... MHUNT 3,FILE,ADICTENT [X3->TO RECORD 16 2TW# ... BNZ 6 NFREEZE4 [J IF CC FREEZE 18 2T_F ... BS 3,BFROZEN [SET BIT FOR FREEZE CASE 9 2W4L ... BRN YFREEZE4 5 2W7R ...NFREEZE4 15 2W=Y ... BC 3,BFROZEN [CLEAR BIT 5 2WB5 ...YFREEZE4 10 2WF= ... NAME 3,FILE,FWB 17 2WJC ... REWRITE [REWRITE THE RECORD 9 2WMJ ... MFREEW FILE,FWB 10 2WQP ... MHUNTW 3,FILE,ENT 20 2WTW ... JBS YFREEZE5,3,BNPSEUDO [DONT TELL JW ABOUT FZ ON PSEUDO 16 2W_3 ... BNZ 6 NFREEZE5 [J IF CC FREEZE 19 2X48 ... DICTWELL EUSE1(3),FREEZE,,ON [TELL JWELL USER IS FROZEN 9 2X7* ... BRN YFREEZE5 5 2X=G ...NFREEZE5 21 2X*M ... DICTWELL EUSE1(3),FREEZE,,OFF[TELL JWELL THE FREEZE IS CANCELLED 5 2XDS ...YFREEZE5 15 2XH_ ... CLOSETOP [DICTIONARY 4 2XM6 ...# 20 2XQ? ...# ALL THAT REMAINS TO DO IS THE SETTING OF THE BIT IN THE FCB IF IT 7 2XTD ...# IS IN CORE. 4 2XYK ...# 7 2Y3Q ... LDN 4 6 7 2Y=Q LDX 5 3 9 2YQB FINDFCB 4,3,NORC 10 2_=2 TESTRPN2 OK,NOTFOUND 16 2_PL BZE 6 YFREEZE2 [J IF ITS FREEZE 17 329= BC 3,BFUSERFREZ [CLEAR BIT IF CANCEL 9 32NW BRN NFREEZE2 5 338G YFREEZE2 14 33N6 BS 3,BFUSERFREZ [SET BIT 5 347Q NFREEZE2 5 34MB NOTFOUND 7 3572 LDX 3 5 18 35LL ... BRN NENT [BACK TO MAIN LINE CODE 4 366= # 5 36KW THEEND 18 375G BNZ 7 YPARS [ERROR IF NO PARAMS GIVEN 9 37K6 ERROR JPARMIS 5 37Q# ...YPARS 20 37XG ... DICTJL [ENSURE THAT ANY DICTWELLS ISSUED 17 384N ... [ARE FULLY IMLEMENTED 19 389W ... LONGONALL #6 [WAKE ALL ACTS WANTING FILES 8 38C4 ... LONGONALL #10 8 38J= ... LONGONALL #12 9 38JL ... FSHCODE A,XNOTB2 4 38K2 ...( 21 38KB ...# SHARED FILESTORE: AS WITH COMBRKIN ABOVE, WE MUST GO BACK TO 'B' 12 38KQ ...# IF THAT IS OUR HOME MACHINE 4 38L6 ...# 15 38LG ... TRANCHKN FSHFZCOMID,EQUAL,XNOTB2,XNOTB2 4 38LW ...# 19 38M= ... LDN 3 1 [SET THE ENDCOM RETURN OFFSET 8 38ML ... BRN XFIN 4 38N2 ...# 5 38NB ...XNOTB2 4 38NQ ...) 6 38PD ... ENDCOM 4 38WL ...# 5 3942 NULLPAR 9 39HL ERROR JPARNULL 8 3=3= BRN NUNI 4 3=GW # 5 3?2G NOTOK 7 3?G6 REPALLER 8 3?_Q ... BRN NFAB 4 3#FB # 4 3#H_ ...XTSN 7 3#LJ ... FREECORE 3 10 3#P7 ... ERROR ERVRYWRONG 8 3#RQ ... BRN NUNI 4 3#W* ...# 5 3#_2 XMULTEL 9 3*DL ERROR ERMULTEL 8 3*Y= ... BRN NDIR 4 3BCW # 5 3BXG XTEMPDIR 9 3CC6 ERROR ERTEMPDIR 8 3CWQ ... BRN NDIR 4 3DBB # 5 3DW2 XLIBENT 9 3F*L ERROR ERLIBENT 8 3FC3 ... BRN NDIR 6 3FDD ...STARTJOBS 14 3FFT ... CLOSETOP [JOBLIST 9 3FH= ... ERROR ERFZSTJBS 10 3FJM ... MFREEW FILE,FINTER 8 3FL4 ... BRN NFAB 4 3FMF ...# 5 3FNW ...REPLYQY 11 3FQ? ... GEOERR BRIEFPM,REPLYQY 4 3FRN ...# 4 3FT= # 9 3G#W XPRIV COMERR ERNOFPRIV 4 3GSG # 10 3H#6 MENDAREA 30,K99FREEZE 4 3HRQ # 5 3HYY ...XNOTBY 4 3J66 ...) 4 3J?B #END 6 ____ ...605223540001