ENT TITLE 'DMKENT (CP) VM/370 - RELEASE 6' 00001000 COPY OPTIONS 00002000 COPY LOCAL 00003000 EJECT 00004000 *. 00005000 * 00006000 * MODULE NAME - 00007000 * DMKENT 00008000 * 00009000 * FUNCTION - 00010000 * 00011000 * TO PROVIDE MAIN STORAGE RESIDENT LINKAGE BETWEEN TIMER 00012000 * REQUEST BLOCKS AND CP REQUEST BLOCKS AND THE PAGABLE 00013000 * SERVICE ROUTINES OF VM/MONITOR 00014000 * 00015000 * ATTRIBUTES - 00016000 * 00017000 * RE-ENTRANT, RESIDENT, 00018000 * 00019000 * ENTERED VIA TRQBLOK TO START AND STOP MONITOR 00020000 * AT TIMES SPECIFIED BY SYSMON MACRO OR OPERATOR 00021000 * ENTERED VIA CPEXBLOK TO START AND STOP MONITOR 00022000 * WHEN THE AUTOMATIC FACILITIES REQUIRE IMMEDIATE 00023000 * AS OPPOSED TO DEFERRED ACTION, ALSO WHEN CLOSING 00024000 * OF SPOOL FILE IS REQUIRED 00025000 * DOES DEVICE, CONTROL UNIT, AND CHANNEL SAMPLING 00025500 * 00026000 * EXECUTABLE ENTRY POINTS - 00027000 * 00028000 * DMKENTST - VIA TRQ START MONITOR WITH MONITOR COMMAND 00029000 * DMKENTSC - VIA CPEXBLOK START MONITOR WITH MONITOR COMMAND 00030000 * DMKENTET - VIA TRQ STOP MONITOR WITH MON COMMAND 00031000 * DMKENTEC - VIA CPEXBLOK STOP MONITOR WITH MON COMMAND 00032000 * DMKENTFI - VIA CPEXBLOK COMPLETE MONITOR SHUTDOWN 00033000 * DMKENTKC - VIA CPEXBLOK CLOSE MONITOR FILE WITH COMMAND 00034000 * DMKENTTI - VIA TRQ FOR I/O UTILIZATION SAMPLING 00034300 * DMKCVTAB - ABEND RTN FOR TOD CLOCK FAILURE 00034600 * 00035000 * NON EXECUTABLE ENTRY POINTS - 00036000 * 00037000 * DMKENTTB - TRQ FOR STARTING MONITORING 00038000 * DMKENTBS - STATUS OF START TRQ 00039000 * DMKENTTE - TRQ FOR STOPPING MONITORING 00040000 * DMKENTES - STATUS OF END TRQ 00041000 * DMKENTSK - POINTER TO SEEKS LIST 00041300 * DMKENTUT - I/O UTILIZATION INTERVAL 00041600 * 00042000 * ENTRY CONDITIONS - 00043000 * 00044000 * GPR12 - ENTRY POINT ADDRESS 00045000 * 00046000 * EXIT CONDITIONS - 00047000 * 00048000 * NONE 00049000 * 00050000 * EXTERNAL REFERENCES/CALLS TO OTHER ROUTINES - 00051000 * 00052000 * SEE PROLOGUE FOR EACH ENTRY POINT 00053000 * 00054000 DMKENT START 00055000 MODID DC CL8'DMKENT' 00056000 SPACE 1 00057000 EXTRN DMKPRGMC,DMKSYSAT,DMKMIAIN,DMKDSPCH @V50A2B5 00058000 EXTRN DMKMIAEN,DMKMIAKC,DMKMNIFI @V50A2B5 00059000 EXTRN DMKSCHST,DMKCVTAB 00059500 SPACE 1 00060000 USING PSA,R0 @V50A2B5 00061000 USING VMBLOK,R11 @V50A2B5 00062000 USING SAVEAREA,R13 @V50A2B5 00063000 SPACE 1 00064000 *. 00065000 * 00066000 * ENTRY POINT - 00067000 * 00068000 * DMKENTST - TIMER INTERRUPT REQUEST TO START MONITOR 00069000 * 00070000 * EXTERNAL REFERENCES/CALLS - 00071000 * 00072000 * DMKPRGMC - ADDRESS OF COMMUNICATIONS AREA 00073000 * DMKSYSAT - INDICATOR FOR AUTOMATIC MONITORING 00074000 * 00075000 * DMKMIAIN - ROUTINE TO AUTOSTART MONITOR TO SPOOL 00076000 * DMKDSPCH - WHERE TO GO TO START SOMETHING ELSE 00077000 * 00078000 * OPRERATION - 00079000 * 00080000 * IF THE MONITOR COMMUNICATIONS AREA DOES NOT ALREADY 00081000 * EXIST, THEN THIS REQUEST TO AUTO START MONITOR IS 00082000 * VALID AND THE SYSMON MACRO SPECIFICATIONS IN DMKSYS 00083000 * IS CHECKED TO ENSURE THAT AUTOMATIC MONITORING IS IN 00084000 * FACT OK IN THIS INSTALLATION. IF ALL IS WELL DMKMIAIN 00085000 * IS CALLED TO DO THE AUTO START AFTER WHICH A BRANCH 00086000 * IS MADE TO THE DISPATCHER TO FIND OTHER WORK TO DO 00087000 * 00088000 *. 00089000 ENTRY DMKENTST @V50A2B5 00090000 DMKENTST DS 0H @V50A2B5 00091000 USING *,R12 @V50A2B5 00092000 SL R12,=A(DMKENTST-DMKENT) @V50A2B5 00093000 USING DMKENT,R12 @V50A2B5 00094000 LA R4,DMKENTBS SET OFF THE STACK FLAG @V50A2B5 00095000 MVI 0(R4),C'U' @V50A2B5 00096000 L R4,=A(DMKPRGMC) SEE IF MONITOR ALREADY ON @V50A2B5 00097000 ICM R4,B'1111',0(R4) @V50A2B5 00098000 BNZ EXITN YES, INVALID TO RQST START @V50A2B5 00099000 L R4,=A(DMKSYSAT) CHECK SYSMON MACRO @V50A2B5 00100000 TM 0(R4),AUTGO IS AUTO FLAG SPECIFIED @V50A2B5 00101000 BNO EXITN NO, RQST TO START INVALID @V50A2B5 00102000 CALL DMKMIAIN YES, OK TO AUTO START MON. @V50A2B5 00103000 EXITN GOTO DMKDSPCH ALL DONE, FIND WORK TO DO @V50A2B5 00104000 EJECT @V50A2B5 00105000 *. 00106000 * 00107000 * ENTRY POINT - 00108000 * DMKENTSC - VIA CPEXBLOK TO ISSUE A MONITOR START SPOOL 00109000 * 00110000 * EXTERNAL REFERENCES/CALLS - 00111000 * 00112000 * DMKPRGMC - MONITOR COMMUNICATIONS AREA TO SEE IF ON 00113000 * DMKMIAIN - MONITOR MODULE TO SET UP START COMMAND 00114000 * 00115000 * OPERATION - 00116000 * 00117000 * IF THE MONITOR COMMUNICATIONS AREA DOES NOT ALREADY 00118000 * EXIST, THEN THE MONITOR IS NOT CURRENTLY ACTIVE AND 00119000 * THE PAGEABLE MODULE DMKMIAIN IS CALLED TO PREPARE 00120000 * A MONITOR START COMMAND 00121000 *. 00122000 ENTRY DMKENTSC @V50A2B5 00123000 DMKENTSC DS 0H @V50A2B5 00124000 USING *,R12 @V50A2B5 00125000 SL R12,=A(DMKENTSC-DMKENT) @V50A2B5 00126000 USING DMKENT,R12 @V50A2B5 00127000 L R6,=A(DMKPRGMC) SEE IF MONITOR ALREADY ON @V50A2B5 00128000 ICM R6,B'1111',0(R6) I.E. DOES MONCOM EXIST @V50A2B5 00129000 BNZ EXITN YES , LET DISPATCHER WORK @V50A2B5 00130000 CALL DMKMIAIN NO, OK TO ISSUE START @V50A2B5 00131000 B EXITN @V50A2B5 00132000 EJECT 00133000 *. 00134000 * 00135000 * ENTRY POINT - 00136000 * 00137000 * DMKENTET - VIA TRQ TO ISSUE MONITOR STOP COMMAND 00138000 * 00139000 * EXTERNAL REFERENCES/CALLS 00140000 * 00141000 * DMKPRGMC - TO SEE IF MONITOR IS ACTIVE 00142000 * DMKSYSAT - TO SEE IF AUTO MONITOR IS SPECIFIED 00143000 * DMKMIAEN - TO PREPARE START COMMAND 00144000 * 00145000 * OPERATION - 00146000 * 00147000 * IF THE MONITOR IS ACTIVE (AS INDICATED BY THE PRESENCE 00148000 * OF THE MONITOR COMMUNICATIONS AREA) AND IF AUTO- 00149000 * MATIC MONITORING IS ENABLED (AS SPECIFIED IN THE 00150000 * SYSMON MACRO OF DMKSYS), THEN THE MODULE DMKMIAEN IS 00151000 * CALLED TO PREPARE A MONITOR STOP COMMAND 00152000 * 00153000 *. 00154000 ENTRY DMKENTET @V50A2B5 00155000 DMKENTET DS 0H @V50A2B5 00156000 USING *,R12 @V50A2B5 00157000 SL R12,=A(DMKENTET-DMKENT) @V50A2B5 00158000 USING DMKENT,R12 @V50A2B5 00159000 LA R4,DMKENTES @V50A2B5 00160000 MVI 0(R4),C'U' SET THE UNSTACK FLAG @V50A2B5 00161000 L R4,=A(DMKPRGMC) SEE IF MONITOR ALREADY ON @V50A2B5 00162000 ICM R4,B'1111',0(R4) I.E. DOES MONCOM EXIST @V50A2B5 00163000 BZ EXITN NO, CAN'T STOP IT THEN @V50A2B5 00164000 L R4,=A(DMKSYSAT) TEST SYSMON SETTING @V50A2B5 00165000 TM 0(R4),AUTGO SEE IF AUTODISK IS ON @V50A2B5 00166000 BNO EXITN NO, CAN'T AUTO START THEN @V50A2B5 00167000 CALL DMKMIAEN SHUT OFF MONITOR @V50A2B5 00168000 B EXITN @V50A2B5 00169000 EJECT 00170000 *. 00171000 * 00172000 * ENTRY POINT - 00173000 * DMKENTEC - VIA CPEXBLOK TO ISSUE MON STOP COMMAND 00174000 * 00175000 * EXTERNAL REFERENCES/CALLS 00176000 * 00177000 * DMKPRGMC - TO SEE IF MONITOR ALREADY ACTIVE 00178000 * DMKMIAEN - TO PREPARE A MONITOR STOP COMMAND 00179000 * 00180000 * OPERATION - 00181000 * IF THE MONITOR IS ACTIVE (AS INDICATED BY THE PRESENCE 00182000 * OF THE MONITOR COMMUNICATIONS AREA) THEN CALL THE 00183000 * PAGEABLE MODULE DMKMIAEN TO PREPARE A MON STOP COMMAND 00184000 * 00185000 *. 00186000 ENTRY DMKENTEC @V50A2B5 00187000 DMKENTEC DS 0H @V50A2B5 00188000 USING *,R12 @V50A2B5 00189000 SL R12,=A(DMKENTEC-DMKENT) @V50A2B5 00190000 USING DMKENT,R12 @V50A2B5 00191000 L R6,=A(DMKPRGMC) SEE IF MONITOR ALREADY ON @V50A2B5 00192000 ICM R6,B'1111',0(R6) I.E. DOES MONCOM EXIST @V50A2B5 00193000 BZ EXITN NO, CAN'T SHUT IT OFF THEN@V50A2B5 00194000 CALL DMKMIAEN SHUT OFF MONITOR @V50A2B5 00195000 B EXITN @V50A2B5 00196000 EJECT 00197000 *. 00198000 * 00199000 * ENTRY POINT - 00200000 * DMKENTFI - VIA CPEXBLOK TO SHUTDOWN ROUTINES DIRECTLY 00201000 * 00202000 * EXTERNAL REFERENCES/CALLS 00203000 * 00204000 * DMKMNIFI - PAGEABLE MODULE TO SHUTDOWN MONITOR 00205000 * 00206000 * OPERATION - 00207000 * 00208000 * THIS SMALL SECTION IS USED ONLY TO SATISFY THE STORAGE 00209000 * RESIDENCY REQUIREMENTS OF A CPEXBLOK. THE CPEXBLOK 00210000 * HAS BEEN USED TO SCHEDULE A REQUEST TO EXECUTE THE 00211000 * MONITOR SHUTDOWN ROUTINES IN DMKMNIFI 00212000 * 00213000 *. 00214000 ENTRY DMKENTFI @V50A2B5 00215000 DMKENTFI DS 0H @V50A2B5 00216000 USING *,R12 @V50A2B5 00217000 SL R12,=A(DMKENTFI-DMKENT) @V50A2B5 00218000 USING DMKENT,R12 @V50A2B5 00219000 CALL DMKMNIFI ROUTINE TO FREE UP ALL RESOURCES @V50A2B5 00220000 B EXITN @V50A2B5 00221000 EJECT 00222000 *. 00223000 * 00224000 * ENTRY POINT - 00225000 * 00226000 * DMKENTKC - VIA CPEXBLOK TO ISSUE MONITOR CLOSE 00227000 * 00228000 * CALLS - 00229000 * 00230000 * DMKMIAKC - MONITOR ROUTINE TO PREPARE A CLOSE COMMAND 00231000 * 00232000 * OPERATION - 00233000 * 00234000 * THIS ROUTINE MERELY SATISFIES THE MAIN STORAGE RESIDENCY 00235000 * REQUIREMENTS OF A CPEXBLOK ENTRY POINT 00236000 * 00237000 *. 00238000 ENTRY DMKENTKC @V50A2B5 00239000 DMKENTKC DS 0H @V50A2B5 00240000 USING *,R12 @V50A2B5 00240050 SL R12,=A(DMKENTKC-DMKENT) @V50A2B5 00240090 USING DMKENT,R12 @V50A2B5 00240130 CALL DMKMIAKC PREPARE MONITOR CLOSE @V50A2B5 00240170 B EXITN ... @V50A2B5 00240210 EJECT 00240250 *. 00240290 * ENTRY POINT - 00240330 * 00240370 * DMKENTTI - VIA TRQ TO GATHER I/O UTILIZATION DATA 00240410 * 00240450 * EXTERNAL REFERENCES/CALLS - 00240490 * 00240530 * DMKSCHST - SCHEDULE THE NEXT TRQ FOR UTILIZATION 00240570 * DMKCVTAB - ABEND DUE TO BAD TOD CLOCK 00240610 * 00240650 * EXIT CONDITIONS - 00240690 * 00240730 * NORMAL EXIT - DISPATCHER 00240770 * ABNORMAL EXIT - CVT001 ABEND DUE TO TOD CLOCK FAILURE 00240810 * 00240850 * OPERATION - 00240890 * 00240930 * SCHEDULE THE NEXT UTILIZATION TIMER REQUEST BLOCK. 00240970 * GATHER DEVICE, CONTROL UNIT, AND CHANNEL SAMPLES. 00241010 * 00241050 *. 00241090 ENTRY DMKENTTI @V60BEBC 00241130 DMKENTTI DS 0H @V60BEBC 00241170 USING *,R12 @V60BEBC 00241210 SL R12,=A(DMKENTTI-DMKENT) @V60BEBC 00241250 USING DMKENT,R12 @V60BEBC 00241290 L R9,=A(DMKPRGMC) GET ADDR OF MONCOM @V60BEBC 00241330 L R9,0(R9) ... @V60BEBC 00241370 USING MONCOM,R9 @V60BEBC 00241410 L R1,MONUTRB ADDR UTILIZATION TRB @V60BEBC 00241450 USING TRQBLOK,R1 @V60BEBC 00241490 STCK TRQBTOD TIME OF DAY FOR REQUEST @V60BEBC 00241530 BC 12,OKCLOCK CLOCK FUNCTIONING? @V60BEBC 00241570 GOTO DMKCVTAB NO, ABEND CVT001 @V60BEBC 00241610 OKCLOCK LH R3,DMKENTUT GET UTILIZATION INTERVAL @V60BEBC 00241650 LTR R3,R3 HAS INTERVAL BEEN TURNED OFF? @V60BEBC 00241690 BZ GETOUT @V60BEBC 00241730 SLR R2,R2 CLEAR FOR MULTIPLY @V60BEBC 00241770 M R2,=F'1000000' TO MICROSECONDS @V60BEBC 00241810 SLDL R2,12 ALIGN WITH TOD FORMAT @V60BEBC 00241850 AL R3,TRQBTOD+4 ADD IN LOW ORDER TOD BITS @V60BEBC 00241890 BC 12,JUMPOVE SKIP IF NO OVERFLOW @V60BEBC 00241930 AL R2,F1 ADD 1 TO HIGH ORDER TOD @V60BEBC 00241970 JUMPOVE AL R2,TRQBTOD ADD IN HIGH ORDER TOD BITS @V60BEBC 00242010 STM R2,R3,TRQBVAL NEXT INTERRUPT DUE AT THIS TIME@V60BEBC 00242050 CALL DMKSCHST INSERT TRB INTO REQUEST CHAIN @V60BEBC 00242090 DROP R1 @V60BEBC 00242130 GETOUT SWITCH TCH ON MP ONLY @V60BEBC 00242170 L R1,MONCHPTR GET PTR TO CHAN SAMPLES @V60BEBC 00242210 LH R2,0(R1) GET SAMPLE COUNT @V60BEBC 00242250 LA R2,1(R2) INCR SAMPLE COUNT @V60BEBC 00242290 STH R2,0(R1) SAVE IT BACK @V60BEBC 00242330 LA R1,MNCHSAMP(R1) INITIAL SAMPLE FIELD OFFSET @V60BEBC 00242370 LA R2,0 INITIAL CHANNEL NUMBER @V60BEBC 00242410 TCHLOOP TCH 0(R2) CHANNEL STATUS? @V60BEBC 00242450 BC 9,NOINCR FREE OR NOT-OP, NO INCREMENT @V60BEBC 00242490 LH R3,0(R1) GET CURRENT SAMPLE COUNT @V60BEBC 00242530 LA R3,1(R3) INCREMENT IT @V60BEBC 00242570 STH R3,0(R1) SAVE IT BACK @V60BEBC 00242610 NOINCR LA R1,MNCHSAMP(R1) INCR CHANNEL FIELD PTR @V60BEBC 00242650 LA R2,256(R2) INCR CHANNEL NUMBER @VA09282 00242690 C R2,F4096 ALL POSSIBLE CHANNELS?? @VA09282 00242730 BL TCHLOOP NO, DO NEXT CHANNEL @V60BEBC 00242770 SPACE 1 @V60BEBC 00242810 LH R1,MONDVNUM NUMBER OF DEVICES FOR BCT @V60BEBC 00242850 L R2,MONDVLST ADDR OF DEVICE LIST @V60BEBC 00242890 USING MNDEVLST,R2 DEVICE ENTRY ADDRESSABILITY @V60BEBC 00242930 USING RCUBLOK,R7 @V60BEBC 00242970 USING RDEVBLOK,R8 @V60BEBC 00243010 NEXTDEV L R8,0(R2) NEXT RDEVBLOK @V60BEBC 00243050 L R7,RDEVCUA AND RCUBLOK @V60BEBC 00243090 TM RCUTYPE,RCUSUB IS THIS SUB-CONTROL UNIT @V60BEBC 00243130 BZ JUMPONE NO SKIP @V60BEBC 00243170 L R7,RCUPRIME YES, GET PRIMARY CU @V60BEBC 00243210 JUMPONE TM RDEVSTAT,RDEVBUSY IS DEVICE MARKED BUSY? @V60BEBC 00243250 BZ TESTCU NO, HOW ABOUT CONTROL UNIT? @V60BEBC 00243290 LH R3,MNDVBSY YES, GET CURRENT COUNT @V60BEBC 00243330 LA R3,1(R3) INCREMENT IT @V60BEBC 00243370 STH R3,MNDVBSY SAVE IT BACK @V60BEBC 00243410 TESTCU TM RCUSTAT,RCUBUSY IS CONTROL UNIT MARKED BUSY @V60BEBC 00243450 BZ INCRDEV NO, DO NEXT DEVICE @V60BEBC 00243490 LH R3,MNCUBSY YES, GET CURRENT COUNT @V60BEBC 00243530 LA R3,1(R3) INCREMENT IT @V60BEBC 00243570 STH R3,MNCUBSY SAVE IT BACK @V60BEBC 00243610 INCRDEV LA R2,MNDEVLEN(R2) INCREMENT DEVICE LIST PTR @V60BEBC 00243650 BCT R1,NEXTDEV TEST FOR ALL DEVICES COMPLETED @V60BEBC 00243690 SPACE 1 @V60BEBC 00243730 B EXITN GOTO DISPATCHER @V60BEBC 00243770 EJECT @V60BEBC 00243810 *. 00243850 * 00243890 * ENTRY POINT - 00243930 * 00243970 * DMKENT62 - COLLECT I/O UTILIZATION DATA 00244010 * 00244050 * ENTRY CONDITIONS - 00244090 * 00244130 * GPR1 - POINTER TO MONITOR BUFFER 00244170 * GPR9 - POINTER TO MONCOM AREA 00244210 * GPR12- ADDRESSABILITY 00244250 * GPR13- SAVEAREA ADDRESS 00244290 * 00244330 * EXIT CONDITIONS - 00244370 * 00244410 * NONE 00244450 * 00244490 * EXTERNAL REFERENCES - 00244530 * 00244570 * NONE 00244610 * 00244650 * REGISTER USAGE - 00244690 * 00244730 * GPR4 - CHANNEL SAMPLE INDEX 00244770 * GPR5 - RCHBLOK ADDRESSABILITY 00244810 * GPR7 - RCUBLOK ADDRESSABILITY 00244850 * GPR8 - RDEVBLOK ADDRESSABILITY 00244890 * 00244930 * OPERATION - 00244970 * 00245010 * SCAN THROUGH THE MONITOR DASTAP LIST AND INSERT 00245050 * BUSY COUNTS FOR DEVICE, CONTROL UNIT, AND CHANNEL 00245090 * INTO THE CURRENT MONITOR BUFFER. 00245130 * 00245170 *. 00245210 DMKENT62 RELOC I/O UTILIZATION COLLECTION @V60BEBC 00245250 USING RDEVBLOK,R8 RDEVBLOK ADDRESSABILITY @V60BEBC 00245290 USING MONCOM,R9 COMM AREA ADDRESSABILITY @V60BEBC 00245330 USING MN602HDR,R1 @V60BEBC 00245370 L R3,MONCHPTR POINT TO CHANNEL SAMPLES 00245410 LH R3,0(R3) GET SAMPLE COUNT 00245450 STH R3,MN602SAM PUT SAMPLES INTO BUFFER @V60BEBC 00245490 LA R1,MN602HLN(R1) REPOSITION FIELD POINTER @V60BEBC 00245530 LH R3,MONDVNUM NUM. DEVICES FOR BCT @V60BEBC 00245570 DROP R1 @V60BEBC 00245610 USING MN602DEV,R1 SWITCH TO RECORD DSECT @V60BEBC 00245650 L R2,MONDVLST ADDR OF DEVICE LIST @V60BEBC 00245690 USING MNDEVLST,R2 DEVICE LIST ADDRESSABILITY @V60BEBC 00245730 USING RCUBLOK,R7 @V60BEBC 00245770 USING RCHBLOK,R5 @V60BEBC 00245810 MOVEADD1 L R8,0(R2) NEXT RDEVBLOK PTR @V60BEBC 00245850 L R7,RDEVCUA PICK UP CU ADDRESS @V60BEBC 00245890 MVC MN602ADD,RDEVADD GET DEVICE ADDRESS @V60BEBC 00245930 OC MN602ADD+1(1),RCUADD+1 AND CONTROL UNIT ADDRESS @V60BEBC 00245970 TM RCUTYPE,RCUSUB IS THIS A SUB-CONTROL UNIT @V60BEBC 00246010 BZ SKIPONE NO, C.U. OK AS IS @V60BEBC 00246050 L R7,RCUPRIME GET PRIME C.U. ADDRESS @V60BEBC 00246090 SKIPONE L R5,RCUCHA GET ADDR OF CHANNEL BLOCK @V60BEBC 00246130 OC MN602ADD(1),RCHADD ADD CHANNEL ADDRESS @V60BEBC 00246170 MVC MN602CHQ,RCHQCNT GET CHANNEL Q COUNT @V60BEBC 00246210 MVC MN602CUQ,RCUQCNT GET C.U. Q COUNT @V60BEBC 00246250 MVC MN602DVQ,RDEVQCNT GET DEVICE Q COUNT @V60BEBC 00246290 MVC MN602CUB(4),MNCUBSY GET DEVICE, C.U. BUSY COUNTS@V60BEBC 00246330 XC MNCUBSY(4),MNCUBSY THEN RESET THEM TO 0 @V60BEBC 00246370 LH R4,RCHADD OBTAIN CHANNEL SAMPLE @V60BEBC 00246410 SRL R4,7 INDEX @V60BEBC 00246450 A R4,MONCHPTR PT TO PROPER CHANNEL SAMPLE @V60BEBC 00246490 MVC MN602CHB(MNCHSAMP),2(R4) MOVE IT TO BUFFER @V60BEBC 00246530 LA R2,MNDEVLEN(R2) NEXT DEVICE BLOCK @V60BEBC 00246570 LA R1,MN602DLN(R1) NEXT MONITOR RECORD @V60BEBC 00246610 BCT R3,MOVEADD1 DO NEXT DEVICE @V60BEBC 00246650 L R4,MONCHPTR ADDRESS CHANNEL SAMPLES @V60BEBC 00246690 XC 0(MNCHSIZE*8,R4),0(R4) CLEAR CHANNEL SAMPLES @V60BEBC 00246730 EXIT RETURN TO DMKMON @V60BEBC 00246770 EJECT @V60BEBC 00246810 ENTRY DMKENTBS @V50A2B5 00246850 DMKENTBS DC C'U' MON START TRQ STATUS - SCHEDULED OR @V50A2B5 00248000 * REMOVED FROM CHAIN (UNSTACKED) 00249000 ENTRY DMKENTES @V50A2B5 00250000 DMKENTES DC C'U' MON STOP TRQ STATUS - SCHEDULED OR @V50A2B5 00251000 * REMOVED FROM CHAIN (UNSTACKED) 00252000 ENTRY DMKENTTB @V50A2B5 00253000 DMKENTTB DS 0D MONITOR START TIMER REQUEST BLOCK @V50A2B5 00254000 DC 40X'00' @V50A2B5 00255000 ENTRY DMKENTTE @V50A2B5 00256000 DMKENTTE DS 0D MONITOR STOP TIMER REQUEST BLOCK @V50A2B5 00257000 DC 40X'00' @V50A2B5 00258000 ENTRY DMKENTSK @V60BEBC 00258200 DMKENTSK DC A(0) POINTER TO SEEKS LIST @V60BEBC 00258400 ENTRY DMKENTUT @V60BEBC 00258600 DMKENTUT DC H'2' UTILIZATION INTERVAL DEFAULT @V60BEBC 00258800 COPY EQU @V50A2B5 00259000 COPY SAVE @V50A2B5 00260000 COPY VMBLOK @V50A2B5 00261000 COPY MONBLOKS @V50A2B5 00262000 COPY TIMER @V60BEBC 00262300 COPY RBLOKS 00262600 PSA @V50A2B5 00263000 END DMKENT 00264000