On Sat, 16 Jan 2021 21:13:31 -0600 John McKown <[email protected]> wrote:
:>On Fri, Jan 15, 2021 at 12:34 PM Mark Henderson <[email protected]> :>wrote: :> :>> Hey Paul, :>> :>> Thanks for your suggestion. IEABRCX solves a part of the problem by :>> dealing with the branching aspect of the macro and I'm already using it. :>> Right now I've R2 set as a temporary base and, to highlight the problem, :>> here's those parts of the expansion of a GETHOSTNAME that need it to :>> assemble cleanly: :>> 01DC 4100 20DC 00000298 740+ LA 0,E$H10008 :>> Set up command 01-EZA :>> 023A D203 F000 20D8 00000000 00000294 778+ MVC :>> 0(4,15),E$R20008 Move -1 to field 01-EZA :>> 0240 58F0 20D8 00000294 779+ L 15,E$R20008 :>> Set R15 to -1 @03A 01-EZA :>> 0244 D203 E000 20D4 00000000 00000290 780+ MVC :>> 0(4,14),E$R10008 Move error number to field 01-EZA :>> 01DC 4100 20DC 00000298 740+ LA 0,E$H10008 :>> Set up command 01-EZA :>> 0290 0000277E 809+E$R10008 DC F'10110' :>> 01-EZA :>> 0294 FFFFFFFF 810+E$R20008 DC F'-1' :>> 01-EZA :>> 0298 0008 811+E$H10008 DC H'08' :>> 01-EZA :>> I'd really like to get away from having to set the temporary base but :>> don't see an easy answer. :>> Cheers, Mark. :>> :> :>I do that quite often when a macro doesn't support R&I instructions. :>Something like: :> :> BASR R2,0 :> USING R2,* :> somemacro :> J AROUNDx :> LTORG * :>AROUNDx DS 0H :> DROP R2 :> :>The use of the LTORG is to make sure that any literals that might be used :>are within the range of the using. This is because my R&I (baseless) :>programs can be quite large. "Nobody will need a CSECT larger than 4K" is :>right up there with "Nobody will ever need more that 64K". But I don't have :>anything as big as IGDZILLA. Yet. Before EXEC SQL was made relative addressing friendly by IBM, I used OPSYN to alter the effect of the instructions. My code was PRE_SQL EXEC SQL ... POST_SQL >From the above expansion you code can redefine DC via OPSYN and when you see the label begins with E$ use LOCTR to relocate those fields to you literal area. -- Binyamin Dissen <[email protected]> http://www.dissensoftware.com Director, Dissen Software, Bar & Grill - Israel Should you use the mailblocks package and expect a response from me, you should preauthorize the dissensoftware.com domain. I very rarely bother responding to challenge/response systems, especially those from irresponsible companies.
