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:ASSEMBLER-LIST@LISTSERV.UGA.EDU]
On Behalf Of Paul Gilmartin
Sent: Monday, November 11, 2019 11:10 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
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

Reply via email to