Setting up the symbol table

When you provide a symbol table to the ASASYMBM service (that is, when you specify a non-zero address in the SYMBPSYMBOLTABLE@ field), code the following fields in the ASASYMBP mapping macro:
Field
Description
SYMBTNUMBEROFSYMBOLS
Specifies the number of entries in the symbol table. The number can be zero.
SYMBTTABLEENTRIES
Specifies the beginning of the entries in the symbol table. If the SYMBTINDIRECTSYMBOLAREA bit is off, the symbol table entries must be contiguous to the header, beginning at this field. Otherwise, place the SYMBTESYMBOLAREAADDR field in this field; SYMBTESYMBOLAREAADDR must point to an area that contains the symbol table entries. SYMBTESYMBOLAREAADDR is a field in the SYMBTE structure; for details about the ASASYMBP mapping, see z/OS MVS Data Areas in the z/OS Internet library.
SYMBTE
Specifies an entry in the symbol table. Code one symbol table entry (SYMBTE) for each symbol in the symbol table. The number of entries is specified in the SYMBTNUMBEROFSYMBOLS field. If the SYMBTINDIRECTSYMBOLAREA bit is off, the symbol table entries must be contiguous to the header, beginning at the SYMBTTABLEENTRIES field. Otherwise, the symbol table entries begin at the area pointed to by the SYMBTESYMBOLAREAADDR field.
Each symbol table entry (SYMBTE) must set the following fields:
  • SYMBTESYMBOLPTR, when the SYMBTPTRSAREOFFSETS flag is off; it specifies the address of the area that contains the name of the symbol
  • SYMBTESYMBOFFSET, when the SYMBTPTRSAREOFFSETS flag is on; it specifies the offset to the symbol from the beginning of the symbol area; you must also set up the area pointed to by the offset
  • SYMBTESYMBOLLENGTH, which specifies the length of the symbol
  • SYMBTESUBTEXTPTR, when the SYMBTPTRSAREOFFSETS flag is off; it specifies the address of the area that contains the substitution text for the symbol
  • SYMBTESUBTEXTOFFSET, when the SYMBTPTRSAREOFFSETS flag is on; it specifies the offset to the substitution text from the beginning of the symbol area; you must also set up the area pointed to by the offset
  • SYMBTESUBTEXTLENGTH, which specifies the length of the substitution text.

If you specify an address in the SYMBPSYMBOLTABLE@ field, you must also provide a symbol table header (SYMBTHEADER). Optionally, set one or more of the flags in the symbol table header to indicate that ASASYMBM is to perform additional functions.

Note: The field and bit names in the following list are all prefixed by the characters SYMBT in the ASASYMBP mapping macro. The SYMBT prefix is not used out of consideration for readability.
Flag
Function
CHECKNULLSUBTEXT
Specifies that ASASYMBM is to return a return code of X'0C' if the substitution text for a symbol is a null string (has a length of zero).

The default is to not check if the substitution text for a symbol is a null string.

INDIRECTSYMBOLAREA
Specifies that the symbol area is not contiguous; it is pointed to by the SYMBTESYMBOLAREAADDR field. For an example of a symbol area that is not contiguous, see Figure 2.

The default is that the symbol area is contiguous.

NODEFAULTSYMBOLS
Specifies that ASASYMBM is not to use the default set of system symbols. In other words, ASASYMBM uses only the symbols that are defined in the user-provided symbol table.

When you do not set this flag, ONLYDYNAMICSYMBOLS, or ONLYSTATICSYMBOLS to on, the default is to use both dynamic and static system symbols.

ONLYDYNAMICSYMBOLS
Specifies that ASASYMBM is not to substitute text for the static system symbols.
ONLYSTATICSYMBOLS
Specifies that ASASYMBM is not to substitute text for the dynamic system symbols.
PTRSAREOFFSETS
Specifies that the pointer fields in the symbol table are offsets. The system adds the offset to the address of the symbol area to obtain the actual address of the operand.

The default is to indicate that the pointer fields in the symbol table are pointers.

MIXEDCASESYMBOLS
Specifies that the system is to recognize, within an input pattern, symbols that contain:
  • All upper-case characters, and
  • Both upper-case and lower-case characters.

The default is to recognize symbols that match the symbols in the symbol table.

TIMESTAMPISGMT
Specifies that the input time stamp is Coordinated Universal Time (UTC) or Greenwich Mean Time (GMT). TIMESTAMPISGMT is the default when you provide a time stamp (in the area pointed to by SYMBPTIMESTAMP@) and you do not set this flag, TIMESTAMPISLOCAL, or TIMESTAMPISSTCK to on.
TIMESTAMPISLOCAL
Specifies that the input time stamp is local time.
TIMESTAMPISSTCK
Specifies that the input time stamp is obtained from the system time of day (TOD) clock.
WARNNOSUB
Specifies that ASASYMBM is to return a X'10' return code when the system does not perform symbolic substitution.

The default is to not return a return code when the system does not perform symbolic substitution.

WARNSUBSTRINGS
Specifies that ASASYMBM is to return a X'04' return code when the system finds a substring error. See the information on using symbols in z/OS MVS Initialization and Tuning Reference for information about how the system performs symbolic substitution when errors occur in substringing.

The default is to not return a return code when the system finds a substring error.

The following is an example of a symbol table that is contiguous:
Figure 1. Contiguous Symbol Table
ieaa6tb1
The following is an example of a symbol table that is not contiguous:
Figure 2. Non-contiguous Symbol Table
ieaa6tab