Coding the macros
In this information, each macro description includes a syntax diagram
near the beginning of the macro description. The diagram shows how
to code the macro. The syntax diagram does not explain the meanings
of the parameters; the meanings are explained in the parameter descriptions
that follow the syntax diagram.
For most macros,
the syntax diagrams are in a tabular format; however, some newer macros
might have syntax diagrams in the railroad track format.
The syntax tables assume that the standard begin, end, and continue columns are used. Thus, column 1 is assumed as the begin column. To change the begin, end, and continue columns, use the ICTL instruction to establish the coding format you want to use. If you do not use ICTL, the assembler recognizes the standard columns. To code the ICTL instruction, see HLASM Language Reference.

Column one of the table contains zones A and B. Zone
A begins at the left margin; zone B is indented from the left margin
by one or more blank spaces. Column two of the table contains zone
C. 
- Zone A and zone B contain those parameters that are allowed for the macro. Zone A contains those parameters that are required; zone B contains those parameters that are optional.
- If a
parameter appears on a single line in the
diagram (that is, a line whose preceding line and following line are
both blank)
, as shown in A1 and B1, then that is the only available
choice for the particular parameter. - If two or more
parameters appear on adjacent
lines (that is, with no intervening blank lines)
, as shown in
A2 and B2, the parameters on those lines are mutually exclusive, that
is, you can code any one of those parameters. - A further distinction is made between mandatory and optional parameters. The parameter descriptions that follow the syntax table clearly identify those parameters which are optional.
Zone C (which is the second column in the syntax
table)
, provides additional information about coding the macro.
indicated in
zone C
, the following classifications are used: - Variable
- Classification
- symbol
- Any symbol valid in the assembler language. The symbol can be as long as the supported maximum length of a name entry in the assembler you are using.
- Decimal digit
- Any decimal digit up to and including the value indicated in the parameter description. If both symbol and decimal digit are indicated, an absolute expression is also allowed.
- Register (2) - (12)
- One of general purpose registers 2 through 12, specified within parentheses, previously loaded with the right-adjusted value or address indicated in the parameter description. You must set the unused high-order bits to zero. You can designate the register symbolically or with an absolute expression.
- Register (0)
- General purpose register 0, previously loaded with the right-adjusted value or address indicated in the parameter description. You must set the unused high-order bits to zero. Designate the register as (0) only.
- Register (1)
- General purpose register 1, previously loaded with the right-adjusted value or address indicated in the parameter description. You must set the unused high-order bits to zero. Designate the register as (1) only.
- Register (15)
- General purpose register 15, previously loaded with the right-adjusted value or address indicated in the parameter description. You must set the unused high-order bits to zero. Designate the register as (15) only.
- RX-type address
- Any address that is valid in an RX-type instruction (for example, LA).
- RS-type address
- Any address that is valid in an RS-type instruction (for example, STM).
- RS-type name
- Any name that is valid in an RS-type instruction (for example, STM).
- A-type address
- Any address that can be written in an A-type address constant.
- Default
- A value that is used in default of a specified value; that is, the value the system assumes if the parameter is not coded.
- If the selected parameter is written in all capital letters (for example, MATH, HIST, or FMT=HEX), code the parameter exactly as shown.
- If the selected parameter is written in italics (for example, grade), substitute the indicated value, address, or name.
- If the selected parameter is a combination of capital letters and italics separated by an equal sign (for example, DATA=data addr), code the capital letters and equal sign as shown, and then make the indicated substitution for the italicized portion.
- Read the table from top to bottom.
- Code commas and parentheses exactly as shown.
- Positional parameters (parameters without equal signs) appear first; you must code them in the order shown. You may code keyword parameters (parameters with equal signs) in any order.
- If you select a parameter, read the second column
(zone
C)
before proceeding to the next parameter. The third column
often contains coding restrictions for the parameter.