         MACRO                                                          00050000
         ISTCB1 &ARG=,&ARGNAME=,&MF=,&TYPE=,&POS=1,&CALLER=    @ZA34940 00100000
.*                                                             @ZA34940 00150000
.*       CHANGE LEVEL = 0                                      @ZA34940 00200000
.*       DATE OF LAST CHANGE =  15  DEC  78  ( 78*348 )        @ZA34940 00250000
.*                                                             @ZA34940 00300000
.* FUNCTION - DETERMINE OPERAND TYPE, VALIDITY CHECK, AND TRANSFORM     00350000
.*            THE OPERAND PASSED BY &ARG.  OPERAND TYPES VN2 AND VN3    00400000
.*            ARE NOT SUPPORTED.                                        00450000
.* CALLERS  - GENCB,MODCB,SHOWCB,TESTCB,ISTCB1,IDACB2          @ZA34940 00500000
.*                                                             @ZA34940 00550000
.* CHANGE ACTIVITY                                             @ZA34940 00600000
.*      CBMM SPLIT SUPPORT                                     @ZA34940 00650000
.*                                                             @ZA34940 00700000
.* GLOBALS                                                              00750000
         GBLB  &IDACB01                ERROR INDICATOR                  00800000
         GBLA  &IDACB11                OPERAND TYPE                     00850000
         GBLC  &IDACB12                EXIT LIST CODES                  00900000
         GBLC  &IDACB13                CHARACTER TRANSFORM              00950000
.* LOCALS                                                               01000000
         LCLB  &A,&N,&L,&P,&E          EXIT LIST ATTRIBUTES     Y30ASHS 01050000
         LCLB  &VTAMX                  VTAM EXIT SWITCH          X03004 01100000
         LCLA  &BIT1,&BIT2             ARITHMETIC BIT VALUES            01150000
         LCLA  &VN1,&AN1,&AN2,&AN3,&AN4  OPERAND TYPE CODES             01200000
         LCLA  &I                      WORK VARIABLE                    01250000
         LCLC  &Z4                     BIT STRING PADDING               01300000
.* INITIALIZATION                                                       01350000
&IDACB11 SETA  0                                                        01400000
&IDACB13 SETC  ''                                                       01450000
&VN1     SETA  1                                                        01500000
&AN1     SETA  4                                                        01550000
&AN2     SETA  5                                                        01600000
&AN3     SETA  6                                                        01650000
&AN4     SETA  7                                                        01700000
&I       SETA  K'&ARG                                                   01750000
         AIF   ('&ARG' EQ '').L150                                      01800000
         AIF   ('&TYPE' NE '').L70     TEST FOR COMPLEX OPERAND         01850000
.* ELEMENTARY OPERANDS                                                  01900000
         AIF   ('&ARG'(1,3) EQ '(S,').L10                               01950000
         AIF   ('&ARG'(1,3) EQ '(*,').L20                               02000000
.L05     AIF   ('&ARG'(1,1) NE '(').L50                                 02050000
&IDACB11 SETA  &AN1                    *** AN1 ***                      02100000
&IDACB13 SETC  '&ARG'(2,&I-2)          REMOVE PARENS                    02150000
         AGO   .L40                                                     02200000
.L10     ANOP                          *** AN2 ***                      02250000
&IDACB11 SETA  &AN2                                                     02300000
         AGO   .L30                                                     02350000
.L20     ANOP                          *** AN3 ***                      02400000
&IDACB11 SETA  &AN3                                                     02450000
.L30     ANOP                                                           02500000
&IDACB13 SETC  '&ARG'(4,&I-4)          EXTRACT ADDRESS                  02550000
.L40     AIF   ('&MF' EQ 'L').L160                                      02600000
         MEXIT                                                          02650000
.L50     ANOP                          *** VN1 OR AN4 ***               02700000
&IDACB11 SETA  &AN4                                                     02750000
         AIF   (T'&ARG NE 'N').L60                                      02800000
         AIF   (&ARG GT 4095).L60                                       02850000
&IDACB11 SETA  &VN1                                                     02900000
.L60     ANOP                                                           02950000
&IDACB13 SETC  '&ARG'                                                   03000000
         MEXIT                                                          03050000
.* COMPLEX OPERANDS - NESTED SUBLISTS                                   03100000
.L70     AIF   ('&TYPE' NE 'X').L80    TEST FOR EXIT LIST ENTRY         03150000
&Z4      SETC  '0000'                                                   03200000
&IDACB12 SETC  '&Z4&Z4&Z4&Z4&Z4&Z4&Z4&Z4'                               03250000
&IDACB13 SETC  '0'                                                      03300000
         AIF   ('&ARG(1)' EQ '' OR '&ARG(1)' EQ '0').L90                03350000
&P       SETB  1                                                        03400000
&IDACB12 SETC  '0001&Z4&Z4&Z4&Z4&Z4&Z4&Z4'                              03450000
         AIF   (N'&ARG EQ 1).L05                                        03500000
         AIF   ('&ARG(1)' EQ 'S').L10                                   03550000
         AIF   ('&ARG(1)' EQ '*').L20                                   03600000
.L80     ISTCB1 ARG=&ARG(&POS),ARGNAME=&ARGNAME,MF=&MF         @ZA34940 03650000
         AIF   ('&TYPE' EQ 'X').L90                                     03700000
         MEXIT                                                          03750000
.L90     ANOP                                                           03800000
&VTAMX   SETB  ('&ARGNAME' EQ 'LOGON')                           X03004 03850000
&VTAMX   SETB  (&VTAMX OR '&ARGNAME' EQ 'LOSTERM')               X03004 03900000
&VTAMX   SETB  (&VTAMX OR '&ARGNAME' EQ 'RELREQ')                X03004 03950000
&VTAMX   SETB  (&VTAMX OR '&ARGNAME' EQ 'ASYIP')                 X03004 04000000
&VTAMX   SETB  (&VTAMX OR '&ARGNAME' EQ 'UNSIP')                 X03004 04050000
&VTAMX   SETB  (&VTAMX OR '&ARGNAME' EQ 'ATTN')                  X03004 04100000
&VTAMX   SETB  (&VTAMX OR '&ARGNAME' EQ 'TPEND')                 X03004 04150000
&VTAMX   SETB  (&VTAMX OR '&ARGNAME' EQ 'NSEXIT')               G40AKCM 04200000
&VTAMX   SETB  (&VTAMX OR '&ARGNAME' EQ 'SCIP')                 X999999 04250000
&VTAMX   SETB  (&VTAMX OR '&ARGNAME' EQ 'DFASY')                X999999 04300000
&VTAMX   SETB  (&VTAMX OR '&ARGNAME' EQ 'RESP')                 X999999 04350000
&VTAMX   SETB  (&VTAMX OR '&ARGNAME' EQ 'DFSYN')                X999999 04400000
&I       SETA  N'&ARG+1                                                 04450000
.L100    ANOP                                                           04500000
&I       SETA  &I-1                                                     04550000
         AIF   (&I LE 1).L140                                           04600000
         AIF   ('&ARG(&I)' EQ 'A').L110                                 04650000
         AIF   ('&ARG(&I)' EQ 'N').L120                                 04700000
         AIF   ('&ARG(&I)' EQ 'L').L130                                 04750000
         AIF   ('&ARG(&I)' EQ 'E').L131                          X03004 04800000
         ISTERMAC 5,&ARGNAME,&ARG(&I)                          @ZA34940 04850000
&IDACB01 SETB  1                                                        04900000
         AGO   .L100                                                    04950000
.L110    ANOP                                                           05000000
&A       SETB  1                                                        05050000
         AGO   .L100                                                    05100000
.L120    ANOP                                                           05150000
&N       SETB  1                                                        05200000
         AGO   .L100                                                    05250000
.L130    ANOP                                                           05300000
&L       SETB  1                                                        05350000
         AGO   .L100                                                    05400000
.L131    ANOP                                                    X03004 05450000
&E       SETB  1                                                 X03004 05500000
         AGO   .L100                                             X03004 05550000
.L140    AIF   (NOT(&A AND &N)).L144                            Y30ASHS 05600000
         ISTERMAC 8,&ARGNAME,A,N                               @ZA34940 05650000
&IDACB01 SETB  1                                                 X03004 05700000
.L144    AIF   (&VTAMX).L147                                     X03004 05750000
         AIF   (NOT &E).L148                                    Y30ASHS 05800000
         ISTERMAC 5,&ARGNAME,E                                 @ZA34940 05850000
&IDACB01 SETB  1                                                 X03004 05900000
         AGO   .L148                                             X03004 05950000
.L147    AIF   (NOT &L).L148                                     X03004 06000000
         ISTERMAC 5,&ARGNAME,L                                 @ZA34940 06050000
&IDACB01 SETB  1                                                 X03004 06100000
.L148    AIF   (NOT &P AND ('&CALLER' EQ 'GEN' OR ('&CALLER' EQ 'MOD'  C06150000
               AND (&L OR NOT (&A OR &N))))).L180                X03004 06200000
&IDACB12 SETC  '&A&N&L&P&E.000&Z4&Z4&Z4&Z4&Z4&Z4'               Y30ASHS 06250000
         MEXIT                                                          06300000
.* ERRORS                                                               06350000
.L150    ISTERMAC 7,ISTCB1             LOGIC ERROR             @ZA34940 06400000
         AGO   .L190                                                    06450000
.L160    ISTERMAC 6,&ARGNAME,&ARG      OPERAND INVALID FOR LIST@ZA34940 06500000
         AGO   .L190                                                    06550000
.L170    ISTERMAC 8,&ARGNAME,A,N       INCOMPAT. SUBLIST ITEMS @ZA34940 06600000
         AGO   .L190                                                    06650000
.L180    ISTERMAC 10,&ARGNAME          MISSING EXIT ADDRESS    @ZA34940 06700000
.L190    ANOP                                                           06750000
&IDACB01 SETB  1                                                        06800000
         MEND                                                           06850000
