Table of Contents

DMMMOD Source

References

Source Listing

DMMMOD.ASSEMBLE.txt
  1. MOD TITLE 'DMMMOD (IPCS) VM/370 - RELEASE 6' 00001000
  2. * 00002000
  3. * MODULE NAME: 00003000
  4. * DMMMOD SUBROUTINE OF DUMPSCAN 00004000
  5. * 00005000
  6. * FUNCTION: 00006000
  7. * LOCATE MODULES AND ENTRY POINTS IN THE LOAD MAP. 00007000
  8. * IDENTIFY THE MODULE CONTAINING A GIVEN ADDRESS 00008000
  9. * 00009000
  10. * ATTRIBUTES: 00010000
  11. * REUSABLE 00011000
  12. * NON-REENTRANT 00012000
  13. * 00013000
  14. * ENTRY POINTS: 00014000
  15. * DMMMOD 00015000
  16. * 00016000
  17. * ENTRY CONDITIONS: 00017000
  18. * R2 POINTS TO PLIST WITH TOKENIZED INPUT 00018000
  19. * 00019000
  20. * EXIT CONDITIONS: 00020000
  21. * RETURN CODE IN R15 0 - GOOD 00021000
  22. * 4 - WARNING 00022000
  23. * 8 - FATAL 00023000
  24. * 00024000
  25. * CALLS TO OTHER ROUTINES: 00025000
  26. * DMMMOD GETS DUMP AREAS INTO CORE 00026000
  27. * DMMDIR DISPLAYS GOTTEN AREAS 00027000
  28. * 00028000
  29. * EXTERNAL REFERENCES: 00029000
  30. * DUMPFSCB 00030000
  31. * BUFF2 ITEM TABLE 00031000
  32. * ISW ITEM-TABLE-READ SWITCH 00032000
  33. * CMDINFO HEADER LINE 00033000
  34. * 00034000
  35. * TABLES/WORKAREAS: 00035000
  36. * BUFF LOAD MAP READ AREA 00036000
  37. * 00037000
  38. * REGISTER USAGE: 00038000
  39. * R15 ADDRESSES OF EXTERNAL ROUTINES 00039000
  40. * R14 RETURNS FROM EXTERNAL ROUTINES 00040000
  41. * R13 SAVE AREA ADDRESS 00041000
  42. * R12 BASE 00042000
  43. * R11,R10 INTERNAL LINKS 00043000
  44. * R9-R2 WORK REGISTERS 00044000
  45. * R2 PASSES ADDRESS OF PLIST TO SUBROUTINES 00045000
  46. * 00046000
  47. * NOTES: 00047000
  48. * 00048000
  49. * 00049000
  50. * OPERATION: 00050000
  51. * TYPE 1 - LOCATE A MODULE 00051000
  52. * DUMPSCAN PASSES 'MOD' THE ADDRESS OF THE PLIST 00052000
  53. * THIS POINTS TO A MODULE NAME. MOD READS IN A SHORT 00053000
  54. * FORM OF THE LOAD MAP FROM THE END OF THE DUMP, 00054000
  55. * SCANS FOR THE NAME, GETS THE ADDRESS OF THE MODULE AT 00055000
  56. * IPL TIME, CHECKS THROUGH THE SEGMENT AND PAGE TABLES 00056000
  57. * TO FIND WHERE IT WAS LOADED AT DUMP TIME. 00057000
  58. * IT THEN CALLS GETREC TO FETCH THAT AREA INTO CORE, 00058000
  59. * AND CALLS DIR TO DISPLAY IT. 00059000
  60. * TYPE 2 - FIX AN ADDRESS 00060000
  61. * DUMPSCAN PASSES MOD AN ADDRESS. THIS IS VALIDITY 00061000
  62. * CHECKED THEN A SEARCH IS MADE TO FIND THE CODE WHICH 00062000
  63. * CONTAINS THE ADDRESS. FIRST THE ADDRESS IS CHECKED 00063000
  64. * TO SEE IF IT IS ABOVE DMKCPEND. IF NOT, THE NAME IS 00064000
  65. * EXTRACTED FROM THE LOAD MAP. IF IT IS, THEN THE PAGE 00065000
  66. * CONTAINING THE ADDRESS IS BROUGHT INTO CORE. THE PAGE 00066000
  67. * IS SCANNED FROM THE ADDRESS BACK, UNTIL A MODULE NAME 00067000
  68. * IS FOUND. THE MESSAGE IS CONSTRUCTED TO GIVE THE 00068000
  69. * MODULE NAME AND DISPLACEMENT. 00069000
  70. * 00070000
  71. * ERROR MESSAGES: 00071000
  72. * DMMMOD705E ERROR IN ITEM TABLE 00072000
  73. * DMMMOD706I 'ENTRY' NOT FOUND IN LOAD MAP 00073000
  74. * DMMMOD707I 'MODULE' PAGE NOT VALID 00074000
  75. * 00075000
  76. * * * * * * * *------- -------- -------- -------- ------* 00076000
  77. DMMMOD CSECT @VA04250 00077000
  78. EXTRN DMMDIR FORMAT/DISPLAY @VA04250 00078000
  79. EXTRN DMMINT TRANSLATE @VA04250 00079000
  80. EXTRN DMMGET DUMP FETCH @VA04250 00080000
  81. EXTRN DMMHEX HEX TO EBC TRANS. @VA04250 00081000
  82. EXTRN SCRNAREA DISPLAY AREA @VA04250 00082000
  83. EXTRN DUMPFSCB FSCB OF DUMP @VA04250 00083000
  84. EXTRN ISW ITEM-TAB-READ SWITCH @VA04250 00084000
  85. EXTRN BUFF2 ITEM TABLE @VA04250 00085000
  86. EXTRN CMDINFO HEADER LINE @VA04250 00086000
  87. EXTRN TYPEFLAG DEVICE TYPE @VA04250 00087000
  88. EXTRN CONSOLE VIRT CONS ADDR @VA04250 00088000
  89. ENTRY BUFF BUFFER @VA04250 00089000
  90. ENTRY MAPREDSW HAS THE MAP BEEN READ @VA04250 00090000
  91. STM R14,R12,SAVEDISP(R13) CALLER REGS @VA04250 00091000
  92. LR R12,R15 ADDRESSABILITY @VA04250 00092000
  93. USING DMMMOD,R12 USE IT @VA04250 00093000
  94. ST R13,SAVEBACK CALLER SAVE PTR @VA04250 00094000
  95. B EYECATCH BYPASS EYECATCH @VA04250 00095000
  96. DS 0D ALIGN @VA04250 00096000
  97. DC CL8'DMMMOD' EYECATCHER @VA04250 00097000
  98. RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00098000
  99. EYECATCH LA R13,SAVEAREA OUR SAVE PTR @VA04250 00099000
  100. * * * * * * * *------- -------- -------- -------- ------* 00100000
  101. * * * * * * * * FIRST READ THE ITEM TABLE WHICH MAPS THE 00101000
  102. * * * * * * * * PAGES IN THE DUMP AGAINST RECORDS IN THE 00102000
  103. * * * * * * * * DUMP FILE. VMFDUMP READS THE LOAD MAP 00103000
  104. * * * * * * * * AND PRODUCES A SHORT VERSION WITH NAMES 00104000
  105. * * * * * * * * AND ADDRESSES ONLY. THIS IS TACKED ON 00105000
  106. * * * * * * * * AS THE THREE RECORDS AT THE END OF THE 00106000
  107. * * * * * * * * REGULAR DUMP. BY COUNTING THE ENTRIES 00107000
  108. * * * * * * * * IN THE ITEM TABLE, AND ADDING 5, WE GET 00108000
  109. * * * * * * * * THE RECORD NUMBER OF THE FIRST MAP PAGE. 00109000
  110. * * * * * * * *------- -------- -------- -------- ------* 00110000
  111. XC RETCODE,RETCODE CLEAR RETURN @VA04250 00111000
  112. L R3,CIADD COMMAND INFO LINE @VA04250 00112000
  113. MVC HDRNAME(PLISTENT,R3),0(R2) GET MOD FROM PLIST @VA04250 00113000
  114. L R3,BUFF2ADD INFO. RECORD @VA04250 00114000
  115. L R4,DFSCBADD DUMP FSCB @VA04250 00115000
  116. L R5,ISWADD ITEM-TABLE-READ? SWITCH @VA04250 00116000
  117. CLI 0(R5),ON IS ITEM TABLE IN BUFF2 ? @VA04250 00117000
  118. BE TABSCAN YES - GO COUNT ENTRIES @VA04250 00118000
  119. FSREAD FSCB=(R4),BUFFER=(R3),ERROR=RDERR,RECNO=2 @VA04250 00119000
  120. MVI 0(R5),ON TURN ON 'ITEM TABLE READ' SWITC @VA04250 00120000
  121. TABSCAN LA R3,ITEMINDX(R3) POINT TO ITEM TABLE @VA04250 00121000
  122. LA R6,NULL SET TABLE ENTRY COUNTER @VA04250 00122000
  123. L R7,MAXCOUNT MAX 1792 ENTRIES VALID @VA04250 00123000
  124. EOTAB CLC 0(L'FOXES,R3),FOXES IS THIS THE END-OF-TABLE? @VA04250 00124000
  125. BE READMAP YES - GO READ IN THE LOAD MAP @VA04250 00125000
  126. LA R3,TWO(R3) BUMP TABLE POINTER @VA04250 00126000
  127. LA R6,ONE(R6) BUMP ENTRY COUNTER @VA04250 00127000
  128. BCT R7,EOTAB LOOK AT THE NEXT ONE @VA04250 00128000
  129. LA R8,ERMSG705 ADDRESS AND @VA04250 00129000
  130. LA R9,L'ERMSG705 LENGTH FOR WRTERM @VA04250 00130000
  131. BAL R10,WRTERM GO WRITE IT @VA04250 00131000
  132. MVC RETCODE,CODE4 SET ACCEPTABLE RETURN CODE @VA04250 00132000
  133. B RETURN GO HANDLE IT @VA04250 00133000
  134. READMAP CLI MAPREDSW,RED HAS THE MAP BEEN READ? @VA04250 00134000
  135. BE MAPRED YES - DONT READ IT @VA04250 00135000
  136. LA R3,LMRECS NO-COUNT THREE LOAD MAP RECORDS @VA04250 00136000
  137. LA R6,DUMMYREC(R6) CORRECT FOR EXTRA RECORDS @VA04250 00137000
  138. LA R5,BUFF ADDRESS OF WORK BUFFER @VA04250 00138000
  139. READ FSREAD FSCB=(R4),BUFFER=(R5),RECNO=(R6),ERROR=LMERR @VA04250 00139000
  140. A R5,FOURK NEXT AREA IN BUFFER @VA04250 00140000
  141. LA R6,ONE(R6) NEXT RECORD @VA04250 00141000
  142. BCT R3,READ READ THREE RECORDS @VA04250 00142000
  143. MVI MAPREDSW,RED SET MAP READ SWITCH @VA04250 00143000
  144. * * * * * * * *------- -------- -------- -------- ------* 00144000
  145. * * * * * * * * NOW THE SORTED MAP IS IN CORE IN 00145000
  146. * * * * * * * * BUFF. FIRST CHECK TO SEE IF THIS IS A 'DMK?' 00146000
  147. * * * * * * * * TYPE, AND GO TO 'QREQUEST' IF IT IS. 00147000
  148. * * * * * * * * IF NOT, IT IS A REQUEST TO LOCATE A MODULE. 00148000
  149. * * * * * * * * SCAN ON THE FIRST 6 CHARS OF THE ENTERED NAME 00149000
  150. * * * * * * * * UNTIL WE GET A HIT, THEN CHECK FOR 8. 00150000
  151. * * * * * * * * GET A HIT, THEN CHECK FOR 8. 00151000
  152. * * * * * * * * IF WE GET A 6 CHAR HIT, BUT NO 8, GO WITH 00152000
  153. * * * * * * * * THE 6, WHICH REPRESENTS THE MODULE 00153000
  154. * * * * * * * * CONTAINING THE ENTRY POINT WHOSE NAME 00154000
  155. * * * * * * * * WAS ENTERED. 00155000
  156. * * * * * * * *------- -------- -------- -------- ------* 00156000
  157. MAPRED CLC DMKQ,0(R2) LOCATE AN ADDRESS? @VA04250 00157000
  158. BE QREQUEST YES - GO CHANGE ADDRESS TO HEX @VA04250 00158000
  159. LA R3,BUFF NO - LOCATE A NAME @VA04250 00159000
  160. LA R4,MAXMAP 4095 MAX MAP ENTRIES @VA04250 00160000
  161. XC MODADD,MODADD CLEAR ADDRESS @VA04250 00161000
  162. NAME6 CLC 0(MODL,R2),0(R3) HIT ON MODULE NAME? @VA04250 00162000
  163. BNE NEXTNAME NO - GET THE NEXT ONE @VA04250 00163000
  164. NAME8 MVC SIXNAME(MAPENT),0(R3) SAVE 6 HIT IN CASE NO 8 @VA04250 00164000
  165. ENTRNAME CLC 0(ENTRL,R2),0(R3) HIT ON ALL 8? @VA04250 00165000
  166. BE EIGHTHIT YES - GO FETCH IT @VA04250 00166000
  167. LA R3,MAPENT(R3) TRY NEXT @VA04250 00167000
  168. BCT R4,ENTRNAME TRY ALL EIGHT @VA04250 00168000
  169. B ANYHIT GO SEE IF WE EVER HAD A HIT @VA04250 00169000
  170. NEXTNAME LA R3,MAPENT(R3) NO - TRY NEXTY @VA04250 00170000
  171. BCT R4,NAME6 TRY AGAIN @VA04250 00171000
  172. ANYHIT CLC MODADD,XZERO HAVE WE HAD A HIT ON 6? @VA04250 00172000
  173. BE MODNF NO - EXIT WITH ERROR MSG @VA04250 00173000
  174. L R6,CIADD YES- SET UP IN HEADER LINE TO @VA04250 00174000
  175. MVC HDRNAME(ENTRL,R6),SIXNAME NAME SAVED FROM 6 HIT @VA04250 00175000
  176. B MOD6 AND GO WITH A 6 CHAR HIT @VA04250 00176000
  177. MODNF MVC MSGMODNM(ENTRL),0(R2) PLUG MODNAME INTO ERR MSG @VA04250 00177000
  178. LA R8,ERMSG706 ADDRESS FOR WRTERM @VA04250 00178000
  179. LA R9,E706L LENGTH @VA04250 00179000
  180. BAL R10,WRTERM WRITE IT @VA04250 00180000
  181. MVC RETCODE,CODE4 PLUG RETURN CODE @VA04250 00181000
  182. B RETURN GO BACK @VA04250 00182000
  183. * * * * * * * *------- -------- -------- -------- ------* 00183000
  184. * * * * * * * * NOW WE HAVE A HIT ON THE INPUT MODULE 00184000
  185. * * * * * * * * NAME. GET THE IPL ADDRESS FROM THE MAP, 00185000
  186. * * * * * * * * AND FIND OUT WHERE IT WAS LOADED AT 00186000
  187. * * * * * * * * DUMP TIME 00187000
  188. * * * * * * * *------- -------- -------- -------- ------* 00188000
  189. EIGHTHIT MVC MODADD,ADDR(R3) THIS IS IT - SAVE ADDRESS @VA04250 00189000
  190. MOD6 LA R4,MODADD+ONE SET DATA UP FOR TRANSLATE @VA04250 00190000
  191. LA R3,ADRL SET UP LENGTH @VA04250 00191000
  192. L R15,INTADD TRANSLATE IT @VA04250 00192000
  193. BALR R14,R15 LINK @VA04250 00193000
  194. L R6,CIADD ADDRESS OF INFORMATION HEADER @VA04250 00194000
  195. MVC HDRMAP(L'MAP,R6),MAP SET 'MAP' IN HEADER @VA04250 00195000
  196. MVC HDRADD(TRANSADL,R6),0(R5) PLUG XLAT ADD IN MSG @VA04250 00196000
  197. B GETREAL AND GO FIND IT IN THE DUMP @VA04250 00197000
  198. * * * * * * * *------- -------- -------- -------- ------* 00198000
  199. * * * * * * * * THIS ROUTINE TAKES THE MODULE ADDRESS 00199000
  200. * * * * * * * * AS RECORDED IN THE LOAD MAP, AND FINDS 00200000
  201. * * * * * * * * THE ADDRESS AT WHICH IT WAS LOADED AT DUMP 00201000
  202. * * * * * * * * TIME. IT READS THAT PAGE IN AND FORMATS IT 00202000
  203. * * * * * * * *------- -------- -------- -------- ------* 00203000
  204. GETREAL LA R2,SYSVMBAD OFFSET OF SYSTEM VMBLOCK - 892 @VA04250 00204000
  205. BAL R10,GOGET GO TO GETREC @VA04250 00205000
  206. L R4,MODADD PICK UP ADDRESS FROM LOAD MAP @VA04250 00206000
  207. MVC ALIGNER,0(R2) ALIGN ADDRESS @VA04250 00207000
  208. L R2,ALIGNER GET SYS VMBLOK ADDRESS @VA04250 00208000
  209. BAL R10,GOGET GETREC ADDRESS @VA04250 00209000
  210. L R2,SEGTAB(R2) FIRST SEG TAB ADDRESS @VA04250 00210000
  211. BAL R10,GOGET GET IT INTO CORE @VA04250 00211000
  212. LR R5,R4 CONVERT THE SYM TAB ADDRESS @VA04250 00212000
  213. SRL R5,16 TO A SEGMENT NO. @VA04250 00213000
  214. SLL R5,2 CONVERT TO WORDS, ADD TO START @VA04250 00214000
  215. AR R2,R5 NOW R2 HAS DESIRED SEG TAB ADD @VA04250 00215000
  216. L R2,0(R2) DITTO PAGE TABLE @VA04250 00216000
  217. BAL R10,GOGET GETREC ADDRESS @VA04250 00217000
  218. LR R5,R4 GET ADDRESS AGAIN AND @VA04250 00218000
  219. SLL R5,16 CONVERT TO A PAGE WITHIN @VA04250 00219000
  220. SRL R5,28 THE SEGMENT. @VA04250 00220000
  221. SLL R5,1 DOUBLE FOR HALF WD. ENTRIES @VA04250 00221000
  222. AR R2,R5 POINT TO HALFWD WITH REAL @VA04250 00222000
  223. TM VALBYT(R2),VALPAGE PAGE VALID? @VA04250 00223000
  224. BZ GETIT YES- GO PICK IT UP @VA04250 00224000
  225. L R3,CIADD INFO RECORD @VA04250 00225000
  226. MVC INVMOD,HDRNAME(R3) MOVE MOD NAME @VA04250 00226000
  227. MVC INVPAGE,INVP(R3) MOVE IN 'INVALID PAGE' MSG @VA04250 00227000
  228. LA R8,ERMSG707 ADDRESS AND @VA04250 00228000
  229. LA R9,E707L LENGTH @VA04250 00229000
  230. BAL R10,WRTERM GO WRITE IT @VA04250 00230000
  231. MVC RETCODE,CODE4 RETURN CODE @VA04250 00231000
  232. L R2,CIADD INFO LINE @VA04250 00232000
  233. MVC 0(LINELEN,R2),BLANKOUT CLEAR IT @VA04830 00233500
  234. B RETURN LET HIM TRY AGAIN @VA04250 00234000
  235. GETIT L R2,0(R2) PAGE NO. PICK IT UP, STRIP @VA04250 00235000
  236. SRL R2,16 OFF SPARE HALF WORD, CONVERT @VA04250 00236000
  237. SLL R2,8 IT TO A PAGE ADDRESS @VA04250 00237000
  238. LR R5,R4 GET THE ADDRESS AND REDUCE @VA04250 00238000
  239. SLL R5,20 IT TO A DISPLACEMENT @VA04250 00239000
  240. SRL R5,20 AND LOAD R2 WITH THE DUMP ADDRE @VA04250 00240000
  241. AR R2,R5 S OF THE REQUIRED MODULE @VA04250 00241000
  242. ST R2,REALADD SAVE THE REAL ADDRESS @VA04250 00242000
  243. SRL R2,4 ROUND TO A QUAD WORD BOUNDARY @VA04250 00243000
  244. SLL R2,4 AND RESTORE @VA04250 00244000
  245. LR R7,R2 SAVE REAL ADDRESS FOR SCREEN @VA04250 00245000
  246. ST R2,HEXAD SAVE FOR SCROLL @VA04250 00246000
  247. LA R4,REALADD+ONE SET UP TO TRANSLATE DATA @VA04250 00247000
  248. LA R3,ADRL AND LENGTH @VA04250 00248000
  249. L R15,INTADD TRANSLATE @VA04250 00249000
  250. BALR R14,R15 LINK @VA04250 00250000
  251. L R3,CIADD INFO HEADER @VA04250 00251000
  252. MVC REALREAL(L'REAL,R3),REAL PLUG 'REAL' TAG @VA04250 00252000
  253. MVC REELADD(TRANSADL,R3),0(R5) PLUG REAL ADD IN MSG @VA04250 00253000
  254. L R4,TYPEADD ADDRESS OF DEVICE TYPE FLAG @VA04250 00254000
  255. CLI 0(R4),TYPER TYPEWRITER? @VA04250 00255000
  256. BE TYPE YES - GO TYPE HEADER ONLY @VA04250 00256000
  257. BAL R10,GOGET GETREC ADDRESS @VA04250 00257000
  258. L R15,DIRADD GO TO FORMAT AND SCREEN IT @VA04250 00258000
  259. BALR R14,R15 LINK @VA04250 00259000
  260. B RETURN BACK TO DX @VA04250 00260000
  261. * * * * * * * * ------- -------- -------- ------- * 00261000
  262. * * * * * * * * THIS ROUTINE ACCEPTS AN ADDRESS, AND SCANS 00262000
  263. * * * * * * * * THE LOAD MAP FOR THE ENTRY ADDRESS CLOSEST 00263000
  264. * * * * * * * * TO, AND BELOW THE GIVEN ADDRESS. THE 00264000
  265. * * * * * * * * ADDRESS IS RETURNED WITH THE ENTRY NAME AND 00265000
  266. * * * * * * * * THE DISPLACEMENT OF THE ADDRESS FROM IT. 00266000
  267. * * * * * * * * FIRST FIND DMKCPEND. THIS IS USED LATER 00267000
  268. * * * * * * * * AS PAGEABLE PAGES MAY NOT BE AT THEIR 00268000
  269. * * * * * * * * LOAD MAP ADDRESSES. ADDRESSES WILL BE FOUND 00269000
  270. * * * * * * * * BY SCANNING THE ACTUAL PAGE FOR 'DMKXXX ' 00270000
  271. * * * * * * * * ------- -------- -------- ------- * 00271000
  272. QREQUEST CLI FIRSTIME,ON FIRST TIME THIS CODE? @VA04250 00272000
  273. BNE GETCPE NO - CONTINUE @VA04250 00273000
  274. MVI FIRSTIME,OFF YES - TURN IT OFF AND @VA04250 00274000
  275. XC CPENDADD,CPENDADD ZERO THE ADDRESS @VA04250 00275000
  276. GETCPE L R3,CPENDADD GET IN CORE ADDR OF CPEND @VA04250 00276000
  277. CLC DMKCPEND,0(R3) IS THIS REALLY IT? @VA04250 00277000
  278. BE TRANSADD YES - BYPASS SEARCH @VA04250 00278000
  279. LA R3,BUFF NO - SCAN LOADMAP FOR 'DMKCPEND' @VA04250 00279000
  280. CPEND CLC DMKCPEND,0(R3) 'CPEND'? @VA04250 00280000
  281. BE GOTEND GOT IT - GO SAVE IT @VA04250 00281000
  282. LA R3,MAPENT(R3) BUMP BY 12 FOR NEXT ENTRY @VA04250 00282000
  283. B CPEND TRY AGAIN @VA04250 00283000
  284. * * * * * * * * ------- -------- -------- ------- * 00284000
  285. * * * * * * * * GOT THE LOCATION - NOW SAVE THE 00285000
  286. * * * * * * * * IN CORE ADDRESS OF CPEND AND THE 00286000
  287. * * * * * * * * NEXT PAGE, WHICH IS THE FIRST 00287000
  288. * * * * * * * * PAGEABLE PAGE. 00288000
  289. * * * * * * * * ------- -------- -------- ------- * 00289000
  290. GOTEND ST R3,CPENDADD IN CORE ADDRESS OF CPEND @VA04250 00290000
  291. L R3,ENTRL(R3) REAL ADD OF CPEND @VA04250 00291000
  292. SRL R3,12 PAGE @VA04250 00292000
  293. LA R3,ONE(R3) NEXT PAGE @VA04250 00293000
  294. SLL R3,12 NEXT PAGE ADDRESS @VA04250 00294000
  295. ST R3,PAGEADD SAVE FIRST PAGEABLE PAGE @VA04250 00295000
  296. * * * * * * * * ------- -------- -------- ------- * 00296000
  297. * * * * * * * * NOW TRANSLATE THE GIVEN ADDRESS TO HEX 00297000
  298. * * * * * * * * ------- -------- -------- ------- * 00298000
  299. TRANSADD LA R4,PLISTENT(R2) GET ADDRESS TO TRANSLATE @VA04250 00299000
  300. L R15,HEXADD ADDRESS OF TRANS ROUTINE @VA04250 00300000
  301. BALR R14,R15 LINK @VA04250 00301000
  302. LTR R15,R15 TEST RETURN @VA04250 00302000
  303. BNZ CODECHEK FIND HOW BAD @VA04250 00303000
  304. * * * * * * * * ------- -------- -------- ------- * 00304000
  305. * * * * * * * * NOW R5 CONTAINS THE GIVEN ADDRESS 00305000
  306. * * * * * * * * IN HEXADECIMAL. FIRST CHECK IT AGAINST 00306000
  307. * * * * * * * * PAGEADD TO SEE IF IT IS PAGEABLE 00307000
  308. * * * * * * * * ------- -------- -------- ------- * 00308000
  309. C R5,PAGEADD REQUESTED ADD PAGEABLE? @VA04250 00309000
  310. BNL PAGEMOD YES - GO GET PAGE TO SCAN @VA04250 00310000
  311. LA R3,BUFF START OF MAP @VA04250 00311000
  312. LA R5,0(R5) CLEAR HI ORDER BYTE @VA04250 00312000
  313. LA R6,MAPENT LOAD WITH 12 TO BACK UP POINTER @VA04250 00313000
  314. COMPDMK CLC DMK,0(R3) IS THIS A VALID ENTRY? @VA04250 00314000
  315. BNE ENDOFMAP NO - WERE OFF THE END OF THE MAP @VA04250 00315000
  316. C R5,ENTRL(R3) YES - COMPARE THE ADDRESSES @VA04250 00316000
  317. BNH WRITELOC GO DISPLAY, IF NO LONGER HIGH @VA04250 00317000
  318. LA R3,MAPENT(R3) BUMP BY 12 FOR NEXT ENTRY @VA04250 00318000
  319. B COMPDMK AND TRY AGAIN @VA04250 00319000
  320. * * * * * * * * ------- -------- -------- ------- * 00320000
  321. * * * * * * * * THE SEARCH IS OVER. NOW SET UP THE RESULTS 00321000
  322. * * * * * * * * ------- -------- -------- ------- * 00322000
  323. WRITELOC BE BACKEMUP DONT BACK UP IF ADDRESSES EQUAL @VA04250 00323000
  324. ENDOFMAP SR R3,R6 TO NEXT LOWER ENTRY @VA04250 00324000
  325. * * * * * * * * ------- -------- -------- ------- * 00325000
  326. * * * * * * * * R3 POINTS TO THE ENTRY/MODNAME AT OR 00326000
  327. * * * * * * * * IMMEDIATELY BELOW THE GIVEN ADDRESS. 00327000
  328. * * * * * * * * NOW SCAN BACK TO THE MODULE NAME 00328000
  329. * * * * * * * * WHICH CORRESPONDS TO THIS ENTRY POINT 00329000
  330. * * * * * * * * ------- -------- -------- ------- * 00330000
  331. BACKEMUP SR R3,R6 PREVIOUS ENTRY IN MAP @VA04250 00331000
  332. CLC 0(MODL,R3),MAPENT(R3) FIRST SIX LETTERS MATCH? @VA04250 00332000
  333. BE BACKEMUP YES - BACK UP ONE MORE @VA04250 00333000
  334. CLC DMKFEIBM,0(R3) OR IS IT FEIBM? @VA04250 00334000
  335. BE BACKEMUP YES - IGNORE IT @VA04250 00335000
  336. CLC DMKFEIBM,MAPENT(R3) OR WAS IT FEIBM? @VA04250 00336000
  337. BE BACKEMUP IGNORE IT AGAIN @VA04250 00337000
  338. AR R3,R6 NO - ADD 12 BACK ON TO POINTER @VA04250 00338000
  339. * * * * * * * * ------- -------- -------- ------- * 00339000
  340. * * * * * * * * NOW CALCULATE THE DISPLACEMENT OF THE 00340000
  341. * * * * * * * * GIVEN ADDRESS FROM THE ENTRY POINT 00341000
  342. * * * * * * * * ------- -------- -------- ------- * 00342000
  343. NAMEHIT L R6,ENTRL(R3) MOVE ADDR FROM MAP TO WORKAREA @VA04250 00343000
  344. LA R6,0(R6) CLEAR HI ORD @VA04250 00344000
  345. SR R5,R6 GET DISPL. IN R5 @VA04250 00345000
  346. ST R5,HEXDISP AND SAVE IT TO TRANSLATE @VA04250 00346000
  347. MVC ADDOUT(MSGLEN),BLANKOUT CLEAR MESSAGE AREA @VA04830 00347500
  348. MVC TEXT1(L'TEXT1TEX),TEXT1TEX PLUG IN TEXT OF MSG @VA04250 00348000
  349. MVC MODOUT,0(R3) PLUG MOD/ENTRY NAME IN MSG @VA04250 00349000
  350. LA R4,ENTRL+ONE(R3) ADDRESS OF HEX ADDR IN MAP @VA04250 00350000
  351. LA R3,ADRL THREE BYTE HEX ADDRESS LENGTH @VA04250 00351000
  352. L R15,INTADD ADDRESS OF TRANS ROUTINE @VA04250 00352000
  353. BALR R14,R15 LINK @VA04250 00353000
  354. MVC MAPADOUT,0(R5) PLUG TRANS MAP ADDRESS IN MSG @VA04250 00354000
  355. LA R3,ADRL LENGTH TO TRANSLATE @VA04250 00355000
  356. LA R4,HEXDISP+ONE ADDRESS OF DATA @VA04250 00356000
  357. L R15,INTADD ADDRESS OF TRANS ROUTINE @VA04250 00357000
  358. BALR R14,R15 LINK @VA04250 00358000
  359. MVC DISPOUT,0(R5) PLUG THE CALCULATED DISP @VA04250 00359000
  360. MVC ADDOUT,PLISTENT(R2) PLUG THE ADDRESS @VA04250 00360000
  361. LA R8,ADDOUT ADDRESS OF MESSAGE @VA04250 00361000
  362. LA R9,MSGLEN LENGTH @VA04250 00362000
  363. BAL R10,WRTERM GO WRITE IT @VA04250 00363000
  364. L R2,TYPEADD CHECK IF TYPER OR SCREEN @V4075A2 00363150
  365. CLI 0(R2),TYPER TYPEWRITER @V4075A2 00363200
  366. BE SHORTRDY YES GO WRITE *R @V4075A2 00363250
  367. LA R8,LNGRDY NO - LONG *** READY *** @V4075A2 00363300
  368. LA R9,L'LNGRDY AND LENGTH @V4075A2 00363350
  369. B GOWRITE GO TO GO TO WRITE IT @V4075A2 00363400
  370. SHORTRDY LA R8,SHRTRDY SHORT MSG @V4075A2 00363450
  371. LA R9,L'SHRTRDY AND LENGTH @V4075A2 00363500
  372. GOWRITE BAL R10,WRTERM AND WRITE THE CHOSEN WORDS @V4075A2 00363550
  373. B RETURN BACK TO CALLER @VA04250 00364000
  374. * * * * * * * * ------- -------- -------- ------- * 00365000
  375. * * * * * * * * THIS TYPES THE HEADER TO A 2741 00366000
  376. * * * * * * * * ------- -------- -------- ------- * 00367000
  377. TYPE LR R8,R3 ADDRESS OF HEADER @VA04250 00368000
  378. LA R9,LINELEN/2 40 - HALF A LINE LENGTH @VA04250 00369000
  379. BAL R10,WRTERM WRITE THE HEADER @VA04250 00370000
  380. LA R8,RDY SHORT READY @VA04250 00371000
  381. LA R9,L'RDY LENGTH @VA04250 00372000
  382. BAL R10,WRTERM GO WRITE SHORT READY @VA04250 00373000
  383. B RETURN GO BACK @VA04250 00374000
  384. * * * * * * * * ----------------------------------* 00375000
  385. * * * * * * * * ADDRESS IS PAGEABLE, SCAN THE PAGE 00376000
  386. * * * * * * * * ----------------------------------* 00377000
  387. PAGEMOD ST R2,PLISTADD SAVE PLIST ADDRESS @VA04250 00378000
  388. LR R2,R5 PASS TO GETREC @VA04250 00379000
  389. BAL R10,GOGET GET IT INTO CORE @VA04250 00380000
  390. ST R2,INCOREQ SAVE IN CORE REQ-ADDR ADDRESS @VA04250 00381000
  391. SRL R2,3 ROUND TO A DOUBLE WORD BOUNDARY @VA04250 00382000
  392. SLL R2,3 RESTORE @VA04250 00383000
  393. LR R3,R5 GET THE ADDRESS @VA04250 00384000
  394. SLL R3,20 AND CONVERT IT TO THE NUMBER OF @VA04250 00385000
  395. SRL R3,23 DBLEWORDS DOWN TO THE PAGE BOUND @VA04250 00386000
  396. LA R3,ONE(R3) PLUS 1 GIVES THE NUMBER OF TRIES @VA04250 00387000
  397. * * * * * * * * ------- -------- -------- ------- * 00388000
  398. * * * * * * * * NOW SEARCH THE INCORE PAGE FOR 'DMK' 00389000
  399. * * * * * * * * IT WILL EITHER BE 'DMKXXXYY' - A MODULE 00390000
  400. * * * * * * * * NAME, OR DMKXXXNNNX, - A MESSAGE NUMBER 00391000
  401. * * * * * * * * THE THIRD POSSIBILITY IS THAT THE ADDRESS 00392000
  402. * * * * * * * * DOES NOT FALL WITHIN A CP MODULE. 00393000
  403. * * * * * * * * ------- -------- -------- ------- * 00394000
  404. LA R4,ENTRL '8' TO DECREMENT PAGE POINTER. @VA04250 00395000
  405. MODCOMP CLC DMK,0(R2) DMK? @VA04250 00396000
  406. BE GOTDMK GO CHECK IF MOD OR MESSAGE @VA04250 00397000
  407. BUMPDMK SR R2,R4 DECREMENT POINTER @VA04250 00398000
  408. BCT R3,MODCOMP TRY NEXT @VA04250 00399000
  409. L R2,PLISTADD RESTORE PLIST PTR @VA04250 00400000
  410. MVC NOTMODAD(PLISTENT),PLISTENT(R2) GET INPUT ADDR @VA04250 00401000
  411. LA R8,NOTMODAD 'ADDRESS NOT IN MODULE' MSG @VA04250 00402000
  412. LA R9,NOTMODL LENGTH @VA04250 00403000
  413. BAL R10,WRTERM WRITE IT @VA04250 00404000
  414. B RETURN @VA04250 00405000
  415. * * * * * * * * ------- -------- -------- ------- * 00406000
  416. * * * * * * * * GOT A HIT ON 'DMK'. CHECK IF IT IS 00407000
  417. * * * * * * * * A MESSAGE OR A MODULE NAME 00408000
  418. * * * * * * * * ------- -------- -------- ------- * 00409000
  419. GOTDMK TM ENTRL(R2),FOXZ IS THE NEXT BYTE NUMERIC? @VA04250 00410000
  420. BO BUMPDMK YES - MESSAGE - KEEP LOOKING @VA04250 00411000
  421. CLC DMKMAC,0(R2) NO - THEN IS IT DMKMAC @VA04250 00412000
  422. BE BUMPDMK YES - THIS IS NOT A MODULE NAME @VA04250 00413000
  423. L R3,INCOREQ NO - GOT A MODULE - CALCULATE @VA04250 00414000
  424. SR R3,R2 DISPLACEMENT IN R3 @VA04250 00415000
  425. ST R3,HEXDISP AND SAVE IT @VA04250 00416000
  426. SR R5,R3 NOW R5 HAS THE REAL START ADDR @VA04250 00417000
  427. ST R5,REALSTAR SAVE IT @VA04250 00418000
  428. MVC ADDOUT(MSGLEN),BLANKOUT CLEAR MESSAGE AREA @VA04830 00419500
  429. MVC TEXT1(L'TEXT1TEX),TEXT1TEX PLUG IN TEXT OF MSG @VA04250 00420000
  430. MVC MODOUT,0(R2) PLUG MOD/ENTRY NAME IN MSG @VA04250 00421000
  431. LA R4,REALSTAR+ONE ADDR OF REAL START ADDR @VA04250 00422000
  432. LA R3,ADRL THREE BYTE HEX ADDRESS LENGTH @VA04250 00423000
  433. L R15,INTADD ADDRESS OF TRANS ROUTINE @VA04250 00424000
  434. BALR R14,R15 LINK @VA04250 00425000
  435. MVC MAPADOUT,0(R5) PLUG TRANS REALSTART ADDR IN MSG @VA04250 00426000
  436. LA R3,ADRL LENGTH TO TRANSLATE @VA04250 00427000
  437. LA R4,HEXDISP+ONE ADDRESS OF DATA @VA04250 00428000
  438. L R15,INTADD ADDRESS OF TRANS ROUTINE @VA04250 00429000
  439. BALR R14,R15 LINK @VA04250 00430000
  440. MVC DISPOUT,0(R5) PLUG THE CALCULATED DISP @VA04250 00431000
  441. L R2,PLISTADD RESTORE PLIST ADDR @VA04250 00432000
  442. MVC ADDOUT,PLISTENT(R2) PLUG THE ADD FROM THE PLIST @VA04250 00433000
  443. LA R8,ADDOUT ADDRESS OF MESSAGE @VA04250 00434000
  444. LA R9,MSGLEN LENGTH @VA04250 00435000
  445. BAL R10,WRTERM GO WRITE IT @VA04250 00436000
  446. B RETURN BACK TO CALLER @VA04250 00437000
  447. * * * * * * * * ------- -------- -------- ------- * 00438000
  448. * * * * * * * * COMMON ROUTINE TO LINK TO GETREC 00439000
  449. * * * * * * * * AND CHECK RETURN CODES 00440000
  450. * * * * * * * * ------- -------- -------- ------- * 00441000
  451. GOGET L R15,GETADD GETREC ADDRESS @VA04250 00442000
  452. BALR R14,R15 LINK @VA04250 00443000
  453. LTR R15,R15 CHECK RETURN CODE @VA04250 00444000
  454. BNZ CODECHEK GO FIND OUT JUST HOW BAD @VA04250 00445000
  455. BR R10 RETURN TO CALLER @VA04250 00446000
  456. CODECHEK C R15,CODE4 WARNING? @VA04250 00447000
  457. BNE FATAL NO - BAD STUFF @VA04250 00448000
  458. MVC RETCODE,CODE4 SET WARNING @VA04250 00449000
  459. B RETURN RETURN @VA04250 00450000
  460. FATAL MVC RETCODE,CODE8 FATAL @VA04250 00451000
  461. B RETURN GO BACK @VA04250 00452000
  462. * * * * * * * * ------- -------- -------- ------- * 00453000
  463. * * * * * * * * RETURN 00454000
  464. * * * * * * * *------- -------- -------- -------- ------* 00455000
  465. RETURN L R13,SAVEBACK CALLER SAVE POINTER @VA04250 00456000
  466. MVC SAVREG15(L'RETCODE,R13),RETCODE RETURN CODE @VA04250 00457000
  467. LM R14,R12,SAVEDISP(R13) CALLERS REGS @VA04250 00458000
  468. BR R14 RETURN @VA04250 00459000
  469. * * * * * * * *------- -------- -------- -------- ------* 00460000
  470. * * * * * * * * THIS ROUTINE TRANSLATES R15 RETURN CODES 00461000
  471. * * * * * * * * AND PLUGS THEM IN A MESSAGE TO THE USER. 00462000
  472. * * * * * * * * FIRST SEE IF THE ERROR IS DUE TO THE LACK 00463000
  473. * * * * * * * * OF A LOAD MAP ON THE END OF THE DUMP. 00464000
  474. * * * * * * * *------- -------- -------- -------- ------* 00465000
  475. LMERR C R15,NOMAP WAS IT END OF FILE, IE NO MAP? @VA04250 00466000
  476. BNE RDERR NO - PROCESS ERROR NORMALLY @VA04250 00467000
  477. LA R8,NOMAPMSG GET ADDRESS OF 'NO LOAD MAP' MSG @VA04250 00469000
  478. LA R9,L'NOMAPMSG AND LENGTH @VA04250 00470000
  479. BAL R10,WRTERM WRITE MSG @VA04250 00471000
  480. MVC RETCODE,CODE4 SET WARNING RETURN @V4075A2 00472300
  481. B RETURN AND GO ROUND AGAIN @V4075A2 00472600
  482. RDERR XC DEPACK(L'DEPACK+L'DECODE),DEPACK CLEAR WORKAREA @VA04250 00473000
  483. CVD R15,DECODE GET RET CODE IN DECIMAL @VA04250 00474000
  484. UNPK DEPACK+FIV(L'DEPACK-FIV),DECODE+SIX(L'DECODE-SIX) 00475000
  485. OI DEPACK+SEV,NUMZONE FIX UP SIGN TO PRINT @VA04250 00476000
  486. MVC ERRMSGCD,DEPACK+FIV PLUG ERROR CODEINTO MSG @VA04250 00477000
  487. L R6,DFSCBADD TO GET AT FILE ID @VA04250 00478000
  488. MVC ERRMSGFN,FN(R6) PLUG FILE NAME @VA04250 00479000
  489. MVC ERRMSGFT,FT(R6) AND TYPE @VA04250 00480000
  490. MVC ERRMSGM(L'ERRMSGM-ONE),FM(R6) AND MODE @VA04250 00481000
  491. BAL R10,CLEAR CLEAR SCREEN @VA04250 00482000
  492. LA R8,ERMSG100 ADDRESS @VA04250 00483000
  493. LA R9,E100L LENGTH @VA04250 00484000
  494. BAL R10,WRTERM GO WRITE IT @VA04250 00485000
  495. MVC RETCODE,CODE8 SET BAD RET CODE @VA04250 00486000
  496. B RETURN GIVE IN @VA04250 00487000
  497. * * * * * * * * ------- -------- -------- ------- * 00488000
  498. * * * * * * * * THIS CLEARS THE SCREEN AND ALLOWS THE 00489000
  499. * * * * * * * * NEXT OPERATION TO BE POSITIONED 00490000
  500. * * * * * * * * AT THE TOP OF THE SCREEN 00491000
  501. * * * * * * * *------- -------- -------- -------- ------* 00492000
  502. CLEAR STM R8,R9,SAVCLR SAVE REGS @VA04250 00493000
  503. L R8,SCRNADD GET THE ADDRESS OF THE SCREEN @VA04250 00494000
  504. ST R8,CCWC PLUG ADDRESS IN CCW @VA04250 00495000
  505. LA R8,CCWC CCW ADD @VA04250 00496000
  506. L R9,CONSADD VIRT CONS ADDRESS LOCATION @VA04250 00497000
  507. L R9,0(R9) VIRT CON CUU @VA04250 00498000
  508. MVI CCWC,FSWRITE RESTORE CMD CODE @VA04250 00499000
  509. MVI CCWCTL,ON SET ERASE BYTE ON @VA04250 00500000
  510. WAITT WAIT FOR TERMINAL TO QUIESCE @VA04250 00501000
  511. DC X'83890058' DIAGNOSE @VA04250 00502000
  512. LM R8,R9,SAVCLR RESTORE REGS @VA04250 00503000
  513. BR R10 RETURN @VA04250 00504000
  514. * * * * * * * * ------- -------- -------- ------- * 00505000
  515. * * * * * * * * THIS ROUTINE REMOVES EXCESS BLANKS 00506000
  516. * * * * * * * * AND HEX ZEROS FROM AN OUTPUT LINE 00507000
  517. * * * * * * * * THEN WRITES IT. AT INPUT R8 POINTS 00508000
  518. * * * * * * * * TO THE START OF THE TEXT TO BE 00509000
  519. * * * * * * * * WRITTEN, AND R9 HAS THE BYTE COUNT. 00510000
  520. * * * * * * * * RETURN IS ON R10. 00511000
  521. * * * * * * * * ------- -------- -------- ------- * 00512000
  522. WRTERM STM R8,R10,WR8SAVE SAVE PASSED PARMS @VA04250 00513000
  523. MVC OUTLINE,BLANKOUT CLEAR THE OUTPUT AREA @VA04830 00514500
  524. MVI ZBSWITCH,OFF SET SWITCH OFF @VA04250 00515000
  525. LA R10,OUTLINE OUTPUT POINTER @VA04250 00516000
  526. ZBTEST CLI 0(R8),BLANK IS IT A BLANK? @VA04250 00517000
  527. BE ZBCHECK IF SO, IS IT THE FIRST? @VA04250 00518000
  528. CLI 0(R8),HEXZERO OR A HEX '00'? @VA04250 00519000
  529. BE ZBCHECK FIRST? @VA04250 00520000
  530. MVI ZBSWITCH,OFF NEITHER - SET SWITCH OFF @VA04250 00521000
  531. MOVEBYTE MVC 0(ONE,R10),0(R8) MOVE A BYTE TO OUTPUT @VA04250 00522000
  532. LA R10,ONE(R10) BUMP OUTPUT PTR @VA04250 00523000
  533. BUMPIN LA R8,ONE(R8) BUMP INPUT PTR @VA04250 00524000
  534. BCT R9,ZBTEST TRY NEXT CHAR @VA04250 00525000
  535. B WRITESET ALL DONE - SET UP WRITE @VA04250 00526000
  536. ZBCHECK CLI ZBSWITCH,ON IS THIS NOT THE FIRST ZERO? @VA04250 00527000
  537. BE BUMPIN YES - SKIP IT @VA04250 00528000
  538. MVI ZBSWITCH,ON NO - SET IT ON @VA04250 00529000
  539. B MOVEBYTE BUT MOVE IT ANYWAY @VA04250 00530000
  540. * * * * * * * * ------- -------- -------- ------- * 00531000
  541. * * * * * * * * NOW ALL BYTES ARE MOVED. R10 POINTS 00532000
  542. * * * * * * * * TO THE LAST CHAR IN THE COMPRESSED LINE 00533000
  543. * * * * * * * * FIND ITS LENGTH, AND THEN WRITE IT. 00534000
  544. * * * * * * * * ------- -------- -------- ------- * 00535000
  545. WRITESET LA R9,OUTLINE-ONE START OF LINE @VA04250 00536000
  546. SR R10,R9 LENGTH OF LINE @VA04250 00537000
  547. LR R9,R10 PUT IT IN R9 @VA04250 00538000
  548. LA R8,OUTLINE START OF LINE @VA04250 00539000
  549. L R10,WR10SAVE RESTORE RETURN REG @VA04250 00540000
  550. ST R8,PARMLIS1 SAVE MSG PTR IN PARM LIST @V4075A2 00541100
  551. ST R9,PARMLIS2 AND LENGTH @V4075A2 00541200
  552. LA R1,PARMLIS1 POINTER TO PASS @V4075A2 00541300
  553. L R15,FEDLNADD ADDRESS OF DMMFEDLN - LINE WRITER 00541400
  554. BALR R14,R15 GO WRITE THE LINE @V4075A2 00541500
  555. BR R10 AND RETURN @V4075A2 00541600
  556. PARMLIS1 DS F PARM1 @V4075A2 00541700
  557. PARMLIS2 DS F PARM2 @V4075A2 00541800
  558. FEDLNADD DC V(DMMFEDLN) LINE WRITER ROUTINE @V4075A2 00541900
  559. * * * * * * * *------- -------- -------- -------- ------* 00543000
  560. * * * * * * * * CONSTANTS 00544000
  561. * * * * * * * *------- -------- -------- -------- ------* 00545000
  562. RETCODE DC F'0' RETURN CODE @VA04250 00546000
  563. CIADD DC AL4(CMDINFO) HEADER LINE @VA04250 00547000
  564. ISWADD DC AL4(ISW) ITEM - TABLE - READ @VA04250 00548000
  565. BUFF2ADD DC AL4(BUFF2) DUMP DATA BUFFER @VA04250 00549000
  566. DFSCBADD DC AL4(DUMPFSCB) FSCB FOR DUMP @VA04250 00550000
  567. GETADD DC AL4(DMMGET) DUMP DATA FETCH @VA04250 00551000
  568. INTADD DC AL4(DMMINT) TRANSLATOR @VA04250 00552000
  569. DIRADD DC AL4(DMMDIR) DISPLAY AND FORMAT @VA04250 00553000
  570. HEXADD DC AL4(DMMHEX) HEX TO EBC TRANS ROUTINE @VA04250 00554000
  571. TYPEADD DC AL4(TYPEFLAG) DEVICE TYPE @VA04250 00555000
  572. CONSADD DC AL4(CONSOLE) VIRT VCONS ADDRESS @VA04250 00556000
  573. * * * * * * * * ------- -------- -------- ------- * 00557000
  574. * * * * * * * * SAVEAREA 00558000
  575. * * * * * * * * ------- -------- -------- ------- * 00559000
  576. SAVEAREA DS 0F THIS PROGRAM'S SAVE AREA @VA04250 00560000
  577. SAVEUSR DS F USER WORD @VA04250 00561000
  578. SAVEFWD DS F FORWARD POINTER @VA04250 00562000
  579. SAVEBACK DS F BACKWARD POINTER @VA04250 00563000
  580. SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 00564000
  581. SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 00565000
  582. SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 00566000
  583. SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 00567000
  584. SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 00568000
  585. SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 00569000
  586. SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 00570000
  587. SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 00571000
  588. SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 00572000
  589. SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 00573000
  590. SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 00574000
  591. SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 00575000
  592. SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 00576000
  593. SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 00577000
  594. SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 00578000
  595. * * * * * * * * ------- -------- -------- ------- * 00579000
  596. MAXCOUNT DC F'1792' MAX COUNT BEFORE LOOPING @VA04250 00580000
  597. FOXES DC XL2'FFFF' END OF ITEM TABLE @VA04250 00581000
  598. XZERO DC F'0' JUST ZERO @VA04250 00582000
  599. RDY DC CL2'*R' SHORT READY FOR TYPER @VA04250 00583000
  600. BLANKS DC 4C' ' JUST BLANKS @VA04250 00584000
  601. FOURK DC F'4096' BUFFER INCREMENT @VA04250 00585000
  602. HEXAD DC F'0' LAST ADDRESS DISPLAYED @VA04250 00586000
  603. MAP DC CL4'MAP-' HEADER @VA04250 00587000
  604. REAL DC CL5'REAL-' HEADER @VA04250 00588000
  605. MAPREDSW DC X'00' MAP READ SWITCH @VA04250 00589000
  606. NULL EQU X'00' CLEAR REGS @VA04250 00590000
  607. TYPER EQU X'FF' TYPE WRITER @VA04250 00591000
  608. RED EQU X'FF' MAP IS READ @VA04250 00592000
  609. ON EQU X'FF' ON STATUS OF SWITCH @VA04250 00593000
  610. VALPAGE EQU X'0F' PAGE MARKED VALID IN TABLE @VA04250 00594000
  611. NUMZONE EQU X'F0' ZONE FOR NUMERICS @VA04250 00595000
  612. FSWRITE EQU X'19' CMD CODE IN WRITE CCW @VA04250 00596000
  613. PLISTENT EQU 8 LENGTH OF A PLIST ENTRY @VA04250 00597000
  614. MODL EQU 6 LENGTH OF A MODULE NAME @VA04250 00598000
  615. ENTRL EQU 8 LENGTH OF AN ENTRY POINT @VA04250 00599000
  616. TRANSADL EQU 6 LENGTH OF A TRANSLATED ADDRESS @VA04250 00600000
  617. LINELEN EQU 80 LENGTH OF HEADER LINE @VA04250 00601000
  618. * * * * * * * * ------- -------- -------- ------- * 00602000
  619. VALBYT EQU 1 PAGE VALID @VA04250 00603000
  620. ONE EQU 1 BUMP POINTER @VA04250 00604000
  621. HDRNAME EQU 2 DISP IN HDR TO MODNAME @VA04250 00605000
  622. TWO EQU 2 BUMP POINTER @VA04250 00606000
  623. ADRL EQU 3 LENGTH OF ADDRESS TO TRANSLATE @VA04250 00607000
  624. LMRECS EQU 5 NUMBER OF LOAD MAP RECORDS @VA08369 00608100
  625. DUMMYREC EQU 5 FUDGE TO FIRST DUMP DATA RECORD @VA04250 00609000
  626. FIV EQU 5 UNPACK CONST @VA04250 00610000
  627. SIX EQU 6 UNPACK CONST @VA04250 00611000
  628. SEV EQU 7 UNPACK CONST @VA04250 00612000
  629. ADDR EQU 8 DISP TO ADDRESS @VA04250 00613000
  630. FN EQU 8 DISP TO FILE NAME @VA04250 00614000
  631. HDRMAP EQU 11 MAP IN HDR @VA04250 00615000
  632. SAVEDISP EQU 12 REGS IN SAVE AREA @VA04250 00616000
  633. MAPENT EQU 12 LENGTH OF A LOAD MAP ENTRY @VA04250 00617000
  634. HDRADD EQU 16 ADDRESS IN HDR @VA04250 00618000
  635. SEGTAB EQU 16 DISP TO SEGTAB @VA04250 00619000
  636. INVP EQU 16 INVALID PAGE IN HDR @VA04250 00620000
  637. SAVREG15 EQU 16 REG 15 IN SAVE AREA @VA04250 00621000
  638. FT EQU 16 FILE TYPE @VA04250 00622000
  639. FM EQU 24 FILE MODE DISP @VA04250 00623000
  640. REALREAL EQU 26 REAL TAG IN HEADER @VA04250 00624000
  641. REELADD EQU 32 REAL ADD IN HDR @VA04250 00625000
  642. ITEMINDX EQU 512 ITEM TABLE OFFSET IN INFO REC @VA04250 00626000
  643. SYSVMBAD EQU 892 OFFSET TO SYSTEM VMBLOK ADDRESS @VA04250 00627000
  644. MAXMAP EQU 4095 MAX MAP ENTRIES IN 3 PAGES @VA04250 00628000
  645. * * * * * * * * ------- -------- -------- ------- * 00629000
  646. SIXSAVE DS 3F SAVES THE NAME AND ADDRESS @VA04250 00630000
  647. ORG SIXSAVE OF ANY SIX CHARACTER MATCH @VA04250 00631000
  648. SIXNAME DS 2F SAVE NAME OF A HIT ON 6 CHARS @VA04250 00632000
  649. MODADD DS F ADDRESS @VA04250 00633000
  650. ALIGNER DS F ALIGN FOR LOAD @VA04250 00634000
  651. REALADD DS F REAL ADDDRESS FROM DUMP @VA04250 00635000
  652. DMK DC CL3'DMK' IDENTIFY AN ENTRY @VA04250 00636000
  653. DMKQ DC CL4'DMK?' ADDRESS LOCATE REQUEST @VA04250 00637000
  654. HEXDISP DS F CALCULATED DISP IN HEX @VA04250 00638000
  655. * * * * * * * * ------- -------- -------- ------- * 00639000
  656. * * * * * * * * TEXT OF REPLY TO ADDRESS LOCATE REQUEST 00640000
  657. * * * * * * * * ------- -------- -------- ------- * 00641000
  658. ADDOUT DS CL8 ADDRESS GIVEN @VA04250 00642000
  659. SPACE1 DS CL2 SPACES @VA04250 00643000
  660. TEXT1 DS CL4 TEXT @VA04250 00644000
  661. DISPOUT DS CL6 DISPLACEMENT @VA04250 00645000
  662. TEXT2 DS CL8 MORE TEXT @VA04250 00646000
  663. MODOUT DS CL8 MOD/ENTRY NAME @VA04250 00647000
  664. TEXT3 DS CL6 MORE TEXT @VA04250 00648000
  665. MAPADOUT DS CL6 ADDRESS FROM MAP @VA04250 00649000
  666. MSGLEN EQU *-ADDOUT LENGTH OF MESSAGE @VA04250 00650000
  667. TEXT1TEX DC C'IS INTO AT ' @VA04250 00651000
  668. * * * * * * * * ------- -------- -------- ------- * 00652000
  669. * * * * * * * * CONSTANTS FOR RDERR 00653000
  670. * * * * * * * * ------- -------- -------- ------- * 00654000
  671. CODE4 DC F'4' NON FATAL RETURN @VA04250 00655000
  672. CODE8 DC F'8' FATAL RET @VA04250 00656000
  673. DEPACK DS D UNPACKED RET CODE @VA04250 00657000
  674. DECODE DS D DECIMAL RET CODE @VA04250 00658000
  675. ERMSG100 DC C'DMMMOD100S ERROR ''' TEXT OF ERR MSG @VA04423 00659000
  676. ERRMSGCD DC CL3' ' * @VA04250 00660000
  677. ERRMSGT2 DC C''' READING FILE ''' * @VA04250 00661000
  678. ERRMSGFN DC CL8' ' * @VA04250 00662000
  679. DC CL2' ' FILLER @VA04250 00663000
  680. ERRMSGFT DC CL6' ' * @VA04250 00664000
  681. ERRMSGM DC CL3' ''' * @VA04250 00665000
  682. E100L EQU *-ERMSG100 LENGTH @VA04250 00666000
  683. CPENDADD DS F IN CORE ADDRESS OF CPEND @VA04250 00667000
  684. PAGEADD DS F FIRST PAGEABLE STORAGE ADDRESS @VA04250 00668000
  685. INCOREQ DS F INCORE ADDR OF REQUESTED ADDR @VA04250 00669000
  686. PLISTADD DS F SAVE ADDRESS OF PLIST @VA04250 00670000
  687. REALSTAR DS F REAL ADDRESS START OF MOD @VA04250 00671000
  688. DMKMAC DC CL6'DMKMAC' LOOKS LIKE A MOD NAME BIT ISNT @VA04250 00672000
  689. DMKCPEND DC CL8'DMKCPEND' NAME OF LAST NON PAGEABLE MODULE @VA04250 00673000
  690. DMKFEIBM DC CL8'DMKFEIBM' ENTRY IN DMKPSA TO BE BYPASSED @VA04250 00674000
  691. TWOBLANK DC CL2' ' CHECK FOR MOD NAME @VA04250 00675000
  692. * * * * * * * * MESSAGE IF ADDRESS NOT WITHIN MODULE 00676000
  693. NOTMODAD DC CL8' ' ADDRESS IN 'NOT IN MOD' MSG @VA04250 00677000
  694. NOTMODTX DC C'IS NOT WITHIN A CP MODULE' TEXT OF MSG @VA04250 00678000
  695. NOTMODL EQU *-NOTMODAD LENGTH @VA04250 00679000
  696. * * * * * * * * ------- -------- -------- ------- * 00680000
  697. ERMSG705 DC C'DMMMOD705E ERROR IN ITEM TABLE' @VA04250 00681000
  698. * * * * * * * * ------- -------- -------- ------- * 00682000
  699. ERMSG706 DC C'DMMMOD706I ''' ERROR @VA04250 00683000
  700. MSGMODNM DC CL9' ''' MESSAGE @VA04250 00684000
  701. MSGMSG06 DC C' NOT FOUND IN LOAD MAP' TEXT @VA04250 00685000
  702. E706L EQU *-ERMSG706 LENGTH @VA04250 00686000
  703. * * * * * * * * ------- -------- -------- ------- * 00687000
  704. ERMSG707 DC CL12'DMMMOD707I ''' ERROR 707 @VA04250 00688000
  705. INVMOD DC CL8' ' MODULE @VA04250 00689000
  706. INVHIK DC C''' ''' HICKEYS @VA04250 00690000
  707. INVPAGE DC CL6' ' PAGE @VA04250 00691000
  708. INVMSG DC CL19''' PAGE NOT VALID' TEXT @VA04250 00692000
  709. E707L EQU *-ERMSG707 LENGTH @VA04250 00693000
  710. * * * * * * * * ------- -------- -------- ------- * 00694000
  711. NOMAPMSG DC C'DMMMOD718I THIS DUMP HAS NO LOAD MAP - SEE ''MAP'' SUBX00695300
  712. COMMAND' NO MAP WARNING MSG. @V4075A2 00695600
  713. NOMAP DC F'12' END OF FILE RETCODE @VA04250 00696000
  714. LNGRDY DC C'*** READY ***' LONG READY MSG @V4075A2 00696300
  715. SHRTRDY DC C'*R' SHORT READY @V4075A2 00696600
  716. * * * * * * * * ------- -------- -------- ------- * 00697000
  717. * * * * * * * * CONSTANTS FOR WRTERM 00698000
  718. * * * * * * * * ------- -------- -------- ------- * 00699000
  719. ZBSWITCH DC X'00' ZERO/BLANK SWITCH @VA04250 00700000
  720. FIRSTIME DC X'FF' FIRST TIME IN THIS CODE @VA04250 00701000
  721. OUTLINE DS CL80 OUTPUT LINE @VA04250 00702000
  722. WR8SAVE DS F REG8 SAVE AREA @VA04250 00703000
  723. WR9SAVE DS F REG9 @VA04250 00704000
  724. WR10SAVE DS F REG10 @VA04250 00705000
  725. OFF EQU X'00' SWITCH 'OFF' @VA04250 00706000
  726. BLANK EQU X'40' BLANK @VA04250 00707000
  727. HEXZERO EQU X'00' HEX ZERO @VA04250 00708000
  728. FOXZ EQU X'F0' MASK FOR NUMERIC TEST @VA04250 00709000
  729. * * * * * * * * ------- -------- -------- ------- * 00710000
  730. * * * * * * * * CONSTANTS FOR CLEAR 00711000
  731. * * * * * * * * ------- -------- -------- ------- * 00712000
  732. CCWC CCW X'19',X'0',X'20',1760 ERASE CCW @VA04250 00713000
  733. CCWCTL EQU CCWC+5 CONTROL BYTE @VA04250 00714000
  734. SAVCLR DS 2F SAVE FOR CLEAR SUBR. @VA04250 00715000
  735. SCRNADD DC AL4(SCRNAREA) ADDRESS OF AREA TO BE DISPLAYED @VA04250 00716000
  736. BLANKOUT DC CL80' ' PAD CHARACTER @VA04830 00716500
  737. PATCH DC 50F'0' PATCH @VA04250 00717000
  738. LTORG KEEP LITERALS ADDRESSABLE @VA04250 00718000
  739. BUFF DS 2560D FIVE PAGE BUFFER FOR LOAD MAP @VA08369 00719100
  740. REGEQU @VA04250 00720000
  741. END 00721000