/* REXX *** */ numeric digits 10 /* report on storage utilization */ ascb = C2D(STORAGE(224,4)) /* get current ASCB */ tcb = C2D(STORAGE(21C,4)) /* get current TCB */ lda = C2D(STORAGE(D2X(ascb+48),4)) /* local data area */ tct = C2D(STORAGE(D2X(tcb+164),4)) /* get task control table */ eye = STORAGE(D2X(tct+208),8) If eye \= 'TCT ' then Do Say 'Invalid TCT at 'D2X(tct) Exit 8 End Say 'TCT at 'D2X(tct) , 'LDA at 'D2X(tct) tctcore = C2D(STORAGE(D2X(tct+8),4)) /* region info */ stepn = STORAGE(D2X(tct+200),8) /* region info */ lwm = C2D(STORAGE(D2X(tctcore+0),4)) /* region info */ hwm = C2D(STORAGE(D2X(tctcore+4),4)) /* region info */ ehwm = C2D(STORAGE(D2X(tctcore+16),4)) /* region info */ elwm = C2D(STORAGE(D2X(tctcore+20),4)) /* region info */ regn = C2D(STORAGE(D2X(tctcore+32),4)) /* region info */ rgnb = C2D(STORAGE(D2X(tctcore+24),4)) /* region info */ ergnb = C2D(STORAGE(D2X(tctcore+28),4)) /* region info */ LWM = TRUNC(LWM/1024) HWM = TRUNC(HWM/1024) ELWM = TRUNC(ELWM/1024) EHWM = TRUNC(EHWM/1024) REGN = REGN*2 RGNB = TRUNC(RGNB/1024) ERGNB = TRUNC(ERGNB/1024000) Say 'Step 'stepn' Requested REGION='regn'K', 'Max Avail:Below='rgnb'K Above='ergnb'M' Say 'Maximum used: Private 'lwm'K System 'hwm'K Eprivate 'elwm'K ', 'Esystem 'ehwm'K' SAY '-----------------------------------------------------' lwm = C2D(STORAGE(D2X(lda+232),4)) /* region info */ hwm = C2D(STORAGE(D2X(lda+236),4)) /* region info */ ehwm = C2D(STORAGE(D2X(lda+244),4)) /* region info */ elwm = C2D(STORAGE(D2X(lda+240),4)) /* region info */ regn = C2D(STORAGE(D2X(lda+204),4)) /* region info */ rgnb = C2D(STORAGE(D2X(lda+208),4)) /* region info */ ergnb = C2D(STORAGE(D2X(lda+216),4)) /* region info */ regn = TRUNC(regn/1024) rgnb = TRUNC(rgnb/1024) ergnb = TRUNC(ergnb/1024) lwm = TRUNC(lwm/1024) hwm = TRUNC(hwm/1024) elwm = TRUNC(elwm/1024) ehwm = TRUNC(ehwm/1024) Say 'Requested REGION='regn'K', 'Limit:Below='rgnb'K Above='ergnb'M' Say 'Maximum allocated:Private 'lwm'K System 'hwm'K Eprivate 'elwm'K ', 'Esystem 'ehwm'K' /* MEMLIMIT stuff */ /* check CVT flag to see if supported */ cvt = C2D(STORAGE(10,4)) flag = C2D(STORAGE(D2X(cvt+1267),1)) bit64 = (flag%16)//2 If ^bit64 then exit 0 /* continue if supported */ jscb = C2D(STORAGE(D2X(tcb+180),4)) jscb = C2D(STORAGE(D2X(jscb+348),4)) sct = C2D(STORAGE(D2X(jscb+328),4)) eye = STORAGE(D2X(sct+12),4) IF eye ^= 'SCT ' THEN DO SAY 'Invalid SCT at 'D2X(sct) EXIT 12 END sctx = C2D(STORAGE(D2X(sct+84),3)) eye = STORAGE(D2X(sctx+12),4) IF eye ^= 'SCTX' THEN DO SAY 'Invalid SCTX at 'D2X(sctx) EXIT 12 END meml = C2D(STORAGE(D2X(sctx+184),4)) SAY ' ' Say 'Memlimit = 'meml'M' exit 0