That's why you will come across truckloads of
/***********************************************************************
* PTR & STG & SWAREQ: *
* *
* Utility procedures to access z/OS control blocks *
***********************************************************************/
ptr: return c2d(storage(d2x(arg(1)), arg(2)))
stg: return storage(d2x(arg(1)), arg(2))
swareq: procedure
if right(c2x(arg(1)), 1) \= 'F' then /* SWA=BELOW ? */
return c2d(arg(1)) + 16 /* Yes, return SVA + 16 */
sva = c2d(arg(1)) /* Convert to decimal */
tcb = ptr(540, 4) /* TCB PSATOLD */
jscb = ptr(tcb + 180, 4) /* JSCB TCBJSCB */
qmpl = ptr(jscb + 244, 4) /* QMPL JSCBQMPI */
qmat = ptr(qmpl + 24, 4) /* QMAT QMADD */
do while sva > 65536
qmat = ptr(qmat + 12, 4) /* Next QMAT QMAT + 12 */
sva = sva - 65536 /* 010006F -> 000006F */
end
return ptr(qmat + sva + 1) + 16
In many REXX routines...
Robert
On Mon, 19 Dec 2022 at 17:12, Rupert Reynolds <[email protected]> wrote:
> On Mon, 19 Dec 2022, 15:16 Paul Gorlinsky, <[email protected]> wrote:
>
> > Results from a zos 2.4 system
> >
> > /* */
> > Say c2x(Storage("10",8))
> > Say c2x(Storage(10+0,4))
> > Say c2x(Storage(10+4,4))
> > Z = c2x(Storage(10,4))
> > Say c2x(Storage(Z,8))
> >
> > Results:
> >
> > 00FD4EA800000000
> > 00FD4EA8
> > 00000000
> > 0000021800FED054
> >
> > Any comments?
> >
> > ----------------------------------
>
> From memory*, if you want 8 bytes at CVTPTR then that last line should be
> say c2x(storage(c2x(Z),8)).
>
> I'm thinking the return from storage is raw data, so to use it as a pointer
> represented in hex for storage() you need c2x().
>
> *memory is old, and there are more hex and bin functions available now than
> there were back in the '90s.
>
> Roops
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>
--
Robert AH Prins
robert(a)prino(d)org
The hitchhiking grandfather <https://prino.neocities.org/index.html>
Some REXX code for use on z/OS
<https://prino.neocities.org/zOS/zOS-Tools.html>
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN