Table of Contents

DMMDSC Source

References

Source Listing

DMMDSC.ASSEMBLE.txt
  1. DSC TITLE 'DMMDSC (IPCS) VM/370 - RELEASE 6' 00001000
  2. * 00002000
  3. * MODULE NAME: 00003000
  4. * DUMPSCAN 00004000
  5. * 00005000
  6. * FUNCTION: 00006000
  7. * PROVIDE A METHOD OF EXAMINING THE CMS FORMAT 00007000
  8. * CP DUMPS CREATED BY VMFDUMP. 00008000
  9. * 00009000
  10. * ATTRIBUTES: 00010000
  11. * REUSABLE 00011000
  12. * NON-REENTRANT 00012000
  13. * 00013000
  14. * ENTRY POINTS: 00014000
  15. * DUMPSCAN 00015000
  16. * INPUT READ IN AREA 00016000
  17. * 00017000
  18. * ENTRY CONDITIONS: 00018000
  19. * NONE 00019000
  20. * 00020000
  21. * EXIT CONDITIONS: 00021000
  22. * RETURN CODE IN R15 00022000
  23. * 0 - USER 'HX', 'QUIT' OR END. 00023000
  24. * 8 - ERROR PROCESSING THE DUMP 00024000
  25. * 00025000
  26. * CALLS TO OTHER ROUTINES: 00026000
  27. * DMMFEX FULL SCREEN WRITE FROM DUMP 00027000
  28. * DMMFED DISPLAY AREAS OF THE DUMP 00028000
  29. * DMMLOC LOCATE STRING REQUEST 00029000
  30. * DMMSCR FOR SCROLL FUNCTION 00030000
  31. * DMMREG TO DISPLAY REGISTERS 00031000
  32. * DMMVMB TO DISPLAY VMBLOKS 00032000
  33. * DMMMOD TO FIND MODULES AND RESOLVE ADDRESSES 00033000
  34. * DMMTRC DISPLAY TRACE TABLE ENTRIES 00034000
  35. * DMMLOC TO FIND STRINGS IN 'LOCATE STRING FROM TO' 00035000
  36. * EXTERNAL REFERENCES: 00036000
  37. * SCRNAREA DISPLAY AREA 00037000
  38. * HEXAD LAST DISPLAYED ADDRESS IN HEX 00038000
  39. * 00039000
  40. * TABLES/WORKAREAS: 00040000
  41. * PLIST THE TOKENIZED INPUT TO PASS TO SUBROUTINES 00041000
  42. * 00042000
  43. * REGISTER USAGE: 00043000
  44. * R15 ADDRESSES OF EXTERNAL ROUTINES 00044000
  45. * R14 RETURNS FROM EXTERNAL ROUTINES 00045000
  46. * R13 SAVE AREA ADDRESS 00046000
  47. * R12,R11 BASES @V4075A2 00047000
  48. * R10 INTERNAL LINK @V4075A2 00048000
  49. * R9-R2 WORK REGISTERS 00049000
  50. * R2 PASSES ADDRESS OF PLIST TO SUBROUTINES 00050000
  51. * 00051000
  52. * NOTES: 00052000
  53. * 00053000
  54. * OPERATION: 00054000
  55. * DUMPSCAN IS MOST EFFECTIVE ON A GRAPHICS TYPE 00055000
  56. * TERMINAL. HOWEVER IT DOES TEST TERMINAL TYPE AND 00056000
  57. * PROVIDES A SLIGHTLY REDUCED FUNCTION TO A 2741. 00057000
  58. * USER IS FIRST OFFERED ASSISTANCE. THEN HE IS ASKED 00058000
  59. * FOR THE DUMP IDENTIFICATION. THIS IS CHECKED FOR 00059000
  60. * VALIDITY, AND FSSTATE ISSUED AGAINST THE DUMP. 00060000
  61. * IF ALL IS WELL '*** READY ***' PROMPTS USER TO 00061000
  62. * ENTER HIS COMMAND. THE COMMAND IS INTERROGATED, 00062000
  63. * VALIDITY CHECKED AND TOKENIZED INTO THE PLIST. 00063000
  64. * CONTROL IS PASSED TO THE APPROPRIATE SUBROUTINE, 00064000
  65. * ALONG WITH THE PLIST ADDRESS IF REQUIRED. 00065000
  66. * ON RETURN, THE RETURN CODE IS CHECKED. 00066000
  67. * 0 OR 4 CAUSE A RETURN TO THE READY MESSAGE, 00067000
  68. * 8 CAUSES RETURN TO CMS. 00068000
  69. * 00069000
  70. * ERROR MESSAGES: 00070000
  71. * DMMDSC719I - ERROR IN FSSTATE 00071000
  72. * 00072000
  73. * * * * * * * *------- -------- -------- -------- ------* 00073000
  74. EJECT 00074000
  75. DMMDSC CSECT @VA04250 00075000
  76. ENTRY TYPEFLAG TYPE OF TERMINAL @VA04250 00076000
  77. ENTRY CONSOLE ADDRESS OF VIRT CONSOLE @VA04250 00077000
  78. ENTRY CMDINFO HEADER LINE @VA04250 00078000
  79. ENTRY DUMPFSCB FSCB OF DUMP @VA04250 00079000
  80. ENTRY STRINGAD SEARCH ARGUMENT FOR LOCATE @V4075A2 00080000
  81. ENTRY STRINGLN LENGTH OF ARG @V4075A2 00081000
  82. ENTRY INPUT READ IN AREA @VA04250 00082000
  83. ENTRY SHARECON COMMON CONSTANTS @V4075A2 00083000
  84. ENTRY INLENGTH LENGTH OF INPUT LINE @VA04250 00084000
  85. ENTRY PRINTONE ONE-SHOT PRINT FLAG @V4075A2 00085000
  86. ENTRY PRINTSW @V4075A2 00086000
  87. EXTRN DMMDIR SCREEN WRITE @VA04250 00087000
  88. EXTRN DMMFED DISPLAY @VA04250 00088000
  89. EXTRN DMMFEX DISPLAY HEXLOC @VA04250 00089000
  90. EXTRN DMMGET FETCH DUMP TO CORE @VA04250 00090000
  91. EXTRN DMMHEX UNTRANSLATE @VA04250 00091000
  92. EXTRN DMMINT TRANSLATE @VA04250 00092000
  93. EXTRN DMMIOB VIO/RIO @VA04250 00093000
  94. EXTRN DMMLOC LOCATE @VA04250 00094000
  95. EXTRN DMMMAP ADD MAP TO DUMP @V4075A2 00095000
  96. EXTRN DMMMOD MODULE/ADDRESS SEARCH @VA04250 00096000
  97. EXTRN DMMREG REGISTERS @VA04250 00097000
  98. EXTRN DMMSCR SCROLL @VA04250 00098000
  99. EXTRN DMMTRC TRACE @VA04250 00099000
  100. EXTRN DMMVMB VMBLOK @VA04250 00100000
  101. EXTRN SCRNAREA DISPLAY AREA @VA04250 00101000
  102. EXTRN HEXAD LAST ADDRESS DISPLAYED @VA04250 00102000
  103. EXTRN ISW ITEM TABLE READ @VA04250 00103000
  104. EXTRN MAPREDSW LOAD MAP READ @VA04250 00104000
  105. EXTRN RECORDNO LAST RECORD READ @VA04250 00105000
  106. EXTRN PREBUFAD ADDRESS OF LOC BUFFER @V4075A2 00106000
  107. EXTRN BOUND INCREMENT PARM @V4075A2 00107000
  108. STM R14,R12,SAVEDISP(R13) SAVE CALLERS REGS @VA04250 00108000
  109. LR R12,R15 ADDRESSABILITY @VA04250 00109000
  110. LA R11,1 SET UP SECOND BASE REG @V4075A2 00110000
  111. SLL R11,12 SET TO 4096 @V4075A2 00111000
  112. AR R11,R12 AND ADD THIS BASE @V4075A2 00112000
  113. USING DMMDSC,R12,R11 BASE REG ASSIGNMENTS @V4075A2 00113000
  114. ST R13,SAVEBACK CALLERS SAVE AREA @VA04250 00114000
  115. B EYECATCH BYPASS EYECATCHER @VA04250 00115000
  116. DS 0D ALIGN @VA04250 00116000
  117. DC CL8'DMMDSC' EYECATCHER @VA04250 00117000
  118. RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00118000
  119. EYECATCH LA R13,SAVEAREA DSC SAVEAREA @VA04250 00119000
  120. XC RETCODE,RETCODE CLEAR RETURN CODE @VA04250 00120000
  121. * * * * * * * *------- -------- -------- -------- ------* 00121000
  122. * * * * * * * * FIND OUT IF THE TERMINAL IS A GRAPHIC 00122000
  123. * * * * * * * * DEVICE OR A TYPEWRITER TYPE. 00123000
  124. * * * * * * * *------- -------- -------- -------- ------* 00124000
  125. LA R6,NULL SET UP TO TEST TERM TYPE @VA04250 00125000
  126. BCTR R6,R0 FILL IT WITH 'FF' @VA04250 00126000
  127. DC X'83670024' CONS DIAGNOSE @VA04250 00127000
  128. ST R6,CONSOLE ADDRESS OF VIRTUAL CONSOLE @VA04250 00128000
  129. ST R8,TYPESAVE SAVE REAL DEVICE TYPE @VA04250 00129000
  130. TM TYPESAVE,CLASTERM IS IT A 2741 TYPE @VA04250 00130000
  131. BNO GETDUMP NO - ASSUME GRAPHIC DEVICE @VA04250 00131000
  132. TM TYPEREM,HIBYTEST IS IT A DISPLAY TEMINNAL? @VA09785 00132150
  133. BNZ SETYPER NO-SET 2741 @VA09785 00132300
  134. TM TYPEREM,LOBYTEST INSURE 3275,3276,3277 OR 3278 @VA09785 00132450
  135. BNZ GETDUMP IT IS A DISPLAY TERMINAL--BRANCH @VA09785 00132600
  136. SETYPER EQU * @VA09785 00132750
  137. MVI TYPEFLAG,TYPER NOT 3270 - SET TYPEWRITER FLAG @VA04250 00134000
  138. EJECT 00135000
  139. * * * * * * * *------- -------- -------- -------- ------* 00136000
  140. * * * * * * * * NOW START COMMUNICATION 00137000
  141. * * * * * * * * FIND OUT IF HE NEEDS HELP 00138000
  142. * * * * * * * *------- -------- -------- -------- ------* 00139000
  143. GETDUMP BAL R10,CLEAR CLEAR SCREEN @VA04250 00140000
  144. MVI PAGESW,PAGE1 RESET TO TYPE INFORMATION PAGE1 HRC001DM 00141990
  145. REREAD DS 0H HRC001DM 00142980
  146. LA R10,DUMPFSCB GET ADDRESS OF ANY OPEN DUMPFSCB HRC001DM 00143970
  147. FSCLOSE FSCB=(R10) AND CLOSE IT HRC001DM 00144960
  148. ENTER DS 0H HRC001DM 00145950
  149. LA R8,EMSG7011 ADDRESS HRC001DM 00146940
  150. LA R9,L'EMSG7011 AND LENGTH HRC001DM 00147930
  151. BAL R10,WRTERM WRITE FIRST MESSAGE HRC001DM 00148920
  152. LA R8,EMSG7012 ADDRESS HRC001DM 00149910
  153. LA R9,L'EMSG7012 AND LENGTH HRC001DM 00150900
  154. BAL R10,WRTERM WRITE FIRST MESSAGE HRC001DM 00151890
  155. LA R8,EMSG7013 ADDRESS HRC001DM 00152880
  156. LA R9,L'EMSG7013 AND LENGTH HRC001DM 00153870
  157. BAL R10,WRTERM WRITE FIRST MESSAGE HRC001DM 00154860
  158. LA R8,EMSG7014 ADDRESS HRC001DM 00155850
  159. LA R9,L'EMSG7014 AND LENGTH HRC001DM 00156840
  160. BAL R10,WRTERM WRITE FIRST MESSAGE HRC001DM 00157830
  161. LA R8,INPUT ADDRESS @VA04250 00161000
  162. BAL R10,RDTERM READ IT IN @VA04250 00162000
  163. LTR R0,R0 NULL LINE?? @VA04250 00163000
  164. BZ ENTER DONT LET HIM AWAY WITH THAT HRC001DM 00164490
  165. LR R2,R0 GET INLINE LENGTH @VA04250 00165000
  166. BAL R10,INCHECK CHECK 'HX' @V4075A2 00166000
  167. BAL R10,TOKEN TOKENIZE INPUT LINE @V4075A2 00167000
  168. * * * * * * * *------- -------- -------- -------- ------* 00168000
  169. * * * * * * * * NOW SLOT THE NUMBER ONTO THE END OF THE 00169000
  170. * * * * * * * * DUMP 'PRB' NAME, AND GET THE MODE. 00170000
  171. * * * * * * * *------- -------- -------- -------- ------* 00171000
  172. LA R2,L'PLIST1-THREEBYT MAX ALLOWED BYTES OF INPUT @VA04250 00172000
  173. LA R3,PLIST+VDEND END OF VALID DATA IN PLIST @VA04250 00173000
  174. LA R4,DUMPFSCB+FNEND END OF FILE NAME IN PLIST @VA04250 00174000
  175. MVC DUMPFSCB+FSCBDNUM(L'ZEROS),ZEROS SET DUMP NO. 0 @VA04250 00175000
  176. COMP CLI 0(R3),BLANK BLANK? @VA04250 00176000
  177. BE BUMPER YES - NO MOVE @VA04250 00177000
  178. MVC 0(CHARLEN,R4),0(R3) MOVE A CHARACTER @VA04250 00178000
  179. BCTR R4,R0 AND FSCB PTR @VA04250 00179000
  180. BUMPER BCTR R3,R0 DECREMENT PLIST PTR @VA04250 00180000
  181. BCT R2,COMP AND TRY AGAIN @VA04250 00181000
  182. CLC PLIST2,FENCE END OF LIST - NO MODE? @VA04250 00182000
  183. BE STATE GO SEE IF THERE REALLY IS A DUM @VA04250 00183000
  184. MVC DUMPFSCB+FM(CHARLEN),PLIST2 PLUG THE MODE @VA04250 00184000
  185. * * * * * * * *------- -------- -------- -------- ------* 00185000
  186. * * * * * * * * NOW SEE IF THE DUMP EXISTS 00186000
  187. * * * * * * * *------- -------- -------- -------- ------* 00187000
  188. STATE FSSTATE FSCB=DUMPFSCB,ERROR=STATERR @VA04250 00188000
  189. L R2,ISWADD ITEM TABLE SW @VA04250 00189000
  190. MVI 0(R2),NOTRED TURN IT OFF FOR THE NEW DUMP @VA04250 00190000
  191. L R2,MAPRSADD LOAD MAP READ @VA04250 00191000
  192. MVI 0(R2),NOTRED TURN IT OFF TOO @VA04250 00192000
  193. L R2,RECNOADD ADDRESS OF LAST RECORD READ @VA04250 00193000
  194. LA R3,NULL SET UP TO SET IT TO 'FF' @VA04250 00194000
  195. BCTR R3,R0 SET TO FFFFFFFFF @VA04250 00195000
  196. ST R3,0(R2) PLUG IN LAST REC READ @VA04250 00196000
  197. L R2,HEXADADD ADDRESS OF SCROLL ADDRESS @VA04250 00197000
  198. ST R3,0(R2) SET TO FOXES - NEW DUMP @VA04250 00198000
  199. * * * * * * * *------- -------- -------- -------- ------* 00199000
  200. * * * * * * * * WRITE THE READY MESSAGE 00200000
  201. * * * * * * * *------- -------- -------- -------- ------* 00201000
  202. REREADY CLI TYPEFLAG,TYPER TYPER? @VA04250 00202000
  203. BNE GRAPHITE NO - SCREEN @VA04250 00203000
  204. LA R8,SHORTRDY ADDRESS @VA04250 00204000
  205. LA R9,L'SHORTRDY AND LENGTH @VA04250 00205000
  206. BAL R10,WRTERM WRITE '*R' _ SHORT READY - 2741 @VA04250 00206000
  207. B READY GO READ IN LINE @VA04250 00207000
  208. GRAPHITE LA R8,READYMSG ADDRESS @VA04250 00208000
  209. LA R9,L'READYMSG AND LENGTH @VA04250 00209000
  210. BAL R10,WRTERM WRITE '*** READY ***' TO SCREEN @VA04250 00210000
  211. B READY GO TO READ IN @VA04250 00211000
  212. EJECT 00212000
  213. * * * * * * * *------- -------- -------- -------- ------* 00213000
  214. * * * * * * * THIS SECTION READS THE LINE ENTERED 00214000
  215. * * * * * * * AT THE CONSOLE, AND PASSES CONTROL 00215000
  216. * * * * * * * TO THE APPROPRIATE ROUTINE. 00216000
  217. * * * * * * * *-----------------------------------------* 00217000
  218. READY MVC INSAVE,BLANKOUT CLEAR SAVE AREA @VA04830 00218000
  219. MVC INSAVE,INPUT SAVE LAST INPUT LINE @VA04250 00219000
  220. MVC OLDINLEN,INLENGTH SAVE LAST INPUT LENGTH @VA04250 00220000
  221. CLI PRINTONE,TURNOFF PRINT ON FOR A ONE-SHOT DEAL? @V4075A2 00221000
  222. BE READIN NO - DONT CHANGE ANYTHING @V4075A2 00222000
  223. MVI PRINTONE,TURNOFF YES - TURN OFF ONE SHOT FLAG @V4075A2 00223000
  224. MVI PRINTSW,TURNOFF AND TURN PRINT OFF @V4075A2 00224000
  225. READIN LA R8,INPUT ADDRESS OF BUFFER @V4075A2 00225000
  226. BAL R10,RDTERM READ IT @VA04250 00226000
  227. LTR R10,R0 GET INPUT LENGTH FOR 'HUH?' @VA04250 00227000
  228. BZ REUSE CHECK IF 'REUSE' IS VALID @VA04250 00228000
  229. LR R2,R10 GET INPUT LENGTH FOR TOKEN @VA04250 00229000
  230. ST R2,INLENGTH SAVE INPUT LENGTH @VA04250 00230000
  231. REINCHK BAL R10,INCHECK 'HX' ? @V4075A2 00231000
  232. BAL R10,AMPTRUNK AMP NAME OVER 8 CHARS ?? @V4075A2 00232000
  233. BAL R10,TOKEN TOKENIZE INPUT @V4075A2 00233000
  234. PLISTSCN CLC PLIST(CHARLEN),VMBLOK VMBLOK? @V4075A2 00234000
  235. BE VCHECK CHECK FOR ABBREVIATIONS @VA04250 00235000
  236. CLC PLIST(THREEBYT),DMK DMKXXX @VA04250 00236000
  237. BE GOMOD MOD SEARCH SET UP @VA04250 00237000
  238. CLC PLIST(THREEBYT),HDK HDKXXX HRC001DM 00237300
  239. BE GOMOD MOD SEARCH SET UP HRC001DM 00237600
  240. CLC PLIST(CHARLEN),SCROLL SCROLL REQUEST? @VA04250 00238000
  241. BE SCHECK ABBREV CHECK @VA04250 00239000
  242. CLC PLIST(CHARLEN),REGS ALL REGS? @VA04250 00240000
  243. BE RCHECK ABBREV CHECK @VA04250 00241000
  244. CLC PLIST(TWOBYTES),G G REGS? @VA04250 00242000
  245. BE GOREGS GEN REGS @VA04250 00243000
  246. CLC PLIST(TWOBYTES),C C REGS? @VA04250 00244000
  247. BE GOREGS CTL REGS @VA04250 00245000
  248. CLC PLIST(CHARLEN),DISPLAY DISPLAY TYPE? @VA04250 00246000
  249. BE DCHECK ABBREVIATION CHECK @VA04250 00247000
  250. CLC PLIST(CHARLEN),TRACE TRACE REQUEST? @VA04250 00248000
  251. BE TCHECK CHECK ABBREVIATIONS @VA04250 00249000
  252. CLC PLIST(CHARLEN),LOCATE LOCATE? @VA04250 00250000
  253. BE LCHECK GO CHECK @VA04250 00251000
  254. CLC PLIST(L'QUERY),QUERY IS IT A QUESTION MARK? @VA04250 00252000
  255. BE POSTIN GO SHOW INPUT LINE @VA04250 00253000
  256. CLC PLIST(SEVENBYT),INVALID INVALID INPUT SIGNAL @VA04250 00254000
  257. BE INQUIRY GO CHANGE 'HUH' CHARACTER @VA04250 00255000
  258. CLC PLIST(CHARLEN),PRINT PRINT? @V4075A2 00256000
  259. BE PCHECK GO TEST OUT THE COMMAND @V4075A2 00257000
  260. CLC PLIST(CHARLEN),AMPERSAN &? @V4075A2 00258000
  261. BE AMPCHECK GO HANDLE &NAME REQUEST @V4075A2 00259000
  262. CLC PLIST,MAP NUC MAP REQUEST? @V4075A2 00260000
  263. BE MAPCHECK YES - GO SET UP TO ADD MAP @V4075A2 00261000
  264. CLC PLIST(CHARLEN),M MREGS ? @V4075A2 00262000
  265. BE APCHECK GO TEST AP REGS REQUEST. @V4075A2 00263000
  266. CLC PLIST(CHARLEN),A AREGS ? @V4075A2 00264000
  267. BE APCHECK CHECK AP REGS REQUEST @V4075A2 00265000
  268. * * * * * * * * ------- -------- -------- ------- * 00266000
  269. * * * * * * * * THE INPUT WAS NOT RECOGNIZED. 00267000
  270. * * * * * * * * SHOW THE USER HIS INPUT LINE 00268000
  271. * * * * * * * * AND LET HIM RETRY 00269000
  272. * * * * * * * * ------- -------- -------- ------- * 00270000
  273. NOTKNOWN BAL R10,CLEAR CLEAR SCREEN @VA04250 00271000
  274. LA R8,HUH ADDRESS OF '???...' CHARACTER @VA04250 00272000
  275. LA R9,L'HUH AND LENGTH @VA04250 00273000
  276. A R9,INLENGTH ADD THE LENGTH OF THE INPUT LINE @V4075A2 00274000
  277. BAL R10,WRTERM DID NOT RECOGNIZE THE INPUT @VA04250 00275000
  278. B REREADY GO BACK TO READ @VA04250 00276000
  279. EJECT 00277000
  280. * * * * * * * *------- -------- -------- -------- ------* 00278000
  281. * * * * * * * * THESE HANDLE THE ROUTING TO THE VARIOUS 00279000
  282. * * * * * * * * SUBROUTINES, AND THEIR RETURN. 00280000
  283. * * * * * * * * EACH ROUTINE, WHERE APPROPRIATE, 00281000
  284. * * * * * * * * CHECKS FOR VALID ABBREVIATIONS OF THE 00282000
  285. * * * * * * * * SUBCOMMANDS. 00283000
  286. * * * * * * * *------- -------- -------- -------- ------* 00284000
  287. * * * * * * * * CHECK 'VIO' THEN GIVE VMBLOK A TRY 00285000
  288. * * * * * * * * ------- -------- -------- ------- * 00286000
  289. VCHECK CLC PLIST+ONE(L'NOPARM),NOPARM IS THIS JUST 'V' ? @VA04250 00287000
  290. BE GOVMB TREAT IT AS A VMB REQUEST @VA04250 00288000
  291. LA R2,PLIST+L'VIOBLOK-ONE COUNT LETTERS IN PLIST @VA04250 00289000
  292. LA R3,VIOBLOK+L'VIOBLOK-ONE MATCH WITH THE TARGET @VA04250 00290000
  293. LA R4,L'VIOBLOK-ONE COUNT TRIES DOWN TO 'VX' @VA04250 00291000
  294. BAL R10,PCOMP GO TO PLIST CHECK ROUTINE @VA04250 00292000
  295. B VMBCHECK NOT VIO - TRY VMB @VA04250 00293000
  296. BAL R10,NULLCHK4 CHECK NO FOURTH TERM @VA04250 00294000
  297. B GOIOB HIT ON VIO - GO TO IOB @VA04250 00295000
  298. VMBCHECK LA R2,PLIST+L'VMBLOK-ONE PLIST ENTRY LENGTH @VA04250 00296000
  299. LA R3,VMBLOK+L'VMBLOK-ONE MATCH VMBLOK @VA04250 00297000
  300. LA R4,L'VMBLOK TRY ALL LETTERS @VA04250 00298000
  301. BAL R10,PCOMP GO TO CHECK ROUTINE @VA04250 00299000
  302. B NOTKNOWN NO LUCK @VA04250 00300000
  303. * * * * * * * * ------- -------- -------- ------- * 00301000
  304. * * * * * * * * VMBLOK SETUP 00302000
  305. * * * * * * * * ------- -------- -------- ------- * 00303000
  306. GOVMB BAL R10,CLEAR TOP OF SCREEN @VA04250 00304000
  307. BAL R10,NULLCHK2 CHECK NO SECOND PARM @VA04250 00305000
  308. L R15,VMBADD 'VMB' ADDRESS @VA04250 00306000
  309. BALR R14,R15 GO @VA04250 00307000
  310. LTR R15,R15 HOW WAS IT? @VA04250 00308000
  311. BZ REREADY REAL GOOD @VA04250 00309000
  312. B CODECHEK THAT BAD HUH? @VA04250 00310000
  313. * * * * * * * * ------- -------- -------- ------- * 00311000
  314. * * * * * * * * SCROLL VALIDITY CHECKING 00312000
  315. * * * * * * * * ------- -------- -------- ------- * 00313000
  316. SCHECK LA R2,PLIST+L'SCROLL COUNT LETTERS IN PLIST @VA04250 00314000
  317. LA R3,SCROLL+L'SCROLL MATCH IN TARGET @VA04250 00315000
  318. LA R4,L'SCROLL NUMBER OF TRIES @VA04250 00316000
  319. BAL R10,PCOMP PLIST CHECKOUT @VA04250 00317000
  320. B NOTKNOWN NO LUCK @VA04250 00318000
  321. * * * * * * * * ------- -------- -------- ------- * 00319000
  322. * * * * * * * * SET UP FOR SCROLL 00320000
  323. * * * * * * * * ------- -------- -------- ------- * 00321000
  324. GOSCROLL BAL R10,NULLCHK2 CHECK NO SECOND PARM @VA04250 00322000
  325. LA R2,PLIST INPUT TO PASS TO SCROLL @VA04250 00323000
  326. L R15,SCRADD SCROLL ROUTINE @VA04250 00324000
  327. BALR R14,R15 GO SCROLL IT @VA04250 00325000
  328. LTR R15,R15 OK ? @VA04250 00326000
  329. BNZ CODECHEK WHAT WAS THE RET CODE @VA04250 00327000
  330. B READY READ NEXT LINE @VA04250 00328000
  331. * * * * * * * *------- -------- -------- -------- ------* 00329000
  332. * * * * * * * * CHECK OUT 'RIOBLOK' 00330000
  333. * * * * * * * * ------- -------- -------- ------- * 00331000
  334. RCHECK CLC PLIST+ONE(L'NOPARM),NOPARM IS THIS JUST AN 'R'? @VA04250 00332000
  335. BE GOREGS TREAT IT AS A REG REQUEST @VA04250 00333000
  336. LA R2,PLIST+L'RIOBLOK-ONE 'RIO ' @VA04250 00334000
  337. LA R3,RIOBLOK+L'RIOBLOK-ONE TARGET @VA04250 00335000
  338. LA R4,L'RIOBLOK-ONE TRY DOWN TO 'RI' @VA04250 00336000
  339. BAL R10,PCOMP CHECK PLIST @VA04250 00337000
  340. B REGCHECK NOT RIO - TRY REGS @VA04250 00338000
  341. BAL R10,NULLCHK3 CHECK NO THIRD PARM @VA04250 00339000
  342. B GOIOB RIO REQUEST @VA04250 00340000
  343. ************************************************************ @V4075A2 00341000
  344. * CHECK FOR MREGS OR AREGS REQUEST @V4075A2 00342000
  345. ************************************************************ @V4075A2 00343000
  346. APCHECK LA R2,PLIST+L'XREGS-ONE COUNT PLIST ENTRY @V4075A2 00344000
  347. LA R3,XREGS+L'XREGS-ONE COUNT TARGET @V4075A2 00345000
  348. LA R4,L'XREGS-1 COUNT TIMES TO TRY @V4075A2 00346000
  349. BAL R10,PCOMP CHECK ALL ABBREVIATIONS @V4075A2 00347000
  350. B NOTKNOWN BAD RETURN @V4075A2 00348000
  351. BAL R10,NULLCHK2 CHECK FOR NO SECOND TERM @V4075A2 00349000
  352. B GOREGS OK - PASS IT TO DMMREG @V4075A2 00350000
  353. * * * * * * * * ------- -------- -------- ------- * 00351000
  354. * * * * * * * * NOT 'RIO' - NOW CHECK 'REGS' 00352000
  355. * * * * * * * * ------- -------- -------- ------- * 00353000
  356. REGCHECK LA R2,PLIST+L'REGS-ONE COUNT PLIST ENTRY @VA04250 00354000
  357. LA R3,REGS+L'REGS-ONE COUNT IN TARGET @VA04250 00355000
  358. LA R4,L'REGS COUNT TRIES @VA04250 00356000
  359. BAL R10,PCOMP CHECK IT AGAINST TARGET @VA04250 00357000
  360. B NOTKNOWN NOLUCK @VA04250 00358000
  361. GOREGS BAL R10,NULLCHK2 CHECK NO SECOND PARM @VA04250 00359000
  362. LA R2,PLIST GET THE COMMAND @VA04250 00360000
  363. L R15,REGADD AND THE ADDRESS @VA04250 00361000
  364. BALR R14,R15 AND GO REG IT @VA04250 00362000
  365. LTR R15,R15 TEST RETCODE @VA04250 00363000
  366. BNZ CODECHEK HOW BAD? @VA04250 00364000
  367. B REREADY GO WRITE READY. @VA04250 00365000
  368. ***************************************************************@V4075A2 00366000
  369. * &NAME ALLOWS USER TO EQUATE A GIVEN NAME TO A @V4075A2 00367000
  370. * GIVEN SUBCOMMAND. '&' ONLY REQUESTS A LISTING @V4075A2 00368000
  371. * OF ASSIGNED NAMES. CHECK THIS FIRST. @V4075A2 00369000
  372. * ENTRIES, OF THE FORM '&NAME A B C' WHERE &NAME @V4075A2 00370000
  373. * IS A USER SUPPLIED NAME, AND 'A B C' IS A SUBCOMMAND @V4075A2 00371000
  374. * ARE STORED IN 'AMPTABLE', AS A STRING OF 8 BYTE @V4075A2 00372000
  375. * TOKENS. NEW ENTRIES ARE ADDED TO THE END. IF @V4075A2 00373000
  376. * THIS IS A REPLACE THE OLD ENTRY IS FIRST REMOVED, @V4075A2 00374000
  377. * AND THE GAS EXTRACTED. @V4075A2 00375000
  378. ***************************************************************@V4075A2 00376000
  379. AMPCHECK CLC AMPERSAN,PLIST IS THIS A LONE AMPERSAND ? @V4075A2 00377000
  380. BE SHOWTAB YES - GO DISPLAY THE TABLE @V4075A2 00378000
  381. ***************************************************************@V4075A2 00379000
  382. * AN &NAME SUBCOMMAND MAY NOT CONTAIN @V4075A2 00380000
  383. * AN &NAME TERM NOR A PRINT SUBCOMMAND. @V4075A2 00381000
  384. ***************************************************************@V4075A2 00382000
  385. CLC PLIST2(CHARLEN),PRINT IS THIS TO BE A PRINT? @V4075A2 00383000
  386. BE ILLEGAMP YES - DONT ALLOW IT @V4075A2 00384000
  387. LA R3,PLIST2 POINT TO NEXT TERM @V4075A2 00385000
  388. TERM2CHK CLC FENCE,0(R3) ARE THERE MORE TERMS ? @V4075A2 00386000
  389. BE TSEARCH NO MORE TERMS - GO SCAN TABLE @V4075A2 00387000
  390. CLC 0(CHARLEN,R3),AMPERSAN IS THERE A SECOND AMPER ?@V4075A2 00388000
  391. BE ILLEGAMP YES - GO ISSUE WARNING @V4075A2 00389000
  392. LA R3,L'PLIST(R3) CHECK NEXT TERM @V4075A2 00390000
  393. B TERM2CHK AND TRY THE NEXT @V4075A2 00391000
  394. ***************************************************************@V4075A2 00392000
  395. * SEARCH THE NAMETABLE FOR THE &NAME, @V4075A2 00393000
  396. * THE END OF THE ENTRIES, OR THE END OF THE TABLE @V4075A2 00394000
  397. ***************************************************************@V4075A2 00395000
  398. TSEARCH LA R3,AMPTABLE POINT TO THE &NAME TABLE @V4075A2 00396000
  399. ENDCHECK CLC FENCE,0(R3) END OF TABLE-SPACE? @V4075A2 00397000
  400. BE OFFEND YES - NOT IN TAB. CHECK 2ND TERM @V4075A2 00398000
  401. CLC BLANKS,0(R3) END OF ENTRIES @V4075A2 00399000
  402. BE NOTINTAB NOT IN TABLE - ADD IT @V4075A2 00400000
  403. CLC PLIST,0(R3) NAME WE'RE SEEKING ? @V4075A2 00401000
  404. BE FOUNDAMP YES - NAME IS IN TABLE @V4075A2 00402000
  405. LA R3,L'AMPTABLE(R3) NOT YET - TRY NEXT ENTRY @V4075A2 00403000
  406. B ENDCHECK ROUND AGAIN @V4075A2 00404000
  407. OFFEND CLC PLIST2,FENCE NO SECOND TERM - IE CALLING ? @V4075A2 00405000
  408. BE NOTKNOWN YES - SO IT WAS NOT FOUND @V4075A2 00406000
  409. B FULLMSG NO - ADDING, BUT NO ROOM IN TAB. @V4075A2 00407000
  410. ***************************************************************@V4075A2 00408000
  411. * ADD THIS NAME TO THE END OF THE TABLE @V4075A2 00409000
  412. * R3 POINTS TO THE AMPTABLE SLOT @V4075A2 00410000
  413. ***************************************************************@V4075A2 00411000
  414. NOTINTAB CLC PLIST2,FENCE INVALID CALL TO TABLE? @V4075A2 00412000
  415. BE NOTKNOWN YES SEND IT BACK @V4075A2 00413000
  416. LA R2,PLIST NO - ADD IT - POINT TO INPUT @V4075A2 00414000
  417. ST R3,NEWSTART SAVE THE START INCASE NO ROOM @V4075A2 00415000
  418. NEXTTERM MVC 0(L'AMPTABLE,R3),0(R2) MOVE THE PLIST ENTRY TO THE TABLE 00416000
  419. LA R2,L'PLIST(R2) NEXT PLIST ENTRY @V4075A2 00417000
  420. CLC FENCE,0(R2) IS IT THE END OF THE PLIST? @V4075A2 00418000
  421. BE AMPEND YES - &NAME IS ADDED - EXIT @V4075A2 00419000
  422. LA R3,L'AMPTABLE(R3) NEXT SLOT IN &NAME TABLE @V4075A2 00420000
  423. CLC FENCE,0(R3) ARE WE OFF THE END OF THE TABLE? @V4075A2 00421000
  424. BNE NEXTTERM NOT YET - TRY AGAIN @V4075A2 00422000
  425. ***************************************************************@V4075A2 00423000
  426. * IF WE FILLED UP THE TABLE, WE MAY HAVE A PART @V4075A2 00424000
  427. * OF AN ENTRY IN THE TABLE. THIS REMOVES IT @V4075A2 00425000
  428. ***************************************************************@V4075A2 00426000
  429. L R3,NEWSTART FILLED UP, CLEAR OUT PART ENTRY @V4075A2 00427000
  430. ST R3,NEXTSLOT THIS IS THE NEW NEXT SLOT @V4075A2 00428000
  431. FENCEYET CLC FENCE,0(R3) BACK TO END OF TABLE @V4075A2 00429000
  432. BE FULLMSG YES - GO SEND NOROOM MSG @V4075A2 00430000
  433. MVC 0(L'AMPTABLE,R3),BLANKS CLEAR OUT AN ENTRY @V4075A2 00431000
  434. LA R3,L'AMPTABLE(R3) BUMP TO NEXT SLOT @V4075A2 00432000
  435. B FENCEYET AND TRY THE NEXT @V4075A2 00433000
  436. ***************************************************************@V4075A2 00434000
  437. * AN &TERM WAS FOUND LURKING IN THE SUBCOMMAND. @V4075A2 00435000
  438. * SEND A MESSAGE TO THE USER, WARNING HIM @V4075A2 00436000
  439. ***************************************************************@V4075A2 00437000
  440. ILLEGAMP LA R8,ILLAMPMS GET THE TWO AMPERS MESSAGE @V4075A2 00438000
  441. LA R9,TAMSGLEN AND ITS LENGTH @V4075A2 00439000
  442. BAL R10,WRTERM AND WRITE IT @V4075A2 00440000
  443. B AMPEND GO TO GET OUT @V4075A2 00441000
  444. ***************************************************************@V4075A2 00442000
  445. * HERE AS A RESULT OF AN '&' REQUEST WE DISPLAY @V4075A2 00443000
  446. * THE CURRENT TABLE ENTRIES @V4075A2 00444000
  447. ***************************************************************@V4075A2 00445000
  448. SHOWTAB MVI AMPBUFF,BLANK SET TO CLEAR @V4075A2 00446000
  449. MVC AMPBUFF+1(L'AMPBUFF-1),AMPBUFF BUFFER TO BLANKS @V4075A2 00447000
  450. LA R2,AMPTABLE START OF TABLE @V4075A2 00448000
  451. LA R3,AMPBUFF START OF BUFFER @V4075A2 00449000
  452. TABLEMOV MVC 0(L'AMPTABLE,R3),0(R2) MOVE TERM INTO THE BUFFER@V4075A2 00450000
  453. LA R2,L'AMPTABLE(R2) BUMP INPUT POINTER @V4075A2 00451000
  454. LA R3,L'AMPTABLE+1(R3) AND O/P PTR (MAY BE 8 BY)@V4075A2 00452000
  455. CLC BLANKS,0(R2) END OF ENTRIES ? @V4075A2 00453000
  456. BE WRTABEND YES - MARK END OF TABLE @V4075A2 00454000
  457. CLC FENCE,0(R2) END OF TABLE ? @V4075A2 00455000
  458. BE WRTABEND SAME DEAL @V4075A2 00456000
  459. CLC 0(CHARLEN,R2),AMPERSAN OR IS IT THE NEXT ENTRY @V4075A2 00457000
  460. BE WRTABLE WRITE IT BUT DONT FLAG END @V4075A2 00458000
  461. B TABLEMOV STILL WITHIN ENTRY - BACK AROUND @V4075A2 00459000
  462. ***************************************************************@V4075A2 00460000
  463. * NOW THE LINE IS IN PLACE. RUN THROUGH IT @V4075A2 00461000
  464. * AND STRIP OUT THE BLANKS, THEN WRITE IT. @V4075A2 00462000
  465. ***************************************************************@V4075A2 00463000
  466. WRTABEND MVI TABENDSW,TURNON SET END OF ENTRIES @V4075A2 00464000
  467. WRTABLE XC OUTLINE,OUTLINE CLEAR THE OUTPUT AREA @V4075A2 00465000
  468. MVI ZBSWITCH,TURNOFF SET SWITCH OFF @V4075A2 00466000
  469. LA R4,AMPBUFF INPUT PTR @V4075A2 00467000
  470. LA R5,OUTLINE OUTPUT POINTER @V4075A2 00468000
  471. LA R6,L'AMPBUFF COUNT BYTES @V4075A2 00469000
  472. ZBTEST CLI 0(R4),BLANK IS IT A BLANK? @V4075A2 00470000
  473. BE ZBCHECK IF SO, IS IT THE FIRST? @V4075A2 00471000
  474. CLI 0(R4),HEXZERO OR A HEX '00'? @V4075A2 00472000
  475. BE ZBCHECK FIRST? @V4075A2 00473000
  476. MVI ZBSWITCH,TURNOFF NEITHER - SET SWITCH OFF @V4075A2 00474000
  477. MOVEBYTE MVC 0(ONE,R5),0(R4) MOVE A BYTE TO OUTPUT @V4075A2 00475000
  478. LA R5,ONE(R5) BUMP OUTPUT PTR @V4075A2 00476000
  479. BUMPIN LA R4,ONE(R4) BUMP INPUT PTR @V4075A2 00477000
  480. BCT R6,ZBTEST TRY NEXT CHAR @V4075A2 00478000
  481. B WRITESET ALL DONE - SET UP WRITE @V4075A2 00479000
  482. ZBCHECK CLI ZBSWITCH,TURNON IS THIS NOT THE FIRST ZERO? @V4075A2 00480000
  483. BE BUMPIN YES - SKIP IT @V4075A2 00481000
  484. MVI ZBSWITCH,TURNON NO - SET IT ON @V4075A2 00482000
  485. B MOVEBYTE BUT MOVE IT ANYWAY @V4075A2 00483000
  486. ***************************************************************@V4075A2 00484000
  487. * NOW ALL BYTES ARE MOVED. R5 POINTS @V4075A2 00485000
  488. * TO THE LAST CHAR IN THE COMPRESSED LINE @V4075A2 00486000
  489. * FIND ITS LENGTH, AND THEN WRITE IT. @V4075A2 00487000
  490. ***************************************************************@V4075A2 00488000
  491. WRITESET LA R6,OUTLINE-ONE START OF LINE @V4075A2 00489000
  492. SR R5,R6 LENGTH OF LINE @V4075A2 00490000
  493. LR R9,R5 PUT IT IN R9 @V4075A2 00491000
  494. LA R8,OUTLINE START OF LINE @V4075A2 00492000
  495. BAL R10,WRTERM GO WRITE IT @V4075A2 00493000
  496. ***************************************************************@V4075A2 00494000
  497. * SEE IF WE HAVE WRITTEN ALL THE LINES @V4075A2 00495000
  498. * OR IF WE HAVE MORE TO GO. @V4075A2 00496000
  499. ***************************************************************@V4075A2 00497000
  500. CLI TABENDSW,TURNON DID WE REACH LAST ENTRY ? @V4075A2 00498000
  501. BE ENDSWOFF YES - GO WRAP UP @V4075A2 00499000
  502. LA R3,AMPBUFF START OF OUTPUT BUFFER @V4075A2 00500000
  503. MVI AMPBUFF,BLANK AND CLEAR IT @V4075A2 00501000
  504. MVC AMPBUFF+1(L'AMPBUFF-1),AMPBUFF @V4075A2 00502000
  505. B TABLEMOV AND GO DO THE NEXT ONE @V4075A2 00503000
  506. ENDSWOFF MVI TABENDSW,TURNOFF YES - RESET THE SWITCH. @V4075A2 00504000
  507. B AMPEND AND EXIT @V4075A2 00505000
  508. ***************************************************************@V4075A2 00506000
  509. * WE FOUND THE NAME IN THE TABLE. @V4075A2 00507000
  510. * IF THERE IS A SECOND PARM ON THE INPUT, @V4075A2 00508000
  511. * REMOVE THE OLD ENTRY AND CLOSE UP THE TABLE. @V4075A2 00509000
  512. * THEN ADD THE NEW ENTRY TO THE END. @V4075A2 00510000
  513. * IF THERE IS NO SECOND PARM IN THE INPUT, @V4075A2 00511000
  514. * FETCH THE EXISTING ENTRY AND SUBMIT IT. @V4075A2 00512000
  515. ***************************************************************@V4075A2 00513000
  516. FOUNDAMP CLC PLIST2,FENCE IS THERE NO SECOND TERM ? @V4075A2 00514000
  517. BE SUBMIT RIGHT - GO SEND IN THE SUBCOMMAND@V4075A2 00515000
  518. ***************************************************************@V4075A2 00516000
  519. * THERE IS A PARM. 'PERFORM TABLE MAINTENANCE' @V4075A2 00517000
  520. ***************************************************************@V4075A2 00518000
  521. ST R3,NEXTSLOT TRUE IF WE REPLACE LAST ENTRY @V4075A2 00519000
  522. LA R2,L'AMPTABLE(R3) NEXT SLOT IN TABLE @V4075A2 00520000
  523. NEXTNAME CLC 0(CHARLEN,R2),AMPERSAN SCAN FOR NEXT '&' @V4075A2 00521000
  524. BE CLOSEUP FOUND IT - GO CLOSE GAP @V4075A2 00522000
  525. CLC BLANKS,0(R2) THEN IS IT BLANKS ? @V4075A2 00523000
  526. BE LASTENTR YES - THIS WAS THE LAST ENTRY @V4075A2 00524000
  527. CLC FENCE,0(R2) END OF TABLE AREA ? @V4075A2 00525000
  528. BE LASTENTR LAST IN SPACE @V4075A2 00526000
  529. LA R2,L'AMPTABLE(R2) NONE OF THE ABOVE @V4075A2 00527000
  530. B NEXTNAME TRY NEXT TERM @V4075A2 00528000
  531. ***************************************************************@V4075A2 00529000
  532. * THIS BLANKS OUT THE ENTRY IF IT WAS THE LAST ONE @V4075A2 00530000
  533. ***************************************************************@V4075A2 00531000
  534. LASTENTR MVC 0(L'AMPTABLE,R3),BLANKS CLEAR OUT THE ENTRY @V4075A2 00532000
  535. LA R3,L'AMPTABLE(R3) POINT TO NEXT TERM @V4075A2 00533000
  536. CLC BLANKS,0(R3) TABLE EMPTY ? @V4075A2 00534000
  537. BE ADDNEXT YES - GO PLUG IT IN @V4075A2 00535000
  538. CLC FENCE,0(R3) OR END OF TABLE SPACE ? @V4075A2 00536000
  539. BE ADDNEXT EITHER WAY, GO PLUG IN THE NEW ON@V4075A2 00537000
  540. B LASTENTR NO - GO CLEAR MORE @V4075A2 00538000
  541. ***************************************************************@V4075A2 00539000
  542. * NOW CLOSE UP TO COVER THE OLD NAME @V4075A2 00540000
  543. * R2 POINTS TO NEXT VALID NAME, R3 TO THE OLD NAME. @V4075A2 00541000
  544. ***************************************************************@V4075A2 00542000
  545. CLOSEUP MVC 0(L'AMPTABLE,R3),0(R2) MOVE ENTRY LEFT IN TABLE @V4075A2 00543000
  546. LA R2,L'AMPTABLE(R2) BUMP INPUT PTR @V4075A2 00544000
  547. LA R3,L'AMPTABLE(R3) AND OUT PTR @V4075A2 00545000
  548. CLC FENCE,0(R2) OUT OF SPACE ? @V4075A2 00546000
  549. BE LAPCHECK GO CHECK ENDING CONDITION @V4075A2 00547000
  550. CLC BLANKS,0(R2) OR ALL DONE ? @V4075A2 00548000
  551. BE LAPCHECK CHECK ENDING @V4075A2 00549000
  552. B CLOSEUP NOT YET - ROUND AGAIN @V4075A2 00550000
  553. ***************************************************************@V4075A2 00551000
  554. * NOW CHECK THAT THE WHOLE ENTRY WAS CLEARED @V4075A2 00552000
  555. ***************************************************************@V4075A2 00553000
  556. LAPCHECK ST R3,NEXTSLOT SAVE THE POINTER TO NEXT SLOT @V4075A2 00554000
  557. LAPLOOP CLC BLANKS,0(R3) HAS IT BEEN CLEARED ? @V4075A2 00555000
  558. BE ADDNEXT YES - GO ADD NEW ENTRY @V4075A2 00556000
  559. CLC FENCE,0(R3) OR IS IT END OF TABLE ? @V4075A2 00557000
  560. BE ADDNEXT YES - GO ADD THE NEW ENTRY @V4075A2 00558000
  561. MVC 0(L'AMPTABLE,R3),BLANKS NO - DO IT NOW @V4075A2 00559000
  562. LA R3,L'AMPTABLE(R3) LOOK AT THE NEXT. @V4075A2 00560000
  563. B LAPLOOP AND ROUND AGAIN @V4075A2 00561000
  564. ***************************************************************@V4075A2 00562000
  565. * THE LIST IS NOW CONDENSED. ADD THE NEW @V4075A2 00563000
  566. * ENTRY ONTO THE END, GETTING THE STARTING @V4075A2 00564000
  567. * ADDRESS FROM 'NEXTSLOT' @V4075A2 00565000
  568. ************************************************************* @V4075A2 00566000
  569. ADDNEXT LA R2,PLIST POINT TO NEW ENTRY @V4075A2 00567000
  570. L R3,NEXTSLOT POINT TO NEXTSLOT @V4075A2 00568000
  571. NEXTOKEN MVC 0(L'AMPTABLE,R3),0(R2) MOVE IN THE TOKEN @V4075A2 00569000
  572. LA R2,L'AMPTABLE(R2) BUMP INPUT @V4075A2 00570000
  573. LA R3,L'AMPTABLE(R3) AND OUTPUT @V4075A2 00571000
  574. CLC FENCE,0(R2) END OF INPUT FROM PLIST? @V4075A2 00572000
  575. BE AMPEND YES ALL MOVED @V4075A2 00573000
  576. CLC FENCE,0(R3) END OF TABLE SPACE ? @V4075A2 00574000
  577. BE NOROOM RIGHT - GO SEND MESSAGE @V4075A2 00575000
  578. B NEXTOKEN NO - GO GET NEXT @V4075A2 00576000
  579. ***************************************************************@V4075A2 00577000
  580. * CLEAR OUT THE PARTIAL ENTRY AND @V4075A2 00578000
  581. * WRITE THE 'NO ROOM AT THE TABLE' MESSAGE @V4075A2 00579000
  582. ***************************************************************@V4075A2 00580000
  583. NOROOM L R3,NEXTSLOT POINT TO FIRST TRUE SPACE @V4075A2 00581000
  584. CLEARTAB MVC 0(L'AMPTABLE,R3),BLANKS CLEAR A SLOT @V4075A2 00582000
  585. LA R3,L'AMPTABLE(R3) POINT TO NEXT TO CLEAR @V4075A2 00583000
  586. CLC BLANKS,0(R3) IS IT ALREADY BLANK ? @V4075A2 00584000
  587. BE FULLMSG YES - DONE - GO TO MSG @V4075A2 00585000
  588. CLC FENCE,0(R3) OR END OF TABLE? @V4075A2 00586000
  589. BNE CLEARTAB NO - GO DO NEXT @V4075A2 00587000
  590. FULLMSG LA R8,TABFULMS GET THE ADDRESS OF THE MSG @V4075A2 00588000
  591. LA R9,TFMSGLEN AND THE LENGTH @V4075A2 00589000
  592. BAL R10,WRTERM AND GO WRITE IT @V4075A2 00590000
  593. B AMPEND AND GET OUT @V4075A2 00591000
  594. ***************************************************************@V4075A2 00592000
  595. * GET THE SUBCOMMAND FROM THE TABLE AND @V4075A2 00593000
  596. * SEND IT TO BE PROCESSED. @V4075A2 00594000
  597. ***************************************************************@V4075A2 00595000
  598. SUBMIT MVC INSAVE,BLANKOUT CLEAR SAVE AREA @V4075A2 00596000
  599. MVC INSAVE,INPUT SAVE INPUT LINE @V4075A2 00597000
  600. MVC OLDINLEN,INLENGTH AND LENGTH @V4075A2 00598000
  601. LA R4,L'AMPTABLE(R3) R4 NOW START OF SUBC. @V4075A2 00599000
  602. LA R3,INPUT WHERE TO PUT IT @V4075A2 00600000
  603. LA R2,NULL SET COUNTER @V4075A2 00601000
  604. AMPTOPLS MVC 0(L'AMPTABLE,R3),0(R4) MOVE IN A TOKEN @V4075A2 00602000
  605. LA R4,L'AMPTABLE(R4) BUMP INPUT @V4075A2 00603000
  606. LA R3,L'AMPTABLE+1(R3) AND OUTPUT @V4075A2 00604000
  607. LA R2,L'AMPTABLE+1(R2) COUNT THE BYTES MOVED IN @V4075A2 00605000
  608. CLC 0(CHARLEN,R4),AMPERSAN START OF NEXT ENTRY ? @V4075A2 00606000
  609. BE COUNTIT YES - GO SAVE LENGTH @V4075A2 00607000
  610. CLC BLANKS,0(R4) OR END OF TABLE? @V4075A2 00608000
  611. BE COUNTIT YES - GO SAVE LENGTH @V4075A2 00609000
  612. CLC FENCE,0(R4) OR END OF TABLE SPACE ? @V4075A2 00610000
  613. BE COUNTIT YES - GO SAVE LENGTH @V4075A2 00611000
  614. B AMPTOPLS NONE OF ABOVE - MOVE IN TOKEN @V4075A2 00612000
  615. COUNTIT ST R2,INLENGTH SAVE THE INPUT LENGTH @V4075A2 00613000
  616. B REINCHK ALL DONE - GO TOKENIZE @V4075A2 00614000
  617. ************************************************************ @V4075A2 00615000
  618. * THE LENGTH OF AN ''&NAME'' MUST NOT EXCEED @V4075A2 00616000
  619. * EIGHT BYTES - CHECK FOR THIS. @V4075A2 00617000
  620. ************************************************************ @V4075A2 00618000
  621. AMPTRUNK LA R3,INPUT START OF INPUT @V4075A2 00619000
  622. BCHK CLI 0(R3),BLANK SCAN FOR START OF DATA @V4075A2 00620000
  623. BNE AMP THEN IS IT AN AMPERSAND? @V4075A2 00621000
  624. LA R3,1(R3) LOOK FOR NEXT @V4075A2 00622000
  625. B BCHK AND TRY IT @V4075A2 00623000
  626. AMP CLC 0(CHARLEN,R3),AMPERSAN IS IT AN &NAME DEAL? @V4075A2 00624000
  627. BNE NOTRUNK NO - NO CHECK NEEDED @V4075A2 00625000
  628. LA R4,L'PLIST CHECK FOR TOTAL 8 BYTES @V4075A2 00626000
  629. AMPTRK LA R3,1(R3) BUMP TO NAME @V4075A2 00627000
  630. CLI 0(R3),BLANK OFF THE END ? @V4075A2 00628000
  631. BE NOTRUNK YES - LENGTH IS OK @V4075A2 00629000
  632. BCT R4,AMPTRK NOT YET - GO COUNT MORE @V4075A2 00630000
  633. B NOTKNOWN &NAME IS TOO LONG - DUMP IT @V4075A2 00631000
  634. NOTRUNK BR R10 RETURN @V4075A2 00632000
  635. ***************************************************************@V4075A2 00633000
  636. * ENDING ROUTINE @V4075A2 00634000
  637. ***************************************************************@V4075A2 00635000
  638. AMPEND B REREADY BACK TO WORK @V4075A2 00636000
  639. ************************************************************ @V4075A2 00637000
  640. * SAVE THE SECOND PARM ON THIS LINE, AS IT IS THE @V4075A2 00638000
  641. * SEARCH ARGUMENT FOR THE LOCATE COMMAND, AND CANNOT @V4075A2 00639000
  642. * BE TOKENIZED. @V4075A2 00640000
  643. ************************************************************ @V4075A2 00641000
  644. SAVSTRNG LA R3,INPUT START OF INPUT LINE @V4075A2 00642000
  645. L R4,INLENGTH AND ITS LENGTH @V4075A2 00643000
  646. STRINGSC CLI 0(R3),BLANK SCAN LEADING BLANKS @V4075A2 00644000
  647. BNE LOCATEP1 NO - INTO FIRST PARM (L) @V4075A2 00645000
  648. LA R3,1(R3) NEXT INPUT BYTE @V4075A2 00646000
  649. BCT R4,STRINGSC GO SCAN LINE @V4075A2 00647000
  650. B NOTKNOWN FELL OFF THE END ????? @V4075A2 00648000
  651. LOCATEP1 CLI 0(R3),BLANK SCAN P1 TILL YOU FIND THE BLANK @V4075A2 00649000
  652. BE LOCATES1 NOW GO LOOK FOR SECOND PARM @V4075A2 00650000
  653. LA R3,1(R3) NEXT BYTE @V4075A2 00651000
  654. BCT R4,LOCATEP1 IF NOT TOO FAR @V4075A2 00652000
  655. B NOTKNOWN END OF LINE @V4075A2 00653000
  656. LOCATES1 CLI 0(R3),BLANK SCAN THIS SPACE FOR SECOND PARM @V4075A2 00654000
  657. BNE LOCSTRNG GOT IT - GO MOVE IT @V4075A2 00655000
  658. LA R3,1(R3) NO - TRY NEXT @V4075A2 00656000
  659. BCT R4,LOCATES1 TRY AGAIN @V4075A2 00657000
  660. B NOTKNOWN OFF THE END @V4075A2 00658000
  661. ************************************************************ @V4075A2 00659000
  662. * NOW R3 POINTS TO THE FIRST BYTE OF THE LOCATE SEARCH @V4075A2 00660000
  663. * ARGUMENT. FIND THE LENGTH OF THE BALANCE OF THE INPUT @V4075A2 00661000
  664. * AND MOVE IT TO STRINGAD WHERE DMMLOC CAN FIND IT @V4075A2 00662000
  665. ************************************************************ @V4075A2 00663000
  666. LOCSTRNG LA R4,INPUT POINT TO START OF INPUT LINE @V4075A2 00664000
  667. A R4,INLENGTH NOW POINT TO END OF INPUT @V4075A2 00665000
  668. SR R4,R3 R2 NOW HAS LENGTH OF TERMS 2 - 5 @V4075A2 00666000
  669. BM FIXUP NOTHING CAN GO WRONG...GO WRONG..@V4075A2 00667000
  670. C R4,MAXSTRNG GO WRONG... GO WRONG... @V4075A2 00668000
  671. BH FIXUP BUT IF IT DOES... @V4075A2 00669000
  672. SAVESTLN ST R4,STRINGLN SAVE IT FOR DMMLOC @V4075A2 00670000
  673. BCTR R4,R0 SET UP LENGTH FOR EX @V4075A2 00671000
  674. MVI STRINGAD,BLANK SET UP TO CLEAR STRING @V4075A2 00672000
  675. MVC STRINGAD+1(L'STRINGAD-1),STRINGAD CLR TO BLANKS @V4075A2 00673000
  676. EX R4,STRMOVE MOVE THE STRING @V4075A2 00674000
  677. BR R10 RETURN TO GO TO DMMLOC @V4075A2 00675000
  678. FIXUP L R4,MAXSTRNG SET ARBITRARY MAX OF 148 @V4075A2 00676000
  679. B SAVESTLN AND GO SAVE IT @V4075A2 00677000
  680. STRMOVE MVC STRINGAD(0),0(R3) MOVE THE STRING @V4075A2 00678000
  681. * * * * * * * * ------- -------- -------- ------- * 00679000
  682. * * * * * * * * DISPLAY COMMAND 00680000
  683. * * * * * * * * ------- -------- -------- ------- * 00681000
  684. DCHECK CLI PLIST2,PC % WITH NO ADDRESS? @VA04250 00682000
  685. BE NOTKNOWN YES - SEND IT BACK @VA04250 00683000
  686. LA R2,PLIST+L'DISPLAY-ONE END OF PLIST ENTRY @VA04250 00684000
  687. LA R3,DISPLAY+L'DISPLAY-ONE END OF TARGET @VA04250 00685000
  688. LA R4,L'DISPLAY COUNT @VA04250 00686000
  689. BAL R10,PCOMP GO CHECK IT @VA04250 00687000
  690. B NOTKNOWN NO LUCK @VA04250 00688000
  691. GOFED BAL R10,ADLENGTH CHECK FOR ONLY SIX ADD DIGITS @VA04250 00689000
  692. BAL R10,NULLCHK4 CHECK NO FOURTH TERM @VA04250 00690000
  693. CLC PLIST3,FENCE IS THERE NO LENGTH TERM? @VA04250 00691000
  694. BE GOFEX YES - TREAT IT AS AN 'X' @VA04250 00692000
  695. LA R2,PLIST PLIST ADDRESS @VA04250 00693000
  696. L R15,FEDADD DUMP @VA04250 00694000
  697. BALR R14,R15 GO @VA04250 00695000
  698. LTR R15,R15 TEST @VA04250 00696000
  699. BNZ CODECHEK HOW BAD @VA04250 00697000
  700. L R3,HEXADADD DISPLAY ADDRESS IN HEX @VA04250 00698000
  701. ST R2,0(R3) PLUG LAST ADDRESS FROM DUMP @VA04250 00699000
  702. B REREADY GET NEXT @VA04250 00700000
  703. * * * * * * * * ------- -------- -------- ------- * 00701000
  704. * * * * * * * * TRACE REQUEST 00702000
  705. * * * * * * * * ------- -------- -------- ------- * 00703000
  706. TCHECK LA R2,PLIST+L'TRACE-ONE PLIST FOR TRACE @VA04250 00704000
  707. LA R3,TRACE+L'TRACE-ONE TARGET @VA04250 00705000
  708. LA R4,L'TRACE COUNT TRIES @VA04250 00706000
  709. BAL R10,PCOMP PLIST CHECKOUT @VA04250 00707000
  710. B NOTKNOWN NO LUCK @VA04250 00708000
  711. * * * * * * * * ------- -------- -------- ------- * 00709000
  712. * * * * * * * * TRACE SET UP 00710000
  713. * * * * * * * * ------- -------- -------- ------- * 00711000
  714. GOTRACE LA R2,PLIST PLIST @VA04250 00712000
  715. BAL R10,NULLCHK3 CHECK NO THIRD PARM @VA04250 00713000
  716. L R15,TRACEADD ADDRESS @VA04250 00714000
  717. BALR R14,R15 GO @VA04250 00715000
  718. LTR R15,R15 RETCODE ZERO? @VA04250 00716000
  719. BNZ CODECHEK WELL HOW BAD WAS IT @VA04250 00717000
  720. L R3,HEXADADD LAST ADDRESS DISPLAYED @VA04250 00718000
  721. LA R2,0(R2) INDICATE DUMP NOT LAST COMMAND @VA04250 00719000
  722. S R2,SCBKUP CALC CURRENT LINE PTR FOR SCROLL @VA04250 00720000
  723. ST R2,0(R3) PLUG LAST ADDRESS FOR SCROLL @VA04250 00721000
  724. B REREADY GET NEXT CMD @VA04250 00722000
  725. ************************************************************ @V4075A2 00723000
  726. * USER HAS CALLED MAP TO ADD A NUC MAP TO THE END OF THE DUMP. @V4075A2 00724000
  727. * THIS GETS SPACE FOR MAP'S BUFFER, THEN READS THE DUMP @V4075A2 00725000
  728. * TO SEE THAT THERE IS NOT ALREADY A MAP ON THE END. @V4075A2 00726000
  729. * IT THEN FILLS IN SHARECON WITH THE DATA MAP WILL NEED, @V4075A2 00727000
  730. * THE DUMP NUMBER AND THE ADDRESS OF DMKCPEND. @V4075A2 00728000
  731. * IN R1 IT THEN PASSES TO DMMMAP A POINTER TO THE @V4075A2 00729000
  732. * ADDRESS OF 20K BUFFER FOR MAP TO HOLD THE CONDENSED 00730000
  733. * LOAD MAP. ON RETURN IT FREES THE STORAGE AND, IF THE @V4075A2 00731000
  734. * RETURN IS OK, IT TELLS THE USER. @V4075A2 00732000
  735. ************************************************************ @V4075A2 00733000
  736. MAPCHECK DMSFREE DWORDS=2560,ERR=FREEERR GET 20K FOR BUFFERS @VA08369 00734000
  737. ST R1,GOTTENAD SAVE THE POINTER @V4075A2 00735000
  738. LR R2,R1 GET IT IN A WORK REG @V4075A2 00736000
  739. ************************************************************ @V4075A2 00737000
  740. * NOW READ THE DUMP INFORMATION RECORD TO FIND @V4075A2 00738000
  741. * HOW MANY RECORDS IN THE ORIGINAL DUMP. @V4075A2 00739000
  742. ************************************************************ @V4075A2 00740000
  743. LA R3,DUMPFSCB FSCB FOR READ @V4075A2 00741000
  744. FSREAD FSCB=(R3),BUFFER=(R2),ERROR=RDERR,RECNO=2 @V4075A2 00742000
  745. USING DMPINREC,R2 LAY DUMPINREC OVER THE RECORD @V4075A2 00743000
  746. LA R2,DMPPGMAP+ITEMTAB INCREMENT TO THE PAGE DATA @V4075A2 00744000
  747. DROP R2 AND RETURN R2 @V4075A2 00745000
  748. ************************************************************ @V4075A2 00746000
  749. * NOW SCAN THE ITEM TABLE FOR THE 'FFFF' INDICATING THE @V4075A2 00747000
  750. * END OF THE ORIGINAL DUMP ENTRIES. @V4075A2 00748000
  751. ************************************************************ @V4075A2 00749000
  752. LA R5,NULL SET COUNTER TO 0 @V4075A2 00750000
  753. L R4,MAXCOUNT SET FOR TOP LIMIT TO TRIES @V4075A2 00751000
  754. EOTABLE CLC EOTFOX,0(R2) END OF THE TABLE @V4075A2 00752000
  755. BE READCHK SURE - GO CHECK FOR DUMP @V4075A2 00753000
  756. LA R2,TWO(R2) NO - BUMP THE TABLE POINTER @V4075A2 00754000
  757. LA R5,ONE(R5) AND BUMP THE COUNTER @V4075A2 00755000
  758. BCT R4,EOTABLE AND TRY ANOTHER @V4075A2 00756000
  759. LA R8,ITBLMSG WARN ABOUT BAD ITEM TABLE @V4075A2 00757000
  760. LA R9,L'ITBLMSG AND LENGTH @V4075A2 00758000
  761. BAL R10,WRTERM AND GO SEND IT @V4075A2 00759000
  762. ************************************************************ @V4075A2 00760000
  763. * NOW READ PAST THE END OF THE ORIGINAL DUMP. IF THERE IS @V4075A2 00761000
  764. * NO NUC MAP, WE SHOULD GET A READ ERROR. @V4075A2 00762000
  765. ************************************************************ @V4075A2 00763000
  766. READCHK L R4,GOTTENAD ADDRESS FOR READ BUFFER @V4075A2 00764000
  767. LA R5,DUMMIES(R5) EXTRA RECS AT START OF DUMP @V4075A2 00765000
  768. FSREAD FSCB=(R3),BUFFER=(R4),RECNO=(R5) @V4075A2 00766000
  769. LR R2,R15 SAVE THE RETURN CODE @V4075A2 00767000
  770. C R2,EOF EOF? - NORMAL - NO MAP @V4075A2 00768000
  771. BE OKNOMAP YES - GO SET UP TO GO TO MAP @V4075A2 00769000
  772. C R2,NOERR IS THERE A MAP THERE? @V4075A2 00770000
  773. BE TWOMAPS YES - GO WARN USER @V4075A2 00771000
  774. B RDERR MUST BE SOME OTHER ERR @V4075A2 00772000
  775. ************************************************************ @V4075A2 00773000
  776. * WRITE THE ERROR MSG "MAP ALREADY PRESENT" @V4075A2 00774000
  777. ************************************************************ @V4075A2 00775000
  778. TWOMAPS LA R8,TWOMAPMS MAP ALREADY PRESENT MSG @V4075A2 00776000
  779. LA R9,L'TWOMAPMS AND LENGTH @V4075A2 00777000
  780. BAL R10,WRTERM AND GO WRITE IT @V4075A2 00778000
  781. B REREADY AND BACK TO WORK @V4075A2 00779000
  782. ************************************************************ @V4075A2 00780000
  783. * NOW SET UP THE VALUES DMMMAP EXPECTS TO FIND IN SHARECON. @V4075A2 00781000
  784. * FIRST THE DUMPNUMBER, FROM THE DUMPFSCB, @V4075A2 00782000
  785. * THEN THE ADDRESS OF DMKCPEND FROM THE SYMBOL TABLE. @V4075A2 00783000
  786. ************************************************************ @V4075A2 00784000
  787. OKNOMAP MVC DUMPNUM,DUMPFSCB+L'DUMPNUM PLUG THIS DUMP NUM @V4075A2 00785000
  788. ************************************************************ @V4075A2 00786000
  789. * NOW FIND ADDRESS OF DMKCPEND FOR MAP TO CHECK AGAINST @V4075A2 00787000
  790. * THE LOAD LOAD MAP VALUE FOR CPEND. READ IN THE SYMBOL @V4075A2 00788000
  791. * TABLE AND SCAN FOR CPEND @V4075A2 00789000
  792. ************************************************************ @V4075A2 00790000
  793. FSREAD FSCB=(R3),BUFFER=(R4),RECNO=1,ERROR=RDERR @V4075A2 00791000
  794. ENDYET CLC CPEND,0(R4) IS THIS DMKCPEND? @V4075A2 00792000
  795. BE GOTEND YES - GO SAVE ADDRESS @V4075A2 00793000
  796. LA R4,TABENT(R4) NO - BUMP TO NEXT SYM TAB ENTRY @V4075A2 00794000
  797. B ENDYET AND TRY IT @V4075A2 00795000
  798. GOTEND L R4,EIGHT(R4) GO TO ADDRESS PART OF ENTRY @V4075A2 00796000
  799. ST R4,REALEND AND SAVE IT @V4075A2 00797000
  800. ************************************************************ @V4075A2 00798000
  801. * THE DUMP MUST BE ON THE "A" DISK, CHECK THIS IN FSCB. @V4075A2 00799000
  802. * THE FSCB MAY SAY "A" DISK BUT THE DUMP MAY REALLY BE @V4075A2 00800000
  803. * ON A READ EXTENSION OF THE "A" DISK ( B/A ). @V4075A2 00801000
  804. * CHECK THE FILE STATUS BLOCK TO SEE WHETHER WE HAVE @V4075A2 00802000
  805. * THIS CASE. IF NOT, CLOSE THE FILE AND PASS THE @V4075A2 00803000
  806. * ADDRESS OF THE 12K BUFFER TO DMMMAP. @V4075A2 00804000
  807. * OTHERWISE WARN THE USER TO PUT THE DUMP ON THE "A" DISK. @V4075A2 00805000
  808. ************************************************************ @V4075A2 00806000
  809. CLC ADISK,DUMPFSCB+FM IS THE DUMP ON THE A DISK? @V4075A2 00807000
  810. BNE NOWRITE NO - GO WARN USER @V4075A2 00808000
  811. FSSTATE FSCB=DUMPFSCB THEN IS IT B/A ? GET THE @V4075A2 00809000
  812. LR R2,R1 FILE STATUS TABLE. @V4075A2 00810000
  813. LTR R15,R15 IF NO FILE - NO STATUS TABLE @V4075A2 00811000
  814. BNZ STATERR MUSTA LOST THE DUMP SOMEHOW @V4075A2 00812000
  815. USING FSTSECT,R2 NOW CHECK THE FILE STATUS FLAG@V4075A2 00813000
  816. MVC STATFLAG,FSTFB FOR A X'C0' - READ EXTENSION @V4075A2 00814000
  817. NI STATFLAG,HIHALF EXAMINE HI HALF BYTE ONLY @V4075A2 00815000
  818. CLI STATFLAG,FSTFRWX READ EXTENSION OF R/W DISK? @V4075A2 00816000
  819. BE NOWRITE YES - GO TELL USER @V4075A2 00817000
  820. DROP R2 DROP @V4075A2 00818000
  821. FSCLOSE FSCB=DUMPFSCB SO MAP CAN WRITE THE NUC MAP @V4075A2 00819000
  822. LA R1,GOTTENAD POINTER TO BUFFER ADDRESS @V4075A2 00820000
  823. L R15,MAPADD ADDRESS OF DMMMAP @V4075A2 00821000
  824. BALR R14,R15 AND GO @V4075A2 00822000
  825. ST R15,MAPRET SAVE THE RETURN @V4075A2 00823000
  826. L R1,GOTTENAD SET UP TO RETURN CORE @V4075A2 00824000
  827. DMSFRET DWORDS=2560,LOC=(1),ERR=FREEERR @VA08369 00825000
  828. LA R2,DUMPFSCB AGAIN CLOSE THE FILE @V4075A2 00826000
  829. FSCLOSE FSCB=(R2) SO DUMPSCAN CAN READ IT @V4075A2 00827000
  830. L R2,MAPRET GET THE RETURN FROM MAP @V4075A2 00828000
  831. LTR R2,R2 HOW WAS IT @V4075A2 00829000
  832. BNZ REREADY BAD @V4075A2 00830000
  833. LA R8,MAPONMSG GOOD - TELL USER @V4075A2 00831000
  834. LA R9,L'MAPONMSG AND LENGTH @V4075A2 00832000
  835. BAL R10,WRTERM AND WRITE IT @V4075A2 00833000
  836. B REREADY AND BACK TO THE BARRELL @V4075A2 00834000
  837. ********************************************************** @V4075A2 00835000
  838. * EITHER THE DUMP IS NOT ON THE A DISK, OR IT IS ON @V4075A2 00836000
  839. * A DISK WHICH IS A READ EXTENSION OF THE A DISK. @V4075A2 00837000
  840. * IN THIS CASE, DMMMAP WOULD WRITE THE NUC MAP AS @V4075A2 00838000
  841. * A SEPARATE FILE. DISALLOW THIS AND WARN THE USER. @V4075A2 00839000
  842. ********************************************************** @V4075A2 00840000
  843. NOWRITE LA R8,DPNOTAMS DUMP NOT ON A DISK @V4075A2 00841000
  844. LA R9,L'DPNOTAMS AND LENGTH @V4075A2 00842000
  845. BAL R10,WRTERM AND WRITE IT @V4075A2 00843000
  846. B REREADY BACK TO WORK @V4075A2 00844000
  847. ************************************************************ @V4075A2 00845000
  848. * READ ERROR HANDLER @V4075A2 00846000
  849. ************************************************************ @V4075A2 00847000
  850. RDERR LR R2,R15 SAVE THE RETURN @V4075A2 00848000
  851. LINEDIT TEXT='DMMDSC100S ERROR ''...'' READING FILE ''........X00849000
  852. ............''',DOT=NO,RENT=NO,SUB=(DEC,(2),CHAR8A,DUMPFX00850000
  853. SCB+8) WRITE THE READ ERROR MSG @V4075A2 00851000
  854. B REREADY AND RETURN @V4075A2 00852000
  855. ************************************************************ @V4075A2 00853000
  856. * FREE - FRET ERROR HANDLER @V4075A2 00854000
  857. ************************************************************ @V4075A2 00855000
  858. FREEERR LR R2,R15 SAVE THE ERROR @V4075A2 00856000
  859. LINEDIT TEXT='ERROR ''...'' IN DMSFREE OR DMSFRET, SEE SYSTEM X00857000
  860. PROGRAMMERS GUIDE',DOT=NO,SUB=(DEC,(2)) WRITE ERROR 00858000
  861. B REREADY AND RETURN @V4075A2 00859000
  862. * * * * * * * *------- -------- -------- -------- -------* 00860000
  863. * * * * * * * * LOCATE REQUEST 00861000
  864. * * * * * * * * ------- -------- -------- ------- * 00862000
  865. LCHECK LA R2,PLIST+L'LOCATE-ONE PLIST FOR LOCATE @VA04250 00863000
  866. LA R3,LOCATE+L'LOCATE-ONE TARGET @VA04250 00864000
  867. LA R4,L'LOCATE COUNT TRIES @VA04250 00865000
  868. BAL R10,PCOMP PLIST CHECKOUT @VA04250 00866000
  869. B NOTKNOWN NO LUCK @VA04250 00867000
  870. * * * * * * * * ------- -------- -------- ------- * 00868000
  871. * * * * * * * * TRACE SET UP 00869000
  872. * * * * * * * * ------- -------- -------- ------- * 00870000
  873. GOLOCATE LA R2,PLIST PLIST @VA04250 00871000
  874. BAL R10,NULLCHK6 GO TEST FOR RIGHT NO. PARMS @V4075A2 00872000
  875. MVC PLIST+FR(TWOBYTES),BLANKS TRUNC 'FROM' TO 6 BY @VA04250 00873000
  876. MVC PLIST+TO(TWOBYTES),BLANKS TRUNC 'TO' TO 6 BYTES @VA04250 00874000
  877. BAL R10,SAVSTRNG GO SAVE THE SEARCH ARGUMENT @V4075A2 00875000
  878. ***************************************************************@V4075A2 00876000
  879. * IF THIS IS A ONE-SHOT PRINT WITH NO SUBCOMMAND @V4075A2 00877000
  880. * RESTORE THE LATEST GENERATED 'FROM' ADDRESS @V4075A2 00878000
  881. * INTO THE PLIST IF IT IS NOT BLANKS - IE A NEW @V4075A2 00879000
  882. * ADDRESS HAS NOT BEEN DEVELOPED @V4075A2 00880000
  883. ***************************************************************@V4075A2 00881000
  884. CLI PRINTONE,NOSUBC IS THIS 1-SHOT-PRT-W-NO-SUBCMD ?@V4075A2 00882000
  885. BNE FROMOK NO - THE FROM ADDRESS IS GOOD @V4075A2 00883000
  886. CLC NEWFREBC,BLANKS IS THERE A VALID NEW ADDRESS ? @V4075A2 00884000
  887. BE FROMOK NO - USE THE OLD ONE @V4075A2 00885000
  888. MVC PLIST3,NEWFREBC YES - GET SAVED NEW-EBCD-ADDR @V4075A2 00886000
  889. MVC NEWFREBC,BLANKS AND CLEAR IT @V4075A2 00887000
  890. FROMOK L R15,LOCADD ADDRESS OF LOCATE SUBROUTINE @V4075A2 00888000
  891. BALR R14,R15 GO @VA04250 00889000
  892. LTR R15,R15 RETCODE ZERO? @VA04250 00890000
  893. BNZ CODECHEK WELL HOW BAD WAS IT @VA04250 00891000
  894. B READY GET NEXT CMD @VA04250 00892000
  895. ***************************************************************@V4075A2 00893000
  896. * CHECK THE 'PRINT' COMMAND FOR VALID OPERANDS, @V4075A2 00894000
  897. * ONLY ONE OPERAND, AND CORRECT FORMAT - 'PRINT ON, @V4075A2 00895000
  898. * OFF,CLOSE, ,?,SUBCOMMAND' @V4075A2 00896000
  899. ***************************************************************@V4075A2 00897000
  900. PCHECK CLC PLIST1,PRT ALLOW THE 'PRT' ABBREV. @V4075A2 00898000
  901. BE CHECKTWO GO TEST SECOND TERM @V4075A2 00899000
  902. ***************************************************************@V4075A2 00900000
  903. * NOW CHECK FOR TRUNCATIONS @V4075A2 00901000
  904. ***************************************************************@V4075A2 00902000
  905. LA R2,PLIST+L'PRINT-ONE PLIST ENTRY @V4075A2 00903000
  906. LA R3,PRINT+L'PRINT-ONE TARGET ENTRY @V4075A2 00904000
  907. LA R4,L'PRINT BYTES TO TRY @V4075A2 00905000
  908. BAL R10,PCOMP GO TO TRUNCATION CHECK ROUTINE @V4075A2 00906000
  909. B NOTKNOWN NOT PRINT - SEND IT BACK @V4075A2 00907000
  910. ***************************************************************@V4075A2 00908000
  911. * NOW CHECK THE SECOND PARM FOR 'ON, OF, OFF, C(LOSE' @V4075A2 00909000
  912. * '?' OR NO PARM. @V4075A2 00910000
  913. ***************************************************************@V4075A2 00911000
  914. CHECKTWO CLC PLIST2,ON TURN PRINT ON? @V4075A2 00912000
  915. BE PRINTON YES @V4075A2 00913000
  916. CLC PLIST2,OFF OFF? @V4075A2 00914000
  917. BE PRINTOFF @V4075A2 00915000
  918. CLC PLIST2,OF OF? @V4075A2 00916000
  919. BE PRINTOFF GO TURN IT OFF @V4075A2 00917000
  920. ***************************************************************@V4075A2 00918000
  921. * CHECK FOR A '?' OR A NULL PARM @V4075A2 00919000
  922. ***************************************************************@V4075A2 00920000
  923. QCHECK CLC PLIST2(L'QUERY),QUERY IS THIS '?' @V4075A2 00921000
  924. BE SHOWPRSW YES - GO DISPLAY PRT SW STATUS @V4075A2 00922000
  925. FENCECHK CLC PLIST2,FENCE IS THERE A SECOND PARM ? @V4075A2 00923000
  926. BE RESUBCOM NO GO RESUBMIT THE LAST SUBC. @V4075A2 00924000
  927. ***************************************************************@V4075A2 00925000
  928. * NOW CHECK FOR 'CLOSE' OR ITS TRUNCATION @V4075A2 00926000
  929. ***************************************************************@V4075A2 00927000
  930. LA R2,PLIST2+L'CLOSE-ONE PLIST OFFERING @V4075A2 00928000
  931. LA R3,CLOSE+L'CLOSE-ONE AND THE TARGET @V4075A2 00929000
  932. LA R4,L'CLOSE AND THE NUMBER OF BYTES @V4075A2 00930000
  933. BAL R10,PCOMP GO TEST TRUNCATIONS @V4075A2 00931000
  934. B PPCHECK NOT CLOSE - MAY BE 'PRINT PRINT' @V4075A2 00932000
  935. ***************************************************************@V4075A2 00933000
  936. * MUST BE A CLOSE - CLOSE THE PRT THEN GO INTO @V4075A2 00934000
  937. * THE 'TURN PRINT OFF' SEQUENCE. @V4075A2 00935000
  938. ***************************************************************@V4075A2 00936000
  939. BAL R10,CLOSEPRT @V4075A2 00937000
  940. B REREADY RETURN @V4075A2 00938000
  941. PRINTOFF MVI PRINTSW,TURNOFF TURN IT OFF @V4075A2 00939000
  942. B REREADY GO WRITE THE READY MSG @V4075A2 00940000
  943. PRINTON MVI PRINTSW,TURNON SET IT ON @V4075A2 00941000
  944. B REREADY GO READY MSG @V4075A2 00942000
  945. SHOWPRSW CLI PRINTSW,TURNON IS PRINT ON ? @V4075A2 00943000
  946. BE SHOWON YES - GO SHOW STATUS @V4075A2 00944000
  947. LA R8,PRINTOFM NO ITS 'OFF' - WRITE 'OFF' MSG @V4075A2 00945000
  948. LA R9,L'PRINTOFM AND THE LENGTH @V4075A2 00946000
  949. BAL R10,WRTERM AND GO WRITE IT. @V4075A2 00947000
  950. B REREADY AND GO BACK @V4075A2 00948000
  951. SHOWON LA R8,PRINTONM GET 'PRINT ON' MSG @V4075A2 00949000
  952. LA R9,L'PRINTONM AND ITS LENGTH @V4075A2 00950000
  953. BAL R10,WRTERM AND WRITE IT @V4075A2 00951000
  954. B REREADY AND RETURN @V4075A2 00952000
  955. ***************************************************************@V4075A2 00953000
  956. * IT WAS NOT A 'CLOSE' COMMAND - TREAT IT @V4075A2 00954000
  957. * AS A SUBCOMMAND. MOVE THE SUBCOMMAND PORTION @V4075A2 00955000
  958. * INTO THE INPUT LINE, COUNT THE BYTES, AND @V4075A2 00956000
  959. * PASS IT AS A NEW INPUT LINE. @V4075A2 00957000
  960. * IF PRINT IS ON - COOL - IF NOT - TURN IT ON @V4075A2 00958000
  961. * FOR 1 PASS AND INDICATE A SUBC. WAS ENTERED @V4075A2 00959000
  962. ***************************************************************@V4075A2 00960000
  963. PPCHECK CLC PLIST2(ONE),PRINT 'PRINT PRINT' IS INVALID @V4075A2 00961000
  964. BE NOTKNOWN GO SEND IT BACK TO USER @V4075A2 00962000
  965. SUBCOM CLI PRINTSW,TURNON IS PRINT ON ? @V4075A2 00963000
  966. BE PLISTMOV YES - OK - GO MOVE THE PLIST @V4075A2 00964000
  967. MVI PRINTSW,TURNON NO - SO TURN IT ON FOR 1 SHOT @V4075A2 00965000
  968. MVI PRINTONE,SUBCOMM SET THE ONE-SHOT-W-SUBC. FLAG @V4075A2 00966000
  969. PLISTMOV MVC INSAVE,BLANKOUT CLEAR INPUT SAVE @V4075A2 00967000
  970. MVC INSAVE,INPUT SAVE OLD INPUT LINE @V4075A2 00968000
  971. MVC OLDINLEN,INLENGTH AND LENGTH @V4075A2 00969000
  972. MVC INPUT,BLANKOUT CLEAR THE INPUT LINE @V4075A2 00970000
  973. LA R2,NULL CLEAR COUNTER @V4075A2 00971000
  974. LA R3,PLIST2 POINT TO SUB IN PLIST @V4075A2 00972000
  975. LA R4,INPUT AND INPUT LINE TOMOVE IT TO @V4075A2 00973000
  976. MOVEDWD MVC 0(L'PLIST1,R4),0(R3) AND MOVE A DOUBLE WORD @V4075A2 00974000
  977. LA R2,L'PLIST+1(R2) COUNT 9 BYTES @V4075A2 00975000
  978. LA R3,L'PLIST1(R3) AND THE FROM POINTER @V4075A2 00976000
  979. LA R4,L'PLIST1+1(R4) BUMP THE 'TO' POINTER @V4075A2 00977000
  980. CLC FENCE,0(R3) END OF PLIST ? @V4075A2 00978000
  981. BE COUNTIN IF SO GO SET LENGTH @V4075A2 00979000
  982. B MOVEDWD ELSE GET THE NEXT @V4075A2 00980000
  983. COUNTIN ST R2,INLENGTH SAVE THE NEW LENGTH @V4075A2 00981000
  984. B REINCHK PASS IT OFF AS I/P LINE @V4075A2 00982000
  985. ***************************************************************@V4075A2 00983000
  986. * NO SECOND PARM WAS FOUND - RESUBMIT THE PREVIOUS @V4075A2 00984000
  987. * COMMAND, TURNING PRINT ON AND OFF IF APPROPRIATE. @V4075A2 00985000
  988. ***************************************************************@V4075A2 00986000
  989. RESUBCOM CLI PRINTSW,TURNON IS PRINT ON ? @V4075A2 00987000
  990. BE RESUB YES LEAVE IT ON @V4075A2 00988000
  991. MVI PRINTSW,TURNON NO - TURN IT ON FOR THIS SUBC. @V4075A2 00989000
  992. MVI PRINTONE,NOSUBC SET FLAG TO TURN IT OFF AFTER. @V4075A2 00990000
  993. RESUB MVC INPUT,BLANKOUT CLEAR THE INPUT LINE AND @V4075A2 00991000
  994. MVC INPUT,INSAVE RESTORE THE SAVED PREVIOUS SUBC. @V4075A2 00992000
  995. MVC INLENGTH,OLDINLEN AND ITS INPUT LENGTH, AND @V4075A2 00993000
  996. L R2,INLENGTH SET UP R2 FOR TOKENIZER. @V4075A2 00994000
  997. B REINCHK AND SEND IT OUT AS A COMMAND. @V4075A2 00995000
  998. * * * * * * * *------- -------- -------- -------- -------* 00996000
  999. * * * * * * * * MOD SET UP 00997000
  1000. * * * * * * * * ------- -------- -------- ------- * 00998000
  1001. GOMOD CLC DMKQ,INPUT IS IT AN ADDRESS LOCATE? @VA04250 00999000
  1002. BE GOMOD1 NO - CHECK FOR A NULL PARM HRC001DM 01000190
  1003. CLC HDKQ,INPUT IS IT AN ADDRESS LOCATE? HRC001DM 01000380
  1004. BNE GONULLCK NO - CHECK FOR A NULL PARM HRC001DM 01000570
  1005. GOMOD1 EQU * HRC001DM 01000760
  1006. BAL R10,NULLCHK3 YES - CHECK NO THIRD PARM @VA04250 01001000
  1007. BAL R10,ADLENGTH NOW - CHECK ADDRESS LENGTH @VA04250 01002000
  1008. B LOADPLST AND SET UP PLIST @VA04250 01003000
  1009. GONULLCK BAL R10,NULLCHK2 CHECK FOR NO EXTRA PARM @VA04250 01004000
  1010. LOADPLST LA R2,PLIST PLIST ADDRESS TO PASS TO MOD @VA04250 01005000
  1011. L R15,MODADD MOD ADDRESS @VA04250 01006000
  1012. BALR R14,R15 GO @VA04250 01007000
  1013. LTR R15,R15 TEST @VA04250 01008000
  1014. BZ READY OK - @VA04250 01009000
  1015. B CODECHEK NO - HOW BAD? @VA04250 01010000
  1016. * * * * * * * * ------- -------- -------- ------- * 01011000
  1017. * * * * * * * * IOBLOK FUNCTION 01012000
  1018. * * * * * * * * ------- -------- -------- ------- * 01013000
  1019. GOIOB BAL R10,CLEAR CLEAR TO TOP OF SCREEN @VA04250 01014000
  1020. CLI PLIST+CUUBLANK,BLANK MUST BE MAX 3 'CUU' CHARS @VA04250 01015000
  1021. BNE NOTKNOWN MORE THAN THREE - WARN HIM @VA04250 01016000
  1022. L R15,IOBADD OK - GO TO IOBLOK ROUTINE @VA04250 01017000
  1023. LA R2,PLIST PLIST FOR IOB @VA04250 01018000
  1024. BALR R14,R15 LINK @VA04250 01019000
  1025. LTR R15,R15 TEST RETURN CODE @VA04250 01020000
  1026. BZ REREADY GO AGAIN @VA04250 01021000
  1027. B CODECHEK FIND OUT HOW BAD @VA04250 01022000
  1028. * * * * * * * * ------- -------- -------- ------- * 01023000
  1029. * * * * * * * * DISPLAY HEXLOC - NO LENGTH 01024000
  1030. * * * * * * * * IMPLIES A FULL SCREEN WRITE 01025000
  1031. * * * * * * * * ------- -------- -------- ------- * 01026000
  1032. GOFEX LA R2,PLIST PASS PARM LIST @VA04250 01027000
  1033. L R15,FEXADD EXAMINE ADDRESS @VA04250 01028000
  1034. BALR R14,R15 GO @VA04250 01029000
  1035. LTR R15,R15 RET CODE OK? @VA04250 01030000
  1036. BZ READY YES - CONTINUE @VA04250 01031000
  1037. B CODECHEK GO TEST THE RET CODE @VA04250 01032000
  1038. * * * * * * * * ------- -------- -------- ------- * 01033000
  1039. * * * * * * * * COMMON BAL TO INTERPRET 01034000
  1040. * * * * * * * * ------- -------- -------- ------- * 01035000
  1041. GOINT L R15,INTADD ADDRESS OF TRANS ROUTINE @VA04250 01036000
  1042. BALR R14,R15 LINK @VA04250 01037000
  1043. LTR R15,R15 BAD? @VA04250 01038000
  1044. BNZ CODECHEK HOW BAD? @VA04250 01039000
  1045. BR R10 RETURN @VA04250 01040000
  1046. * * * * * * * * ------- -------- -------- ------- * 01041000
  1047. * * * * * * * * COMMON WRTERM 01042000
  1048. * * * * * * * * ------- -------- -------- ------- * 01043000
  1049. WRTERM ST R8,PARMLIS1 SAVE MSG TEXT PTR IN PARM LIST @V4075A2 01044000
  1050. ST R9,PARMLIS2 AND TEXT LENGTH @V4075A2 01045000
  1051. LA R1,PARMLIS1 POINTER TO PASS @V4075A2 01046000
  1052. L R15,FEDLNADD ADDRESS OF DMMFEDLN - LINE WRITER@V4075A2 01047000
  1053. BALR R14,R15 GO WRITE THE LINE @V4075A2 01048000
  1054. BR R10 AND RETURN @V4075A2 01049000
  1055. PARMLIS1 DS F PARM1 @V4075A2 01050000
  1056. PARMLIS2 DS F PARM2 @V4075A2 01051000
  1057. FEDLNADD DC V(DMMFEDLN) LINE WRITER ROUTINE @V4075A2 01052000
  1058. * * * * * * * * ------- -------- -------- ------- * 01053000
  1059. * * * * * * * * CHECK SUBROUTINE RETURN CODES 01054000
  1060. * * * * * * * * ------- -------- -------- ------- * 01055000
  1061. CODECHEK C R15,CODE4 CAN WE GO ON @VA04250 01056000
  1062. BE REREADY YES @VA04250 01057000
  1063. ST R15,RETCODE PASS RETURN @VA04250 01058000
  1064. B RETURNER GET OUT - DONT CLEAR SCREEN @VA04250 01059000
  1065. * * * * * * * * ------- -------- -------- ------- * 01060000
  1066. * * * * * * * * COMMON RDTERM 01061000
  1067. * * * * * * * * ------- -------- -------- ------- * 01062000
  1068. RDTERM RDTERM (R8) COMMON READ FROM CONSOLE @VA04250 01063000
  1069. BR R10 RETURN @VA04250 01064000
  1070. * * * * * * * * ------- -------- -------- ------- * 01065000
  1071. * * * * * * * * THE PLAN IS TO COMPARE THE RIGHTMOST LETTERS 01066000
  1072. * * * * * * * * OF THE PLIST AND THE TARGET WORD, THEN MOVE 01067000
  1073. * * * * * * * * THE COMPARE ONE BYTE LEFT UNTIL EITHER 01068000
  1074. * * * * * * * * WE COUNT THEM ALL, IN WHICH CASE THEY 01069000
  1075. * * * * * * * * MATCH ENTIRELY, OR THERE IS A 'NO-MATCH'. 01070000
  1076. * * * * * * * * IF THEY DO NOT MATCH, BUT THE PLIST IS A 01071000
  1077. * * * * * * * * BLANK, CONTINUE THE SEARCH. IF NOT - ABORT. 01072000
  1078. * * * * * * * * ------- -------- -------- ------- * 01073000
  1079. PCOMP CLC 0(CHARLEN,R2),0(R3) COMPARE RIGHTMOST BYTES @VA04250 01074000
  1080. BE PCOUNT GOOD - TRY NEXT @VA04250 01075000
  1081. B PBLANKCK NO - BUT ITS OK IF ITS A BLANK @VA04250 01076000
  1082. PCOUNT BCTR R2,R0 BACK UP PLIST POINTER @VA04250 01077000
  1083. BCTR R3,R0 BACK UP TARGET POINTER @VA04250 01078000
  1084. BCT R4,PCOMP TRY ANOTHER @VA04250 01079000
  1085. B GOODRET(R10) ALL GOOD - TAKE THE GOOD EXIT @VA04250 01080000
  1086. PBLANKCK CLI 0(R2),BLANK WAS IT A BLANK @VA04250 01081000
  1087. BE PCOUNT YES - OK @VA04250 01082000
  1088. CLI 0(R2),U WAS IT A 'U' - AS IN SCROLLU? @VA04250 01083000
  1089. BE SCRCHECK IT WAS A 'U' _ WAS IT A SCROLL? @VA04250 01084000
  1090. BR R10 NO - BAD MATCH - RETURN @VA04250 01085000
  1091. SCRCHECK CLI PLIST,S DOES PLIST HAVE AN 'S'? @VA04250 01086000
  1092. BE PCOUNT YES IT DOES - LET IT CONTINUE @VA04250 01087000
  1093. BR R10 NO - BAD RETURN @VA04250 01088000
  1094. * * * * * * * *------- -------- -------- -------- ------* 01089000
  1095. * * * * * * * * NOW THE INPUT LINE MUST BE TOKENIZED 01090000
  1096. * * * * * * * * PASS THE INPUT LINE LENGTH IN R2 01091000
  1097. * * * * * * * *------- -------- -------- -------- ------* 01092000
  1098. TOKEN LA R3,INPUT INPUT LINE ADDRESS @VA04250 01093000
  1099. LA R4,PLIST TOKENIZED OUTPUT @VA04250 01094000
  1100. LA R5,L'PLIST1 COUNT 8 BYTES @VA04250 01095000
  1101. LA R6,PLIST7 SET PLIST LIMIT @VA04250 01096000
  1102. SIGSCAN CLI 0(R3),BLANK SCAN INPUT FOR NON-BLANK @V4075A2 01097000
  1103. BE CHARSRCH STILL BLANK - KEEP ON. @VA04250 01098000
  1104. MOVE8 MVC 0(L'PLIST1,R4),0(R3) GOT A CHAR, MOVE 8 IN @VA04250 01099000
  1105. BUMPA LA R3,ONE(R3) BUMP INPUT @VA04250 01100000
  1106. BCT R2,OVER8 END OF INPUT? @VA04250 01101000
  1107. B OUT YES - WRAP IT UP. @VA04250 01102000
  1108. OVER8 BCT R5,BLANKA NO - OVER 8 BYTES? @VA04250 01103000
  1109. B BLANKB TRY NEXT CHARACTER @VA04250 01104000
  1110. BUMPB LA R3,ONE(R3) BUMP INPUT @VA04250 01105000
  1111. BCT R2,BLANKB END OF INPUT ? @VA04250 01106000
  1112. B OUT WRAP UP. @VA04250 01107000
  1113. BLANKB TM 0(R3),DELIM DELIMITER @VA04250 01108000
  1114. BNZ BUMPB NO - GET NEXT CHAR @VA04250 01109000
  1115. BUMPC LA R3,ONE(R3) UP IT AGAIN @VA04250 01110000
  1116. BCT R2,BLANKC END OF INPUT ? @VA04250 01111000
  1117. B OUT YES QUIT @VA04250 01112000
  1118. BLANKC TM 0(R3),DELIM DELIMITER IN INPUT ? @VA04250 01113000
  1119. BZ BUMPC YES - KEEP LOOKING @VA04250 01114000
  1120. SRL R4,3 ROUND PLIST PTR DOWN TO @VA04250 01115000
  1121. SLL R4,3 PREVIOUS D'WORD, AND @VA04250 01116000
  1122. AH R4,X8 ADD 8, FOR NEXT PLIST SLOT @VA04250 01117000
  1123. CR R4,R6 END OF PLIST? @VA04250 01118000
  1124. BNL FENCER YES - CHOP IT OFF @VA04250 01119000
  1125. LA R5,L'PLIST1 RESET BYTE COUNTER @VA04250 01120000
  1126. B MOVE8 GO TAKE ANOTHER TOKE @VA04250 01121000
  1127. CHARSRCH LA R3,ONE(R3) SCAN FOR FIRST CHAR ON INLINE @VA04250 01122000
  1128. BCT R2,SIGSCAN TRY NEXT IF NOT END OF LINE @V4075A2 01123000
  1129. B FENCER THIS LINE WAS ALL BLANKS @VA04250 01124000
  1130. BLANKA TM 0(R3),DELIM INPUT CHAR A DELIMITER (4X) @VA04250 01125000
  1131. BNZ BUMPA NO - KEEP LOOKING @VA04250 01126000
  1132. LA R7,L'PLIST1 SET UP TO CLEAR PLIST ENTRY @VA04250 01127000
  1133. SR R7,R5 COUNT VALID BYTES TO BE LEFT @VA04250 01128000
  1134. AR R4,R7 AND ADD TO R4 @VA04250 01129000
  1135. MVC 0(SEVENBYT,R4),BLANKS BLANK IT OUT @VA04250 01130000
  1136. B BUMPC SCAN TO END OF BLANKS @VA04250 01131000
  1137. OUT SRL R4,3 POINT TO NEXT PLIST SLOT @VA04250 01132000
  1138. SLL R4,3 @VA04250 01133000
  1139. AH R4,X8 BUMP BY EIGHT @VA04250 01134000
  1140. FENCER MVC 0(L'FENCE,R4),FENCE FENCE IT IN @VA04250 01135000
  1141. BR R10 RETURN @V4075A2 01136000
  1142. * * * * * * * * ------- -------- -------- ------- * 01137000
  1143. * * * * * * * * THIS TRANSLATES THE ERROR CODE IN R15, 01138000
  1144. * * * * * * * * AND PLUGS IT INTO THE TEXT OF THE ERROR 01139000
  1145. * * * * * * * * MESSAGE, ALONG WITH THE FILE ID 01140000
  1146. * * * * * * * *------- -------- -------- -------- ------* 01141000
  1147. STATERR XC DEPACK(L'DEPACK+L'DECODE),DEPACK CLEAR WORKAREA @VA04250 01142000
  1148. LR R6,R15 SAVE R15 ACROSS WRTERM @VA04250 01143000
  1149. C R6,NOFILE WAS IT A 'FILE NOT FOUND' ? @VA04250 01144000
  1150. BNE NOMSG IF NOT - BYPASS 'DUMP NOT FOUND' @VA04250 01145000
  1151. LA R8,NOFILMSG ADDRESS OF MESSAGE @VA04250 01146000
  1152. LA R9,L'NOFILMSG AND LENGTH @VA04250 01147000
  1153. BAL R10,WRTERM WRITE 'DUMP NOT FOUND' @VA04250 01148000
  1154. NOMSG CVD R6,DECODE GET RET CODE IN DECIMAL @VA04250 01149000
  1155. UNPK DEPACK+FIV(L'DEPACK-FIV),DECODE+SIX(L'DECODE-SIX) 01150000
  1156. OI DEPACK+SEV,NUMZONE FIX UP SIGN TO PRINT @VA04250 01151000
  1157. MVC ERRMSGCD,DEPACK+FIV PLUG ERROR CODEINTO MSG @VA04250 01152000
  1158. MVC ERRMSGFN,DUMPFSCB+FN PLUG FILE NAME @VA04250 01153000
  1159. MVC ERRMSGFT,DUMPFSCB+FT AND TYPE @VA04250 01154000
  1160. MVC ERRMSGM,DUMPFSCB+FM AND MODE @VA04250 01155000
  1161. LA R8,ERMSG719 ADDRESS @VA04250 01156000
  1162. LA R9,E719L AND LENGTH @VA04250 01157000
  1163. BAL R10,WRTERM WRITE 'DUMP NOT FOUND' @VA04250 01158000
  1164. B REREAD GET ANOTHER DUMP - DONT CLEAR HRC001DM 01159490
  1165. * * * * * * * *------- -------- -------- -------- ------* 01160000
  1166. * * * * * * * * THIS CHECKS THE INPUT LINE FOR 01161000
  1167. * * * * * * * * HELP OR EXIT REQUESTS 01162000
  1168. * * * * * * * *------- -------- -------- -------- ------* 01163000
  1169. INCHECK CLC HELP,INPUT HELP? @VA04250 01164000
  1170. BE REINFO YES - GO SHOW HELP PAGE @VA04250 01165000
  1171. CLC HX,INPUT HALT EX. @VA04250 01166000
  1172. BE RETURN SHUT DOWN @VA04250 01167000
  1173. CLC QUIT,INPUT QUIT @VA04250 01168000
  1174. BE RETURN SHUT DOWN @VA04250 01169000
  1175. CLC END,INPUT END @VA04250 01170000
  1176. BE RETURN SHUT DOWN @VA04250 01171000
  1177. BR R10 RETURN @V4075A2 01172000
  1178. * * * * * * * *------- -------- -------- -------- ------* 01173000
  1179. * * * * * * * * THIS DISPLAYS THE 'HELP' INFORMATION' 01174000
  1180. * * * * * * * *------- -------- -------- -------- ------* 01175000
  1181. REINFO CLI TYPEFLAG,TYPER TYPEWRITER? @VA04250 01176000
  1182. BNE SCRNHELP NO - GO SCREEN 'HELP' MSG @VA04250 01177000
  1183. L R8,INFOADD1 ADDRESS OF START OF 'HELP' PAGE @VA04250 01178000
  1184. LA R4,LINECNT SET UP LINE COUNT - 43 LINES @VA04250 01179000
  1185. LA R9,LINELEN LENGTH - 80 BYTES @VA04250 01180000
  1186. NEXTLINE BAL R10,WRTERM WRITE A LINE OF 'HELP' PAGE @VA04250 01181000
  1187. LA R8,LINELEN(R8) POINT TO NEXT LINE @VA04250 01182000
  1188. BCT R4,NEXTLINE KEEP GOING @VA04250 01183000
  1189. B ENTER GO BACK @VA04250 01184000
  1190. * * * * * * * * ------- -------- -------- ------- * 01185000
  1191. * * * * * * * * THIS WRITES THE HELP PAGE ON 01186000
  1192. * * * * * * * * A 3270 SCREEN 01187000
  1193. * * * * * * * * ------- -------- -------- ------- * 01188000
  1194. SCRNHELP L R4,CONSOLE VIRT CONS ADDRESS @VA04250 01189000
  1195. CLI PAGESW,PAGE1 WHICH PAGE NEXT? @VA04250 01190000
  1196. BE WRITE1 GO WRITE PAGE1 @VA04250 01191000
  1197. MVI PAGESW,PAGE1 RESET SWITCH @VA04250 01192000
  1198. L R3,INFOADD2 GET SET TO WRITE PAGE2 @VA04250 01193000
  1199. B CCWSETUP GO PLUG ADDRESSES IN DIAGNOSE @VA04250 01194000
  1200. WRITE1 MVI PAGESW,PAGE2 SETUP FOR PAGE 2 @VA04250 01195000
  1201. L R3,INFOADD1 WRITE PAGE1 @VA04250 01196000
  1202. CCWSETUP ST R3,CCWA PLUG ADDRESS IN CCWA @VA04250 01197000
  1203. ST R3,CCWB AND CCWB @VA04250 01198000
  1204. LA R3,CCWA CCW ADDRESS @VA04250 01199000
  1205. MVI CCWA,CMDCODE RESTORE COMMAND CODE IN A @VA04250 01200000
  1206. MVI CCWB,CMDCODE AND B @VA04250 01201000
  1207. MVI CCWA+FIV,ERASE 'ERASE' CONTROL BYTE @VA04250 01202000
  1208. ST R3,PARMLIS1 SAVE MSG TEXT PTR IN PARM LIST @V4075A2 01203000
  1209. ST R4,PARMLIS2 AND TEXT LENGTH @V4075A2 01204000
  1210. LA R1,PARMLIS1 POINTER TO PASS @V4075A2 01205000
  1211. L R15,DIRLNADD ADDRESS OF DMMDIRLN SCREEN WRITER@V4075A2 01206000
  1212. BALR R14,R15 GO WRITE THE SCREEN @V4075A2 01207000
  1213. B HELPINCK AND RETURN @V4075A2 01208000
  1214. DIRLNADD DC V(DMMDIRLN) SCREEN WRITER ROUTINE @V4075A2 01209000
  1215. HELPINCK BAL R10,RDTERM GO READ REPLY TO THE HELP PROMPT @V4075A2 01210000
  1216. BAL R10,INCHECK SEE IF HE WANTS OUT, OR MORE HELP@V4075A2 01211000
  1217. MVI PAGESW,PAGE1 RESET TO PAGE 1 @V4075A2 01212000
  1218. CLI DUMPFSCB+FNEND,NULLDUMP SEE IF DUMP NUMB YET @V4075A2 01213000
  1219. BE GETDUMP NO - GO GET IT HRC001DM 01214490
  1220. BAL R10,CLEAR TOP OF THE SCREEN @V4075A2 01215000
  1221. B REREADY YES - CONTINUE @V4075A2 01216000
  1222. * * * * * * * * ------- -------- -------- ------- * 01217000
  1223. * * * * * * * * SET DIFFERENT ???????? CHAR 01218000
  1224. * * * * * * * * ------- -------- -------- ------- * 01219000
  1225. INQUIRY MVC HUH,PLIST2 MOVE IN 'HUH?' CHAR @VA04250 01220000
  1226. B REREADY READY MSG @VA04250 01221000
  1227. * * * * * * * * ------- -------- -------- ------- * 01222000
  1228. * * * * * * * * DISPLAY LAST COMMAND 01223000
  1229. * * * * * * * * ------- -------- -------- ------- * 01224000
  1230. POSTIN BAL R10,NULLCHK2 CHECK FOR NO SECOND TERM @VA04250 01225000
  1231. LA R8,INSAVE ADDRESS AND @VA04250 01226000
  1232. L R9,OLDINLEN LENGTH OF OLD INPUT LINE @VA04250 01227000
  1233. BAL R10,WRTERM WRITE THE OLD INPUT LINE @VA04250 01228000
  1234. B REREADY ROUND AGAIN @VA04250 01229000
  1235. * * * * * * * * ------- -------- -------- ------- * 01230000
  1236. * * * * * * * * THIS CLEARS THE 3270 SCREEN AND ALLOWS 01231000
  1237. * * * * * * * * THE NEXT OPERATION TO BE POSITIONED 01232000
  1238. * * * * * * * * AT THE TOP THEREOF. 01233000
  1239. * * * * * * * *------- -------- -------- -------- ------* 01234000
  1240. CLEAR STM R7,R9,SAVCLR SAVE REGS @VA04250 01235000
  1241. ***************************************************************@V4075A2 01236000
  1242. * DONT CLEAR THE SCREEN IF THIS IS A 1-SHOT-NO-SUBC @V4075A2 01237000
  1243. ***************************************************************@V4075A2 01238000
  1244. CLI PRINTONE,NOSUBC IS THIS A RESUBMIT ? @V4075A2 01239000
  1245. BE ALLCLEAR YES - DONT CLEAR SCREEN @V4075A2 01240000
  1246. L R8,SCRNADD GET THE ADDRESS OF THE SCREEN @VA04250 01241000
  1247. ST R8,CCWC PLUG ADDRESS IN CCW @VA04250 01242000
  1248. LA R8,CCWC CCW ADD @VA04250 01243000
  1249. L R9,CONSOLE VIRT CONS ADDRESS @VA04250 01244000
  1250. MVI CCWC,CMDCODE RESTORE CMD CODE @VA04250 01245000
  1251. MVI CCWC+FIV,ERASE SET ERASE BYTE @VA04250 01246000
  1252. DIAG WAITT WAIT FOR TERMINAL TO QUIESCE @VA04250 01247000
  1253. DC X'83890058' DIAGNOSE @VA04250 01248000
  1254. ALLCLEAR LM R7,R9,SAVCLR RESTORE REGS @VA04250 01249000
  1255. BR R10 RETURN @VA04250 01250000
  1256. * * * * * * * * ------- -------- -------- ------- * 01251000
  1257. * * * * * * * * THIS CHECKS THAT THOSE COMMANDS 01252000
  1258. * * * * * * * * WHICH SHOULD HAVE NO OPERANDS 01253000
  1259. * * * * * * * * DO IN FACT HAVE NONE - EXCEPT 01254000
  1260. * * * * * * * * THE 'U' AFTER SCROLL 01255000
  1261. * * * * * * * * ------- -------- -------- ------- * 01256000
  1262. NULLCHK2 CLC FENCE,PLIST2 IS THERE A SECOND PARM? @VA04250 01257000
  1263. BER R10 OK - RETURN @VA04250 01258000
  1264. CLI PLIST2,U YES - IS IT A 'U' @VA04250 01259000
  1265. BER R10 OK - RETURN @VA04250 01260000
  1266. B NOTKNOWN NO - INVALID - TOSS IT OUT @VA04250 01261000
  1267. * * * * * * * * ------- -------- -------- ------- * 01262000
  1268. * * * * * * * * THIS CHECKS THAT THOSE COMMANDS 01263000
  1269. * * * * * * * * WHICH SHOULD HAVE ONLY TWO TERMS 01264000
  1270. * * * * * * * * DO IN FACT HAVE NO MORE. 01265000
  1271. * * * * * * * * 'T' MAY HAVE 1 OR 2 TERMS. SEE NEXT COMMENTS 01266000
  1272. * * * * * * * * ------- -------- -------- ------- * 01267000
  1273. NULLCHK3 CLC FENCE,PLIST3 IS THERE A THIRD PARM? @VA04250 01268000
  1274. BER R10 NO - OK TO RETURN @VA04250 01269000
  1275. CLC FENCE,PLIST2 P3 COULD BE TRASH. FENCE HERE? @VA04250 01270000
  1276. BER R10 GOOD GUESS - OK TO GO ON @VA04250 01271000
  1277. B NOTKNOWN YES - THROW IT BACK @VA04250 01272000
  1278. * * * * * * * * ------- -------- -------- ------- * 01273000
  1279. * * * * * * * * THIS CHECKS THAT THOSE COMMANDS 01274000
  1280. * * * * * * * * WHICH SHOULD HAVE ONLY THREE TERMS 01275000
  1281. * * * * * * * * DO IN FACT HAVE NO MORE. 01276000
  1282. * * * * * * * * 'D' AND 'VIO' MAY HAVE 2 OR 3 TERMS. 01277000
  1283. * * * * * * * * IN THIS CASE THE FIRST TEST WILL NOT 01278000
  1284. * * * * * * * * FIND THE X'FF..' IT EXPECTS. 01279000
  1285. * * * * * * * * ------- -------- -------- ------- * 01280000
  1286. NULLCHK4 CLC FENCE,PLIST4 IS THERE A FOURTH PARM? @VA04250 01281000
  1287. BER R10 NO - OK TO RETURN @VA04250 01282000
  1288. CLC FENCE,PLIST3 P4 COULD BE TRASH. FENCE IN P3? @VA04250 01283000
  1289. BER R10 SURE - OK TO RETURN @VA04250 01284000
  1290. B NOTKNOWN YES - THROW IT BACK @VA04250 01285000
  1291. * * * * * * * * ------- -------- -------- ------- * 01286000
  1292. * * * * * * * * THIS CHECKS THAT THOSE COMMANDS 01287000
  1293. * * * * * * * * WHICH SHOULD HAVE ONLY FOUR TERMS 01288000
  1294. * * * * * * * * DO IN FACT HAVE NO MORE. 01289000
  1295. * * * * * * * * ------- -------- -------- ------- * 01290000
  1296. NULLCHK5 CLC FENCE,PLIST5 IS THERE A FIFTH PARM? @VA04250 01291000
  1297. BER R10 NO - OK TO RETURN @VA04250 01292000
  1298. B NOTKNOWN YES - THROW IT BACK @VA04250 01293000
  1299. * * * * * * * * ------- -------- -------- ------- * @V4075A2 01294000
  1300. * * * * * * * * THIS CHECKS THAT THE LOCATE COMMAND @V4075A2 01295000
  1301. * * * * * * * * WHICH SHOULD HAVE ONLY FOUR OR FIVE @V4075A2 01296000
  1302. * * * * * * * * PARMS DOES IN FACT HAVE NO MORE. @V4075A2 01297000
  1303. * * * * * * * * IN THIS CASE THE FIRST TEST MAY NOT @V4075A2 01298000
  1304. * * * * * * * * FIND THE X'FF..' IT EXPECTS. @V4075A2 01299000
  1305. * * * * * * * * ------- -------- -------- ------- * @V4075A2 01300000
  1306. NULLCHK6 CLC FENCE,PLIST6 IS THERE A SIXTH PARM? @V4075A2 01301000
  1307. BER R10 NO - OK TO RETURN @V4075A2 01302000
  1308. CLC FENCE,PLIST5 P6 COULD BE TRASH. FENCE IN P5? @V4075A2 01303000
  1309. BER R10 SURE - OK TO RETURN @V4075A2 01304000
  1310. B NOTKNOWN YES - THROW IT BACK @V4075A2 01305000
  1311. * * * * * * * * ------- -------- -------- ------- * 01306000
  1312. * * * * * * * * FOR THE ROUTINES DMMFED AND DMMFEX, 01307000
  1313. * * * * * * * * THIS CHECKS THAT ONLY SIX BYTES 01308000
  1314. * * * * * * * * OF ADDRESS ARE PASSED, UNLESS 01309000
  1315. * * * * * * * * THE EXTRA BYTES ARE LEADING ZEROS. 01310000
  1316. * * * * * * * * ------- -------- -------- ------- * 01311000
  1317. ADLENGTH LA R2,PLIST2 POINT TO LEFT CHAR OF ADDRESS @VA04250 01312000
  1318. LA R3,PLIST3 LIMIT FOR SEARCH @VA04250 01313000
  1319. LA R4,NULL ADDRESS BYTE COUNTER @VA04250 01314000
  1320. CLI 0(R2),T IS IT A 'T' @VA04250 01315000
  1321. BNE PCENT GO CHECK PERCENT @VA04250 01316000
  1322. CHEKNEXT LA R2,ONE(R2) NEXT CHARACTER @VA04250 01317000
  1323. CR R2,R3 OFF THE END? @VA04250 01318000
  1324. BNL CHECK7 YES - CHECK THE COUNT @VA04250 01319000
  1325. PCENT CLI 0(R2),PC IS THIS A '%' @VA04250 01320000
  1326. BE CONCAT YES -GO MAKE CONCAT CHECK @VA04250 01321000
  1327. CLI 0(R2),BLANK THEN IS IT A BLANK? @VA04250 01322000
  1328. BE CHECK7 YES LAST OF THE BIG TIME CHARS @VA04250 01323000
  1329. LA R4,ONE(R4) NO - BUMP COUNT @VA04250 01324000
  1330. B CHEKNEXT GO TRY THE NEXT CHAR @VA04250 01325000
  1331. CONCAT LA R2,ONE(R2) BUMP POINTER @VA04250 01326000
  1332. CR R2,R3 OFF THE END @VA04250 01327000
  1333. BNL ADLEND YES - OK - RETURN @VA04250 01328000
  1334. CLI 0(R2),BLANK THEN IS IT A BLANK? @VA04250 01329000
  1335. BNE NOTKNOWN NO - BAD - QUIT @VA04250 01330000
  1336. B ADLEND YES - THAS OK - RETURN @VA04250 01331000
  1337. * * * * * * * * ------- -------- -------- ------- * 01332000
  1338. * * * * * * * * NOW WE HAVE COUNTED THE ADDRESS BYTES 01333000
  1339. * * * * * * * * ------- -------- -------- ------- * 01334000
  1340. CHECK7 C R4,SEVEN COMPARE TO '7' @VA04250 01335000
  1341. BL ADLEND LOW - GOOD - RETURN @VA04250 01336000
  1342. BH CHECK8 GO TEST THE EIGHT BYTES @VA04250 01337000
  1343. LA R2,PLIST2 POINT TO START OF ADDRESS AGAIN @VA04250 01338000
  1344. CLI 0(R2),T IS IT A 'T' ? @VA04250 01339000
  1345. BNE ZEROCHEK NO - GO ZERO @VA04250 01340000
  1346. LA R2,ONE(R2) LOOK AT SECOND CHAR @VA04250 01341000
  1347. ZEROCHEK CLI 0(R2),ZERO THEN IT BETTER BE A ZERO @VA04250 01342000
  1348. BE ADLEND YES - OK - RETURN @VA04250 01343000
  1349. B NOTKNOWN NO - DONT LIKE IT @VA04250 01344000
  1350. CHECK8 LA R2,PLIST2 LOOK AT THE 1ST CHAR YET AGAIN @VA04250 01345000
  1351. CLI 0(R2),ZERO BE A ZERO @VA04250 01346000
  1352. BNE NOTKNOWN NOPE - OUT @VA04250 01347000
  1353. LA R2,ONE(R2) NEXT @VA04250 01348000
  1354. CLI 0(R2),ZERO ZERO ? @VA04250 01349000
  1355. BNE NOTKNOWN NO - BAD LUCK @VA04250 01350000
  1356. ADLEND BR R10 MADE IT THROUGH - RETURN @VA04250 01351000
  1357. * * * * * * * * ------- -------- -------- ------- * 01352000
  1358. * * * * * * * * THIS CHECKS THE LAST COMMAND. 01353000
  1359. * * * * * * * * IF IT IS LOCATE OR SCROLL IT MAY BE 01354000
  1360. * * * * * * * * REUSED IE. SCROLL AGAIN, ORCONTINUE 01355000
  1361. * * * * * * * * THE LOCATE FOR ANOTHER HIT. 01356000
  1362. * * * * * * * * ------- -------- -------- ------- * 01357000
  1363. REUSE CLC PLIST(CHARLEN),LOCATE LOCATE? @VA04250 01358000
  1364. BE RELOCATE YES SET IT UP @VA04250 01359000
  1365. CLC PLIST(CHARLEN),SCROLL SCROLL? @VA04250 01360000
  1366. BE RESCROLL SET IT UP @VA04250 01361000
  1367. B REREADY NEITHER - ROUND AGAIN @VA04250 01362000
  1368. * * * * * * * * ------- -------- -------- ------- * 01363000
  1369. * * * * * * * * FIRST THE LOCATE 01364000
  1370. * * * * * * * * ------- -------- -------- ------- * 01365000
  1371. * @V4075A2 01366000
  1372. * IN A RELOCATE THE NEW 'FROM' ADDRESS IS ROUNDED @V4075A2 01367000
  1373. * TO A QUAD-WORD BOUNDARY. IF THE USER HAD SPECIFIED @V4075A2 01368000
  1374. * OTHER THAN THIS FOR A PARTICULAR SEARCH, IT WOULD BE @V4075A2 01369000
  1375. * LOST ON THE SECOND AND SUBSEQUENT 'REUSE' OPERATIONS. @V4075A2 01370000
  1376. * THIS PICKS UP THAT PART OF THE OLD 'FROM' ADDRESS @V4075A2 01371000
  1377. * WHICH IS BELOW 16, AND ADDS IT INTO THE NEW 'FROM'. @V4075A2 01372000
  1378. ************************************************************** @V4075A2 01373000
  1379. RELOCATE LA R4,PLIST3 GET THE EXISTING 'FROM' @V4075A2 01374000
  1380. L R15,HEXADD ADDRESS OF TRANSLATE @V4075A2 01375000
  1381. BALR R14,R15 GO TRANSLATE @V4075A2 01376000
  1382. LTR R15,R15 HOW BAD WAS IT @V4075A2 01377000
  1383. BNZ CODECHEK IT WAS SOOO BAD.... @V4075A2 01378000
  1384. SLL R5,28 STRIP OFF ALL OVER 1 HALF BYTE @V4075A2 01379000
  1385. SRL R5,28 AND RESTORE THE CORRECT VALUE @V4075A2 01380000
  1386. L R2,HEXADADD ADDR OF THE LAST DISPLAY ADDRESS @V4075A2 01381000
  1387. L R2,0(R2) GET THE ADDRESS @VA04250 01382000
  1388. L R3,BOUNDADD GET THE POINTER TO THE INCREMENT @V4075A2 01383000
  1389. L R3,0(R3) AND GET THE INCREMENT @V4075A2 01384000
  1390. SRL R3,ONE RESTORE TO BYTES FROM H'WORDS @V4075A2 01385000
  1391. C R3,SIXTEEN IS THE INC GREATER THAN ONE LINE @V4075A2 01386000
  1392. BH ADDBOUND YES - USE THE BOUND PARAMETER @V4075A2 01387000
  1393. L R3,SIXTEEN NO - USE ONE LINE @V4075A2 01388000
  1394. ADDBOUND AR R2,R3 ADD TO THE 'FROM' ADDRESS @V4075A2 01389000
  1395. AR R2,R5 AND ADD ORIG LINE DISPLACEMENT @V4075A2 01390000
  1396. ST R2,NEWFROM STORE IT @VA04250 01391000
  1397. LA R3,XADDL LENGTH OF ADDRESS TO TRANSLATE @VA04250 01392000
  1398. LA R4,NEWFROM+ONE ADDRESS FOR TRANSLATE @VA04250 01393000
  1399. BAL R10,GOINT GO TRANSLATE @VA04250 01394000
  1400. MVC PLIST3,BLANKS SET PLIST TO BLANKS @VA04250 01395000
  1401. MVC PLIST3(SIXBYTES),0(R5) PLUG NEW ADDRESS @VA04250 01396000
  1402. ***************************************************************@V4075A2 01397000
  1403. * IF 'PRINT ' FOLLOWS A REUSE OF LOCATE, THE ORIGINAL @V4075A2 01398000
  1404. * 'FROM' ADDRESS FROM THE INPUT LINE IS USED @V4075A2 01399000
  1405. * AND DOES NOT REFLECT THE LATEST 'FROM'. THIS SAVES @V4075A2 01400000
  1406. * THE FROM ADDRESS TO REFLECT THE LATEST UPDATE @V4075A2 01401000
  1407. ***************************************************************@V4075A2 01402000
  1408. MVC NEWFREBC,PLIST3 SAVE THE UPDATED FROM ADDR @V4075A2 01403000
  1409. MVC INLENGTH,OLDINLEN FAKE UP INPUT LENGTH @VA04250 01404000
  1410. MVC INPUT,INSAVE AND INPUT LINE @VA04250 01405000
  1411. B GOLOCATE GO BACK TO LOCATE @VA04250 01406000
  1412. * * * * * * * * ------- -------- -------- ------- * 01407000
  1413. * * * * * * * * REUSE THE SCROLL 01408000
  1414. * * * * * * * * ------- -------- -------- ------- * 01409000
  1415. RESCROLL MVC INPUT,INSAVE REPLACE THE LAST INPUT LINE @VA04250 01410000
  1416. MVC INLENGTH,OLDINLEN AND LENGTH @VA04250 01411000
  1417. B GOSCROLL FOR CONSISTENCY - AND CONTINUE @VA04250 01412000
  1418. ***************************************************************@V4075A2 01413000
  1419. * THIS CLOSES THE PRINTER @V4075A2 01414000
  1420. ***************************************************************@V4075A2 01415000
  1421. CLOSEPRT LA R2,CLOSER @V4075A2 01416000
  1422. LA R3,L'CLOSER @V4075A2 01417000
  1423. DC X'83230008' CALL CP TO CLOSE PRINT FILE @V4075A2 01418000
  1424. BR R10 RETURN @V4075A2 01419000
  1425. * * * * * * * * ------- -------- -------- ------- * 01420000
  1426. * * * * * * * * RETURN 01421000
  1427. * * * * * * * * ------- -------- -------- ------- * 01422000
  1428. RETURN BAL R10,CLEAR CLEAR SCREEN FOR TERM MESSAGE @VA04250 01423000
  1429. BAL R10,CLOSEPRT GO SHUT DOWN PRINTER @V4075A2 01424000
  1430. LA R10,DUMPFSCB GET READY TO @VA04250 01425000
  1431. FSCLOSE FSCB=(R10) CLOSE THE DUMP FILE @VA04250 01426000
  1432. L R2,PBADDADD ADDRESS OF LOC BUFFER ADDRESS @V4075A2 01427000
  1433. L R2,0(R2) GET THE BUFFER ADDRESS @V4075A2 01428000
  1434. LTR R2,R2 ANY ADDRESS ? @V4075A2 01429000
  1435. BZ RETURNER NO - GET RIGHT OUT @V4075A2 01430000
  1436. LR R1,R2 YES - SET UP TO RETURN STORAGE @V4075A2 01431000
  1437. DMSFRET DWORDS=(1030),LOC=(1),ERR=FREEERR @V4075A2 01432000
  1438. RETURNER L R13,SAVEBACK CALLERS SAVE PTR @VA04250 01433000
  1439. MVC SAVREG15(L'RETCODE,R13),RETCODE RC FOR PICK UP @VA04250 01434000
  1440. LM R14,R12,SAVEDISP(R13) CALLERS REGS @VA04250 01435000
  1441. BR R14 RETURN @VA04250 01436000
  1442. * * * * * * * * ------- -------- -------- ------- * 01437000
  1443. * * * * * * * * CONSTANTS 01438000
  1444. * * * * * * * * ------- -------- -------- ------- * 01439000
  1445. CLOSER DC C'CLOSE PRT' @V4075A2 01440000
  1446. CODE4 DC F'4' ACCEPTABLE RETURN @VA04250 01441000
  1447. CODE8 DC F'8' NON DITTO @VA04250 01442000
  1448. SIXTEEN DC F'16' BUMP 'FROM' FOR 'RELOCATE' @VA04250 01443000
  1449. HUH DC CL16'????????' 'DONT RECOGNISE INPUT' @VA04250 01444000
  1450. INPUT DS CL150 READ FROM CONSOLE @VA04250 01445000
  1451. INSAVE DS CL150 INPUT SAVE AREA @VA04250 01446000
  1452. CMDINFO DC 80C' ' HEADER FOR SCREEN DISPLAY @VA04250 01447000
  1453. NOPARM DC XL15'40404040404040FFFFFFFFFFFFFFFF' ONLY 1CHAR @VA04250 01448000
  1454. PLIST DS 8D THE FAMOUS PARAMETER LIST @VA04250 01449000
  1455. ORG PLIST @VA04250 01450000
  1456. PLIST1 DS D FIRST PLIST PARAMETER @VA04250 01451000
  1457. PLIST2 DS D SECOND @VA04250 01452000
  1458. PLIST3 DS D THIRD @VA04250 01453000
  1459. PLIST4 DS D FOURTH @VA04250 01454000
  1460. PLIST5 DS D FIFTH @VA04250 01455000
  1461. PLIST6 DS D SIXTH @VA04250 01456000
  1462. PLIST7 DS D SEVENTH @VA04250 01457000
  1463. PLIST8 DS D EIGHTH @VA04250 01458000
  1464. * * * * * * * * ------- -------- -------- ------- * 01459000
  1465. * * * * * * * * SAVEAREA 01460000
  1466. * * * * * * * * ------- -------- -------- ------- * 01461000
  1467. SAVEAREA DS 0F THIS PROGRAM'S SAVE AREA @VA04250 01462000
  1468. SAVEUSR DS F USER WORD @VA04250 01463000
  1469. SAVEFWD DS F FORWARD POINTER @VA04250 01464000
  1470. SAVEBACK DS F BACKWARD POINTER @VA04250 01465000
  1471. SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 01466000
  1472. SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 01467000
  1473. SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 01468000
  1474. SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 01469000
  1475. SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 01470000
  1476. SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 01471000
  1477. SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 01472000
  1478. SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 01473000
  1479. SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 01474000
  1480. SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 01475000
  1481. SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 01476000
  1482. SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 01477000
  1483. SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 01478000
  1484. SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 01479000
  1485. SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 01480000
  1486. INLENGTH DS F LENGTH OF LINE READ IN @VA04250 01481000
  1487. OLDINLEN DS F LENGTH OF PREVIOUS LINE @VA04250 01482000
  1488. NEWFROM DS F UPDATED 'FROM' FOR 'RELOCATE' @VA04250 01483000
  1489. NEWFREBC DC CL8' ' EBC FORM OF ABOVE @V4075A2 01484000
  1490. RETCODE DS F RETURN CODE @VA04250 01485000
  1491. CONSOLE DS F ADDRESS OF VIRTUAL CONS @VA04250 01486000
  1492. BLANKS DC CL8' ' BLANKS @VA04250 01487000
  1493. FENCE DC XL8'FFFFFFFFFFFFFFFF' END OF PLIST @VA04250 01488000
  1494. X8 DC H'8' PLIST INCREMENT @VA04250 01489000
  1495. TYPEFLAG DC X'00' TYPE OF TERMINAL @VA04250 01490000
  1496. QUERY DC XL2'6F40' '? ' FOR RESTATE INPUT @VA04250 01491000
  1497. PRINTSW DC X'00' PRINT SWITCH @V4075A2 01492000
  1498. ***************************************************************@V4075A2 01493000
  1499. * ONE-SHOT PRINT SW IS X'00' IF NOT IN A ONE SHOT @V4075A2 01494000
  1500. * PRINT SITUATION, SUCH AS PRINT ON, OR PRINT OFF AND @V4075A2 01495000
  1501. * NOT A PRINT COMMAND. IT IS X'0F' IF ONE-SHOT PRINT @V4075A2 01496000
  1502. * WITH DISPLAY SUPPRESSED, SUCH AS 'PRINT' AFTER @V4075A2 01497000
  1503. * A SUBCOMMAND - D 1234, @V4075A2 01498000
  1504. * AND X'FF' IF ONE SHOT WITH DISPLAY, SUCH AS @V4075A2 01499000
  1505. * PRINT D 1234. @V4075A2 01500000
  1506. ***************************************************************@V4075A2 01501000
  1507. PRINTONE DC X'00' ONE SHOT PRINT SWITCH. @V4075A2 01502000
  1508. * * * * * * * * ------- -------- -------- ------- * 01503000
  1509. TYPESAVE DS 0F RESULTS OF CONSOLE DIAGNOSE @VA04250 01504000
  1510. DS 1C DEV TYPE BYTE 1 @VA04250 01505000
  1511. TYPEREM DS 1C DEV TYPE BYTE 2 @VA04250 01506000
  1512. DS H UNUSED DEV TYPE BYTES @VA04250 01507000
  1513. * * * * * * * * ------- -------- -------- ------- * 01508000
  1514. SEVEN DC F'7' COUNT OF ADDRESS BYTES @VA04250 01509000
  1515. NOFILE DC F'28' FILE NOT FOUND RETCODE @VA04250 01510000
  1516. PAGESW DC X'01' PAGE SWITCH @VA04250 01511000
  1517. DUMPFSCB FSCB 'PRB0000X DUMP * ',BSIZE=4096 HRC001DM 01512490
  1518. NULL EQU X'00' TO ZERO A REG @VA04250 01513000
  1519. TYPER EQU X'FF' TYPEWRITER TYPE DEVICE @VA04250 01514000
  1520. HIBYTEST EQU X'F0' TEST FOR 3270 TYPE DISPLAY @VA09785 01514400
  1521. LOBYTEST EQU X'0F' TERMINALS @VA09785 01514800
  1522. NUMZONE EQU X'F0' ZONE FOR A NUMEROC CHARACTER @VA04250 01515000
  1523. CMDCODE EQU X'19' COMMAND CODE IN DIAGNOSE CCW @VA04250 01516000
  1524. ERASE EQU X'FF' ERASE CONTROL BYTE IN CCW @VA04250 01517000
  1525. BLANK EQU X'40' SIGNIFICANT CHARACTER COMPARE @VA04250 01518000
  1526. DELIM EQU X'B0' DELIMITER TEST - '4X' @VA04250 01519000
  1527. REC2 EQU X'02' RECORD #2 @VA04250 01520000
  1528. S EQU X'E2' S FOR SCROLL @VA04250 01521000
  1529. T EQU X'E3' LEADING 'T' @VA04250 01522000
  1530. U EQU X'E4' U FOR SCROLL 'U' @VA04250 01523000
  1531. NULLDUMP EQU X'E7' DUMP NOT INDICATED YET @V4075A2 01524000
  1532. PC EQU X'6C' PERCENT @VA04250 01525000
  1533. ZERO EQU X'F0' ZERO @VA04250 01526000
  1534. PAGE1 EQU X'01' PAGE1 SW @VA04250 01527000
  1535. PAGE2 EQU X'02' PAGE2 SW @VA04250 01528000
  1536. NOTRED EQU X'00' NOT READ STATUS @VA04250 01529000
  1537. CHARLEN EQU X'01' LENGTH OF ONE BYTE INPUT TEST @VA04250 01530000
  1538. TWOBYTES EQU X'02' TWO @VA04250 01531000
  1539. THREEBYT EQU X'03' THREE @VA04250 01532000
  1540. SIXBYTES EQU X'06' SIX @VA04250 01533000
  1541. SEVENBYT EQU X'07' SEVEN @VA04250 01534000
  1542. ONE EQU 1 COUNTER BUMPER @VA04250 01535000
  1543. XADDL EQU 3 LENGTH OF HEX ADDRESS @VA04250 01536000
  1544. VDEND EQU 4 END OF VALID INPUT @VA04250 01537000
  1545. GOODRET EQU 4 DISP TO GOOD RETURN ADDRESS @VA04250 01538000
  1546. FIV EQU 5 UNPACK DISP @VA04250 01539000
  1547. SIX EQU 6 UNPACK DISP @VA04250 01540000
  1548. SEV EQU 7 UNPACK DISP @VA04250 01541000
  1549. FN EQU 8 FILE NAME IN FSCB @VA04250 01542000
  1550. FSCBDNUM EQU 11 DUMP NUMBER @VA04250 01543000
  1551. CUUBLANK EQU 11 END OF 'CUU' IN PLIST @VA04250 01544000
  1552. SAVEDISP EQU 12 DISP. OF REGS IN SAVEAREA @VA04250 01545000
  1553. FNEND EQU 15 END OF FILE NAME @VA04250 01546000
  1554. FT EQU 16 FILE TYPE @VA04250 01547000
  1555. SAVREG15 EQU 16 DISP FOR REG15 IN SAVAREA @VA04250 01548000
  1556. FR EQU 22 FROM DISP. @VA04250 01549000
  1557. FM EQU 24 FILE MODE IN FSCB @VA04250 01550000
  1558. TO EQU 30 'TO' DISP @VA04250 01551000
  1559. LINECNT EQU 43 NUMBER OF LINES @VA04250 01552000
  1560. TRYDIAG EQU 50 NUMBER OF RETRIES FOR DIAGNOSE @VA04250 01553000
  1561. LINELEN EQU 80 LENGTH OF LINE @VA04250 01554000
  1562. ***************************************************************@V4075A2 01555000
  1563. * CONSTANTS FOR PRINT @V4075A2 01556000
  1564. ***************************************************************@V4075A2 01557000
  1565. OF DC CL8'OF' @V4075A2 01558000
  1566. OFF DC CL8'OFF' PRINT OFF PARM @V4075A2 01559000
  1567. ON DC CL8'ON' PRINT ON @V4075A2 01560000
  1568. PRT DC CL8'PRT' PRT ABBREV FOR PRINT @V4075A2 01561000
  1569. CLOSE DC CL6'CLOSE' CLOSE PARM OF PRINT SUBC. @V4075A2 01562000
  1570. PRINT DC CL6'PRINT' PRINT SUBCOMMAND @V4075A2 01563000
  1571. PRINTONM DC C'PRINT IS ON' POS. REPLY TO PRINT ? @V4075A2 01564000
  1572. PRINTOFM DC C'PRINT IS OFF' NEG REPLY TO PRINT ? @V4075A2 01565000
  1573. TURNON EQU X'FF' SWITCH ON VALUE @V4075A2 01566000
  1574. TURNOFF EQU X'00' SWITCH OFF VALUE @V4075A2 01567000
  1575. SUBCOMM EQU X'FF' ONE-SHOT PRINT W DISPLAY @V4075A2 01568000
  1576. NOSUBC EQU X'0F' ONE-SHOT PRINT - NO DISPLAY. @V4075A2 01569000
  1577. * * * * * * * *------- -------- -------- -------- ------* 01570000
  1578. * * * * * * * * CONSTANTS FOR RDERR 01571000
  1579. * * * * * * * *------- -------- -------- -------- ------* 01572000
  1580. DEPACK DS D UNPACKED RETCODE @VA04250 01573000
  1581. DECODE DS D DECIMAL RETCODE @VA04250 01574000
  1582. ERMSG719 DC C'DMMDSC719I ERROR ''' TEXT OF ERROR MESSAGE @VA04423 01575000
  1583. ERRMSGCD DC CL3' ' * @VA04250 01576000
  1584. ERRMSGT2 DC C''' IN FSSTATE. FILE ''' * @VA04250 01577000
  1585. ERRMSGFN DC CL8' ' * @VA04250 01578000
  1586. ERRMSFIL DC CL2' ' FILLER @VA04250 01579000
  1587. ERRMSGFT DC CL6' ' * @VA04250 01580000
  1588. ERRMSGF2 DC CL1' ' FILLER @VA04250 01581000
  1589. ERRMSGM DC CL2' ' * @VA04250 01582000
  1590. ERRMSGHK DC CL1'''' TRAILING HICKEY @VA04250 01583000
  1591. E719L EQU *-ERMSG719 * @VA04250 01584000
  1592. * * * * * * * * ------- -------- -------- ------- * 01585000
  1593. * * * * * * * * OTHER MESSAGES 01586000
  1594. * * * * * * * * ------- -------- -------- ------- * 01587000
  1595. EMSG7011 DC C'DMMDSC701R Please enter one of the following operands:*01588190
  1596. ' HRC001DM 01588380
  1597. EMSG7012 DC C' NNNNN < MODE > - To view PRBNNNNN from CMS *01588570
  1598. DISK ''MODE''' HRC001DM 01588760
  1599. EMSG7013 DC C' HELP - To request HELP informatio*01588950
  1600. n' HRC001DM 01589140
  1601. EMSG7014 DC C' END, QUIT, HX - To EXIT' HRC001DM 01589330
  1602. SHORTRDY DC C'*R' SHORT READY MSG @VA04250 01590000
  1603. READYMSG DC C'*** READY ***' REGULAR READY @VA04250 01591000
  1604. NOFILMSG DC C'DUMP NOT FOUND - CHECK NUMBER AND MODE' @VA04250 01592000
  1605. * * * * * * * *------- -------- -------- -------- ------* 01593000
  1606. * * * * * * * * CONSTANTS FOR INPUT CHECK ROUTINE * 01594000
  1607. * * * * * * * *------- -------- -------- -------- ------* 01595000
  1608. RIOBLOK DC CL8'RIOBLOK' REAL DEVICE TRACKING @VA04250 01596000
  1609. VIOBLOK DC CL8'VIOBLOK' VIRTUAL DEVICE TRACKING @VA04250 01597000
  1610. VMBLOK DC CL7'VMBLOK' SUMMARY OF USERIDS & STATUS @VA04250 01598000
  1611. SCROLL DC CL7'SCROLL' SCROLL @VA04250 01599000
  1612. LOCATE DC CL7'LOCATE' LOCATE A STRING @VA04250 01600000
  1613. TRACE DC CL6'TRACE' 'N' TRACE TABLE ENTRIES @VA04250 01601000
  1614. DISPLAY DC CL8'DISPLAY' DISPLAY REQUEST @VA04250 01602000
  1615. REGS DC CL5'REGS' CONTROL AND GENERAL REG REQUEST @VA04250 01603000
  1616. G DC CL2'G' GENERAL REG REQ. @VA04250 01604000
  1617. C DC CL2'C' CONTROL REG REQUEST @VA04250 01605000
  1618. XREGS DC CL6'XREGS' AREGS OR MREGS @V4075A2 01606000
  1619. A DC C'A' APREGS @V4075A2 01607000
  1620. M DC C'M' MREGS @V4075A2 01608000
  1621. EXAMINE DC CL2'X' ONE FULL SCREEN OF THE DUMP @VA04250 01609000
  1622. DMK DC CL3'DMK' MODULE OR ENTRY SEARCH @VA04250 01610000
  1623. HDK DC CL3'HDK' MODULE OR ENTRY SEARCH HRC001DM 01610500
  1624. DMKQ DC CL4'DMK?' ADDRESS LOCATE REQUEST @VA04250 01611000
  1625. HDKQ DC CL4'HDK?' ADDRESS LOCATE REQUEST HRC001DM 01611500
  1626. IREC DC CL2'I' DUMP INFORMATION RECORD (REC2) @VA04250 01612000
  1627. INVALID DC CL7'INVALID' SET 'UNRECOGNISABLE INPUT' FLAG @VA04250 01613000
  1628. ZEROS DC CL5'00000' TO RESET FSCB FILENAME @VA04250 01614000
  1629. * * * * * * * * ------- -------- -------- ------- * 01615000
  1630. * * * * * * * * CONSTANTS FOR INCHECK 01616000
  1631. * * * * * * * * ------- -------- -------- ------- * 01617000
  1632. HELP DC CL5'HELP' REQUEST FOR COMMAND SUMMARY @VA04250 01618000
  1633. HX DC CL3'HX' HALT EXECUTION @VA04250 01619000
  1634. QUIT DC CL5'QUIT' SAME @VA04250 01620000
  1635. END DC CL4'END' END @VA04250 01621000
  1636. BLANKOUT DC CL150' ' BLANKS TO CLEAR OUTPUT AREA @VA04830 01622000
  1637. * * * * * * * * ------- -------- -------- ------- * 01623000
  1638. * * * * * * * * CCWS FOR 'HELP' 01624000
  1639. * * * * * * * * ------- -------- -------- ------- * 01625000
  1640. CCWA CCW X'19',INFO1,X'60',1760 ERASE @VA04250 01626000
  1641. CCWB CCW X'19',INFO1,X'20',1760 WRITE @VA04250 01627000
  1642. * * * * * * * *------- -------- -------- -------- ------* 01628000
  1643. * * * * * * * * ADCONS 01629000
  1644. * * * * * * * *------- -------- -------- -------- ------* 01630000
  1645. DS 0F @VA04250 01631000
  1646. FEXADD DC AL4(DMMFEX) ADDRESS OF EXAMINE FETCH @VA04250 01632000
  1647. VMBADD DC AL4(DMMVMB) VMBLOK ROUTINE @VA04250 01633000
  1648. MODADD DC AL4(DMMMOD) MODULE NAME ROUTINE @VA04250 01634000
  1649. SCRADD DC AL4(DMMSCR) SCROLLER @VA04250 01635000
  1650. REGADD DC AL4(DMMREG) REGISTER DISPLAY @VA04250 01636000
  1651. FEDADD DC AL4(DMMFED) DUMP COMMAND @VA04250 01637000
  1652. TRACEADD DC AL4(DMMTRC) TRACE TABLE ROUTINE @VA04250 01638000
  1653. IOBADD DC AL4(DMMIOB) REAL AND VIRTUAL IOBLOCKS @VA04250 01639000
  1654. LOCADD DC AL4(DMMLOC) LOCATE @VA04250 01640000
  1655. INTADD DC AL4(DMMINT) TRANSLATE @VA04250 01641000
  1656. PBADDADD DC AL4(PREBUFAD) ADDRESS OF LOC BUFFER ADDRESS @V4075A2 01642000
  1657. BOUNDADD DC AL4(BOUND) ADDRESS OF INCREMENT @V4075A2 01643000
  1658. HEXADD DC AL4(DMMHEX) EBC-TO-BINARY TRANSLATE @V4075A2 01644000
  1659. INFOADD1 DC AL4(INFO1) 'HELP' PAGE1 @VA04250 01645000
  1660. INFOADD2 DC AL4(INFO2) 'HELP' PAGE2 @VA04250 01646000
  1661. HEXADADD DC AL4(HEXAD) DISPLAY ADDRESS IN HEX @VA04250 01647000
  1662. ISWADD DC AL4(ISW) ITEM TABLE READ SW @VA04250 01648000
  1663. MAPRSADD DC AL4(MAPREDSW) LOAD MAP READ @VA04250 01649000
  1664. RECNOADD DC AL4(RECORDNO) LAST RECORD READ @VA04250 01650000
  1665. SCBKUP DC F'176' VALUE TO BACKUP FOR TRACE @VA04250 01651000
  1666. ************************************************************ @V4075A2 01652000
  1667. * CONSTANTS FOR DMMMAP @V4075A2 01653000
  1668. ************************************************************ @V4075A2 01654000
  1669. MAXCOUNT DC F'1792' MAX TRIES IN ITEM TABLE @V4075A2 01655000
  1670. EOTFOX DC X'FFFF' END OF ITEM TABLE FLAG @V4075A2 01656000
  1671. EOF DC F'12' END OF FILE RET CODE @V4075A2 01657000
  1672. NOERR DC F'0' NO ERROR RETURN @V4075A2 01658000
  1673. CPEND DC CL8'DMKCPEND' END OF RES NUCLEUS @V4075A2 01659000
  1674. MAPRET DS F SAVE FOR MAP RET CODE @V4075A2 01660000
  1675. GOTTENAD DS F SAVE FOR DMSFREE GOTTEN ADDRESS @V4075A2 01661000
  1676. MAP DC CL8'MAP' MAP SUBCOMMAND @V4075A2 01662000
  1677. MAPADD DC AL4(DMMMAP) ADDRESS OF MAPPING ROUTINE @V4075A2 01663000
  1678. ADISK DC CL2'A1' A DISK FILE MODE IDENT @V4075A2 01664000
  1679. ITBLMSG DC C'DMMDSC705E ERROR IN ITEM TABLE' @V4075A2 01665000
  1680. MAPONMSG DC C'THE MAP HAS BEEN ADDED TO THE DUMP' @V4075A2 01666000
  1681. TWOMAPMS DC C'DMMDSC720I LOAD MAP ALREADY PRESENT' @V4075A2 01667000
  1682. DPNOTAMS DC C'DMMDSC723I THE DUMP IS NOT ON THE A-DISK' @V4075A2 01668000
  1683. STATFLAG DS C FILE STATUS FLAG BYTE @V4075A2 01669000
  1684. * * * * DO NOT SEPARATE THE FOLLOWING STATEMENTS * * * * * * **@V4075A2 01670000
  1685. SHARECON DS 0F SHARED CONSTANT AREA *@V4075A2 01671000
  1686. ORG SHARECON+1 DISP *@V4075A2 01672000
  1687. DUMPNUM DS CL8 NUMBER OF THE DUMP BEING READ *@V4075A2 01673000
  1688. ORG SHARECON+X'20' DISP *@V4075A2 01674000
  1689. REALEND DS F ADDR DMKCPEND FROM SYMBOL TABLE *@V4075A2 01675000
  1690. ORG SHARECON+X'424' DISP *@V4075A2 01676000
  1691. TEXT5 DS CL80 MSG TEXT AREA *@V4075A2 01677000
  1692. TEXT7 DS CL80 MSG TEXT AREA *@V4075A2 01678000
  1693. * * * * DO NOT SEPARATE THE ABOVE STATEMENTS * * * * * * * * **@V4075A2 01679000
  1694. TWO EQU 2 LENGTH OF ITEMTAB ENTRY @V4075A2 01680000
  1695. DUMMIES EQU 5 COUNT THE EXTRA RECS IN THE DUMP @V4075A2 01681000
  1696. EIGHT EQU 8 DISP TO ADDRESS @V4075A2 01682000
  1697. TABENT EQU 12 LENGTH OF A SYM TAB ENTRY @V4075A2 01683000
  1698. ITEMTAB EQU 56 DISP TO ITEM TAB IN DMPPGMAP @V4075A2 01684000
  1699. HIHALF EQU X'F0' MASK TO STRIP OFF LO HALF BYTE @V4075A2 01685000
  1700. * * * * * * * * ------- -------- -------- ------- * 01686000
  1701. * * * * * * * * CONSTANTS FOR CLEAR 01687000
  1702. * * * * * * * * ------- -------- -------- ------- * 01688000
  1703. CCWC CCW X'19',X'0',X'20',1760 @VA04250 01689000
  1704. SAVCLR DS 3F SAVE FOR CLEAR SUBR. @VA04250 01690000
  1705. SCRNADD DC AL4(SCRNAREA) DISPLAY AREA @VA04250 01691000
  1706. ***************************************************************@V4075A2 01692000
  1707. * CONSTANTS FOR &NAME SECTION @V4075A2 01693000
  1708. ***************************************************************@V4075A2 01694000
  1709. * DO NOT SEPARATE THE FOLLOWING STATEMENTS * * * * * * * * * **@V4075A2 01695000
  1710. ILLAMPMS DC C'DMMDSC722I INVALID ENTRY INTO ' TEXT1 * *@V4075A2 01696000
  1711. DC X'50' AMPERSAND * *@V4075A2 01697000
  1712. DC C'NAME TABLE' TEXT2 * *@V4075A2 01698000
  1713. TAMSGLEN EQU *-ILLAMPMS LENGTH OF ABOVE MSG * *@V4075A2 01699000
  1714. TABFULMS DC C'DMMDSC721I THE ' * *@V4075A2 01700000
  1715. DC X'50' AMPERSAND * *@V4075A2 01701000
  1716. DC C'NAME TABLE IS FULL' * *@V4075A2 01702000
  1717. TFMSGLEN EQU *-TABFULMS LENGTH * *@V4075A2 01703000
  1718. * DO NOT SEPARATE THE ABOVE STATEMENTS * * * * * * * * * * * **@V4075A2 01704000
  1719. AMPERSAN DC XL8'5040404040404040' AMPERSAND - BLANKS @V4075A2 01705000
  1720. TABENDSW DC X'00' END OF TABLE FOUND @V4075A2 01706000
  1721. ZBSWITCH DC X'00' BLANK CHECKING @V4075A2 01707000
  1722. DS 0F @V4075A2 01708000
  1723. NEXTSLOT DC AL4(AMPTABLE) WHERE TO START ADDING NEW TERM @V4075A2 01709000
  1724. NEWSTART DS F START OF A PARTIAL ENTRY @V4075A2 01710000
  1725. AMPBUFF DC CL60' ' BUFFER FOR &NAME LINES @V4075A2 01711000
  1726. OUTLINE DC CL80' ' WRTERM BUFFER @V4075A2 01712000
  1727. DS 0D ALIGN ON SLOT BOUNDARY. @V4075A2 01713000
  1728. AMPTABLE DC 32CL8' ' NAME TABLE - 32 SLOTS @V4075A2 01714000
  1729. ***************************************************************@V4075A2 01715000
  1730. * AT THIS WRITING YOU MAY INCREASE THE SIZE OF THE TABLE @V4075A2 01716000
  1731. * TO 70 ENTRIES BEFORE YOU RUN OUT OF THIS BASE REGISTER. @V4075A2 01717000
  1732. ***************************************************************@V4075A2 01718000
  1733. AMPTBEND DC XL8'FFFFFFFFFFFFFFFF' END OF AMPTABLE @V4075A2 01719000
  1734. HEXZERO EQU X'00' TEST IN BLANK EXTRACT RTN @V4075A2 01720000
  1735. STRINGLN DS F LENGTH OF STRING @V4075A2 01721000
  1736. STRINGAD DC CL150' ' LOCATE SEARCH ARG @V4075A2 01722000
  1737. MAXSTRNG DC F'148' MAX ALLOWED INPUT @V4075A2 01723000
  1738. PATCH DC 50F'0' PATCH AREA @VA04250 01724000
  1739. LTORG @VA04250 01725000
  1740. * * * * * * * * ------- -------- -------- ------- * 01726000
  1741. * * * * * * * * HELP PAGE 01727000
  1742. * * * * * * * * THE FOLLOWING IS THE TEXT OF THE 01728000
  1743. * * * * * * * * PAGES DISPLAYED TO THE USER ON 01729000
  1744. * * * * * * * * TYPING 'HELP'. 01730000
  1745. * * * * * * * * ------- -------- -------- ------- * 01731000
  1746. INFO1 DC CL40' DUMPSCAN - EXAMINE THE SYSTEM ABEND' @V4075A2 01732000
  1747. DC CL40' DUMPS PRODUCED BY THE VMFDUMP COMMAND.' @V4075A2 01733000
  1748. DC CL40' ' @VA04250 01734000
  1749. DC CL40' ' @VA04250 01735000
  1750. DC CL40'REPLY TO MESSAGE: ' HRC001DM 01736790
  1751. DC CL40' ' HRC001DM 01737580
  1752. DC CL40' DMMDSC701I ENTER DUMP NUMBER AND MODE ' HRC001DM 01738370
  1753. DC CL40'- FOR ''PRB00027 DUMP C'' ENTER ''27 C''' HRC001DM 01739160
  1754. DC CL40'SUBCOMMANDS: ' @VA04250 01740000
  1755. DC CL40' ' @VA04250 01741000
  1756. DC CL40' DISPLAY HEXLOC DISPLAYS X''' @VA04250 01742000
  1757. DC CL40'130'' BYTES OF THE DUMP (3270 ONLY) ' @VA04250 01743000
  1758. DC CL40' DISPLAY HEXLOC(%) XXX DISPLAYS ''X' @VA04250 01744000
  1759. DC CL40'XX'' HEX BYTES FROM LOCATION HEXLOC(%) ' @VA04250 01745000
  1760. DC CL40' TRACE NNN DISPLAYS TH' @VA04250 01746000
  1761. DC CL40'E PREVIOUS NNN TRACE ENTRIES ' @VA04250 01747000
  1762. DC CL40' SCROLL(U) SCROLL DOWN' @VA04250 01748000
  1763. DC CL40' (OR UP) ONE SCREEN OF DATA (3270 ONLY) ' @VA04250 01749000
  1764. DC CL40' C, G, REGS, (A,M)REGS C, G SHOW R' @V4075A2 01750000
  1765. DC CL40'EGS, (A,M)REGS SHOW CLOCKS AND PSWS ALSO' @V4075A2 01751000
  1766. DC CL40' DMKXXXYY/HDKXXXYY DISPLAYS TH' HRC001DM 01752490
  1767. DC CL40'E MODULE OR THE ENTRY ' @VA04250 01753000
  1768. DC CL40' DMK?/HDK? HEXLOC IDENTIFIES ' HRC001DM 01754490
  1769. DC CL40'THE MODULE CONTAINING THE ADDRESS ' @VA04250 01755000
  1770. DC CL40' MAP ADDS A NUCL' @V4075A2 01756000
  1771. DC CL40'EUS LOAD MAP TO THE DUMP BEING EXAMINED.' @V4075A2 01757000
  1772. DC CL40' PRINT (ON,OFF, ,CLOSE,?,SUBCOMMAND ' @V4075A2 01758000
  1773. DC CL40'CONTROLS PRINTING OF DISPLAYED DATA ' @V4075A2 01759000
  1774. DC XL5'4040404050' AMPERSAND @V4075A2 01760000
  1775. DC CL35'NAME (NAME BUILDS AND ' @V4075A2 01761000
  1776. DC CL40'CALLS A TABLE OF HIGH-USE SUB-COMMANDS.' @V4075A2 01762000
  1777. DC CL40' VMBLOK LISTS USER ' @VA04250 01763000
  1778. DC CL40'VMBLOKS AND STATUS ' @VA04250 01764000
  1779. DC CL40' RIOBLOK CUU DISPLAYS TH' @VA04250 01765000
  1780. DC CL40'E RCH, RCU, AND RDEV BLOCKS ' @VA04250 01766000
  1781. DC CL40' VIOBLOK CUU USER DISPLAYS TH' @VA04250 01767000
  1782. DC CL40'E VCH, VCU, AND VDEV BLOCKS FOR USER ' @VA04250 01768000
  1783. DC CL40' LOCATE STRING FROM TO (I SEEKS THE S' @V4075A2 01769000
  1784. DC CL40'TRING FROM ''FROM'' TO ''TO'' IN STEPS ''I''.' 01770000
  1785. DC CL40' HELP REDISPLAYS ' @VA04250 01771000
  1786. DC CL40'THIS PAGE.' @V4075A2 01772000
  1787. DC CL40' HX, QUIT, OR END WILL END TH' @VA04250 01773000
  1788. DC CL40'E SESSION ' @VA04250 01774000
  1789. DC CL40' TYPE HELP FOR MORE DETAIL, OR HIT EN' @VA04250 01775000
  1790. DC CL40'TER.' @VA04250 01776000
  1791. * * * * * * * * ------- -------- -------- ------- * 01777000
  1792. * * * * * * * * THIS IS PAGE 2 - MORE DETAIL ON COMMANDS 01778000
  1793. * * * * * * * * ------- -------- -------- ------- * 01779000
  1794. INFO2 DC CL40' DUMPSCAN _ P' @VA04250 01780000
  1795. DC CL40'AGE 2 ' @VA04250 01781000
  1796. DC CL40' ALL INPUT IS TOKENIZED. ANY STRINGS ' @VA04250 01782000
  1797. DC CL40'OVER 8 BYTES (EXCEPT IN LOCATE) WILL BE ' @VA04250 01783000
  1798. DC CL40' TRUNCATED UNLESS THERE IS A DELIMITE' @VA04250 01784000
  1799. DC CL40'R IN THE STRING. DELIMITERS ARE BLANKS ' @VA04250 01785000
  1800. DC CL40' AND PERIODS. TO BE COMPATIBLE WITH C' @V4075A2 01786000
  1801. DC CL40'P, DISPLAY ACCEPTS THE LEADING ''T''. SO' @V4075A2 01787000
  1802. DC CL40' YOU MAY ENTER:- DISPLAY 1234 56 OR' @V4075A2 01788000
  1803. DC CL40' D 1234.56 OR D T1234 56 OR D T1234.56' @V4075A2 01789000
  1804. DC CL40' ALL COMMANDS MAY BE TRUNCATED. LEA' @VA04250 01790000
  1805. DC CL40'DING ZEROS ARE NOT NEEDED IN ADDRESSES. ' @VA04250 01791000
  1806. DC CL40' THE USERID IN THE VIOBLOK COMMAND WI' @VA04250 01792000
  1807. DC CL40'LL DEFAULT TO THE LAST USERID ENTERED, ' @VA04250 01793000
  1808. DC CL40' OR TO OPERATOR, IF ONE HAS NOT BEEN ' @VA04250 01794000
  1809. DC CL40'USED. MOST ROUTINES DISPLAY THE COMMAND ' @VA04250 01795000
  1810. DC CL40' AT THE TOP OF THE DISPLAY, BUT SOME ' @VA04250 01796000
  1811. DC CL40'LONG DISPLAYS, SUCH AS TRACE OR DISPLAY ' @VA04250 01797000
  1812. DC CL40' WILL GO TO ANOTHER PAGE. THE LAST CO' @VA04250 01798000
  1813. DC CL40'MMAND MAY BE RECALLED BY TYPING ?. ' @VA04250 01799000
  1814. DC CL40' ENTERING A CP MODULE NAME - DMKXXX/H' HRC001DM 01800590
  1815. DC CL40'DKXXX - CAUSES A LOAD MAP ON THE END OF ' HRC001DM 01801180
  1816. DC CL40' THE CMS DUMP TO BE SEARCHED. IF T' @VA04250 01802000
  1817. DC CL40'HE MODULE NAME IS FOUND, ITS VIRTUAL ' @VA04250 01803000
  1818. DC CL40' AND REAL ADDRESSES ARE FOUND, AND TH' @VA04250 01804000
  1819. DC CL40'E REAL ADDRESS AND DATA ARE DISPLAYED. ' @VA04250 01805000
  1820. DC CL40' THE SAME IS DONE FOR AN ENTRY POINT ' @VA04250 01806000
  1821. DC CL40'- DMMXXXYY - AND IF THE EXACT ENTRY IS ' @VA04250 01807000
  1822. DC CL40' NOT FOUND THE ROUTINE LOOKS FOR THE ' @VA04250 01808000
  1823. DC CL40'PARENT MODULE NAME - DMMXXX - DISPLAYING' @VA04250 01809000
  1824. DC CL40' THAT IF POSSIBLE. DMK? FINDS THE MOD' @VA04250 01810000
  1825. DC CL40'ULE BELOW HEXLOC, AND ON THE SAME PAGE. ' @VA04250 01811000
  1826. DC CL40' IF THE DUMP HAS NO LOAD MAP, YOU MAY' @V4075A2 01812000
  1827. DC CL40' ADD IT NOW BY USING THE MAP SUBCOMMAND.' @V4075A2 01813000
  1828. DC CL40' LOCATE SEARCHES FOR THE GIVEN STRING' @VA04250 01814000
  1829. DC CL40' - UP TO 16 HEX DIGITS, NO SPACES. ' @VA04250 01815000
  1830. DC CL40' LOCATE AND SCROLL HAVE A "REUSE" FUN' @VA04250 01816000
  1831. DC CL40'CTION. A NULL LINE CAUSES THE PREVIOUS ' @VA04250 01817000
  1832. DC CL40' COMMAND TO BE REISSUED, UPDATED TO T' @VA04250 01818000
  1833. DC CL40'HE CURRENT ADDRESS. ' @VA04250 01819000
  1834. DC CL40' ' @VA04250 01820000
  1835. DC CL40' ' @VA04250 01821000
  1836. DC CL40' TYPE "HELP" TO GET BACK T' @VA04250 01822000
  1837. DC CL40'O PAGE1, OR HIT ENTER TO CONTINUE. ' @VA04250 01823000
  1838. REGEQU @VA04250 01824000
  1839. COPY DEVTYPES DEVICE TYPE MASKS @VA04250 01825000
  1840. COPY DMPBLOKS DUMPINREC @V4075A2 01826000
  1841. FSTB FILE STATUS TABLE @V4075A2 01827000
  1842. END 01828000