Quantity
You can code any of the following expressions after the
keyword and equal sign:
- A decimal number, or an expression that you have equated to a
decimal number. For example:
TESTCB ACB=ACB1,ERROR=13,AM=VTAM - A register number, or the label of an EQU instruction for the
register number, enclosed in parentheses. For example:
L 5,TESTVAL TESTCB ACB=ACB1,ERROR=(5),AM=VTAM ⋮ TESTVAL DS F TESTVAL SET DURING PROGRAM * EXECUTIONNote: This form is prohibited if you are using the “simple” list form of the macroinstruction (MF=L). - An expression of the form (S,expr) where expr is
any expression valid for an S-type address constant. This form is
especially useful for gaining access to a control block field with
a DSECT. For example, the program has already used GENCB to build
an ACB in dynamically allocated storage, and has placed the address
of the ACB in register 7. A temporary work area, MYACB, contains the
information with which the contents of the ERROR field in the ACB
pointed to by register 7 are compared. The DSECT ACBMAP is used to
access the information in MYACB.
LA 5,MYACB USING ACBMAP,5 TESTCB ACB=(7),ERROR=(S,ERR1),AM=VTAM ⋮ MYACB DS XL108 ACBMAP DSECT DS XL49 ERR1 DS X DS XL58 ENDNote: This form is prohibited if you are using the “simple” list form of the macroinstruction (MF=L). - An expression of the form (*,expr) where expr is
any expression valid for an S-type address constant. The address specified
by expr is indirect; that is, it is the
address of a fullword that contains the quantity for the operand.
For example, the program has determined which ERROR value is tested
and has primed register 5 with the appropriate displacement into ERRORLST:
TESTCB ACB=ACB1,ERROR=(*,ERLST(5)),AM=VTAM ⋮ ERLST EQU * BADNAME DC F'90' BADPSWD DC F'152'