TAL Reference Manual

NAMEs and BLOCKs
TAL Reference Manual526371-001
11-3
Usage Considerations
PRIVATE
specifies a private global data block, which is accessible within the current
compilation unit only.
AT (0)
directs Binder to locate the block at location G[0]. (If you specify this option and run
your program in the CRE, conflicts could arise.)
BELOW (64)
directs Binder to locate the block below location G[64].
BELOW (256)
directs Binder to locate the block below location G[256].
data-declaration
is a global declaration of a LITERAL, DEFINE, simple variable, array, simple
pointer, structure pointer, structure, or equivalenced variable.
Usage Considerations
The BLOCK declaration is optional. A compilation unit can contain any number of
named (nonprivate) data blocks, but can contain only one private data block.
If you use the BLOCK declaration, the compilation unit must be named and the NAME
declaration must be the first declaration in the compilation unit. In a named compilation
unit, BLOCK and PRIVATE are reserved words.
The identifier of the BLOCK can be the same as the identifier of a variable declared
within the same block. This feature allows a TAL module to share global data with a C
module.
The private block, if any, inherits the identifier you specify in the NAME declaration for
this compilation unit.
BLOCK Location Options
You can use the AT and BELOW clauses to control where Binder locates a block. For
example:
AT (0)—to detect the use of uninitialized pointers
BELOW (64)—to use XX (extended, indexed) machine instructions
BELOW (256)—to use directly addressed global data
The following limitations apply to the AT and BELOW clauses:
Using the AT[0] option might cause conflicts if you: