* /* START OF SPECIFICATIONS **** 00050000 * 00100000 *01* MODULE-NAME = NIB 00150000 * 00200000 *01* DESCRIPTIVE-NAME = NODE INFORMATION BLOCK 00250000 * 00300000 *01* COPYRIGHT = NONE 00350000 * 00400000 *01* STATUS = RELEASE 1 00450000 * 00500000 *01* FUNCTION = THE NIB MACRO PROVIDES CONTROL BLOCKS THAT ARE USED TO 00550000 * INDICATE TO VTAM WHICH NODE OR NODES ARE TO BE THE OBJECT OF ANY 00600000 * GIVEN CONNECTION OR I/O REQUEST 00650000 * 00700000 *01* NOTES = EACH NIB MACRO GENERATES ONE CONTROL BLOCK, CALLED A NODE 00750000 * ENTRY. 00800000 * 00850000 *02* CHARACTER-CODE-DEPENDENCIES = NONE 00900000 * 00910000 *02* DEPENDENCIES = NONE 00950000 * 00960000 *02* RESTRICTIONS = NONE 01000000 * 01050000 *02* REGISTER-CONVENTIONS = NONE 01450000 * 01460000 *02* PATCH-LABEL = NONE 01500000 * 01510000 *01* MODULE-TYPE = MACRO 01550000 * 01600000 *02* PROCESSOR = ASSEM-370R 01650000 * 01700000 *02* MACRO-SIZE = 75 STATEMENTS 01750000 * 01850000 *02* ATTRIBUTES = LIST-EXEC 01900000 * 01950000 *01* ENTRY-POINT = NA 02000000 * 02050000 *01* EXIT-NORMAL = NA 02100000 * 02150000 *01* EXIT-ERROR = NA 02200000 * 02250000 *01* EXTERNAL-REFERENCES = NONE 02300000 * 02310000 *01* TABLES = NONE 02350000 * 02360000 *01* INNER-MACROS = NONE 02400000 * 02410000 *01* SYSTEM-MACROS = NONE 02450000 * 02460000 *01* CHANGE-ACTIVITY = AS-FOLLOWS 02510000 * NEW MACRO - FIRST RELEASE 31 DOS/VS 02560000 * 03 OS/VS1 02610000 * 03 OS/VS2 02660000 * APAR OZ31003 @ZA31003 02680000 **** END OF SPECIFICATIONS ***/ 02700000 * 02750000 * /* IBM OPERATING SYSTEM */ 02910000 * /* VTAM-5741-SCVTM */ 02960000 MACRO 06450000 &LBL NIB &NAME=,&MODE=,&USERFLD=,&CONDN=X'0',&PROC=,&LISTEND=YES,*06500000 &SDT=SYSTEM,&EXLST=0,&RESPLIM=1,&LOGMODE=0,&BNDAREA=0 06510000 .*A-000000-999999 @DL03HLQ 06520000 LCLC &CHAR1,&CHAR2,&CHAR3,&CHAR4,&SRCH 06550000 LCLC &SYMCHAR 06560000 LCLA &NIBFXD,&DBI,&VALUE,&OFS,&BYTE(4),&INDEX,&KEYI,&T2 06600000 LCLA &SYMLEN,&SYMADCD,&SYMRC,&SYMCTR 06610000 LCLB &DBIT(24) @ZA31003 06650000 &BYTE(1) SETA 0 06700000 &BYTE(2) SETA 0 06750000 &BYTE(3) SETA 0 06800000 &BYTE(4) SETA 0 06850000 .* 06860000 .* **************** ENTER NIB IDENTIFIER AND SUBTYPE **************** 06870000 .* 06880000 &LBL DS 0F ALIGN TO FULLWORD BOUNDARY 06900000 DC X'D0',X'00' ID,SUBTYPE 06950000 .* 06960000 .* *********************** TEST CONDN OPERAND *********************** 06970000 .* 06980000 AIF (K'&CONDN EQ 0).NIBOUT1 07000000 &CHAR1 SETC '&CONDN'(1,2) 07200000 &NIBFXD SETA K'&CONDN 07250000 &CHAR2 SETC '&CONDN'(&NIBFXD,1) 07300000 AIF ('&CHAR1' EQ 'C''').NIBCKQ1 07350000 AIF ('&CHAR1' EQ 'X''').NIBCKQ1 07400000 AIF ('&CHAR1' EQ 'F''').NIBCKQ1 07450000 AIF ('&CHAR1' EQ 'H''').NIBCKQ1 07460000 AIF ('&CHAR1' EQ 'A(').NIBCKP1 07470000 AIF ('&CHAR1' EQ 'Y(').NIBCKP1 07500000 AIF ('&CHAR1' LT '0').NIBERU1 07510000 AIF ('&CHAR1' LE '9').NIBNUM1 07520000 AIF ('&CHAR1' LT '00').NIBERU1 07550000 .NIBNUM1 ANOP 07560000 DC AL1(&CONDN) COND. FIELD SPECIFIED AS NUMERIC 07600000 AGO .NIBSYM1 07650000 .NIBERU1 MNOTE 12,'INVALID KEYWORD VALUE CONDN=&CONDN' 07700000 .NIBOUT1 DC AL1(0) COND FIELD DEFAULTED 07750000 AGO .NIBSYM1 07760000 .NIBCKP1 AIF ('&CHAR2' EQ ')').NIBGOP1 07800000 AGO .NIBERQ1 07850000 .NIBCKQ1 AIF ('&CHAR2' EQ '''').NIBGOP1 07900000 .NIBERQ1 MNOTE 12,'INVALID KEYWORD VALUE CONDN=&CONDN' 08150000 MNOTE 0,'CHECK FOR UNBALANCED PARENTHESES OR APOSTROPHES' 08160000 AGO .NIBOUT1 08200000 .NIBGOP1 ANOP 08250000 &NIBFXD SETA K'&CONDN 08300000 &CHAR3 SETC '&CONDN'(3,&NIBFXD-3) 08350000 &CHAR4 SETC '&CHAR1'(2,1) 08400000 &CHAR1 SETC '&CHAR1'(1,1) 08450000 DC &CHAR1.L1&CHAR4&CHAR3&CHAR2 COND FIELD GIVEN/DEFAULT 08500000 .* 08510000 .* ************** ENTER NIB LENGTH AND COMMUNICATION ID ************* 08520000 .* 08530000 .NIBSYM1 ANOP 08550000 DC FL1'64' LENGTH OF BLOCK 08600000 DC F'0' CID - FILLED IN 08650000 .* 08660000 .* ********************** TEST USERFLD OPERAND *********************** 08670000 .* 08680000 AIF (K'&USERFLD EQ 0).NIBOUT 08700000 &CHAR1 SETC '&USERFLD'(1,2) 08900000 &NIBFXD SETA K'&USERFLD 08950000 &CHAR2 SETC '&USERFLD'(&NIBFXD,1) 09000000 AIF ('&CHAR1' EQ 'C''').NIBCKQ 09050000 AIF ('&CHAR1' EQ 'X''').NIBCKQ 09100000 AIF ('&CHAR1' EQ 'F''').NIBCKQ 09150000 AIF ('&CHAR1' EQ 'A(').NIBCKP 09200000 AIF ('&CHAR1' EQ 'V(').NIBCKP 09250000 AIF ('&CHAR1' LT '0').NIBERU 09252000 AIF ('&CHAR1' LE '9').NIBNUM 09254000 AIF ('&CHAR1' LT '00').NIBERU @ZTR6505 09260000 .NIBNUM ANOP 09270000 DC A(&USERFLD) USER FIELD SPECIFIED AS NUMERIC 09300000 AGO .NIBSYM 09350000 .NIBERU MNOTE 12,'INVALID KEYWORD VALUE USERFLD=&USERFLD' 09400000 .NIBOUT DC A(0) USER FIELD DEFAULTED 09450000 AGO .NIBSYM 09460000 .NIBCKP AIF ('&CHAR2' EQ ')').NIBGOP 09500000 AGO .NIBERQ 09550000 .NIBCKQ AIF ('&CHAR2' EQ '''').NIBGOP 09600000 .NIBERQ MNOTE 12,'INVALID KEYWORD VALUE USERFLD=&USERFLD' 09650000 MNOTE 0,'CHECK FOR UNBALANCED PARENTHESES OR APOSTROPHES' 09850000 AGO .NIBOUT 09900000 .NIBGOP ANOP 09950000 &NIBFXD SETA K'&USERFLD 10000000 &CHAR3 SETC '&USERFLD'(3,&NIBFXD-3) 10050000 &CHAR4 SETC '&CHAR1'(2,1) 10100000 &CHAR1 SETC '&CHAR1'(1,1) 10150000 DC &CHAR1.L4&CHAR4&CHAR3&CHAR2 USER FIELD GIVEN 10200000 .* 10210000 .* ************************ TEST NAME OPERAND ************************ 10220000 .* 10230000 .NIBSYM AIF (K'&NAME EQ 0).NIBNMB IS NAME SUPPLIED? 10250000 DC CL8'&NAME' NAME OPERAND SUPPLIED 10300000 AGO .NIBCK2 CONTINUE 10350000 .NIBNMB ANOP 10400000 DC CL8' ' NAME OPERAND DEFAULTED 10450000 .* 10460000 .* ************************ TEST MODE OPERAND ************************ 10470000 .* 10480000 .NIBCK2 ANOP 10500000 .NIBMOD AIF (K'&MODE EQ 0).NIBDFM BRANCH IF MODE DEFAULTED 10550000 DC CL8'&MODE' MODE OPERAND SPECIFIED 10600000 AGO .NIBPRC1 CONTINUE 10650000 .NIBDFM ANOP 10700000 DC CL8' ' MODE OPERAND DEFAULTED 10750000 .* 10752000 .* ************ SET DEVICE CHARACTERISTICS AREA TO ZEROES ************ 10760000 .* 10770000 .NIBPRC1 ANOP 10800000 DC XL8'00' DEVICE CHARACTERISTICS AREA 10850000 .* 10860000 .* ***************** TEST PROC(ESSING OPTION) OPERAND ***************** 10870000 .* 10880000 AIF (K'&PROC EQ 0).NIBGNP DO PROCESS OPERAND IF GIVEN 10900000 &INDEX SETA 1 INITIALIZE SUBSCRIPT 10950000 &NIBFXD SETA N'&PROC INITIALIZE LIMIT OF OPERANDS 11000000 .NPRCLP ANOP 11050000 &SRCH SETC '&PROC(&INDEX)' 11100000 AIF ('&SRCH' NE 'MSG').NEQU001 11150000 AIF (&DBIT(1)).NPRCERR 11200000 &DBIT(1) SETB 1 11250000 &BYTE(4) SETA &BYTE(4)+4 11300000 AGO .NPRCUP 11350000 .NPRCERR MNOTE 4,'DUPLICATE PROCESS OPTION-&SRCH' 11400000 .NPRCUP ANOP 11450000 &INDEX SETA &INDEX+1 11500000 AIF (&INDEX LE &NIBFXD).NPRCLP 11550000 AGO .NPRCGEN 11600000 .NEQU001 AIF ('&SRCH' NE 'TRANS').NEQU002 11650000 AIF (&DBIT(1)).NPRCERR 11700000 &DBIT(1) SETB 1 11750000 &BYTE(4) SETA &BYTE(4)+2 11800000 AGO .NPRCUP 11850000 .NEQU002 AIF ('&SRCH' NE 'CONT').NEQU003 11900000 AIF (&DBIT(1)).NPRCERR 11950000 &DBIT(1) SETB 1 12000000 &BYTE(4) SETA &BYTE(4)+1 12050000 AGO .NPRCUP 12100000 .NEQU003 AIF ('&SRCH' NE 'BLOCK').NEQU004 12150000 AIF (&DBIT(1)).NPRCERR 12200000 &DBIT(1) SETB 1 12250000 &BYTE(4) SETA &BYTE(4)+8 12300000 AGO .NPRCUP 12350000 .NEQU004 ANOP 12400000 AIF ('&SRCH' NE 'TRUNC').NEQU005 12450000 AIF (&DBIT(2)).NPRCERR 12500000 &DBIT(2) SETB 1 12550000 &BYTE(1) SETA &BYTE(1)+64 12600000 AGO .NPRCUP 12650000 .NEQU005 ANOP 12700000 AIF ('&SRCH' NE 'KEEP').NEQU006 12750000 AIF (&DBIT(2)).NPRCERR 12800000 &DBIT(2) SETB 1 12850000 AGO .NPRCUP 12900000 .NEQU006 AIF ('&SRCH' NE 'LGOUT').NEQU007 12950000 AIF (&DBIT(3)).NPRCERR 13000000 &DBIT(3) SETB 1 13050000 AGO .NPRCUP 13100000 .NEQU007 AIF ('&SRCH' NE 'NLGOUT').NEQU008 13150000 AIF (&DBIT(3)).NPRCERR 13200000 &DBIT(3) SETB 1 13250000 &BYTE(2) SETA &BYTE(2)+32 13300000 AGO .NPRCUP 13350000 .NEQU008 AIF ('&SRCH' NE 'CONFTXT').NEQU009 13400000 AIF (&DBIT(4)).NPRCERR 13450000 &DBIT(4) SETB 1 13500000 &BYTE(2) SETA &BYTE(2)+1 13550000 AGO .NPRCUP 13600000 .NEQU009 AIF ('&SRCH' NE 'NCONFTXT').NEQU010 13650000 AIF (&DBIT(4)).NPRCERR 13700000 &DBIT(4) SETB 1 13750000 AGO .NPRCUP 13800000 .NEQU010 AIF ('&SRCH' NE 'TMFLL').NEQU011 13850000 AIF (&DBIT(5)).NPRCERR 13900000 &DBIT(5) SETB 1 13950000 AGO .NPRCUP 14000000 .NEQU011 AIF ('&SRCH' NE 'NTMFLL').NEQU012 14050000 AIF (&DBIT(5)).NPRCERR 14100000 &DBIT(5) SETB 1 14150000 &BYTE(2) SETA &BYTE(2)+4 14200000 AGO .NPRCUP 14250000 .NEQU012 AIF ('&SRCH' NE 'ERPIN').NEQU013 14300000 AIF (&DBIT(6)).NPRCERR 14350000 &DBIT(6) SETB 1 14400000 AGO .NPRCUP 14450000 .NEQU013 AIF ('&SRCH' NE 'NERPIN').NEQU014 14500000 AIF (&DBIT(6)).NPRCERR 14550000 &DBIT(6) SETB 1 14600000 &BYTE(3) SETA &BYTE(3)+64 14650000 AGO .NPRCUP 14700000 .NEQU014 AIF ('&SRCH' NE 'ERPOUT').NEQU015 14750000 AIF (&DBIT(7)).NPRCERR 14800000 &DBIT(7) SETB 1 14850000 AGO .NPRCUP 14900000 .NEQU015 AIF ('&SRCH' NE 'NERPOUT').NEQU016 14950000 AIF (&DBIT(7)).NPRCERR 15000000 &DBIT(7) SETB 1 15050000 &BYTE(2) SETA &BYTE(2)+64 15100000 AGO .NPRCUP 15150000 .NEQU016 AIF ('&SRCH' NE 'MONITOR').NEQU017 15200000 AIF (&DBIT(8)).NPRCERR 15250000 &DBIT(8) SETB 1 15300000 &BYTE(3) SETA &BYTE(3)+4 15350000 AGO .NPRCUP 15400000 .NEQU017 AIF ('&SRCH' NE 'NMONITOR').NEQU018 15450000 AIF (&DBIT(8)).NPRCERR 15500000 &DBIT(8) SETB 1 15550000 AGO .NPRCUP 15600000 .NEQU018 AIF ('&SRCH' NE 'ELC').NEQU019 15650000 AIF (&DBIT(9)).NPRCERR 15700000 &DBIT(9) SETB 1 15750000 &BYTE(2) SETA &BYTE(2)+2 15800000 AGO .NPRCUP 15850000 .NEQU019 AIF ('&SRCH' NE 'NELC').NEQU020 15900000 AIF (&DBIT(9)).NPRCERR 15950000 &DBIT(9) SETB 1 16000000 AGO .NPRCUP 16050000 .NEQU020 AIF ('&SRCH' NE 'NEIB').NEQU021 16100000 AIF (&DBIT(10)).NPRCERR 16150000 &DBIT(10) SETB 1 16200000 AGO .NPRCUP 16250000 .NEQU021 AIF ('&SRCH' NE 'EIB').NEQU022 16300000 AIF (&DBIT(10)).NPRCERR 16350000 &DBIT(10) SETB 1 16400000 &BYTE(4) SETA &BYTE(4)+128 16450000 AGO .NPRCUP 16500000 .NEQU022 AIF ('&SRCH' NE 'CA').NEQU023 16550000 AIF (&DBIT(11)).NPRCERR 16600000 &DBIT(11) SETB 1 16650000 &BYTE(1) SETA &BYTE(1)+4 16660000 AGO .NPRCUP 16700000 .NEQU023 AIF ('&SRCH' NE 'CS').NEQU024 16750000 AIF (&DBIT(11)).NPRCERR 16800000 &DBIT(11) SETB 1 16850000 &BYTE(1) SETA &BYTE(1)+2 16900000 AGO .NPRCUP 16950000 .NEQU024 AIF ('&SRCH' NE 'RPLC').NEQU025 16960000 AIF (&DBIT(11)).NPRCERR p0000 &DBIT(11) SETB 1 16980000 &BYTE(1) SETA &BYTE(1)+1 16990000 AGO .NPRCUP 16992000 .NEQU025 AIF ('&SRCH' NE 'LGIN').NEQU026 17000000 AIF (&DBIT(12)).NPRCERR 17050000 &DBIT(12) SETB 1 17100000 AGO .NPRCUP 17150000 .NEQU026 AIF ('&SRCH' NE 'NLGIN').NEQU027 17200000 AIF (&DBIT(12)).NPRCERR 17250000 &DBIT(12) SETB 1 17300000 &BYTE(3) SETA &BYTE(3)+32 17350000 AGO .NPRCUP 17400000 .NEQU027 AIF ('&SRCH' NE 'TIMEOUT').NEQU028 17450000 AIF (&DBIT(13)).NPRCERR 17500000 &DBIT(13) SETB 1 17550000 AGO .NPRCUP 17600000 .NEQU028 AIF ('&SRCH' NE 'NTIMEOUT').NEQU029 17650000 AIF (&DBIT(13)).NPRCERR 17700000 &DBIT(13) SETB 1 17750000 &BYTE(3) SETA &BYTE(3)+16 17800000 AGO .NPRCUP 17850000 .NEQU029 AIF ('&SRCH' NE 'NBINARY').NEQU030 17900000 AIF (&DBIT(14)).NPRCERR 17950000 &DBIT(14) SETB 1 18000000 AGO .NPRCUP 18050000 .NEQU030 AIF ('&SRCH' NE 'BINARY').NEQU031 18100000 AIF (&DBIT(14)).NPRCERR 18150000 &DBIT(14) SETB 1 18200000 &BYTE(1) SETA &BYTE(1)+32 18250000 AGO .NPRCUP 18300000 .NEQU031 AIF ('&SRCH' NE 'NDFASYX').NEQU032 18310000 AIF (&DBIT(15)).NPRCERR 18320000 &DBIT(15) SETB 1 18330000 AGO .NPRCUP 18340000 .NEQU032 AIF ('&SRCH' NE 'DFASYX').NEQU033 18342000 AIF (&DBIT(15)).NPRCERR 18344000 &DBIT(15) SETB 1 18346000 &BYTE(1) SETA &BYTE(1)+16 18348000 AGO .NPRCUP 18348400 .NEQU033 AIF ('&SRCH' NE 'NRESPX').NEQU034 18348800 AIF (&DBIT(16)).NPRCERR 18349200 &DBIT(16) SETB 1 18349600 AGO .NPRCUP 18349700 .NEQU034 AIF ('&SRCH' NE 'RESPX').NEQU035 18349800 AIF (&DBIT(16)).NPRCERR 18361600 &DBIT(16) SETB 1 18366600 &BYTE(1) SETA &BYTE(1)+8 18368600 AGO .NPRCUP 18376600 .NEQU035 AIF ('&SRCH' NE 'CPUID').NEQU036 @ZA31003 18377200 AIF (&DBIT(17)).NPRCERR @ZA31003 18377800 &DBIT(17) SETB 1 @ZA31003 18378400 AGO .NPRCUP @ZA31003 18379000 .NEQU036 AIF ('&SRCH' NE 'NCPUID').NEQU099 @ZA31003 18379600 AIF (&DBIT(17)).NPRCERR @ZA31003 18380200 &DBIT(17) SETB 1 @ZA31003 18380800 &BYTE(3) SETA &BYTE(3)+128 @ZA31003 18381400 AGO .NPRCUP @ZA31003 18382000 .NEQU099 ANOP 18383300 MNOTE 12,'INVALID PROCESS OPTION-&SRCH' 18393300 AGO .NPRCUP RETURN TO VALIDATE PARMS @ZTR6505 18400000 .NPRCGEN ANOP 18450000 AIF (&DBIT(1)).NPRCGN2 18500000 &DBIT(1) SETB 1 18550000 &BYTE(4) SETA &BYTE(4)+2 18600000 .NPRCGN2 ANOP 18650000 AIF (&DBIT(11)).NPRCGN3 18660000 &DBIT(11) SETB 1 18670000 &BYTE(1) SETA &BYTE(1)+1 18680000 .NPRCGN3 ANOP 18690000 DC AL1(&BYTE(1),&BYTE(2),&BYTE(3),&BYTE(4)) PROCESS OPTIONS 18700000 AGO .NIBFLGS 18750000 .NIBGNP ANOP NO PROCESS OPERAND GIVEN. GEN ONE. 18800000 DC AL1(1,0,0,2) PROCESS OPTIONS DEFAULTED. 18850000 .* 18870000 .* *********************** TEST LISTEND OPERAND *********************** 18880000 .* 18890000 .NIBFLGS AIF ('&LISTEND' EQ 'YES').NIBLSY 18900000 AIF ('&LISTEND' EQ 'NO').NIBLSN 18950000 MNOTE 12,'INVALID KEYWORD VALUE FOR LISTEND=&LISTEND' 19000000 .NIBLSN ANOP 19050000 &BYTE(1) SETA X'80' MORE NIBS TO FOLLOW 19100000 AGO .NIBSDT 19150000 .NIBLSY ANOP 19200000 &BYTE(1) SETA 0 END OF NIB LIST 19250000 .* 19252000 .* ************************ TEST SDT OPERAND ************************ 19254000 .* 19256000 .NIBSDT ANOP 19260000 AIF ('&SDT' EQ 'SYSTEM').NIBSYS 19280000 AIF ('&SDT' EQ 'APPL').NIBAPPL 19290000 MNOTE 12,'INVALID KEYWORD VALUE FOR SDT=&SDT' 19292000 .NIBAPPL ANOP 19292400 &BYTE(1) SETA &BYTE(1)+32 APPLICATION MUST ISSUE SDT MACRO 19292800 .NIBSYS ANOP 19294000 DC AL1(&BYTE(1)) NIBLIST STATUS, SDT MACRO STATUS 19298000 .* 19299200 .* *********************** ENTER RESERVED BYTE *********************** 19299600 .* 19299700 .NIBCMN ANOP 19300000 DC X'00' RESERVED FOR VTAM 19350000 .* 19360000 .* ********************** TEST RESPLIM OPERAND ********************** 19370000 .* 19380000 .NRSPLIM ANOP 19400000 AIF ('&RESPLIM' EQ '1').NIBOUT2 19450000 &CHAR1 SETC '&RESPLIM'(1,2) 19500000 &NIBFXD SETA K'&RESPLIM 19550000 &CHAR2 SETC '&RESPLIM'(&NIBFXD,1) 19600000 AIF ('&CHAR1' EQ 'C''').NIBCKQ2 19650000 AIF ('&CHAR1' EQ 'X''').NIBCKQ2 19700000 AIF ('&CHAR1' EQ 'H''').NIBCKQ2 19750000 AIF ('&CHAR1' EQ 'F''').NIBCKQ2 19760000 AIF ('&CHAR1' EQ 'A(').NIBCKP2 19770000 AIF ('&CHAR1' EQ 'Y(').NIBCKP2 19800000 AIF ('&CHAR1' EQ 'S(').NIBCKP2 19810000 AIF ('&CHAR1' LT '0').NIBERU2 19820000 AIF ('&CHAR1' LE '9').NIBNUM2 19830000 AIF ('&CHAR1' LT '00').NIBERU2 19850000 .NIBNUM2 ANOP 19860000 DC AL2(&RESPLIM) LIMIT SPECIFIED AS NUMERIC 19900000 AGO .NEXLST 19950000 .NIBERU2 MNOTE 12,'INVALID KEYWORD VALUE RESPLIM=&RESPLIM' 20000000 .NIBOUT2 DC AL2(1) LIMIT FIELD DEFAULTED 20050000 AGO .NEXLST 20100000 .NIBCKP2 AIF ('&CHAR2' EQ ')').NIBGOP2 20150000 AGO .NIBERQ2 20200000 .NIBCKQ2 AIF ('&CHAR2' EQ '''').NIBGOP2 20250000 .NIBERQ2 MNOTE 12,'INVALID KEYWORD VALUE RESPLIM=&RESPLIM' 20300000 MNOTE 0,'CHECK FOR UNBALANCED PARENTHESES OR APOSTROPHES' 20350000 AGO .NIBOUT2 20400000 .NIBGOP2 ANOP 20450000 &NIBFXD SETA K'&RESPLIM 20500000 &CHAR3 SETC '&RESPLIM'(3,&NIBFXD-3) 20550000 &CHAR4 SETC '&CHAR1'(2,1) 20600000 &CHAR1 SETC '&CHAR1'(1,1) 20650000 DC &CHAR1.L2&CHAR4&CHAR3&CHAR2 LIMIT FIELD 20700000 .* 20710000 .* ************************ TEST EXLST OPERAND ********************** 20720000 .* 20730000 .NEXLST ANOP 20750000 AIF ('&EXLST' EQ '0').NIBOUT3 20800000 &CHAR1 SETC '&EXLST'(1,2) 20850000 &NIBFXD SETA K'&EXLST 20900000 &CHAR2 SETC '&EXLST'(&NIBFXD,1) 20950000 AIF ('&CHAR1' EQ 'C''').NIBCKQ3 21000000 AIF ('&CHAR1' EQ 'X''').NIBCKQ3 21050000 AIF ('&CHAR1' EQ 'F''').NIBCKQ3 21100000 AIF ('&CHAR1' EQ 'A(').NIBCKP3 21150000 AIF ('&CHAR1' EQ 'V(').NIBCKP3 21160000 &CHAR1 SETC '&CHAR1'(1,1) @DM9414 21170000 AIF ('&CHAR1' LT 'A').NIBERU3 @DM9414 21180000 AIF ('&CHAR1' LE 'I').NIBNUM3 @DM9414 21190000 AIF ('&CHAR1' LT 'J').NIBERU3 @DM9414 21200000 AIF ('&CHAR1' LE 'R').NIBNUM3 @DM9414 21202000 AIF ('&CHAR1' LT 'S').NIBERU3 @DM9414 21204000 AIF ('&CHAR1' LE 'Z').NIBNUM3 @DM9414 21206000 AIF ('&CHAR1' LT '0').NIBERU3 @DM9414 21210000 AIF ('&CHAR1' GT '9').NIBERU3 @DM9414 21212000 .NIBNUM3 ANOP 21222000 DC AL4(&EXLST) EXLST SPECIFIED AS 0 OR ADDRESS 21230000 AGO .NIBSYM3 21240000 .NIBERU3 MNOTE 12,'INVALID KEYWORD VALUE EXLST=&EXLST' 21242000 .NIBOUT3 DC AL4(0) EXLST FIELD DEFAULTED 21244000 AGO .NIBSYM3 21246000 .NIBCKP3 AIF ('&CHAR2' EQ ')').NIBGOP3 21248000 AGO .NIBERQ3 21248400 .NIBCKQ3 AIF ('&CHAR2' EQ '''').NIBGOP3 21600000 .NIBERQ3 MNOTE 12,'INVALID KEYWORD VALUE EXLST=&EXLST' 21650000 MNOTE 0,'CHECK FOR UNBALANCED PARENTHESES OR APOSTROPHES' 21700000 AGO .NIBOUT3 21750000 .NIBGOP3 ANOP 21800000 &NIBFXD SETA K'&EXLST 21850000 &CHAR3 SETC '&EXLST'(3,&NIBFXD-3) 21900000 &CHAR4 SETC '&CHAR1'(2,1) 21950000 &CHAR1 SETC '&CHAR1'(1,1) 22000000 DC &CHAR1.L4&CHAR4&CHAR3&CHAR2 EXIT FIELD 22050000 .* 22060000 .* ************************ TEST LOGMODE OPERAND ******************** 22070000 .* 22080000 .NIBSYM3 ANOP 22100000 AIF ('&LOGMODE' NE '0').NIBLMCH 22150000 DC XL8'0' LOGMODE 22200000 AGO .NIBLMEN 22250000 .NIBLMCH AIF ('&LOGMODE' NE 'C'' ''').NIBLMSY 22300000 DC CL8' ' LOGMODE 22350000 AGO .NIBLMEN 22400000 .NIBLMSY ANOP 22450000 DC CL8'&LOGMODE' LOGMODE 22750000 AGO .NIBLMEN 22800000 .NIBLMER MNOTE 12,'INVALID KEYWORD SYNTAX LOGMODE=&LOGMODE' 22850000 .NIBLMEN ANOP 22900000 .* 22950000 .* ************************ BNDAREA OPERAND ******************** 23000000 .* 23050000 DC A(&BNDAREA) BNDAREA 23150000 .* 23200000 .* ************************ RESERVED AREA ******************** 23250000 .* 23300000 DC A(0) RESERVED 23350000 MEND 51450000