User Tools

Site Tools


ibm:vm370-lib:cp:dmkent.assemble_src

DMKENT Source

References

Source Listing

DMKENT.ASSEMBLE.txt
  1. ENT TITLE 'DMKENT (CP) VM/370 - RELEASE 6' 00001000
  2. COPY OPTIONS 00002000
  3. COPY LOCAL 00003000
  4. EJECT 00004000
  5. *. 00005000
  6. * 00006000
  7. * MODULE NAME - 00007000
  8. * DMKENT 00008000
  9. * 00009000
  10. * FUNCTION - 00010000
  11. * 00011000
  12. * TO PROVIDE MAIN STORAGE RESIDENT LINKAGE BETWEEN TIMER 00012000
  13. * REQUEST BLOCKS AND CP REQUEST BLOCKS AND THE PAGABLE 00013000
  14. * SERVICE ROUTINES OF VM/MONITOR 00014000
  15. * 00015000
  16. * ATTRIBUTES - 00016000
  17. * 00017000
  18. * RE-ENTRANT, RESIDENT, 00018000
  19. * 00019000
  20. * ENTERED VIA TRQBLOK TO START AND STOP MONITOR 00020000
  21. * AT TIMES SPECIFIED BY SYSMON MACRO OR OPERATOR 00021000
  22. * ENTERED VIA CPEXBLOK TO START AND STOP MONITOR 00022000
  23. * WHEN THE AUTOMATIC FACILITIES REQUIRE IMMEDIATE 00023000
  24. * AS OPPOSED TO DEFERRED ACTION, ALSO WHEN CLOSING 00024000
  25. * OF SPOOL FILE IS REQUIRED 00025000
  26. * DOES DEVICE, CONTROL UNIT, AND CHANNEL SAMPLING 00025500
  27. * 00026000
  28. * EXECUTABLE ENTRY POINTS - 00027000
  29. * 00028000
  30. * DMKENTST - VIA TRQ START MONITOR WITH MONITOR COMMAND 00029000
  31. * DMKENTSC - VIA CPEXBLOK START MONITOR WITH MONITOR COMMAND 00030000
  32. * DMKENTET - VIA TRQ STOP MONITOR WITH MON COMMAND 00031000
  33. * DMKENTEC - VIA CPEXBLOK STOP MONITOR WITH MON COMMAND 00032000
  34. * DMKENTFI - VIA CPEXBLOK COMPLETE MONITOR SHUTDOWN 00033000
  35. * DMKENTKC - VIA CPEXBLOK CLOSE MONITOR FILE WITH COMMAND 00034000
  36. * DMKENTTI - VIA TRQ FOR I/O UTILIZATION SAMPLING 00034300
  37. * DMKCVTAB - ABEND RTN FOR TOD CLOCK FAILURE 00034600
  38. * 00035000
  39. * NON EXECUTABLE ENTRY POINTS - 00036000
  40. * 00037000
  41. * DMKENTTB - TRQ FOR STARTING MONITORING 00038000
  42. * DMKENTBS - STATUS OF START TRQ 00039000
  43. * DMKENTTE - TRQ FOR STOPPING MONITORING 00040000
  44. * DMKENTES - STATUS OF END TRQ 00041000
  45. * DMKENTSK - POINTER TO SEEKS LIST 00041300
  46. * DMKENTUT - I/O UTILIZATION INTERVAL 00041600
  47. * 00042000
  48. * ENTRY CONDITIONS - 00043000
  49. * 00044000
  50. * GPR12 - ENTRY POINT ADDRESS 00045000
  51. * 00046000
  52. * EXIT CONDITIONS - 00047000
  53. * 00048000
  54. * NONE 00049000
  55. * 00050000
  56. * EXTERNAL REFERENCES/CALLS TO OTHER ROUTINES - 00051000
  57. * 00052000
  58. * SEE PROLOGUE FOR EACH ENTRY POINT 00053000
  59. * 00054000
  60. DMKENT START 00055000
  61. MODID DC CL8'DMKENT' 00056000
  62. SPACE 1 00057000
  63. EXTRN DMKPRGMC,DMKSYSAT,DMKMIAIN,DMKDSPCH @V50A2B5 00058000
  64. EXTRN DMKMIAEN,DMKMIAKC,DMKMNIFI @V50A2B5 00059000
  65. EXTRN DMKSCHST,DMKCVTAB 00059500
  66. SPACE 1 00060000
  67. USING PSA,R0 @V50A2B5 00061000
  68. USING VMBLOK,R11 @V50A2B5 00062000
  69. USING SAVEAREA,R13 @V50A2B5 00063000
  70. SPACE 1 00064000
  71. *. 00065000
  72. * 00066000
  73. * ENTRY POINT - 00067000
  74. * 00068000
  75. * DMKENTST - TIMER INTERRUPT REQUEST TO START MONITOR 00069000
  76. * 00070000
  77. * EXTERNAL REFERENCES/CALLS - 00071000
  78. * 00072000
  79. * DMKPRGMC - ADDRESS OF COMMUNICATIONS AREA 00073000
  80. * DMKSYSAT - INDICATOR FOR AUTOMATIC MONITORING 00074000
  81. * 00075000
  82. * DMKMIAIN - ROUTINE TO AUTOSTART MONITOR TO SPOOL 00076000
  83. * DMKDSPCH - WHERE TO GO TO START SOMETHING ELSE 00077000
  84. * 00078000
  85. * OPRERATION - 00079000
  86. * 00080000
  87. * IF THE MONITOR COMMUNICATIONS AREA DOES NOT ALREADY 00081000
  88. * EXIST, THEN THIS REQUEST TO AUTO START MONITOR IS 00082000
  89. * VALID AND THE SYSMON MACRO SPECIFICATIONS IN DMKSYS 00083000
  90. * IS CHECKED TO ENSURE THAT AUTOMATIC MONITORING IS IN 00084000
  91. * FACT OK IN THIS INSTALLATION. IF ALL IS WELL DMKMIAIN 00085000
  92. * IS CALLED TO DO THE AUTO START AFTER WHICH A BRANCH 00086000
  93. * IS MADE TO THE DISPATCHER TO FIND OTHER WORK TO DO 00087000
  94. * 00088000
  95. *. 00089000
  96. ENTRY DMKENTST @V50A2B5 00090000
  97. DMKENTST DS 0H @V50A2B5 00091000
  98. USING *,R12 @V50A2B5 00092000
  99. SL R12,=A(DMKENTST-DMKENT) @V50A2B5 00093000
  100. USING DMKENT,R12 @V50A2B5 00094000
  101. LA R4,DMKENTBS SET OFF THE STACK FLAG @V50A2B5 00095000
  102. MVI 0(R4),C'U' @V50A2B5 00096000
  103. L R4,=A(DMKPRGMC) SEE IF MONITOR ALREADY ON @V50A2B5 00097000
  104. ICM R4,B'1111',0(R4) @V50A2B5 00098000
  105. BNZ EXITN YES, INVALID TO RQST START @V50A2B5 00099000
  106. L R4,=A(DMKSYSAT) CHECK SYSMON MACRO @V50A2B5 00100000
  107. TM 0(R4),AUTGO IS AUTO FLAG SPECIFIED @V50A2B5 00101000
  108. BNO EXITN NO, RQST TO START INVALID @V50A2B5 00102000
  109. CALL DMKMIAIN YES, OK TO AUTO START MON. @V50A2B5 00103000
  110. EXITN GOTO DMKDSPCH ALL DONE, FIND WORK TO DO @V50A2B5 00104000
  111. EJECT @V50A2B5 00105000
  112. *. 00106000
  113. * 00107000
  114. * ENTRY POINT - 00108000
  115. * DMKENTSC - VIA CPEXBLOK TO ISSUE A MONITOR START SPOOL 00109000
  116. * 00110000
  117. * EXTERNAL REFERENCES/CALLS - 00111000
  118. * 00112000
  119. * DMKPRGMC - MONITOR COMMUNICATIONS AREA TO SEE IF ON 00113000
  120. * DMKMIAIN - MONITOR MODULE TO SET UP START COMMAND 00114000
  121. * 00115000
  122. * OPERATION - 00116000
  123. * 00117000
  124. * IF THE MONITOR COMMUNICATIONS AREA DOES NOT ALREADY 00118000
  125. * EXIST, THEN THE MONITOR IS NOT CURRENTLY ACTIVE AND 00119000
  126. * THE PAGEABLE MODULE DMKMIAIN IS CALLED TO PREPARE 00120000
  127. * A MONITOR START COMMAND 00121000
  128. *. 00122000
  129. ENTRY DMKENTSC @V50A2B5 00123000
  130. DMKENTSC DS 0H @V50A2B5 00124000
  131. USING *,R12 @V50A2B5 00125000
  132. SL R12,=A(DMKENTSC-DMKENT) @V50A2B5 00126000
  133. USING DMKENT,R12 @V50A2B5 00127000
  134. L R6,=A(DMKPRGMC) SEE IF MONITOR ALREADY ON @V50A2B5 00128000
  135. ICM R6,B'1111',0(R6) I.E. DOES MONCOM EXIST @V50A2B5 00129000
  136. BNZ EXITN YES , LET DISPATCHER WORK @V50A2B5 00130000
  137. CALL DMKMIAIN NO, OK TO ISSUE START @V50A2B5 00131000
  138. B EXITN @V50A2B5 00132000
  139. EJECT 00133000
  140. *. 00134000
  141. * 00135000
  142. * ENTRY POINT - 00136000
  143. * 00137000
  144. * DMKENTET - VIA TRQ TO ISSUE MONITOR STOP COMMAND 00138000
  145. * 00139000
  146. * EXTERNAL REFERENCES/CALLS 00140000
  147. * 00141000
  148. * DMKPRGMC - TO SEE IF MONITOR IS ACTIVE 00142000
  149. * DMKSYSAT - TO SEE IF AUTO MONITOR IS SPECIFIED 00143000
  150. * DMKMIAEN - TO PREPARE START COMMAND 00144000
  151. * 00145000
  152. * OPERATION - 00146000
  153. * 00147000
  154. * IF THE MONITOR IS ACTIVE (AS INDICATED BY THE PRESENCE 00148000
  155. * OF THE MONITOR COMMUNICATIONS AREA) AND IF AUTO- 00149000
  156. * MATIC MONITORING IS ENABLED (AS SPECIFIED IN THE 00150000
  157. * SYSMON MACRO OF DMKSYS), THEN THE MODULE DMKMIAEN IS 00151000
  158. * CALLED TO PREPARE A MONITOR STOP COMMAND 00152000
  159. * 00153000
  160. *. 00154000
  161. ENTRY DMKENTET @V50A2B5 00155000
  162. DMKENTET DS 0H @V50A2B5 00156000
  163. USING *,R12 @V50A2B5 00157000
  164. SL R12,=A(DMKENTET-DMKENT) @V50A2B5 00158000
  165. USING DMKENT,R12 @V50A2B5 00159000
  166. LA R4,DMKENTES @V50A2B5 00160000
  167. MVI 0(R4),C'U' SET THE UNSTACK FLAG @V50A2B5 00161000
  168. L R4,=A(DMKPRGMC) SEE IF MONITOR ALREADY ON @V50A2B5 00162000
  169. ICM R4,B'1111',0(R4) I.E. DOES MONCOM EXIST @V50A2B5 00163000
  170. BZ EXITN NO, CAN'T STOP IT THEN @V50A2B5 00164000
  171. L R4,=A(DMKSYSAT) TEST SYSMON SETTING @V50A2B5 00165000
  172. TM 0(R4),AUTGO SEE IF AUTODISK IS ON @V50A2B5 00166000
  173. BNO EXITN NO, CAN'T AUTO START THEN @V50A2B5 00167000
  174. CALL DMKMIAEN SHUT OFF MONITOR @V50A2B5 00168000
  175. B EXITN @V50A2B5 00169000
  176. EJECT 00170000
  177. *. 00171000
  178. * 00172000
  179. * ENTRY POINT - 00173000
  180. * DMKENTEC - VIA CPEXBLOK TO ISSUE MON STOP COMMAND 00174000
  181. * 00175000
  182. * EXTERNAL REFERENCES/CALLS 00176000
  183. * 00177000
  184. * DMKPRGMC - TO SEE IF MONITOR ALREADY ACTIVE 00178000
  185. * DMKMIAEN - TO PREPARE A MONITOR STOP COMMAND 00179000
  186. * 00180000
  187. * OPERATION - 00181000
  188. * IF THE MONITOR IS ACTIVE (AS INDICATED BY THE PRESENCE 00182000
  189. * OF THE MONITOR COMMUNICATIONS AREA) THEN CALL THE 00183000
  190. * PAGEABLE MODULE DMKMIAEN TO PREPARE A MON STOP COMMAND 00184000
  191. * 00185000
  192. *. 00186000
  193. ENTRY DMKENTEC @V50A2B5 00187000
  194. DMKENTEC DS 0H @V50A2B5 00188000
  195. USING *,R12 @V50A2B5 00189000
  196. SL R12,=A(DMKENTEC-DMKENT) @V50A2B5 00190000
  197. USING DMKENT,R12 @V50A2B5 00191000
  198. L R6,=A(DMKPRGMC) SEE IF MONITOR ALREADY ON @V50A2B5 00192000
  199. ICM R6,B'1111',0(R6) I.E. DOES MONCOM EXIST @V50A2B5 00193000
  200. BZ EXITN NO, CAN'T SHUT IT OFF THEN@V50A2B5 00194000
  201. CALL DMKMIAEN SHUT OFF MONITOR @V50A2B5 00195000
  202. B EXITN @V50A2B5 00196000
  203. EJECT 00197000
  204. *. 00198000
  205. * 00199000
  206. * ENTRY POINT - 00200000
  207. * DMKENTFI - VIA CPEXBLOK TO SHUTDOWN ROUTINES DIRECTLY 00201000
  208. * 00202000
  209. * EXTERNAL REFERENCES/CALLS 00203000
  210. * 00204000
  211. * DMKMNIFI - PAGEABLE MODULE TO SHUTDOWN MONITOR 00205000
  212. * 00206000
  213. * OPERATION - 00207000
  214. * 00208000
  215. * THIS SMALL SECTION IS USED ONLY TO SATISFY THE STORAGE 00209000
  216. * RESIDENCY REQUIREMENTS OF A CPEXBLOK. THE CPEXBLOK 00210000
  217. * HAS BEEN USED TO SCHEDULE A REQUEST TO EXECUTE THE 00211000
  218. * MONITOR SHUTDOWN ROUTINES IN DMKMNIFI 00212000
  219. * 00213000
  220. *. 00214000
  221. ENTRY DMKENTFI @V50A2B5 00215000
  222. DMKENTFI DS 0H @V50A2B5 00216000
  223. USING *,R12 @V50A2B5 00217000
  224. SL R12,=A(DMKENTFI-DMKENT) @V50A2B5 00218000
  225. USING DMKENT,R12 @V50A2B5 00219000
  226. CALL DMKMNIFI ROUTINE TO FREE UP ALL RESOURCES @V50A2B5 00220000
  227. B EXITN @V50A2B5 00221000
  228. EJECT 00222000
  229. *. 00223000
  230. * 00224000
  231. * ENTRY POINT - 00225000
  232. * 00226000
  233. * DMKENTKC - VIA CPEXBLOK TO ISSUE MONITOR CLOSE 00227000
  234. * 00228000
  235. * CALLS - 00229000
  236. * 00230000
  237. * DMKMIAKC - MONITOR ROUTINE TO PREPARE A CLOSE COMMAND 00231000
  238. * 00232000
  239. * OPERATION - 00233000
  240. * 00234000
  241. * THIS ROUTINE MERELY SATISFIES THE MAIN STORAGE RESIDENCY 00235000
  242. * REQUIREMENTS OF A CPEXBLOK ENTRY POINT 00236000
  243. * 00237000
  244. *. 00238000
  245. ENTRY DMKENTKC @V50A2B5 00239000
  246. DMKENTKC DS 0H @V50A2B5 00240000
  247. USING *,R12 @V50A2B5 00240050
  248. SL R12,=A(DMKENTKC-DMKENT) @V50A2B5 00240090
  249. USING DMKENT,R12 @V50A2B5 00240130
  250. CALL DMKMIAKC PREPARE MONITOR CLOSE @V50A2B5 00240170
  251. B EXITN ... @V50A2B5 00240210
  252. EJECT 00240250
  253. *. 00240290
  254. * ENTRY POINT - 00240330
  255. * 00240370
  256. * DMKENTTI - VIA TRQ TO GATHER I/O UTILIZATION DATA 00240410
  257. * 00240450
  258. * EXTERNAL REFERENCES/CALLS - 00240490
  259. * 00240530
  260. * DMKSCHST - SCHEDULE THE NEXT TRQ FOR UTILIZATION 00240570
  261. * DMKCVTAB - ABEND DUE TO BAD TOD CLOCK 00240610
  262. * 00240650
  263. * EXIT CONDITIONS - 00240690
  264. * 00240730
  265. * NORMAL EXIT - DISPATCHER 00240770
  266. * ABNORMAL EXIT - CVT001 ABEND DUE TO TOD CLOCK FAILURE 00240810
  267. * 00240850
  268. * OPERATION - 00240890
  269. * 00240930
  270. * SCHEDULE THE NEXT UTILIZATION TIMER REQUEST BLOCK. 00240970
  271. * GATHER DEVICE, CONTROL UNIT, AND CHANNEL SAMPLES. 00241010
  272. * 00241050
  273. *. 00241090
  274. ENTRY DMKENTTI @V60BEBC 00241130
  275. DMKENTTI DS 0H @V60BEBC 00241170
  276. USING *,R12 @V60BEBC 00241210
  277. SL R12,=A(DMKENTTI-DMKENT) @V60BEBC 00241250
  278. USING DMKENT,R12 @V60BEBC 00241290
  279. L R9,=A(DMKPRGMC) GET ADDR OF MONCOM @V60BEBC 00241330
  280. L R9,0(R9) ... @V60BEBC 00241370
  281. USING MONCOM,R9 @V60BEBC 00241410
  282. L R1,MONUTRB ADDR UTILIZATION TRB @V60BEBC 00241450
  283. USING TRQBLOK,R1 @V60BEBC 00241490
  284. STCK TRQBTOD TIME OF DAY FOR REQUEST @V60BEBC 00241530
  285. BC 12,OKCLOCK CLOCK FUNCTIONING? @V60BEBC 00241570
  286. GOTO DMKCVTAB NO, ABEND CVT001 @V60BEBC 00241610
  287. OKCLOCK LH R3,DMKENTUT GET UTILIZATION INTERVAL @V60BEBC 00241650
  288. LTR R3,R3 HAS INTERVAL BEEN TURNED OFF? @V60BEBC 00241690
  289. BZ GETOUT @V60BEBC 00241730
  290. SLR R2,R2 CLEAR FOR MULTIPLY @V60BEBC 00241770
  291. M R2,=F'1000000' TO MICROSECONDS @V60BEBC 00241810
  292. SLDL R2,12 ALIGN WITH TOD FORMAT @V60BEBC 00241850
  293. AL R3,TRQBTOD+4 ADD IN LOW ORDER TOD BITS @V60BEBC 00241890
  294. BC 12,JUMPOVE SKIP IF NO OVERFLOW @V60BEBC 00241930
  295. AL R2,F1 ADD 1 TO HIGH ORDER TOD @V60BEBC 00241970
  296. JUMPOVE AL R2,TRQBTOD ADD IN HIGH ORDER TOD BITS @V60BEBC 00242010
  297. STM R2,R3,TRQBVAL NEXT INTERRUPT DUE AT THIS TIME@V60BEBC 00242050
  298. CALL DMKSCHST INSERT TRB INTO REQUEST CHAIN @V60BEBC 00242090
  299. DROP R1 @V60BEBC 00242130
  300. GETOUT SWITCH TCH ON MP ONLY @V60BEBC 00242170
  301. L R1,MONCHPTR GET PTR TO CHAN SAMPLES @V60BEBC 00242210
  302. LH R2,0(R1) GET SAMPLE COUNT @V60BEBC 00242250
  303. LA R2,1(R2) INCR SAMPLE COUNT @V60BEBC 00242290
  304. STH R2,0(R1) SAVE IT BACK @V60BEBC 00242330
  305. LA R1,MNCHSAMP(R1) INITIAL SAMPLE FIELD OFFSET @V60BEBC 00242370
  306. LA R2,0 INITIAL CHANNEL NUMBER @V60BEBC 00242410
  307. TCHLOOP TCH 0(R2) CHANNEL STATUS? @V60BEBC 00242450
  308. BC 9,NOINCR FREE OR NOT-OP, NO INCREMENT @V60BEBC 00242490
  309. LH R3,0(R1) GET CURRENT SAMPLE COUNT @V60BEBC 00242530
  310. LA R3,1(R3) INCREMENT IT @V60BEBC 00242570
  311. STH R3,0(R1) SAVE IT BACK @V60BEBC 00242610
  312. NOINCR LA R1,MNCHSAMP(R1) INCR CHANNEL FIELD PTR @V60BEBC 00242650
  313. LA R2,256(R2) INCR CHANNEL NUMBER @VA09282 00242690
  314. C R2,F4096 ALL POSSIBLE CHANNELS?? @VA09282 00242730
  315. BL TCHLOOP NO, DO NEXT CHANNEL @V60BEBC 00242770
  316. SPACE 1 @V60BEBC 00242810
  317. LH R1,MONDVNUM NUMBER OF DEVICES FOR BCT @V60BEBC 00242850
  318. L R2,MONDVLST ADDR OF DEVICE LIST @V60BEBC 00242890
  319. USING MNDEVLST,R2 DEVICE ENTRY ADDRESSABILITY @V60BEBC 00242930
  320. USING RCUBLOK,R7 @V60BEBC 00242970
  321. USING RDEVBLOK,R8 @V60BEBC 00243010
  322. NEXTDEV L R8,0(R2) NEXT RDEVBLOK @V60BEBC 00243050
  323. L R7,RDEVCUA AND RCUBLOK @V60BEBC 00243090
  324. TM RCUTYPE,RCUSUB IS THIS SUB-CONTROL UNIT @V60BEBC 00243130
  325. BZ JUMPONE NO SKIP @V60BEBC 00243170
  326. L R7,RCUPRIME YES, GET PRIMARY CU @V60BEBC 00243210
  327. JUMPONE TM RDEVSTAT,RDEVBUSY IS DEVICE MARKED BUSY? @V60BEBC 00243250
  328. BZ TESTCU NO, HOW ABOUT CONTROL UNIT? @V60BEBC 00243290
  329. LH R3,MNDVBSY YES, GET CURRENT COUNT @V60BEBC 00243330
  330. LA R3,1(R3) INCREMENT IT @V60BEBC 00243370
  331. STH R3,MNDVBSY SAVE IT BACK @V60BEBC 00243410
  332. TESTCU TM RCUSTAT,RCUBUSY IS CONTROL UNIT MARKED BUSY @V60BEBC 00243450
  333. BZ INCRDEV NO, DO NEXT DEVICE @V60BEBC 00243490
  334. LH R3,MNCUBSY YES, GET CURRENT COUNT @V60BEBC 00243530
  335. LA R3,1(R3) INCREMENT IT @V60BEBC 00243570
  336. STH R3,MNCUBSY SAVE IT BACK @V60BEBC 00243610
  337. INCRDEV LA R2,MNDEVLEN(R2) INCREMENT DEVICE LIST PTR @V60BEBC 00243650
  338. BCT R1,NEXTDEV TEST FOR ALL DEVICES COMPLETED @V60BEBC 00243690
  339. SPACE 1 @V60BEBC 00243730
  340. B EXITN GOTO DISPATCHER @V60BEBC 00243770
  341. EJECT @V60BEBC 00243810
  342. *. 00243850
  343. * 00243890
  344. * ENTRY POINT - 00243930
  345. * 00243970
  346. * DMKENT62 - COLLECT I/O UTILIZATION DATA 00244010
  347. * 00244050
  348. * ENTRY CONDITIONS - 00244090
  349. * 00244130
  350. * GPR1 - POINTER TO MONITOR BUFFER 00244170
  351. * GPR9 - POINTER TO MONCOM AREA 00244210
  352. * GPR12- ADDRESSABILITY 00244250
  353. * GPR13- SAVEAREA ADDRESS 00244290
  354. * 00244330
  355. * EXIT CONDITIONS - 00244370
  356. * 00244410
  357. * NONE 00244450
  358. * 00244490
  359. * EXTERNAL REFERENCES - 00244530
  360. * 00244570
  361. * NONE 00244610
  362. * 00244650
  363. * REGISTER USAGE - 00244690
  364. * 00244730
  365. * GPR4 - CHANNEL SAMPLE INDEX 00244770
  366. * GPR5 - RCHBLOK ADDRESSABILITY 00244810
  367. * GPR7 - RCUBLOK ADDRESSABILITY 00244850
  368. * GPR8 - RDEVBLOK ADDRESSABILITY 00244890
  369. * 00244930
  370. * OPERATION - 00244970
  371. * 00245010
  372. * SCAN THROUGH THE MONITOR DASTAP LIST AND INSERT 00245050
  373. * BUSY COUNTS FOR DEVICE, CONTROL UNIT, AND CHANNEL 00245090
  374. * INTO THE CURRENT MONITOR BUFFER. 00245130
  375. * 00245170
  376. *. 00245210
  377. DMKENT62 RELOC I/O UTILIZATION COLLECTION @V60BEBC 00245250
  378. USING RDEVBLOK,R8 RDEVBLOK ADDRESSABILITY @V60BEBC 00245290
  379. USING MONCOM,R9 COMM AREA ADDRESSABILITY @V60BEBC 00245330
  380. USING MN602HDR,R1 @V60BEBC 00245370
  381. L R3,MONCHPTR POINT TO CHANNEL SAMPLES 00245410
  382. LH R3,0(R3) GET SAMPLE COUNT 00245450
  383. STH R3,MN602SAM PUT SAMPLES INTO BUFFER @V60BEBC 00245490
  384. LA R1,MN602HLN(R1) REPOSITION FIELD POINTER @V60BEBC 00245530
  385. LH R3,MONDVNUM NUM. DEVICES FOR BCT @V60BEBC 00245570
  386. DROP R1 @V60BEBC 00245610
  387. USING MN602DEV,R1 SWITCH TO RECORD DSECT @V60BEBC 00245650
  388. L R2,MONDVLST ADDR OF DEVICE LIST @V60BEBC 00245690
  389. USING MNDEVLST,R2 DEVICE LIST ADDRESSABILITY @V60BEBC 00245730
  390. USING RCUBLOK,R7 @V60BEBC 00245770
  391. USING RCHBLOK,R5 @V60BEBC 00245810
  392. MOVEADD1 L R8,0(R2) NEXT RDEVBLOK PTR @V60BEBC 00245850
  393. L R7,RDEVCUA PICK UP CU ADDRESS @V60BEBC 00245890
  394. MVC MN602ADD,RDEVADD GET DEVICE ADDRESS @V60BEBC 00245930
  395. OC MN602ADD+1(1),RCUADD+1 AND CONTROL UNIT ADDRESS @V60BEBC 00245970
  396. TM RCUTYPE,RCUSUB IS THIS A SUB-CONTROL UNIT @V60BEBC 00246010
  397. BZ SKIPONE NO, C.U. OK AS IS @V60BEBC 00246050
  398. L R7,RCUPRIME GET PRIME C.U. ADDRESS @V60BEBC 00246090
  399. SKIPONE L R5,RCUCHA GET ADDR OF CHANNEL BLOCK @V60BEBC 00246130
  400. OC MN602ADD(1),RCHADD ADD CHANNEL ADDRESS @V60BEBC 00246170
  401. MVC MN602CHQ,RCHQCNT GET CHANNEL Q COUNT @V60BEBC 00246210
  402. MVC MN602CUQ,RCUQCNT GET C.U. Q COUNT @V60BEBC 00246250
  403. MVC MN602DVQ,RDEVQCNT GET DEVICE Q COUNT @V60BEBC 00246290
  404. MVC MN602CUB(4),MNCUBSY GET DEVICE, C.U. BUSY COUNTS@V60BEBC 00246330
  405. XC MNCUBSY(4),MNCUBSY THEN RESET THEM TO 0 @V60BEBC 00246370
  406. LH R4,RCHADD OBTAIN CHANNEL SAMPLE @V60BEBC 00246410
  407. SRL R4,7 INDEX @V60BEBC 00246450
  408. A R4,MONCHPTR PT TO PROPER CHANNEL SAMPLE @V60BEBC 00246490
  409. MVC MN602CHB(MNCHSAMP),2(R4) MOVE IT TO BUFFER @V60BEBC 00246530
  410. LA R2,MNDEVLEN(R2) NEXT DEVICE BLOCK @V60BEBC 00246570
  411. LA R1,MN602DLN(R1) NEXT MONITOR RECORD @V60BEBC 00246610
  412. BCT R3,MOVEADD1 DO NEXT DEVICE @V60BEBC 00246650
  413. L R4,MONCHPTR ADDRESS CHANNEL SAMPLES @V60BEBC 00246690
  414. XC 0(MNCHSIZE*8,R4),0(R4) CLEAR CHANNEL SAMPLES @V60BEBC 00246730
  415. EXIT RETURN TO DMKMON @V60BEBC 00246770
  416. EJECT @V60BEBC 00246810
  417. ENTRY DMKENTBS @V50A2B5 00246850
  418. DMKENTBS DC C'U' MON START TRQ STATUS - SCHEDULED OR @V50A2B5 00248000
  419. * REMOVED FROM CHAIN (UNSTACKED) 00249000
  420. ENTRY DMKENTES @V50A2B5 00250000
  421. DMKENTES DC C'U' MON STOP TRQ STATUS - SCHEDULED OR @V50A2B5 00251000
  422. * REMOVED FROM CHAIN (UNSTACKED) 00252000
  423. ENTRY DMKENTTB @V50A2B5 00253000
  424. DMKENTTB DS 0D MONITOR START TIMER REQUEST BLOCK @V50A2B5 00254000
  425. DC 40X'00' @V50A2B5 00255000
  426. ENTRY DMKENTTE @V50A2B5 00256000
  427. DMKENTTE DS 0D MONITOR STOP TIMER REQUEST BLOCK @V50A2B5 00257000
  428. DC 40X'00' @V50A2B5 00258000
  429. ENTRY DMKENTSK @V60BEBC 00258200
  430. DMKENTSK DC A(0) POINTER TO SEEKS LIST @V60BEBC 00258400
  431. ENTRY DMKENTUT @V60BEBC 00258600
  432. DMKENTUT DC H'2' UTILIZATION INTERVAL DEFAULT @V60BEBC 00258800
  433. COPY EQU @V50A2B5 00259000
  434. COPY SAVE @V50A2B5 00260000
  435. COPY VMBLOK @V50A2B5 00261000
  436. COPY MONBLOKS @V50A2B5 00262000
  437. COPY TIMER @V60BEBC 00262300
  438. COPY RBLOKS 00262600
  439. PSA @V50A2B5 00263000
  440. END DMKENT 00264000
ibm/vm370-lib/cp/dmkent.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator