Positional operands
You can use a positional operand to pass a value into a macro definition through the corresponding positional parameter declared for the definition. Declare a positional parameter in a macro definition when you want to change the value passed at every call to that macro definition.
You can use a positional operand to pass a value into a macro definition through the corresponding positional parameter declared for the definition. Declare a positional parameter in a macro definition when you want to change the value passed at every call to that macro definition.
You can also use a positional operand to pass a value to the system variable symbol &SYSLIST. If &SYSLIST, with the applicable subscripts, is specified in a macro definition, you do not need to declare positional parameters in the prototype statement of the macro definition. You can thus use &SYSLIST to refer to any positional operand. This allows you to vary the number of operands you specify each time you call the same macro definition.
The positional operands of a macro instruction must be specified in the same order as the positional parameters declared in the called macro definition.
Each positional operand constitutes a character string. This character string is the value passed through a positional parameter into a macro definition.

- An omitted operand has a null character value.
- Each positional operand can be up to 4064 characters long.
- If the DBCS assembler option is specified, the positional operand can be a string containing double-byte data. The string does not need to be quoted.
MACCALL VALUE,9,8
MACCALL &A,'QUOTED STRING'
MACCALL EXPR+2,,SYMBOL
MACCALL (A,B,C,D,E),(1,2,3,4)
MACCALL &A,'<.S.T.R.I.N.G>'
- Equal
- Valid, if operands are correctly specified.
- Greater than
- Meaningless, unless &SYSLIST is specified in definition to refer to excess operands.
- Less than
- Omitted operands give null character values to corresponding parameters (or &SYSLIST specification).