QUOTA850

(George Source)

Macros used: BXE, BXGE, BXL, CHNUMCO1, COMBRKIN, COMERR, DOWN, ENDCOM, FJOCA, FPCACA, GEOERR, HLSINFORM, HUNT, HUNT2, MASK, MENDAREA, MONOUT, PARABEG, PARAPASS, SCANINIT, SCANPT, SEGENTRY, TESTLOAD, TESTRCTP, TESTRT, UP

QUOTA850.txt
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
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1