z/OS DFSMS Macro Instructions for Data Sets
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Macro format

z/OS DFSMS Macro Instructions for Data Sets
SC23-6852-02

Data management macros follow the rules of assembler language and are written in the following format:

Name Operation Operands (Parameters) Comments
Symbol or blank Macro name None, one or more operands separated by commas  
Use the operands to specify services and options you need and code them according to the following general rules:
  • If the operand is a combination of bold capital letters and italic lowercase letters (for example, LRECL=absexp), code the capital letters and equal sign exactly as shown and substitute the appropriate address, name, or value for the italic lowercase letters.
  • Code commas and parentheses exactly as shown.

    Omit the comma that follows the last operand in a statement. Brackets and braces show how to use commas and parentheses the same way they show how to use operands.

  • Several macros contain the name 'S'. Use the apostrophe on both sides of the S operand.
If you need to substitute a name, value, or address, the notation you use depends on the operand you are coding. The following two examples show how an operand can be coded:
DDNAME=symbol
In this example, you can only code a valid assembler-language symbol for the operand.
dcb address-RX-Type Address, (2-12), or (1)
In the above example, you can substitute an RX-type address, any general register 2 through 12, or general register 1.
The following examples show what each notation means and how you can code an operand:
symbol
Any valid assembler-language symbol, which is an alphabetic character followed by 0–61 alphanumeric or national characters, with no special characters except underscore and no blanks.
decimal digits
Any decimal digits up to the maximum value allowed for the specific operand. If both symbol and decimal digit are used, an absolute expression is also allowed.
(2-12)
Any of the general registers 2 through 12, coded in parentheses, to distinguish the register number from an A-type address. For example, if you code register 3, use the form (3). The following is an example with the CLOSE macro:
  CLOSE   ((3))
If you want to use one of the registers 2 through 12, code it as a decimal number, a symbol (equated to a decimal number), or an expression that yields a value of 2 through 12.
(1)
You can use general register 1 as an operand. Specify the register as (1). When register 1 is used as an operand, the instruction that loads the parameter value into the register is not included in the macro expansion.
(0)
You can use general register 0 as an operand. Specify the register as (0). When register 0 is used as an operand, the instruction that loads the parameter value into the register is not included in the macro expansion.
RX-Type Address
Any valid assembler-language RX-type address. The following shows examples of each valid RX-type address:
Name Operation Operand
ALPHA1 L 1,39(4,10)
ALPHA2 L REG1,39(4,TEN)
BETA1 L 2,ZETA(4)
BETA2 L REG2,ZETA(REG4)
GAMMA1 L 2,ZETA
GAMMA2 L REG2,ZETA
GAMMA3 L 2,=F'1000'
LAMBDA1 L 3,20(,5)

Both ALPHA instructions specify explicit addresses; REG1 and TEN are absolute symbols. Both use index registers. Both BETA instructions specify implied addresses. Indexing is omitted from the BETA and GAMMA instructions. GAMMA1 and GAMMA2 specify implied addresses. The second operand of GAMMA3 is a literal. LAMBDA1 specifies an explicit address with no indexing.

A-Type Address
Any address that can be written as a valid assembler-language A-type address constant. You can write an A-type address constant as an absolute value, a relocatable symbol, or a relocatable expression. Operands that require an A-type address are inserted into an A-type address constant during the macro expansion process.
absexp
An absolute value or expression. An absolute expression can be an absolute term or an arithmetic combination of absolute terms. An absolute term can be a nonrelocatable symbol, a self-defining term, or the length attribute reference.
relexp
A relocatable symbol or expression. A relocatable symbol or expression is one whose value changes by n if the program in which it appears is relocated n bytes away from its originally assigned area of storage.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014