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