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