22FL ...#SEG QUOTA60 [OWEN N JOHN :CENT 22^= #OPTIONAL K0QUOTA=0 23DW #OPTIONAL K6QUOTA=100 23YG #LIST K0QUOTA>K0ALLGEO 24D6 8HQUOTA 24XQ # 25CB # 25X2 # IMPLEMENTS THE QUOTA COMMAND. 26BL # 26W= SEGENTRY K1QUOTA,XK1 26YT ...#UNS G4PERMDIAG 273D ...( 2763 ...# DIAGNOSTIC FOR PERMISSION VIOLATIONS. 278L ... SEGENTRY K2QUOTA,XK2 27?9 ...) 27*W # 27TG # 28*6 # IN GEORGE 3 THIS COMMAND HAS NO EFFECT. 28SQ # 29#B # 29S2 #SKIP G3 2=?L ( 2=R= XK1 2?=W ENDCOM 2?QG ) 2#=6 #SKIP G4 2#PQ ( 2*9B # 2*P2 # 2B8L # IN GEORGE 4 THIS COMMAND JUST VERIFIES THE PARAMETERS, AND 2BN= # USES THE STARTSCI SEGMENT TO DO THE DIRTY WORK. 2C7W # 2CMG # 2D76 # 2DLQ NFIX 4 2F6B 4HFIX 2FL2 # 2G5L # 2GK= NFREE 4 2H4W 4HFREE 2HJG # 2J46 # 2JHQ Z4MPLUS1 4*1024*1024+1 2K3B # 2K55 ...# SUBROUTINE TO FIND SWAP CONTROL BLOCK(BSTB/BSCB) 2K6S ...# POINTER IN X3.LINK IS X7 2K8H ...XHUNTBSCB 2K== ... SBX 7 FX1 2K?^ ... FPCACA 3,FX2 [FIND PCA FROM CPAT 2K*N ... HUNT2 3,BSTB,BSCB [FIND BSTB/BSCB 2KCC ... ADX 7 FX1 2KF6 ... EXIT 7 0 2KH2 XK1 2L2L STOZ 4 [ SET FIX MARK = ZERO. 2LG= PARABEG 1,NFREE(1) [ FIND 'FREE' PARAM. 2L^W HUNT 3,CPB,CUNI 2MFG LDX 0 ANUM(3) 2M^6 BNG 0 QFIX [ JUMP IF NO 'FREE' PARAM. 2NDQ BZE 0 NONUM [ JUMP IF JUST 'FREE' 2NYB BRN NUMBER [ ELSE CONVERT NUMBER. 2PD2 QFIX PARABEG 1,NFIX(1) [ LOOK FOR 'FIX' PARAMETER. 2PXL HUNT 3,CPB,CUNI 2QC= LDX 0 ANUM(3) 2QWW BNG 0 QNUM [ JUMP IF NOT FOUND. 2RBG LDN 4 1 [ SET FIX MARK. 2RW6 BZE 0 NONUM [ AND JUMP IF NO NUMBER. 2S*Q BRN NUMBER 2STB QNUM PARAPASS [ NO PREFIX. 2T*2 HUNT 3,CPB,CUNI 2TSL LDX 0 ANUM(3) 2W#= BNG 0 NONUM 2WRW BZE 0 NONUM 2X?G NUMBER 2XR6 LDX 0 JPARNUM(3) 2Y=Q SBN 0 1 2YQB BNZ 0 NERROR1 [ JUMP IF NOT FIRST PARAMETER. 2^=2 FJOCA 2 2^PL TESTRT NERROR3,2 [ JUMP IF REAL TIME. 329= CHNUMCO1 ,ZBREAKIN [ GET NO. 32NW TESTREPN OK,Q200 [ JUMP IF COCK UP. 338G LDX 6 ACOMMUNE1(2) [ PICK UP NUMBER. 33N6 BXGE 6 Z4MPLUS1(1),NERROR2 [ JUMP IF REQUEST TOO SILLY (EG >4M 347Q BZE 6 NERROR2 [ OR > 4M) 34MB ADN 6 1023 [ ROUND UP 3572 ANDX 6 B2T13 35#8 ...#SKI JWPHASE4<1$1 35FB ...( 35LL BXL 6 AMAXQUOTA,Q100 [ JUMP IF LESS THAN MAXIMUM, 366= LDX 6 AMAXQUOTA [ ELSE GIVE MAXIMUM. 36KW Q100 375G SRL 6 10 [ ROUND UP TO 1K MULT 376* ...) 3778 ...#SKI JWPHASE4 3783 ...( 378W ... FJOCA 3,2 379P ... LDX 5 JQUOTA(3) 37=J ... BNZ 5 QNDF [J IF HLS HAS GIVEN A MQ 37?C ... LDX 5 AMAXQUOTA 37#= ...QNDF BXL 6 5,Q100 [J IF REQUEST WITHIN LIMIT 37*5 ... LDX 6 5 37*Y ...Q100 LDX 5 AMAXQUOTA 37BR ... BXGE 5 6,NTELL 37CL ... SRL 6 10 37DF ... HLSINFORM ZBREAKIN,MAXQUOTA,JOBNO(2),6,,,XOPT1 37F# ... LDX 6 5 [TAKE IP MQ IF OVER IT 37G7 ...NTELL SRL 6 10 37H2 ...XOPT1 37HT ...) 37K6 FJOCA 3,FX2 384Q TESTRCTP 3,RCTP [ RCTP'S ARE ARKWARD. 38JB Q102 3942 LDX 1 3 [KEEP X1 -> JOB BLOCK 39HL ... CALL 7 XHUNTBSCB [FIND BSTB/BSCB 3=GW Q103 3?2G TESTLOAD 1,Q104 [J IF LOADED 3?G6 3?^Q LDX 0 HALFTOP 3#FB ANDS 0 AQUOTA(3) 3#^2 DSA 6 AQUOTA(3) 3*DL BRN Q101 3*Y= Q104 3BCW ... NGNC 0 1 3BXG ... ANDX 0 AQUOTA(3) 3CC6 ... STO 0 AQUOTA(3) [CLEAR FIX BIT 3CWQ ANDN 0 #7777 3DBB BXE 0 6,QJUSTCLEAR 3DW2 DOWN STARTSCI,3 3F*L ... CALL 7 XHUNTBSCB [FIND BSTB/BSCB 3G#W LDX 0 AQUOTA(3) 3GSG ANDN 0 #7777 3H#6 SBX 0 6 3HRQ BZE 0 Q101 3J?B GEOERR 1,QUOTA??? 3JR2 Q101 3JSY ...NONUM1 3JWW ...[ 3JYS ...[ THIS IS TO CURE BUG3104 - CONCERNS NON-OUTPUT OF:- 3K2Q ...[ "EXECUTION OF YOUR PROG MAY BE DELAYED" 3K4N ...[ 7TH JULY 75 :CENT 3K6L ...[ 3K8J ... FJOCA 2,FX2 [FIND THE JOB BLOCK 3K=G ... LDX 0 AQUOTA(3) 3K#D ... SLL 0 10 [OBTAIN QUOTA IN WORDS 3KBB ... STO 0 JCSIZE(2) [NOW WE UPDATE JCSIZE 3KD# ...[ 3KG= ... BXL 0 COBJQUOTA,NOTBIG [J. IF CORE REQ. >< OQ. 3KJ8 ... MONOUT BIGPROG [ELSE OP "EXEC MAY BE DEL.." 3KK7 ... CALL 7 XHUNTBSCB [FIND BSTB/BSCB 3KL6 ...NOTBIG 3KN4 ...[ 3KQ= LDCT 0 #400 3L9W ORS 0 AQUOTA(3) [ SET FIX. 3LPG BNZ 4 Q200 3M96 ERS 0 AQUOTA(3) [ UNSET IF FREE. 3MNQ Q200 3N8B ENDCOM 3NN2 NONUM FJOCA 2 3P7L TESTRT NERROR3,2 [ JUMP IF REAL-TIME. 3PM= ... CALL 7 XHUNTBSCB [FIND BSTB/BSCB 3QLG BNZ 4 NONUM1 [ IF JUST 'QUOTA FREE', THEN WE 3R66 QJUSTCLEAR 3RKQ DOWN STARTSCI,1 [ USE THIS ENTRY POINT TO JUST 3RTJ ... BNZ 4 NONUM [ENSURE FIX BIT SET IF NEC. 3S9? ... BRN NOTBIG [ ENSURE FREE SET AND ENDCOM 3SK2 RCTP 3T4L SBN 6 1 [ RCTP MUST HAVE 2 PAGES IN QUOTA. 3TJ= BZE 6 NERROR2 3W3W ADN 6 1 3WHG BRN Q102 3X36 # 3XGQ # ERROR CASES. 3Y2B # 3YG2 NERROR1 [ PARAMETER ERROR 3Y^L COMERR APFERR 3^F= NERROR2 [ REQUEST IS STUPID. 3^YW COMERR IQR 42DG NERROR3 [ REALTIME PROGRAM 42Y6 COMERR JRTQUOTA 43CQ # 43XB # BREAKIN 44C2 # 44WL ZBREAKIN 45B= COMBRKIN 45TW MENDAREA 40,K99QUOTA 46*G ) 46*X ...#UNS G4PERMDIAG 46B# ...( 46BP ...# 46C6 ...# THIS CODE IS A DIAGNOSTIC TO DETECT THE LOSING OF PERMISSION 46CH ...# BITS IN THE PAGE TABLE ENTRY OF A PAGE JUST SWAPPED IN 46CY ...# IT GEOERRS IF A PAGE HAS NO PERMISSIONS 46D* ...# 46DQ ...# 46F7 ...#DEF XPCAPTR=AWORK1 46FJ ...MASK #1600 [PERMISSION BITS 46F^ ...XK2 LDX 2 XPCAPTR(2) [SET X2 TO PCA 46GB ... LDN 4 0 [PAGE 0 46GR ... LDX 5 BIT11 [MAX POSSIBLE SIZE OF PROGRAM 46H8 ... SCANINIT (GEOERR),ASEGTAB(2),4,5 [ENSURE ALL COVERED IN ONE 46HK ... [SEGMENT TABLE 46J2 ...ZNEXTSEG 46JC ... SCANPT 2,ZUP,ZNEXTSEG,,ASEGTAB(2),4,5,3,6 46JS ...# X3 NOW POINTS TO PAGE TABLE ENTRY 46K9 ...# X6 NOW CONTAINS NO OF CONSECUTIVE ENTRIES 46KL ... LDX 1 FX1 46L3 ...ZNEXT 46LD ... LDX 0 0(3) [PAGE TABLE ENTRY 46LT ... BNG 0 NOTREP [J IF NOT REPLACEMENT ENTRY 46M= ... SMO 0 [PICK UP REPLACEMENT ENTRY 46MM ... LDX 0 0 46N4 ...NOTREP 46NF ... ANDX 0 MASK(1) [ISOLATE PERMISSION BITS 46NW ... BZE 0 ZNOPERM [J TO GEOERR IF NONE 46P? ...XCONT ADN 3 1 [NEXT PAGE TABLE ENTRY 46PN ... BCT 6 ZNEXT 46Q5 ... ADN 4 64 [NEXT SEGMENT 46QG ... BRN ZNEXTSEG 46QX ...ZUP UP 46R# ...ZNOPERM 46RP ... GEOERR 1,NOPERMS 46S6 ...) 46T6 #END ^^^^ ...43215144000600000000