Very nice! Especially appreciate the practical application. We like dat. :-)
Why not -- from memory; untested; I could be off -- but something like
USING PSA,0
USING PSWDSECT,FLCIOPSW
?
Does not burn a register for nothing.
You can even name the DSECTs and have addressability on a couple of
different low-memory PSWs at the same time
OldIOPSW USING PSWDSECT,FLCIOPSW
OtherPSW USING PSWDSECT,SOMEOPSW
You address fields as
L R2,OldIOPSW.PSWIADDR
Charles
-----Original Message-----
From: IBM Mainframe Assembler List [mailto:[email protected]]
On Behalf Of Paul Gilmartin
Sent: Monday, November 11, 2019 11:10 AM
To: [email protected]
Subject: Re: Questionable Instructions in Obtaining EAX documentation
On 2019-11-11, at 09:25:32, Jonathan Scott wrote:
>
> The USING 0 case used to occur from time to time by accident
> when using PL/S, PL/X or similar compilers which generate
> assembler as an intermediate step, if the programmer switched
> into assembler temporarily. This was because the programmers
> often failed to realise that the compiler translated a structure
> to a set of equates for offsets, not a DSECT.
> ...
I once had a DSECT that mapped a PSW. So, hopefully, I tried
something like:
USING PSWDSECT-FLCIOPSW,R0
The result was not what I intended. Experts tell me the design
is misguided, but won't be fixed lest it break extant art.
Interestingly:
XR R2,R2
USING PSWDSECT-FLCIOPSW,R2
works better and more intuitively.
-- gil