TITLE 'ICGDSS02 MSC TABLE CREATE, SCAN CPUCONFG STATEMENT *00001000 ' 00002000 ICGDSS02 CSECT , 0001 00003000 @MAINENT DS 0H 0001 00004000 USING *,@15 0001 00005000 B @PROLOG 0001 00006000 DC AL1(16) 0001 00007000 DC C'ICGDSS02 76.340' 0001 00008000 DROP @15 00009000 @PROLOG STM @14,@12,12(@13) 0001 00010000 BALR @12,0 0001 00011000 @PSTART DS 0H 0001 00012000 USING @PSTART,@12 0001 00013000 L @00,@SIZDATD 0001 00014000 GETMAIN R,LV=(0) 00015000 LR @11,@01 0001 00016000 USING @DATD,@11 0001 00017000 ST @13,@SA00001+4 0001 00018000 LM @00,@01,20(@13) 0001 00019000 ST @11,8(,@13) 0001 00020000 LR @13,@11 0001 00021000 XC @ZTEMPS(@ZLEN),@ZTEMPS 00022000 * 0026 00023000 */********************************************************** @Y30LB12*/ 00024000 */* @Y30LB12*/ 00025000 */* CALL S02INIT TO INITIALIZE. CALL S02SCAN @Y30LB12*/ 00026000 */* TO EXTRACT KEYWORDS AND PARAMETERS FROM @Y30LB12*/ 00027000 */* CONTROL STATEMENT. CALL S02ANAL TO CHECK @Y30LB12*/ 00028000 */* FOR MISSING REQUIRED PARAMETERS. IF NO @Y30LB12*/ 00029000 */* ERRORS ENCOUNTERED IN SCAN OR ANALYZE, CALL @Y30LB12*/ 00030000 */* S02BUILD TO UPDATE CPUASSOC IN COMTAB. @Y30LB12*/ 00031000 */* @Y30LB12*/ 00032000 */********************************************************** @Y30LB12*/ 00033000 * 0026 00034000 * CALL S02INIT; /* @Y30LB12*/ 00035000 BAL @14,S02INIT 0026 00036000 * CALL S02SCAN; /* @Y30LB12*/ 00037000 BAL @14,S02SCAN 0027 00038000 * CALL S02ANAL; /* @Y30LB12*/ 00039000 BAL @14,S02ANAL 0028 00040000 * IF STOPSCAN^='1'B /* @Y30LB12*/ 00041000 * THEN /* @Y30LB12*/ 00042000 TM STOPSCAN,B'00001000' 0029 00043000 BO @RF00029 0029 00044000 * CALL S02BUILD; /* @Y30LB12*/ 00045000 BAL @14,S02BUILD 0030 00046000 * ELSE 0031 00047000 * ; /* @Y30LB12*/ 00048000 @RF00029 DS 0H 0032 00049000 * RETURN; /* TO ICGDSSCN @Y30LB12*/ 00050000 @EL00001 L @13,4(,@13) 0032 00051000 @EF00001 L @00,@SIZDATD 0032 00052000 LR @01,@11 0032 00053000 FREEMAIN R,LV=(0),A=(1) 00054000 @ER00001 LM @14,@12,12(@13) 0032 00055000 BR @14 0032 00056000 * 0033 00057000 */********************************************************** @Y30LB12*/ 00058000 */* @Y30LB12*/ 00059000 */* PROCEDURE NAME - S02INIT @Y30LB12*/ 00060000 */* @Y30LB12*/ 00061000 */* FUNCTION - INITIALIZE WORK AREAS. @Y30LB12*/ 00062000 */* @Y30LB12*/ 00063000 */********************************************************** @Y30LB12*/ 00064000 * 0033 00065000 *S02INIT: 0033 00066000 * PROCEDURE; /* @Y30LB12*/ 00067000 S02INIT STM @14,@12,12(@13) 0033 00068000 * CPUIDENT=' '; /* INITIALIZE TO BLANK @Y30LB12*/ 00069000 MVC CPUIDENT(5),@CC00366 0034 00070000 * MPIDENT=' '; /* INITIALIZE TO BLANK @Y30LB12*/ 00071000 MVC MPIDENT(5),@CC00366 0035 00072000 * HAVES='00000000'B; /* INITIALIZE FLAGS OFF @Y30LB12*/ 00073000 MVI HAVES,B'00000000' 0036 00074000 * FLAG1='00000000'B; /* INITIALIZE FLAGS OFF @Y30LB12*/ 00075000 MVI FLAG1,B'00000000' 0037 00076000 * FLAG2='00000000'B; /* INITIALIZE FLAGS OFF @YD00142*/ 00077000 MVI FLAG2,B'00000000' 0038 00078000 * END S02INIT; /* RETURN TO MAINLINE @Y30LB12*/ 00079000 @EL00002 DS 0H 0039 00080000 @EF00002 DS 0H 0039 00081000 @ER00002 LM @14,@12,12(@13) 0039 00082000 BR @14 0039 00083000 * 0040 00084000 */********************************************************** @Y30LB12*/ 00085000 */* @Y30LB12*/ 00086000 */* PROCEDURE NAME - S02SCAN @Y30LB12*/ 00087000 */* @Y30LB12*/ 00088000 */* FUNCTION - EXTRACT THE NEXT KEYWORD FROM THE 'CPUCONFG' @Y30LB12*/ 00089000 */* CONTROL STATEMENT, AND CALL THE PROPER SUB- @Y30LB12*/ 00090000 */* PROCEDURE TO HANDLE THE PARAMETER. WHEN @Y30LB12*/ 00091000 */* THE SCAN IS COMPLETE (LASTPARM = '1'B), @Y30LB12*/ 00092000 */* RETURN TO MAINLINE. @Y30LB12*/ 00093000 */* @Y30LB12*/ 00094000 */********************************************************** @Y30LB12*/ 00095000 * 0040 00096000 *S02SCAN: 0040 00097000 * PROCEDURE; /* @Y30LB12*/ 00098000 S02SCAN STM @14,@12,@SA00003 0040 00099000 * DO WHILE(LASTPARM='0'B); /* TILL NO MORE DATA @Y30LB12*/ 00100000 B @DE00041 0041 00101000 @DL00041 DS 0H 0042 00102000 * ERROR='0'B; /* ERROR IN CPUCONV @Y30LB12*/ 00103000 * KNOWN='0'B; /* RECOGNIZED KEYWD @Y30LB12*/ 00104000 NI ERROR,B'11101011' 0043 00105000 * CALL READS99; /* EXTRACT KEYWORD @Y30LB12*/ 00106000 BAL @14,READS99 0044 00107000 * IF LASTPARM='1'B /* IF NO DATA LEFT @Y30LB12*/ 00108000 * THEN /* TO PROCESS, RET. @Y30LB12*/ 00109000 TM LASTPARM(R4),B'00001000' 0045 00110000 BO @RT00045 0045 00111000 * RETURN; /* TO S02 MAINLINE @Y30LB12*/ 00112000 * ELSE 0047 00113000 * ; /* WAS SOMETHING @Y30LB12*/ 00114000 * 0047 00115000 * /***************************************************************/ 00116000 * /* */ 00117000 * /* *********************************************** @Y30LB12*/ 00118000 * /* WE EXPECT THE 'SOMETHING' THAT WE EXTRACTED @Y30LB12*/ 00119000 * /* FROM THE INPUT BUFFER TO BE A KEYWORD (A FIELD @Y30LB12*/ 00120000 * /* TERMINATED BY AN EQUAL SIGN). IF THE DATA IS @Y30LB12*/ 00121000 * /* NOT A KEYWORD, WE ARE LOST. WRITE ERROR @Y30LB12*/ 00122000 * /* MESSAGE 'ICG209I EXPECTED, BUT DID NOT FIND, @Y30LB12*/ 00123000 * /* KEYWORD', AND DISCONTINUE SCAN. @Y30LB12*/ 00124000 * /* *********************************************** @Y30LB12*/ 00125000 * /* */ 00126000 * /***************************************************************/ 00127000 * 0048 00128000 * IF KEYBIT^='1'B /* SET IN ICGDSS99 @Y30LB12*/ 00129000 * THEN /* @Y30LB12*/ 00130000 TM KEYBIT(R4),B'01000000' 0048 00131000 BO @RF00048 0048 00132000 * DO; /* @Y30LB12*/ 00133000 * MSGNO=ICG209I; /* ID FOR ICGDS209 @Y30LB12*/ 00134000 MVC MSGNO(2,R4),ICG209I 0050 00135000 * CALL PUTIT2; /* CALL MSG WRITER @Y30LB12*/ 00136000 BAL @14,PUTIT2 0051 00137000 * RETURN; /* TO S02 MAINLINE @Y30LB12*/ 00138000 @EL00003 DS 0H 0052 00139000 @EF00003 DS 0H 0052 00140000 @ER00003 LM @14,@12,@SA00003 0052 00141000 BR @14 0052 00142000 * END; /* @Y30LB12*/ 00143000 * ELSE 0054 00144000 * ; /* FOUND A KEYWORD @Y30LB12*/ 00145000 * 0054 00146000 @RF00048 DS 0H 0055 00147000 * /***************************************************************/ 00148000 * /* */ 00149000 * /* *********************************************** @Y30LB12*/ 00150000 * /* TEST IF KEYWORD SCANNED IS 'CPUID', 'MSCINT', @YD00113*/ 00151000 * /* OR 'MPCPU' @YD00113*/ 00152000 * /* IF SO, SET FLAG ('KNOWN') TO INDICATE @YD00113*/ 00153000 * /* RECOGNIZED KEYWORD. CALL S02CPUID TO GET @YD00113*/ 00154000 * /* PARAMETER. IF KEYWORD IS NOT ONE OF ABOVE, @YD00113*/ 00155000 * /* CALL UNKNOWN TO WRITE ERROR MESSAGE. @YD00113*/ 00156000 * /* *********************************************** @Y30LB12*/ 00157000 * /* */ 00158000 * /***************************************************************/ 00159000 * 0055 00160000 * IF SCANDATA(1:6)='CPUID=' /* @Y30LB12*/ 00161000 * THEN /* @Y30LB12*/ 00162000 L @10,STARTCOL(,R4) 0055 00163000 CLC SCANDATA(6,@10),@CC00374 0055 00164000 BNE @RF00055 0055 00165000 * DO; /* @Y30LB12*/ 00166000 * KNOWN='1'B; /* RECOGNIZED KEYWD @Y30LB12*/ 00167000 OI KNOWN,B'00010000' 0057 00168000 * CALL S02CPUID; /* TO GET PARAMETER @Y30LB12*/ 00169000 BAL @14,S02CPUID 0058 00170000 * END; /* @Y30LB12*/ 00171000 * ELSE 0060 00172000 * ; /* @Y30LB12*/ 00173000 * 0060 00174000 @RF00055 DS 0H 0061 00175000 * /***************************************************************/ 00176000 * /* */ 00177000 * /* *********************************************** @Y30LB12*/ 00178000 * /* THE KEYWORD SCANNED WAS 'MSCINT' @Y30LB12*/ 00179000 * /* *********************************************** @Y30LB12*/ 00180000 * /* */ 00181000 * /***************************************************************/ 00182000 * 0061 00183000 * IF SCANDATA(1:7)='MSCINT=' /* @Y30LB12*/ 00184000 * THEN /* @Y30LB12*/ 00185000 L @10,STARTCOL(,R4) 0061 00186000 CLC SCANDATA(7,@10),@CC00376 0061 00187000 BNE @RF00061 0061 00188000 * DO; /* @Y30LB12*/ 00189000 * KNOWN='1'B; /* RECOGNIZED KEYWD @Y30LB12*/ 00190000 OI KNOWN,B'00010000' 0063 00191000 * CALL S02MSCIN; /* TO GET PARAMETER @Y30LB12*/ 00192000 BAL @14,S02MSCIN 0064 00193000 * END; /* @Y30LB12*/ 00194000 * ELSE 0066 00195000 * ; /* @Y30LB12*/ 00196000 * 0066 00197000 @RF00061 DS 0H 0067 00198000 * /***************************************************************/ 00199000 * /* */ 00200000 * /* *********************************************** @YD00142*/ 00201000 * /* THE KEYWORD SCANNED WAS 'ALTINT' @YD00142*/ 00202000 * /* *********************************************** @YD00142*/ 00203000 * /* */ 00204000 * /***************************************************************/ 00205000 * 0067 00206000 * IF SCANDATA(1:7)='ALTINT=' /* @YD00142*/ 00207000 * THEN /* @YD00142*/ 00208000 L @10,STARTCOL(,R4) 0067 00209000 CLC SCANDATA(7,@10),@CC00378 0067 00210000 BNE @RF00067 0067 00211000 * DO; /* @YD00142*/ 00212000 * KNOWN='1'B; /* RECOGNIZED KEYWD @YD00142*/ 00213000 OI KNOWN,B'00010000' 0069 00214000 * CALL S02ALTIN; /* TO GET PARAMETER @YD00142*/ 00215000 BAL @14,S02ALTIN 0070 00216000 * END; /* @YD00142*/ 00217000 * ELSE 0072 00218000 * ; /* @YD00142*/ 00219000 * 0072 00220000 @RF00067 DS 0H 0073 00221000 * /***************************************************************/ 00222000 * /* */ 00223000 * /* *********************************************** @Y30LB12*/ 00224000 * /* THE KEYWORD SCANNED WAS 'MPCPU' @Y30LB12*/ 00225000 * /* *********************************************** @Y30LB12*/ 00226000 * /* */ 00227000 * /***************************************************************/ 00228000 * 0073 00229000 * IF SCANDATA(1:6)='MPCPU=' /* @Y30LB12*/ 00230000 * THEN /* @Y30LB12*/ 00231000 L @10,STARTCOL(,R4) 0073 00232000 CLC SCANDATA(6,@10),@CC00380 0073 00233000 BNE @RF00073 0073 00234000 * DO; /* @Y30LB12*/ 00235000 * KNOWN='1'B; /* RECOGNIZED KEYWD @Y30LB12*/ 00236000 OI KNOWN,B'00010000' 0075 00237000 * CALL S02MPCPU; /* TO GET PARAMETER @Y30LB12*/ 00238000 BAL @14,S02MPCPU 0076 00239000 * END; /* @Y30LB12*/ 00240000 * ELSE 0078 00241000 * ; /* KEYWORD NOT MPCPU @Y30LB12*/ 00242000 * 0078 00243000 @RF00073 DS 0H 0079 00244000 * /***************************************************************/ 00245000 * /* */ 00246000 * /* *********************************************** @ZD02028*/ 00247000 * /* THE KEYWORD SCANNED WAS 'OPSYS' @ZD02028*/ 00248000 * /* *********************************************** @ZD02028*/ 00249000 * /* */ 00250000 * /***************************************************************/ 00251000 * 0079 00252000 * IF SCANDATA(1:6)='OPSYS=' /* @ZD02028*/ 00253000 * THEN /* @ZD02028*/ 00254000 L @10,STARTCOL(,R4) 0079 00255000 CLC SCANDATA(6,@10),@CC00382 0079 00256000 BNE @RF00079 0079 00257000 * DO; /* @ZD02028*/ 00258000 * KNOWN='1'B; /* RECOGNIZED KEYWD @ZD02028*/ 00259000 OI KNOWN,B'00010000' 0081 00260000 * CALL S02OPSYS; /* TO GET PARAMETER @ZD02028*/ 00261000 BAL @14,S02OPSYS 0082 00262000 * END; /* @ZD02028*/ 00263000 * ELSE 0084 00264000 * ; /* KEYWORD NOT OPSYS @ZD02028*/ 00265000 * 0084 00266000 @RF00079 DS 0H 0085 00267000 * /***************************************************************/ 00268000 * /* */ 00269000 * /* *********************************************** @Y30LB12*/ 00270000 * /* THE KEYWORD IS NOT 'CPUID', 'MPCPU', 'MSCINT', @YD00142*/ 00271000 * /* OR 'ALTINT' @YD00142*/ 00272000 * /* *********************************************** @Y30LB12*/ 00273000 * /* */ 00274000 * /***************************************************************/ 00275000 * 0085 00276000 * IF KNOWN='0'B /* UNRECOGNIZED KEY @Y30LB12*/ 00277000 * THEN /* @Y30LB12*/ 00278000 TM KNOWN,B'00010000' 0085 00279000 BNZ @RF00085 0085 00280000 * CALL UNKNOWN; /* MSG & POSTITION @Y30LB12*/ 00281000 BAL @14,UNKNOWN 0086 00282000 * ELSE 0087 00283000 * ; /* @Y30LB12*/ 00284000 @RF00085 DS 0H 0088 00285000 * END; /* END OF 'DO WHILE' @Y30LB12*/ 00286000 @DE00041 TM LASTPARM(R4),B'00001000' 0088 00287000 BZ @DL00041 0088 00288000 * END S02SCAN; /* TO S02 MAINLINE @Y30LB12*/ 00289000 B @EL00003 0089 00290000 * 0090 00291000 */********************************************************** @Y30LB12*/ 00292000 */* @Y30LB12*/ 00293000 */* PROCEDURE NAME - S02CPUID @Y30LB12*/ 00294000 */* @Y30LB12*/ 00295000 */* FUNCTION - WHEN THE KEYWORD IS 'CPUID, READ THE @Y30LB12*/ 00296000 */* PARAMETER, CHECK FOR DUPLICATE KEYWORD, @Y30LB12*/ 00297000 */* FORMAT AS PACKED, AND RETURN TO S02SCAN. @Y30LB12*/ 00298000 */* PARAMETER MUST BE 10 BYTES LONG. ONLY ONE @YD00113*/ 00299000 */* CPUID KEYWORD AND PARAMETER ALLOWED PER @YD00113*/ 00300000 */* CONTROL STATEMENT. @YD00113*/ 00301000 */* @Y30LB12*/ 00302000 */********************************************************** @Y30LB12*/ 00303000 * 0090 00304000 *S02CPUID: 0090 00305000 * PROCEDURE; /* @Y30LB12*/ 00306000 S02CPUID STM @14,@12,@SA00004 0090 00307000 * CALL READS99; /* EXTRACT PARAMETER @Y30LB12*/ 00308000 * 0091 00309000 BAL @14,READS99 0091 00310000 * /*****************************************************************/ 00311000 * /* */ 00312000 * /* *********************************************** @Y30LB12*/ 00313000 * /* TEST KEYWORD FOR EARLIER USE. IF NOT USED @YD00113*/ 00314000 * /* PREVIOUSLY, SET ITS USED FLAG. OTHERWISE, CALL @YD00113*/ 00315000 * /* PUTIT1 TO WRITE DUPLICATE KEYWORD MESSAGE @YD00113*/ 00316000 * /* *********************************************** @Y30LB12*/ 00317000 * /* */ 00318000 * /*****************************************************************/ 00319000 * 0092 00320000 * IF HAVEID^='1'B /* IF KEYWORD WAS @Y30LB12*/ 00321000 * THEN /* NOT USER EARLIER @Y30LB12*/ 00322000 TM HAVEID,B'10000000' 0092 00323000 BO @RF00092 0092 00324000 * HAVEID='1'B; /* SET ITS USED FLAG @Y30LB12*/ 00325000 OI HAVEID,B'10000000' 0093 00326000 * ELSE /* ELSE WRITE MSG @Y30LB12*/ 00327000 * DO; /* @Y30LB12*/ 00328000 * 0094 00329000 B @RC00092 0094 00330000 @RF00092 DS 0H 0095 00331000 * /*************************************************************/ 00332000 * /* */ 00333000 * /* ***************************************** @Y30LB12*/ 00334000 * /* ICG219I DUPLICATE KEYWORD CPUID @Y30LB12*/ 00335000 * /* ***************************************** @Y30LB12*/ 00336000 * /* */ 00337000 * /*************************************************************/ 00338000 * 0095 00339000 * OUTBUF2(1:27)=ICGDS219; /* @Y30LB12*/ 00340000 MVC OUTBUF2(27,R4),ICGDS219 0095 00341000 * OUTBUF2(28:32)='CPUID'; /* @Y30LB12*/ 00342000 MVC OUTBUF2+27(5,R4),@CC00390 0096 00343000 * CALL PUTIT1; /* TO MSG WRITER @Y30LB12*/ 00344000 BAL @14,PUTIT1 0097 00345000 * RETURN; /* TO S02SCAN @Y30LB12*/ 00346000 @EL00004 DS 0H 0098 00347000 @EF00004 DS 0H 0098 00348000 @ER00004 LM @14,@12,@SA00004 0098 00349000 BR @14 0098 00350000 * END; /* @Y30LB12*/ 00351000 * IF PARMBIT^='1'B /* SET IN ICGDSS99 @Y30LB12*/ 00352000 * THEN /* @Y30LB12*/ 00353000 @RC00092 TM PARMBIT(R4),B'00100000' 0100 00354000 BO @RF00100 0100 00355000 * DO; /* @Y30LB12*/ 00356000 * 0101 00357000 * /*************************************************************/ 00358000 * /* */ 00359000 * /* ***************************************** @Y30LB12*/ 00360000 * /* ICG211I EXPECTED, BUT DID NOT FIND, @Y30LB12*/ 00361000 * /* PARAMETER @Y30LB12*/ 00362000 * /* ***************************************** @Y30LB12*/ 00363000 * /* */ 00364000 * /*************************************************************/ 00365000 * 0102 00366000 * MSGNO=ICG211I; /* ID FOR ICGDS211 @Y30LB12*/ 00367000 MVC MSGNO(2,R4),ICG211I 0102 00368000 * CALL PUTIT2; /* TO MSG WRITER @Y30LB12*/ 00369000 BAL @14,PUTIT2 0103 00370000 * RETURN; /* TO S04SCAN @Y30LB12*/ 00371000 B @EL00004 0104 00372000 * END; /* @Y30LB12*/ 00373000 * ELSE 0106 00374000 * ; /* @Y30LB12*/ 00375000 @RF00100 DS 0H 0107 00376000 * PLUGIN='CPUID'; /* FOR MESSAGE TEXT @Y30LB12*/ 00377000 MVC PLUGIN(5),@CC00390 0107 00378000 * CALL CPUCONV; /* TO PACK PARAMETER @Y30LB12*/ 00379000 * 0108 00380000 BAL @14,CPUCONV 0108 00381000 * /*****************************************************************/ 00382000 * /* */ 00383000 * /* ****************************************** @YD00113*/ 00384000 * /* TEST FOR LENGTH ERROR IN PARAMETER. IF THERE @YD00113*/ 00385000 * /* WAS NO ERROR, MOVE THE DATA TO FIELD IN TABLE @YD00113*/ 00386000 * /* OTHERWISE, CALL PUTIT1 TO ISSUE ERROR MESSAGE @YD00113*/ 00387000 * /* ****************************************** @YD00113*/ 00388000 * /* */ 00389000 * /*****************************************************************/ 00390000 * 0109 00391000 * IF ERROR='0'B /* SET IN CPUCONV @Y30LB12*/ 00392000 * THEN /* @Y30LB12*/ 00393000 TM ERROR,B'00000100' 0109 00394000 BNZ @RF00109 0109 00395000 * CPUIDENT=PACKED(1:5); /* IS OK, MOVE IT @Y30LB12*/ 00396000 MVC CPUIDENT(5),PACKED 0110 00397000 * ELSE /* IF LENGTH WRONG, @Y30LB12*/ 00398000 * DO; /* WRITE MESSAGE @Y30LB12*/ 00399000 * 0111 00400000 B @RC00109 0111 00401000 @RF00109 DS 0H 0112 00402000 * /*************************************************************/ 00403000 * /* */ 00404000 * /* ***************************************** @Y30LB12*/ 00405000 * /* ICG220I INVALID PARAMETER LENGTH, @Y30LB12*/ 00406000 * /* KEYWORD IS CPUID @Y30LB12*/ 00407000 * /* ***************************************** @Y30LB12*/ 00408000 * /* */ 00409000 * /*************************************************************/ 00410000 * 0112 00411000 * OUTBUF2(1:46)=ICGDS220; /* @Y30LB12*/ 00412000 MVC OUTBUF2(46,R4),ICGDS220 0112 00413000 * OUTBUF2(47:51)='CPUID'; /* @Y30LB12*/ 00414000 MVC OUTBUF2+46(5,R4),@CC00390 0113 00415000 * CALL PUTIT1; /* TO MESSAGE WRITER @Y30LB12*/ 00416000 BAL @14,PUTIT1 0114 00417000 * END; /* @Y30LB12*/ 00418000 * END S02CPUID; /* RET. TO S02SCAN @Y30LB12*/ 00419000 B @EL00004 0116 00420000 * 0117 00421000 */********************************************************** @Y30LB12*/ 00422000 */* @Y30LB12*/ 00423000 */* PROCEDURE NAME - S02MSCIN @Y30LB12*/ 00424000 */* @Y30LB12*/ 00425000 */* FUNCTION - WHEN THE KEYWORD IS 'MSCINT', READ THE @Y30LB12*/ 00426000 */* PARAMETER, CHECK FOR DUPLICATE KEYWORD AND @Y30LB12*/ 00427000 */* WRONG LENGTH PARAMETER, AND CHECK FOR VALUES @Y30LB12*/ 00428000 */* 'A', 'B', 'C', OR 'D'. IF NOT ONE OF THESE @Y30LB12*/ 00429000 */* VALUES, WRITE MESSAGE ICG223I. @Y30LB12*/ 00430000 */* @Y30LB12*/ 00431000 */********************************************************** @Y30LB12*/ 00432000 * 0117 00433000 *S02MSCIN: 0117 00434000 * PROCEDURE; /* @Y30LB12*/ 00435000 S02MSCIN STM @14,@12,@SA00005 0117 00436000 * CALL READS99; /* EXTRACT PARAMETER @Y30LB12*/ 00437000 * 0118 00438000 BAL @14,READS99 0118 00439000 * /*****************************************************************/ 00440000 * /* */ 00441000 * /* *********************************************** @Y30LB12*/ 00442000 * /* TEST KEYWORD FOR EARLIER USE. IF NOT USED @YD00113*/ 00443000 * /* PREVIOUSLY, SET ITS USED FLAG. OTHERWISE, CALL @YD00113*/ 00444000 * /* PUTIT1 TO WRITE DUPLICATE KEYWORD MESSAGE @YD00113*/ 00445000 * /* *********************************************** @Y30LB12*/ 00446000 * /* */ 00447000 * /*****************************************************************/ 00448000 * 0119 00449000 * IF HAVEMSC^='1'B /* @Y30LB12*/ 00450000 * THEN /* @Y30LB12*/ 00451000 TM HAVEMSC,B'00100000' 0119 00452000 BO @RF00119 0119 00453000 * HAVEMSC='1'B; /* @Y30LB12*/ 00454000 OI HAVEMSC,B'00100000' 0120 00455000 * ELSE /* @Y30LB12*/ 00456000 * DO; /* @Y30LB12*/ 00457000 * 0121 00458000 B @RC00119 0121 00459000 @RF00119 DS 0H 0122 00460000 * /*************************************************************/ 00461000 * /* */ 00462000 * /* ***************************************** @Y30LB12*/ 00463000 * /* ICG219I DUPLICATE KEYWORD MSCINT @Y30LB12*/ 00464000 * /* ***************************************** @Y30LB12*/ 00465000 * /* */ 00466000 * /*************************************************************/ 00467000 * 0122 00468000 * OUTBUF2(1:27)=ICGDS219; /* @Y30LB12*/ 00469000 MVC OUTBUF2(27,R4),ICGDS219 0122 00470000 * OUTBUF2(28:33)='MSCINT'; /* @Y30LB12*/ 00471000 MVC OUTBUF2+27(6,R4),@CC00399 0123 00472000 * CALL PUTIT1; /* TO MESSAGE WRITER @Y30LB12*/ 00473000 BAL @14,PUTIT1 0124 00474000 * RETURN; /* RET. TO S02SCAN @Y30LB12*/ 00475000 @EL00005 DS 0H 0125 00476000 @EF00005 DS 0H 0125 00477000 @ER00005 LM @14,@12,@SA00005 0125 00478000 BR @14 0125 00479000 * END; /* @Y30LB12*/ 00480000 * 0126 00481000 * /*****************************************************************/ 00482000 * /* */ 00483000 * /* ****************************************** @YD00113*/ 00484000 * /* TEST IF DATA READ WAS A PARAMETER. IF YES, @YD00113*/ 00485000 * /* TEST PARAMETER LENGTH, OTHERWISE ISSUE ERROR @YD00113*/ 00486000 * /* MESSAGE. IF PARAMETER LENGTH IS CORRECT @YD00113*/ 00487000 * /* (ONE BYTE) CONTINUE TO DETERMINE PARAMETER @YD00113*/ 00488000 * /* VALUE, OTHERWISE ISSUE ERROR MESSAGE. @YD00113*/ 00489000 * /* ****************************************** @YD00113*/ 00490000 * /* */ 00491000 * /*****************************************************************/ 00492000 * 0127 00493000 * IF PARMBIT^='1'B /* SET BY ICGDSS99 @Y30LB12*/ 00494000 * THEN /* @Y30LB12*/ 00495000 @RC00119 TM PARMBIT(R4),B'00100000' 0127 00496000 BO @RF00127 0127 00497000 * DO; /* @Y30LB12*/ 00498000 * 0128 00499000 * /*************************************************************/ 00500000 * /* */ 00501000 * /* ***************************************** @Y30LB12*/ 00502000 * /* ICG211I EXPECTED, BUT DID NOT FIND, @Y30LB12*/ 00503000 * /* PARAMETER @Y30LB12*/ 00504000 * /* ***************************************** @Y30LB12*/ 00505000 * /* */ 00506000 * /*************************************************************/ 00507000 * 0129 00508000 * MSGNO=ICG211I; /* ID FOR ICGDS211 @Y30LB12*/ 00509000 MVC MSGNO(2,R4),ICG211I 0129 00510000 * CALL PUTIT2; /* TO MESSAGE WRITER @Y30LB12*/ 00511000 BAL @14,PUTIT2 0130 00512000 * RETURN; /* RET. TO S02SCAN @Y30LB12*/ 00513000 B @EL00005 0131 00514000 * END; /* @Y30LB12*/ 00515000 * ELSE 0133 00516000 * ; /* @Y30LB12*/ 00517000 @RF00127 DS 0H 0134 00518000 * IF SCANLEN^=1 /* SET BY ICGDSS99 @Y30LB12*/ 00519000 * THEN /* @Y30LB12*/ 00520000 CLC SCANLEN(2,R4),@CH00042 0134 00521000 BE @RF00134 0134 00522000 * DO; /* @Y30LB12*/ 00523000 * 0135 00524000 * /*************************************************************/ 00525000 * /* */ 00526000 * /* ***************************************** @Y30LB12*/ 00527000 * /* ICG220I INVALID PARAMETER LENGTH, @Y30LB12*/ 00528000 * /* KEYWORD IS MSCINT @Y30LB12*/ 00529000 * /* ***************************************** @Y30LB12*/ 00530000 * /* */ 00531000 * /*************************************************************/ 00532000 * 0136 00533000 * OUTBUF2(1:46)=ICGDS220; /* @Y30LB12*/ 00534000 MVC OUTBUF2(46,R4),ICGDS220 0136 00535000 * OUTBUF2(47:52)='MSCINT'; /* @Y30LB12*/ 00536000 MVC OUTBUF2+46(6,R4),@CC00399 0137 00537000 * CALL PUTIT1; /* TO MESSAGE WRITER @Y30LB12*/ 00538000 BAL @14,PUTIT1 0138 00539000 * RETURN; /* RETURN TO S02SCAN @Y30LB12*/ 00540000 B @EL00005 0139 00541000 * END; /* @Y30LB12*/ 00542000 * 0140 00543000 * /*****************************************************************/ 00544000 * /* */ 00545000 * /* ****************************************** @YD00113*/ 00546000 * /* TEST PARAMETER FOR VALID INTERFACE (A, B, C, @YD00113*/ 00547000 * /* OR D) AND SET 2 BIT CONFIGURATION TO REPRESENT @YD00113*/ 00548000 * /* INTERFACE PARAMETER. IF NO VALID INTERFACE, @YD00113*/ 00549000 * /* ISSUE ERROR MESSAGE VIA PUTIT1. @YD00113*/ 00550000 * /* ****************************************** @YD00113*/ 00551000 * /* */ 00552000 * /*****************************************************************/ 00553000 * 0141 00554000 * ELSE 0141 00555000 * ; /* @Y30LB12*/ 00556000 @RF00134 DS 0H 0142 00557000 * IF SCANDATA(1)='A' /* FOR 'A' INTERFACE @Y30LB12*/ 00558000 * THEN /* @Y30LB12*/ 00559000 L @10,STARTCOL(,R4) 0142 00560000 CLI SCANDATA(@10),C'A' 0142 00561000 BNE @RF00142 0142 00562000 * DO; /* @Y30LB12*/ 00563000 * MSCINT='00'B; /* SET BITS IN FLAG1 @Y30LB12*/ 00564000 NI MSCINT,B'11111100' 0144 00565000 * RETURN; /* RETURN TO S02SCAN @Y30LB12*/ 00566000 B @EL00005 0145 00567000 * END; /* @Y30LB12*/ 00568000 * ELSE 0147 00569000 * ; /* @Y30LB12*/ 00570000 @RF00142 DS 0H 0148 00571000 * IF SCANDATA(1)='B' /* FOR 'B' INTERFACE @Y30LB12*/ 00572000 * THEN /* @Y30LB12*/ 00573000 L @10,STARTCOL(,R4) 0148 00574000 CLI SCANDATA(@10),C'B' 0148 00575000 BNE @RF00148 0148 00576000 * DO; /* @Y30LB12*/ 00577000 * MSCINT='01'B; /* SET BITS IN FLAG1 @Y30LB12*/ 00578000 NI MSCINT,B'11111101' 0150 00579000 OI MSCINT,B'00000001' 0150 00580000 * RETURN; /* RETURN TO S02SCAN @Y30LB12*/ 00581000 B @EL00005 0151 00582000 * END; /* @Y30LB12*/ 00583000 * ELSE 0153 00584000 * ; /* @Y30LB12*/ 00585000 @RF00148 DS 0H 0154 00586000 * IF SCANDATA(1)='C' /* FOR 'C' INTERFACE @Y30LB12*/ 00587000 * THEN /* @Y30LB12*/ 00588000 L @10,STARTCOL(,R4) 0154 00589000 CLI SCANDATA(@10),C'C' 0154 00590000 BNE @RF00154 0154 00591000 * DO; /* @Y30LB12*/ 00592000 * MSCINT='10'B; /* SET BITS IN FLAG1 @Y30LB12*/ 00593000 NI MSCINT,B'11111110' 0156 00594000 OI MSCINT,B'00000010' 0156 00595000 * RETURN; /* RETURN TO S02SCAN @Y30LB12*/ 00596000 B @EL00005 0157 00597000 * END; /* @Y30LB12*/ 00598000 * ELSE 0159 00599000 * ; /* @Y30LB12*/ 00600000 @RF00154 DS 0H 0160 00601000 * IF SCANDATA(1)='D' /* FOR 'D' INTERFACE @Y30LB12*/ 00602000 * THEN /* @Y30LB12*/ 00603000 L @10,STARTCOL(,R4) 0160 00604000 CLI SCANDATA(@10),C'D' 0160 00605000 BNE @RF00160 0160 00606000 * DO; /* @Y30LB12*/ 00607000 * MSCINT='11'B; /* SET BITS IN FLAG1 @Y30LB12*/ 00608000 OI MSCINT,B'00000011' 0162 00609000 * RETURN; /* RETURN TO S02SCAN @Y30LB12*/ 00610000 B @EL00005 0163 00611000 * END; /* @Y30LB12*/ 00612000 * ELSE 0165 00613000 * ; /* @Y30LB12*/ 00614000 * 0165 00615000 @RF00160 DS 0H 0166 00616000 * /*****************************************************************/ 00617000 * /* */ 00618000 * /* *********************************************** @Y30LB12*/ 00619000 * /* ICG223I VALUE ERROR FOR MSCINT @Y30LB12*/ 00620000 * /* *********************************************** @Y30LB12*/ 00621000 * /* */ 00622000 * /*****************************************************************/ 00623000 * 0166 00624000 * OUTBUF2(1:25)=ICGDS223; /* @Y30LB12*/ 00625000 MVC OUTBUF2(25,R4),ICGDS223 0166 00626000 * OUTBUF2(26:31)='MSCINT'; /* @Y30LB12*/ 00627000 MVC OUTBUF2+25(6,R4),@CC00399 0167 00628000 * CALL PUTIT1; /* TO MESSAGE WRITER @Y30LB12*/ 00629000 BAL @14,PUTIT1 0168 00630000 * END S02MSCIN; /* RET. TO S02SCAN @Y30LB12*/ 00631000 B @EL00005 0169 00632000 * 0170 00633000 */********************************************************** @YD00142*/ 00634000 */* @YD00142*/ 00635000 */* PROCEDURE NAME - S02ALTIN @YD00142*/ 00636000 */* @YD00142*/ 00637000 */* FUNCTION - WHEN THE KEYWORD IS 'ALTINT', READ THE @YD00142*/ 00638000 */* PARAMETER, CHECK FOR DUPLICATE KEYWORD AND @YD00142*/ 00639000 */* WRONG LENGTH PARAMETER, AND CHECK FOR VALUES @YD00142*/ 00640000 */* 'A', 'B', 'C', OR 'D'. IF NOT ONE OF THESE @YD00142*/ 00641000 */* VALUES, WRITE MESSAGE ICG223I. @YD00142*/ 00642000 */* @YD00142*/ 00643000 */********************************************************** @YD00142*/ 00644000 * 0170 00645000 *S02ALTIN: 0170 00646000 * PROCEDURE; /* @YD00142*/ 00647000 S02ALTIN STM @14,@12,@SA00006 0170 00648000 * CALL READS99; /* EXTRACT PARAMETER @YD00142*/ 00649000 * 0171 00650000 BAL @14,READS99 0171 00651000 * /*****************************************************************/ 00652000 * /* */ 00653000 * /* *********************************************** @YD00142*/ 00654000 * /* TEST KEYWORD FOR EARLIER USE. IF NOT USED @YD00142*/ 00655000 * /* PREVIOUSLY, SET BOTH 'CPU HAS ALTERNATE PATH' @YD00142*/ 00656000 * /* ('HAVEALT') AND 'CPU USES COMMON MESSAGE @YD00142*/ 00657000 * /* BUFFER' ('HAVEBUF'). OTHERWISE CALL @YD00142*/ 00658000 * /* PUTIT1 TO WRITE DUPLICATE KEYWORD MESSAGE @YD00142*/ 00659000 * /* *********************************************** @YD00142*/ 00660000 * /* */ 00661000 * /*****************************************************************/ 00662000 * 0172 00663000 * IF HAVEALT^='1'B /* @YD00142*/ 00664000 * THEN /* @YD00142*/ 00665000 TM HAVEALT,B'00100000' 0172 00666000 BO @RF00172 0172 00667000 * DO; /* @YD00142*/ 00668000 * HAVEALT='1'B; /* @YD00142*/ 00669000 OI HAVEALT,B'00100000' 0174 00670000 * HAVEBUF='1'B; /* @YD00142*/ 00671000 OI HAVEBUF,B'00100000' 0175 00672000 * END; /* @YD00142*/ 00673000 * ELSE /* @YD00142*/ 00674000 * DO; /* @YD00142*/ 00675000 * 0177 00676000 B @RC00172 0177 00677000 @RF00172 DS 0H 0178 00678000 * /*************************************************************/ 00679000 * /* */ 00680000 * /* ***************************************** @YD00142*/ 00681000 * /* ICG219I DUPLICATE KEYWORD ALTINT @YD00142*/ 00682000 * /* ***************************************** @YD00142*/ 00683000 * /* */ 00684000 * /*************************************************************/ 00685000 * 0178 00686000 * OUTBUF2(1:27)=ICGDS219; /* @YD00142*/ 00687000 MVC OUTBUF2(27,R4),ICGDS219 0178 00688000 * OUTBUF2(28:33)='ALTINT'; /* @YD00142*/ 00689000 MVC OUTBUF2+27(6,R4),@CC00413 0179 00690000 * CALL PUTIT1; /* TO MESSAGE WRITER @YD00142*/ 00691000 BAL @14,PUTIT1 0180 00692000 * RETURN; /* RET. TO S02SCAN @YD00142*/ 00693000 @EL00006 DS 0H 0181 00694000 @EF00006 DS 0H 0181 00695000 @ER00006 LM @14,@12,@SA00006 0181 00696000 BR @14 0181 00697000 * END; /* @YD00142*/ 00698000 * 0182 00699000 * /*****************************************************************/ 00700000 * /* */ 00701000 * /* ****************************************** @YD00142*/ 00702000 * /* TEST IF DATA READ WAS A PARAMETER. IF YES, @YD00142*/ 00703000 * /* TEST PARAMETER LENGTH, OTHERWISE ISSUE ERROR @YD00142*/ 00704000 * /* MESSAGE. IF PARAMETER LENGTH IS CORRECT @YD00142*/ 00705000 * /* (ONE BYTE) CONTINUE TO DETERMINE PARAMETER @YD00142*/ 00706000 * /* VALUE, OTHERWISE ISSUE ERROR MESSAGE. @YD00142*/ 00707000 * /* ****************************************** @YD00142*/ 00708000 * /* */ 00709000 * /*****************************************************************/ 00710000 * 0183 00711000 * IF PARMBIT^='1'B /* SET BY ICGDSS99 @YD00142*/ 00712000 * THEN /* @YD00142*/ 00713000 @RC00172 TM PARMBIT(R4),B'00100000' 0183 00714000 BO @RF00183 0183 00715000 * DO; /* @YD00142*/ 00716000 * 0184 00717000 * /*************************************************************/ 00718000 * /* */ 00719000 * /* ***************************************** @YD00142*/ 00720000 * /* ICG211I EXPECTED, BUT DID NOT FIND, @YD00142*/ 00721000 * /* PARAMETER @YD00142*/ 00722000 * /* ***************************************** @YD00142*/ 00723000 * /* */ 00724000 * /*************************************************************/ 00725000 * 0185 00726000 * MSGNO=ICG211I; /* ID FOR ICGDS211 @YD00142*/ 00727000 MVC MSGNO(2,R4),ICG211I 0185 00728000 * CALL PUTIT2; /* TO MESSAGE WRITER @YD00142*/ 00729000 BAL @14,PUTIT2 0186 00730000 * RETURN; /* RET. TO S02SCAN @YD00142*/ 00731000 B @EL00006 0187 00732000 * END; /* @YD00142*/ 00733000 * ELSE 0189 00734000 * ; /* @YD00142*/ 00735000 @RF00183 DS 0H 0190 00736000 * IF SCANLEN^=1 /* SET BY ICGDSS99 @YD00142*/ 00737000 * THEN /* @YD00142*/ 00738000 CLC SCANLEN(2,R4),@CH00042 0190 00739000 BE @RF00190 0190 00740000 * DO; /* @YD00142*/ 00741000 * 0191 00742000 * /*************************************************************/ 00743000 * /* */ 00744000 * /* ***************************************** @YD00142*/ 00745000 * /* ICG220I INVALID PARAMETER LENGTH, @YD00142*/ 00746000 * /* KEYWORD IS ALTINT @YD00142*/ 00747000 * /* ***************************************** @YD00142*/ 00748000 * /* */ 00749000 * /*************************************************************/ 00750000 * 0192 00751000 * OUTBUF2(1:46)=ICGDS220; /* @YD00142*/ 00752000 MVC OUTBUF2(46,R4),ICGDS220 0192 00753000 * OUTBUF2(47:52)='ALTINT'; /* @YD00142*/ 00754000 MVC OUTBUF2+46(6,R4),@CC00413 0193 00755000 * CALL PUTIT1; /* TO MESSAGE WRITER @YD00142*/ 00756000 BAL @14,PUTIT1 0194 00757000 * RETURN; /* RETURN TO S02SCAN @YD00142*/ 00758000 B @EL00006 0195 00759000 * END; /* @YD00142*/ 00760000 * 0196 00761000 * /*****************************************************************/ 00762000 * /* */ 00763000 * /* ****************************************** @YD00142*/ 00764000 * /* TEST PARAMETER FOR VALID INTERFACE (A, B, C, @YD00142*/ 00765000 * /* OR D) AND SET 2 BIT CONFIGURATION TO REPRESENT @YD00142*/ 00766000 * /* INTERFACE PARAMETER. IF NO VALID INTERFACE, @YD00142*/ 00767000 * /* ISSUE ERROR MESSAGE VIA PUTIT1. @YD00142*/ 00768000 * /* ****************************************** @YD00142*/ 00769000 * /* */ 00770000 * /*****************************************************************/ 00771000 * 0197 00772000 * ELSE 0197 00773000 * ; /* @YD00142*/ 00774000 @RF00190 DS 0H 0198 00775000 * IF SCANDATA(1)='A' /* FOR 'A' INTERFACE @YD00142*/ 00776000 * THEN /* @YD00142*/ 00777000 L @10,STARTCOL(,R4) 0198 00778000 CLI SCANDATA(@10),C'A' 0198 00779000 BNE @RF00198 0198 00780000 * DO; /* @YD00142*/ 00781000 * ALTINT='00'B; /* SET BITS IN FLAG1 @YD00142*/ 00782000 NI ALTINT,B'11111100' 0200 00783000 * RETURN; /* RETURN TO S02SCAN @YD00142*/ 00784000 B @EL00006 0201 00785000 * END; /* @YD00142*/ 00786000 * ELSE 0203 00787000 * ; /* @YD00142*/ 00788000 @RF00198 DS 0H 0204 00789000 * IF SCANDATA(1)='B' /* FOR 'B' INTERFACE @YD00142*/ 00790000 * THEN /* @YD00142*/ 00791000 L @10,STARTCOL(,R4) 0204 00792000 CLI SCANDATA(@10),C'B' 0204 00793000 BNE @RF00204 0204 00794000 * DO; /* @YD00142*/ 00795000 * ALTINT='01'B; /* SET BITS IN FLAG1 @YD00142*/ 00796000 NI ALTINT,B'11111101' 0206 00797000 OI ALTINT,B'00000001' 0206 00798000 * RETURN; /* RETURN TO S02SCAN @YD00142*/ 00799000 B @EL00006 0207 00800000 * END; /* @YD00142*/ 00801000 * ELSE 0209 00802000 * ; /* @YD00142*/ 00803000 @RF00204 DS 0H 0210 00804000 * IF SCANDATA(1)='C' /* FOR 'C' INTERFACE @YD00142*/ 00805000 * THEN /* @YD00142*/ 00806000 L @10,STARTCOL(,R4) 0210 00807000 CLI SCANDATA(@10),C'C' 0210 00808000 BNE @RF00210 0210 00809000 * DO; /* @YD00142*/ 00810000 * ALTINT='10'B; /* SET BITS IN FLAG1 @YD00142*/ 00811000 NI ALTINT,B'11111110' 0212 00812000 OI ALTINT,B'00000010' 0212 00813000 * RETURN; /* RETURN TO S02SCAN @YD00142*/ 00814000 B @EL00006 0213 00815000 * END; /* @YD00142*/ 00816000 * ELSE 0215 00817000 * ; /* @YD00142*/ 00818000 @RF00210 DS 0H 0216 00819000 * IF SCANDATA(1)='D' /* FOR 'D' INTERFACE @YD00142*/ 00820000 * THEN /* @YD00142*/ 00821000 L @10,STARTCOL(,R4) 0216 00822000 CLI SCANDATA(@10),C'D' 0216 00823000 BNE @RF00216 0216 00824000 * DO; /* @YD00142*/ 00825000 * ALTINT='11'B; /* SET BITS IN FLAG1 @YD00142*/ 00826000 OI ALTINT,B'00000011' 0218 00827000 * RETURN; /* RETURN TO S02SCAN @YD00142*/ 00828000 B @EL00006 0219 00829000 * END; /* @YD00142*/ 00830000 * ELSE 0221 00831000 * ; /* @YD00142*/ 00832000 * 0221 00833000 @RF00216 DS 0H 0222 00834000 * /*****************************************************************/ 00835000 * /* */ 00836000 * /* *********************************************** @YD00142*/ 00837000 * /* ICG223I VALUE ERROR FOR ALTINT @YD00142*/ 00838000 * /* *********************************************** @YD00142*/ 00839000 * /* */ 00840000 * /*****************************************************************/ 00841000 * 0222 00842000 * OUTBUF2(1:25)=ICGDS223; /* @YD00142*/ 00843000 MVC OUTBUF2(25,R4),ICGDS223 0222 00844000 * OUTBUF2(26:31)='ALTINT'; /* @YD00142*/ 00845000 MVC OUTBUF2+25(6,R4),@CC00413 0223 00846000 * CALL PUTIT1; /* TO MESSAGE WRITER @YD00142*/ 00847000 BAL @14,PUTIT1 0224 00848000 * END S02ALTIN; /* RET. TO S02SCAN @YD00142*/ 00849000 B @EL00006 0225 00850000 * 0226 00851000 */********************************************************** @Y30LB12*/ 00852000 */* @Y30LB12*/ 00853000 */* PROCEDURE NAME - S02MPCPU @Y30LB12*/ 00854000 */* @Y30LB12*/ 00855000 */* FUNCTION - WHEN THE KEYWORD IS 'MPCPU', READ THE @Y30LB12*/ 00856000 */* PARAMETER, CHECK FOR DUPLICATE KEYWORD, @Y30LB12*/ 00857000 */* FORMAT AS PACKED, AND RETURN TO S02SCAN. @Y30LB12*/ 00858000 */* THE PARAMETER MUST BE 10 BYTES IN LENGTH @YD00113*/ 00859000 */* ONLY ONE 'MPCPU' KEYWORD AND PARAMETER ARE @YD00113*/ 00860000 */* ALLOWED PER CPUCONFG CONTROL STATEMENT @YD00113*/ 00861000 */* @Y30LB12*/ 00862000 */********************************************************** @Y30LB12*/ 00863000 * 0226 00864000 *S02MPCPU: 0226 00865000 * PROCEDURE; /* @Y30LB12*/ 00866000 S02MPCPU STM @14,@12,@SA00007 0226 00867000 * CALL READS99; /* EXTRACT PARAMETER @Y30LB12*/ 00868000 * 0227 00869000 BAL @14,READS99 0227 00870000 * /*****************************************************************/ 00871000 * /* */ 00872000 * /* *********************************************** @Y30LB12*/ 00873000 * /* TEST KEYWORD FOR EARLIER USE. IF NOT USED @YD00113*/ 00874000 * /* PREVIOUSLY, SET ITS USED FLAG. OTHERWISE, CALL @YD00113*/ 00875000 * /* PUTIT1 TO WRITE DUPLICATE KEYWORD MESSAGE @YD00113*/ 00876000 * /* *********************************************** @Y30LB12*/ 00877000 * /* */ 00878000 * /*****************************************************************/ 00879000 * 0228 00880000 * IF HAVEMP^='1'B /* @Y30LB12*/ 00881000 * THEN /* @Y30LB12*/ 00882000 TM HAVEMP,B'01000000' 0228 00883000 BO @RF00228 0228 00884000 * HAVEMP='1'B; /* @Y30LB12*/ 00885000 OI HAVEMP,B'01000000' 0229 00886000 * ELSE /* @Y30LB12*/ 00887000 * DO; /* @Y30LB12*/ 00888000 * 0230 00889000 B @RC00228 0230 00890000 @RF00228 DS 0H 0231 00891000 * /*************************************************************/ 00892000 * /* */ 00893000 * /* ***************************************** @Y30LB12*/ 00894000 * /* ICG219I DUPLICATE KEYWORD MPCPU @Y30LB12*/ 00895000 * /* ***************************************** @Y30LB12*/ 00896000 * /* */ 00897000 * /*************************************************************/ 00898000 * 0231 00899000 * OUTBUF2(1:27)=ICGDS219; /* @Y30LB12*/ 00900000 MVC OUTBUF2(27,R4),ICGDS219 0231 00901000 * OUTBUF2(28:32)='MPCPU'; /* @Y30LB12*/ 00902000 MVC OUTBUF2+27(5,R4),@CC00417 0232 00903000 * CALL PUTIT1; /* TO MESSAGE WRITER @Y30LB12*/ 00904000 BAL @14,PUTIT1 0233 00905000 * RETURN; /* RET. TO S02SCAN @Y30LB12*/ 00906000 @EL00007 DS 0H 0234 00907000 @EF00007 DS 0H 0234 00908000 @ER00007 LM @14,@12,@SA00007 0234 00909000 BR @14 0234 00910000 * END; /* @Y30LB12*/ 00911000 * 0235 00912000 * /*****************************************************************/ 00913000 * /* */ 00914000 * /* ******************************************* @YD00113*/ 00915000 * /* TEST IF DATA READ WAS A PARAMETER. IF YES, @YD00113*/ 00916000 * /* CALL CPUCONV TO CONVERT THE CHARACTER DATA TO @YD00113*/ 00917000 * /* PACKED DECIMAL. @YD00113*/ 00918000 * /* ******************************************* @YD00113*/ 00919000 * /* */ 00920000 * /*****************************************************************/ 00921000 * 0236 00922000 * IF PARMBIT^='1'B /* SET BY ICGDSS99 @Y30LB12*/ 00923000 * THEN /* @Y30LB12*/ 00924000 @RC00228 TM PARMBIT(R4),B'00100000' 0236 00925000 BO @RF00236 0236 00926000 * DO; /* @Y30LB12*/ 00927000 * 0237 00928000 * /*************************************************************/ 00929000 * /* */ 00930000 * /* ***************************************** @Y30LB12*/ 00931000 * /* ICG211I EXPECTED, BUT DID NOT FIND, @Y30LB12*/ 00932000 * /* PARAMETER @Y30LB12*/ 00933000 * /* ***************************************** @Y30LB12*/ 00934000 * /* */ 00935000 * /*************************************************************/ 00936000 * 0238 00937000 * MSGNO=ICG211I; /* ID FOR ICGDS211 @Y30LB12*/ 00938000 MVC MSGNO(2,R4),ICG211I 0238 00939000 * CALL PUTIT2; /* TO MESSAGE WRITER @Y30LB12*/ 00940000 BAL @14,PUTIT2 0239 00941000 * RETURN; /* RET. TO S04SCAN @Y30LB12*/ 00942000 B @EL00007 0240 00943000 * END; /* @Y30LB12*/ 00944000 * ELSE 0242 00945000 * ; /* @Y30LB12*/ 00946000 @RF00236 DS 0H 0243 00947000 * PLUGIN='MPCPU'; /* FOR MESSAGE TEXT @Y30LB12*/ 00948000 MVC PLUGIN(5),@CC00417 0243 00949000 * CALL CPUCONV; /* TO PACK PARAMETER @Y30LB12*/ 00950000 * 0244 00951000 BAL @14,CPUCONV 0244 00952000 * /*****************************************************************/ 00953000 * /* */ 00954000 * /* ******************************************* @YD00113*/ 00955000 * /* TEST FOR LENGTH ERROR IN PARAMETER. IF NO @YD00113*/ 00956000 * /* ERROR WAS DETECTED, MOVE DATA TO FIELD IN @YD00113*/ 00957000 * /* TABLE. OTHERWISE, ISSUE ERROR MESSAGE VIA @YD00113*/ 00958000 * /* PUTIT1. @YD00113*/ 00959000 * /* ******************************************* @YD00113*/ 00960000 * /* */ 00961000 * /*****************************************************************/ 00962000 * 0245 00963000 * IF ERROR='0'B /* SET BY CPUCONV @Y30LB12*/ 00964000 * THEN /* @Y30LB12*/ 00965000 TM ERROR,B'00000100' 0245 00966000 BNZ @RF00245 0245 00967000 * MPIDENT=PACKED(1:5); /* IS OK, MOVE IT @Y30LB12*/ 00968000 MVC MPIDENT(5),PACKED 0246 00969000 * ELSE /* IF LENGTH WRONG, @Y30LB12*/ 00970000 * DO; /* @Y30LB12*/ 00971000 * 0247 00972000 B @RC00245 0247 00973000 @RF00245 DS 0H 0248 00974000 * /*************************************************************/ 00975000 * /* */ 00976000 * /* ***************************************** @Y30LB12*/ 00977000 * /* ICG220I INVALID PARAMETER LENGTH, @Y30LB12*/ 00978000 * /* KEYWORD IS MPCPU @Y30LB12*/ 00979000 * /* ***************************************** @Y30LB12*/ 00980000 * /* */ 00981000 * /*************************************************************/ 00982000 * 0248 00983000 * OUTBUF2(1:46)=ICGDS220; /* @Y30LB12*/ 00984000 MVC OUTBUF2(46,R4),ICGDS220 0248 00985000 * OUTBUF2(47:51)='MPCPU'; /* @Y30LB12*/ 00986000 MVC OUTBUF2+46(5,R4),@CC00417 0249 00987000 * CALL PUTIT1; /* TO MESSAGE WRITER @Y30LB12*/ 00988000 BAL @14,PUTIT1 0250 00989000 * END; /* @Y30LB12*/ 00990000 * END S02MPCPU; /* RET. TO S02SCAN @Y30LB12*/ 00991000 B @EL00007 0252 00992000 * 0253 00993000 */********************************************************** @ZD02028*/ 00994000 */* @ZD02028*/ 00995000 */* PROCEDURE NAME - S02OPSYS @ZD02028*/ 00996000 */* @ZD02028*/ 00997000 */* FUNCTION - WHEN THE KEYWORD IS 'OPSYS', READ THE @ZD02028*/ 00998000 */* PARAMETER, CHECK FOR DUPLICATE KEYWORD AND @ZD02028*/ 00999000 */* WRONG LENGTH PARAMETER, AND CHECK FOR VALUES @ZD02028*/ 01000000 */* 'VS1','VS2' OR 'JES3'. IF NOT ONE OF THESE @G18MB19*/ 01001000 */* VALUES, WRITE MESSAGE ICG223I. @ZD02028*/ 01002000 */* @ZD02028*/ 01003000 */********************************************************** @ZD02028*/ 01004000 * 0253 01005000 *S02OPSYS: 0253 01006000 * PROCEDURE; /* @ZD02028*/ 01007000 S02OPSYS STM @14,@12,@SA00008 0253 01008000 * CALL READS99; /* EXTRACT PARAMETER @ZD02028*/ 01009000 * 0254 01010000 BAL @14,READS99 0254 01011000 * /*****************************************************************/ 01012000 * /* */ 01013000 * /* *********************************************** @ZD02028*/ 01014000 * /* TEST KEYWORD FOR EARLIER USE. IF NOT USED @ZD02028*/ 01015000 * /* PREVIOUSLY, SET ITS USED FLAG. OTHERWISE, CALL @ZD02028*/ 01016000 * /* PUTIT1 TO WRITE DUPLICATE KEYWORD MESSAGE @ZD02028*/ 01017000 * /* *********************************************** @ZD02028*/ 01018000 * /* */ 01019000 * /*****************************************************************/ 01020000 * 0255 01021000 * IF HAVOPSYS^='1'B /* @ZD02028*/ 01022000 * THEN /* @ZD02028*/ 01023000 TM HAVOPSYS,B'00000001' 0255 01024000 BO @RF00255 0255 01025000 * HAVOPSYS='1'B; /* @ZD02028*/ 01026000 OI HAVOPSYS,B'00000001' 0256 01027000 * ELSE /* @ZD02028*/ 01028000 * DO; /* @ZD02028*/ 01029000 * 0257 01030000 B @RC00255 0257 01031000 @RF00255 DS 0H 0258 01032000 * /*************************************************************/ 01033000 * /* */ 01034000 * /* ***************************************** @ZD02028*/ 01035000 * /* ICG219I DUPLICATE KEYWORD OPSYS @ZD02028*/ 01036000 * /* ***************************************** @ZD02028*/ 01037000 * /* */ 01038000 * /*************************************************************/ 01039000 * 0258 01040000 * OUTBUF2(1:27)=ICGDS219; /* @ZD02028*/ 01041000 MVC OUTBUF2(27,R4),ICGDS219 0258 01042000 * OUTBUF2(28:32)='OPSYS'; /* @ZD02028*/ 01043000 MVC OUTBUF2+27(5,R4),@CC00421 0259 01044000 * CALL PUTIT1; /* TO MESSAGE WRITER @ZD02028*/ 01045000 BAL @14,PUTIT1 0260 01046000 * RETURN; /* RET. TO S02SCAN @ZD02028*/ 01047000 @EL00008 DS 0H 0261 01048000 @EF00008 DS 0H 0261 01049000 @ER00008 LM @14,@12,@SA00008 0261 01050000 BR @14 0261 01051000 * END; /* @ZD02028*/ 01052000 * 0262 01053000 * /*****************************************************************/ 01054000 * /* */ 01055000 * /* ****************************************** @ZD02028*/ 01056000 * /* TEST IF DATA READ WAS A PARAMETER. IF YES, @ZD02028*/ 01057000 * /* TEST PARAMETER LENGTH, OTHERWISE ISSUE ERROR @ZD02028*/ 01058000 * /* MESSAGE. IF PARAMETER LENGTH IS CORRECT @ZD02028*/ 01059000 * /* (3 BYTES), CONTINUE TO DETERMINE PARAMETER @ZD02028*/ 01060000 * /* VALUE, OTHERWISE ISSUE ERROR MESSAGE. @ZD02028*/ 01061000 * /* ****************************************** @ZD02028*/ 01062000 * /* */ 01063000 * /*****************************************************************/ 01064000 * 0263 01065000 * IF PARMBIT^='1'B /* SET BY ICGDSS99 @ZD02028*/ 01066000 * THEN /* @ZD02028*/ 01067000 @RC00255 TM PARMBIT(R4),B'00100000' 0263 01068000 BO @RF00263 0263 01069000 * DO; /* @ZD02028*/ 01070000 * 0264 01071000 * /*************************************************************/ 01072000 * /* */ 01073000 * /* ***************************************** @ZD02028*/ 01074000 * /* ICG211I EXPECTED, BUT DID NOT FIND, @ZD02028*/ 01075000 * /* PARAMETER @ZD02028*/ 01076000 * /* ***************************************** @ZD02028*/ 01077000 * /* */ 01078000 * /*************************************************************/ 01079000 * 0265 01080000 * MSGNO=ICG211I; /* ID FOR ICGDS211 @ZD02028*/ 01081000 MVC MSGNO(2,R4),ICG211I 0265 01082000 * CALL PUTIT2; /* TO MESSAGE WRITER @ZD02028*/ 01083000 BAL @14,PUTIT2 0266 01084000 * RETURN; /* RET. TO S02SCAN @ZD02028*/ 01085000 B @EL00008 0267 01086000 * END; /* @ZD02028*/ 01087000 * ELSE 0269 01088000 * ; /* @ZD02028*/ 01089000 @RF00263 DS 0H 0270 01090000 * IF SCANLEN^=3&SCANLEN^=4 /* SET BY ICGDSS99 @G18MB19*/ 01091000 * THEN /* @ZD02028*/ 01092000 LH @10,SCANLEN(,R4) 0270 01093000 CH @10,@CH00048 0270 01094000 BE @RF00270 0270 01095000 CH @10,@CH00068 0270 01096000 BE @RF00270 0270 01097000 * DO; /* @ZD02028*/ 01098000 * 0271 01099000 * /*************************************************************/ 01100000 * /* */ 01101000 * /* ***************************************** @ZD02028*/ 01102000 * /* ICG220I INVALID PARAMETER LENGTH, @ZD02028*/ 01103000 * /* KEYWORD IS OPSYS @ZD02028*/ 01104000 * /* ***************************************** @ZD02028*/ 01105000 * /* */ 01106000 * /*************************************************************/ 01107000 * 0272 01108000 * OUTBUF2(1:46)=ICGDS220; /* @ZD02028*/ 01109000 MVC OUTBUF2(46,R4),ICGDS220 0272 01110000 * OUTBUF2(47:51)='OPSYS'; /* @ZD02028*/ 01111000 MVC OUTBUF2+46(5,R4),@CC00421 0273 01112000 * CALL PUTIT1; /* TO MESSAGE WRITER @ZD02028*/ 01113000 BAL @14,PUTIT1 0274 01114000 * RETURN; /* RETURN TO S02SCAN @ZD02028*/ 01115000 B @EL00008 0275 01116000 * END; /* @ZD02028*/ 01117000 * 0276 01118000 * /*****************************************************************/ 01119000 * /* */ 01120000 * /* ****************************************** @ZD02028*/ 01121000 * /* TEST PARAMETER FOR VALID OPERATING SYSTEM @ZD02028*/ 01122000 * /* (VS1,VS2 OR JES3) AND SET THE APPROPRAITE BIT @G18MB19*/ 01123000 * /* IN FLAG1. IF NOT A VALID OPERATING SYSTEM, @ZD02028*/ 01124000 * /* ISSUE ERROR MESSAGE VIA PUTIT1. @ZD02028*/ 01125000 * /* ****************************************** @ZD02028*/ 01126000 * /* */ 01127000 * /*****************************************************************/ 01128000 * 0277 01129000 * ELSE 0277 01130000 * ; /* @ZD02028*/ 01131000 @RF00270 DS 0H 0278 01132000 * IF SCANDATA(1:3)='VS1'&SCANLEN=3/* PRIMARY OS/VS1 @ZD02028*/ 01133000 * THEN /* @ZD02028*/ 01134000 L @10,STARTCOL(,R4) 0278 01135000 CLC SCANDATA(3,@10),@CC00422 0278 01136000 BNE @RF00278 0278 01137000 CLC SCANLEN(2,R4),@CH00048 0278 01138000 BNE @RF00278 0278 01139000 * DO; /* @ZD02028*/ 01140000 * VS1SYS='1'B; /* SET BIT IN FLAG1 @ZD02028*/ 01141000 OI VS1SYS,B'00010000' 0280 01142000 * RETURN; /* RETURN TO S02SCAN @ZD02028*/ 01143000 B @EL00008 0281 01144000 * END; /* @ZD02028*/ 01145000 * ELSE 0283 01146000 * ; /* @ZD02028*/ 01147000 @RF00278 DS 0H 0284 01148000 * IF SCANDATA(1:3)='VS2'&SCANLEN=3/* PRIMARY OS/VS2 @ZD02028*/ 01149000 * THEN /* @ZD02028*/ 01150000 L @10,STARTCOL(,R4) 0284 01151000 CLC SCANDATA(3,@10),@CC00423 0284 01152000 BNE @RF00284 0284 01153000 CLC SCANLEN(2,R4),@CH00048 0284 01154000 BNE @RF00284 0284 01155000 * DO; /* @ZD02028*/ 01156000 * VS2SYS='1'B; /* SET BIT IN FLAG1 @ZD02028*/ 01157000 OI VS2SYS,B'00001000' 0286 01158000 * RETURN; /* RETURN TO S02SCAN @ZD02028*/ 01159000 B @EL00008 0287 01160000 * END; /* @ZD02028*/ 01161000 * ELSE 0289 01162000 * ; /* @ZD02028*/ 01163000 @RF00284 DS 0H 0290 01164000 * IF SCANDATA(1:4)='JES3' THEN /* JES3 SPECIFIED @G18MB19*/ 01165000 L @10,STARTCOL(,R4) 0290 01166000 CLC SCANDATA(4,@10),@CC00424 0290 01167000 BNE @RF00290 0290 01168000 * DO; /* @G18MB19*/ 01169000 * VS2SYS='1'B; /* SET BIT IN FLAG1 @G18MB19*/ 01170000 * JES3='1'B; /* SET BIT IN FLAG1 @G18MB19*/ 01171000 OI VS2SYS,B'00001100' 0293 01172000 * RETURN; /* RETURN TO S02SCAN @G18MB19*/ 01173000 B @EL00008 0294 01174000 * END; 0295 01175000 * ELSE /* @G18MB19*/ 01176000 * DO; /* @G18MB19*/ 01177000 * 0296 01178000 @RF00290 DS 0H 0297 01179000 * /*************************************************************/ 01180000 * /* */ 01181000 * /* *********************************************** @ZD02028*/ 01182000 * /* ICG223I VALUE ERROR FOR OPSYS @ZD02028*/ 01183000 * /* *********************************************** @ZD02028*/ 01184000 * /* */ 01185000 * /*************************************************************/ 01186000 * 0297 01187000 * OUTBUF2(1:25)=ICGDS223; /* @ZD02028*/ 01188000 MVC OUTBUF2(25,R4),ICGDS223 0297 01189000 * OUTBUF2(26:30)='OPSYS'; /* @ZD02028*/ 01190000 MVC OUTBUF2+25(5,R4),@CC00421 0298 01191000 * CALL PUTIT1; /* TO MESSAGE WRITER @ZD02028*/ 01192000 BAL @14,PUTIT1 0299 01193000 * END; /* @G18MB19*/ 01194000 * END S02OPSYS; /* RET. TO S02SCAN @ZD02028*/ 01195000 B @EL00008 0301 01196000 * 0302 01197000 */********************************************************** @Y30LB12*/ 01198000 */* @Y30LB12*/ 01199000 */* PROCEDURE NAME - UNKNOWN @Y30LB12*/ 01200000 */* @Y30LB12*/ 01201000 */* FUNCTION - IF THE KEYWORD IS NOT 'CPUID', 'MSFINT' @Y30LB12*/ 01202000 */* OR 'MPCPU', WRITE ERROR MESSAGE 'ICG210I @Y30LB12*/ 01203000 */* UNDEFINED KEYWORD FOUND', DO DUMMY @Y30LB12*/ 01204000 */* READ OF PARAMETER TO POSITION TO NEXT @Y30LB12*/ 01205000 */* KEYWORD, AND RETURN TO S02SCAN @Y30LB12*/ 01206000 */* @Y30LB12*/ 01207000 */********************************************************** @Y30LB12*/ 01208000 * 0302 01209000 *UNKNOWN: 0302 01210000 * PROCEDURE; /* @Y30LB12*/ 01211000 UNKNOWN STM @14,@12,@SA00009 0302 01212000 * MSGNO=ICG210I; /* ID FOR ICGDS210 @Y30LB12*/ 01213000 MVC MSGNO(2,R4),ICG210I 0303 01214000 * CALL PUTIT2; /* TO MESSAGE WRITER @Y30LB12*/ 01215000 BAL @14,PUTIT2 0304 01216000 * CALL READS99; /* DO DUMMY READ @Y30LB12*/ 01217000 BAL @14,READS99 0305 01218000 * END UNKNOWN; /* RET. TO S02SCAN @Y30LB12*/ 01219000 @EL00009 DS 0H 0306 01220000 @EF00009 DS 0H 0306 01221000 @ER00009 LM @14,@12,@SA00009 0306 01222000 BR @14 0306 01223000 * 0307 01224000 */********************************************************** @Y30LB12*/ 01225000 */* @Y30LB12*/ 01226000 */* PROCEDURE NAME - S02ANAL @Y30LB12*/ 01227000 */* @Y30LB12*/ 01228000 */* FUNCTION - CHECK FOR MISSING REQUIRED KEYWORD 'CPUID' @Y30LB12*/ 01229000 */* AND MISSING REQUIRED KEYWORD MSCINT @Y30LB12*/ 01230000 */* IF EITHER OR BOTH ARE MISSING, CALL PUTIT1 @YD00113*/ 01231000 */* TO ISSUE INDICATED ERROR MESSAGE. @YD00113*/ 01232000 */* ALSO CHECK FOR BOTH 'MPCPU' AND 'ALTINT' @YD00142*/ 01233000 */* SPECIFIED AND ISSUE ERROR MESSAGE ICG213I @YD00142*/ 01234000 */* IF 'OPSYS' KEYWORD WAS NOT SUPPLIED, @ZD02028*/ 01235000 */* DEFAULT TO VS2. @ZD02028*/ 01236000 */* @Y30LB12*/ 01237000 */********************************************************** @Y30LB12*/ 01238000 * 0307 01239000 *S02ANAL: 0307 01240000 * PROCEDURE; /* @Y30LB12*/ 01241000 S02ANAL STM @14,@12,@SA00010 0307 01242000 * IF HAVEID^='1'B /* IF FLAG NOT ON, @Y30LB12*/ 01243000 * THEN /* NO KEYWORD CPUID @Y30LB12*/ 01244000 TM HAVEID,B'10000000' 0308 01245000 BO @RF00308 0308 01246000 * DO; /* SPECIFIED @Y30LB12*/ 01247000 * 0309 01248000 * /*************************************************************/ 01249000 * /* */ 01250000 * /* ***************************************** @Y30LB12*/ 01251000 * /* ICG221I MISSING REQUIRED KEYWORD CPUID @Y30LB12*/ 01252000 * /* ***************************************** @Y30LB12*/ 01253000 * /* */ 01254000 * /*************************************************************/ 01255000 * 0310 01256000 * OUTBUF2(1:34)=ICGDS221; /* @Y30LB12*/ 01257000 MVC OUTBUF2(34,R4),ICGDS221 0310 01258000 * OUTBUF2(35:39)='CPUID'; /* @Y30LB12*/ 01259000 MVC OUTBUF2+34(5,R4),@CC00390 0311 01260000 * CALL PUTIT1; /* TO MESSAGE WRITER @Y30LB12*/ 01261000 BAL @14,PUTIT1 0312 01262000 * END; /* @Y30LB12*/ 01263000 * ELSE 0314 01264000 * ; /* KEYWORD PRESENT @Y30LB12*/ 01265000 @RF00308 DS 0H 0315 01266000 * IF HAVEMSC^='1'B /* @Y30LB12*/ 01267000 * THEN /* @Y30LB12*/ 01268000 TM HAVEMSC,B'00100000' 0315 01269000 BO @RF00315 0315 01270000 * DO; /* @Y30LB12*/ 01271000 * 0316 01272000 * /*************************************************************/ 01273000 * /* */ 01274000 * /* ***************************************** @Y30LB12*/ 01275000 * /* ICGDS221 MISSING REQUIRED KEYWORD @Y30LB12*/ 01276000 * /* MSCINT @Y30LB12*/ 01277000 * /* ***************************************** @Y30LB12*/ 01278000 * /* */ 01279000 * /*************************************************************/ 01280000 * 0317 01281000 * OUTBUF2(1:34)=ICGDS221; /* @Y30LB12*/ 01282000 MVC OUTBUF2(34,R4),ICGDS221 0317 01283000 * OUTBUF2(35:40)='MSCINT'; /* @Y30LB12*/ 01284000 MVC OUTBUF2+34(6,R4),@CC00399 0318 01285000 * CALL PUTIT1; /* TO MESSAGE WRITER @Y30LB12*/ 01286000 BAL @14,PUTIT1 0319 01287000 * END; /* @Y30LB12*/ 01288000 * ELSE 0321 01289000 * ; /* @Y30LB12*/ 01290000 @RF00315 DS 0H 0322 01291000 * IF HAVEMP='1'B /* @YD00142*/ 01292000 * &HAVEALT='1'B /* @YD00142*/ 01293000 * THEN /* @YD00142*/ 01294000 TM HAVEMP,B'01100000' 0322 01295000 BNO @RF00322 0322 01296000 * DO; /* @YD00142*/ 01297000 * 0323 01298000 * /*************************************************************/ 01299000 * /* */ 01300000 * /* ***************************************** @YD00142*/ 01301000 * /* ICG213I CPUCONFG STATEMENT EXCLUSIVE @YD00142*/ 01302000 * /* KEYWORDS SPECIFIED @YD00142*/ 01303000 * /* ***************************************** @YD00142*/ 01304000 * /* */ 01305000 * /*************************************************************/ 01306000 * 0324 01307000 * MSGNO=ICG213I; /* @YD00142*/ 01308000 MVC MSGNO(2,R4),ICG213I 0324 01309000 * CALL PUTIT2; /* TO MESSAGE WRITER @YD00142*/ 01310000 BAL @14,PUTIT2 0325 01311000 * END; /* @YD00142*/ 01312000 * 0326 01313000 * /*****************************************************************/ 01314000 * /* */ 01315000 * /* *********************************************** @ZD02028*/ 01316000 * /* IF NO VALUE WAS SUPPLIED FOR PRIMARY @ZD02028*/ 01317000 * /* OPERATING SYSTEM, DEFAULT TO VS2 @ZD02028*/ 01318000 * /* *********************************************** @ZD02028*/ 01319000 * /* */ 01320000 * /*****************************************************************/ 01321000 * 0327 01322000 * IF HAVOPSYS='0'B /* @ZD02028*/ 01323000 * THEN /* @ZD02028*/ 01324000 @RF00322 TM HAVOPSYS,B'00000001' 0327 01325000 BNZ @RF00327 0327 01326000 * VS2SYS='1'B; /* @ZD02028*/ 01327000 OI VS2SYS,B'00001000' 0328 01328000 * ELSE 0329 01329000 * ; /* @ZD02028*/ 01330000 * 0329 01331000 @RF00327 DS 0H 0330 01332000 * /*****************************************************************/ 01333000 * /* */ 01334000 * /* *********************************************** @ZD02028*/ 01335000 * /* IF OPERATING SYSTEM SPECIFIED AS VS1 AND A MP @ZD02028*/ 01336000 * /* CPU, FORCE THE OPERATING SYSTEM TO VS2. @ZD02028*/ 01337000 * /* *********************************************** @ZD02028*/ 01338000 * /* */ 01339000 * /*****************************************************************/ 01340000 * 0330 01341000 * IF HAVEMP='1'B /* @ZD02028*/ 01342000 * &VS1SYS='1'B /* @ZD02028*/ 01343000 * THEN /* @ZD02028*/ 01344000 TM HAVEMP,B'01010000' 0330 01345000 BNO @RF00330 0330 01346000 * DO; /* @ZD02028*/ 01347000 * VS1SYS='0'B; /* @ZD02028*/ 01348000 * VS2SYS='1'B; /* @ZD02028*/ 01349000 OI VS2SYS,B'00001000' 0333 01350000 NI VS1SYS,B'11101111' 0333 01351000 * END; /* @ZD02028*/ 01352000 * ELSE 0335 01353000 * ; /* @ZD02028*/ 01354000 @RF00330 DS 0H 0336 01355000 * END S02ANAL; /* RET. TO MAINLINE @Y30LB12*/ 01356000 @EL00010 DS 0H 0336 01357000 @EF00010 DS 0H 0336 01358000 @ER00010 LM @14,@12,@SA00010 0336 01359000 BR @14 0336 01360000 * 0337 01361000 */********************************************************** @Y30LB12*/ 01362000 */* @Y30LB12*/ 01363000 */* PROCEDURE NAME - S02BUILD @Y30LB12*/ 01364000 */* @Y30LB12*/ 01365000 */* FUNCTION - DETERMINE WHETHER THE NUMBER OF ALLOWABLE @Y30LB12*/ 01366000 */* CPUS HAS BEEN EXCEEDED. IF YES, WRITE ERROR @Y30LB12*/ 01367000 */* MESSAGE ICG224I AND RETURN TO MAINLINE. IF @Y30LB12*/ 01368000 */* NO, CALL FINDCPU TO LOCATE PROPER ENTRY SLOT @Y30LB12*/ 01369000 */* FOR THIS CPU. @Y30LB12*/ 01370000 */* @Y30LB12*/ 01371000 */********************************************************** @Y30LB12*/ 01372000 * 0337 01373000 *S02BUILD: 0337 01374000 * PROCEDURE; /* @Y30LB12*/ 01375000 * 0337 01376000 S02BUILD STM @14,@12,@SA00011 0337 01377000 * /*****************************************************************/ 01378000 * /* */ 01379000 * /* ******************************************* @YD00113*/ 01380000 * /* TEST IF ALLOWABLE NUMBER OF CPUS HAS BEEN @YD00113*/ 01381000 * /* EXCEEDED. IF YES, ISSUE ERROR MESSAGE. @YD00113*/ 01382000 * /* ******************************************* @YD00113*/ 01383000 * /* */ 01384000 * /*****************************************************************/ 01385000 * 0338 01386000 * CPUNUM=CPUNUM+1; /* @Y30LB12*/ 01387000 LA @10,1 0338 01388000 AH @10,CPUNUM(,R4) 0338 01389000 STH @10,CPUNUM(,R4) 0338 01390000 * IF CPUNUM>=(MAXCPU+2) /* @Y30LB12*/ 01391000 * THEN /* @Y30LB12*/ 01392000 LA @05,2 0339 01393000 AH @05,MAXCPU 0339 01394000 CR @10,@05 0339 01395000 BL @RF00339 0339 01396000 * DO; /* @Y30LB12*/ 01397000 * 0340 01398000 * /*************************************************************/ 01399000 * /* */ 01400000 * /* ***************************************** @Y30LB12*/ 01401000 * /* ICG224I MAXIMUM NUMBER OF SUPPORTED @Y30LB12*/ 01402000 * /* CPUS EXCEEDED. @Y30LB12*/ 01403000 * /* ***************************************** @Y30LB12*/ 01404000 * /* */ 01405000 * /*************************************************************/ 01406000 * 0341 01407000 * MSGNO=ICG224I; /* IDENT FOR ICG224I @Y30LB12*/ 01408000 MVC MSGNO(2,R4),ICG224I 0341 01409000 * CALL PUTIT2; /* TO MESSAGE WRITER @Y30LB12*/ 01410000 BAL @14,PUTIT2 0342 01411000 * END; /* @Y30LB12*/ 01412000 * ELSE /* @Y30LB12*/ 01413000 * CALL FINDCPU; /* FIND ENTRY SLOT @Y30LB12*/ 01414000 B @RC00339 0344 01415000 @RF00339 BAL @14,FINDCPU 0344 01416000 * END S02BUILD; /* RET. TO MAINLINE @Y30LB12*/ 01417000 @EL00011 DS 0H 0345 01418000 @EF00011 DS 0H 0345 01419000 @ER00011 LM @14,@12,@SA00011 0345 01420000 BR @14 0345 01421000 * 0346 01422000 */********************************************************** @Y30LB12*/ 01423000 */* @Y30LB12*/ 01424000 */* PROCEDURE NAME - FINDCPU @Y30LB12*/ 01425000 */* @Y30LB12*/ 01426000 */* FUNCTION - CALL PREVREF TO FIND OUT WHETHER CPUID IS @Y30LB12*/ 01427000 */* ALREADY IN TABLE. IF NOT FOUND IN TABLE BY @Y30LB12*/ 01428000 */* PREVREF, CALL NOTREF TO ASSIGN CPUID TO THE @Y30LB12*/ 01429000 */* NEXT AVAILABLE ENTRY IN THE TABLE. CALL @Y30LB12*/ 01430000 */* HAVEHIT TO HANDLE OPTIONAL PARAMETERS, IF @Y30LB12*/ 01431000 */* PRESENT. @Y30LB12*/ 01432000 */* @Y30LB12*/ 01433000 */********************************************************** @Y30LB12*/ 01434000 * 0346 01435000 *FINDCPU: 0346 01436000 * PROCEDURE; /* @Y30LB12*/ 01437000 FINDCPU STM @14,@12,@SA00012 0346 01438000 * CALL PREVREF; /* ALREADY IN TABLE @Y30LB12*/ 01439000 BAL @14,PREVREF 0347 01440000 * IF STOPSCAN^='1'B /* IF NO ERROR MSG & @Y30LB12*/ 01441000 * THEN /* NOT ALREADY IN @Y30LB12*/ 01442000 TM STOPSCAN,B'00001000' 0348 01443000 BO @RF00348 0348 01444000 * IF HAVESLOT^='1'B /* TABLE, @Y30LB12*/ 01445000 * THEN /* @Y30LB12*/ 01446000 TM HAVESLOT,B'01000000' 0349 01447000 BO @RF00349 0349 01448000 * CALL NOTREF; /* USE NEXT ENTRY @Y30LB12*/ 01449000 BAL @14,NOTREF 0350 01450000 * ELSE 0351 01451000 * ; /* @Y30LB12*/ 01452000 @RF00349 DS 0H 0352 01453000 * IF STOPSCAN^='1'B /* IF NO ERROR MSG @Y30LB12*/ 01454000 * THEN /* @Y30LB12*/ 01455000 @RF00348 TM STOPSCAN,B'00001000' 0352 01456000 BO @RF00352 0352 01457000 * CALL HAVEHIT; /* HANDLE OPTIONALS @Y30LB12*/ 01458000 BAL @14,HAVEHIT 0353 01459000 * ELSE 0354 01460000 * ; /* @Y30LB12*/ 01461000 @RF00352 DS 0H 0355 01462000 * END FINDCPU; /* RET. TO S02BUILD @Y30LB12*/ 01463000 @EL00012 DS 0H 0355 01464000 @EF00012 DS 0H 0355 01465000 @ER00012 LM @14,@12,@SA00012 0355 01466000 BR @14 0355 01467000 * 0356 01468000 */********************************************************** @Y30LB12*/ 01469000 */* @Y30LB12*/ 01470000 */* PROCEDURE NAME - PREVREF @Y30LB12*/ 01471000 */* @Y30LB12*/ 01472000 */* FUNCTION - CHECK THE CPUID PASSED IN THIS CONTROL @Y30LB12*/ 01473000 */* STATEMENT TO SEE IF IT ALREADY APPEARS IN THE @Y30LB12*/ 01474000 */* CPUASSOC TABLE. IF THE BIT 'CPUSPEC' IS OFF, @Y30LB12*/ 01475000 */* THE ENTRY IS IN THE TABLE BECAUSE IT @Y30LB12*/ 01476000 */* PREVIOUSLY WAS SPECIFIED AS THE RESPONSE TO @Y30LB12*/ 01477000 */* TO 'MPCPU='. IF 'CPUSPEC' IS @Y30LB12*/ 01478000 */* ON, THE CPU WAS PREVIOUSLY SPECIFIED AS @Y30LB12*/ 01479000 */* 'CPUID='. IF 'CPUSPEC' IS ON, WRITE ERROR @Y30LB12*/ 01480000 */* MESSAGE 'ICG225I CPUID PREVIOUSLY SPECIFIED' @Y30LB12*/ 01481000 */* AND TERMINATE FURTHER PROCESSING OF THIS @Y30LB12*/ 01482000 */* STATEMENT. @Y30LB12*/ 01483000 */********************************************************** @Y30LB12*/ 01484000 * 0356 01485000 *PREVREF: 0356 01486000 * PROCEDURE; /* @Y30LB12*/ 01487000 PREVREF STM @14,@12,@SA00013 0356 01488000 * DO I=1 TO CPUNUM; /* NUMB NOW IN TABLE @Y30LB12*/ 01489000 LA I,1 0357 01490000 B @DE00357 0357 01491000 @DL00357 DS 0H 0358 01492000 * IF CPUIDENT=CPUID(I) /* IF MATCH @Y30LB12*/ 01493000 * THEN /* @Y30LB12*/ 01494000 LR @10,I 0358 01495000 SLA @10,3 0358 01496000 ST @10,@TF00001 0358 01497000 ALR @10,R4 0358 01498000 CLC CPUIDENT(5),CPUID-8(@10) 0358 01499000 BNE @RF00358 0358 01500000 * IF CPUSPEC(I)^='1'B /* NOT SPEC AS CPUID @Y30LB12*/ 01501000 * THEN /* @Y30LB12*/ 01502000 LR @10,R4 0359 01503000 AL @10,@TF00001 0359 01504000 TM CPUSPEC-8(@10),B'10000000' 0359 01505000 BO @RF00359 0359 01506000 * DO; /* @Y30LB12*/ 01507000 * INDEX=I; /* SAVE ENTRY PTR @Y30LB12*/ 01508000 * 0361 01509000 STH I,INDEX 0361 01510000 * /*********************************************************/ 01511000 * /* */ 01512000 * /* *********************************** @YD00142*/ 01513000 * /* FLAG1 TO CPUFLAG1 MOVES HAVEMP TO @YD00142*/ 01514000 * /* CPUTIGHT, HAVEALT TO CPUALTFL, AND @YD00142*/ 01515000 * /* MSCINT TO CPUMSCIN @YD00142*/ 01516000 * /* *********************************** @YD00142*/ 01517000 * /* */ 01518000 * /*********************************************************/ 01519000 * 0362 01520000 * CPUFLAG1(I)=FLAG1; /* MSCINT-MP @Y30LB12*/ 01521000 * 0362 01522000 LR @10,R4 0362 01523000 AL @10,@TF00001 0362 01524000 MVC CPUFLAG1-8(1,@10),FLAG1 0362 01525000 * /*********************************************************/ 01526000 * /* */ 01527000 * /* *********************************** @YD00142*/ 01528000 * /* FLAG1 TO CPUFLAG1 MOVES HAVEID TO @YD00142*/ 01529000 * /* CPUSPEC, HAVEBUF TO ALTMSGBF, AND @YD00142*/ 01530000 * /* ALTINT TO ALTMSCIN @YD00142*/ 01531000 * /* *********************************** @YD00142*/ 01532000 * /* */ 01533000 * /*********************************************************/ 01534000 * 0363 01535000 * CPUFLAG2(I)=FLAG2; /* CPUSPEC, ETC. @YD00142*/ 01536000 LR @10,R4 0363 01537000 AL @10,@TF00001 0363 01538000 MVC CPUFLAG2-8(1,@10),FLAG2 0363 01539000 * CPUNUM=CPUNUM-1; /* PTR NEXT ENTRY @Y30LB12*/ 01540000 LH @10,CPUNUM(,R4) 0364 01541000 BCTR @10,0 0364 01542000 STH @10,CPUNUM(,R4) 0364 01543000 * HAVESLOT='1'B; /* 'FOUND IT' FLAG @Y30LB12*/ 01544000 OI HAVESLOT,B'01000000' 0365 01545000 * END; /* @Y30LB12*/ 01546000 * ELSE /* @Y30LB12*/ 01547000 * DO; /* @Y30LB12*/ 01548000 * 0367 01549000 B @RC00359 0367 01550000 @RF00359 DS 0H 0368 01551000 * /*********************************************************/ 01552000 * /* */ 01553000 * /* *********************************** @Y30LB12*/ 01554000 * /* ICG225I CPUID XXXXXXXXXX @Y30LB12*/ 01555000 * /* PREVIOUSLY SPECIFIED @Y30LB12*/ 01556000 * /* *********************************** @Y30LB12*/ 01557000 * /* */ 01558000 * /*********************************************************/ 01559000 * 0368 01560000 * OUTBUF2(1:46)=ICGDS225; /* @Y30LB12*/ 01561000 MVC OUTBUF2(46,R4),ICGDS225 0368 01562000 * PACKED(1:5)=CPUIDENT; /* @Y30LB12*/ 01563000 MVC PACKED(5),CPUIDENT 0369 01564000 * PACKED(6)='0F'X; /* @Y30LB12*/ 01565000 MVI PACKED+5,X'0F' 0370 01566000 * GEN(UNPK UNPACKED(11),PACKED(6));/* @Y30LB12*/ 01567000 UNPK UNPACKED(11),PACKED(6) 01568000 * OUTBUF2(16:25)=UNPACKED(1:10);/* @Y30LB12*/ 01569000 MVC OUTBUF2+15(10,R4),UNPACKED 0372 01570000 * CALL PUTIT1; /* @Y30LB12*/ 01571000 BAL @14,PUTIT1 0373 01572000 * END; /* @Y30LB12*/ 01573000 * ELSE 0375 01574000 * ; /* @Y30LB12*/ 01575000 @RF00358 DS 0H 0376 01576000 * END; /* DID ALL ENTRIES @Y30LB12*/ 01577000 @RC00358 AH I,@CH00042 0376 01578000 @DE00357 CH I,CPUNUM(,R4) 0376 01579000 BNH @DL00357 0376 01580000 * END PREVREF; /* RET. TO FINDCPU @Y30LB12*/ 01581000 @EL00013 DS 0H 0377 01582000 @EF00013 DS 0H 0377 01583000 @ER00013 LM @14,@12,@SA00013 0377 01584000 BR @14 0377 01585000 * 0378 01586000 */********************************************************** @Y30LB12*/ 01587000 */* @Y30LB12*/ 01588000 */* PROCEDURE NAME - NOTREF @Y30LB12*/ 01589000 */* @Y30LB12*/ 01590000 */* FUNCTION - IF THE 'CPUID' DOES NOT ALREADY APPEAR IN THE @Y30LB12*/ 01591000 */* CPUASSOC TABLE, IT SHOULD BE PUT IN AS THE @Y30LB12*/ 01592000 */* NEXT ENTRY. THE NEXT AVAILABLE ENTRY IS THE @Y30LB12*/ 01593000 */* 'CPUNUM'TH' ENTRY. IF CPUNUM IS GREATER THAN @Y30LB12*/ 01594000 */* THE MAXIMUM SIZE ALLOWED, WRITE ERROR MESSAGE @Y30LB12*/ 01595000 */* 'ICG224I MAXIMUM NUMBER OF SUPPORTED CPUS @Y30LB12*/ 01596000 */* EXCEEDED', AND TERMINATE PROCESSING OF THIS @Y30LB12*/ 01597000 */* CONTROL STATEMENT. @Y30LB12*/ 01598000 */* @Y30LB12*/ 01599000 */********************************************************** @Y30LB12*/ 01600000 * 0378 01601000 *NOTREF: 0378 01602000 * PROCEDURE; /* @Y30LB12*/ 01603000 NOTREF STM @14,@12,@SA00014 0378 01604000 * IF CPUNUM>=MAXCPU+1 /* GREATER THAN MAX @Y30LB12*/ 01605000 * THEN /* IF YES, WRITE MSG @Y30LB12*/ 01606000 LA @10,1 0379 01607000 AH @10,MAXCPU 0379 01608000 CH @10,CPUNUM(,R4) 0379 01609000 BH @RF00379 0379 01610000 * DO; /* @Y30LB12*/ 01611000 * 0380 01612000 * /*************************************************************/ 01613000 * /* */ 01614000 * /* ***************************************** @Y30LB12*/ 01615000 * /* ICG224I MAXIMUM NUMBER OF SUPPORTED @Y30LB12*/ 01616000 * /* CPUS EXCEEDED. @Y30LB12*/ 01617000 * /* ***************************************** @Y30LB12*/ 01618000 * /* */ 01619000 * /*************************************************************/ 01620000 * 0381 01621000 * MSGNO=ICG224I; /* IDENT FOR ICG224I @Y30LB12*/ 01622000 MVC MSGNO(2,R4),ICG224I 0381 01623000 * CALL PUTIT2; /* TO MESSAGE WRITER @Y30LB12*/ 01624000 BAL @14,PUTIT2 0382 01625000 * END; /* @Y30LB12*/ 01626000 * ELSE /* @Y30LB12*/ 01627000 * DO; /* @Y30LB12*/ 01628000 B @RC00379 0384 01629000 @RF00379 DS 0H 0385 01630000 * CPUID(CPUNUM)=CPUIDENT; /* CPUID TO ENTRY @Y30LB12*/ 01631000 * 0385 01632000 LH @10,CPUNUM(,R4) 0385 01633000 LR @05,@10 0385 01634000 SLA @05,3 0385 01635000 ST @05,@TF00001 0385 01636000 ALR @05,R4 0385 01637000 MVC CPUID-8(5,@05),CPUIDENT 0385 01638000 * /*************************************************************/ 01639000 * /* */ 01640000 * /* ***************************************** @YD00142*/ 01641000 * /* FLAG1 TO CPUFLAG1 MOVES HAVEMP TO @YD00142*/ 01642000 * /* CPUTIGHT, HAVEALT TO CPUALTFL, AND @YD00142*/ 01643000 * /* MSCINT TO CPUMSCIN. @YD00142*/ 01644000 * /* ***************************************** @YD00142*/ 01645000 * /* */ 01646000 * /*************************************************************/ 01647000 * 0386 01648000 * CPUFLAG1(CPUNUM)=FLAG1; /* MSCINT/MSCINT-MP @Y30LB12*/ 01649000 * 0386 01650000 LR @05,R4 0386 01651000 AL @05,@TF00001 0386 01652000 MVC CPUFLAG1-8(1,@05),FLAG1 0386 01653000 * /*************************************************************/ 01654000 * /* */ 01655000 * /* ***************************************** @YD00142*/ 01656000 * /* FLAG2 TO CPUFLAG2 MOVES HAVEID TO @YD00142*/ 01657000 * /* CPUSPEC, HAVEBUF TO ALTMSGBF, AND @YD00142*/ 01658000 * /* ALTINT TO ALTMSCIN @YD00142*/ 01659000 * /* ***************************************** @YD00142*/ 01660000 * /* */ 01661000 * /*************************************************************/ 01662000 * 0387 01663000 * CPUFLAG2(CPUNUM)=FLAG2; /* CPUSPEC, ETC. @YD00142*/ 01664000 LR @05,R4 0387 01665000 AL @05,@TF00001 0387 01666000 MVC CPUFLAG2-8(1,@05),FLAG2 0387 01667000 * INDEX=CPUNUM; /* PTR TO ENTRY @Y30LB12*/ 01668000 STH @10,INDEX 0388 01669000 * END; /* @Y30LB12*/ 01670000 * END NOTREF; /* RET. TO FINDCPU @Y30LB12*/ 01671000 @EL00014 DS 0H 0390 01672000 @EF00014 DS 0H 0390 01673000 @ER00014 LM @14,@12,@SA00014 0390 01674000 BR @14 0390 01675000 * 0391 01676000 */********************************************************** @Y30LB12*/ 01677000 */* @Y30LB12*/ 01678000 */* PROCEDURE NAME - HAVEHIT @Y30LB12*/ 01679000 */* @Y30LB12*/ 01680000 */* FUNCTION - DETERMINE IF THIS CPU IS ONE-HALF OF A MULTI- @YD00113*/ 01681000 */* PROCESSOR CPU. IF IT IS, CALL DOMPCPU PROC @YD00113*/ 01682000 */* TO FURTHER TEST CPU AND SET POINTER TO OTHER @YD00113*/ 01683000 */* MULTI-PROCESSOR CPU @YD00113*/ 01684000 */* @Y30LB12*/ 01685000 */********************************************************** @Y30LB12*/ 01686000 * 0391 01687000 *HAVEHIT: 0391 01688000 * PROCEDURE; /* @Y30LB12*/ 01689000 HAVEHIT STM @14,@12,@SA00015 0391 01690000 * IF MPIDENT^=' ' /* FOR 1/2 OF MP @Y30LB12*/ 01691000 * THEN /* @Y30LB12*/ 01692000 CLC MPIDENT(5),@CC00366 0392 01693000 BE @RF00392 0392 01694000 * DO; /* @Y30LB12*/ 01695000 * CALL DOMPCPU; /* SET PTR TO OTHER @Y30LB12*/ 01696000 BAL @14,DOMPCPU 0394 01697000 * END; /* MPCPU @Y30LB12*/ 01698000 * ELSE 0396 01699000 * ; /* @Y30LB12*/ 01700000 @RF00392 DS 0H 0397 01701000 * END HAVEHIT; /* RET. TO FINDCPU @Y30LB12*/ 01702000 @EL00015 DS 0H 0397 01703000 @EF00015 DS 0H 0397 01704000 @ER00015 LM @14,@12,@SA00015 0397 01705000 BR @14 0397 01706000 * 0398 01707000 */********************************************************** @Y30LB12*/ 01708000 */* @Y30LB12*/ 01709000 */* PROCEDURE NAME - DOMPCPU @Y30LB12*/ 01710000 */* @Y30LB12*/ 01711000 */* FUNCTION - INDEX THROUGH THE ENTRIES IN THE CPUASSOC @Y30LB12*/ 01712000 */* TABLE TO SEE IF THE CPUID OF THE TOMPCPU @Y30LB12*/ 01713000 */* ALREADY APPEARS IN THE TABLE BECAUSE IT WAS @Y30LB12*/ 01714000 */* PREVIOUSLY REFERENCED. IF THE ENTRY IS NOT @Y30LB12*/ 01715000 */* ALREADY IN THE TABLE, PICK UP THE NEXT @Y30LB12*/ 01716000 */* AVAILABLE ENTRY AND ASSIGN IT THE CPUID OF @Y30LB12*/ 01717000 */* THE TOMPCPU. IF THE MAXIMUM NUMBER OF @Y30LB12*/ 01718000 */* OF SUPPORTED CPUS HAS BEEN EXCEEDED, WRITE @Y30LB12*/ 01719000 */* MESSAGE ICGDS224. @Y30LB12*/ 01720000 */* @Y30LB12*/ 01721000 */********************************************************** @Y30LB12*/ 01722000 * 0398 01723000 *DOMPCPU: 0398 01724000 * PROCEDURE; /* @Y30LB12*/ 01725000 DOMPCPU STM @14,@12,@SA00016 0398 01726000 * DO I=1 TO CPUNUM; /* CURRENT NO. CPUS @Y30LB12*/ 01727000 * 0399 01728000 LA I,1 0399 01729000 B @DE00399 0399 01730000 @DL00399 DS 0H 0400 01731000 * /***************************************************************/ 01732000 * /* */ 01733000 * /* ******************************************* @YD00113*/ 01734000 * /* TEST CPUID TO DETERMINE IF IT IS ALREADY @YD00113*/ 01735000 * /* ENTERED IN THE TABLE. IF YES, SET TOMPCPU @YD00113*/ 01736000 * /* FIELD IN CPUASSOC TABLE TO POINT TO THE LAST @YD00113*/ 01737000 * /* CPU INDEX NUMBER @YD00113*/ 01738000 * /* ******************************************* @YD00113*/ 01739000 * /* */ 01740000 * /***************************************************************/ 01741000 * 0400 01742000 * IF CPUID(I)=MPIDENT /* IF MATCH @Y30LB12*/ 01743000 * THEN /* @Y30LB12*/ 01744000 LR @10,I 0400 01745000 SLA @10,3 0400 01746000 ALR @10,R4 0400 01747000 CLC CPUID-8(5,@10),MPIDENT 0400 01748000 BNE @RF00400 0400 01749000 * DO; /* @Y30LB12*/ 01750000 * TOMPCPU(INDEX)=I-1; /* PTR TO OTHER CPU @Y30LB12*/ 01751000 LH @10,INDEX 0402 01752000 SLA @10,3 0402 01753000 LR @05,I 0402 01754000 BCTR @05,0 0402 01755000 STC @05,TOMPCPU-8(@10,R4) 0402 01756000 * RETURN; /* HAVE PTR, RETURN @Y30LB12*/ 01757000 @EL00016 DS 0H 0403 01758000 @EF00016 DS 0H 0403 01759000 @ER00016 LM @14,@12,@SA00016 0403 01760000 BR @14 0403 01761000 * END; /* @Y30LB12*/ 01762000 * ELSE 0405 01763000 * ; /* @Y30LB12*/ 01764000 @RF00400 DS 0H 0406 01765000 * END; /* TO CURRENT CPUNUM @Y30LB12*/ 01766000 * 0406 01767000 AH I,@CH00042 0406 01768000 @DE00399 CH I,CPUNUM(,R4) 0406 01769000 BNH @DL00399 0406 01770000 * /*****************************************************************/ 01771000 * /* */ 01772000 * /* ******************************************* @YD00113*/ 01773000 * /* DETERMINE IF THE CURRENT NUMBER OF CPU'S @YD00113*/ 01774000 * /* IS GREATER THAN THE MAXIMUM NUMBER OF CPU'S @YD00113*/ 01775000 * /* SUPPORTED. IF NOT, STORE THE CPUID FIELD AND @YD00113*/ 01776000 * /* SET 'TOMPCPU' FIELD TO POINT TO OTHER CPU @YD00113*/ 01777000 * /* ******************************************* @YD00113*/ 01778000 * /* */ 01779000 * /*****************************************************************/ 01780000 * 0407 01781000 * IF CPUNUM>=MAXCPU /* IS MAX EXCEEDED @Y30LB12*/ 01782000 * THEN /* IF YES, WRITE MSG @Y30LB12*/ 01783000 LH @10,CPUNUM(,R4) 0407 01784000 CH @10,MAXCPU 0407 01785000 BL @RF00407 0407 01786000 * DO; /* @Y30LB12*/ 01787000 * 0408 01788000 * /*************************************************************/ 01789000 * /* */ 01790000 * /* ***************************************** @Y30LB12*/ 01791000 * /* ICG224I MAXIMUM NUMBER OF SUPPORTED @Y30LB12*/ 01792000 * /* CPUS EXCEEDED. @Y30LB12*/ 01793000 * /* ***************************************** @Y30LB12*/ 01794000 * /* */ 01795000 * /*************************************************************/ 01796000 * 0409 01797000 * MSGNO=ICG224I; /* IDENT FOR ICG224I @Y30LB12*/ 01798000 MVC MSGNO(2,R4),ICG224I 0409 01799000 * CALL PUTIT2; /* TO MESSAGE WRITER @Y30LB12*/ 01800000 BAL @14,PUTIT2 0410 01801000 * END; /* @Y30LB12*/ 01802000 * ELSE /* @Y30LB12*/ 01803000 * DO; /* @Y30LB12*/ 01804000 B @RC00407 0412 01805000 @RF00407 DS 0H 0413 01806000 * CPUNUM=CPUNUM+1; /* PTR, NEXT ENTRY @Y30LB12*/ 01807000 LA @10,1 0413 01808000 AH @10,CPUNUM(,R4) 0413 01809000 STH @10,CPUNUM(,R4) 0413 01810000 * CPUID(CPUNUM)=MPIDENT; /* SET CPUID @Y30LB12*/ 01811000 LR @05,@10 0414 01812000 SLA @05,3 0414 01813000 ALR @05,R4 0414 01814000 MVC CPUID-8(5,@05),MPIDENT 0414 01815000 * TOMPCPU(INDEX)=CPUNUM-1; /* PTR OTHER CPU @Y30LB12*/ 01816000 LH @05,INDEX 0415 01817000 SLA @05,3 0415 01818000 BCTR @10,0 0415 01819000 STC @10,TOMPCPU-8(@05,R4) 0415 01820000 * END; /* @Y30LB12*/ 01821000 * END DOMPCPU; /* RET. TO HAVEHIT @Y30LB12*/ 01822000 B @EL00016 0417 01823000 * 0418 01824000 */********************************************************** @Y30LB12*/ 01825000 */* @Y30LB12*/ 01826000 */* PROCEDURE NAME - CPUCONV @Y30LB12*/ 01827000 */* @Y30LB12*/ 01828000 */* FUNCTION - CONVERT MANUFACTURER'S IDENTIFICATION FROM @Y30LB12*/ 01829000 */* CHARACTER REPRESENTATION TO PACKED. THEN @YD00113*/ 01830000 */* CALL CPUCHECK TO DETERMINE THAT ALL DATA IS @YD00113*/ 01831000 */* NUMERIC. IF SCANNED DATA EXCEEDS LENGTH @YD00113*/ 01832000 */* LIMIT (10 BYTES), SET ERROR INDICATOR ON @YD00113*/ 01833000 */* AND RETURN TO CALLING PROCEDURE @YD00113*/ 01834000 */* @Y30LB12*/ 01835000 */********************************************************** @Y30LB12*/ 01836000 * 0418 01837000 *CPUCONV: 0418 01838000 * PROCEDURE; /* @Y30LB12*/ 01839000 CPUCONV STM @14,@12,@SA00017 0418 01840000 * IF SCANLEN=10 /* SET BY ICGDSS99 @Y30LB12*/ 01841000 * THEN /* @Y30LB12*/ 01842000 CLC SCANLEN(2,R4),@CH00311 0419 01843000 BNE @RF00419 0419 01844000 * DO; /* @Y30LB12*/ 01845000 * UNPACKED(1:10)=SCANDATA(1:10);/* @Y30LB12*/ 01846000 L @10,STARTCOL(,R4) 0421 01847000 MVC UNPACKED(10),SCANDATA(@10) 0421 01848000 * UNPACKED(11)='F0'X; /* @Y30LB12*/ 01849000 MVI UNPACKED+10,X'F0' 0422 01850000 * GEN(PACK PACKED(6),UNPACKED(11));/* @Y30LB12*/ 01851000 PACK PACKED(6),UNPACKED(11) 01852000 * CALL CPUCHECK; 0424 01853000 BAL @14,CPUCHECK 0424 01854000 * END; /* @Y30LB12*/ 01855000 * ELSE /* IF LENGTH WRONG, @Y30LB12*/ 01856000 * ERROR='1'B; /* SET ERROR FLAG @Y30LB12*/ 01857000 B @RC00419 0426 01858000 @RF00419 OI ERROR,B'00000100' 0426 01859000 * END CPUCONV; /* RETURN TO CALLER @Y30LB12*/ 01860000 @EL00017 DS 0H 0427 01861000 @EF00017 DS 0H 0427 01862000 @ER00017 LM @14,@12,@SA00017 0427 01863000 BR @14 0427 01864000 * 0428 01865000 */********************************************************** @Y30LB12*/ 01866000 */* @Y30LB12*/ 01867000 */* PROCEDURE NAME - CPUCHECK @Y30LB12*/ 01868000 */* @Y30LB12*/ 01869000 */* FUNCTION - CHECK EACH CHARACTER OF CPUID FOR A NUMERIC @Y30LB12*/ 01870000 */* DIGIT IN THE RANGE 0-9. IF FIELD IS ALL @YD00113*/ 01871000 */* NUMERIC, RETURN TO CPUCONV WITH FLAG 'HAVENUM'@YD00113*/ 01872000 */* SET ON. IF ANY NON-NUMERIC DATA IS FOUND, @YD00113*/ 01873000 */* ISSUE ERROR MESSAGE VIA PUTIT1 AND RETURN TO @YD00113*/ 01874000 */* CPUCONV @YD00113*/ 01875000 */* @Y30LB12*/ 01876000 */********************************************************** @Y30LB12*/ 01877000 * 0428 01878000 *CPUCHECK: 0428 01879000 * PROCEDURE; /* @Y30LB12*/ 01880000 CPUCHECK STM @14,@12,@SA00018 0428 01881000 * DO I=1 TO 10; /* INDEX TO SCANDATA @Y30LB12*/ 01882000 LA I,1 0429 01883000 @DL00429 DS 0H 0430 01884000 * HAVENUM='0'B; /* FOUND NUMBER FLAG @Y30LB12*/ 01885000 NI HAVENUM,B'11111101' 0430 01886000 * DO J=1 TO 10; /* INDEX TO NUMBERS @Y30LB12*/ 01887000 LA J,1 0431 01888000 @DL00431 DS 0H 0432 01889000 * IF SCANDATA(I)=PATTERN(J) /* IF MATCH @Y30LB12*/ 01890000 * THEN /* @Y30LB12*/ 01891000 L @10,STARTCOL(,R4) 0432 01892000 LR @05,J 0432 01893000 SLA @05,2 0432 01894000 AL @10,@CF00493 0432 01895000 SLR @15,@15 0432 01896000 IC @15,SCANDATA(I,@10) 0432 01897000 C @15,PATTERN-4(@05) 0432 01898000 BNE @RF00432 0432 01899000 * HAVENUM='1'B; /* SET FOUND MATCH @Y30LB12*/ 01900000 OI HAVENUM,B'00000010' 0433 01901000 * ELSE 0434 01902000 * ; /* @Y30LB12*/ 01903000 @RF00432 DS 0H 0435 01904000 * END; /* ALL VALID NUMBERS @Y30LB12*/ 01905000 AH J,@CH00042 0435 01906000 CH J,@CH00311 0435 01907000 BNH @DL00431 0435 01908000 * IF HAVENUM^='1'B /* NO MATCH FOUND @Y30LB12*/ 01909000 * THEN /* @Y30LB12*/ 01910000 TM HAVENUM,B'00000010' 0436 01911000 BO @RF00436 0436 01912000 * DO; /* @Y30LB12*/ 01913000 * 0437 01914000 * /***********************************************************/ 01915000 * /* */ 01916000 * /* ***************************************** @Y30LB12*/ 01917000 * /* ICG223I VALUE ERROR FOR XXXXXXXX @Y30LB12*/ 01918000 * /* ***************************************** @Y30LB12*/ 01919000 * /* */ 01920000 * /***********************************************************/ 01921000 * 0438 01922000 * OUTBUF2(1:25)=ICGDS223; /* @Y30LB12*/ 01923000 MVC OUTBUF2(25,R4),ICGDS223 0438 01924000 * OUTBUF2(26:30)=PLUGIN; /* @Y30LB12*/ 01925000 MVC OUTBUF2+25(5,R4),PLUGIN 0439 01926000 * CALL PUTIT1; /* TO MESSAGE WRITER @Y30LB12*/ 01927000 BAL @14,PUTIT1 0440 01928000 * RETURN; /* STOP CHECKING @Y30LB12*/ 01929000 @EL00018 DS 0H 0441 01930000 @EF00018 DS 0H 0441 01931000 @ER00018 LM @14,@12,@SA00018 0441 01932000 BR @14 0441 01933000 * END; /* @Y30LB12*/ 01934000 * ELSE 0443 01935000 * ; /* @Y30LB12*/ 01936000 @RF00436 DS 0H 0444 01937000 * END; /* CHECKED ALL CHARS @Y30LB12*/ 01938000 AH I,@CH00042 0444 01939000 CH I,@CH00311 0444 01940000 BNH @DL00429 0444 01941000 * END CPUCHECK; /* RETURN TO CPUCONV @Y30LB12*/ 01942000 B @EL00018 0445 01943000 * 0446 01944000 */***********************************************************@Y30LB12*/ 01945000 */* @Y30LB12*/ 01946000 */* PROCEDURE NAME - READS99 @Y30LB12*/ 01947000 */* @Y30LB12*/ 01948000 */* FUNCTION - CALL SCAN READ KEYWORD/PARAMETER SUBROUTINE @Y30LB12*/ 01949000 */* ICGDSS99. PICK UP STARTING COLUMN FOR THIS @Y30LB12*/ 01950000 */* SCAN AND STARTING COLUMN FOR NEXT ENTRY INTO @Y30LB12*/ 01951000 */* ICGDSS99. IF TERMINATING ERROR OCCURS IN @Y30LB12*/ 01952000 */* ICGDSS99, SET 'LASTPARM' TO TERMINATE IN THIS @Y30LB12*/ 01953000 */* MODULE ON NEXT READ OF KEYWORD @Y30LB12*/ 01954000 */* @Y30LB12*/ 01955000 */***********************************************************@Y30LB12*/ 01956000 * 0446 01957000 *READS99: 0446 01958000 * PROCEDURE; /* @Y30LB12*/ 01959000 READS99 STM @14,@12,@SA00019 0446 01960000 * GEN(LINK EP=ICGDSS99); /* TO SCAN KEYWORD/PARAMETER */ 01961000 * 0447 01962000 LINK EP=ICGDSS99 01963000 * /*****************************************************************/ 01964000 * /* */ 01965000 * /* ************************************************@Y30LB12 IF */ 01966000 * /* 'ENDSCAN' BIT IS ON, WE ENCOUNTERED SOME @Y30LB12*/ 01967000 * /* DISASTEROUS CONDITION THAT TERMINATED THE SCAN @Y30LB12*/ 01968000 * /* OF THIS CONTROL STATEMENT. THERE ERRORS ARE @Y30LB12*/ 01969000 * /* ASSOCIATED WITH SCANNING INTO COLUMN 73 AND @Y30LB12*/ 01970000 * /* WITH FINDING A FORMAT ERROR IN THE @Y30LB12*/ 01971000 * /* CONTINUATION STATEMENT. SHOULD SUCH A @Y30LB12*/ 01972000 * /* CONDITION OCCUR, WE TERMINATE SCAN OF THE @Y30LB12*/ 01973000 * /* CONTROL STATEMENT UPON READ OF THE NEXT @Y30LB12*/ 01974000 * /* KEYWORD. @Y30LB12*/ 01975000 * /* ************************************************@Y30LB12 */ 01976000 * /* */ 01977000 * /*****************************************************************/ 01978000 * 0448 01979000 * IF ENDSCAN='1'B /* @Y30LB12*/ 01980000 * THEN /* @Y30LB12*/ 01981000 TM ENDSCAN(R4),B'00010000' 0448 01982000 BNO @RF00448 0448 01983000 * LASTPARM='1'B; /* @Y30LB12*/ 01984000 OI LASTPARM(R4),B'00001000' 0449 01985000 * ELSE 0450 01986000 * ; /* @Y30LB12*/ 01987000 @RF00448 DS 0H 0451 01988000 * END READS99; /* @Y30LB12*/ 01989000 @EL00019 DS 0H 0451 01990000 @EF00019 DS 0H 0451 01991000 @ER00019 LM @14,@12,@SA00019 0451 01992000 BR @14 0451 01993000 * 0452 01994000 */***********************************************************@Y30LB12*/ 01995000 */* @Y30LB12*/ 01996000 */* PROCEDURE NAME - PUTIT1 @Y30LB12*/ 01997000 */* @Y30LB12*/ 01998000 */* FUNCTION - CALL ICGDSMSG, MESSAGE PRINT SUBROUTINE, TO @Y30LB12*/ 01999000 */* PUT TERMINATING MESSAGE FOR WHICH TEXT IS NOT @Y30LB12*/ 02000000 */* IN ICGDSMSG BUT ALREADY BUILT IN 'OUTBUF2' @Y30LB12*/ 02001000 */* @Y30LB12*/ 02002000 */***********************************************************@Y30LB12*/ 02003000 * 0452 02004000 *PUTIT1: 0452 02005000 * PROCEDURE; /* @Y30LB12*/ 02006000 PUTIT1 STM @14,@12,@SA00020 0452 02007000 * STOPSCAN='1'B; /* @Y30LB12*/ 02008000 OI STOPSCAN,B'00001000' 0453 02009000 * PRNTBUF2='1'B; /* @Y30LB12*/ 02010000 OI PRNTBUF2(R4),B'00000001' 0454 02011000 * TERMINAT=TERMINAT+1; /* @Y30LB12*/ 02012000 LA @10,1 0455 02013000 AH @10,TERMINAT(,R4) 0455 02014000 STH @10,TERMINAT(,R4) 0455 02015000 * GEN(LINK EP=ICGDSMSG); /* @Y30LB12*/ 02016000 LINK EP=ICGDSMSG 02017000 * PRNTBUF2='0'B; /* @Y30LB12*/ 02018000 NI PRNTBUF2(R4),B'11111110' 0457 02019000 * END PUTIT1; /* @Y30LB12*/ 02020000 @EL00020 DS 0H 0458 02021000 @EF00020 DS 0H 0458 02022000 @ER00020 LM @14,@12,@SA00020 0458 02023000 BR @14 0458 02024000 * 0459 02025000 */***********************************************************@Y30LB12*/ 02026000 */* @Y30LB12*/ 02027000 */* PROCEDURE NAME - PUTIT2 @Y30LB12*/ 02028000 */* @Y30LB12*/ 02029000 */* FUNCTION - CALL ICGDSMSG, MESSAGE PRINT SUBROUTINE, TO @Y30LB12*/ 02030000 */* PUT TERMINATING MESSAGE FOR WHICH MESSAGE @Y30LB12*/ 02031000 */* TEXT IS IN ICGDSMSG. 'MSGNO' INDICATES THE @Y30LB12*/ 02032000 */* OFFSET OF THE MESSAGE TEXT. @Y30LB12*/ 02033000 */* @Y30LB12*/ 02034000 */***********************************************************@Y30LB12*/ 02035000 * 0459 02036000 *PUTIT2: 0459 02037000 * PROCEDURE; /* @Y30LB12*/ 02038000 PUTIT2 STM @14,@12,@SA00021 0459 02039000 * STOPSCAN='1'B; /* @Y30LB12*/ 02040000 OI STOPSCAN,B'00001000' 0460 02041000 * TERMINAT=TERMINAT+1; /* @Y30LB12*/ 02042000 LA @10,1 0461 02043000 AH @10,TERMINAT(,R4) 0461 02044000 STH @10,TERMINAT(,R4) 0461 02045000 * GEN(LINK EP=ICGDSMSG); /* @Y30LB12*/ 02046000 LINK EP=ICGDSMSG 02047000 * END PUTIT2; /* @Y30LB12*/ 02048000 @EL00021 DS 0H 0463 02049000 @EF00021 DS 0H 0463 02050000 @ER00021 LM @14,@12,@SA00021 0463 02051000 BR @14 0463 02052000 * 0464 02053000 */********************************************************** @Y30LB12*/ 02054000 */* @Y30LB12*/ 02055000 */* P A T C H A R E A @Y30LB12*/ 02056000 */* @Y30LB12*/ 02057000 */********************************************************** @Y30LB12*/ 02058000 * 0464 02059000 * GENERATE; 0464 02060000 * /*@Y30LB12*/ 02061000 PATCHS02 DC 32C'PATCHS02' /*@Y30LB12*/ 02062000 * END ICGDSS02 /* @Y30LB12*/ 02063000 * 0465 02064000 */* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM. */ 02065000 */*%INCLUDE SYSLIB (ICGDSMAC) */ 02066000 */*%INCLUDE SYSLIB (ICGDSMA1) */ 02067000 */*%INCLUDE SYSLIB (ICGDSMA2) */ 02068000 */*%INCLUDE SYSLIB (ICGDSMA3) */ 02069000 * 0465 02070000 * ; 0465 02071000 B @EL00001 0465 02072000 @DATA DS 0H 02073000 @CH00042 DC H'1' 02074000 @CH00048 DC H'3' 02075000 @CH00068 DC H'4' 02076000 @CH00311 DC H'10' 02077000 @DATD DSECT 02078000 DS 0F 02079000 @SA00001 DS 18F 02080000 @SA00003 DS 15F 02081000 @SA00010 DS 15F 02082000 @SA00011 DS 15F 02083000 @SA00019 DS 15F 02084000 @SA00021 DS 15F 02085000 @SA00004 DS 15F 02086000 @SA00005 DS 15F 02087000 @SA00006 DS 15F 02088000 @SA00007 DS 15F 02089000 @SA00008 DS 15F 02090000 @SA00009 DS 15F 02091000 @SA00020 DS 15F 02092000 @SA00017 DS 15F 02093000 @SA00012 DS 15F 02094000 @SA00013 DS 15F 02095000 @SA00014 DS 15F 02096000 @SA00015 DS 15F 02097000 @SA00016 DS 15F 02098000 @SA00018 DS 15F 02099000 @TF00001 DS F 02100000 @ZTEMPS DS C 02101000 @ZTEMPND EQU * 02102000 @ZLEN EQU @ZTEMPND-@ZTEMPS 02103000 ICGDSS02 CSECT 02104000 DS 0F 02105000 @CF00493 DC F'-1' 02106000 @DATD DSECT 02107000 DS 0D 02108000 INDEX DS H 02109000 CPUWORKA DS CL15 02110000 ORG CPUWORKA 02111000 CPUIDENT DS CL5 02112000 MPIDENT DS CL5 02113000 NUMBER DS FL2 02114000 HAVES DS CL1 02115000 ORG HAVES 02116000 @NM00020 DS BL1 02117000 HAVESLOT EQU HAVES+0 02118000 HAVEMSC EQU HAVES+0 02119000 KNOWN EQU HAVES+0 02120000 STOPSCAN EQU HAVES+0 02121000 ERROR EQU HAVES+0 02122000 HAVENUM EQU HAVES+0 02123000 HAVOPSYS EQU HAVES+0 02124000 ORG CPUWORKA+13 02125000 FLAG1 DS CL1 02126000 ORG FLAG1 02127000 @NM00021 DS BL1 02128000 HAVEMP EQU FLAG1+0 02129000 HAVEALT EQU FLAG1+0 02130000 OPSYS EQU FLAG1+0 02131000 ORG OPSYS 02132000 VS1SYS EQU OPSYS+0 02133000 VS2SYS EQU OPSYS+0 02134000 JES3 EQU OPSYS+0 02135000 ORG FLAG1+0 02136000 MSCINT EQU FLAG1+0 02137000 ORG CPUWORKA+14 02138000 FLAG2 DS CL1 02139000 ORG FLAG2 02140000 HAVEID DS BL1 02141000 @NM00022 EQU FLAG2+0 02142000 HAVEBUF EQU FLAG2+0 02143000 @NM00023 EQU FLAG2+0 02144000 ALTINT EQU FLAG2+0 02145000 ORG CPUWORKA+15 02146000 UNPACKED DS CL11 02147000 PACKED DS CL6 02148000 PLUGIN DS CL5 02149000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 02150000 @ENDDATD EQU * 02151000 ICGDSS02 CSECT 02152000 DS 0F 02153000 @SIZDATD DC AL1(0) 02154000 DC AL3(@ENDDATD-@DATD) 02155000 DS 0D 02156000 MAXCPU DC XL2'0004' 02157000 ICG209I DC H'209' 02158000 ICG210I DC H'210' 02159000 ICG211I DC H'211' 02160000 ICG213I DC H'213' 02161000 ICG224I DC H'224' 02162000 @CC00376 DC C'MSCINT=' 02163000 @CC00378 DC C'ALTINT=' 02164000 @CC00374 DC C'CPUID=' 02165000 @CC00380 DC C'MPCPU=' 02166000 @CC00382 DC C'OPSYS=' 02167000 @CC00399 EQU @CC00376 02168000 @CC00413 EQU @CC00378 02169000 @CC00366 DC C' ' 02170000 @CC00390 EQU @CC00374 02171000 @CC00417 EQU @CC00380 02172000 @CC00421 EQU @CC00382 02173000 @CC00424 DC C'JES3' 02174000 @CC00422 DC C'VS1' 02175000 @CC00423 DC C'VS2' 02176000 ICGDS219 DC CL27' ICG219I DUPLICATE KEYWORD ' 02177000 ICGDS220 DC CL46' ICG220I INVALID PARAMETER LENGTH, KEYWORD IS ' 02178000 ICGDS221 DC CL34' ICG221I MISSING REQUIRED KEYWORD ' 02179000 ICGDS223 DC CL25' ICS223I VALUE ERROR FOR ' 02180000 ICGDS225 DC CL46' ICG225I CPUID XXXXXXXXXX PREVIOUSLY SPECIFIED' 02181000 DS CL3 02182000 PATTERN DC XL3'0' 02183000 DC C'0' 02184000 DC XL3'0' 02185000 DC C'1' 02186000 DC XL3'0' 02187000 DC C'2' 02188000 DC XL3'0' 02189000 DC C'3' 02190000 DC XL3'0' 02191000 DC C'4' 02192000 DC XL3'0' 02193000 DC C'5' 02194000 DC XL3'0' 02195000 DC C'6' 02196000 DC XL3'0' 02197000 DC C'7' 02198000 DC XL3'0' 02199000 DC C'8' 02200000 DC XL3'0' 02201000 DC C'9' 02202000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 02203000 @01 EQU 01 02204000 @02 EQU 02 02205000 @03 EQU 03 02206000 @04 EQU 04 02207000 @05 EQU 05 02208000 @06 EQU 06 02209000 @07 EQU 07 02210000 @08 EQU 08 02211000 @09 EQU 09 02212000 @10 EQU 10 02213000 @11 EQU 11 02214000 @12 EQU 12 02215000 @13 EQU 13 02216000 @14 EQU 14 02217000 @15 EQU 15 02218000 J EQU @03 02219000 I EQU @02 02220000 R4 EQU @04 02221000 COMTAB EQU 0 02222000 READER EQU COMTAB+256 02223000 READFLAG EQU READER+96 02224000 KEYBIT EQU READFLAG 02225000 PARMBIT EQU READFLAG 02226000 ENDSCAN EQU READFLAG 02227000 LASTPARM EQU READFLAG 02228000 PCHBF EQU READER+99 02229000 STARTCOL EQU READER+180 02230000 NEXTCOL EQU READER+184 02231000 SCANLEN EQU READER+204 02232000 PRINTER EQU COMTAB+464 02233000 OUTBUF2 EQU PRINTER+225 02234000 MESSAGES EQU COMTAB+810 02235000 MSGNO EQU MESSAGES+2 02236000 TERMINAT EQU MESSAGES+6 02237000 SPECLMSG EQU MESSAGES+18 02238000 PRNTBUF2 EQU SPECLMSG 02239000 GENIO EQU COMTAB+832 02240000 DCBPTR EQU GENIO+4 02241000 COMPTR2 EQU GENIO+16 02242000 INVOKED EQU COMTAB+856 02243000 SAVEDDS EQU INVOKED+4 02244000 BUILDRSG EQU COMTAB+900 02245000 RSGS EQU BUILDRSG 02246000 RSG EQU RSGS 02247000 RSGABOX EQU RSG 02248000 RSGTODS EQU RSG+7 02249000 LIBRARY EQU COMTAB+1170 02250000 LIBS EQU LIBRARY 02251000 LIB EQU LIBS 02252000 LIBBITS EQU LIB 02253000 PABTABLE EQU COMTAB+1218 02254000 PABDEV EQU PABTABLE 02255000 PABFLAGS EQU PABDEV 02256000 PABREAL EQU PABDEV+1 02257000 PABAADDD EQU PABDEV+2 02258000 DSPAIRS EQU COMTAB+1938 02259000 PHYSTYPE EQU COMTAB+2002 02260000 PHYSFLGS EQU PHYSTYPE 02261000 MERLICEB EQU PHYSFLGS 02262000 CPUASSOC EQU COMTAB+3026 02263000 CPUNUM EQU CPUASSOC 02264000 CPUS EQU CPUASSOC+2 02265000 CPU EQU CPUS 02266000 CPUID EQU CPU 02267000 TOMPCPU EQU CPU+5 02268000 CPUFLAG1 EQU CPU+6 02269000 OPSYSTYP EQU CPUFLAG1 02270000 CPUFLAG2 EQU CPU+7 02271000 CPUSPEC EQU CPUFLAG2 02272000 LOWERCON EQU COMTAB+3156 02273000 LOWDSS EQU LOWERCON 02274000 LOWFLGS EQU LOWDSS 02275000 LIBCTL EQU COMTAB+3284 02276000 LIBCTLS EQU LIBCTL 02277000 CREATE EQU COMTAB+3288 02278000 @NM00017 EQU CREATE 02279000 COMTAB2 EQU 0 02280000 DSTORSG EQU COMTAB2 02281000 DSENTRY EQU DSTORSG 02282000 CONFGCON EQU COMTAB2+32 02283000 RSGUCB EQU CONFGCON 02284000 RSGFLAGS EQU RSGUCB 02285000 CONFGUCB EQU COMTAB2+464 02286000 CONFGDEV EQU CONFGUCB 02287000 USEFLAGS EQU CONFGDEV 02288000 ALTPATH1 EQU CONFGDEV+2 02289000 ALTPATH2 EQU CONFGDEV+5 02290000 ALTPATH3 EQU CONFGDEV+8 02291000 SCANDATA EQU 0 02292000 SCANBUF EQU 0 02293000 AGO .@UNREFD START UNREFERENCED COMPONENTS 02294000 ALTCH3 EQU ALTPATH3+2 02295000 ALTCI3 EQU ALTPATH3+1 02296000 ALTDS3 EQU ALTPATH3 02297000 ALTCH2 EQU ALTPATH2+2 02298000 ALTCI2 EQU ALTPATH2+1 02299000 ALTDS2 EQU ALTPATH2 02300000 ALTCH1 EQU ALTPATH1+2 02301000 ALTCI1 EQU ALTPATH1+1 02302000 ALTDS1 EQU ALTPATH1 02303000 INDEXRSG EQU CONFGDEV+1 02304000 ICEBERG EQU USEFLAGS 02305000 ITISALTP EQU USEFLAGS 02306000 USECONVR EQU USEFLAGS 02307000 SUPPUNCH EQU USEFLAGS 02308000 USEREAL EQU USEFLAGS 02309000 USEVS EQU USEFLAGS 02310000 USEV EQU USEFLAGS 02311000 USESPEC EQU USEFLAGS 02312000 RSGCUA EQU RSGUCB+8 02313000 RSGCHAN EQU RSGUCB+7 02314000 CPUREFNO EQU RSGUCB+6 02315000 RSGCPUID EQU RSGUCB+1 02316000 @NM00019 EQU RSGFLAGS 02317000 CISPEC EQU RSGFLAGS 02318000 TORSG2 EQU DSENTRY+1 02319000 TORSG1 EQU DSENTRY 02320000 COM2BASE EQU COMTAB+3304 02321000 LRUCLOCK EQU CREATE+11 02322000 VOLSER EQU CREATE+5 02323000 VPAGES EQU CREATE+1 02324000 @NM00018 EQU @NM00017 02325000 PRNTONLY EQU @NM00017 02326000 UPDCREAT EQU @NM00017 02327000 NEWCREAT EQU @NM00017 02328000 CMDCREAT EQU @NM00017 02329000 RW67RGHT EQU LIBCTLS 02330000 RW67LEFT EQU LIBCTLS 02331000 RW45RGHT EQU LIBCTLS 02332000 RW45LEFT EQU LIBCTLS 02333000 RW23RGHT EQU LIBCTLS 02334000 RW23LEFT EQU LIBCTLS 02335000 RW01RGHT EQU LIBCTLS 02336000 RW01LEFT EQU LIBCTLS 02337000 LOWLIB EQU LOWDSS+1 02338000 @NM00016 EQU LOWFLGS 02339000 LOWRGHT EQU LOWFLGS 02340000 LOWLEFT EQU LOWFLGS 02341000 LOWRW67 EQU LOWFLGS 02342000 LOWRW45 EQU LOWFLGS 02343000 LOWRW23 EQU LOWFLGS 02344000 LOWRW01 EQU LOWFLGS 02345000 LOWSPEC EQU LOWFLGS 02346000 ALTMSCIN EQU CPUFLAG2 02347000 @NM00015 EQU CPUFLAG2 02348000 ALTMSGBF EQU CPUFLAG2 02349000 @NM00014 EQU CPUFLAG2 02350000 CPUMSCIN EQU CPUFLAG1 02351000 OPJES3 EQU OPSYSTYP 02352000 OPVS2 EQU OPSYSTYP 02353000 OPVS1 EQU OPSYSTYP 02354000 CPUALTFL EQU CPUFLAG1 02355000 CPUTIGHT EQU CPUFLAG1 02356000 @NM00013 EQU CPUFLAG1 02357000 SPNRSGNO EQU PHYSTYPE+1 02358000 LGDEVICE EQU PHYSFLGS 02359000 LOGABOX1 EQU PHYSFLGS 02360000 PHYSSSID EQU PHYSFLGS 02361000 PHYSREAL EQU PHYSFLGS 02362000 PHYSICEB EQU MERLICEB 02363000 PHYSMERL EQU MERLICEB 02364000 PHYSDS2 EQU DSPAIRS 02365000 PABDDD EQU PABAADDD 02366000 PABAA EQU PABAADDD 02367000 PABZEROS EQU PABAADDD 02368000 PAB2D EQU PABREAL 02369000 PAB2C EQU PABREAL 02370000 PAB2B EQU PABREAL 02371000 @NM00012 EQU PABREAL 02372000 PAB1D EQU PABREAL 02373000 PAB1C EQU PABREAL 02374000 PAB1B EQU PABREAL 02375000 PABIMPLR EQU PABREAL 02376000 PABBERG2 EQU PABFLAGS 02377000 @NM00011 EQU PABFLAGS 02378000 PABDSMTL EQU PABFLAGS 02379000 PABIBERG EQU PABFLAGS 02380000 @NM00010 EQU PABFLAGS 02381000 PABVOVIR EQU PABFLAGS 02382000 PABEXIST EQU PABFLAGS 02383000 MAPEXIT EQU LIB+4 02384000 LIBMAP EQU LIB+3 02385000 LIBDSMID EQU LIB+2 02386000 LIBSIZE EQU LIB+1 02387000 @NM00009 EQU LIBBITS 02388000 LIBSPEC EQU LIBBITS 02389000 TODS2 EQU RSGTODS+1 02390000 TODS1 EQU RSGTODS 02391000 RSGSLICE EQU RSG+3 02392000 RSGUDEL EQU RSG+2 02393000 RSGLDEL EQU RSG+1 02394000 @NM00008 EQU RSG 02395000 RSGABOX1 EQU RSGABOX 02396000 RSGABOX0 EQU RSGABOX 02397000 RSGSPEC EQU RSG 02398000 SVSYSUT3 EQU SAVEDDS+32 02399000 SVSYSUT2 EQU SAVEDDS+24 02400000 SVSYSUT1 EQU SAVEDDS+16 02401000 SVSYSPCH EQU SAVEDDS+8 02402000 SVSYSIN EQU SAVEDDS 02403000 PARMPTR EQU INVOKED 02404000 BUILDPTR EQU GENIO+20 02405000 SAVE14 EQU GENIO+12 02406000 EXLST EQU GENIO+8 02407000 @NM00007 EQU DCBPTR+1 02408000 DCBFLAG EQU DCBPTR 02409000 OPENLIST EQU GENIO 02410000 @NM00006 EQU MESSAGES+19 02411000 NEEDEOJ EQU SPECLMSG 02412000 ENDPHASE EQU SPECLMSG 02413000 @NM00005 EQU SPECLMSG 02414000 PRNTCARD EQU SPECLMSG 02415000 @NM00004 EQU SPECLMSG 02416000 NEED102 EQU SPECLMSG 02417000 NEED101 EQU SPECLMSG 02418000 PRINTRC EQU MESSAGES+16 02419000 TERM EQU MESSAGES+12 02420000 WARN EQU MESSAGES+8 02421000 WARNING EQU MESSAGES+4 02422000 RETCODE EQU MESSAGES 02423000 OUTBUF EQU PRINTER+104 02424000 LINECT EQU PRINTER+102 02425000 LINECTR EQU PRINTER+100 02426000 PAGENO EQU PRINTER+96 02427000 DCBPRINT EQU PRINTER 02428000 @NM00003 EQU READER+206 02429000 SVEODAD EQU READER+200 02430000 SVSYNAD2 EQU READER+196 02431000 SAVENCOL EQU READER+192 02432000 SAVESCOL EQU READER+188 02433000 INBUF EQU READER+100 02434000 SSELECT EQU PCHBF 02435000 @NM00002 EQU READER+97 02436000 @NM00001 EQU READFLAG 02437000 READTERM EQU READFLAG 02438000 READDCB EQU READER 02439000 PATCH EQU COMTAB 02440000 .@UNREFD ANOP END UNREFERENCED COMPONENTS 02441000 @RT00045 EQU @EL00003 02442000 @RC00109 EQU @EL00004 02443000 @RC00245 EQU @EL00007 02444000 @RC00339 EQU @EL00011 02445000 @RC00359 EQU @RC00358 02446000 @RC00379 EQU @EL00014 02447000 @RC00407 EQU @EL00016 02448000 @RC00419 EQU @EL00017 02449000 @ENDDATA EQU * 02450000 END ICGDSS02,(C'PLS2348',0603,76340) 02451000