In fact, when the IBM macro generates BAL, the missing SYSSTATE is maybe not the
problem.
SYSSTATE is needed if you get such things as LA R1,*+20 because in this case
IEABRC(X) doesn't help.
I have in my startup macro:
SYSSTATE ARCHLVL=2
SYSSTATE OSREL=ZOSV1R8
IEABRCX DEFINE
SYSSTATE makes sure, that the IBM macros don't use LA etc. to get the addresses
of inline parameter lists (but BAL instead, for example)
and IEABRCX takes care that the BAL is replaced by the proper relative branch.
Thank you, regards
Bernd
Am 19.04.2014 22:35, schrieb B.D.:
> Copy IEABRC
>
> On Sat, 19 Apr 2014 18:35:49 GMT E.J. wrote:
>
> :> hello
> :>
> :> I know this topic has been discussed before..
> :> Im on a Z/OS 1.7 system with HLASM R5.0
> :> ...
> :> Im trying to maintain the concept of "Baseless Code" in some programs,
> :> I keep running into some macros on Z/os 1.7 that use BAL R15,*+20
> :> .
> :> .
> :> And as such i receive message
> :> ** ASMA034E Operand *+20 beyond active USING range by 185 bytes
> :> ** ASMA435I Record 124 in SYS1.MACLIB(IHBINNRB) on volume: S7RES1
> :> .
> :> .
> :> I could move the routine to another location in this module, and that
> :> would avoid the ASMA034E. Is there a recommended technique to use where
> :> I could convert the BAL instruction in the macro to another branch instruction ?
> :> .
> :> .
> :> P.
> :>
>
> --
> B.D.
|