The CMDALLW macro generates a list of the valid operations that can be used when the macros CMDRST and CMDTST are called and STMT=A(identifier) is specified for these macros.
Operation | Operands |
CMDALLW | LIST = (name, ...) [ ,SIZE = 1 / i ] [ ,PREFIX = C / p ] [ ,MACID = MDA / mac ] [ ,MF = L / D / C ] |
LIST = (name,...)
Outputs the list of valid statements for the macros CMDRST and CMDTST. The layout is generated as required by the STMT parameter in these macros. Only those statements for which the internal statement name is listed are valid. The internal name is stored in the statement definition in the syntax file (see ADD-STMT). The internal name is at least one and no more than 8 bytes long. Irrespective of the specifications here, the SDF standard statements are always valid.
SIZE = 1 / i
Specifies the number of names that can be entered in the list of valid operations. i must be an integer greater than zero.
For a description of the parameters PREFIX, MACID and MF see section “Macro types”.
Possible combinations
[label] CMDALLW MF=D[,SIZE=i][,PREFIX=p][,MACID=mac]
[label] CMDALLW MF=C[,SIZE=i][,PREFIX=p][,MACID=mac]
[label] CMDALLW MF=L[,LIST=(name,...)]
Return information and error flags
The macro does not return a return code.
Examples
Request memory space for a maximum of 20 names:
ALLC CMDALLW MF=C,SIZE=20
Declare the model for the list of valid statements in a DSECT:
ALLD CMDALLW MF=D,PREFIX=D
Declaration of a list of 20 names (in this example) in the static code. In this instance, the length of the memory space is defined by the number of elements in the list.
ALL20 CMDALLW LIST=(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T),-
PREFIX=I
The space in memory can be initialized by the static code. Processing continues with a pointer to the DSECT:
MVC ALLC(IMDALL#),ALL20
L R5,ALLC
USING ALLD,R5
MVC DMDALNR,=H'15'
MVC DMDAL1+10*DMDALNL,=CL8'V'
...(IMDALL#, DMDALNR, DMDAL1 and DMDALNL are generated by CMDALLW with PREFIX=I and D)
Call with static lists:
...
LA 2,MYLIST
LA 1,RST1
USING RSTD,1 CMDRST MF=M,PARAM=RST1,STMT=(2) * Update parameter area RST1
* using register notation
...
RST1 CMDRST MF=L,STMT=A(MYLIST) * direct initialization of
* parameter area RST1
MYLIST CMDALLW LIST=(A,B,C)
RSTD CMDRST MF=D