Re: CATTR usage

2020-11-22 Thread Joseph Reichman
Thanks 

I seen it with METAL C using far pointers 
The only reason I can imagine the use of class is for using  the Q con to get 
an offset 
As I think Q con only supports DSECT DXD or sections in class names 


Thanks 

> On Nov 22, 2020, at 12:04 PM, Jonathan Scott  
> wrote:
> 
> Ref:  Your note of Sun, 22 Nov 2020 11:35:41 -0500
> 
> Joe Reichman  writes:
>> Asking a few questions to see I understand the usage of CATTR
>> ...
> 
> CATTR is managed in the same way as other location counters such
> as CSECT and LOCTR.
> 
> With GOFF, each new CSECT statement starts an element whose
> class name will be filled in later as B_TEXT and whose section
> name is the same as the CSECT name.  It also generates a symbol
> definition associating the CSECT name as an external name with
> the start of the element.  Coding CATTR starts a new element
> whose class name is given by the name field and which also
> belongs the current section (given by the current CSECT name).
> Do not attempt to specify class name B_TEXT explicitly for any
> purpose as this is not supported by HLASM and will probably
> cause errors at bind time.
> 
> You can resume any existing location counter in the usual way
> (for example by a CSECT or LOCTR statement with the original
> name) to switch away from that element, and you can use CATTR
> again with the same name to resume the element.
> 
> Uses for CATTR are rare, as it is primarily used to support
> compatibility with classes generated by compilers for special
> purposes.  I certainly wouldn't recommend it in this case.
> 
> All normal (sequential) I/O processing can be performed in
> 31-bit mode nowadays.  The only aspect which requires 24-bit
> storage is the DCB.  Since the DCB should be in dynamic storage
> rather than part of the program, that means you should acquire
> the relevant storage with LOC=BELOW.  Exit addresses such as
> EODAD= should be specified via a DCBE to support 31-bit mode.
> 
> If you really need separate loadable sections in 24-bit and
> 31-bit storage, just use a separate CSECT and specify the binder
> option RMODE(SPLIT).
> 
> Jonathan Scott, HLASM
> IBM Hursley, UK


Re: CATTR usage

2020-11-22 Thread Jonathan Scott
Ref:  Your note of Sun, 22 Nov 2020 11:35:41 -0500

Joe Reichman  writes:
> Asking a few questions to see I understand the usage of CATTR
> ...

CATTR is managed in the same way as other location counters such
as CSECT and LOCTR.

With GOFF, each new CSECT statement starts an element whose
class name will be filled in later as B_TEXT and whose section
name is the same as the CSECT name.  It also generates a symbol
definition associating the CSECT name as an external name with
the start of the element.  Coding CATTR starts a new element
whose class name is given by the name field and which also
belongs the current section (given by the current CSECT name).
Do not attempt to specify class name B_TEXT explicitly for any
purpose as this is not supported by HLASM and will probably
cause errors at bind time.

You can resume any existing location counter in the usual way
(for example by a CSECT or LOCTR statement with the original
name) to switch away from that element, and you can use CATTR
again with the same name to resume the element.

Uses for CATTR are rare, as it is primarily used to support
compatibility with classes generated by compilers for special
purposes.  I certainly wouldn't recommend it in this case.

All normal (sequential) I/O processing can be performed in
31-bit mode nowadays.  The only aspect which requires 24-bit
storage is the DCB.  Since the DCB should be in dynamic storage
rather than part of the program, that means you should acquire
the relevant storage with LOC=BELOW.  Exit addresses such as
EODAD= should be specified via a DCBE to support 31-bit mode.

If you really need separate loadable sections in 24-bit and
31-bit storage, just use a separate CSECT and specify the binder
option RMODE(SPLIT).

Jonathan Scott, HLASM
IBM Hursley, UK


CATTR usage

2020-11-22 Thread Joe Reichman
Asking a few questions to see I understand the usage of CATTR  

 

Would I uses a CATTR assembler instruction if for example

 

My program CSECT is RMODE 31

 

And if I am doing I/O in 24 bit mode I would define a class rmode 24

 

Would the binder take the piece of code and move it to rmode 24 more so how
do I revert to the original class name which I think is  B_TEXT

 

Would that be by coding CATTR without a name operand ?

 

 

thanks