Table of Contents

DMMTRC Source

References

Source Listing

DMMTRC.ASSEMBLE.txt
  1. TRC TITLE 'DMMTRC (IPCS) VM/370 - RELEASE 6' 00001000
  2. * 00002000
  3. * MODULE NAME: 00003000
  4. * DMMTRC SUBROUTINE OF DUMPSCAN 00004000
  5. * 00005000
  6. * FUNCTION: 00006000
  7. * DISPLAYS 'NNN' TRACE ENTRIES. 00007000
  8. * 00008000
  9. * ATTRIBUTES: 00009000
  10. * REUSABLE 00010000
  11. * NON-REENTRANT 00011000
  12. * 00012000
  13. * ENTRY POINTS: 00013000
  14. * DMMTRC 00014000
  15. * 00015000
  16. * ENTRY CONDITIONS: 00016000
  17. * R2 POINTS TO PLIST 00017000
  18. * 00018000
  19. * EXIT CONDITIONS: 00019000
  20. * R2 CONTAINS THE LAST DISPLAYED ADDRESS FOR SCROLL 00020000
  21. * R15 CONTAINS A RETURN CODE 0 - GOOD 00021000
  22. * 4 - WARNING 00022000
  23. * 8 - FAIR 00023000
  24. * 00024000
  25. * CALLS TO OTHER ROUTINES: 00025000
  26. * DMMGET FETCH DUMP PAGES INTO CORE 00026000
  27. * DMMFED DISPLAY SPECIFIED AREAS 00027000
  28. * 00028000
  29. * EXTERNAL REFERENCES: 00029000
  30. * 00030000
  31. * TABLES/WORKAREAS: 00031000
  32. * PLIST 00032000
  33. * 00033000
  34. * REGISTER USAGE: 00034000
  35. * R15 ADDRESSES OF EXTERNAL ROUTINES 00035000
  36. * R14 RETURNS FROM EXTERNAL ROUTINES 00036000
  37. * R13 SAVE AREA ADDRESS 00037000
  38. * R12 BASE 00038000
  39. * R11,R10 INTERNAL LINKS 00039000
  40. * R9-R2 WORK REGISTERS 00040000
  41. * R2 PASSES ADDRESSES TO SUBROUTINES 00041000
  42. * 00042000
  43. * NOTES: 00043000
  44. * 00044000
  45. * 00045000
  46. * OPERATION: 00046000
  47. * THIS LISTS THE REQUESTED NUMBER OF TRACE 00047000
  48. * TABLE ENTRIES. R2 POINTS TO THE PLIST. 00048000
  49. * CMD IS 'TRACE NNN'. 'NNN' IS THE NUMBER OF 00049000
  50. * ENTRIES IN HEX AND IS CONVERTED TO A START 00050000
  51. * ADDRESS AND BYTE COUNT WHICH IS PASSED 00051000
  52. * TO 'FED' WHO TREATS IT AS A 'DISPLAY' REQUEST. 00052000
  53. * IF NO COUNT IS ENTERED, IT DEFAULTS TO 20. 00053000
  54. * MAXIMUM COUNT IS 100 HEX OR THE TOP OF 00054000
  55. * THE PAGE, WHICHEVER COMES FIRST. 00055000
  56. * 00056000
  57. * ERROR MESSAGES: 00057000
  58. * DMMTRC710I NON-NUMERIC COUNT CHARACTER - RETRY 00058000
  59. * 00059000
  60. * 00060000
  61. * * * * * * * *------- -------- -------- -------- ------* 00061000
  62. EJECT 00062000
  63. DMMTRC CSECT @VA04250 00063000
  64. EXTRN DMMFED 'DISPLAY' @VA04250 00064000
  65. EXTRN DMMGET DUMP DATA FETCH @VA04250 00065000
  66. EXTRN DMMINT TRANSLATE @VA04250 00066000
  67. STM R14,R12,SAVEDISP(R13) CALLERS SAVE @VA04250 00067000
  68. LR R12,R15 ADDRESSABILITY @VA04250 00068000
  69. USING DMMTRC,R12 USE IT @VA04250 00069000
  70. ST R13,SAVEBACK CALLERS SAVE PTR @VA04250 00070000
  71. B EYECATCH BYPASS @VA04250 00071000
  72. DS 0D ALIGN @VA04250 00072000
  73. DC CL8'DMMTRC' EYCATCH @VA04250 00073000
  74. RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00074000
  75. EYECATCH LA R13,SAVEAREA OUR SAVE PTR @VA04250 00075000
  76. XC RETCODE(WORKL),RETCODE CLEAR RC AND WORK AREAS @VA04250 00076000
  77. MVI TPLIST,BLANK CLEAR TPLIST @VA04250 00077000
  78. MVC TPLIST+ONE(L'TPLIST-ONE),TPLIST TO BLANKS @VA04250 00078000
  79. * * * * * * * *------- -------- -------- -------- ------* 00079000
  80. * * * * * * * * PASS THE ADDRESS OF THE NEXT TT ENTRY 00080000
  81. * * * * * * * * TO GETREC AND HAVE HIM FETCH IT 00081000
  82. * * * * * * * *------- -------- -------- -------- ------* 00082000
  83. ST R2,PLISTADD SAVE THE INCOMING PLIST POINTER @VA04250 00083000
  84. LA R2,TRACCURR-IPLPSW DISP IN PSA, NEXT TT ENTRY @VA04250 00084000
  85. L R15,GETADD GETREC @VA04250 00085000
  86. BALR R14,R15 LINK @VA04250 00086000
  87. LTR R15,R15 TEST IT @VA04250 00087000
  88. BNZ BADRET BAD @VA04250 00088000
  89. MVC NEXTADD,0(R2) SAVE THE ADDRESS OF THE TT NEXT @VA04250 00089000
  90. * * * * * * * *------- -------- -------- -------- ------* 00090000
  91. * * * * * * * * GET THE PLIST ADDRESS IN R2. THIS FIRST 00091000
  92. * * * * * * * * RIGHT JUSTIFIES THE COUNT, CHECKING FOR 00092000
  93. * * * * * * * * VALIDITY, THEN CONVERTS THE COUNT TO HEX. 00093000
  94. * * * * * * * *------- -------- -------- -------- ------* 00094000
  95. L R2,PLISTADD GET PLIST PTR @VA04250 00095000
  96. CLC FENCE,PLL(R2) IS THERE A COUNT IN PLIST? @VA04250 00096000
  97. BNE CMOVEZ YES - CONTINUE @VA04250 00097000
  98. LA R3,DEFAULT NO - SET DEFAULT COUNT TO 19 @VA04250 00098000
  99. ST R3,HEXCOUNT STORE IT @VA04250 00099000
  100. B GOTCOUNT BYPASS ALL THIS STUFF @VA04250 00100000
  101. CMOVEZ MVC COUNT,CZEROS SET COUNT TO ZEROS @VA04250 00101000
  102. LA R4,L'COUNT COUNT 6 BYTES OF INPUT @VA04250 00102000
  103. LA R2,PL2L(R2) 13 - DISP TO LAST BYTE OF INPUT @VA04250 00103000
  104. LA R3,COUNT+L'COUNT-ONE LAST BYTE OF OUTPUT @VA04250 00104000
  105. CCOMPR CLI 0(R2),BLANK IS IT BLANK @VA04250 00105000
  106. BE CBUMP @VA04250 00106000
  107. * * * * * * * *------- -------- -------- -------- ------* 00107000
  108. * * * * * * * * FIRST CHECK INPUT VALIDITY 00108000
  109. * * * * * * * *------- -------- -------- -------- ------* 00109000
  110. CLI 0(R2),ZERO BELOW '0' @VA04250 00110000
  111. BL CBADIN NON NUMERIC @VA04250 00111000
  112. CLI 0(R2),X9 ABOVE '9' @VA04250 00112000
  113. BH CBADIN NON NUMERIC @VA04250 00113000
  114. CVALID MVC 0(ONE,R3),0(R2) MOVE THE CHAR @VA04250 00114000
  115. BCTR R3,R0 BACK UP OUTPUT PTR @VA04250 00115000
  116. CBUMP BCTR R2,R0 BACK UP INPUT PTR @VA04250 00116000
  117. BCT R4,CCOMPR TRY AGAIN @VA04250 00117000
  118. B CTRAN NOW GO TRANSLATE IT @VA04250 00118000
  119. CBADIN LA R8,ERMSG710 ADDRESS AND @VA04250 00119000
  120. LA R9,L'ERMSG710 AND LENGTH OF ERROR MSG @VA04250 00120000
  121. BAL R10,WRTERM GO WRITE IT @VA04250 00121000
  122. B RETURN GO BACK @VA04250 00122000
  123. * * * * * * * *------- -------- -------- -------- ------* 00123000
  124. * * * * * * * * NOW THE COUNT IS RIGHT JUSTIFIED IN THE 00124000
  125. * * * * * * * * 'COUNT' FIELD, AND WILL BE TRANSLATED 00125000
  126. * * * * * * * * TO HEX FOR THE COUNT ROUTINE. 00126000
  127. * * * * * * * *------- -------- -------- -------- ------* 00127000
  128. CTRAN PACK HEXCOUNT+FOR(L'HEXCOUNT-FOR),COUNT STRIP ZONES @VA04250 00128000
  129. CVB R3,HEXCOUNT CONVERT TO BINARY @VA04250 00129000
  130. LTR R3,R3 IS IT ZERO? @VA04250 00130000
  131. BNZ GOTCOUNT NO @VA04250 00131000
  132. LA R3,DEFAULT YES - SET DEFAULT TO 20 @VA04250 00132000
  133. ST R3,HEXCOUNT PLUG VALIDATED COUNT @VA04250 00133000
  134. * * * * * * * *------- -------- -------- -------- ------* 00134000
  135. * * * * * * * * VALIDATED HEX COUNT IS IN 'HEXCOUNT' 00135000
  136. * * * * * * * * AND R3. CHECK THE COUNT IS NOT OVER 100. 00136000
  137. * * * * * * * * CALCULATE THE STARTING ADDRESS TO 00137000
  138. * * * * * * * * PASS TO 'FED'. 00138000
  139. * * * * * * * *------- -------- -------- -------- ------* 00139000
  140. GOTCOUNT C R3,X100 COUNT OVER 100? @VA04250 00140000
  141. BNH GOODCNT NO - CONTINUE @VA04250 00141000
  142. LA R3,MAX YES - SET TO 100 HEX @VA04250 00142000
  143. ST R3,HEXCOUNT UPDATE THE SAVED COUNT @VA04250 00143000
  144. GOODCNT SLL R3,4 CONVERT ENTRIES TO BYTES @VA04250 00144000
  145. ST R3,HEXCOUNT PLUG BYTE COUNT @VA04250 00145000
  146. L R4,NEXTADD 'NEXT' TT ENTRY @VA04250 00146000
  147. LA R3,0(R3) CLEAR HI HO @VA04250 00147000
  148. LA R4,0(R4) DITTO @VA04250 00148000
  149. SR R4,R3 FIND START ADDRESS FOR DISPLAY @VA04250 00149000
  150. L R5,NEXTADD 'NEXT' TT ENTRY @VA04250 00150000
  151. LA R5,0(R5) CLEAR HI @VA04250 00151000
  152. SRL R5,12 ROUND TO PAGE BOUNDARY @VA04250 00152000
  153. SLL R5,12 AND RESTORE @VA04250 00153000
  154. CR R5,R4 IS START ADDRESS OFF PAGE BOTTO @VA04250 00154000
  155. BNH ADDTRAN NO - GO SET UP ADDRESS FOR FED @VA04250 00155000
  156. LR R4,R5 YES - USE PAGE BOUNDARY @VA04250 00156000
  157. L R3,NEXTADD ALSO MUST CHANGE THE COUNT @VA04250 00157000
  158. LA R3,0(R3) CLEAR HI @VA04250 00158000
  159. SR R3,R4 COUNT BYTES FROM PAGE BOUND TO @VA04250 00159000
  160. ST R3,HEXCOUNT 'NEXT' ADDRESS AND PLUG IT. @VA04250 00160000
  161. * * * * * * * *------- -------- -------- -------- ------* 00161000
  162. * * * * * * * * THE START ADDRESS FOR FED IS IN R4. 00162000
  163. * * * * * * * * CONVERT IT TO EBCDIC AND PLUG IT IN THE 00163000
  164. * * * * * * * * FED PLIST. 00164000
  165. * * * * * * * *------- -------- -------- -------- ------* 00165000
  166. ADDTRAN ST R4,HEXSTART PUT DOWN THE START ADDRESS @VA04250 00166000
  167. LA R4,HEXSTART GET ITS ADDRESS FOR INTERP @VA04250 00167000
  168. LA R3,TRINLEN 4 BYTES TO TRANSLATE @VA04250 00168000
  169. L R15,INTADD DO IT @VA04250 00169000
  170. BALR R14,R15 LINK @VA04250 00170000
  171. MVC TPLIST2(TRADL),ADISP(R5) XLATED ADD. TO PLIST @VA04250 00171000
  172. LA R4,HEXCOUNT ADDRESS OF COUNT TO TRANSLATE @VA04250 00172000
  173. LA R3,TRINLEN LENGTH @VA04250 00173000
  174. L R15,INTADD TRANSLATE THAT @VA04250 00174000
  175. BALR R14,R15 LINK @VA04250 00175000
  176. MVC TPLIST3(TRADL),ADISP(R5) AND PLUG IN FED PLIST @VA04250 00176000
  177. LA R2,TPLIST PLIST FOR FED @VA04250 00177000
  178. L R15,FEDADD LINK @VA04250 00178000
  179. BALR R14,R15 GO DISPLAY IT @VA04250 00179000
  180. B RETURN GO BACK @VA04250 00180000
  181. * * * * * * * * ------- -------- -------- ------- * 00181000
  182. * * * * * * * * WRTERM 00182000
  183. * * * * * * * * ------- -------- -------- ------- * 00183000
  184. WRTERM ST R8,PARMLIS1 SAVE MSG TEXT PTR IN PARM LIST @V4075A2 00184100
  185. ST R9,PARMLIS2 AND TEXT LENGTH @V4075A2 00184200
  186. LA R1,PARMLIS1 POINTER TO PASS @V4075A2 00184300
  187. L R15,FEDLNADD ADDRESS OF DMMFEDLN - LINE WRITER@V4075A2 00184400
  188. BALR R14,R15 GO WRITE THE LINE @V4075A2 00184500
  189. BR R10 AND RETURN @V4075A2 00184600
  190. PARMLIS1 DS F PARM1 @V4075A2 00184700
  191. PARMLIS2 DS F PARM2 @V4075A2 00184800
  192. FEDLNADD DC V(DMMFEDLN) LINE WRITER ROUTINE @V4075A2 00184900
  193. * * * * * * * * ------- -------- -------- ------- * 00186000
  194. BADRET ST R15,RETCODE PLUG RETURN CODE @VA04250 00187000
  195. B RETURN GET OUT @VA04250 00188000
  196. * * * * * * * * ------- -------- -------- ------- * 00189000
  197. * * * * * * * * RETURN 00190000
  198. * * * * * * * * ------- -------- -------- ------- * 00191000
  199. RETURN L R13,SAVEBACK CALLER SAVE PTR @VA04250 00192000
  200. ST R2,SAVEREG2(R13) PASS BACK 'HEXAD' FOR SCROLL @VA04250 00193000
  201. MVC SAVREG15(L'RETCODE,R13),RETCODE PLUG RETCODE @VA04250 00194000
  202. LM R14,R12,SAVEDISP(R13) RESTORE CALLER REGS @VA04250 00195000
  203. BR R14 RETURN @VA04250 00196000
  204. * * * * * * * *------- -------- -------- -------- ------* 00197000
  205. * * * * * * * * CONSTANTS 'N SUCH 00198000
  206. * * * * * * * *------- -------- -------- -------- ------* 00199000
  207. BLANK EQU X'40' BLANK @VA04250 00200000
  208. ZERO EQU X'F0' ZERO AND @VA04250 00201000
  209. X9 EQU X'F9' NINE FOR VALID HEX CHECKING @VA04250 00202000
  210. ONE EQU 1 LENGTH FOR A ONE CHAR MOVE @VA04250 00203000
  211. COUNT DS CL6 EBCDIC COUNT FROM PLIST @VA04250 00204000
  212. NINE DC H'9' TRANSLATE ALPHA CHAR @VA04250 00205000
  213. CZEROS DC 6C'0' PAD CHAR @VA04250 00206000
  214. DUMP DC CL8'D' PLUG 'DISPLAY' INTO PLIST @VA04250 00207000
  215. CODE4 DC F'4' RETCODE @VA04250 00208000
  216. X100 DC X'00000100' MAX TRACE ENTRIES ALLOWED @VA04250 00209000
  217. CREGLOAD DS F WORK AREA FOR COUNT @VA04250 00210000
  218. HEXSTART DS F START ADDRESS TO PASS TO FED @VA04250 00211000
  219. PLISTADD DS F SAVE AREA FOR PLIST ADDRESS @VA04250 00212000
  220. NEXTADD DS F NEXT AVAIL TT ENTRY ADDRESS @VA04250 00213000
  221. GETADD DC AL4(DMMGET) DATA FETCH @VA04250 00214000
  222. FEDADD DC AL4(DMMFED) DISPLAY ROUTINE @VA04250 00215000
  223. INTADD DC AL4(DMMINT) TRANSLATE @VA04250 00216000
  224. RETCODE DS F RETURN CODE AREA @VA04250 00217000
  225. HEXCOUNT DS D PACKED (HEX) COUNT FIELD @VA04250 00218000
  226. TPLIST DS CL24 PLIST FOR FED @VA04250 00219000
  227. ORG TPLIST+8 @VA04250 00220000
  228. TPLIST2 DS CL8 SECOND PARM @VA04250 00221000
  229. TPLIST3 DS CL8 THIRD PARM @VA04250 00222000
  230. WORKL EQU *-RETCODE LENGTH OF WORK AREA TO CLEAR @VA04250 00223000
  231. * * * * * * * * ------- -------- -------- ------- * 00224000
  232. * * * * * * * * SAVEAREA 00225000
  233. * * * * * * * * ------- -------- -------- ------- * 00226000
  234. SAVEAREA DS 0F THIS PROGRAM'S SAVE AREA @VA04250 00227000
  235. SAVEUSR DS F USER WORD @VA04250 00228000
  236. SAVEFWD DS F FORWARD POINTER @VA04250 00229000
  237. SAVEBACK DS F BACKWARD POINTER @VA04250 00230000
  238. SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 00231000
  239. SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 00232000
  240. SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 00233000
  241. SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 00234000
  242. SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 00235000
  243. SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 00236000
  244. SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 00237000
  245. SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 00238000
  246. SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 00239000
  247. SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 00240000
  248. SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 00241000
  249. SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 00242000
  250. SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 00243000
  251. SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 00244000
  252. SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 00245000
  253. * * * * * * * * ------- -------- -------- ------- * 00246000
  254. ADISP EQU 2 DISP INTO MSG OF ADDRESS @VA04250 00247000
  255. FOR EQU 4 PACK CONSTS @VA04250 00248000
  256. TRINLEN EQU 4 LENGTH OF ADDRESS TO TRANSLATE @VA04250 00249000
  257. TRADL EQU 6 LENGTH OF TRANSLATED ADDRESS @VA04250 00250000
  258. PLL EQU 8 PLIST ENTRY LENGTH @VA04250 00251000
  259. SAVEDISP EQU 12 REGS IN SAVEAREA @VA04250 00252000
  260. PL2L EQU 13 END OF SECOND PARM @VA04250 00253000
  261. SAVREG15 EQU 16 REG 15 IN SAVE AREA @VA04250 00254000
  262. TTENTLEN EQU 20 LENGTH OF A TRACE TABLE ENTRY @VA04250 00255000
  263. DEFAULT EQU 19 DEFAULT NUMBER OF TT ENTRIES @VA04250 00256000
  264. SAVEREG2 EQU 28 DISP TO REG 2 IN SAVE AREA @VA04250 00257000
  265. MAX EQU 255 MAX COUNT @VA04250 00258000
  266. FENCE DC XL8'FFFFFFFFFFFFFFFF' END OF PLIST @VA04250 00259000
  267. ERMSG710 DC C'DMMTRC710I NON-NUMERIC COUNT CHARACTER - RETRY' @VA04427 00260000
  268. DS 0D ALIGN @VA04250 00261000
  269. PATCH DC 50F'0' PATCH AREA @VA04250 00262000
  270. LTORG @VA04250 00263000
  271. PSA PSA DSECT @VA04250 00264000
  272. R0 EQU 0 R0 EQUALS REGISTER 0 @VA04250 00265000
  273. R1 EQU 1 R1 EQUALS REGISTER 1 @VA04250 00266000
  274. R2 EQU 2 R2 EQUALS REGISTER 2 @VA04250 00267000
  275. R3 EQU 3 R3 EQUALS REGISTER 3 @VA04250 00268000
  276. R4 EQU 4 R4 EQUALS REGISTER 4 @VA04250 00269000
  277. R5 EQU 5 R5 EQUALS REGISTER 5 @VA04250 00270000
  278. R6 EQU 6 R6 EQUALS REGISTER 6 @VA04250 00271000
  279. R7 EQU 7 R7 EQUALS REGISTER 7 @VA04250 00272000
  280. R8 EQU 8 R8 EQUALS REGISTER 8 @VA04250 00273000
  281. R9 EQU 9 R9 EQUALS REGISTER 9 @VA04250 00274000
  282. R10 EQU 10 R10 EQUALS REGISTER 10 @VA04250 00275000
  283. R11 EQU 11 R11 EQUALS REGISTER 11 @VA04250 00276000
  284. R12 EQU 12 R12 EQUALS REGISTER 12 @VA04250 00277000
  285. R13 EQU 13 R13 EQUALS REGISTER 13 @VA04250 00278000
  286. R14 EQU 14 R14 EQUALS REGISTER 14 @VA04250 00279000
  287. R15 EQU 15 R15 EQUALS REGISTER 15 @VA04250 00280000
  288. END 00281000