Ref:  Your note of Sun, 22 Nov 2020 17:03:38 -0500

Joe Reichman <reichman...@gmail.com> writes:
> I wrapped my SRB code around a CATTR since it going to be moved my question
> now is to reference the starting address is that a  V con or A con

I don't know why you would want to use CATTR for this purpose,
and I cannot think how it would be useful.  CATTR is primarily
to support compatibility with special classes used by compilers
(for example metal C), for example to define a Writable Static
Area (which is only supported in an LE environment) or classes
containing diagnostic information.

If you want to divide up an assembly into separate components
which may be split up by run-time logic, you can simply define
them as separate CSECTs or RSECTs.

In general, if a reference is to a separate module, it either
needs a V-con or an A-con with an EXTRN.  If it is a reference
to something within the same module (that is, the same assembly)
it can be an A-con without any EXTRN.

If the SRB code is going to be moved by run-time logic in your
code, then obviously the starting address needs to be set
dynamically to the target location and any addresses within the
moved code which point within the original must be relocated.

If you want some SRB code to be in common storage, then you
should either have it pre-loaded in LPA or you should use a
LOAD with GLOBAL=YES to load it there as a separate module
(noting the integrity limitations in that case).

Jonathan Scott, HLASM
IBM Hursley, UK

Reply via email to