Binder Manual (G06.24+, H06.03+)
Object File Structure
Binder Manual—528613-003
4-2
Primary and Secondary Entry Points
Code block names are not case-sensitive except when the program includes C-coded
routines. You can call a C routine from other languages only if the routine name in the
C program is in all uppercase characters.
Code Block Attributes
Especially in TAL and Pascal, code block declarations can contain attributes that
define execution or relocation characteristics. You can alter some attributes using the
ALTER command. Once you have set the INTERRUPT, EXTENSIBLE, and VARIABLE
attributes of a TAL code block or the EXTENSIBLE attribute of a Pascal program at
compile time, however, you cannot change them.
The MAIN attribute applies to any of the languages. After compilation, however, you
can alter the MAIN attribute for TAL and C procedures only.
You can explicitly set the attribute in the given language compiler if “yes” is shown in
the table.
For descriptions of the code attributes, see theTAL Reference Manual discussion of
procedure and subprocedure declarations.
Primary and Secondary Entry Points
Each code block has one primary entry point, accessed through PCAL or XCAL
instructions. The name of the primary entry point is the same as the code block. The
primary entry point is generally, but not always, at the first word of the code block.
FORTRAN and TAL allow routines to have zero or more secondary entry points, which
are also accessed through PCAL instructions. Other languages do not use secondary
entries. To a caller, a secondary entry point looks and acts like independent routines; it
is sufficiently related to the primary entry point to share source code and machine code
and cannot be positioned independently at bind time. Secondary entry points have
distinct names and distinct starting locations within the code block.
Table 4-1. Code Block Attributes
Attribute C COBOL85 FORTRAN PASCAL TAL
Alterable by
Binder
MAIN Yes Yes Yes Yes Yes TAL, C
CALLABLE Yes Yes TAL, Pascal
INTERRUPT Yes
PRIVILEGED Yes Yes TAL, Pascal
RESIDENT Yes Yes TAL, Pascal
VARIABLE Yes
EXTENSIBLE Yes Yes