Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

CMDTA Generate transfer area for analyzed statement

&pagelevel(5)&pagelevel

The CMDTA macro generates a DSECT for the standardized transfer area. This defines and initializes the data area. The standardized transfer area is needed for the following three purposes:

  1. SDF passes an analyzed statement to the program
    (see CMDCST, CMDRST and CMDTST)

  2. The program returns a semantically incorrect statement to SDF (see CMDCST)

  3. The program passes values to SDF that are to replace specified operand values (see CMDRST and CMDTST).

The standardized transfer area is described in detail on "Format of the standardized transfer area".

Operation

Operands                                                                                                   

CMDTA

MAXLEN = <integer 0..2147483647> / <var: int 0..2147483647>

,MF = C / D / L / M

MAXLEN = <integer 0..2147483647> / <var: int:8>
Specifies the length of the standardized transfer area (in bytes).

Description of the parameters MF, MACID and PREFIX see the “Executive Macros“manual [8 (Related publications)].

Migration from CMDSTRUC to CMDTA
In the new transfer area all the data is correctly aligned (addresses on word boundary, halfwords on halfword boundary, etc.). As a result, ICM instructions can be replaced by L and LH instructions.
The length field of the new transfer area occupies 4 bytes (after the standard header). In the old transfer area this was 2 bytes right at the start of the transfer area.

On the next pages you will find a comparison of the DSECTs generated by CMDSTRUC and CMDTA. The names changed when CMDTA is used are shown in bold print.

*-      *****************************
*-      * STRUCTURED DESCRIPTION    *
*-      *****************************
*-     CMDSTRUC                   CMDTA

CMDSDES  DSECT                    CMDSDES  DSECT
CMDML    DC    XL2'0'             CMDFHDR  FHDR  MF=(C,CMD),EQUATES=NO
CMDINTN  DC    CL8' '             CMDML          DS    F
CMDVER   DC    XL4'0'             CMDINTN        DS    CL8
CMDLAB   DC    AL4(0)             CMDLAB         DS    A
CMDNRMO  DC    XL2'0'             CMDVER         DS    CL3
CMDMAINO EQU   *                  CMDUNU1        DS    XL1
CMDSDESL EQU   *-CMDSDES          CMDUNU2        DS    XL8
                                  CMDNRMO        DS    H
                                  CMDUNU3        DS    XL2
                                  CMDMAIN        EQU   *
                                  CMDSDEL        EQU   *-CMDFHDR

*-        ***************************
*-        * OPERAND DESCRIPTOR      *
*-        ***************************

CMDODES  DSECT                    CMDODES        DSECT
CMDGSTAT DC    X'00'              CMDGSTA        DS    AL1
CMDOCC   EQU   X'80'              CMDOCC         EQU   X'80'
CMDUCH   EQU   X'40'              CMDUCH         EQU   X'40'
CMDERR   EQU   X'20'              CMDERR         EQU   X'20'
CMDRDEF  EQU   X'10'              CMDRDEF        EQU   X'10'
*                                 CMDOTYP        DS    FL1
CMDOTYPE DC    X'00'              CMDGATT        DS    AL1
*                                 CMDWILD        EQU   X'80'
CMDODESL EQU   *-CMDODES          CMDCWIL        EQU   X'40'
                                  CMDSATT        DS    0XL1
                                  CMDFNAT        DS    AL1
                                  CMDFNCA        EQU   X'80'
                                  CMDFNUS        EQU   X'40'
                                  CMDFNGE        EQU   X'20'
                                  CMDFNVE        EQU   X'10'
                                  CMDFNTP        EQU   X'08'
                                           ORG   CMDSATT
                                  CMDNAAT        DS    AL1
                                  CMDNAUN        EQU   X'80'
                                           ORG   CMDSATT
                                  CMDCNAT        DS    AL1
                                  CMDCNUN        EQU   X'80'
                                  CMDCNCA        EQU   X'40'
                                           ORG   CMDSATT
                                  CMDTXAT        DS    AL1

                                  CMDTXSE        EQU   X'80'
                                           ORG   CMDSATT
                                  CMDXTAT        DS    AL1
                                  CMDXTOD        EQU   X'80'
                                           ORG   CMDSATT
                                  CMDPXAT        DS    AL1
                                  CMDPXAB        EQU   X'80'
                                  CMDPXPO        EQU   X'40'
                                  CMDPXQU        EQU   X'20'
                                           ORG   CMDSATT
                                  CMDSTAT        DS    AL1
                                  CMDSTQU        EQU   X'80'
                                           ORG   CMDSATT
                                  CMDPVAT        DS    AL1
                                  CMDPVCO        EQU   X'80'
                                  CMDPVUI        EQU   X'40'
                                           ORG   CMDSATT+1
                                  CMDODEL        EQU   *-CMDODES

*-        ***************************
*-        * OPERAND HEADER          *
*-        ***************************
*-

CMDHEAD  DSECT                    CMDHEAD        DSECT
CMDDES   DC    XL2'0'                            DS    0A
CMDOPTR  DC    AL4(0)             CMDDES         DS    XL4
CMDHEADL EQU   *-CMDHEAD          CMDOPTR        DS    A
                                  CMDHEAL        EQU   *-CMDHEAD

*-        ***************************
*-        * STRUCTURE OPERAND       *
*-        ***************************
*-

CMDSOP   DSECT                    CMDSOP   DSECT
CMDNREL  DC    XL2'0'                      DS    0A
CMDSTRT  DC    XL6'0'             CMDNREL  DS    H
CMDSTEL  EQU   *                  CMDUNU4  DS    XL2
CMDSOPL  EQU   *-CMDSOP           CMDSTRT  DS    XL8
                                  CMDSTEL  EQU   *
                                  CMDSOPL  EQU   *-CMDSOP

*-        ***************************
*-        * OPERAND VALUE           *
*-        ***************************
*-

CMDOVAL  DSECT                    CMDOVAL  DSECT
CMDLVAL  DC    XL2'0'                      DS    0A
CMDAVAL  EQU   *                  CMDLVAL  DS    H
CMDTIME  EQU   CMDAVAL            CMDUNU5  DS    XL2
CMDHOUR  DC    XL2'0'             CMDAVAL  EQU   *
CMDMINU  DC    X'0'               CMDTIME  EQU   CMDAVAL
CMDSEC   DC    X'0'               CMDHOUR  DS    H
         ORG   CMDAVAL            CMDMINU  DS    X
CMDIVAL  DC    XL4'0'             CMDSEC   DS    X
CMDOVALL EQU   *-CMDOVAL                   ORG   CMDAVAL
                                  CMDIVAL  DS    F
                                  CMDOVLL  EQU   *-CMDOVAL

*-        ***************************
*-        * LIST ELEMENT            *
*-        ***************************
*-

CMDLE    DSECT                    CMDLE    DSECT
CMDETYPE DC    XL6'0'                      DS    0A
CMDORL   EQU   *                  CMDETYP  DS    XL8
CMDNEL   DC    AL4(0)             CMDORL   EQU   *
CMDELOP  EQU   *                  CMDNEL   DS    AL4
CMDELVAL EQU   *                  CMDELOP  EQU   *
CMDLEL   EQU   *-CMDLE            CMDELVA  EQU   *
                                  CMDLEL   EQU   *-CMDLE

*-        *****************************
*-        * EQUATES FOR OPERAND TYPES *
*-        *****************************
*-

CMDC#RES EQU   1                  CMDCRES  EQU   1
CMDINT   EQU   2                  CMDINT   EQU   2
CMDX#STR EQU   4                  CMDXSTR  EQU   4
CMDC#STR EQU   5                  CMDCSTR  EQU   5
CMDNAME  EQU   6                  CMDNAME  EQU   6
CMDA#NAM EQU   7                  CMDANAM  EQU   7
CMDS#NAM EQU   8                  CMDSNAM  EQU   8
CMDLABEL EQU   9                  CMDLABE  EQU   9
CMDSTAR  EQU   10                 CMDSTAR  EQU   10
CMDF#FIL EQU   11                 CMDFFIL  EQU   11
CMDP#FIL EQU   12                 CMDPFIL  EQU   12
CMDTIM   EQU   13                 CMDTIM   EQU   13
CMDDATE  EQU   14                 CMDDATE  EQU   14
CMDCNAME EQU   15                 CMDCNAM  EQU   15

CMDTEXT  EQU   16                 CMDTEXT  EQU   16
CMDCATID EQU   17                 CMDCATI  EQU   17
CMDI#TXT EQU   18                 CMDITXT  EQU   18
CMDSTRUC EQU   19                 CMDSTRU  EQU   19
CMDLIST  EQU   20                 CMDLIST  EQU   20
CMDOR#LI EQU   21                 CMDORLI  EQU   21
CMDKEYW  EQU   22                 CMDKEYW  EQU   22
CMDVSN   EQU   24                 CMDVSN   EQU   24
CMDXTEXT EQU   25                 CMDXTEX  EQU   25
CMDFIXD  EQU   26                 CMDFIXD  EQU   26
CMDDEV   EQU   27                 CMDDEV   EQU   27
CMDPVER  EQU   28                 CMDPVER  EQU   28
CMDX#PAT EQU   29                 CMDXPAT  EQU   29
CMDX#FIL EQU   35                 CMDXFIL  EQU   35