TITLE ' /* IRBMFDTA DATA CONTROL *00001000 ' 00002000 IRBMFDTA CSECT , 0001 00003000 @MAINENT DS 0H 0001 00004000 USING *,@15 0001 00005000 B @PROLOG 0001 00006000 DC AL1(16) 0001 00007000 DC C'IRBMFDTA 74.339' 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 MVC @PC00001(16),0(@01) 0001 00022000 * 0020 00023000 * /*****************************************************************/ 00024000 * /* */ 00025000 * /* AUTOMATIC STORAGE INITIALIZATION */ 00026000 * /* */ 00027000 * /*****************************************************************/ 00028000 * 0020 00029000 * DTOPSTOP=CLEAR; /* CLEAR OPERATOR STOP FLAG. */ 00030000 NI DTOPSTOP,B'01111111' 0020 00031000 * DTINTACC=0; /* ELAPSED INTERVAL TIME */ 00032000 SLR DTINTACC,DTINTACC 0021 00033000 * DTESTAPL=DTESTSPL; /* ESTAE MACRO LIST */ 00034000 MVC DTESTAPL(16),DTESTSPL 0022 00035000 * DTATTAPL=DTATTSPL; /* ATTACH MACRO LIST */ 00036000 MVC DTATTAPL(60),DTATTSPL 0023 00037000 * DTEXTAPL=DTEXTSPL; /* EXTRACT MACRO LIST */ 00038000 MVC DTEXTAPL(16),DTEXTSPL 0024 00039000 * GEN; 0025 00040000 * 0025 00041000 * PUT POST MACRO IN AUTOMATIC STORAGE, WHERE IT IS EXECUTED 00042000 MVC DTPOSAPL(DTPOSLPL),DTPOSSPL 00043000 * /*****************************************************************/ 00044000 * /* */ 00045000 * /* FUNCTIONAL CODE ESTABLISH ESTAE ROUTINE */ 00046000 * /* */ 00047000 * /*****************************************************************/ 00048000 * 0026 00049000 * RFY 0026 00050000 * (GPR02P) RSTD; 0026 00051000 * GPR02P=ADDR(MFPCT); /* ESTAE PARAMETER IS PROBLEM 0027 00052000 * CONTROL TABLE (MFPCT) */ 00053000 L GPR02P,@PC00001+12 0027 00054000 * RFY 0028 00055000 * (GPR02P) UNRSTD; 0028 00056000 * 0028 00057000 * /*****************************************************************/ 00058000 * /* */ 00059000 * /* MACDATE Y-2 73018 */ 00060000 * /* */ 00061000 * /*****************************************************************/ 00062000 * 0029 00063000 * RESPECIFY 0029 00064000 * (GPR00P, 0029 00065000 * GPR01P, 0029 00066000 * GPR14P, 0029 00067000 * GPR15P) RESTRICTED; 0029 00068000 * GEN; 0030 00069000 * 0030 00070000 ESTAE PARAM=(2),MF=(E,DTESTAPL) ESTABLISH ESTAE IRBMFDEA 00071000 * /*****************************************************************/ 00072000 * /* */ 00073000 * /* MACDATE Y-2 73018 */ 00074000 * /* */ 00075000 * /*****************************************************************/ 00076000 * 0031 00077000 * RESPECIFY 0031 00078000 * (GPR00P, 0031 00079000 * GPR01P, 0031 00080000 * GPR14P, 0031 00081000 * GPR15P) UNRESTRICTED; 0031 00082000 * 0031 00083000 * /*****************************************************************/ 00084000 * /* */ 00085000 * /* CURRENT TIME IS START OF FIRST MF/1 INTERVAL MACDATE Y-2 73018*/ 00086000 * /* */ 00087000 * /*****************************************************************/ 00088000 * 0032 00089000 * RESPECIFY 0032 00090000 * (GPR00P, 0032 00091000 * GPR01P, 0032 00092000 * GPR14P, 0032 00093000 * GPR15P) RESTRICTED; 0032 00094000 * GEN REFS(MFPCTDSI,DTDWORD); 0033 00095000 * 0033 00096000 TIME STCK,DTDWORD SAVE TOD CLOCK. 00097000 * /*****************************************************************/ 00098000 * /* */ 00099000 * /* MACDATE Y-2 73018 */ 00100000 * /* */ 00101000 * /*****************************************************************/ 00102000 * 0034 00103000 * RESPECIFY 0034 00104000 * (GPR00P, 0034 00105000 * GPR01P, 0034 00106000 * GPR14P, 0034 00107000 * GPR15P) UNRESTRICTED; 0034 00108000 * MFPCTDSI=DTDWORD; /* START OF FIRST INTERVAL. */ 00109000 * 0035 00110000 L @10,@PC00001+12 0035 00111000 MVC MFPCTDSI(8,@10),DTDWORD 0035 00112000 * /*****************************************************************/ 00113000 * /* */ 00114000 * /* ISSUE MESSAGE 'MF/1 ACTIVE' MACDATE Y-2 73018 */ 00115000 * /* */ 00116000 * /*****************************************************************/ 00117000 * 0036 00118000 * RESPECIFY 0036 00119000 * (GPR00P, 0036 00120000 * GPR01P, 0036 00121000 * GPR14P, 0036 00122000 * GPR15P) RESTRICTED; 0036 00123000 * GEN; 0037 00124000 LOAD EP=IRBMFMPR LOAD MESSAGE PROCESSOR */ 00125000 * DTMODEPA=GPR00P; /* SAVE ENTRY POINT ADDRESS */ 00126000 * 0038 00127000 LR DTMODEPA,GPR00P 0038 00128000 * /*****************************************************************/ 00129000 * /* */ 00130000 * /* MACDATE Y-2 73018 */ 00131000 * /* */ 00132000 * /*****************************************************************/ 00133000 * 0039 00134000 * RESPECIFY 0039 00135000 * (GPR00P, 0039 00136000 * GPR01P, 0039 00137000 * GPR14P, 0039 00138000 * GPR15P) UNRESTRICTED; 0039 00139000 * CALL IRBMFMPR(MID100I /* MESSAGE ID. */ 00140000 * ,0 /* NO VARIABLE TEXT */ 00141000 * ,0 /* NO REPLY AREA */ 00142000 * ,0 /* NO MESSAGE DATA SET DCB */ 00143000 * ); 0040 00144000 * 0040 00145000 LR @15,DTMODEPA 0040 00146000 LA @01,@AL00040 0040 00147000 BALR @14,@15 0040 00148000 * /*****************************************************************/ 00149000 * /* */ 00150000 * /* MACDATE Y-2 73018 */ 00151000 * /* */ 00152000 * /*****************************************************************/ 00153000 * 0041 00154000 * RESPECIFY 0041 00155000 * (GPR00P, 0041 00156000 * GPR01P, 0041 00157000 * GPR14P, 0041 00158000 * GPR15P) RESTRICTED; 0041 00159000 * GEN; 0042 00160000 * 0042 00161000 DELETE EP=IRBMFMPR DELETE MESSAGE PROCESSOR */ 00162000 * /*****************************************************************/ 00163000 * /* */ 00164000 * /* MACDATE Y-2 73018 */ 00165000 * /* */ 00166000 * /*****************************************************************/ 00167000 * 0043 00168000 * RESPECIFY 0043 00169000 * (GPR00P, 0043 00170000 * GPR01P, 0043 00171000 * GPR14P, 0043 00172000 * GPR15P) UNRESTRICTED; 0043 00173000 * 0043 00174000 * /*****************************************************************/ 00175000 * /* */ 00176000 * /* SAVE INTERVAL VALUE IN TIME OF DAY CLOCK FORMAT: BIT 51= 1 */ 00177000 * /* MICROSECOND. MACDATE Y-2 73018 */ 00178000 * /* */ 00179000 * /*****************************************************************/ 00180000 * 0044 00181000 * RESPECIFY 0044 00182000 * (GPR00P, 0044 00183000 * GPR01P, 0044 00184000 * GPR14P, 0044 00185000 * GPR15P) RESTRICTED; 0044 00186000 * GPR01P=MFCOINTV; /* MINUTES IN INTERVAL. */ 00187000 L @10,@PC00001+12 0045 00188000 L @10,MFPCCOA(,@10) 0045 00189000 LH GPR01P,MFCOINTV(,@10) 0045 00190000 * GEN REFS(MFCOINTV) SETS(MFPCMINT,DTDWORD); 0046 00191000 M @00,DT60MIL TIMES MICROSECONDS IN 1 MIN 00192000 SLDL @00,12 MOVED TO BIT 51 FROM BIT 63 00193000 STM @00,@01,DTDWORD SAVED IN TEMP AREA. 00194000 * MFPCMINT=DTDWORD; /* INTERVAL LENGTH IN TOD FORMAT.*/ 00195000 L @10,@PC00001+12 0047 00196000 MVC MFPCMINT(8,@10),DTDWORD 0047 00197000 * GEN DATA; 0048 00198000 * 0048 00199000 * /*****************************************************************/ 00200000 * /* */ 00201000 * /* MACDATE Y-2 73018 */ 00202000 * /* */ 00203000 * /*****************************************************************/ 00204000 * 0049 00205000 * RESPECIFY 0049 00206000 * (GPR00P, 0049 00207000 * GPR01P, 0049 00208000 * GPR14P, 0049 00209000 * GPR15P) UNRESTRICTED; 0049 00210000 * 0049 00211000 * /*****************************************************************/ 00212000 * /* */ 00213000 * /* CALCULATE THE NUMBER OF INTERVALS REQUIRED */ 00214000 * /* */ 00215000 * /*****************************************************************/ 00216000 * 0050 00217000 * IF MFCOSTPS^=CNEVER THEN /* IF MF/1 IS REQUESTED TO STOP 00218000 * UNDER PROGRAM CONTROL, (AFTER 00219000 * THE STOP TIME HAS ELAPSED),DO */ 00220000 L @10,@PC00001+12 0050 00221000 L @10,MFPCCOA(,@10) 0050 00222000 TM MFCOSTPS(@10),B'01000000' 0050 00223000 BO @RF00050 0050 00224000 * DO; 0051 00225000 * IF MFCOSTPU=CHOURS THEN /* IF STOP VALUE IS IN HOURS */ 00226000 TM MFCOSTPU(@10),B'00100000' 0052 00227000 BNO @RF00052 0052 00228000 * DTEMPF=CMINHOUR*MFCOSTPV; /* NO OF MINUTES = 60 TIMES IT */ 00229000 LH DTEMPF,MFCOSTPV(,@10) 0053 00230000 MH DTEMPF,@CH00333 0053 00231000 * ELSE /* ELSE */ 00232000 * DTEMPF=MFCOSTPV; /* USE MINUTES INPUT. */ 00233000 * 0054 00234000 B @RC00052 0054 00235000 @RF00052 L @10,@PC00001+12 0054 00236000 L @10,MFPCCOA(,@10) 0054 00237000 LH DTEMPF,MFCOSTPV(,@10) 0054 00238000 * /*************************************************************/ 00239000 * /* */ 00240000 * /* NUMBER OF INTERVALS = STOP DURATION (MIN.) / INTERVAL */ 00241000 * /* LENGTH (MIN.). */ 00242000 * /* */ 00243000 * /*************************************************************/ 00244000 * 0055 00245000 * MFPCNINT=DTEMPF/MFCOINTV; 0055 00246000 @RC00052 L @10,@PC00001+12 0055 00247000 L @08,MFPCCOA(,@10) 0055 00248000 LR @01,DTEMPF 0055 00249000 SLR @00,@00 0055 00250000 LH @08,MFCOINTV(,@08) 0055 00251000 DR @00,@08 0055 00252000 STH @01,MFPCNINT(,@10) 0055 00253000 * END; 0056 00254000 * ELSE /* IF STOP COMMAND WILL BE USED, */ 00255000 * MFPCNINT=CNOINTVL; /* CLEAR INTERVAL COUNT */ 00256000 B @RC00050 0057 00257000 @RF00050 L @10,@PC00001+12 0057 00258000 SLR @08,@08 0057 00259000 STH @08,MFPCNINT(,@10) 0057 00260000 * 0058 00261000 * /*****************************************************************/ 00262000 * /* */ 00263000 * /* TOP OF LOOP FOR EACH MF/1 INTERVAL. ISSUE STIMER TO DEFINE */ 00264000 * /* INTERVAL AND WAIT FOR FIRST OF THE FOLLOWING: STIMER EXIT ECB,*/ 00265000 * /* STOP COMMAND ECB, SUBTASK ECB(S) */ 00266000 * /* */ 00267000 * /*****************************************************************/ 00268000 * 0058 00269000 * MFPCALST=0; /* LAST SUBTASK TO ALLOCATE 0058 00270000 * SYSOUT SPACE */ 00271000 @RC00050 L @10,@PC00001+12 0058 00272000 SLR @08,@08 0058 00273000 ST @08,MFPCALST(,@10) 0058 00274000 * MFPCSTID=CRGMINCR; /* NEXT SUBTASK ID */ 00275000 MVC MFPCSTID(4,@10),@CF00057 0059 00276000 * DTMASTOP=CLEAR; /* CLEAR MACHINE STOPPED FLAG */ 00277000 NI DTMASTOP,B'01111111' 0060 00278000 *DT000: /* TOP OF MF/1 INTERVAL LOOP */ 00279000 *DT001: /* LABEL FOR 2 INTERVALS IN ONE */ 00280000 * IF MFCOSTPS^=CNEVER /* IF MF/1 STOPS UNDER PROGRAM 0061 00281000 * CONTROL, */ 00282000 * &MFPCNINT<=CNOINTVL /* AND IF THE NUMBER OF REMAINING 00283000 * INTERVALS IS ZERO */ 00284000 * |DTOPSTOP=CSET /* OR STOPPED BY CONSOLE OPERATOR*/ 00285000 * THEN 0061 00286000 DT000 DS 0H 0061 00287000 DT001 L @10,@PC00001+12 0061 00288000 L @08,MFPCCOA(,@10) 0061 00289000 TM MFCOSTPS(@08),B'01000000' 0061 00290000 BO @GL00001 0061 00291000 LH @10,MFPCNINT(,@10) 0061 00292000 LTR @10,@10 0061 00293000 BNP @RT00061 0061 00294000 @GL00001 TM DTOPSTOP,B'10000000' 0061 00295000 BNO @RF00061 0061 00296000 @RT00061 DS 0H 0062 00297000 * DO; 0062 00298000 * GEN REFS(DTESTAPL); 0063 00299000 ESTAE 0,MF=(E,DTESTAPL) CANCEL ESTAE IRBMFDEA 00300000 * RETURN; /* MF/1 IS DONE MEASURING */ 00301000 @EL00001 L @13,4(,@13) 0064 00302000 @EF00001 L @00,@SIZDATD 0064 00303000 LR @01,@11 0064 00304000 FREEMAIN R,LV=(0),A=(1) 00305000 @ER00001 LM @14,@12,12(@13) 0064 00306000 BR @14 0064 00307000 * END; 0065 00308000 * 0065 00309000 * /*****************************************************************/ 00310000 * /* */ 00311000 * /* AT LEAST ONE MORE INTERVAL EXISTS. */ 00312000 * /* */ 00313000 * /*****************************************************************/ 00314000 * 0066 00315000 * MFPCNINT=MFPCNINT-1; /* DECREMENT THE REMAINING INTER- 00316000 * VAL COUNT */ 00317000 * 0066 00318000 @RF00061 L @10,@PC00001+12 0066 00319000 LH @08,MFPCNINT(,@10) 0066 00320000 BCTR @08,0 0066 00321000 STH @08,MFPCNINT(,@10) 0066 00322000 * /*****************************************************************/ 00323000 * /* */ 00324000 * /* DECREMENT STOP DURATION TOO, IN CASE OF REINSTATEMENT. */ 00325000 * /* */ 00326000 * /*****************************************************************/ 00327000 * 0067 00328000 * IF MFCOSTPU=CHOURS THEN /* IF STOP VALUE IS IN HOURS */ 00329000 L @10,MFPCCOA(,@10) 0067 00330000 TM MFCOSTPU(@10),B'00100000' 0067 00331000 BNO @RF00067 0067 00332000 * DO; 0068 00333000 * DTINTACC=DTINTACC+MFCOINTV; /* ACCUMULATE INTERVAL MINUTES */ 00334000 AH DTINTACC,MFCOINTV(,@10) 0069 00335000 * MFCOSTPV=MFCOSTPV-DTINTACC/CMINHOUR;/* REDUCE STOP DURATION 00336000 * BY HOURS ACCUMULATED */ 00337000 LA @08,60 0070 00338000 LR @00,DTINTACC 0070 00339000 SRDA @00,32 0070 00340000 DR @00,@08 0070 00341000 LCR @01,@01 0070 00342000 AH @01,MFCOSTPV(,@10) 0070 00343000 STH @01,MFCOSTPV(,@10) 0070 00344000 * DTINTACC=DTINTACC//CMINHOUR;/* KEEP EXTRA MINUTES ACCUMUL'D */ 00345000 LR @00,DTINTACC 0071 00346000 SRDA @00,32 0071 00347000 DR @00,@08 0071 00348000 LR DTINTACC,@00 0071 00349000 * END; 0072 00350000 * ELSE /* ELSE */ 00351000 * MFCOSTPV=MFCOSTPV-MFCOINTV; /* REDUCE STOP DURATION BY INTER- 00352000 * VAL MINUTES */ 00353000 * 0073 00354000 B @RC00067 0073 00355000 @RF00067 L @10,@PC00001+12 0073 00356000 L @10,MFPCCOA(,@10) 0073 00357000 LH @08,MFCOSTPV(,@10) 0073 00358000 SH @08,MFCOINTV(,@10) 0073 00359000 STH @08,MFCOSTPV(,@10) 0073 00360000 * /*****************************************************************/ 00361000 * /* */ 00362000 * /* ISSUE STIMER. FIRST, CALCULATE TOD VALUE FOR END OF INTERVAL, */ 00363000 * /* IN DTTODEOI */ 00364000 * /* */ 00365000 * /*****************************************************************/ 00366000 * 0074 00367000 * DTDWORD=MFPCTDSI; /* START OF INTERVAL. */ 00368000 @RC00067 L @10,@PC00001+12 0074 00369000 MVC DTDWORD(8),MFPCTDSI(@10) 0074 00370000 * DTDWORD2=MFPCMINT; /* LENGTH OF INTERVAL. */ 00371000 * 0075 00372000 MVC DTDWORD2(8),MFPCMINT(@10) 0075 00373000 * /*****************************************************************/ 00374000 * /* */ 00375000 * /* ?DTDWDADD(DTDWORD,DTDWORD2,DTTODEOI), DOUBLE WORD */ 00376000 * /* ARITHMETIC:DTDWORD + DTDWORD2 = DTTODEOI. MACDATE Y-2 73018 */ 00377000 * /* */ 00378000 * /*****************************************************************/ 00379000 * 0076 00380000 * RESPECIFY 0076 00381000 * (GPR00P, 0076 00382000 * GPR01P, 0076 00383000 * GPR14P, 0076 00384000 * GPR15P) RESTRICTED; 0076 00385000 * GEN REFS(DTDWORD,DTDWORD2) SETS(DTTODEOI); 0077 00386000 * 0077 00387000 LM @14,@15,DTDWORD GET A DOUBLE WORD 00388000 AL @15,DTDWORD2+4 TREAT LOW ORDER WORDS 00389000 BC 12,DTM0020 CHECK FOR CARRY BIT 00390000 LA @01,1 CARRY BIT 00391000 ALR @14,@01 TREAT LOW BIT OF HIGH WORD 00392000 DTM0020 DS 0H AFTER CARRY BIT ARITHMETIC 00393000 AL @14,DTDWORD2 TREAT HIGH ORDER WORDS 00394000 STM @14,@15,DTTODEOI STORE RESULTS 00395000 * /*****************************************************************/ 00396000 * /* */ 00397000 * /* MACDATE Y-2 73018 */ 00398000 * /* */ 00399000 * /*****************************************************************/ 00400000 * 0078 00401000 * RESPECIFY 0078 00402000 * (GPR00P, 0078 00403000 * GPR01P, 0078 00404000 * GPR14P, 0078 00405000 * GPR15P) UNRESTRICTED; 0078 00406000 * 0078 00407000 * /*****************************************************************/ 00408000 * /* */ 00409000 * /* IF THIS TIME (OF END OF NEXT INTERVAL) IS LESS THAN THE */ 00410000 * /* CURRENT TIME OF DAY, FLAG 'MACHINE STOPPED' AND GO TO DT001 TO*/ 00411000 * /* PRODUCE AN INTERVAL LENGTH GREATER THAN ZERO. OTHERWISE TEST */ 00412000 * /* FOR TOD CLOCK RESET. FIRST, GET CURRENT TOD CLOCK VALUE. */ 00413000 * /* MACDATE Y-2 73018 */ 00414000 * /* */ 00415000 * /*****************************************************************/ 00416000 * 0079 00417000 * RESPECIFY 0079 00418000 * (GPR00P, 0079 00419000 * GPR01P, 0079 00420000 * GPR14P, 0079 00421000 * GPR15P) RESTRICTED; 0079 00422000 * GEN SETS(DTTODNOW,DT24SI); 0080 00423000 * 0080 00424000 TIME MIC,DT24SI 24 HOUR CURRENT TIME OF DAY. 00425000 TIME STCK,DTTODNOW CURRENT TOD CLOCK VALUE. 00426000 * /*****************************************************************/ 00427000 * /* */ 00428000 * /* MACDATE Y-2 73018 */ 00429000 * /* */ 00430000 * /*****************************************************************/ 00431000 * 0081 00432000 * RESPECIFY 0081 00433000 * (GPR00P, 0081 00434000 * GPR01P, 0081 00435000 * GPR14P, 0081 00436000 * GPR15P) UNRESTRICTED; 0081 00437000 * 0081 00438000 * /*****************************************************************/ 00439000 * /* */ 00440000 * /* NEXT, CALCULATE REMAINING INTERVAL LENGTH, IN DTMIC . */ 00441000 * /* ?DTDWDSUB(DTTODEOI,DTTODNOW,DTMIC), DOUBLE WORD */ 00442000 * /* ARITHMETIC:DTTODEOI - DTTODNOW = DTMIC. MACDATE Y-2 73018 */ 00443000 * /* */ 00444000 * /*****************************************************************/ 00445000 * 0082 00446000 * RESPECIFY 0082 00447000 * (GPR00P, 0082 00448000 * GPR01P, 0082 00449000 * GPR14P, 0082 00450000 * GPR15P) RESTRICTED; 0082 00451000 * GEN REFS(DTTODEOI,DTTODNOW) SETS(DTMIC); 0083 00452000 * 0083 00453000 LM @14,@15,DTTODEOI GET A DOUBLE WORD 00454000 SL @15,DTTODNOW+4 TREAT LOW ORDER WORDS 00455000 BC 03,DTM0025 CHECK FOR BORROW BIT 00456000 LA @01,1 BORROW BIT 00457000 SLR @14,@01 TREAT LOW BIT OF HIGH WORD 00458000 DTM0025 DS 0H AFTER BORROW BIT ARITHMETIC 00459000 SL @14,DTTODNOW TREAT HIGH ORDER WORDS 00460000 STM @14,@15,DTMIC STORE RESULTS 00461000 * /*****************************************************************/ 00462000 * /* */ 00463000 * /* MACDATE Y-2 73018 */ 00464000 * /* */ 00465000 * /*****************************************************************/ 00466000 * 0084 00467000 * RESPECIFY 0084 00468000 * (GPR00P, 0084 00469000 * GPR01P, 0084 00470000 * GPR14P, 0084 00471000 * GPR15P) UNRESTRICTED; 0084 00472000 * IF DTMIC(1)>='80'X THEN /* IF TIME REMAINING IS NEGATIVE */ 00473000 CLI DTMIC,X'80' 0085 00474000 BL @RF00085 0085 00475000 * DO; 0086 00476000 * DTMASTOP=CSET; /* FLAG 'MACHINE HAS STOPPED' */ 00477000 OI DTMASTOP,B'10000000' 0087 00478000 * MFPCTDSI=DTTODEOI; /* ADVANCE START OF NEXT INTERVAL 00479000 * TIME */ 00480000 L @10,@PC00001+12 0088 00481000 MVC MFPCTDSI(8,@10),DTTODEOI 0088 00482000 * GOTO DT001; /* TRY TO MEASURE DATA FOR 0089 00483000 * ANOTHER INTERVAL. */ 00484000 B DT001 0089 00485000 * END; 0090 00486000 * IF MFPCMINTDTECPOST=CPOSTED THEN/* IF STOP COMMAND ISSUED, */ 00771000 L @10,@PC00001+12 0132 00772000 L @10,MFPCSEAD(,@10) 0132 00773000 TM DTECPOST(@10),B'01000000' 0132 00774000 BNO @RF00132 0132 00775000 * DO; /* EXTRACT CIB VERB */ 00776000 * 0133 00777000 * /*************************************************************/ 00778000 * /* */ 00779000 * /* MACDATE Y-2 73018 */ 00780000 * /* */ 00781000 * /*************************************************************/ 00782000 * 0134 00783000 * RESPECIFY 0134 00784000 * (GPR00P, 0134 00785000 * GPR01P, 0134 00786000 * GPR14P, 0134 00787000 * GPR15P) RESTRICTED; 0134 00788000 * GEN REFS(DTEXTAPL) SETS(DTCSCLA); 0135 00789000 * 0135 00790000 EXTRACT DTCSCLA,MF=(E,DTEXTAPL) GET CIB ADDRESS 00791000 * /*************************************************************/ 00792000 * /* */ 00793000 * /* MACDATE Y-2 73018 */ 00794000 * /* */ 00795000 * /*************************************************************/ 00796000 * 0136 00797000 * RESPECIFY 0136 00798000 * (GPR00P, 0136 00799000 * GPR01P, 0136 00800000 * GPR14P, 0136 00801000 * GPR15P) UNRESTRICTED; 0136 00802000 * CIBPTR=DTCSCIB; /* SET POINTER TO FIRST CIB */ 00803000 L @10,DTCSCLA 0137 00804000 L CIBPTR,DTCSCIB(,@10) 0137 00805000 *DT055: 0138 00806000 * IF CIBVERB=CSTOP THEN /* IF STOP COMMAND */ 00807000 DT055 CLI CIBVERB(CIBPTR),X'40' 0138 00808000 BNE @RF00138 0138 00809000 * DO; 0139 00810000 * DTOPSTOP=CSET; /* STOP AFTER THIS MEASUREMENT. */ 00811000 OI DTOPSTOP,B'10000000' 0140 00812000 * END; 0141 00813000 * ELSE /* IF THIS COMMAND NOT STOP */ 00814000 * DO; 0142 00815000 B @RC00138 0142 00816000 @RF00138 DS 0H 0143 00817000 * IF CIBPTR^=0 THEN /* IF NOT LAST CIB */ 00818000 LTR CIBPTR,CIBPTR 0143 00819000 BZ @RF00143 0143 00820000 * DO; 0144 00821000 * CIBPTR=CIBNEXT; /* LOOK FOR ANOTHER CIB */ 00822000 L CIBPTR,CIBNEXT(,CIBPTR) 0145 00823000 * GOTO DT055; 0146 00824000 B DT055 0146 00825000 * END; 0147 00826000 * END; 0148 00827000 @RF00143 DS 0H 0149 00828000 * END; 0149 00829000 @RC00138 DS 0H 0150 00830000 * 0150 00831000 * /*****************************************************************/ 00832000 * /* */ 00833000 * /* LOOK AT ALL SUBTASKS */ 00834000 * /* */ 00835000 * /*****************************************************************/ 00836000 * 0150 00837000 * DTSELPTR=MFSQFRST; /* GET FIRST SUBTASK QUEUE 0150 00838000 * ELEMENT FROM THE QUEUE 0150 00839000 * DIRECTOR. */ 00840000 @RF00132 L @10,@PC00001+12 0150 00841000 L @10,MFPCSQU(,@10) 0150 00842000 L @08,MFSQFRST(,@10) 0150 00843000 ST @08,DTSELPTR 0150 00844000 * DTSELLST=ADDR(MFSQFRST)-MFSELINK;/* SET 'LAST' ELEMENT POINTER 0151 00845000 * FOR DEQUEUEING */ 00846000 LA DTSELLST,MFSQFRST(,@10) 0151 00847000 *DT060: /* TOP OF LOOP ON ALL SUBTASKS */ 00848000 * DO WHILE(DTSELPTR^=0); /* FOR ALL EXISTING SUBTASKS, */ 00849000 DT060 B @DE00152 0152 00850000 @DL00152 DS 0H 0153 00851000 * RFY 0153 00852000 * DTECB BASED(ADDR(MFSESECB));/* USE ECB FLAG DEFINITION FOR 0153 00853000 * SUBTASK ECB */ 00854000 * IF DTECPOST=CPOSTED THEN /* IF SUBTASK HAS TERMINATED, DO */ 00855000 L @10,DTSELPTR 0154 00856000 LA @08,20 0154 00857000 ALR @08,@10 0154 00858000 TM DTECPOST(@08),B'01000000' 0154 00859000 BNO @RF00154 0154 00860000 * DO; 0155 00861000 * IF DTECCODE^=0 /* IF ABNORMAL SUBTASK COMPLETION*/ 00862000 * &MFSESTID>MFPCALST /* AND SYSOUT ALLOCATION NOT 0156 00863000 * COMPLETED */ 00864000 * THEN 0156 00865000 L @08,DTECCODE-1(,@08) 0156 00866000 LA @08,0(,@08) 0156 00867000 LTR @08,@08 0156 00868000 BZ @RF00156 0156 00869000 L @10,MFSESTID(,@10) 0156 00870000 L @08,@PC00001+12 0156 00871000 CL @10,MFPCALST(,@08) 0156 00872000 BNH @RF00156 0156 00873000 * MFPCALST=MFSESTID; /* ALLOW NEXT SUBTASK TO ALLOCATE*/ 00874000 * 0157 00875000 ST @10,MFPCALST(,@08) 0157 00876000 * /***********************************************************/ 00877000 * /* */ 00878000 * /* DETACH A NORMALLY COMPLETED SARG SUBTASK */ 00879000 * /* */ 00880000 * /***********************************************************/ 00881000 * 0158 00882000 * DTTEMPAL=MFSESTAD; /* SUBTASK TCB ADDRESS */ 00883000 * 0158 00884000 @RF00156 L @10,DTSELPTR 0158 00885000 L @10,MFSESTAD(,@10) 0158 00886000 ST @10,DTTEMPAL 0158 00887000 * /***********************************************************/ 00888000 * /* */ 00889000 * /* MACDATE Y-2 73018 */ 00890000 * /* */ 00891000 * /***********************************************************/ 00892000 * 0159 00893000 * RESPECIFY 0159 00894000 * (GPR00P, 0159 00895000 * GPR01P, 0159 00896000 * GPR14P, 0159 00897000 * GPR15P) RESTRICTED; 0159 00898000 * GEN REFS(MFSESTAD,DTTEMPAL)(DETACH DTTEMPAL,STAE=NO); 0160 00899000 * 0160 00900000 DETACH DTTEMPAL,STAE=NO 00901000 * /***********************************************************/ 00902000 * /* */ 00903000 * /* MACDATE Y-2 73018 */ 00904000 * /* */ 00905000 * /***********************************************************/ 00906000 * 0161 00907000 * RESPECIFY 0161 00908000 * (GPR00P, 0161 00909000 * GPR01P, 0161 00910000 * GPR14P, 0161 00911000 * GPR15P) UNRESTRICTED; 0161 00912000 * 0161 00913000 * /***********************************************************/ 00914000 * /* */ 00915000 * /* DEQUEUE THE SUBTASK ELEMENT, LAST ELEMENT-> NEXT ONE. */ 00916000 * /* */ 00917000 * /***********************************************************/ 00918000 * 0162 00919000 * IF DTSELPTR=MFSQLAST THEN /* IF THIS IS LAST ELEMENT IN 0162 00920000 * QUEUE */ 00921000 L @10,@PC00001+12 0162 00922000 L @10,MFPCSQU(,@10) 0162 00923000 CLC DTSELPTR(4),MFSQLAST(@10) 0162 00924000 BNE @RF00162 0162 00925000 * MFSQLAST=DTSELLST; /* END OF QUEUE IS PRECEDING 0163 00926000 * ELEMENT */ 00927000 ST DTSELLST,MFSQLAST(,@10) 0163 00928000 * MFSQNUMB=MFSQNUMB-CSELQINC;/* REDUCE Q ELEMENT COUNT */ 00929000 @RF00162 L @10,@PC00001+12 0164 00930000 L @10,MFPCSQU(,@10) 0164 00931000 L @08,MFSQNUMB(,@10) 0164 00932000 BCTR @08,0 0164 00933000 ST @08,MFSQNUMB(,@10) 0164 00934000 * DTSELLST->MFSENEXT=DTSELPTR->MFSENEXT;/* REMOVE IT. */ 00935000 * 0165 00936000 L @08,DTSELPTR 0165 00937000 L @08,MFSENEXT(,@08) 0165 00938000 ST @08,MFSENEXT(,DTSELLST) 0165 00939000 * /***********************************************************/ 00940000 * /* */ 00941000 * /* FREE REMOVED ELEMENT S MAIN STORAGE. MACDATE Y-2 73018 */ 00942000 * /* */ 00943000 * /***********************************************************/ 00944000 * 0166 00945000 * RESPECIFY 0166 00946000 * (GPR00P, 0166 00947000 * GPR01P, 0166 00948000 * GPR14P, 0166 00949000 * GPR15P) RESTRICTED; 0166 00950000 * GPR00F=MFSQSTOR; /* MFSEL SUBPOOL NO. & LENGTH */ 00951000 L GPR00F,MFSQSTOR(,@10) 0167 00952000 * DTEMPF=MFSENEXT; /* SAVE NEXT ELEMENT ADDRESS */ 00953000 LR DTEMPF,@08 0168 00954000 * GEN REFS(DTSELPTR); 0169 00955000 * 0169 00956000 FREEMAIN R,LV=(0),A=DTSELPTR 00957000 * /***********************************************************/ 00958000 * /* */ 00959000 * /* MACDATE Y-2 73018 */ 00960000 * /* */ 00961000 * /***********************************************************/ 00962000 * 0170 00963000 * RESPECIFY 0170 00964000 * (GPR00P, 0170 00965000 * GPR01P, 0170 00966000 * GPR14P, 0170 00967000 * GPR15P) UNRESTRICTED; 0170 00968000 * DTSELPTR=DTEMPF; /* KEEP NEXT ELEMENT ADDRESS */ 00969000 ST DTEMPF,DTSELPTR 0171 00970000 * END; 0172 00971000 * ELSE /* ELSE */ 00972000 * DO; /* GET NEXT ELEMENT IN QUEUE */ 00973000 B @RC00154 0173 00974000 @RF00154 DS 0H 0174 00975000 * DTSELLST=DTSELPTR; /* REMEMBER THIS ELEMENT */ 00976000 L @10,DTSELPTR 0174 00977000 LR DTSELLST,@10 0174 00978000 * DTSELPTR=MFSENEXT; /* GET NEXT ELEMENT ADDRESS */ 00979000 L @10,MFSENEXT(,@10) 0175 00980000 ST @10,DTSELPTR 0175 00981000 * END; 0176 00982000 * END DT060; 0177 00983000 @RC00154 DS 0H 0177 00984000 @DE00152 L @10,DTSELPTR 0177 00985000 LTR @10,@10 0177 00986000 BNZ @DL00152 0177 00987000 * 0178 00988000 * /*****************************************************************/ 00989000 * /* */ 00990000 * /* STIMEP 'POP' CHECK */ 00991000 * /* */ 00992000 * /*****************************************************************/ 00993000 * 0178 00994000 * RFY 0178 00995000 * DTECB BASED(ADDR(DTSTIECB)); /* USE ECB FLAG DEFINITION FOR 0178 00996000 * STIMER EXIT ECB */ 00997000 * IF DTECPOST=CPOSTED /* IF STIMER HAS 'POP'ED, */ 00998000 * |DTOPSTOP=CSET /* OR STOPPED BY CONSOLE OPERATOR*/ 00999000 * THEN /* THEN PRODUCE MEASUREMENTS. */ 01000000 LA @10,DTSTIECB 0179 01001000 TM DTECPOST(@10),B'01000000' 0179 01002000 BO @RT00179 0179 01003000 TM DTOPSTOP,B'10000000' 0179 01004000 BNO @RF00179 0179 01005000 @RT00179 DS 0H 0180 01006000 * DO; 0180 01007000 * 0180 01008000 * /*************************************************************/ 01009000 * /* */ 01010000 * /* ISSUE MFDATA SVC. IT COLLECTS MEASUREMENTS ESTABLISHED BY */ 01011000 * /* MFSTART SVC (IGX00013), WHICH GAVE CONTROL TO THIS MODULE,*/ 01012000 * /* DATA CONTROL (IRBMFDTA), VIA THE SYNCH MACRO. MEASURE- */ 01013000 * /* MENT OF DATA IS FROM TIME OF LAST MFDATA SVC, OR FROM */ 01014000 * /* INITIAL MFDATA CALL JUST BEFORE THE SYNCH WAS DONE. */ 01015000 * /* MACDATE Y-2 73018 */ 01016000 * /* */ 01017000 * /*************************************************************/ 01018000 * 0181 01019000 * RESPECIFY 0181 01020000 * (GPR00P, 0181 01021000 * GPR01P, 0181 01022000 * GPR14P, 0181 01023000 * GPR15P) RESTRICTED; 0181 01024000 * GPR15F=14; /* MFDATA IS TYPE 3 ESR CODE 14 */ 01025000 LA GPR15F,14 0182 01026000 * SVC(109); /* EXTENDED SVC ROUTER (ESR), 0183 01027000 * TYPE 3 SVC */ 01028000 SVC 109 0183 01029000 * DTSVCCOD=GPR15F; /* SAVE SVC MFDATA RETURN CODE */ 01030000 LR DTSVCCOD,GPR15F 0184 01031000 * DTSVCPTR=GPR01P; /* SAVE MVT PTR OF MEASUREMENTS */ 01032000 * 0185 01033000 LR DTSVCPTR,GPR01P 0185 01034000 * /*************************************************************/ 01035000 * /* */ 01036000 * /* MACDATE Y-2 73018 */ 01037000 * /* */ 01038000 * /*************************************************************/ 01039000 * 0186 01040000 * RESPECIFY 0186 01041000 * (GPR00P, 0186 01042000 * GPR01P, 0186 01043000 * GPR14P, 0186 01044000 * GPR15P) UNRESTRICTED; 0186 01045000 * 0186 01046000 * /*************************************************************/ 01047000 * /* */ 01048000 * /* ATTACH A SARG SUBTASK TO FORMAT REPORTS */ 01049000 * /* */ 01050000 * /*************************************************************/ 01051000 * 0187 01052000 * IF DTSVCCOD^=0 THEN /* IF NO MEASUREMENTS MADE, ABEND*/ 01053000 LTR DTSVCCOD,DTSVCCOD 0187 01054000 BZ @RF00187 0187 01055000 * DO; 0188 01056000 * DTREASON=DTSVCCOD; /* ABEND REASON CODE. */ 01057000 LR DTREASON,DTSVCCOD 0189 01058000 * DTABCODE=CNOMEAS; /* SET ABEND CODE */ 01059000 MVC DTABCODE(4),@CF00325 0190 01060000 * GOTO DT900; /* ABEND */ 01061000 B DT900 0191 01062000 * END; 0192 01063000 * IF MFCOREPV=CDEFER| /* IF REPORTS ARE DEFERRED OR */ 01064000 * MFCOREPV=CREALTIM /* IF REPORTS ARE REALTIME, DO */ 01065000 * THEN 0193 01066000 @RF00187 L @10,@PC00001+12 0193 01067000 L @10,MFPCCOA(,@10) 0193 01068000 TM MFCOREPV(@10),B'00000001' 0193 01069000 BNO @GL00006 0193 01070000 TM MFCOREPV(@10),B'00000010' 0193 01071000 BZ @RT00193 0193 01072000 @GL00006 L @10,@PC00001+12 0193 01073000 L @10,MFPCCOA(,@10) 0193 01074000 TM MFCOREPV(@10),B'00000010' 0193 01075000 BNO @RF00193 0193 01076000 TM MFCOREPV(@10),B'00000001' 0193 01077000 BNZ @RF00193 0193 01078000 @RT00193 DS 0H 0194 01079000 * DO; 0194 01080000 * 0194 01081000 * /*********************************************************/ 01082000 * /* */ 01083000 * /* BUILD A SUBTASK QUEUE ELEMENT MACDATE Y-2 73018 */ 01084000 * /* */ 01085000 * /*********************************************************/ 01086000 * 0195 01087000 * RESPECIFY 0195 01088000 * (GPR00P, 0195 01089000 * GPR01P, 0195 01090000 * GPR14P, 0195 01091000 * GPR15P) RESTRICTED; 0195 01092000 * GPR00F=MFSQSTOR; /* SUBPOOL AND LENGTH OF GETMAIN 01093000 * FOR MFSEL */ 01094000 L @10,@PC00001+12 0196 01095000 L @10,MFPCSQU(,@10) 0196 01096000 L GPR00F,MFSQSTOR(,@10) 0196 01097000 * GEN(GETMAIN R,LV=(0)); /* GET MAIN STORAGE FOR MFSEL */ 01098000 GETMAIN R,LV=(0) 01099000 * DTSELPTR=GPR01P; /* SAVE STORAGE AS NEW MFSEL 0198 01100000 * ELEMENT */ 01101000 * 0198 01102000 ST GPR01P,DTSELPTR 0198 01103000 * /*********************************************************/ 01104000 * /* */ 01105000 * /* MACDATE Y-2 73018 */ 01106000 * /* */ 01107000 * /*********************************************************/ 01108000 * 0199 01109000 * RESPECIFY 0199 01110000 * (GPR00P, 0199 01111000 * GPR01P, 0199 01112000 * GPR14P, 0199 01113000 * GPR15P) UNRESTRICTED; 0199 01114000 * 0199 01115000 * /*********************************************************/ 01116000 * /* */ 01117000 * /* ATTACHED SUBTASK, IRBMFRGM, HAS FOLLOWING ATTRIBUTES: */ 01118000 * /* 1. ITS TERMINATION IS POSTED IN AN ECB, AND IT MUST BE*/ 01119000 * /* DETACHED. 2. ITS SP0 IS NOT SHARED WITH THIS TASK. 3. */ 01120000 * /* ITS DATA SP IS GIVEN TO IT. */ 01121000 * /* */ 01122000 * /*********************************************************/ 01123000 * 0200 01124000 * MFSECOA=ADDR(MFCOA); /* COA IS INPUT TO IRBMFRGM */ 01125000 L @10,DTSELPTR 0200 01126000 L @15,@PC00001+12 0200 01127000 L @14,MFPCCOA(,@15) 0200 01128000 ST @14,MFSECOA(,@10) 0200 01129000 * MFSEDTMV=DTSVCPTR; /* MEASUREMENTS ARE INPUT TO 0201 01130000 * IRBMFRGM */ 01131000 ST DTSVCPTR,MFSEDTMV(,@10) 0201 01132000 * MFSESTID=MFPCSTID; /* ASSIGN SUBTASK ID */ 01133000 L @14,MFPCSTID(,@15) 0202 01134000 ST @14,MFSESTID(,@10) 0202 01135000 * MFPCSTID=MFPCSTID+CRGMINCR;/* DETERMINE NEXT SUBTASK ID */ 01136000 AL @14,@CF00057 0203 01137000 ST @14,MFPCSTID(,@15) 0203 01138000 * MFSEITOD=DT24SI; /* INTERVAL START 24 HOUR TIME IS 01139000 * INPUT TO IRBMFRGM. */ 01140000 MVC MFSEITOD(8,@10),DT24SI 0204 01141000 * MFSEMDCB=MFPCMDCB; /* MESSAGE-SYSOUT DATA SET DCB IS 01142000 * INPUT TO IRBMFRGM */ 01143000 L @14,MFPCMDCB(,@15) 0205 01144000 ST @14,MFSEMDCB(,@10) 0205 01145000 * MFSESECB=CLEARECB; /* CLEAR ECB FOR USE */ 01146000 SLR @14,@14 0206 01147000 ST @14,MFSESECB(,@10) 0206 01148000 * MFSEFLAG=''B; /* CLEAR ALL FLAGS */ 01149000 * 0207 01150000 MVI MFSEFLAG(@10),X'00' 0207 01151000 * /*********************************************************/ 01152000 * /* */ 01153000 * /* SET ATTACH PROBLEM PROGRAM PARAMETERS */ 01154000 * /* */ 01155000 * /*********************************************************/ 01156000 * 0208 01157000 * MFSESEL=ADDR(MFSEL); /* ADDRESS OF SUBTASK QUEUE 0208 01158000 * ELEMENT */ 01159000 ST @10,MFSESEL(,@10) 0208 01160000 * MFSEALST=ADDR(MFPCALST);/* ADDRESS OF NUMBER OF LAST 0209 01161000 * SUBTASK ID TO ALLOCATE REPORT 01162000 * SYSOUT SPACE */ 01163000 LA @14,MFPCALST(,@15) 0209 01164000 ST @14,MFSEALST(,@10) 0209 01165000 * MFSEMFMV=MFPCMVT; /* MVT WITH REPORT GENERATOR 0210 01166000 * PROGRAM NAMES */ 01167000 * 0210 01168000 L @15,MFPCMVT(,@15) 0210 01169000 ST @15,MFSEMFMV(,@10) 0210 01170000 * /*********************************************************/ 01171000 * /* */ 01172000 * /* SETUP FOR MACRO CALL: ATTACH */ 01173000 * /* */ 01174000 * /*********************************************************/ 01175000 * 0211 01176000 * RFY 0211 01177000 * (GPR00P, 0211 01178000 * GPR01P, 0211 01179000 * GPR02P, 0211 01180000 * GPR03P, 0211 01181000 * GPR14P, 0211 01182000 * GPR15P) RSTD; 0211 01183000 * GPR03P=ADDR(MFSESECB); /* SUBTASK ECB ADDRESS FOR 0212 01184000 * GENERATE 'ATTACH' */ 01185000 LA GPR03P,MFSESECB(,@10) 0212 01186000 * GPR02F=DTMFSP; /* SHARE DATA SUBPOOL WITH SARG. */ 01187000 LR @07,DTSVCPTR 0213 01188000 AL @07,@CF00322 0213 01189000 SLR GPR02F,GPR02F 0213 01190000 IC GPR02F,DTMFSP(,@07) 0213 01191000 * GPR01P=ADDR(MFSEPARM); /* PROBLEM PROGRAM PARAM'S */ 01192000 LA GPR01P,MFSEPARM(,@10) 0214 01193000 * GPR15P=ADDR(DTATTAPL); /* CONTROL PROGRAM LIST ADDR. */ 01194000 LA GPR15P,DTATTAPL 0215 01195000 * GEN REFS(DTTEMPAL,DTMFSP,MFSEPARM,DTATTAPL); 0216 01196000 ATTACH EP=IRBMFRGM,ECB=(GPR03P),GSPV=(2),MF=(E,(1)), @ZA00261X01197000 SF=(E,(15)) 01198000 * MFSESTAD=GPR01P; /* SAVE SUBTASK TCB ADDRESS FROM 01199000 * ATTACH MACRO */ 01200000 L @10,DTSELPTR 0217 01201000 ST GPR01P,MFSESTAD(,@10) 0217 01202000 * RFY 0218 01203000 * (GPR00P, 0218 01204000 * GPR01P, 0218 01205000 * GPR02P, 0218 01206000 * GPR03P, 0218 01207000 * GPR14P, 0218 01208000 * GPR15P) UNRSTD; 0218 01209000 * 0218 01210000 * /*********************************************************/ 01211000 * /* */ 01212000 * /* PUT SUBTASK ELEMENT IN QUEUE */ 01213000 * /* */ 01214000 * /*********************************************************/ 01215000 * 0219 01216000 * MFSENEXT=0; /* NEW ELEMENT IS AT END OF QUEUE*/ 01217000 SLR @08,@08 0219 01218000 ST @08,MFSENEXT(,@10) 0219 01219000 * MFSQLAST->MFSENEXT=ADDR(MFSEL);/* ADD ELEMENT TO Q END */ 01220000 L @08,@PC00001+12 0220 01221000 L @08,MFPCSQU(,@08) 0220 01222000 L @01,MFSQLAST(,@08) 0220 01223000 ST @10,MFSENEXT(,@01) 0220 01224000 * MFSQLAST=ADDR(MFSEL); /* SET LAST ELEMENT POINTER */ 01225000 ST @10,MFSQLAST(,@08) 0221 01226000 * MFSQNUMB=MFSQNUMB+CSELQINC;/* INCR COUNT OF Q ELEMENTS */ 01227000 LA @10,1 0222 01228000 AL @10,MFSQNUMB(,@08) 0222 01229000 ST @10,MFSQNUMB(,@08) 0222 01230000 * END; /* END OF ATTACH CODE */ 01231000 * ELSE /* IF NO REPORTS FORMATTED */ 01232000 * 0224 01233000 * /***********************************************************/ 01234000 * /* */ 01235000 * /* FREE MEASUREMENT STORAGE */ 01236000 * /* */ 01237000 * /***********************************************************/ 01238000 * 0224 01239000 * DO; 0224 01240000 B @RC00193 0224 01241000 @RF00193 DS 0H 0225 01242000 * RFY 0225 01243000 * DTMVT BASED(DTSVCPTR);/* SVC MVT IS CALLED DTMVT */ 01244000 * DO I=1 TO DTMVNUM; /* FOR ALL MEASUREMENTS */ 01245000 LA I,1 0226 01246000 B @DE00226 0226 01247000 @DL00226 DS 0H 0227 01248000 * IF DTMVADD(I)^=0 THEN /* IF STORAGE EXISTS, FREE IT */ 01249000 LR @10,I 0227 01250000 SLA @10,2 0227 01251000 L @10,DTMVADD-4(@10,DTSVCPTR) 0227 01252000 LTR @10,@10 0227 01253000 BZ @RF00227 0227 01254000 * DO; 0228 01255000 * 0228 01256000 * /***************************************************/ 01257000 * /* */ 01258000 * /* MACDATE Y-2 73018 */ 01259000 * /* */ 01260000 * /***************************************************/ 01261000 * 0229 01262000 * RESPECIFY 0229 01263000 * (GPR00P, 0229 01264000 * GPR01P, 0229 01265000 * GPR14P, 0229 01266000 * GPR15P) RESTRICTED; 0229 01267000 * GPR00F=(DTMVADD(I)+CMEASTOR)->DTMFSTOR;/* SP&LENGTH*/ 01268000 AL @10,@CF00322 0230 01269000 L GPR00F,DTMFSTOR(,@10) 0230 01270000 * GPR01P=DTMVADD(I)+CMEASTOR;/* STORAGE ADDRESS */ 01271000 LR GPR01P,@10 0231 01272000 * GEN(FREEMAIN R,LV=(0),A=(1));/* FREEMAIN */ 01273000 * 0232 01274000 FREEMAIN R,LV=(0),A=(1) 01275000 * /***************************************************/ 01276000 * /* */ 01277000 * /* MACDATE Y-2 73018 */ 01278000 * /* */ 01279000 * /***************************************************/ 01280000 * 0233 01281000 * RESPECIFY 0233 01282000 * (GPR00P, 0233 01283000 * GPR01P, 0233 01284000 * GPR14P, 0233 01285000 * GPR15P) UNRESTRICTED; 0233 01286000 * END; /* END FREEING MVT STORAGE DO */ 01287000 * END; /* END LOOP ON MVADD */ 01288000 * 0235 01289000 @RF00227 AL I,@CF00057 0235 01290000 @DE00226 C I,DTMVNUM(,DTSVCPTR) 0235 01291000 BNH @DL00226 0235 01292000 * /*********************************************************/ 01293000 * /* */ 01294000 * /* MACDATE Y-2 73018 */ 01295000 * /* */ 01296000 * /*********************************************************/ 01297000 * 0236 01298000 * RESPECIFY 0236 01299000 * (GPR00P, 0236 01300000 * GPR01P, 0236 01301000 * GPR14P, 0236 01302000 * GPR15P) RESTRICTED; 0236 01303000 * GPR00F=DTMFSTOR; /* MVT SUBPOOL AND LENGTH */ 01304000 LR @10,DTSVCPTR 0237 01305000 AL @10,@CF00322 0237 01306000 L GPR00F,DTMFSTOR(,@10) 0237 01307000 * GPR01P=ADDR(DTMVT)+CMEASTOR;/* MVT ADDRESS */ 01308000 LR GPR01P,@10 0238 01309000 *DT200: 0239 01310000 * GEN(FREEMAIN R,LV=(0),A=(1));/* FREE MVT */ 01311000 * 0239 01312000 DT200 FREEMAIN R,LV=(0),A=(1) 01313000 * /*********************************************************/ 01314000 * /* */ 01315000 * /* MACDATE Y-2 73018 */ 01316000 * /* */ 01317000 * /*********************************************************/ 01318000 * 0240 01319000 * RESPECIFY 0240 01320000 * (GPR00P, 0240 01321000 * GPR01P, 0240 01322000 * GPR14P, 0240 01323000 * GPR15P) UNRESTRICTED; 0240 01324000 * END; /* END ELSE OF IF REPORTS MADE */ 01325000 * MFPCTDSI=DTTODEOI; /* START OF THIS NEW INTERVAL IS 01326000 * END OF INTERVAL JUST EXPIRED. */ 01327000 @RC00193 L @10,@PC00001+12 0242 01328000 MVC MFPCTDSI(8,@10),DTTODEOI 0242 01329000 * GOTO DT000; /* RE-ISSUE STIMER FOR NEW 0243 01330000 * INTERVAL */ 01331000 B DT000 0243 01332000 * END; /* END IF STIMER POP'ED */ 01333000 * 0244 01334000 * /*****************************************************************/ 01335000 * /* */ 01336000 * /* STIMER HAS NOT POP'ED, BUT A SUBTASK HAS TERMINATED */ 01337000 * /* */ 01338000 * /*****************************************************************/ 01339000 * 0245 01340000 * GOTO DT050; /* RE-ESTABLISH WAIT LIST OF 0245 01341000 * SUBTASK ECB'S. */ 01342000 B DT050 0245 01343000 * 0246 01344000 */* PROGRAM ERROR: ABEND */ 01345000 * 0246 01346000 *DT900: 0246 01347000 * 0246 01348000 * /*****************************************************************/ 01349000 * /* */ 01350000 * /* MACDATE Y-2 73018 */ 01351000 * /* */ 01352000 * /*****************************************************************/ 01353000 * 0246 01354000 * RESPECIFY 0246 01355000 * (GPR00P, 0246 01356000 * GPR01P, 0246 01357000 * GPR14P, 0246 01358000 * GPR15P) RESTRICTED; 0246 01359000 DT900 DS 0H 0247 01360000 * GPR01P=DTABCODE; /* ABEND CODE */ 01361000 ICM GPR01P,15,DTABCODE 0247 01362000 * GPR15P=DTREASON; /* ABEND REASON CODE. */ 01363000 LR GPR15P,DTREASON 0248 01364000 * GEN; 0249 01365000 * 0249 01366000 ABEND (01),DUMP 01367000 * /*****************************************************************/ 01368000 * /* */ 01369000 * /* MACDATE Y-2 73018 */ 01370000 * /* */ 01371000 * /*****************************************************************/ 01372000 * 0250 01373000 * RESPECIFY 0250 01374000 * (GPR00P, 0250 01375000 * GPR01P, 0250 01376000 * GPR14P, 0250 01377000 * GPR15P) UNRESTRICTED; 0250 01378000 * END IRBMFDTA 0251 01379000 * 0251 01380000 */* THE FOLLOWING INCLUDE STATEMENTS WERE FOUND IN THIS PROGRAM. */ 01381000 */*%INCLUDE SYSLIB (IRBMFMID) */ 01382000 */*%INCLUDE SYSLIB (IEZCIB ) */ 01383000 * 0251 01384000 * ; 0251 01385000 B @EL00001 0251 01386000 @DATA DS 0H 01387000 @CH00333 DC H'60' 01388000 DS 0F 01389000 @AL00040 DC A(@CF00057) LIST WITH 4 ARGUMENT(S) 01390000 DC A(@CF00153) 01391000 DC A(@CF00153) 01392000 DC A(@CF00153) 01393000 @DATD DSECT 01394000 DS 0F 01395000 @SA00001 DS 18F 01396000 @PC00001 DS 4F 01397000 IRBMFDTA CSECT 01398000 DS 0F 01399000 @CF00153 DC F'0' 01400000 @CF00057 DC F'1' 01401000 @CF00325 DC F'1201' 01402000 @CF00375 DC F'-8' 01403000 @CF00322 DC F'-4' 01404000 @DATD DSECT 01405000 DS 0D 01406000 DTSELPTR DS A 01407000 DTCSCLA DS A 01408000 DTTEMPAL DS F 01409000 DTABCODE DS BL4 01410000 DTDWORD DS CL8 01411000 DTDWORD2 DS CL8 01412000 DTMASTOP DS BL1 01413000 DS CL7 01414000 DTMIC DS CL8 01415000 DTOPSTOP DS BL1 01416000 DS CL7 01417000 DTTODEOI DS CL8 01418000 DTTODNOW DS CL8 01419000 DT24SI DS CL8 01420000 DTATTAPL DS CL60 01421000 DTESTAPL DS CL16 01422000 DTEXTAPL DS CL16 01423000 IRBMFDTA CSECT 01424000 DS 0F 01425000 @SIZDATD DC AL1(0) 01426000 DC AL3(@ENDDATD-@DATD) 01427000 DS 0D 01428000 DTPATCH DS CL100 01429000 IRBMFDTA CSECT 01430000 * /* ESTAE COVERING DATA CONTROL */ 01431000 DTESTSPL ESTAE IRBMFDEA,RECORD=YES,MF=L 01432000 EXTRN IRBMFDEA 01433000 IRBMFDTA CSECT 01434000 DTEXTSPL EXTRACT ,'S',FIELDS=(COMM),MF=L 01435000 IRBMFDTA CSECT 01436000 DTATTSPL ATTACH EP=IRBMFRGM,SZERO=NO,SF=L 01437000 @DATD DSECT 01438000 IRBMFDTA CSECT 01439000 DTPOSSPL DS 0H POST MACRO STATIC CODE 01440000 STM @14,@01,12(@13) TEMPORARY REGISTER SAVE 01441000 BALR @15,0 BASE REGISTER FOR ECB AT ENTRY 01442000 * FROM STIMER EXIT ROUTINE 01443000 USING *,@15 01444000 POST DTSTSECB POST STIMER ECB 01445000 LM @14,@01,12(@13) RESTORE REGISTERS 01446000 BR @14 RETURN 01447000 DTSTSECB DS F STIMER ECB, FOLLOWS POST EXPANSION 01448000 DTPOSEPL EQU * END OF POST 01449000 DTPOSLPL EQU DTPOSEPL-DTPOSSPL LENGTH OF POST MACRO EXPANSION 01450000 DROP @15 01451000 @DATD DSECT 01452000 @DATD DSECT 01453000 DTPOSAPL DS 0H POST MACRO AUTOMATIC STORAGE 01454000 STM @14,@01,12(@13) 01455000 BALR @15,0 BASE REGISTER FOR ECB AT ENTRY 01456000 POST DTSTIECB POST STIMER EXPIRED ECB 01457000 LM @14,@01,12(@13) 01458000 BR @14 RETURN 01459000 DTSTIECB DS F STIMER ECB, FOLLOWS POST EXPANSION 01460000 @DATD DSECT 01461000 IRBMFDTA CSECT 01462000 DT60MIL DC F'60000000' MICROSECONDS IN 1 MINUTE. 01463000 @DATD DSECT 01464000 ORG *+1-(*-@DATD)/(*-@DATD) INSURE DSECT DATA 01465000 @ENDDATD EQU * 01466000 IRBMFDTA CSECT 01467000 @00 EQU 00 EQUATES FOR REGISTERS 0-15 01468000 @01 EQU 01 01469000 @02 EQU 02 01470000 @03 EQU 03 01471000 @04 EQU 04 01472000 @05 EQU 05 01473000 @06 EQU 06 01474000 @07 EQU 07 01475000 @08 EQU 08 01476000 @09 EQU 09 01477000 @10 EQU 10 01478000 @11 EQU 11 01479000 @12 EQU 12 01480000 @13 EQU 13 01481000 @14 EQU 14 01482000 @15 EQU 15 01483000 I EQU @02 01484000 DTSVCCOD EQU @02 01485000 DTSELLST EQU @03 01486000 DTREASON EQU @03 01487000 DTMODEPA EQU @03 01488000 DTSVCPTR EQU @08 01489000 DTINTACC EQU @09 01490000 DTEMPF EQU @02 01491000 CIBPTR EQU @02 01492000 GPR00F EQU @00 01493000 GPR15F EQU @15 01494000 GPR00P EQU @00 01495000 GPR01P EQU @01 01496000 GPR14P EQU @14 01497000 GPR15P EQU @15 01498000 GPR02P EQU @02 01499000 GPR02F EQU @02 01500000 GPR03P EQU @03 01501000 GPR01F EQU @01 01502000 GPR14F EQU @14 01503000 DTMVT EQU 0 01504000 DTMVNUM EQU DTMVT 01505000 DTMVOPT EQU DTMVT+4 01506000 MFCOA EQU 0 01507000 MFCOTCE EQU MFCOA 01508000 MFCOTCEF EQU MFCOTCE 01509000 MFCOTCEL EQU MFCOTCE+3 01510000 MFCOCYC EQU MFCOA+4 01511000 MFCOCYCF EQU MFCOCYC 01512000 MFCOOUT EQU MFCOA+8 01513000 MFCOOUTF EQU MFCOOUT 01514000 MFCOINT EQU MFCOA+12 01515000 MFCOINTF EQU MFCOINT 01516000 MFCOINTV EQU MFCOINT+2 01517000 MFCOREP EQU MFCOA+16 01518000 MFCOREPF EQU MFCOREP 01519000 MFCOREPL EQU MFCOREP+3 01520000 MFCOREPV EQU MFCOREPL 01521000 MFCOSTP EQU MFCOA+20 01522000 MFCOSTPF EQU MFCOSTP 01523000 MFCOSTPS EQU MFCOSTPF 01524000 MFCOSTPU EQU MFCOSTPF 01525000 MFCOSTPV EQU MFCOSTP+2 01526000 MFCOOPI EQU MFCOA+24 01527000 MFCOOPIF EQU MFCOOPI 01528000 MFCOOPIL EQU MFCOOPI+3 01529000 MFCOMEM EQU MFCOA+28 01530000 MFCOMEMF EQU MFCOMEM 01531000 MFSEL EQU 0 01532000 MFSENEXT EQU MFSEL 01533000 MFSEPARM EQU MFSEL+4 01534000 MFSESEL EQU MFSEPARM 01535000 MFSEALST EQU MFSEPARM+4 01536000 MFSEMFMV EQU MFSEPARM+8 01537000 MFSESTAD EQU MFSEL+16 01538000 MFSESECB EQU MFSEL+20 01539000 MFSECOA EQU MFSEL+24 01540000 MFSEDTMV EQU MFSEL+28 01541000 MFSESTID EQU MFSEL+32 01542000 MFSEITOD EQU MFSEL+36 01543000 MFSEFLAG EQU MFSEL+47 01544000 MFSEMDCB EQU MFSEL+48 01545000 MFSQU EQU 0 01546000 MFSQFRST EQU MFSQU+4 01547000 MFSQLAST EQU MFSQU+8 01548000 MFSQNUMB EQU MFSQU+12 01549000 MFSQSTOR EQU MFSQU+16 01550000 CIBNAME EQU 0 01551000 CIBNEXT EQU CIBNAME 01552000 CIBVERB EQU CIBNAME+4 01553000 CIBASID EQU CIBNAME+10 01554000 DTCSCL EQU 0 01555000 DTCSCIB EQU DTCSCL+4 01556000 DTECB EQU 0 01557000 DTECFLGS EQU DTECB 01558000 DTECPOST EQU DTECFLGS 01559000 DTECCODE EQU DTECB+1 01560000 DTECBADD EQU 0 01561000 DTECBEOL EQU DTECBADD 01562000 DTMFSTOR EQU 0 01563000 DTMFSP EQU DTMFSTOR 01564000 IRBMFMPR EQU 0 01565000 IKEBC EQU 0 01566000 IKEBF15 EQU 0 01567000 IKEBF31 EQU 0 01568000 IKEBP15 EQU 0 01569000 IKEBP31 EQU 0 01570000 IKEBP8 EQU 0 01571000 DUMMY1 EQU 0 01572000 DUMMY2 EQU 0 01573000 DUMMY3 EQU 0 01574000 MFPCT EQU 0 01575000 MFPCMVT EQU MFPCT+4 01576000 MFPCCOA EQU MFPCT+8 01577000 MFPCSQU EQU MFPCT+12 01578000 MFPCMINT EQU MFPCT+16 01579000 MFPCTDSI EQU MFPCT+24 01580000 MFPCELGM EQU MFPCT+32 01581000 MFPCELLE EQU MFPCELGM+1 01582000 MFPCELAD EQU MFPCT+36 01583000 MFPCSEAD EQU MFPCT+40 01584000 MFPCALST EQU MFPCT+44 01585000 MFPCFLAG EQU MFPCT+48 01586000 MFPCNINT EQU MFPCT+50 01587000 MFPCSTID EQU MFPCT+52 01588000 MFPCMDCB EQU MFPCT+56 01589000 DTMVADD EQU DTMVOPT 01590000 MFCOOPTN EQU MFCOA 01591000 AGO .@UNREFD START UNREFERENCED COMPONENTS 01592000 MFCOCTRL EQU MFCOOPTN 01593000 MFPCMFR EQU MFPCT+60 01594000 MFPCREIN EQU MFPCFLAG+1 01595000 @NM00012 EQU MFPCFLAG 01596000 MFPCELSP EQU MFPCELGM 01597000 MFPCNAME EQU MFPCT 01598000 DTMFLEN EQU DTMFSTOR+1 01599000 @NM00018 EQU DTECB 01600000 DTECWAIT EQU DTECFLGS 01601000 DTCSCECB EQU DTCSCL 01602000 CIBDATA EQU CIBNAME+16 01603000 CIBDATLN EQU CIBNAME+14 01604000 @NM00017 EQU CIBNAME+13 01605000 CIBCONID EQU CIBNAME+12 01606000 CIBTJID EQU CIBASID 01607000 @NM00016 EQU CIBNAME+6 01608000 CIBLEN EQU CIBNAME+5 01609000 MFSQLEN EQU MFSQSTOR+1 01610000 MFSQSP EQU MFSQSTOR 01611000 MFSQNAME EQU MFSQU 01612000 MFSERTRY EQU MFSEFLAG 01613000 @NM00015 EQU MFSEFLAG 01614000 @NM00014 EQU MFSEL+44 01615000 MFSESCOD EQU MFSESECB+1 01616000 @NM00013 EQU MFSESECB 01617000 MFCOMEMV EQU MFCOMEM+2 01618000 @NM00011 EQU MFCOMEM+1 01619000 MFCOMEMC EQU MFCOMEMF 01620000 MFCOOPIV EQU MFCOOPIL 01621000 @NM00010 EQU MFCOOPIL 01622000 @NM00009 EQU MFCOOPI+1 01623000 MFCOOPIC EQU MFCOOPIF 01624000 @NM00008 EQU MFCOSTP+1 01625000 MFCOSTPC EQU MFCOSTPF 01626000 @NM00007 EQU MFCOREPL 01627000 @NM00006 EQU MFCOREP+1 01628000 MFCOREPC EQU MFCOREPF 01629000 @NM00005 EQU MFCOINT+1 01630000 MFCOINTC EQU MFCOINTF 01631000 MFCOOUTV EQU MFCOOUT+3 01632000 @NM00004 EQU MFCOOUT+1 01633000 MFCOOUTC EQU MFCOOUTF 01634000 MFCOCYCV EQU MFCOCYC+2 01635000 @NM00003 EQU MFCOCYC+1 01636000 MFCOCYCC EQU MFCOCYCF 01637000 MFCOTCEV EQU MFCOTCEL 01638000 @NM00002 EQU MFCOTCEL 01639000 @NM00001 EQU MFCOTCE+1 01640000 MFCOTCEC EQU MFCOTCEF 01641000 DTMVDEV EQU DTMVOPT+16 01642000 DTMVCHA EQU DTMVOPT+12 01643000 DTMVWKL EQU DTMVOPT+8 01644000 DTMVPAG EQU DTMVOPT+4 01645000 DTMVCPU EQU DTMVOPT 01646000 .@UNREFD ANOP END UNREFERENCED COMPONENTS 01647000 @RF00179 EQU DT050 01648000 @ENDDATA EQU * 01649000 END IRBMFDTA,(C'PLS1559',0700,74339) 01650000