GETPROGCORE

(GIN Macro)

Defined in: COREMACROS

Used in:

GETPROGCORE.mac.txt
 HW=S ...#MAC  GETPROGCORE   
 HW=W ...[   
 HW=Y ...[     MACRO TO OBTAIN ONE OR MORE PAGES OF CORE TO HOLD AN OBJECT   
 HW?2 ...[     PROGRAM OR ITS PAGE TABLES.   
 HW?4 ...[   
 HW?6 ...      ACCSTO %A,ACOMMUNE1,FX2      [STORE SIZE OF REQUEST IN ACOMMUNE1  
 HW?8 ...      LDX   2  FX2  
 HW?= ...[     ENOUGH PAGES AVAILABLE
 HW?# ...[     I.E. REQUEST <OR= COBJFREE+CPAGETURNS-APTURNPAGS  
 HW?B ...      LDX   0  COBJFREE 
 HW?D ...      ADX   0  CPAGETURNS   
 HW?G ...      SBX   0  APTURNPAGS   
 HW?H ...#UNS  ISTDP 
 HW?J ...(   
 HW?K ...      SLA   0  10   
 HW?L ...      STO   0  ACOMMUNE9(2)        [STORE TOTAL FREE FOR CORESHED   
 HW?M ...      SRA   0  10   
 HW?N ...)   
 HW?P ...      SBX   0  ACOMMUNE1(2) 
 HW?Q ...      BNG   0  MNOPAGS             [J IF SUFFICIENT PAGES NOT AVAILABLE 
 HW?R ...      CALL  0  (GETPRING)   
 HW?S ...      BRN      MEND                [J AS PAGES OBTAINED 
 HW?T ...      BRN      MFREZ               [J IF SUFF. PAGES NOT IMM. AVAIL.
 HW?W ...[     SUFFICIENT CORE AVAILABLE I.E.
 HW?Y ...[     REQUEST <OR= COBJFREE+CPAGETURNS-APTURNPAGS      :- IN 1K UNITS   
 HW#2 ...[                  +CFREE+(ACHAP-CHAPTERQUOTA)         :- NO. OF WORDS  
 HW#4 ...[                  -(FREZTOT-FREZFREE-FREZCHAP) 
 HW#6 ...[                  +CPROGFREZ   
 HW#8 ...MNOPAGS 
 HW#= ...      STOZ     ACOMMUNE2(2) 
 HW## ...      SLA   0  10                  [CONVERT TO WORDS
 HW#B ...      ADX   0  CFREE
 HW#D ...      ADX   0  ACHAP
 HW#G ...      SBX   0  CHAPQUOTA
 HW#J ...      SBX   0  FREZTOT  
 HW#L ...      ADX   0  FREZFREE 
 HW#N ...      ADX   0  FREZCHAP 
 HW#Q ...      ADX   0  CPROGFREZ
 HW#S ...      BNG   0  MOPT                [NOT AVAILABLE   
 HW#W ...      BSON BPROGFREZ,MFREZ         [J IF PROGRAM FREEZE ALREADY ACTIVE  
 HW#Y ...      ON BPROGFREZ                 [INDICATE PROGRAM FREEZE ACTIVE  
 HW*2 ...      LDN   0  1
 HW*4 ...      ADS   0  CFPCFREZ            [INCREASE FREE PAGE CHAIN FROZEN IND.
 HW*6 ...#STR  %B
 HW*8 ...      LDN   0  %B   
 HW*= ...#STR  %B
 HW*# ...#SKI
 HW*B ...      LDN   0  0
 HW*D ...      STO   0  ACOMMUNE2(2)        [STORE ABORT SUBROUTINE NO.  
 HW*G ...      DOWN COREALLF,5              [ENTER TO OBTAIN PAGES BY A FREEZE   
 HW*J ...      OFF BPROGFREZ                [UNSET PROGRAM FREEZE INDICATOR  
 HW*L ...      LDN   0  1
 HW*N ...      SBS   0  CFPCFREZ            [REDUCE FREE PAGE CHAIN IND. 
 HW*Q ...      NGX   0  COBJWAIT 
 HW*S ...      BPZ   0  MWCOR               [J IF NO ACTS. WAITING FOR PROG. CORE
 HW*W ...      FON #105                     [WAKE ACTS. WAITING FOR PROG. CORE   
 HW*Y ...      STOZ     COBJWAIT 
 HWB2 ...MWCOR   
 HWB4 ...      CALL  0  (COREKICK)          [WAKE ACTS WAITING FOR CORE IF POSS. 
 HWB6 ...#SKI  K6COREALLF>299-299
 HWB8 ...(   
 HWB= ...      TRACE    ACOMMUNE1(2),FREZAC1 
 HWB# ...      TRACE    ACOMMUNE2(2),FREZAC2 
 HWBB ...)   
 HWBD ...      LDX   0  ACOMMUNE2(2) 
 HWBG ...      SLL   0  12   
 HWBJ ...      BZE   0  %E                  [J TO %E IF FREEZE SUCCESSFUL
 HWBL ...      SLL   0  11   
 HWBN ...      BPZ   0  %F                  [J TO %F IF SHORTFALL NOT REPORTED   
 HWBQ ...#STR  %D
 HWBS ...      BRN      %F                  [J IF OPTIONAL REQUEST   
 HWBW ...#STR  %D
 HWBY ...#SKI
 HWC2 ...(   
 HWC4 ...      LDCT  0  #400 
 HWC6 ...      ORS   0  ACOMMUNE1(2)        [SET B0 TO INDICATE WE'VE COME FROM  
 HWC8 ...      BRN      MFREZ1              [COREFREEZE CODE 
 HWC= ...)   
 HWC# ...MOPT  NGS   0  ACOMMUNE1(2)        [STORE SHORTFALL 
 HWCB ...#SKI  K6COREALLF>499-499
 HWCD ...      TRACE    ACOMMUNE1(2),MOPTAC1 
 HWCG ...#STR  %D
 HWCJ ...(   
 HWCL ...      LDX   1  FX1  
 HWCN ...      BRN      %D                  [J TO %D IF OPTIONAL REQUEST 
 HWCQ ...)   
 HWCS ...MFREZ1  
 HWCW ...      LDCT  0  #020 
 HWCY ...      ORS   0  CLONG1(2)           [SET B4 TO INDICATE FAILED REQUEST   
 HWD2 ...      LDN   0  1
 HWD4 ...      ADS   0  COBJFAIL 
 HWD6 ...      LDX   0  %A                  [LOAD NO. OF PAGES REQUESTED AND ADD 
 HWD8 ...      ADS   0  AOBJFAIL            [TO SUM OF FAILED PROGRAM REQUESTS   
 HWD= ...      SLL   0  12   
 HWD# ...      ORS   0  ACOMMUNE2(2)        [NOW STORE REQUEST IN B0-11  
 HWDB ...MFREZ   
 HWDD ...      LDN   0  1                   [INCREASE NO. OF 
 HWDG ...      ADS   0  COBJWAIT            [OUTSTANDING PROGRAM CORE REQUESTS   
 HWDJ ...      ADS   0  CFPCFREZ            [AND FREE PAGE CHAIN FROZEN IND. 
 HWDL ...      COOR3 #105                   [WAIT FOR PAGES  
 HWDN ...      LDN   0  1
 HWDQ ...      SBS   0  CFPCFREZ            [REDUCE IND. 
 HWDS ...      CALL  0  (COREKICK)          [WAKE ACTS WAITING FOR CORE IF POSS. 
 HWDW ...#SKI  K6COREALLF>499-499
 HWDY ...      TRACE    CLONG1(2),MFREZCL1   
 HWF2 ...      LDX   0  CLONG1(2)
 HWF4 ...      SLL   0  4
 HWF6 ...      BPZ   0  %C                  [J TO %C IF NOT FAILED REQUEST   
 HWF8 ...      LDCT  0  #020 
 HWF= ...      ERS   0  CLONG1(2)           [UNSET B4
 HWF# ...      LDX   0  ACOMMUNE2(2)        [LOAD REQUEST
 HWFB ...      SRL   0  12   
 HWFD ...      SBS   0  AOBJFAIL 
 HWFG ...      LDN   0  #7777
 HWFJ ...      ANDS  0  ACOMMUNE2(2)        [ZEROISE B0-11   
 HWFL ...      LDN   0  1
 HWFN ...      SBS   0  COBJFAIL 
 HWFQ ...      LDX   0  ACOMMUNE1(2) 
 HWFS ...#SKI  K6COREALLF>499-499
 HWFW ...(   
 HWFY ...      TRACE    ACOMMUNE1(2),MFREZAC1
 HWG2 ...      TRACE    ACOMMUNE2(2),MFREZAC2
 HWG4 ...)   
 HWG6 ...      BPZ   0  %C                  [J TO %C IF NOT FROM COREFREEZE  
 HWG8 ...      LDCT  0  #400 
 HWG= ...      ERS   0  ACOMMUNE1(2)        [UNSET B0
 HWG# ...      BRN      %F   
 HWGB ...MEND
 HWGD ...#NOR