In the case where the address is in the same source module, =A(routine) will 
work and =V(routine) might not. In the case where the routine is external to 
your source module, you need =V(routine).

If your exit routine follows the mainline, then LA or LAY should work; you 
don't need the addcon at all.

Suggestion: if you're initializing a long string of consecutive addresses, load 
R14 through R2 to cut down on the numer of ST and STM instructions.

-- 
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי



________________________________________
From: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> on behalf 
of Dave Clark <dlcl...@winsupplyinc.com>
Sent: Wednesday, November 8, 2023 4:48 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Internal Exit Routine Handling

"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.
*********************************************************************************************

Reply via email to