"IBM Mainframe Assembler List" <[email protected]> wrote on
11/08/2023 04:31:21 PM:
> If in the mainline code you need the address of any exit routine,
> use “L Rx,=A(exit name)” rather than simply “LA Rx,exitname”.
I get the rest of what you said. But could you explain why the
above is needed? It seems related to using a V address constant for an
external subroutine which is resolved by the linkage editor. To start
with, I guess that this is because of limiting the range of the code base?
Does the linkage editor still get involved in adjusting the =A constant
after the fact?
I do have the following in the mainline code when I set up to call
to the IBM system utility. Obviously, I could simply change this as you
describe but I wouldn't know why -- and I always like to know why. ;-)
LA R2,IPTEXIT GET EXIT RTN ADDRESS
LA R3,IPTAREA GET I/O AREA ADDRESS
STM R2,R3,INLCIPTA PUT ADDRESSES IN CONTROL BLOCK
LA R2,LSTEXIT GET EXIT RTN ADDRESS
LA R3,LSTAREA GET I/O AREA ADDRESS
STM R2,R3,INLCLSTA PUT ADDRESSES IN CONTROL BLOCK
LA R2,PCHEXIT GET EXIT RTN ADDRESS
LA R3,PCHAREA GET I/O AREA ADDRESS
STM R2,R3,INLCPCHA PUT ADDRESSES IN CONTROL BLOCK
Sincerely,
Dave Clark
--
int.ext: 91078
direct: (937) 531-6378
home: (937) 751-3300
Winsupply Group Services
3110 Kettering Boulevard
Dayton, Ohio 45439 USA
(937) 294-5331
*********************************************************************************************
This email message and any attachments is for use only by the named
addressee(s) and may contain confidential, privileged and/or proprietary
information. If you have received this message in error, please
immediately notify the sender and delete and destroy the message and all
copies. All unauthorized direct or indirect use or disclosure of this
message is strictly prohibited. No right to confidentiality or privilege
is waived or lost by any error in transmission.
*********************************************************************************************