"IBM Mainframe Assembler List" <ASSEMBLER-LIST@LISTSERV.UGA.EDU> 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. *********************************************************************************************