{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: QUOTA850)}}
====== QUOTA850 ======
(George Source)
**Macros used:** [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:CHNUMCO1|CHNUMCO1]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERR|COMERR]], [[george:macro:DOWN|DOWN]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FJOCA|FJOCA]], [[george:macro:FPCACA|FPCACA]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HLSINFORM|HLSINFORM]], [[george:macro:HUNT|HUNT]], [[george:macro:HUNT2|HUNT2]], [[george:macro:MASK|MASK]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MONOUT|MONOUT]], [[george:macro:PARABEG|PARABEG]], [[george:macro:PARAPASS|PARAPASS]], [[george:macro:SCANINIT|SCANINIT]], [[george:macro:SCANPT|SCANPT]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:TESTLOAD|TESTLOAD]], [[george:macro:TESTRCTP|TESTRCTP]], [[george:macro:TESTRT|TESTRT]], [[george:macro:UP|UP]]
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