I'm creating another external assembler REXX function, but this 
time to provide a REXX-friendly interface to an IBM (z/VSE) system utility 
-- which has user exits that I have chosen to hook back to my assembler 
program.  In other words, the exit routines are "internal" to my assembler 
program.  The result is that I end up with assembler warning messages such 
as the following for each of the exit routines (sorry for the wraparound, 
if any).

LIBR     RXLIBRIO - REXX SUBROUTINE FOR LIBR CALL INTERFACE          Page  
40
  Active Usings: ARXEXTE,R9  SHVBLOCK,R10  RXLIBRIO,R11  DYNASTOR,R13
  Loc  Object Code    Addr1 Addr2  Stmt   Source Statement   HLASM R6.0 
2023/11/08 14.33
                                   2507 * 
=================================================================== *
0005C8                             2508 IPTEXIT  DS    0H            LIBR 
SYSIPT EXIT ROUTINE
                                   2509 * 
------------------------------------------------------------------- *
0005C8 90EC D00C            0000C  2510          STM R14,R12,(4-1)*4(R13)  
 SAVE REGS IN CALLER'S SAVEAREA
0005CC 18CF                        2511          LR    R12,R15     LOAD 
ROUTINE BASE REGISTER
                 R:C  005C8        2512          USING IPTEXIT,R12  
ESTABLISH CODE BASE REG
** ASMA303W Multiple address resolutions may result from this USING and 
the USING on statement number 1748
** ASMA435I Record 621 in SYSIPT on volume:

        Now, I totally understand the reason for the message (and that is 
not part of question).  But since I am sharing data and routines, in my 
base program, then the exit routines need addressability to those areas as 
well.  Thus, my base program uses a code base of R11 and the exit routines 
have an overlapping code base of R12.  (I am passing my R13 address 
through the IBM utility interface to my exit routine where that makes it 
possible to restore R11 -- along with R9 and R10.)

        So, here is my question...  Is doing things this way "acceptable" 
in the IBM assembler world?  Or should I be placing these exit routines in 
their own programs?  Or if having them "internal" as described, is there 
something else I should be doing to avoid overlapping base registers? 
Thanks.

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