Table of Contents

DMMVMB Source

References

Source Listing

DMMVMB.ASSEMBLE.txt
  1. VMB TITLE 'DMMVMB (IPCS) VM/370 - RELEASE 6' 00001000
  2. * 00002000
  3. * MODULE NAME: 00003000
  4. * DMMVMB SUBROUTINE OF DUMPSCAN 00004000
  5. * 00005000
  6. * FUNCTION: 00006000
  7. * DISPLAY ALL VMBLOCK ADDRESSES, USERIDS AND STATUS 00007000
  8. * 00008000
  9. * ATTRIBUTES: 00009000
  10. * REUSABLE 00010000
  11. * NON-REENTRANT 00011000
  12. * 00012000
  13. * ENTRY POINTS: 00013000
  14. * DMMVMB 00014000
  15. * 00015000
  16. * ENTRY CONDITIONS: 00016000
  17. * NONE 00017000
  18. * 00018000
  19. * EXIT CONDITIONS: 00019000
  20. * RETURN CODE IN R15 0 - GOOD 00020000
  21. * 4 - WARNING 00021000
  22. * 00022000
  23. * CALLS TO OTHER ROUTINES: 00023000
  24. * DMMGET FETCH DUMP INTO CORE 00024000
  25. * DMMINT TRANSLATE HEX TO EBCDIC 00025000
  26. * 00026000
  27. * EXTERNAL REFERENCES: 00027000
  28. * 00028000
  29. * 00029000
  30. * TABLES/WORKAREAS: 00030000
  31. * 00031000
  32. * REGISTER USAGE: 00032000
  33. * R15 ADDRESSES OF EXTERNAL ROUTINES 00033000
  34. * R14 RETURNS FROM EXTERNAL ROUTINES 00034000
  35. * R13 SAVE AREA ADDRESS 00035000
  36. * R12 BASE 00036000
  37. * R11-R7 NOT USED 00037000
  38. * R6-R2 WORK REGISTERS 00038000
  39. * R4 PASSES ADDRESS TO INT 00039000
  40. * R3 PASSES LENGTH TO INT 00040000
  41. * R2 PASSES ADDRESS TO GET 00041000
  42. * 00042000
  43. * NOTES: 00043000
  44. * 00044000
  45. * OPERATION: 00045000
  46. * * * * * * * * THIS ROUTINE PROCESSES 'VMB' REQUESTS. 00046000
  47. * * * * * * * * IT SEARCHES THE VMBLOCK CHAIN, LISTING 00047000
  48. * * * * * * * * THE USERID, BLOCK ADDRESS, AND THE 00048000
  49. * * * * * * * * 'VMR', 'VMD', 'VMO', AND 'VMQ' STATUS BYTES. 00049000
  50. * 00050000
  51. * ERROR MESSAGES: 00051000
  52. * DMMVMB711I LOOP IN VMBLOK CHAIN 00052000
  53. * 00053000
  54. * * * * * * * *------- -------- -------- -------- ------* 00054000
  55. * * * * * * * *------- -------- -------- -------- ------* 00055000
  56. DMMVMB CSECT @VA04250 00056000
  57. EXTRN DMMGET FETCH DUMP INTO CORE @VA04250 00057000
  58. EXTRN DMMINT TRANSLATE @VA04250 00058000
  59. EXTRN TRTABLE TRANSLATE TABLE @VA04830 00059000
  60. STM R14,R12,SAVEDISP(R13) SAVE CALLER REGS @VA04250 00060000
  61. LR R12,R15 ADDRESSABILITY @VA04250 00061000
  62. USING DMMVMB,R12 ADD @VA04250 00062000
  63. ST R13,SAVEBACK CALLERS SAVE AREA PTR @VA04250 00063000
  64. B EYECATCH BYPASS EYE CATCHER @VA04250 00064000
  65. DS 0D ALIGN @VA04250 00065000
  66. DC CL8'DMMVMB' EYECATCHER @VA04250 00066000
  67. RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00067000
  68. EYECATCH LA R13,SAVEAREA OUR SAVE PTR @VA04250 00068000
  69. XC RETCODE,RETCODE CLEAR RETURN @VA04250 00069000
  70. * * * * * * * *------- -------- -------- -------- ------* 00070000
  71. * * * * * * * * GO TO DMMGET TO GET THE SYSTEM 00071000
  72. * * * * * * * * VMBLOCK ADDRESS 00072000
  73. * * * * * * * *------- -------- -------- -------- ------* 00073000
  74. LA R2,ASYSVM-PSA ADD DISP TO SYSVMB POINTER @VA04250 00074000
  75. BAL R10,GOGET ADDRESS @VA04250 00075000
  76. L R2,0(R2) GET TRUE VMBLOCK ADDRESS @VA04250 00076000
  77. ST R2,BLOCKADD VMB ADDRESS FOR TRANS @VA04250 00077000
  78. MVC USERID(L'OUTLEFT),BLANKOUT CLEAR WORK AREAS @VA04830 00078000
  79. LA R2,VMRSTAT-VMBLOK(R2) ADD DISP TO STATUS @VA04250 00079000
  80. BAL R10,GOGET BRING STATUS INTO CORE @VA04250 00080000
  81. MVC VMBSTAT,0(R2) PLUG STATUS TO TRANSLATE @VA04250 00081000
  82. L R2,BLOCKADD ADDRESS OF VMBLOK @VA04250 00082000
  83. LA R2,VMUSER-VMBLOK(R2) ADD DISP TO USERID @VA04250 00083000
  84. BAL R10,GOGET GET USERID INTO CORE @VA04250 00084000
  85. MVC USERID,0(R2) PLUG USER TO TRANSLATE @VA04250 00085000
  86. LA R3,TRANIN 7 - TRANS LENGTH @VA04250 00086000
  87. LA R4,BLOCKADD+ONE TRANS ADDRESS @VA04250 00087000
  88. L R15,INTADD TRANSLATE @VA04250 00088000
  89. BALR R14,R15 GO @VA04250 00089000
  90. MVC ADDRESS,0(R5) PLUG TRANSLATED ADDRESS IN MSG @VA04250 00090000
  91. MVC VMRSTATE,STAT(R5) PLUG TRANSLATED STATUS @VA04250 00091000
  92. MVC OUTLEFT,USERID FILL LEFT HALF @VA04250 00092000
  93. MVI LRSW,R SET SWITCH RIGHT @VA04250 00093000
  94. L R2,BLOCKADD SYSTEM VMBLOK @VA04250 00094000
  95. LA R2,VMPNT-VMBLOK(R2) ADD DISP TO NEXT USER @VA04250 00095000
  96. BAL R10,GOGET ADDRESS INTO CORE @VA04250 00096000
  97. L R2,0(R2) ADDRESS OF NEXT VMBLOK @VA04250 00097000
  98. LTR R2,R2 IS IT ZEROS @VA04250 00098000
  99. BNZ SAVEOC NO - KEEP ON @VA04250 00099000
  100. LA R8,HEADER1 HEADER ADDRESS @VA04250 00100000
  101. LA R9,L'HEADER1 30 - LENGTH OF SHORT HEADER @VA04250 00101000
  102. BAL R10,WRTERM WRITE HEADER @VA04250 00102000
  103. LA R8,USERID ADDRESS @VA04250 00103000
  104. LA R9,L'OUTLEFT 28 - ENTRY LENGTH @VA04250 00104000
  105. BAL R10,WRTERM WRITE ONE ENTRY @VA04250 00105000
  106. B RETURN CHECK FOR RIGHT HALF @VA04250 00106000
  107. SAVEOC LA R8,HEADER1 HEADER ADDRESS @VA04250 00107000
  108. LA R9,L'HEADER1+L'HEADER2 60 - LENGTH @VA04250 00108000
  109. BAL R10,WRTERM WRITE HEADER @VA04250 00109000
  110. ST R2,OPVMADD SAVE 'END-OF-CHAIN' ADDRESS @VA04250 00110000
  111. ST R2,BLOCKADD VMB ADDRESS FOR TRANS @VA04250 00111000
  112. * * * * * * * *------- -------- -------- -------- ------* 00112000
  113. * * * * * * * * NOW PROCESS THE REMAINING VMBLOCKS 00113000
  114. * * * * * * * *------- -------- -------- -------- ------* 00114000
  115. LA R6,MAXUSER MAX USERS - 256 @VA04250 00115000
  116. BALGET MVC USERID(L'OUTLEFT),BLANKOUT CLEAR WORK AREAS @VA04830 00116000
  117. L R2,BLOCKADD ADDRESS OF NEXT VMBLOK @VA04250 00117000
  118. LA R2,VMRSTAT-VMBLOK(R2) ADD DISP TO STATUS @VA04250 00118000
  119. BAL R10,GOGET BRING STATUS INTO CORE @VA04250 00119000
  120. MVC VMBSTAT,0(R2) PLUG STATUS TO TRANSLATE @VA04250 00120000
  121. L R2,BLOCKADD ADDRESS OF VMBLOK @VA04250 00121000
  122. LA R2,VMUSER-VMBLOK(R2) ADD DISP TO USERID @VA04250 00122000
  123. BAL R10,GOGET GET USERID INTO CORE @VA04250 00123000
  124. MVC USERID,0(R2) PLUG USER TO TRANSLATE @VA04250 00124000
  125. LA R3,TRANIN 7 - TRANS LENGTH @VA04250 00125000
  126. LA R4,BLOCKADD+ONE TRANS ADDRESS @VA04250 00126000
  127. L R15,INTADD TRANSLATE @VA04250 00127000
  128. BALR R14,R15 LINK @VA04250 00128000
  129. MVC ADDRESS,0(R5) PLUG TRANSLATED ADDRESS IN MSG @VA04250 00129000
  130. MVC VMRSTATE,STAT(R5) PLUG TRANSLATED STATUS @VA04250 00130000
  131. CLI LRSW,L IS IT 'LEFT' @VA04250 00131000
  132. BE MOVEL YES - MOVE IN LEFT HALF @VA04250 00132000
  133. MVC OUTRIGHT,USERID NO - MOVE IT TO RIGHT @VA04250 00133000
  134. MVI LRSW,L SET SWITCH LEFT @VA04250 00134000
  135. LA R8,OUTLEFT ADDRESS @VA04250 00135000
  136. LA R9,L'HEADER1+L'HEADER2 LENGTH - 60 @VA04250 00136000
  137. BAL R10,WRTERM WRITE A LINE @VA04250 00137000
  138. B NBA GET ADDRESS OF NEXT BLOCK @VA04250 00138000
  139. MOVEL MVC OUTLEFT,USERID FILL LEFT OF LINE @VA04250 00139000
  140. MVI LRSW,R SET SWITCH RIGHT @VA04250 00140000
  141. NBA L R2,BLOCKADD SYSTEM VMBLOK @VA04250 00141000
  142. LA R2,VMPNT-VMBLOK(R2) ADD DISP TO NEXT USER @VA04250 00142000
  143. BAL R10,GOGET ADDRESS INTO CORE @VA04250 00143000
  144. L R2,0(R2) ADDRESS OF NEXT VMBLOK @VA04250 00144000
  145. ST R2,BLOCKADD VMB ADDRESS FOR TRANS @VA04250 00145000
  146. C R2,OPVMADD POINT TO END OF CHAIN? @VA04250 00146000
  147. BE LASTCHEK YES - CHECK FOR A HALF LINE @VA04250 00147000
  148. BCT R6,BALGET GET NEXT VMBLOCK @VA04250 00148000
  149. LA R8,ERMSG711 ADDRESS @VA04250 00149000
  150. LA R9,L'ERMSG711 LENGTH @VA04250 00150000
  151. BAL R10,WRTERM 'LOOP IN VMBLOCK CHAIN' @VA04250 00151000
  152. MVC RETCODE,CODE4 BAD RET @VA04250 00152000
  153. B RETURN GIVE UP @VA04250 00153000
  154. * * * * * * * * ------- -------- -------- ------- * 00154000
  155. * * * * * * * * CHECK FOR LEFT OR RIGHT 00155000
  156. * * * * * * * * ------- -------- -------- ------- * 00156000
  157. LASTCHEK CLI LRSW,R IS THERE STILL A HALF LINE? @VA04250 00157000
  158. BNE RETURN NO - RETURN @VA04250 00158000
  159. LA R8,OUTLEFT ADDRESS @VA04250 00159000
  160. LA R9,L'OUTLEFT AND LENGTH - 28 @VA04250 00160000
  161. BAL R10,WRTERM YES - WRITE IT @VA04250 00161000
  162. B RETURN CLOSE OUT @VA04250 00162000
  163. * * * * * * * * ------- -------- -------- ------- * 00163000
  164. * * * * * * * * COMMON WRTERM 00164000
  165. * * * * * * * * ------- -------- -------- ------- * 00165000
  166. WRTERM L R7,TRTABADD GET TR TABLE ADDRESS @VA04830 00166000
  167. MVI 0(R7),BLANK SET '00' TO TRANSLATE AS '40' @VA04830 00167000
  168. BCTR R9,R0 CORRECT COUNT FOR TR @VA04830 00168000
  169. EX R9,TRANSLAT GET OUT ALL BAD STUFF @VA04830 00169000
  170. MVI 0(R7),XZERO RESTORE TRANSLATE TABLE @VA04830 00170000
  171. LA R9,1(R9) CORRECT COUNT FOR WRITE @VA04830 00171000
  172. ST R8,PARMLIS1 SAVE MSG TEXT PTR IN PARM LIST @V4075A2 00172000
  173. ST R9,PARMLIS2 AND TEXT LENGTH @V4075A2 00173000
  174. LA R1,PARMLIS1 POINTER TO PASS @V4075A2 00174000
  175. L R15,FEDLNADD ADDRESS OF DMMFEDLN - LINE WRITER@V4075A2 00175000
  176. BALR R14,R15 GO WRITE THE LINE @V4075A2 00176000
  177. BR R10 AND RETURN @V4075A2 00177000
  178. PARMLIS1 DS F PARM1 @V4075A2 00178000
  179. PARMLIS2 DS F PARM2 @V4075A2 00179000
  180. FEDLNADD DC V(DMMFEDLN) LINE WRITER ROUTINE @V4075A2 00180000
  181. TRANSLAT TR 0(0,R8),0(R7) OBJCT TRANSLATE @VA04830 00181000
  182. * * * * * * * * ------- -------- -------- ------- * 00182000
  183. * * * * * * * * COMMON ROUTINE TO LINK TO GETREC 00183000
  184. * * * * * * * * AND CHECK RETURN CODES 00184000
  185. * * * * * * * * ------- -------- -------- ------- * 00185000
  186. GOGET L R15,GETADD GETREC ADDRESS @VA04250 00186000
  187. BALR R14,R15 LINK @VA04250 00187000
  188. LTR R15,R15 CHECK RETURN CODE @VA04250 00188000
  189. BNZ CODECHEK GO FIND OUT JUST HOW BAD @VA04250 00189000
  190. BR R10 RETURN TO CALLER @VA04250 00190000
  191. CODECHEK C R15,CODE4 WARNING? @VA04250 00191000
  192. BNE FATAL NO - BAD STUFF @VA04250 00192000
  193. MVC RETCODE,CODE4 SET WARNING @VA04250 00193000
  194. B RETURN RETURN @VA04250 00194000
  195. FATAL MVC RETCODE,CODE8 FATAL @VA04250 00195000
  196. B RETURN GO BACK @VA04250 00196000
  197. * * * * * * * * ------- -------- -------- ------- * 00197000
  198. * * * * * * * * RETURN 00198000
  199. * * * * * * * * ------- -------- -------- ------- * 00199000
  200. RETURN L R13,SAVEBACK CALLERS SAVE PTR @VA04250 00200000
  201. MVC SAVREG15(L'RETCODE,R13),RETCODE RET CODE IN R15 @VA04250 00201000
  202. LM R14,R12,SAVEDISP(R13) RESTORE REGS @VA04250 00202000
  203. BR R14 RETURN @VA04250 00203000
  204. * * * * * * * * ------- -------- -------- ------- * 00204000
  205. * * * * * * * * CONSTANTS 00205000
  206. * * * * * * * * ------- -------- -------- ------- * 00206000
  207. BLOCKADD DS F VMBLOCK ADDRESS @VA04250 00207000
  208. VMBSTAT DS F STATUS BYTES @VA04250 00208000
  209. OPVMADD DS F ADDRESS OPERATOR VMBLOK @VA04250 00209000
  210. RETCODE DS F RETURN CODE @VA04250 00210000
  211. GETADD DC AL4(DMMGET) DUMP PAGE FETCHER @VA04250 00211000
  212. INTADD DC AL4(DMMINT) TRANSLATOR @VA04250 00212000
  213. TRTABADD DC AL4(TRTABLE) TRANSLATE TABLE @VA04830 00213000
  214. CODE4 DC F'4' WARNING RETURN CODE @VA04250 00214000
  215. CODE8 DC F'8' FATAL RETURN CODE @VA04250 00215000
  216. * * * * * * * * ------- -------- -------- ------- * 00216000
  217. * * * * * * * * SAVEAREA 00217000
  218. * * * * * * * * ------- -------- -------- ------- * 00218000
  219. SAVEAREA DS 0F THIS PROGRAM'S SAVE AREA @VA04250 00219000
  220. SAVEUSR DS F USER WORD @VA04250 00220000
  221. SAVEFWD DS F FORWARD POINTER @VA04250 00221000
  222. SAVEBACK DS F BACKWARD POINTER @VA04250 00222000
  223. SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 00223000
  224. SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 00224000
  225. SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 00225000
  226. SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 00226000
  227. SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 00227000
  228. SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 00228000
  229. SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 00229000
  230. SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 00230000
  231. SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 00231000
  232. SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 00232000
  233. SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 00233000
  234. SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 00234000
  235. SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 00235000
  236. SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 00236000
  237. SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 00237000
  238. * * * * * * * * ------- -------- -------- ------- * 00238000
  239. XZERO EQU X'00' HEX ZERO FOR TRANS TABLE @VA04830 00239000
  240. ONE EQU 1 COUNTER INCREMENT @VA04250 00240000
  241. STAT EQU 6 STAUS DISP @VA04250 00241000
  242. SAVEDISP EQU 12 REGS IN SAVE AREA @VA04250 00242000
  243. SAVREG15 EQU 16 REG 15 IN SAVE AREA @VA04250 00243000
  244. BLANK EQU X'40' BLANK FOR TRANSLATE TABLE @VA04830 00244000
  245. R EQU X'D9' RIGHT SWITCH STATUS @VA04250 00245000
  246. L EQU X'D3' LEFT SWITCH STATUS @VA04250 00246000
  247. MAXUSER EQU 256 MAX OF 256 USERS @VA04250 00247000
  248. TRANIN EQU 7 INPUT LENGTH TO TRANSLATE @VA04250 00248000
  249. LRSW DS C LEFT/RIGHT SWITCH @VA04250 00249000
  250. OUTLINE DS CL60 OUTPUT LINE @VA04250 00250000
  251. ORG OUTLINE LINE DESCRIPTION @VA04250 00251000
  252. OUTLEFT DS CL28 LEFT HALF @VA04250 00252000
  253. OUTSPACE DC CL4' ' SPACE @VA04250 00253000
  254. OUTRIGHT DS CL28 RIGHT HALF @VA04250 00254000
  255. USERID DS 1D USER ID @VA04250 00255000
  256. UIDSPACE DS CL2 PADDING @VA04250 00256000
  257. ADDRESS DS CL6 VMBLOCK ADDRESS @VA04250 00257000
  258. ADDSPACE DS CL4 PADDING @VA04250 00258000
  259. VMRSTATE DS CL8 STATUS @VA04250 00259000
  260. HEADER1 DC CL30'USERID ADDRESS VMRSTAT' @VA04250 00260000
  261. HEADER2 DC CL30' USERID ADDRESS VMRSTAT' @VA04250 00261000
  262. ERMSG711 DC C'DMMVMB711I LOOP IN VMBLOK CHAIN' @VA04428 00262000
  263. BLANKOUT DC CL30' ' FILL CHAR @VA04830 00263000
  264. PATCH DC 50F'0' PATCH @VA04250 00264000
  265. LTORG @VA04250 00265000
  266. PSA LOW CORE DSECT @VA04250 00266000
  267. COPY VMBLOK VBLOKS DSECT @VA04250 00267000
  268. R0 EQU 0 R0 EQUALS REGISTER 0 @VA04250 00268000
  269. R1 EQU 1 R1 EQUALS REGISTER 1 @VA04250 00269000
  270. R2 EQU 2 R2 EQUALS REGISTER 2 @VA04250 00270000
  271. R3 EQU 3 R3 EQUALS REGISTER 3 @VA04250 00271000
  272. R4 EQU 4 R4 EQUALS REGISTER 4 @VA04250 00272000
  273. R5 EQU 5 R5 EQUALS REGISTER 5 @VA04250 00273000
  274. R6 EQU 6 R6 EQUALS REGISTER 6 @VA04250 00274000
  275. R7 EQU 7 R7 EQUALS REGISTER 7 @VA04250 00275000
  276. R8 EQU 8 R8 EQUALS REGISTER 8 @VA04250 00276000
  277. R9 EQU 9 R9 EQUALS REGISTER 9 @VA04250 00277000
  278. R10 EQU 10 R10 EQUALS REGISTER 10 @VA04250 00278000
  279. R11 EQU 11 R11 EQUALS REGISTER 11 @VA04250 00279000
  280. R12 EQU 12 R12 EQUALS REGISTER 12 @VA04250 00280000
  281. R13 EQU 13 R13 EQUALS REGISTER 13 @VA04250 00281000
  282. R14 EQU 14 R14 EQUALS REGISTER 14 @VA04250 00282000
  283. R15 EQU 15 R15 EQUALS REGISTER 15 @VA04250 00283000
  284. END 00284000