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.
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.
Figure 1 shows a sample macro, TEST, and
summarizes all the coding information that is available for it. The
table is divided into three columns, A, B, and C.
Figure 1. Sample Macro Syntax Diagram
- Column A and Column B contain those parameters that are allowed
for the macro. Column A contains those parameters that are required;
column B contains those parameters which are optional.
- If a single line appears, as shown in A1 and B1, then that is
the only available choice for the particular parameter.
- If two or more lines appear together, 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.
- The third column, C, provides additional information about coding
the macro.
When substitution of a variable is required in column 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.
Use the parameters to specify the services and options to be performed,
and write them according to the following rules:
- 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 italics.
- 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 third column before proceeding
to the next parameter. The third column often contains coding restrictions
for the parameter.