Migration of current OBJ usage to GOFF style is straightforward,
and is necessary only if the new GOFF facilities are needed. (The
program management binder will continue to accept OBJ records.)
In general, the first step in creating a GOFF record will be to
initialize the record buffer to binary zeros; most of the fields will
not be needed, and zeros will provide the proper default values.
The GOFF analogs of current OBJ facilities are shown here, along
with examples of the kinds of Assembler Language statements or operands
that create them:
- ESD records
OBJ ESD records can contain the following types
of information:
- SD names, including PC elements (blank SD names): these are derived
from START, CSECT, and RSECT statements.
- CM names: these are derived from COM statements.
- LD names: these are derived from ENTRY statements.
- ER names (possibly, WX): these are derived from EXTRN and WXTRN
statements, and from the names in V-type address constants.
- PR names: these are derived from DXD statements, and Q-type address
constants containing DSECT names.
- TXT records
Current OBJ TXT records contain simply an ESDID
(of the section to which the text belongs), a length, and an address.
The contents of TXT records are derived from the machine language
instructions and data generated during the assembly process.
- RLD records
Each item on OBJ RLD records is derived from an
A-type, V-type, or Q-type address constant, or from a CXD statement.
- END records
Current OBJ END records can contain an optional
entry point request (either as an external name, or as an ESDID/offset
combination to request entry within a module), plus zero to two IDR
elements. The data on the END record is created by the translator
(first IDR element), or is derived from the operand(s) of the END
statement (requested entry point and second IDR item).
- SYM records
Current OBJ SYM records have no analog in GOFF
records; they are produced when the Assembler's TEST option is specified.
The information currently collected on SYM records should be produced
in GOFF ADATA records, or in some other translator-defined class.
No mappings are shown for SYM data, nor for other forms of symbol
tables.
It is assumed that translators will not produce nonstandard forms
of object module records (for example, zero-data ESD records or blank
SD items).