Table of Contents

DMKDMP Source

References

Source Listing

DMKDMP.ASSEMBLE.txt
  1. DMP TITLE 'DMKDMP (CP) VM/370 - RELEASE 6' 00001000
  2. ISEQ 73,80 00002000
  3. *. 00003000
  4. * MODULE NAME - 00004000
  5. * 00005000
  6. * DMKDMP 00006000
  7. * 00007000
  8. * FUNCTION - 00008000
  9. * 00009000
  10. * TO WRITE A DUMP OF MAIN MEMORY, CONTROL REGISTERS, FLOATING 00010000
  11. * POINT REGISTERS, GENERAL PURPOSE REGISTERS, CLOCKS, AND 00011000
  12. * PREFIX REGISTER TO A PRESPECIFIED DUMP DEVICE 00012000
  13. * 00013000
  14. * ATTRIBUTES - 00014000
  15. * 00015000
  16. * NON-REUSABLE, RESIDENT, STAND ALONE PROGRAM, ENTERED VIA A 00016000
  17. * GOTO FROM DMKPSA AFTER A RESTART, FROM DMKSVC AFTER 00017000
  18. * AN SVC 0, OR FROM DMKPRG 00018000
  19. * 00019000
  20. * ENTRY POINTS - 00020000
  21. * 00021000
  22. * DMKDMPDK - WRITE SYSTEM DUMP TO DUMP DEVICE 00022000
  23. * DMKDMPRS - REIPL SYSTEM 00023000
  24. * 00024000
  25. * ENTRY CONDITIONS - 00025000
  26. * 00026000
  27. * GPR12 = ADDRESS OF ENTRY POINT 00027000
  28. * 00028000
  29. * EXIT CONDITIONS - 00029000
  30. * 00030000
  31. * NORMAL - FOR DUMP DEVICE OF TAPE OR PRINTER, MOVE 'CPCP' 00031000
  32. * TO CPID AND BRANCH TO INTERNAL SUBROUTINE DMKDMPRS 00032000
  33. * TO REIPL AND SHUTDOWN SYSTEM; FOR DUMP DEVICE OF 00033000
  34. * DASD, MOVE 'WARM' TO CPID AND 00034000
  35. * BRANCH TO INTERNAL SUBROUTINE DMKDMPRS TO REIPL 00035000
  36. * SYSTEM 00036000
  37. * 00037000
  38. * ERROR - WRITE A MESSAGE TO THE SYSTEM CONSOLE AND LOAD A 00038000
  39. * DISABLED WAIT STATE PSW 00039000
  40. * 00040000
  41. * CALLS TO OTHER ROUTINES - 00041000
  42. * 00042000
  43. * DMKSCNRD GET REAL DEVICE ADDRESS (CCU) 00043000
  44. * 00044000
  45. * EXTERNAL REFERENCES - 00045000
  46. * 00046000
  47. * DMKRIOPR - TABLE OF PRINTER DEVICE ADDRESSES AND RDEVBLOK 00047000
  48. * DISPLACEMENTS 00048000
  49. * DMKOPRWT - EMERGENCY OPERATOR WRITE ROUTINE 00049000
  50. * DMKSYSRM - REAL MACHINE SIZE 00050000
  51. * DMKRSPID - NEXT SYSTEM FILE NUMBER 00051000
  52. * DMKSYSCK - ACCOUNTING TOD CLOCK VALUE AT SYSTEM DUMP 00052000
  53. * 00053000
  54. EJECT 00054000
  55. * PSA 00055000
  56. * APUOPER - ATTACHED PROCESSOR MODE 00056000
  57. * PREFIX - PREFIX REGISTER FOR CURRENT PROCESSOR 00057000
  58. * PREFIXA - PREFIX REGISTER FOR OTHER PROCESSOR 00058000
  59. * DUMPSAVE - SAVE AREA FOR DUMP ROUTINE 00059000
  60. * 00060000
  61. * 00061000
  62. * TABLES / WORK AREAS - 00062000
  63. * 00063000
  64. * WHEN DUMP DEVICE IS DASD, REAL PAGES 1 THRU 3 ARE USED AS 00064000
  65. * WORK AREAS FOR THE DMPINREC AND DMPKYRECS 00065000
  66. * 00066000
  67. * REGISTER USAGE - 00067000
  68. * 00068000
  69. * GPR8 = DUMP DEVICE RDEVBLOK 00069000
  70. * GPR12 = BASE REGISTER 00070000
  71. * GPR13 = 2ND BASE REGISTER 00071000
  72. * GPR15 = DUMP DEVICE DEVICE ADDRESS 00072000
  73. * 00073000
  74. * ALL OTHER REGISTERS ARE USED AS WORK REGISTERS 00074000
  75. * 00075000
  76. * NOTES - 00076000
  77. * 00077000
  78. * NONE 00078000
  79. * 00079000
  80. * OPERATION - 00080000
  81. * 00081000
  82. * 1. OBTAIN DUMP LOCK 00082000
  83. * 2. STORE CLOCKS. 00083000
  84. * 3. SAVE CONTROL AND FLOATING POINT REGISTERS. 00084000
  85. * 4. SAVE PREFIX REGISTER. 00085000
  86. * 5. SAVE ABEND CODE. 00086000
  87. * 6. SAVE PROCESSOR ADDRESS. 00087000
  88. * 7. IF ATTACHED PROCESSOR MODE AND RUNNING ON THE 00088000
  89. * MAIN PROCESSOR, SIGNAL THE ATTACHED PROCESSOR TO 00089000
  90. * STOP AND STORE STATUS AND GO TO STEP 9. 00090000
  91. * 8. IF ATTACHED PROCESSOR MODE AND RUNNING ON THE 00091000
  92. * ATTACHED PROCESSOR, SIGNAL THE MAIN PROCESSOR TO 00092000
  93. * STOP AND STORE STATUS, SET UP THE RESTART PSW 00093000
  94. * FOR STEP 9, SIGNAL THE MAIN PROCESSOR TO RESTART, 00094000
  95. * AND SIGNAL SELF TO STOP. 00095000
  96. * 9. SET UP ZERO PREFIX REGISTER. 00096000
  97. * 10. SAVE LOW CORE. 00097000
  98. * 11. SET PROGRAM, IO, AND MACHINE CHECK NEW PSWS. 00098000
  99. * 12. DISABLE SOFT MACHINE CHECKS. 00099000
  100. * 13. ENABLE CHANNEL 0. 00100000
  101. * 14. ISSUE MESSAGE TO OPERATOR INDICATING ABEND CODE 00101000
  102. * AND TIME OF DUMP. 00102000
  103. * 15. GET REAL MACHINE SIZE. 00103000
  104. * 16. LOCATE DUMP DEVICE RDEVBLOK PTR; IF ZERO USE THE FIRST 00104000
  105. * PRINTER IN THE DMKRIOPR TABLE; IF NO PRINTERS ARE DEFINED 00105000
  106. * IN THE TABLE LOAD A DISABLED WAIT STATE PSW. 00106000
  107. * 17. GOTO APPROPRIATE DUMP DEVICE ROUTINE. 00107000
  108. * 00108000
  109. * OPERATION SECTION CONTINUED BELOW FOR EACH DUMP DEVICE TYPE 00109000
  110. * 00110000
  111. * ERROR MESSAGES - 00111000
  112. * 00112000
  113. * nn:nn:nn DMKDMP908I SYSTEM FAILURE; CODE mmmccc PROCESSOR nn 00113000
  114. * DMKDMP905W SYSTEM DUMP FAILURE; PROGRAM CHECK 00114000
  115. * DMKDMP906W SYSTEM DUMP FAILURE; MACHINE CHECK, RUN SEREP 00115000
  116. * DMKDMP907W SYSTEM DUMP FAILURE; FATAL I/O ERROR 00116000
  117. * DMKDMP909W SYSTEM DUMP DEVICE; NOT-READY 00117000
  118. * DMKDMP918I SYSTEM DUMP FAILURE; STATUS NOT STORED FOR NON- 00117500
  119. * ABENDING PROCESSOR. 00117600
  120. * 00118000
  121. *. 00119000
  122. EJECT 00120000
  123. COPY OPTIONS 00121000
  124. COPY LOCAL 00122000
  125. SPACE 3 00123000
  126. DMKDMP START 00124000
  127. SPACE 00125000
  128. USING PSA,0 @V200820 00126000
  129. SPACE 00127000
  130. ENTRY DMKDMPDK,DMKDMPRC,DMKDMPTR @V200820 00128000
  131. ENTRY DMKDMPDV,DMKDMPAU @V407510 00129000
  132. ENTRY DMKDMPSF,DMKDMPSW @V200820 00130000
  133. ENTRY DMKDMPTD,DMKDMPDT,DMKDMPSD @V407510 00131000
  134. ENTRY DMKDMPMA,DMKDMPAA @V407510 00132000
  135. ENTRY DMKDMPSA @V5BC0AB 00132100
  136. SPACE 00133000
  137. EXTRN DMKOPRWT,DMKRIOPR,DMKRSPID,DMKSCNRD @V200820 00134000
  138. EXTRN DMKSYSRM,DMKSYSCK,DMKSYSRV @V200820 00135000
  139. EXTRN DMKSYSCH,DMKSCNRU @V304298 00136000
  140. EXTRN DMKPRGMC @V2B2638 00137000
  141. EXTRN DMKSYSVM,DMKRIODV,DMKSYSCS,DMKRSPRD @V407510 00138000
  142. EJECT 00139000
  143. DMKDMPDK DS 0H 00140000
  144. USING DMKDMPDK,R12 00141000
  145. USING DMKDMP+4096,R13 @VA01097 00142000
  146. LR R13,R12 SET 2ND BASE REGISTER @VA01097 00143000
  147. A R13,PAGESIZE CALCULATE 2ND BASE REG @V407510 00144000
  148. TS DMPLOCK TRY TO GET DUMP LOCK @V407510 00145000
  149. BNZ LOADWAIT ALREADY HELD, LOAD WAIT STATE @V407510 00146000
  150. SPACE 00147000
  151. STCK TODCLOCK SAVE TIME OF DAY CLOCK 00148000
  152. L R15,=A(DMKSYSCK) LEAVE TOD CLOCK VALUE HERE 00149000
  153. MVC 0(8,R15),TODCLOCK FOR WARM START ACCOUNTING 00150000
  154. STPT CPUTIMER SAVE CPU TIMER 00151000
  155. STCKC CLKCOMP SAVE TIME OF DAY CLOCK COMPARATOR 00152000
  156. STCTL C0,C15,CTLREGS SAVE CONTROL REGISTERS 00153000
  157. AIF (NOT &FLOATPT).NOFP1 00154000
  158. STD Y0,FPREGS SAVE FLOATING POINT REGISTERS 00155000
  159. STD Y2,FPREGS+8 ... 00156000
  160. STD Y4,FPREGS+16 ... 00157000
  161. STD Y6,FPREGS+24 ... 00158000
  162. .NOFP1 ANOP 00159000
  163. MVC SAVEPR(L'INTPRL+L'INTPR),INTPRL SAVE CODE @V4M0111 00160000
  164. MVC SAVEPGMN,PRNPSW SAVE PROGRAM NEW @V407510 00161000
  165. MVC SAVEPGMO,PROPSW SAVE PROGRAM OLD @V407510 00162000
  166. MVC PRNPSW,SPECPGMN SET UP NEW PGM NEW @V407510 00163000
  167. STAP PROCA STORE PROCESSOR ADDRESS @V4M0124 00164000
  168. STPX PREFRG ATTEMPT TO STORE PREFIX REG @V407510 00165000
  169. PREFSTOR DS 0H @V407510 00166000
  170. MVC PRNPSW,SAVEPGMN RESTORE PROGRAM NEW @V407510 00167000
  171. MVC PROPSW,SAVEPGMO RESTORE PROGRAM OLD @V407510 00168000
  172. MVC INTPRL(L'INTPRL+L'INTPR),SAVEPR RESTORE CODE @V4M0111 00169000
  173. MVC ABCODE,CPABEND SAVE ABEND CODE FOR @V407510 00170000
  174. * ABENDING PROCESSOR @V407510 00171000
  175. MVC GREGS(GRGLN),DUMPSAVE SAVE GENERAL REGISTERS @V407510 00172000
  176. * FOR ABENDING PROCESSOR @V407510 00173000
  177. L R6,=A(DMKSYSRM) GET REAL STORAGE SIZE @V407510 00174000
  178. L R6,0(R6) GET STORAGE SIZE @V407510 00175000
  179. L R7,=A(DMKSYSRV) GET SYSGENED STORAGE SIZE @V407510 00176000
  180. L R7,0(,R7) GET STORAG ESIZE @V407510 00177000
  181. CR R6,R7 REAL SIZE GREATER THAN SYSGENED? @V407510 00178000
  182. BL SIZEOK NO, USE REAL SIZE @V407510 00179000
  183. LR R6,R7 YES, USE SYSGEN SIZE @V407510 00180000
  184. SIZEOK DS 0H @V407510 00181000
  185. ST R6,STORSIZE SAVE STORAGE SIZE @V407510 00182000
  186. L R5,PREFRG GET VALUE STORED @V407510 00183000
  187. TM DMPSTAT,DMPUNI UNIPROCESSOR FOR SURE? @V4M0124 00184000
  188. BO DMP02 YES, BRANCH @V4M0124 00185000
  189. CLC DMKDMPMA,DMKDMPAA PROC ADDRESSES EQUAL? @V4M0124 00186000
  190. BE DMP02 YES, UNIPROCESSOR...BRANCH @V4M0124 00187000
  191. CLC PROCA,DMKDMPMA ON MAIN PROCESSOR? @V4M0124 00192000
  192. BNE DMPATTP NO, BRANCH @V4M0124 00193000
  193. MVC PREFRG,MAINPSA INSURE PREFRG ACCURATE @V4M0124 00194000
  194. MVC PROCA,DMKDMPMA SAVE PROCESSOR ADDRESS FOR @V407510 00195000
  195. * ABENDING PROCESSOR @V407510 00196000
  196. LA R4,RETRY SET UP LOOP CONTROL @V407510 00197000
  197. LOOP1 DS 0H @V407510 00198000
  198. SR R15,R15 CLEAR STATUS REGISTER @V407510 00199000
  199. LH R0,DMKDMPAA SIGNAL OTHER PROCESSOR @V407510 00200000
  200. LA R1,SIGSSS STOP AND STORE STATUS ORDER CODE @V407510 00201000
  201. SIGP R15,R0,0(R1) ISSUE SIGNAL @V407510 00202000
  202. BZ DMP01 SUCCESSFUL, BR TO COMMON CODE @V407510 00203000
  203. BCT R4,LOOP1 RETRY 256 TIMES @V407510 00204000
  204. BAL R4,DMPERR ISSUE MESSAGE @V407510 00205000
  205. B DMP01 BRANCH TO COMMON CODE @V407510 00206000
  206. DMPATTP DS 0H ATTATCHED PROCESSOR ABEND @V407510 00207000
  207. * STOP MAIN PROCESSOR @V407510 00208000
  208. MVC PREFRG,ATTPSA INSURE PREFRG ACCURATE @V4M0124 00209000
  209. MVC PROCA,DMKDMPAA SAVE PROCESSOR ADDRESS FOR @V407510 00210000
  210. * ABENDING PROCESSOR @V407510 00211000
  211. LA R4,RETRY SET UP LOOP CONTROL @V407510 00212000
  212. LOOP2 DS 0H @V407510 00213000
  213. SR R15,R15 CLEAR STATUS REGISTER @V407510 00214000
  214. LH R0,DMKDMPMA SIGNAL OTHER PROCESSOR @V407510 00215000
  215. LA R1,SIGSSS STOP AND STORE STATUS ORDER CODE @V407510 00216000
  216. SIGP R15,R0,0(R1) ISSUE SIGNAL @V407510 00217000
  217. BZ SIGSENS SUCCESSFUL, ISSUE SENSE @V4M0127 00218000
  218. BCT R4,LOOP2 RETRY 256 TIMES @V407510 00219000
  219. BAL R4,DMPERR ISSUE MESSAGE @V407510 00220000
  220. SIGSENS DS 0H @V4M0127 00221000
  221. SR R15,R15 CLEAR STATUS REGISTER @V4M0127 00222000
  222. LH R0,DMKDMPMA SIGNAL OTHER PROCESSOR 00223000
  223. LA R1,SIGSENSE SENSE ORDER CODE @V4M0127 00224000
  224. SIGP R15,R0,0(R1) SIGNAL SENSE @V4M0127 00225000
  225. BC PROCBUSY,SIGSENS SIGNAL UNTIL NOT BUSY @V4M0127 00226000
  226. SIGRSRT DS 0H @V4M0127 00227000
  227. L R5,PREFRG GET PREFIX REG FOR ATTACHED @V407510 00228000
  228. * PROCESSOR @V407510 00229000
  229. STM R0,R15,DUMPSAVE-PSA(R5) STORE REGS IN @V407510 00230000
  230. * ABSOLUTE ZERO @V407510 00231000
  231. L R5,MAINPSA GET PREFIX REG FOR MAIN @V407510 00232000
  232. * PROCESSOR @V407510 00233000
  233. MVC RSRTNPSW-PSA(,R5),RSTPSW SET UP RESTART PSW @V407510 00234000
  234. LA R4,RETRY SET UP LOOP CONTROL @V407510 00235000
  235. LOOP3 DS 0H @V407510 00236000
  236. SR R15,R15 CLEAR STATUS REGISTER @V407510 00237000
  237. LH R0,DMKDMPMA SIGNAL OTHER PROCESSOR @V407510 00238000
  238. LA R1,SIGREST RESTART ORDER CODE @V407510 00239000
  239. SIGP R15,R0,0(R1) ISSUE SIGNAL @V407510 00240000
  240. BZ SIGPSTOP SUCCESSFUL, SIGNAL SELF TO STOP @V407510 00241000
  241. BCT R4,LOOP3 RETRY 256 TIMES @V407510 00242000
  242. B LOADWAIT UNSUCCESSFUL, LOAD WAIT STATE @V407510 00243000
  243. SIGPSTOP DS 0H @V407510 00244000
  244. SR R15,R15 CLEAR STATUS REGISTER @V407510 00245000
  245. LH R0,DMKDMPAA SIGNAL SELF @V407510 00246000
  246. LA R1,SIGSTOP STOP ORDER CODE @V407510 00247000
  247. SIGP R15,R0,0(R1) ISSUE SIGNAL @V407510 00248000
  248. B LOADWAIT UNSUCCESSFUL, LOAD WAIT STATE @V407510 00249000
  249. DMPRST DS 0H RESTART ON MAIN PROCESSOR @V407510 00250000
  250. DROP R12,R13 DROP ORIGINAL BASE REGS @V4M0105 00251000
  251. * NO ADDRESSABILITY UNTIL R12 & R13 RELOADED @V407510 00252000
  252. BALR R5,0 GET TEMPORARY BASE REG @V407510 00253000
  253. USING *,R5 TEMPORARY ADDRESSABILITY @V407510 00254000
  254. L R5,MAINPSA GET MAIN PSA ADDRESS @V407510 00255000
  255. DROP R5 END TEMPORARY ADDRESSABILITY @V407510 00256000
  256. USING DMKDMP,R12 RESET ORIGINAL ADDRESSABILITY @V4M0105 00257000
  257. USING DMKDMP+PAGE,R13 @V4M0105 00258000
  258. * NORMAL ADDRESSABILITY WHEN R12 & R13 RELOADED @V407510 00259000
  259. LM R0,R15,DUMPSAVE-PSA(R5) RESTORE REGS FOR @V407510 00260000
  260. * RESTART @V407510 00261000
  261. DMP01 DS 0H COMMON DUMP PROCESSING @V407510 00262000
  262. * ON MAIN PROCESSOR @V407510 00263000
  263. SPX ALLZEROS SET PREFIX REG TO ZERO @V407510 00264000
  264. * USING ABSOLUTE 0 AS PSA @V407510 00265000
  265. * MOVE STATUS INFORMATION FOR @V407510 00266000
  266. * NON-ABENDING PROCESSOR TO @V407510 00267000
  267. * ITS PSA @V407510 00268000
  268. L R5,MAINPSA GET MAIN PSA ADDRESS @V407510 00269000
  269. C R5,PREFRG ABENDED ON MAIN? @V407510 00270000
  270. BNE DMP0150 NO, PUT STATUS INFO INTO MAIN @V407510 00271000
  271. L R5,ATTPSA YES, PUT STATUS INFO INTO ATT @V407510 00272000
  272. DMP0150 DS 0H R5 HAS ADDR OF OTHER PSA @V407510 00273000
  273. * PROCESSOR (NON-ABENDING) PSA @V407510 00274000
  274. * STOP AND STORE STATUS SIGNAL @V407510 00275000
  275. * STORES INFORMATION IN ABSOLUTE @V407510 00276000
  276. * ZERO, SO STATUS INFORMATION @V407510 00277000
  277. * WILL BE MOVED TO PSA OF @V407510 00278000
  278. * NON-ABENDING PROCESSOR @V407510 00279000
  279. MVC CPULOG+SSCLK-PSA(LNTIMER,R5),CPULOG+SSCLK @V407510 00280000
  280. * MOVE CLOCKS STORED @V407510 00281000
  281. * TO OWN PSA @V407510 00282000
  282. MVC FXDLOG-PSA(LNLOG,R5),FXDLOG @V407510 00283000
  283. * MOVE PSW, PREFIX REG, ETC TO 00284000
  284. * OWN PSA @V407510 00285000
  285. MVC FPRLOG-PSA(LNREGS,R5),FPRLOG @V407510 00286000
  286. * MOVE FPREGS, GPREGS, & CREGS TO @V407510 00287000
  287. * OWN PSA @V407510 00288000
  288. DMP02 DS 0H @V407510 00289000
  289. MVC LOWCORE(LCLN),PSA SAVE FIRST 256 BYTES OF @V407510 00290000
  290. * LOW CORE @V407510 00291000
  291. MVC PRNPSW(IONPSW+4-PRNPSW),DMPPSWS @V407510 00292000
  292. * ARRANGE NEW PSWS @V407510 00293000
  293. LCTL C14,C15,DISABLMC DISABLE SOFT MACHINE CHECKS 00294000
  294. LCTL C2,C2,ALLONES RE-ENABLE CHANNEL 0 @V407510 00295000
  295. CLC =C'CPCP',CPID WARM MACHINE ?? 00296000
  296. BE NOTCOLD YES - @VA07234 00297000
  297. MVC TODATE,ALLZEROS ZERO 'TODATE' AREA @V407510 00298000
  298. MVC DMKDMPTD,ALLZEROS ZERO 'TODATE' AREA @V407510 00299000
  299. OI DMKDMPSW,ALL FORCE FULL DUMP @VA01097 00300000
  300. MVC CPID,=C'COLD' INDICATE COLD MACHINE 00301000
  301. NOTCOLD DS 0H CONTINUE @VA07234 00302000
  302. SLR R1,R1 00303000
  303. IC R1,ABCODENU GET ABEND CODE DIGIT @V407510 00304000
  304. CVD R1,TEMPAD CONVERT TO DECIMAL 00305000
  305. UNPK DMPSCOD+3(3),TEMPAD+6(2) UNPACK 00306000
  306. OI DMPSCOD+5,X'F0' MAKE UP FOR HARDWARE 00307000
  307. MVC DMPSCOD(NAMELN),ABCODEMD GET MODULE NAME @V407510 00308000
  308. LM R0,R1,TODCLOCK GET TIME OF CRASH 00309000
  309. SL R1,TODATE2W MINUS MIDNIGHT @V407510 00310000
  310. BC 11,*+8 NO OFLOW 00311000
  311. SL R0,=F'1' ADJUST 00312000
  312. SL R0,DMKDMPTD FIRST WORD @V407510 00313000
  313. CL R0,=X'000141DD' GREATER THAN MAX FOR ONE DAY @VA01097 00314000
  314. BH DMP03 YES, --'TODATE' INVALID @V407510 00315000
  315. SRDL R0,12 TIME IN MICROSECONDS 00316000
  316. D R0,=F'1000000' CONVERT TO SECONDS 00317000
  317. SR R0,R0 FORGET REMAINDER 00318000
  318. D R0,=F'3600' GET HOURS 00319000
  319. CVD R1,TEMPAD IN DEC 00320000
  320. UNPK DMPTIME(4),TEMPAD+6(3) CONVERT 00321000
  321. MVI DMPTIME+2,C':' EDIT 00322000
  322. LR R1,R0 GET SECONDS REMAINING 00323000
  323. SR R0,R0 CLEAR 00324000
  324. D R0,SECPMIN GET MINUTES @V407510 00325000
  325. CVD R1,TEMPAD CONVERT TO DEC 00326000
  326. UNPK DMPTIME+3(4),TEMPAD+6(3) CONVERT 00327000
  327. MVI DMPTIME+5,C':' EDIT 00328000
  328. CVD R0,TEMPAD GET SECONDS 00329000
  329. UNPK DMPTIME+6(2),TEMPAD+6(2) CONVERT 00330000
  330. OI DMPTIME+7,X'F0' SET ZONE 00331000
  331. DMP03 DS 0H CONVERT PROCESSOR ADDRESS @V407510 00332000
  332. LH R1,PROCA GET PROCESSOR ADDRESS FOR @V407510 00333000
  333. * ABENDING PROCESSOR @V407510 00334000
  334. CVD R1,TEMPAD CONVERT TO DECIMAL FORM @V407510 00335000
  335. UNPK DMPROC(L'PROCA),TEMPADLO(L'PROCA) @V407510 00336000
  336. * CONVERT TWO SIGNIFICANT DIGITS @V407510 00337000
  337. OI DMPROCL,ZONE SET ZONE FOR LAST DIGIT @V407510 00338000
  338. DMPMSG EQU * HERE TO SEND MESSAGE TO CONSOLE @VA01097 00339000
  339. L R0,SFCCCW GET COUNT AND ADDRESS OF MSG @V200735 00340000
  340. BAL R9,TYPLINE TYPE LINE ON SYSTEM CONSOLE @V200735 00341000
  341. L R8,=A(DMKPRGMC) GET ADDR OF MONITOR COMM @V2B2638 00342000
  342. MVC MONCAD,0(R8) SAVE IT FOR LATER @V2B2638 00343000
  343. L R1,DMKDMPDV GET DUMP DEVICE ADDRESS (CCU) @V407438 00344000
  344. LTR R1,R1 IS THERE ONE? @V407438 00345000
  345. BZ DEFAULT YES 00346000
  346. USING RDEVBLOK,R8 00347000
  347. LM R9,R10,BALR2 SAV LOW CORE VALUES USED @VA01876 00348000
  348. CALL DMKSCNRU FIND RBLOKS @V407438 00349000
  349. BNZ DEFAULT THIS SHOULDN'T HAPPEN @V407438 00350000
  350. STM R9,R10,BALR2 RESTORE LOW CORE AS IT WAS @VA01876 00351000
  351. LR R15,R1 AND SAVE IT IN R15 @VA01081 00352000
  352. CLI RDEVTYPC,CLASTAPE TAPE DEVICE ? 00353000
  353. BE DMPTAPE YES 00354000
  354. CLI RDEVTYPC,CLASURO UNIT RECORD OUTPUT DEVICE ? 00355000
  355. BNE TSTDASD NO 00356000
  356. TM RDEVTYPE,TYPPRT PRINTER TYPE DEVICE ? 00357000
  357. BO DMPPRT YES 00358000
  358. B DEFAULT 00359000
  359. TSTDASD CLI RDEVTYPC,CLASDASD DASD DEVICE ? 00360000
  360. BE DMPDASD YES 00361000
  361. DEFAULT L R15,=A(DMKRIOPR) GET PRINTER TABLE IN RIO 00362000
  362. L R9,0(,R15) GET NUMBER OF PRINTERS DEFINED IN SYSTEM 00363000
  363. LTR R9,R9 ZERO ? 00364000
  364. BNZ *+8 NO 00365000
  365. BAL R14,LOADWAIT ERROR -- 00366000
  366. LH R8,4(,R15) GET RDEVBLOK DISPLACEMENT FOR 1ST PRINTER 00367000
  367. SLL R8,3(0) CONVERT TO BYTE INDEX @V200820 00368000
  368. AL R8,DMPRIODV FORM RDEVBLOK ADDRESS @V407510 00369000
  369. LH R15,6(,R15) GET FULL DEVICE ADDRESS 00370000
  370. B DMPPRT 00371000
  371. EJECT 00372000
  372. *. 00373000
  373. * OPERATION OF DASD DUMP ROUTINE - 00374000
  374. * 00375000
  375. * 1. SAVE STORAGE KEYS OF PAGES 0 THRU 3. 00376000
  376. * 2. WRITE PAGES 0 THRU 3 TO DUMP FILE RECORDS 5 THRU 8. 00377000
  377. * 3. ZERO PAGES 1 THRU 3. 00378000
  378. * NOTE: AT THIS POINT PAGE 1 IS THE DUMP INFORMATION RECORD 00379000
  379. * (DMPINREC), AND PAGES 2 AND 3 ARE THE DUMP KEY 00380000
  380. * RECORDS (DMPKYREC). 00381000
  381. * 4. MOVE REGISTERS, CLOCKS, AND SAVED LOW CORE TO DMPINREC. 00382000
  382. * 5. WRITE PAGES 4 THROUGH THE END OF MEMORY TO THE DUMP FILE 00383000
  383. * SAVING STORAGE KEYS FOR EACH 2K BLOCK IN THE DMPKYREC. 00384000
  384. * IF THE END OF MEMORY IS NOT ON A 4K BOUNDRY TURN THE 00385000
  385. * HALFPAGE FLAG ON IN DMPINREC TO INDICATE THAT THE 00386000
  386. * LAST RECORD IN THE DUMP FILE REPRESENTS 2K. 00387000
  387. * 6. WRITE PAGES 1 THRU 3 TO DUMP FILE RECORDS 2 THRU 4. 00388000
  388. * 7. SET ENDING RECORD NUMBER AND SYSTEM FILE NUMBER IN THE 00389000
  389. * DUMP FILE SFBLOK. 00390000
  390. * 8. CHAIN DUMP FILE RECBLOKS ONTO RDEVBLOK RECBLOK CHAIN. 00391000
  391. * 9. CHAIN DUMP FILE SFBLOK ONTO SYSTEM READER CHAIN. 00392000
  392. * IF THE MONITOR WAS ACTIVE THEN ATTEMPT TO WRITE 00393000
  393. * A TAPE MARK AND REWIND/UNLOAD THE TAPE. 00394000
  394. * 10. RE-IPL SYSTEM. 00395000
  395. * 00396000
  396. *. 00397000
  397. SPACE 00398000
  398. DMPDASD EQU * HERE TO WRITE DUMP TO A DASD DEVICE 00399000
  399. LA R5,32 GET NUMBER OF RECS/CYL FOR 2314 00400000
  400. TM RDEVTYPE,TYP2314 2314 ? 00401000
  401. BO TBLSET YES 00402000
  402. LA R5,57 GET NUMBER OF RECS/CYL FOR 3330 00403000
  403. TM RDEVTYPE,TYP3330 3330 ? 00404000
  404. BO TBLSET YES 00405000
  405. LA R5,120 GET NUMBER OF RECS/CYL FOR 3350 @V304498 00406000
  406. CLI RDEVTYPE,TYP3350 3350 ? @V304498 00407000
  407. BE TBLSET YES @V304498 00408000
  408. LA R5,96 Get number of recs/cyl for 3375 HRC106DK 00408100
  409. CLI RDEVTYPE,TYP3375 3375 ? HRC106DK 00408200
  410. BE TBLSET Yes HRC106DK 00408300
  411. LA R5,150 Get number of recs/cyl for 3380 HRC106DK 00408400
  412. CLI RDEVTYPE,TYP3380 3380 ? HRC106DK 00408500
  413. BE TBLSET Yes HRC106DK 00408600
  414. LA R5,24 RECS/CYL FOR 2305 AND 3340 @V2A2029 00409000
  415. TBLSET L R3,=A(3*4096+2048) GET X'3800' 00410000
  416. LA R10,8 GET CONSTANT OF 8 00411000
  417. NXTKEY ISK R9,R3 GET KEYS OF INITIAL 4 PAGES 00412000
  418. STC R9,SAVKEY-1(R10) SAVE KEY 00413000
  419. SL R3,=F'2048' GET NEXT 2K BLOCK 00414000
  420. BCT R10,NXTKEY 00415000
  421. L R11,DMKDMPRC GET CHAIN OF RECBLOKS 00416000
  422. USING RECBLOK,R11 00417000
  423. LA R9,DMPMAP-(DMPPGMAP-DMPINREC) TEMP DSECT ADDRESS@VW01525 00418000
  424. USING DMPINREC,R9 00419000
  425. MVC CYL(2),RECCYL SET INITIAL CYLINDER NUMBER 00420000
  426. LA R4,1 GET CONSTANT OF 1 00421000
  427. LA R1,4 WRITE 4 PAGES OUT ONTO DISK 00422000
  428. SLR R3,R3 STARTING WITH PAGE 0 00423000
  429. LA R2,5 START WITH RECORD 5 00424000
  430. NXTPAG TM DMKDMPSW,ALL ALL PAGES TO BE DUMPED ? @VW01525 00425000
  431. BO NXTPAG1 YES -- @VW01525 00426000
  432. LR R7,R3 GET THIS PAGE NUMBER @VW01525 00427000
  433. SRL R7,8 *16 @VW01525 00428000
  434. AL R7,DMPCORET ADDR START OF CORTABLE @V407510 00429000
  435. USING CORTABLE,R7 @VW01525 00430000
  436. CLC CORFPNT,=C'*VR*' IS IT V=R PAGE ? @VW01525 00431000
  437. BE SKIPPAG YES - SKIP THIS PAGE @VW01525 00432000
  438. TM CORFLAG,CORCP CP NUCLEUS PAGE ?? @VW01525 00433000
  439. BO NXTPAG1 YES, DUMP IT @VW01525 00434000
  440. CLC CORFPNT,=C'FREE' FREE STORAGE PAGE ?? @VW01525 00435000
  441. BNE SKIPPAG NO, SKIP IT @VW01525 00436000
  442. NXTPAG1 BAL R14,DSKWTRC1 WRITE OUT PAGE @VW01525 00437000
  443. ALR R2,R4 GET NEXT RECORD @VW01525 00438000
  444. SKIPPAG DS 0H @V407510 00439000
  445. AL R3,PAGESIZE GET NEXT PAGE ADDRESS @V407510 00440000
  446. BCT R1,NXTPAG BRANCH IF NOT 4 PAGES @VW01525 00441000
  447. DROP R7 @VW01525 00442000
  448. L R0,PAGESIZE ADDRESS OF PAGE 1 @V407510 00443000
  449. L R1,=A(3*4096) CLEAR 3 PAGES 00444000
  450. SLR R7,R7 USING ZERO PAD CHARACTER 00445000
  451. MVCL R0,R6 ... 00446000
  452. L R9,PAGESIZE ADDRESS OF PAGE 1 @V407510 00447000
  453. MVC DMPPGMAP(1),DMPMAP MOVE BIT MAP @VW01525 00448000
  454. MVC DMPGPRS(REGLN),GREGS MOVE GPRS & CRS INTO @V407510 00449000
  455. * DMPINREC @V407510 00450000
  456. AIF (NOT &FLOATPT).NOFP2 00451000
  457. MVC DMPFPRS(4*8),FPREGS MOVE FPRS INTO INFO REC 00452000
  458. .NOFP2 ANOP 00453000
  459. MVC DMPLCORE(256),LOWCORE MOVE LOW CORE INTO INFO REC 00454000
  460. MVC DMPTODCK(3*8),TODCLOCK MOVE CLOCKS TO INFO REC 00455000
  461. L R7,=A(DMKSYSRV) GET GENERATED STORAGE SIZE 00456000
  462. L R7,0(R7) .. 00457000
  463. ST R7,DMPSYSRV SAVE FOR VDUMP 00458000
  464. L R7,=A(DMKSYSRM) POINT TO REAL STORAGE SIZE @V67CAH7 00458200
  465. L R7,0(R7) GET REAL STOR VALUE @V67CAH7 00458400
  466. ST R7,DMPSYSRM SAVE IT IN DMPINREC @V67CAH7 00458600
  467. MVC DMPCPUID,CPUID SAVE CPU'S ID IN DMPINREC @V67CAH7 00458800
  468. MVC DMPPROCA,PROCA MOVE PROCESSOR ADDRESS TO @V407510 00459000
  469. * DMPINREC @V407510 00460000
  470. MVC DMPPRFRG,PREFRG MOVE PREFIX REG @V4M0115 00461000
  471. MVC DMPABEND,ABCODE MOVE ABEND CODE @V4M0115 00462000
  472. LR R10,R9 GET PTR TO PAGE 1 00463000
  473. AL R10,PAGESIZE ADDR OF PAGE 2 @V407510 00464000
  474. USING DMPKYREC,R10 00465000
  475. MVC DMPKEY(8),SAVKEY MOVE KEYS FOR PAGE 0-3 INTO INFO REC 00466000
  476. LR R1,R3 CURRENT PAGE ADDRESS @VW01525 00467000
  477. SRL R1,11 GET PAGE NUMBER, THEN TIMES TWO @VW01525 00468000
  478. LA R10,DMPKEY(R1) GET PTR TO NEXT KEY @VW01525 00469000
  479. DROP R10 00470000
  480. L R1,=F'2048' GET CONSTANT OF 2K 00471000
  481. NXTPAG3 TM DMKDMPSW,ALL ALL PAGES TO BE DUMPED ? @VW01525 00472000
  482. BO NXTPAG6 YES, DUMP ALL @VW01525 00473000
  483. LR R7,R3 GET THIS PAGE NUMBER @VW01525 00474000
  484. SRL R7,8 PAGE NUMBER * 16 @VW01525 00475000
  485. AL R7,DMPCORET ADDR START OF CORTABLE @V407510 00476000
  486. USING CORTABLE,R7 @VW01525 00477000
  487. CLC CORFPNT,=C'*VR*' IS IT V=R PAGE ? @VW01525 00478000
  488. BE NOTCP YES, SKIP IT 00479000
  489. TM CORFLAG,CORCP DOES PAGE BELONG TO CP NUCLEUS ? @VW01525 00480000
  490. BO NXTPAG6 YES, DUMP IT @VW01525 00481000
  491. CLC CORFPNT,=C'FREE' FREE STORAGE PAGE ? @VW01525 00482000
  492. BE NXTPAG6 YES, DUMP IT @VW01525 00483000
  493. CLC CORFPNT,DMPSYSVM IS IT PART OF THE PAGEABLE @V407510 00484000
  494. * NUCLEUS? @V407510 00485000
  495. BE NXTPAG6 YES @V408246 00486000
  496. NOTCP DS 0H @V407510 00487000
  497. AL R3,PAGESIZE GET NEXT PAGE ADDRESS @V407510 00488000
  498. LA R10,2(,R10) BUMP STORAGE KEY PRT @VW01525 00489000
  499. CL R3,STORSIZE AT END OT STORAGE ? @VW01525 00490000
  500. BNL DSKEND YES - @VW01525 00491000
  501. DROP R7 @VW01525 00492000
  502. B NXTPAG3 GET NEXT STORAGE PAGE @VW01525 00493000
  503. NXTPAG6 LA R7,2048(,R3) CHECK FOR SHORT PAGE @VW01525 00494000
  504. CL R7,STORSIZE ... @VA01097 00495000
  505. BL NXTPAG5 NO 00496000
  506. STH R1,DISKWRIT+6 CHANGE COUNT TO 2K 00497000
  507. OI DMPFLAG,HALFPAGE INDICATE THAT LAST RECORD = 2K 00498000
  508. NXTPAG5 BAL R14,DSKWTRC1 WRITE OUT PAGE 00499000
  509. ISK R0,R3 GET STORAGE KEY FOR THIS 2K BLOCK 00500000
  510. STC R0,0(,R10) SAVE IT 00501000
  511. ALR R3,R1 GET NEXT 2K BLOCK 00502000
  512. CL R3,STORSIZE AT END OF STORAGE ? @VA01097 00503000
  513. BNL DSKEND YES 00504000
  514. ISK R0,R3 GET STORAGE FOR THIS 2K BLOCK 00505000
  515. STC R0,1(,R10) SAVE 00506000
  516. LA R10,2(,R10) BUMP STORAGE KEY PTR 00507000
  517. ALR R3,R1 AND ADDRESS PTR 00508000
  518. CL R3,STORSIZE AT END OF STORAGE ?? @VA01097 00509000
  519. BNL DSKEND YES, FINISH UP 00510000
  520. NXTPAG2 BXLE R2,R4,NXTPAG3 00511000
  521. L R11,RECPNT GET NEXT RECBLOK 00512000
  522. MVC CYL(2),RECCYL GET NEXT CYLINDER 00513000
  523. LR R2,R4 RESTART WITH RECORD 1 00514000
  524. B NXTPAG3 00515000
  525. SPACE 1 00516000
  526. DSKEND EQU * 00517000
  527. ST R11,TEMPAD SAVE ADDRESS OF LAST RECBLOK PROCESSED 00518000
  528. STH R9,DISKWRIT+6 CHANGE CHANNEL PROGRAM COUNT BACK TO 4K 00519000
  529. L R11,DMKDMPRC GET START OF RECBLOK CHAIN 00520000
  530. MVC CYL(2),RECCYL GET STARTING CYLINDER 00521000
  531. LR R3,R9 WRITE OUT INFO REC, AND KEY RECS 00522000
  532. LA R1,3 GET CONSTANT OF 3 00523000
  533. LA R2,2 START WITH RECORD 2 00524000
  534. NXTPAG4 BAL R14,DSKWTRC2 WRITE OUT REC 00525000
  535. AL R3,PAGESIZE BUMP PAGE ADDRESS @V407510 00526000
  536. ALR R2,R4 BUMP RECORD NUMBER 00527000
  537. BCT R1,NXTPAG4 00528000
  538. SPACE 1 00529000
  539. LA R10,DMKDMPSF GET DUMP FILE SPOOL FILE BLOCK 00530000
  540. USING SFBLOK,R10 00531000
  541. L R1,TEMPAD GET LAST RECBLOK PROCESSED 00532000
  542. IC R3,SFBSTART+3 GET OWNED LIST DISPLACEMENT 00533000
  543. ICM R3,B'0010',RECUSED-RECBLOK(R1) GET LAST RECORD USED 00534000
  544. ICM R3,B'1100',RECCYL-RECBLOK(R1) GET CURRENT CYLINDER 00535000
  545. ST R3,SFBLAST SET LAST CCRD ADDRESS 00536000
  546. L R3,=A(DMKRSPID) GET PTR TO SYSTEM FILE NUMBER 00537000
  547. LH R2,0(,R3) GET SYSTEM FILE NUMBER 00538000
  548. STH R2,SFBFILID PLACE IN DUMP FILE SFBLOK 00539000
  549. MVI SFBTYPE,TYP1403 PRINTER FILE TYPE @V200930 00540000
  550. MVC SFBDATE,DMKDMPDT SET DATE OF CRASH @V407510 00541000
  551. MVC SFBTIME,DMPTIME SET TIME 00542000
  552. MVC SFBDIST(6),DMPSCOD MOVE CP ABEND CODE TO @VA14457 00542300
  553. * SFBLOK DISTRIBUTION FIELD 00542600
  554. LA R2,1(,R2) BUMP (IGNORE OVERFLOW) 00543000
  555. STH R2,0(,R3) REPLACE FOR DMKCKP 00544000
  556. LA R2,RDEVRECS GET PTR TO SPOOL RECBLOK CHAIN 00545000
  557. RECSRCH LR R1,R2 00546000
  558. L R2,RECPNT-RECBLOK(,R1) GET FOWARD PTR 00547000
  559. RECTST LTR R2,R2 ZERO ? 00548000
  560. BNZ RECSRCH NO 00549000
  561. ST R2,DMKDMPDV PREVENT DUPLICATE DUMP FILES @V304298 00550000
  562. ST R11,0(,R1) CHAIN DUMP RECBLOK CHAIN TO CURRENT CHAIN 00551000
  563. L R2,DMPRSPRD GET PTR TO RDR SFBLOK CHAIN @V407510 00552000
  564. L R3,0(,R2) GET RDR SFBLOK CHAIN 00553000
  565. ST R10,0(,R2) CHAIN DUMP FILE SFBLOK 00554000
  566. ST R3,SFBPNT ... 00555000
  567. SPACE 2 00556000
  568. * NOW CHECKPOINT THE DUMP FILE SPOOL BLOCK 00557000
  569. * WE WILL USE PAGE 1 IN REAL CORE TO READ AND WRITE 00558000
  570. * FROM THE CHECKPOINT CYLINDER 00559000
  571. MVI DISKWRIT,X'06' CHANGE IT TO A READ @V304298 00560000
  572. MVC WRITADDR(3),AL3PAGSZ READ INTO PAGE 1 @V407510 00561000
  573. MVC WRITLEN(2),HWPAGSZ 4096 BYTES TO READ @V407510 00562000
  574. L R14,=A(DMKSYSCH) ADDR OF 1ST CHECKPOINT CYLINDER@V304298 00563000
  575. MVC CYL(2),0(R14) MOVE IT IN @V304298 00564000
  576. CKSBEGIN DS 0H @V304298 00565000
  577. LH R1,4(,R14) Get CUU of CKP area volume HRC075DK 00566000
  578. CALL DMKSCNRU FIND ITS RDEVBLOK @V304298 00567000
  579. LA R14,57 ASSUME A 3330 @V304298 00568000
  580. TM RDEVTYPE,TYP3330 IS IT? @V304298 00569000
  581. BO CKPA1 XFER IF SO @V304298 00570000
  582. LA R14,120 ASSUME A 3350 @VA09846 00571100
  583. CLI RDEVTYPE,TYP3350 IS IT ? @V304498 00572000
  584. BE CKPA1 XFER IF SO @V304498 00573000
  585. LA R14,96 Assume a 3375 HRC106DK 00573100
  586. CLI RDEVTYPE,TYP3375 Is it ? HRC106DK 00573200
  587. BE CKPA1 Xfer if so HRC106DK 00573300
  588. LA R14,150 Assume a 3380 HRC106DK 00573400
  589. CLI RDEVTYPE,TYP3380 Is it ? HRC106DK 00573500
  590. BE CKPA1 Xfer if so HRC106DK 00573600
  591. LA R14,32 ASSUME IT IS A 2314 @V304298 00574000
  592. TM RDEVTYPE,TYP2314 IS IT? @V304298 00575000
  593. BO CKPA1 XFER IF SO @V304298 00576000
  594. LA R14,24 THEN IT IS A 2305 OR 3340 @V304298 00577000
  595. CKPA1 DS 0H @V304298 00578000
  596. L R15,=A(DMKSYSCH) -> CKP area cyls info HRC075DK 00579000
  597. LH R15,4(,R15) Get CUU of CKP area volume HRC075DK 00579500
  598. LA R5,1 START AT PAGE 1 @V304298 00580000
  599. CKPLOOP DS 0H @V407510 00581000
  600. L R4,PAGESIZE START OF PAGE @V407510 00582000
  601. LA R9,36 SFBLOKS PER CHECKPOINT PAGE @V304298 00583000
  602. LA R3,768 SET UP FOR A 3330 OR 2305 @V304298 00584000
  603. CLI RDEVTYPE,TYP3350 IS IT A 3350? @V304498 00585000
  604. BNE CKPA14 XFER IF NOT @V304498 00586000
  605. LA R3,1024 DIVIDE CONSTANT FOR 3350 @V304498 00587000
  606. CKPA14 EQU * TEST NEXT DASD DEVICE @V304498 00588000
  607. CLI RDEVTYPE,TYP3375 Is it a 3375? HRC106DK 00588100
  608. BNE CKPA75 Xfer if not HRC106DK 00588200
  609. LA R3,256*8 Divide constant for 3375 HRC106DK 00588300
  610. CKPA75 CLI RDEVTYPE,TYP3380 Is it a 3380? HRC106DK 00588400
  611. BNE CKPA80 Xfer if not HRC106DK 00588500
  612. LA R3,256*10 Divide constant for 3380 HRC106DK 00588600
  613. CKPA80 EQU * Test next DASD device HRC106DK 00588700
  614. TM RDEVTYPE,TYP2314 IS IT A 2314? @V304298 00589000
  615. BNO *+8 XFER IF NOT @V304298 00590000
  616. LA R3,409 SET FOR A 2314 @V304298 00591000
  617. TM RDEVTYPE,TYP3340 IS IT A 3340 ? @V304298 00592000
  618. BNO *+8 XFER IF NOT @V304298 00593000
  619. LA R3,512 SET UP FOR A 3340 @V304298 00594000
  620. LR R1,R5 PAGE NUMBER @V304298 00595000
  621. BCTR R1,0 RELATIVE TO ZERO @V304298 00596000
  622. SLL R1,8 MULTIPLY BY 256 @V304298 00597000
  623. SR R0,R0 CLEAR FOR DIVIDE @V304298 00598000
  624. DR R0,R3 GET THE HEAD NUMBER @V304298 00599000
  625. STH R1,HHR STORE IT IN SEEK ADDRESS @V304298 00600000
  626. STC R5,HHR+2 RECORD NUMBER @V304298 00601000
  627. CKSB4SIO ST R14,ALTSAVE SAVE OUR R14 @V56BDA8 00602000
  628. BAL R14,DSKIOSUB DO THE DISK IO @V56BDA8 00602010
  629. L R14,ALTSAVE RESTORE R14 @V56BDA8 00602020
  630. SPACE 2 00635000
  631. CKSINLP CLI DISKWRIT,X'05' IS IT A WRITE ? @V304298 00636000
  632. BE CKSEND IF IT IS, WE ARE DONE @V304298 00637000
  633. CKSINLP1 DS 0H @V407510 00638000
  634. CLC 0(4,R4),ALLONES EMPTY SLOT? @V407510 00639000
  635. BE GOTCKS XFER IF SO @V304298 00640000
  636. LA R4,SFBSIZE*8(R4) POINT TO NEXT SLOT @V304298 00641000
  637. BCT R9,CKSINLP1 SEE IF IT'S EMPTY @V304298 00642000
  638. LA R5,1(,R5) NEXT PAGE @V304298 00643000
  639. BCT R14,CKPLOOP TRY IT FOR SIZE @V304298 00644000
  640. L R14,=A(DMKSYSCH) CHECKPOINT CYLINDER RANGE @V304298 00645000
  641. LH R1,CYL LOAD PRESENT CYLINDER @V304298 00646000
  642. LA R1,1(,R1) GO TO NEXT ONE @V304298 00647000
  643. STH R1,CYL GET NEW ONE IN SEEK ADDRESS @V304298 00648000
  644. CH R1,2(,R14) PAST END OF CHECKPOINT CYLS? @V304298 00649000
  645. BNH CKSBEGIN XFER IF NOT @V304298 00650000
  646. B DMPIOERR COULDN'T FIND AN EMPTY SLOT @V304298 00651000
  647. * CALL IT A DUMP ERROR 00652000
  648. SPACE 00653000
  649. GOTCKS MVI DISKWRIT,X'05' MAKE IT A WRITE CCW @V304298 00654000
  650. MVC 0(SFBSIZE*8,R4),SFBLOK CHECKPOINT THE DUMP FILE @V304298 00655000
  651. MVI 0(R4),RDRCHN+CHGSFB SET NECESSARY FLAGS @V304298 00656000
  652. B CKSB4SIO WRITE OUT THE PAGE @V304298 00657000
  653. SPACE 2 00658000
  654. CKSEND DS 0H @V304298 00659000
  655. CLC CPID(4),=C'CPCP' HOT MACHINE? @V304298 00660000
  656. MVC CPID(4),=C'WARM' INDICATE AUTOMATIC RESTART @V2B2638 00661000
  657. BNE RESTART NOPE, GO CHKPT/RESTART THE SYS @V2B2638 00662000
  658. B MONSTOP YA, HOT MACH, STOP MON IF ACTIVE @V2B2638 00663000
  659. EJECT 00664000
  660. DSKWTRC1 EQU * HERE TO WRITE RECORDS TO DUMP FILE 00665000
  661. L R7,DMPNOREC GET NUMBER OF RECORDS IN DUMP FILE 00666000
  662. ALR R7,R4 BUMP BY 1 00667000
  663. ST R7,DMPNOREC REPLACE 00668000
  664. LR R7,R3 GET CURRENT PAGE ADDRESS 00669000
  665. SRL R7,12 00670000
  666. SLR R6,R6 CLEAR FOR DIVIDE 00671000
  667. D R6,BITSPB DIVIDE BY 8..BITS/BYTE @V407510 00672000
  668. LA R7,DMPPGMAP(R7) GET PAGE BIT MAP BYTE 00673000
  669. IC R6,ALOCBIT(R6) GET MASK BYTE 00674000
  670. EX R6,RECALOC TURN ON BIT FOR THIS RECORD 00675000
  671. SPACE 00676000
  672. DSKWTRC2 LR R7,R2 GET CURRENT RECORD PTR 00677000
  673. BCTR R7,0 -1 00678000
  674. SLR R6,R6 CLEAR FOR DIVIDE 00679000
  675. D R6,BITSPB DIVIDE BY 8..BITS/BYTE @V407510 00680000
  676. LA R7,RECMAP(R7) GET PROPER RECMAP BYTE 00681000
  677. IC R6,ALOCBIT(R6) GET MASK BYTE 00682000
  678. EX R6,TSTALOC ALL READY ALLOCATED FOR THIS RECORD 00683000
  679. BO DSKIO YES - MULT RESTARTS ON SAME DUMP CYL 00684000
  680. EX R6,RECALOC TURN ON BIT FOR THIS RECORD 00685000
  681. IC R7,RECUSED GET NUMBER OF RECORDS USED ON THIS CYL 00686000
  682. LA R7,1(,R7) BUMP BY 1 00687000
  683. STC R7,RECUSED REPLACE 00688000
  684. SPACE 00689000
  685. DSKIO EQU * HERE TO DO DISK I/O 00690000
  686. LA R0,768 00691000
  687. CLI RDEVTYPE,TYP3350 3350 DASD DEVICE ? @V304498 00692000
  688. BNE DSK2314 NO -- BRANCH @V304498 00693000
  689. LA R0,1024 DIVIDE CONSTANT FOR 3350 @V304498 00694000
  690. DSK2314 EQU * TEST FOR NEXT DASD DEVICE - 2314 @V304498 00695000
  691. CLI RDEVTYPE,TYP3375 3375 DASD device ? HRC106DK 00695100
  692. BNE NOT3375 No -- branch HRC106DK 00695200
  693. LA R0,256*8 Divide constant for 3375 HRC106DK 00695300
  694. NOT3375 CLI RDEVTYPE,TYP3380 3380 DASD device ? HRC106DK 00695400
  695. BNE NOT3380 No -- branch HRC106DK 00695500
  696. LA R0,256*10 Divide constant for 3380 HRC106DK 00695600
  697. NOT3380 EQU * Test next DASD device HRC106DK 00695700
  698. TM RDEVTYPE,TYP2314 2314 ? 00696000
  699. BNO *+8 NO 00697000
  700. LA R0,409 DIVIDE CONSTANT FOR 2314/2319 @V2A2029 00698000
  701. TM RDEVTYPE,TYP3340 3340 DASD DEVICE ? @V2A2029 00699000
  702. BNO *+8 NO -- BRANCH @V2A2029 00700000
  703. LA R0,512 DIVIDE CONSTANT FOR 3340 @V2A2029 00701000
  704. LR R7,R2 GET CURRENT RECORD NUMBER 00702000
  705. BCTR R7,0 -1 00703000
  706. SLL R7,8 *256 00704000
  707. SLR R6,R6 00705000
  708. DR R6,R0 00706000
  709. STH R7,HHR SET HEAD 00707000
  710. STC R2,HHR+2 SET RECORD 00708000
  711. STCM R3,B'0111',DISKWRIT+1 SET DATA ADDRESS IN CCW 00709000
  712. DSKIOSUB LA R0,RTCNT1 RETRY COUNT + 1 @V56BDA8 00710000
  713. DSKRETRY LA R7,DISKCCW ADDRESS OF STANDARD CHANNEL @V56BDA8 00710050
  714. * PROGRAM 00710100
  715. DISKALTR BCT R0,*+8 BR IF RETRY COUNT NOT EXHAUSTED @V56BDA8 00710150
  716. B DMPIOERR OTHERWISE DUMP I/O ERROR @V56BDA8 00710200
  717. DSKSIO ST R7,CAW PUT CHANNEL PRG ADDRESS IN CAW @V56BDA8 00710250
  718. SIO 0(R15) START IO @V56BDA8 00710300
  719. BC 2,DSKBWAIT CC=2, CHANNEL OR SUBCHANNEL BUSY 00714000
  720. BC 4,DSKSTOR CC=1, CSW STORED 00715000
  721. BC 8,*+8 CC=0, STARTED OK 00716000
  722. B DMPIOERR 00717000
  723. MVC IONPSW+4(4),=A(DSKIOINT) SET I/O NEW PSW FOR DRAINING 00718000
  724. DSKWAIT LPSW IWAIT LOAD ENABLED WAIT STATE PSW 00719000
  725. SPACE 00720000
  726. DSKIOINT EQU * HERE UPON HARDWARE I/O INTERRUPT 00721000
  727. CH R15,INTTIO INTERRUPT FOR DUMP DISK ? 00722000
  728. BNE DSKWAIT NO 00723000
  729. CLC CSW+4(2),=AL1(CE+DE,0) COMPLETE OK ? 00724000
  730. BCR 8,R14 YES 00725000
  731. TESTUC TM CSW+4,UC UNIT CHECK ? 00726000
  732. BZ DSKRETRY NO - RETRY 00727000
  733. DSKUC XC SENSDATA(24),SENSDATA CLEAR SENSE DATA @V2B2638 00728000
  734. MVC CAW+1(3),=AL3(SENSE) USE SENSE CCW @V56BDA8 00729000
  735. TIO 0(R15) TEST IO 00731000
  736. BC 6,*-4 CLEAR DEVICE 00732000
  737. SIO 0(R15) START IO (SENSE) 00733000
  738. TIO 0(R15) WAIT FOR IT 00734000
  739. BC 6,*-4 BRANCH IF BUSY OR STATUS STORED 00735000
  740. TM SENSDATA,INTREQ INTERVENTION REQUIRED ? 00736000
  741. BO DSKBWAIT YES - WAIT FOR DEVICE END 00737000
  742. TM SENSDATA,TRKCONCK TRACK CONDITION CHECK? @V56BDA8 00738000
  743. BZ DSKRETRY NO, RETRY @V56BDA8 00738010
  744. MVC CAW+1(3),=AL3(READHAR0) @V56BDA8 00738020
  745. TIO 0(R15) DRAIN ANY INTERRUPTS @V56BDA8 00738030
  746. BC 7,*-4 LOOP UNTIL READY @V56BDA8 00738040
  747. SIO 0(R15) READ R0 FOR ALT TRACK ADDR @V56BDA8 00738050
  748. BC 7,*-4 LOOP UNTIL STARTED @V56BDA8 00738060
  749. TIO 0(R15) TEST FOR COMPLETION @V56BDA8 00738070
  750. BC 7,*-4 TRY AGAIN @V56BDA8 00738080
  751. CLC CSW+4(2),=AL1(CE+DE,0) CLEAN END? @V56BDA8 00738090
  752. BNE DSKRETRY NO, ERROR @V56BDA8 00738100
  753. LA R7,ALTSEEK ALTERNATE CHANNEL PROGRAM @V56BDA8 00738110
  754. B DISKALTR RESTART ON ALTERNATE TRACK @V56BDA8 00738120
  755. SPACE 00740000
  756. DSKSTOR TM CSW+4,BUSY DEVICE BUSY ? 00741000
  757. BZ TESTUC NO - CHECK FOR UNIT CHECK 00742000
  758. TM CSW+4,CE+DE+ATTN+CUE STATUS CLEARED ? 00743000
  759. BZ DSKBWAIT NO - WAIT FOR DEVICE INTERRUPT 00744000
  760. B DSKUC YES - RESTART DEVICE IF POSSIBLE 00745000
  761. DSKBWAIT EQU * 00746000
  762. MVC IONPSW+4(4),=A(DSKSIO) SET I/O NEW PSW FOR RESTART 00747000
  763. LPSW IWAIT LOAD ENABLED WAIT STATE PSW 00748000
  764. SPACE 00749000
  765. TSTALOC TM 0(R7),0 EXECUTED TM 00750000
  766. RECALOC OI 0(R7),0 EXECUTED OR 00751000
  767. EJECT 00752000
  768. ENTRY DMKDMPRS 00753000
  769. DMKDMPRS DS 0H 00754000
  770. DROP R13 @VA01097 00755000
  771. USING *,R12 00756000
  772. L R12,=A(DMKDMPDK) ESTABLISH ADDRESSABITITY 00757000
  773. USING DMKDMPDK,R12 ... 00758000
  774. USING DMKDMP+4096,R13 @VA01097 00759000
  775. LR R13,R12 SET 2ND BASE REGISTER @VA01097 00760000
  776. A R13,PAGESIZE CALCULATE 2ND BASE REG @V407510 00761000
  777. L R15,=A(DMKSYSCK) POINT TO TOD CLOCK FIELD AND 00762000
  778. STCK 0(R15) SAVE THE TIME FOR ACCOUNTING IN DMKCKP 00763000
  779. RESTART DS 0H @V408246 00764000
  780. LA R14,100 RETRY COUNT @V408246 00765000
  781. LH R15,DMKDMPSD IPL DEVICE @V407510 00766000
  782. LA R0,IPLREAD GET IPL CCWS 00767000
  783. ST R0,CAW SET CAW 00768000
  784. SIOIPL SIO 0(R15) 00769000
  785. BC 8,TIOIPL CC=0, STARTED OK 00770000
  786. BC 2,IPLWAIT CC=2, DEVICE BUSY 00771000
  787. BC 4,SIOSTOR CC=1, CSW STORED 00772000
  788. BCT R14,RESTART+4 RETRY @V408246 00773000
  789. BAL R14,LOADWAIT CC=3, NOT OPERATIONAL 00774000
  790. TIOIPL TIO 0(R15) TEST 00775000
  791. BNZ *-4 WAIT 00776000
  792. CLC CSW+4(2),=AL1(CE+DE,0) IS IT CE DE CLEAN? @VA08883 00776500
  793. BNE IPLUC NO, SEE WHAT WENT WRONG @VA08883 00776600
  794. STH R15,INTTIO SAVE IPL DEVICE ADDRESS 00777000
  795. OI IPLREAD+4,SKIP+CC CHANGE IPL SEQUENCE 00778000
  796. SIO 0(R15) START 00779000
  797. BNZ *-4 WAIT 00780000
  798. TIO 0(R15) TEST 00781000
  799. BNZ *-4 WAIT 00782000
  800. CLC CSW+4(2),=AL1(CE+DE,0) IS IT CE DE CLEAN? @VA08883 00783500
  801. BE B1 OK @V408246 00784000
  802. B IPLUC SEE WHAT WENT WRONG @VA08883 00785100
  803. B1 EQU * @V408246 00787000
  804. LPSW IPLPSW GO 00788000
  805. SPACE 00789000
  806. SIOSTOR TM CSW+4,SM+BUSY CONTROL UNIT BUSY? @VA04308 00790000
  807. BO IPLWAIT WAIT FOR IT @VA04308 00791000
  808. TM CSW+4,BUSY DEVICE BUSY? @VA04308 00792000
  809. BZ IPLUC NO -- BRANCH 00793000
  810. TM CSW+4,CE+DE+ATTN+CUE STATUS CLEARED ? 00794000
  811. BNZ RESTART YES -- RESTART CHANNEL PROGRAM 00795000
  812. IPLUC TM CSW+4,UC UNIT CHECK ? 00796000
  813. BO B2 OK @V408246 00797000
  814. BCT R14,RESTART+4 RETRY @V408246 00798000
  815. BAL R14,LOADWAIT UNEXPLAINED ERROR 00799000
  816. B2 EQU * @V408246 00800000
  817. LA R0,SENSE ISSUE SENSE COMMAND 00801000
  818. ST R0,CAW SET CAW 00802000
  819. XC SENSDATA(24),SENSDATA CLEAR SENSE DATA @V2B2638 00803000
  820. SIO 0(R15) START 00804000
  821. BNZ *-4 WAIT 00805000
  822. TIO 0(R15) TEST 00806000
  823. BNZ *-4 WAIT 00807000
  824. CLC CSW+4(2),=AL1(CE+DE,0) IS IT CE DE CLEAN? @VA08883 00807100
  825. BE B2A OK @VA08883 00807200
  826. BAL R14,LOADWAIT UNEXPLAINED ERROR FROM SENSE @VA08883 00807300
  827. B2A EQU * @VA08883 00807400
  828. TM SENSDATA,INTREQ INTERVENTION REQUIRED ? 00808000
  829. BO B3 OK @V408246 00809000
  830. BCT R14,RESTART+4 RETRY @V408246 00810000
  831. BAL R14,LOADWAIT UNEXPLAINED ERROR 00811000
  832. B3 EQU * @V408246 00812000
  833. IPLWAIT EQU * 00813000
  834. MVC IONPSW+4(4),=A(RESTART) WHER TO RESTART 00814000
  835. LPSW IWAIT LOAD ENABLED WAIT STATE PSW 00815000
  836. EJECT 00816000
  837. *. 00817000
  838. * OPERATION OF TAPE DUMP ROUTINE - 00818000
  839. * 00819000
  840. * 1. RESET PRINTER CCWS FOR TAPE. 00820000
  841. * 3. EXECUTE TAPE MODE SET CCWS. 00821000
  842. * 4. JOIN PRINTER CODE BELOW. 00822000
  843. * 00823000
  844. *. 00824000
  845. SPACE 00825000
  846. DMPTAPE EQU * HERE TO WRITE DUMP TO TAPE 00826000
  847. LA R0,TAPEINIT GET INITIAL MODE SET TAPE CCWS 00827000
  848. CLI RDEVTYPE,TYP3420 3420 TAPE DRIVE ? @VA07418 00828000
  849. BNE MODEONE DON,T CHANGE MODESET @VA07418 00829000
  850. MVI TAPEINIT,X'C3' SET MODE 1600 BPI @VA07418 00830000
  851. MODEONE EQU * @VA07418 00831000
  852. BAL R10,CLRCHAN 00832000
  853. B DMPPRT JOIN PRINTER DUMP CODE BELOW 00833000
  854. EJECT 00834000
  855. *. 00835000
  856. * OPERATION OF PRINTER DUMP ROUTINE - 00836000
  857. * 00837000
  858. * 1. FORMAT AND PRINT GENERAL PURPOSE REGISTERS. 00838000
  859. * 2. FORMAT AND PRINT CONTROL REGISTERS. 00839000
  860. * 3. FORMAT AND PRINT FLOATING POINT REGISTERS. 00840000
  861. * 4. FORMAT AND PRINT TOD CLOCK AND CLOCK COMPARATOR 00841000
  862. * 5. FORMAT AND PRINT CPU TIMER AND PREFIX REGISTER 00842000
  863. * 6. FORMAT AND PRINT ALL OF MAIN MEMORY (INCLUDING STORAGE 00843000
  864. * KEYS AT THE BEGINNING OF EVERY 2K BLOCK.) DUPLICATE 00844000
  865. * STORAGE LOCATIONS WILL BE PRINTED AS ONE LINE WITH AN 00845000
  866. * EXPLANATION. 00846000
  867. * 7. PRINT "*** END OF DUMP ***" MESSAGE. 00847000
  868. * 8. IF DUMP DEVICE IS TAPE WRITE AN END OF FILE MARK. 00848000
  869. * 9. IF CPID IS NOT "CPCP" THEN LOAD A NON-ERROR DISABLED 00849000
  870. * WAIT STATE. 00850000
  871. * 10. IF THE VM/MONITOR WAS ACTIVE THEN WRITE A TAPE MARK AND 00851000
  872. * REWIND/UNLOAD THE TAPE. 00852000
  873. * RE-IPL THE SYSTEM (BRING IN DMKCKP) 00853000
  874. * TO CHECK POINT THE SYSTEM AS IT NOW STANDS. 00854000
  875. *. 00855000
  876. SPACE 00856000
  877. DMPPRT EQU * HERE TO WRITE DUMP TO PRINTER (OR TAPE) 00857000
  878. CLC RDEVTYPC(2),P3800 IS IT A 3800 ? @V60B9BA 00857200
  879. BNE NO3800 XFER IF NOT @V60B9BA 00857400
  880. LA R0,INIT3800 AN INITIALIZER PRINTER CCW @V60B9BA 00857600
  881. BAL R10,SETCCW GO DO THE START I/O @V60B9BA 00857800
  882. NO3800 LA R7,60 SET INITIAL NUMBER OF LINES/PAGE @V60B9BA 00858000
  883. MVC LINEID(DMPSMSGL),DMPSMSG IDENTIFY DUMP @V407510 00859000
  884. BAL R14,PRTHD PRINT IDENTITY MESSAGE @V407510 00860000
  885. LA R1,GREGS GET PTR TO GENERAL PURPOSE REGS @V407510 00861000
  886. MVC LINEID(9),=C'GPRS 0- 7' SET IDENTIFIER 00862000
  887. BAL R14,PUTLINE PRINT LINE 00863000
  888. MVC LINEID(9),=C'GPRS 8-15' SET IDENTIFIER 00864000
  889. OI DMKDMPSW,DOUBLESP INDICATE DOUBLE SPACING 00865000
  890. BAL R14,PUTLINE PRINT LINE 00866000
  891. LA R1,CTLREGS GET 16 CONTROL REGISTERS 00867000
  892. MVC LINEID(9),=C'CRS 0- 7' SET IDENTIFIER 00868000
  893. BAL R14,PUTLINE PRINT LINE 00869000
  894. MVC LINEID(9),=C'CRS 8-15' SET IDENTIFIER 00870000
  895. OI DMKDMPSW,DOUBLESP INDICATE DOUBLE SPACING 00871000
  896. BAL R14,PUTLINE PRINT LINE 00872000
  897. AIF (NOT &FLOATPT).NOFP3 00873000
  898. LA R1,FPREGS GET 4 FLOATING POINT REGISTERS 00874000
  899. MVC LINEID(9),=C'FPRS 0- 4' SET IDENTIFIER 00875000
  900. OI DMKDMPSW,DOUBLESP INDICATE DOUBLE SPACING 00876000
  901. BAL R14,PUTLINE PRINT LINE 00877000
  902. .NOFP3 ANOP 00878000
  903. MVC LINEID(9),=C'TOD CLOCK' SET IDENTIFIER 00879000
  904. LA R1,TODCLOCK GET PTR TO TOD CLOCK VALUE 00880000
  905. LA R5,DATA GET OUTPUT LOCATION 00881000
  906. BAL R14,CLOCKFMT FORMAT 00882000
  907. MVC DATA+24(14),=C'TOD CLOCK COMP' SET IDENTIFIER 00883000
  908. LA R1,CLKCOMP GET PTR TO TOD CLOCK COMPARATOR 00884000
  909. LA R5,DATA+40 GET OUTPUT LOCATION 00885000
  910. BAL R14,CLOCKFMT FORMAT 00886000
  911. BAL R14,PARTLINE 00887000
  912. MVC LINEID(9),=C'CPU TIMER' SET IDENTIFIER 00888000
  913. LA R1,CPUTIMER GET PTR TO CPU TIMER VALUE 00889000
  914. LA R5,DATA GET OUTPUT LOCATION 00890000
  915. BAL R14,CLOCKFMT FORMAT 00891000
  916. MVC HALFLINE,=C'PREFIX REG' SET IDENTIFIER @V407510 00892000
  917. LA R1,PREFRG GET PTR TO PREFIX REG @V407510 00893000
  918. LA R5,HALFDATA GET PTR TO OUTPUT @V407510 00894000
  919. UNPK HALFDATA(PKLEN),PREFRG(L'PREFRG+1) UNPACK @V407510 00895000
  920. TR HALFDATA(TRLEN),TRHEX TRANSLATE @V407510 00896000
  921. MVI HALFDATA+TRLEN,BLNK NEATEN SLACK BYTE @V407510 00897000
  922. BAL R14,PARTLINE PRINT LINE 00898000
  923. L R1,MAINPSA GET PREFIX REG @V407510 00899000
  924. LTR R1,R1 IS THERE PREFIXING? @V407510 00900000
  925. BZ DUMPCORE NO, DUMP MAIN STORAGE @V407510 00901000
  926. MVC LINEID(LN18),=C'MAIN PROCESSOR PSA' HEADING @V407510 00902000
  927. BAL R14,PRTHD PRINT LINE @V407510 00903000
  928. LR R4,R1 SET START ADDRESS @V407510 00904000
  929. LA R11,FULLPAGE DUMP FULL PAGE @V407510 00905000
  930. BCTR R11,0 - LAST LINE WITHOUT SUPPRESSION @V407510 00906000
  931. LCPUT0 DS 0H LOOP TO PUT OUT PAGE @V407510 00907000
  932. BAL R14,PUTLINE PRINT ONE LINE AT A TIME @V407510 00908000
  933. BCT R11,LCPUT0 LOOP UNTIL PAGE FINISHED @V407510 00909000
  934. OI DMKDMPSW,BREAKSUP REAK LINE SUPPRESSION @V407510 00910000
  935. BAL R14,PUTLINE PRINT LAST LINE @V407510 00911000
  936. MVC LINEID(LN22),=C'ATTACHED PROCESSOR PSA' HEADING @V407510 00912000
  937. BAL R14,PRTHD PRINT LINE @V407510 00913000
  938. L R1,ATTPSA GET OTHER PREFIX REG @V407510 00914000
  939. LR R4,R1 SET START ADDRESS @V407510 00915000
  940. LA R11,FULLPAGE DUMP FULL PAGE @V407510 00916000
  941. BCTR R11,0 - LAST LINE WITHOUT SUPPRESSION @V407510 00917000
  942. LCPUT00 DS 0H LOOP TO PUT OUT PAGE @V407510 00918000
  943. BAL R14,PUTLINE PRINT ONE LINE AT A TIME @V407510 00919000
  944. BCT R11,LCPUT00 LOOP UNTIL PAGE FINISHED @V407510 00920000
  945. OI DMKDMPSW,BREAKSUP BREAK LINE SUPPRESSION @V407510 00921000
  946. BAL R14,PUTLINE PRINT LAST LINE @V407510 00922000
  947. DUMPCORE DS 0H DUMP MAIN STORAGE @V407510 00923000
  948. MVC LINEID(LN12),=C'MAIN STORAGE' HEADING @V407510 00924000
  949. BAL R14,PRTHD PRINT LINE @V407510 00925000
  950. LA R1,LOWCORE GET AREA CONTAINING INITIAL 256 BYTES 00926000
  951. SLR R4,R4 SET INITIAL ADDRESS TO LOCATION 0 00927000
  952. LA R11,8 SET LOOP CONSTANT 00928000
  953. LCPUT BAL R14,PUTLINE PRINT LINE 00929000
  954. BCT R11,LCPUT 00930000
  955. LR R1,R4 START DUMPING ACTUAL MEMORY NOW 00931000
  956. DMPNXT BAL R14,PUTLINE PRINT LINE 00932000
  957. NEXTPAGE LR R9,R1 GET ADDRESS 00933000
  958. N R9,=F'2047' ON 2K BOUNDRY ? 00934000
  959. BNZ DMPNXT NO 00935000
  960. CL R1,STORSIZE AT END OF STORAGE ? @VA01097 00936000
  961. BNL DMPEND YES 00937000
  962. LR R9,R1 GET ADDRESS 00938000
  963. N R9,CONS4095 ON 4K BOUNDARY @V407510 00939000
  964. BNZ DMPNXT NO 00940000
  965. TM DMKDMPSW,ALL DUMP ALL OF MEMORY ? 00941000
  966. BO DMPUP YES 00942000
  967. LR R9,R1 GET ADDRESS 00943000
  968. SRL R9,8 GET PAGE NUMBER * 16 00944000
  969. AL R9,DMPCORET FORM CORTABLE ENTRY ADDR @V407510 00945000
  970. USING CORTABLE,R9 00946000
  971. TM CORFLAG,CORCP DOES PAGE BELONG TO CP NUCLEUS ? 00947000
  972. BO DMPUP YES 00948000
  973. CLC CORFPNT,=C'FREE' DOES PAGE BELONG TO FREE STORAGE ? 00949000
  974. BE DMPUP YES 00950000
  975. CLC CORFPNT,DMPSYSVM IS IT PART OF THE PAGEABLE @V407510 00951000
  976. * NUCLEUS? @V407510 00952000
  977. BE DMPUP YES @V408246 00953000
  978. TM DMKDMPSW,SKIPSUP ANY PAGES SKIPPED BEFORE ? 00954000
  979. BO SKIPON YES 00955000
  980. ST R1,TEMPAD SAVE FROM ADDRESS 00956000
  981. UNPK SKIPFROM(7),TEMPAD+1(4) UNPACK FROM ADDRESS 00957000
  982. TR SKIPFROM(6),TRHEX TRANSLATE 00958000
  983. MVI SKIPFROM+6,C' ' NEATEN UP 00959000
  984. OI DMKDMPSW,SKIPSUP+BREAKSUP 00960000
  985. SKIPON DS 0H @V407510 00961000
  986. AL R1,PAGESIZE GET NEXT PAGE ADDR @V407510 00962000
  987. B NEXTPAGE 00963000
  988. DMPUP LR R4,R1 GET ADDRESS 00964000
  989. B DMPNXT 00965000
  990. DROP R9 00966000
  991. EJECT 00967000
  992. DMPEND EQU * HERE WHEN AT END OF MEMORY FOR PRINTER (OR TAPE) 00968000
  993. OI DMKDMPSW,BREAKSUP TURN LINE SUPPRESSION OFF 00969000
  994. MVC DATA(19),=C'*** END OF DUMP ***' 00970000
  995. BAL R14,LASTLINE PRINT THE LAST LINE 00971000
  996. CLI RDEVTYPC,CLASTAPE TAPE ? 00972000
  997. BNE DRAINEND NO 00973000
  998. LA R0,WRITEOF GET TAPE MARK CCWS 00974000
  999. BAL R10,PRIO WRITE 2 TAPE MARKS 00975000
  1000. DRAINEND TIO 0(R15) DRAIN LAST INTERRUPT 00976000
  1001. BNZ *-4 WAIT 00977000
  1002. SHUTEND CLC CPID,=C'CPCP' DUMP ON WARM MACHINE ? 00978000
  1003. BE MONSTOP YA, STOP MONITOR, THEN CHKPT SYS @V2B2638 00979000
  1004. LPSW XWAIT1 LOAD NONERROR DISABLED WAIT STATE PSW 00980000
  1005. SPACE 00981000
  1006. LOADWAIT LPSW XWAIT2 LOAD ERROR DISABLED WAIT STATE PSW 00982000
  1007. EJECT 00983000
  1008. CLOCKFMT EQU * HERE TO FORMAT AND PRINT A CLOCK VALUE 00984000
  1009. UNPK 0(9,R5),0(5,R1) UNPACK FIRST WORD 00985000
  1010. TR 0(8,R5),TRHEX TRANSLATE 00986000
  1011. MVI 8(R5),C' ' NEATEN SLACK BYTE 00987000
  1012. UNPK 10(9,R5),4(5,R1) UNPACK SECOND WORD 00988000
  1013. TR 10(8,R5),TRHEX TRANSLATE 00989000
  1014. MVI 18(R5),C' ' NEATEN SLACK BYTE 00990000
  1015. BR R14 RETURN 00991000
  1016. ****** 00992000
  1017. * 00993000
  1018. * HERE TO STOP THE MONITOR IF IT IS ACTIVE 00994000
  1019. * 00995000
  1020. ****** 00996000
  1021. SPACE 00997000
  1022. MONSTOP L R9,MONCAD GET ADDRESS OF MONCOM @V2B2638 00998000
  1023. LTR R9,R9 IS THERE ONE? (MONITOR ACTIVE) @V2B2638 00999000
  1024. BZ RESTART NO, THEN DONE, GO CHKPT THE SYS @V2B2638 01000000
  1025. USING MONCOM,R9 ADDRESS THE MONCOM BLOCK @V2B2638 01001000
  1026. TM MONFLAG3,SPOOLED IS OUTPUT SPOOLED @VA07888 01001100
  1027. BO RESTART YES, NO TAPE CLEAN UP RQD @VA07888 01001200
  1028. L R8,MONARDB GET THE TAPE DEVICE BLOCK ADDR @V2B2638 01002000
  1029. CALL DMKSCNRD GET THE DEVICE ADDR IN CCU FORM @V2B2638 01003000
  1030. MVI MONFLAG2,0 CLEAR FOR DMP USE @VM01008 01004000
  1031. TIO 0(R1) ATTEMPT TO CLEAR PENDING INTS @VM01008 01005000
  1032. BC 2,*-4 STILL BUSY, KEEP TRYING @VM01008 01006000
  1033. BC 4,ANALYZE GO FIGURE OUT WHAT HAPPENED @VM01008 01007000
  1034. SETTRUN OI MONFLAG2,TRUN SET TRUN FLAG TO SAY WE TRIED @VM01008 01008000
  1035. L R2,MONAIOB GET THE MONITOR TAPE IOB @VM01008 01009000
  1036. LA R0,IOBSIZE*8+8(R2) BUMP UP TO THE WTM/RUN CCWS @V2B2638 01010000
  1037. ST R0,CAW SET UP FOR SIO @V2B2638 01011000
  1038. DOMONSIO SIO 0(R1) START THE DEVICE @V2B2638 01012000
  1039. BC 2,*-4 BUSY, KEEP TRYING @V2B2638 01013000
  1040. BC 1,RESTART CANT MAKE IT, LEAVE AS IS. @V2B2638 01014000
  1041. BC 4,ANALYZE CC = 1, DO SENSE IF UC @V2B2638 01015000
  1042. DOTIO TIO 0(R1) CLEAR THE STATUS @V2B2638 01016000
  1043. BC 2,*-4 BUSY, KEEP TRYING @V2B2638 01017000
  1044. BC 8+1,RESTART ALL CLEAR, GO CALL CHKPT @V2B2638 01018000
  1045. ANALYZE TM CSW+4,UC CSW STORED, DID UC OCCUR? @V2B2638 01019000
  1046. BZ CHKTRUN BE SURE WHERE WE ARE BEFORE EXIT @VM01008 01020000
  1047. LA R2,SENSE YES, SET UP FOR SENSE @V2B2638 01021000
  1048. ST R2,CAW ... @V2B2638 01022000
  1049. XC SENSDATA(24),SENSDATA CLEAR SENSE DATA @V2B2638 01023000
  1050. B DOMONSIO GO ISSUE THE SENSE @V2B2638 01024000
  1051. CHKTRUN TM MONFLAG2,TRUN HAS REW/UNLOAD BEEN ATTEMPTED YET@VM01008 01025000
  1052. BZ SETTRUN NOPE, GO TRY NOW @VM01008 01026000
  1053. B RESTART YES, THEN LEAVE WELL ENOUGH ALONE@VM01008 01027000
  1054. DROP R9 @V2B2638 01028000
  1055. EJECT 01029000
  1056. PUTLINE EQU * HERE TO WRITE A LINE TO TAPE OR PRINTER 01030000
  1057. C R7,PAGLINE TEST FOR NEW PAGE @V407510 01031000
  1058. BL CONT 01032000
  1059. SLR R7,R7 SET CURRENT LINE TO ZERO 01033000
  1060. LA R0,SKIPCH1 GET SKIP TO CHANNEL 1 CCWS 01034000
  1061. BAL R10,SETCCW SET CONTROL 01035000
  1062. CONT LA R2,4 GET INCREMENT FOR BXLE LOOP 01036000
  1063. LA R3,28(,R1) GET END FOR BXLE LOOP 01037000
  1064. MVC DATATR,0(R1) 01038000
  1065. LA R5,DATA GET START OF HEX OUTPUT 01039000
  1066. NXTWD L R6,0(,R1) 01040000
  1067. ST R6,TEMPAD SAVE IN TEMPORARY WORK AREA 01041000
  1068. UNPK 0(9,R5),TEMPAD(5) UNPACK HEX DATA 01042000
  1069. MVI 8(R5),C' ' CLEAR GARBAGE BYTE 01043000
  1070. TR 0(8,R5),TRHEX TRANSLATE TO EBCDIC HEX 01044000
  1071. LA R5,10(,R5) GET NEXT OUTPUT SLOT 01045000
  1072. BXLE R1,R2,NXTWD 01046000
  1073. MVI DATATR-1,C'*' 01047000
  1074. MVI LINEND,C'*' 01048000
  1075. CLI LINEID+6,C'-' TEST FOR PREFORMATTED ID 01049000
  1076. BE TRANS 01050000
  1077. LR R2,R4 GET CURRENT ADDRESS 01051000
  1078. N R2,=F'2047' ON 2K BOUNDRY ? 01052000
  1079. BNZ LASTLINE NO 01053000
  1080. ISK R3,R4 GET STROAGE KEY 01054000
  1081. STC R3,TEMPAD PLACE IN TEMPORARY WORK AREA 01055000
  1082. UNPK KEY(3),TEMPAD(2) UNPACK HEX DATA 01056000
  1083. MVI KEY+2,C' ' CLEAR GARBAGE BYTE 01057000
  1084. TR KEY,TRHEX TRANSLATE TO EBCDIC HEX 01058000
  1085. OI DMKDMPSW,BREAKSUP TURN SUPPRESSION BREAK ON 01059000
  1086. LASTLINE ST R4,TEMPAD SAVE ADDRESS IN TEMPORARY WORK AREA 01060000
  1087. UNPK LINEID(7),TEMPAD+1(4) UNPACK HEX ADDRESS 01061000
  1088. MVI LINEID+6,C' ' CLEAR GARBAGE BYTE 01062000
  1089. TR LINEID(6),TRHEX TRANSLATE TO EBCDIC HEX 01063000
  1090. MVC DATA-2(40),DATA EDIT LINE 01064000
  1091. LA R4,32(,R4) GET NEXT MEMORY ADDRESS 01065000
  1092. CLC HOLD,DATATR CHECK FOR DUPLICATE CORE LOCATIONS 01066000
  1093. MVC HOLD,DATATR SAVE THIS LINE 01067000
  1094. BNE NOTSAME NOT EQUAL 01068000
  1095. TM DMKDMPSW,BREAKSUP SUPPRESSION TURNED OFF ? 01069000
  1096. BO NOTSAME YES 01070000
  1097. TM DMKDMPSW,LINESUP SUPPRESSION ACTIVE ? 01071000
  1098. BO CLEARL YES 01072000
  1099. OI DMKDMPSW,LINESUP SET SUPPRESSION ACTIVE 01073000
  1100. MVC SUPFROM,LINEID SAVE STARTING ADDRESS 01074000
  1101. B CLEARL 01075000
  1102. NOTSAME NI DMKDMPSW,X'FF'-BREAKSUP TURN BREAK SUPPRESSION FLAG OFF 01076000
  1103. TM DMKDMPSW,LINESUP SUPPRESSION ACTIVE ? 01077000
  1104. BNO SKIPTST NO 01078000
  1105. NI DMKDMPSW,X'FF'-LINESUP TURN FLAG OFF 01079000
  1106. MVC SUPTO,LINEID SET ENDING ADDRESS 01080000
  1107. TM DMKDMPSW,SKIPSUP PAGES SKIPPED ? 01081000
  1108. BNO *+10 NO 01082000
  1109. MVC SUPTO,SKIPFROM USE THIS VALUE 01083000
  1110. LA R0,SUPCCW GET LINE SUPPRESSION MESSAGE CCW 01084000
  1111. BAL R10,SETCCW SET CONTROL 01085000
  1112. LA R7,1(,R7) BUMP NUMBER OF LINES PTR 01086000
  1113. SKIPTST TM DMKDMPSW,SKIPSUP LINES SKIPPED BECAUSE OF NUCLEUS ? 01087000
  1114. BNO TRANS NO 01088000
  1115. NI DMKDMPSW,X'FF'-SKIPSUP TURN FLAG OFF 01089000
  1116. MVC SKIPTO,LINEID SET TO ADDRESS 01090000
  1117. LA R0,SKIPCCW GET CCW 01091000
  1118. BAL R10,SETCCW SET CONTROL 01092000
  1119. SLR R7,R7 RESET LINE COUNTER 01093000
  1120. TRANS TR DATATR,DMKDMPTR TRANSLATE TO EBCDIC 01094000
  1121. LA R0,PRLINE GET PRINT 1 LINE CCW 01095000
  1122. TM DMKDMPSW,DOUBLESP DOUBLE SPACE AFTER THIS LINE ? 01096000
  1123. BNO ONESPC NO 01097000
  1124. NI DMKDMPSW,X'FF'-DOUBLESP TURN FLAG OFF 01098000
  1125. PARTLINE LA R0,PRLINESP GET PRINT 1 LINE AND SPACE CCW 01099000
  1126. LA R7,1(,R7) BUMP NUMBER OF LINES PTR 01100000
  1127. ONESPC BAL R10,SETCCW SET CONTROL 01101000
  1128. LA R7,1(,R7) BUMP NUMBER OF LINES PTR 01102000
  1129. CLEARL MVI LINE,C' ' BLANK OUT THE OUTPUT BUFFER 01103000
  1130. MVC LINE+1(LINEL-1),LINE ... 01104000
  1131. BR R14 RETURN 01105000
  1132. PRTHD DS 0H PRINT PAGE HEADER @V407510 01106000
  1133. SR R7,R7 START NEW PAGE @V407510 01107000
  1134. LA R0,SKIPCH1 FORCE EJECT @V407510 01108000
  1135. BAL R10,SETCCW SET CONTROL @V407510 01109000
  1136. B PARTLINE PRINT HEADER LINE @V407510 01110000
  1137. SPACE 2 01111000
  1138. SETCCW CLI RDEVTYPC,CLASTAPE IS DUMP UNIT A TAPE ?? 01112000
  1139. BNE PRIO NO, PRINTER 01113000
  1140. LR R9,R0 GET OP CODE 01114000
  1141. IC R0,0(R9) .. 01115000
  1142. L R2,0(R9) GET ADDRESS OF DATA 01116000
  1143. LA R2,0(R2) CLEAR HI BYTE 01117000
  1144. BCTR R2,R0 MINUS ONE 01118000
  1145. STC R0,0(R2) PUT OP CODE IN DATA BUFFER 01119000
  1146. ST R2,TAPCCW SET CCW ADDRESS 01120000
  1147. LH R2,6(R9) GET CCW COUNT 01121000
  1148. LA R2,1(R2) UP THE COUNT BY ONE 01122000
  1149. STH R2,TAPCCW+6 SET CCW COUNT 01123000
  1150. MVI TAPCCW,X'01' WRITE OP FOR TAPE 01124000
  1151. LA R0,TAPCCW CCW LIST 01125000
  1152. B PRIO DO IO 01126000
  1153. EJECT 01127000
  1154. CLRCHAN EQU * HERE TO INSURE THAT PATH TO DEVICE IS FREE 01128000
  1155. TIO 0(R15) IS CHAN/CONTROL UNIT/DEVICE FREE ? 01129000
  1156. BC 8+4+2,*+8 BR. ON CC= 0/1/2/ 01130000
  1157. BAL R14,LOADWAIT TRACER ADDRESS ON FATAL I/O CONDITION 01131000
  1158. BC 8,PRIO CC=0, PATH TO DEVICE IS FREE 01132000
  1159. BC 2,WAITPRT CC=2, CHANNEL IS STILL BUSY 01133000
  1160. CHKSTAT CLI CSW+4,UC ANYTHING IN CSW BE-SIDES UC 01134000
  1161. BNE PRIO YES - PRINT THE LINE 01135000
  1162. ST R0,DMPR0 SAVE R0 01136000
  1163. ST R14,DMPR14 ... R14 01137000
  1164. ST R15,DMPR15 ... R15 01138000
  1165. L R0,INTQMSG GET COUNT AND ADDRESS OF INTREQ @V200735 01139000
  1166. BAL R9,TYPLINE TELL OPERATOR TO MAKE READY @V200735 01140000
  1167. L R0,DMPR0 RESTORE R0 01141000
  1168. L R14,DMPR14 ... R14 01142000
  1169. L R15,DMPR15 ... R15 01143000
  1170. TIO 0(R15) DRAIN INTERRUPT @VA04469 01144000
  1171. BC 2,*-4 LOOP ON BUSY @VA04469 01145000
  1172. BC 8+4,*+8 BR. ON CC= 0/1 @VA04469 01146000
  1173. BAL R14,LOADWAIT TRACE @ FOR FATAL I/O ,, CC=3 @VA04469 01147000
  1174. WAITPRT MVC IONPSW+4(4),=A(WAITRET) SET UP RETURN @ @VA04469 01148000
  1175. LPSW IWAIT SET ENABLED WAIT @VA04469 01149000
  1176. SPACE 01150000
  1177. WAITRET CH R15,INTTIO INTERRUPT FORM RIGHT DEVICE ? @VA04469 01151000
  1178. BE CLRCHAN YES, INSURE PATH IS FREE @VA04469 01152000
  1179. LPSW IWAIT NO, KEEP UP THE VIGIL ... @VA04469 01153000
  1180. SPACE 01154000
  1181. PRIO EQU * HERE TO DO I/O FOR PRINTER AND TAPE OPERATIONS 01155000
  1182. ST R0,CAW SET CAW 01156000
  1183. TIO 0(R15) TEST 01157000
  1184. BC 2,*-4 CC=2; CHANNEL STILL BUSY 01158000
  1185. BC 8+4,*+8 CC=0 OR CC=1 ; TAKE THE BRANCH 01159000
  1186. BAL R14,LOADWAIT CC=3, NOT OPERATIONAL 01160000
  1187. PRSIO SIO 0(R15) START 01161000
  1188. BC 8+4+2,*+8 BR. ON CC= 0/1/2/ 01162000
  1189. BAL R14,LOADWAIT TRACER ADDRESS ON FATAL I/O CONDITION 01163000
  1190. BC 2,CLRCHAN CC=2, CHANNEL STILL BUSY 01164000
  1191. BC 8,GOTIO CC=0, GOOD SIO STATUS 01165000
  1192. TM CSW+4,BUSY DOES THE CSW CONTAIN BUSY? @VA09426 01165300
  1193. BO PRSIO YES, OK REDO THE SIO. @VA09426 01165600
  1194. CLI CSW+4,UC IS DEVICE IN A NOT-READY CONDITION 01166000
  1195. BE CHKSTAT YES - GO TELL THE OPERATOR 01167000
  1196. TM CSW+5,CDC+CCC+IFCC CHECK CSW FOR CHANNEL ERRORS @VA09171 01167200
  1197. BZ GOTIO NONE - CONTINUE @VA09171 01167400
  1198. BAL R14,LOADWAIT ERROR - SET TRACE ADDRESS AND @VA09171 01167600
  1199. * WAIT 01167800
  1200. SPACE 01168000
  1201. GOTIO TIO 0(R15) ISSUE TIO TO 'DUMP' DEVICE 01169000
  1202. BC 2,*-4 CC=2, CHANNEL STILL BUSY; LOOP UNTIL FREE 01170000
  1203. BC 8,CONTIO CC=0, STATUS HAS BEEN CLEARED @VA09171 01171200
  1204. TM CSW+5,CDC+CCC+IFCC CHECK CSW FOR CHANNEL ERRORS @VA09171 01171400
  1205. BZ *+8 NONE KEEP GOING @VA09171 01171600
  1206. BAL R14,LOADWAIT CHAN ERROR - SET TRACE AND WAIT @VA09171 01171800
  1207. CLI CSW+4,UC IS DEVICE IN A NOT-READY STATE ? @VA10548 01172000
  1208. BE CHKSTAT YES--TELL THE OPERATOR @VA10548 01172150
  1209. CLI RDEVTYPC,CLASTAPE IS THIS A TAPE ? @VA10548 01172300
  1210. BE GOTIO YES-REISSUE THE TIO @VA10548 01172450
  1211. TM CSW+4,UC IS THE PRINTER NOT-READY ? @VA10548 01172600
  1212. BNZ CHKSTAT YES - TELL THE OPERATOR @VA09426 01173000
  1213. B GOTIO RE-ISSUE THE TIO 01174000
  1214. CONTIO NC CSW+4(2),=AL1(X'FF'-CE-DE-UE,X'FF') ANY ERRORS? @VA09171 01175100
  1215. BCR 8,R10 NO -- RETURN 01176000
  1216. CLI RDEVTYPC,CLASTAPE TAPE ? 01177000
  1217. BCR 7,R10 NO -- RETURN 01178000
  1218. TM CSW+4,CUE CONTROL UNIT END ? 01179000
  1219. BCR 1,R10 YES -- 01180000
  1220. L R9,CSW GET CSW CCW PTR 01181000
  1221. S R9,CCWLN -8...ADDR OF CCW @V407510 01182000
  1222. CLI 0(R9),X'01' WRITE CCW ? 01183000
  1223. BE WRITERR YES 01184000
  1224. CLI 0(R9),X'1F' WRITE TAPE MARK ? 01185000
  1225. BNE PRERSIO NO -- RE-EXECUTE THE FAILING CCW 01186000
  1226. LA R9,TAPERR2 GET BACK SPACE AND REWRITE TAPE MARK CCWS 01187000
  1227. B PRERSIO 01188000
  1228. WRITERR DS 0H 01189000
  1229. LA R9,TAPERR1 GET TAPE ERROR CCWS 01190000
  1230. PRERSIO ST R9,CAW SET CAW 01191000
  1231. B PRSIO 01192000
  1232. EJECT 01193000
  1233. DMPPRGCK EQU * HERE WHEN A PROGRAM CHECK OCCURRS 01194000
  1234. MVI DMPABMC,C'5' SET MESSAGE NUMBER 01195000
  1235. MVC DMPABMT(13),=C'PROGRAM CHECK' 01196000
  1236. B DMPAB 01197000
  1237. SPACE 1 01198000
  1238. DMPMCHCK EQU * HERE WHEN A MACHINE CHECK OCCURRS 01199000
  1239. MVI DMPABMC,C'6' SET MESSAGE NUMBER 01200000
  1240. MVC DMPABMT(24),=C'MACHINE CHECK, RUN SEREP' 01201000
  1241. B DMPAB 01202000
  1242. SPACE 1 01203000
  1243. DMPIOERR EQU * HERE WHEN A FATAL I/O ERROR OCCURRS 01204000
  1244. MVI DMPABMC,C'7' SET MESSAGE NUMBER 01205000
  1245. MVC DMPABMT(15),=C'FATAL I/O ERROR' 01206000
  1246. SPACE 1 01207000
  1247. DMPAB L R0,ABCCW GET COUNT AND ADDRESS OF MSG @V200735 01208000
  1248. BAL R9,TYPLINE WRITE OUT MESSAGE @V200735 01209000
  1249. B SHUTEND SHUT SYSTEM DOWN 01210000
  1250. DMPERR DS 0H ERROR SIGNALLING PROCESSOR TO @V407510 01211000
  1251. * STOP & STORE STATUS @V407510 01212000
  1252. L R5,PREFRG GET OWN PREFIX REGISTER @V407510 01213000
  1253. STM R0,R15,GRLOG-PSA(R5) SAVE BAD STATUS REGS @V407510 01214000
  1254. L R0,DERRMSG GET COUNT AND ADDR OF MSG @V407510 01215000
  1255. BAL R9,TYPLINE WRITE OUT MESSAGE @V407510 01216000
  1256. BR R4 RETURN TO CALLER @V407510 01217000
  1257. DMPUNIP DS 0H STPX FAILED..UNIPROCESSING @V4M0124 01218000
  1258. OI DMPSTAT,DMPUNI INDICATE UNIPROCESSING @V4M0124 01219000
  1259. B PREFSTOR CONTINUE PROCESSING @V4M0124 01220000
  1260. EJECT 01221000
  1261. TYPLINE EQU * HERE TO TYPE A LINE ON THE @V200735 01222000
  1262. * SYSTEM CONSOLE 01223000
  1263. ST R0,DATACCW STORE LINE COUNT AND ADDRESS @V200735 01224000
  1264. LA R3,TYPELIST POINT TO TYPE LIST @V200735 01225000
  1265. LR R5,R1 SAVE CONTENT OF REGISTER 1 @VM08555 01226000
  1266. TYPELP1 LA R2,ALARM PARM = ALARM @V200735 01227000
  1267. TYPELP EQU * CONSOLE MESSAGE LOOP @V200820 01228000
  1268. SR R0,R0 CLEAR COUNT @V200735 01229000
  1269. SR R1,R1 AND ADDRESS REGS @V200735 01230000
  1270. ICM R1,B'0111',1(R3) ADDRESS OF LINE TO WRITTEN @V200735 01231000
  1271. BZ TYPMSGE BRANCH IF ADDRESS IS ZERO @VM08555 01232000
  1272. IC R0,0(R3) GET LINE COUNT @V200735 01233000
  1273. CALL DMKOPRWT CALL TO OUTPUT THE MESSAGE LINE @V200820 01234000
  1274. BC 2+1,TYPMSGE EXIT IF CONSOLE BUSY OR MISSING @VA03871 01235000
  1275. SR R2,R2 CLEAR PARM REG @V200735 01236000
  1276. LA R3,4(R3) POINT TO NEXT COUNT AND LINE @V200735 01237000
  1277. ICM R0,B'1111',4(R3) IS THIS THE LAST ONE ? @V200735 01238000
  1278. BZ TYPELP1 YES -- ADD ALARM TO PARM REG @V200735 01239000
  1279. B TYPELP GO WRITE NEXT LINE @V200735 01240000
  1280. TYPMSGE EQU * @VM08555 01241000
  1281. LR R1,R5 GET REGISTER 1 CONTENT @VM08555 01242000
  1282. BR R9 RETURN TO IN LINE CODE @VM08555 01243000
  1283. EJECT 01244000
  1284. * CONSTANTS AND LITERAL POOL 01245000
  1285. SPACE 1 01245030
  1286. *************************************************************** 01245060
  1287. * THE FOLLOWING FIELDS ARE INITIALIZED BY DMKCPI 01245090
  1288. * DMKDMPMA, DMKDMPAA AND DMKDMPSA ARE ALSO INITIALIZED 01245120
  1289. * BY DMKCPU 01245150
  1290. SPACE 1 01245180
  1291. DMKDMPDV DC A(0) PTR TO DUMP DEVICE RDEVBLOK 01245210
  1292. DMKDMPAU DC A(0) PTR TO AUTOMATIC DUMP DEVICE RDEVBLOK 01245240
  1293. DMKDMPRC DC A(0) PTR TO RECBLOK CHAIN FOR AUTOMATIC DUMP *01245270
  1294. DEVICE 01245300
  1295. DMKDMPTD DC D'0' TOD CLOCK AT 00.00.00 TODAY @V407510 01245330
  1296. TODATE2W EQU DMKDMPTD+4 SECOND WORD OF TODATE @V407510 01245360
  1297. DMKDMPDT DC D'0' DATE - MM/DD/YY - EDITED EBCDIC @V407510 01245390
  1298. DMKDMPSD DC H'0' SYSTEM IPL DEVICE @V407510 01245420
  1299. * DMKDMPMA & DMKDMPAA ARE EQUAL IN UNIPROCESSOR MODE 01245450
  1300. DMKDMPMA DC H'0' MAIN PROCESSOR ADDRESS @V407510 01245480
  1301. DMKDMPAA DC H'0' ATTACHED PROCESSOR ADDRESS @V407510 01245510
  1302. * DMKDMPSA IS EQUAL ZERO IN UNIPROCESSOR MODE 01245540
  1303. DMKDMPSA DC D'0' SAVE AREA FOR THE PSA ADDRESSES @V5BC0AB 01245570
  1304. ORG DMKDMPSA 01245600
  1305. MAINPSA DS F ADDRESS OF THE MAIN PSA @V5BC0AB 01245630
  1306. ATTPSA DS F ADDRESS OF THE APU PSA @V5BC0AB 01245660
  1307. *************************************************************** 01245690
  1308. SPACE 1 01246000
  1309. PAGESIZE DC F'4096' SIZE OF 1 PAGE @V407510 01247000
  1310. * THIS CONSTANT MUST REMAIN IN 1ST @V407510 01248000
  1311. * PAGE OF DMKDMP BECAUSE IT IS @V407510 01249000
  1312. * USED TO SET UP ADDRESSABILITY TO @V407510 01250000
  1313. * THE SECOND PAGE @V407510 01251000
  1314. AL3PAGSZ EQU PAGESIZE+1 3 BYTE PAGESIZE @V407510 01252000
  1315. HWPAGSZ EQU PAGESIZE+2 HALFWORD PAGESIZE @V407510 01253000
  1316. SPACE 01254000
  1317. DS 0D ALIGN 01255000
  1318. IPLREAD CCW X'02',IPLPSW-PSA,SILI,24 READ DATA 01256000
  1319. CCW X'08',IPLCCW1-PSA,0,0 TIC 01257000
  1320. SPACE 01258000
  1321. TAPEINIT CCW X'93',0,CC+SILI,1 SET MODE 800,TR ON, D/C OFF 01259000
  1322. CCW X'2F',0,SILI,1 BACKSPACE FILE 01260000
  1323. SPACE 01261000
  1324. TAPERR2 CCW X'27',0,CC+SILI,1 BACK SPACE RECORD 01262000
  1325. WRITEOF CCW X'1F',0,CC+SILI,1 WRITE TAPE MARK 01263000
  1326. CCW X'1F',0,SILI,1 WRITE TAPE MARK 01264000
  1327. SPACE 01265000
  1328. TAPERR1 CCW X'27',0,CC+SILI,1 BACK SPACE RECORD 01266000
  1329. CCW X'17',0,CC+SILI,1 ERASE RECORD GAP 01267000
  1330. SPACE 1 01268000
  1331. TAPCCW CCW X'01',*,SILI,0 01269000
  1332. SPACE 1 01270000
  1333. SPACE 01271000
  1334. PRLINE CCW X'09',LINE,SILI,LINEL PRINT AND SPACE 1 LINE 01272000
  1335. SPACE 01273000
  1336. SUPCCW CCW X'09',SUPMSG,SILI,SUPMSGL PRINT AND SPACE 1 LINE 01274000
  1337. SPACE 01275000
  1338. SKIPCCW CCW X'89',SKIPMSG,SILI,SKIPMSGL 01276000
  1339. SPACE 01277000
  1340. PRLINESP CCW X'11',LINE,SILI,LINEL PRINT AND SPACE 2 LINES 01278000
  1341. SPACE 01279000
  1342. SKIPCH1 CCW X'89',BLANK,CC+SILI,20 01280000
  1343. CCW X'03',0,SILI,1 NOP 01281000
  1344. SPACE 1 @V60B9BA 01281100
  1345. INIT3800 CCW X'37',0,SILI+CC,1 INITIALIZE PRINTER @V60B9BA 01281200
  1346. CCW X'03',0,SILI,1 NOP @V60B9BA 01281300
  1347. SPACE 01282000
  1348. SENSE CCW X'04',SENSDATA,SILI,24 SENSE 01283000
  1349. SPACE 01284000
  1350. DISKCCW CCW X'07',SEEK,CC,6 SEEK 01285000
  1351. ALTSRCH EQU * RESUME POINT AFTER ALTERNATE SEEK@V56BDA8 01285100
  1352. CCW X'31',CYL,CC,5 SEARCH 01286000
  1353. CCW X'08',*-8,0,0 TIC 01287000
  1354. DISKWRIT CCW X'05',0,CC+SILI,4096 WRITE 01288000
  1355. CCW X'03',0,SILI,1 NOP 01289000
  1356. WRITADDR EQU DISKWRIT+1 ADDRESS TO WRITE FROM @V407510 01290000
  1357. WRITLEN EQU DISKWRIT+6 LENGTH OF DATA TO BE WRITTEN @V407510 01291000
  1358. SPACE 1 01291100
  1359. READHAR0 CCW 7,SEEK,CC,6 @V56BDA8 01291150
  1360. CCW 26,0,CC+SILI+SKIP,5 @V56BDA8 01291200
  1361. CCW 22,ALTR0ADD,SILI,4 @V56BDA8 01291250
  1362. SPACE 1 01291300
  1363. ALTSEEK CCW 07,ALTSKADD,CC+SILI,6 @V56BDA8 01291350
  1364. CCW 08,ALTSRCH,0,0 @V56BDA8 01291400
  1365. ALTSAVE DS F SAVE AREA FOR R14 @V56BDA8 01291450
  1366. ALTSKADD DC XL2'0' BB @V56BDA8 01291500
  1367. ALTR0ADD DS XL4 CCHH FROM RECORD 0 COUNT @V56BDA8 01291550
  1368. EJECT 01292000
  1369. DS 0F @V56BDA8 01292100
  1370. TYPELIST DC AL1(1),AL3(MSGBLK) @V200735 01293000
  1371. DC AL1(1),AL3(MSGBLK) @V200735 01294000
  1372. DC AL1(1),AL3(MSGBLK) @V200735 01295000
  1373. DATACCW DC A(0) @V200735 01296000
  1374. DC AL1(1),AL3(MSGBLK) @V200735 01297000
  1375. DC AL1(1),AL3(MSGBLK) @V200735 01298000
  1376. DC A(0) @V200735 01299000
  1377. SPACE 01300000
  1378. ABCCW DC AL1(DMPAMSGL),AL3(DMPAMSG) @V200735 01301000
  1379. SPACE 01302000
  1380. INTQMSG DC AL1(INTQLMSG),AL3(INTQAMSG) @V200735 01303000
  1381. SPACE 01304000
  1382. SFCCCW DC AL1(DMPSMSGL),AL3(DMPSMSG) @V200735 01305000
  1383. SPACE 01306000
  1384. DERRMSG DC AL1(DMPERRML),AL3(DMPERRM) @V407510 01307000
  1385. SPACE 01308000
  1386. DS 0D FOR PSW ALIGNMENT 01309000
  1387. XWAIT1 DC A(WAITON,4) WAIT STOP 01310000
  1388. XWAIT2 DC A(WAITON,3) LOADED IN CASE OF ERROR 01311000
  1389. SPACE 01312000
  1390. IWAIT DC AL1(IOMASK),AL3(WAITON),A(0) 01313000
  1391. SPACE 01314000
  1392. DMPPSWS DC A(MCHEKENB,DMPPRGCK) 01315000
  1393. DC A(XMODEON,DMPMCHCK) 01316000
  1394. DC A(MCHEKENB) 01317000
  1395. DMPR0 DC F'0' SAVE AREA FOR GPR-0 01318000
  1396. DMPR14 DC F'0' SAVE AREA FOR GPR-14 01319000
  1397. DMPR15 DC F'0' SAVE AREA FOR GPR-15 01320000
  1398. SPACE 01321000
  1399. TEMPAD DS D TEMPORARY WORK AREA 01322000
  1400. TEMPADLO EQU TEMPAD+6 SIGNIFICANT DIGITS AFTER UNPACK @V407510 01323000
  1401. RSTPSW DC A(MCHEKENB,DMPRST) RESTART PSW FOR MAIN @V407510 01324000
  1402. SAVEPGMN DC D'0' SAVE PROGRAM NEW PSW @V407510 01325000
  1403. SAVEPGMO DC D'0' SAVE PROGRAM OLD PSW @V407510 01326000
  1404. SAVEPR DC F'0' SAVE INTPRL AND INTPR @V4M0111 01327000
  1405. SPECPGMN DC A(MCHEKENB,DMPUNIP) PROGRAM NEW FOR STPX @V4M0124 01328000
  1406. SPACE 01329000
  1407. LOWCORE DC 256X'00' LOW MEMORY SAVE AREA 01330000
  1408. * FOLLOWING AREAS ARE FOR THE ABENDING PROCESSOR @V407510 01331000
  1409. GREGS DC 16F'0' 16 GENERAL PURPOSE REGISTERS @V407510 01332000
  1410. CTLREGS DC 16F'0' 16 CONTROL REGISTERS 01333000
  1411. AIF (NOT &FLOATPT).NOFP4 01334000
  1412. FPREGS DC 4D'0' 4 FLOATING POINT REGISTERS 01335000
  1413. .NOFP4 ANOP 01336000
  1414. TODCLOCK DC D'0' TIME OF DAY CLOCK 01337000
  1415. CPUTIMER DC D'0' CPU TIMER 01338000
  1416. CLKCOMP DC D'0' TIME OF DAY CLOCK COMPARATOR 01339000
  1417. PROCA DC H'0' PROCESSOR ADDRESS @V407510 01340000
  1418. PREFRG DC F'0' PREFIX REGISTER @V407510 01341000
  1419. ALLONES DC F'-1' X'FFFFFFFF' @V407510 01344000
  1420. CONS4095 DC F'4095' PAGE SIZE - 1 @V407510 01345000
  1421. ALLZEROS DC F'0' X'00000000' @V407510 01346000
  1422. CCWLN DC F'8' LENGTH OF CCW @V407510 01347000
  1423. BITSPB EQU CCWLN 8...BITS PER BYTE @V407510 01348000
  1424. PAGLINE DC F'60' X'0000003C' 60 LINES PER PAGE @V407510 01349000
  1425. SECPMIN EQU PAGLINE 60...SECONDS PER MINUTE @V407510 01350000
  1426. ABCODE DS 0F ABEND CODE @V407510 01351000
  1427. ABCODEMD DC 3C' ' MODULE NAME @V407510 01352000
  1428. ABCODENU DC 1X'0' ABEND DIGIT @V407510 01353000
  1429. P3800 DC X'1045' 3800 RDEVTYPC,RDEVTYPE @V60B9BA 01353100
  1430. MONCAD DC F'0' SAVED ADDRESS OF MONCOM @V2B2638 01354000
  1431. SPACE 01355000
  1432. DS 0F 01356000
  1433. DISABLMC DC AL1(HARDSTOP+DAMAGRPT),AL3(0) MASK TO DISABLE @VA01130 01357000
  1434. DC A(512) SOFT M.C. RECORDING AND RESET LOGOUT 01358000
  1435. SPACE 01359000
  1436. DMPSTAT DC X'0' STATUS OF SYSTEM..UP OR AP @V4M0124 01375000
  1437. SPACE 01376000
  1438. DMPSYSVM DC V(DMKSYSVM) ADDR SYSTEM VMBLOK @V407510 01377000
  1439. DMPRIODV DC V(DMKRIODV) ADDR FIRST RDEVBLOK @V407510 01378000
  1440. DMPCORET DC V(DMKSYSCS) ADDR OF SYSTEM CORE TABLE @V407510 01379000
  1441. DMPRSPRD DC V(DMKRSPRD) ADDR OF SYSTEM RDR FILE CHAIN @V407510 01380000
  1442. STORSIZE DC F'0' SPACE FOR STORAGE SIZE @VA01097 01381000
  1443. SPACE 01382000
  1444. ALOCBIT DC X'8040201008040201' 01383000
  1445. SPACE 01384000
  1446. DMKDMPSW DC X'00' FLAG BYTE 01385000
  1447. DMPMAP DC X'00' BIT MAP FOR PAGES 0-3 @VW01525 01386000
  1448. SPACE 01387000
  1449. HOLD DC CL32' ' 01388000
  1450. SPACE 01389000
  1451. SENSDATA DC 24X'00' SENSE BYTES 01390000
  1452. SPACE 01391000
  1453. SAVKEY DC 8X'00' 01392000
  1454. SPACE 01393000
  1455. SEEK1 DC X'0000' BB 01394000
  1456. IPL1 DC X'0000000001' CC, HH, R 01395000
  1457. TAPOP4 DC X'00' FOR TAPE DUMP 01396000
  1458. BLANK DC CL20' ' 01397000
  1459. DS 0H ALIGN 01398000
  1460. SPACE 01399000
  1461. SEEK DC 7X'00' 01400000
  1462. ORG SEEK 01401000
  1463. BB DS 2X BIN 01402000
  1464. CYL DS 2X CYLINDER 01403000
  1465. HHR DS 3X HEAD & RECORD 01404000
  1466. DMPLOCK DC X'00' DMKDMP LOCK @V407510 01405000
  1467. * END OF DATA FOR ABENDING PROCESSOR @V407510 01406000
  1468. EJECT 01407000
  1469. * TRANSLATE TABLE ALSO USED BY DMKCDB 01408000
  1470. DMKDMPTR DC 64C'.' UNPRINTABLE CHARACTERS 01409000
  1471. DC C' ' BLANK 01410000
  1472. DC 10C'.' 01411000
  1473. DC C'.<(+|&&' 01412000
  1474. DC 10C'.' 01413000
  1475. DC C'$*);¬-/' 01414000
  1476. DC 9C'.' 01415000
  1477. DC X'6B6C' 'COMMA' & 'PERCENT' SIGNS 01416000
  1478. DC C'_>?' 01417000
  1479. DC 10C'.' 01418000
  1480. DC C':' 01419000
  1481. DC X'7B7C' 'POUND' & 'AT' SIGNS 01420000
  1482. DC C'''="' 01421000
  1483. DC 64C'.' 01422000
  1484. DC C'.ABCDEFGHI' 01423000
  1485. DC 7C'.' 01424000
  1486. DC C'JKLMNOPQR' 01425000
  1487. DC 8C'.' 01426000
  1488. DC C'STUVWXYZ' 01427000
  1489. DC 6C'.' 01428000
  1490. DC C'0123456789' 01429000
  1491. DC 6C'.' 01430000
  1492. SPACE 01431000
  1493. TRHEX EQU *-C'0' 01432000
  1494. DC C'0123456789ABCDEF' 01433000
  1495. EJECT 01434000
  1496. TAPOP1 DC X'00' FOR TAPE DUMP 01435000
  1497. LINE EQU * 01436000
  1498. LINEID DC CL11' ' DATA ADDRESS & LINE IDENTIFIER 01437000
  1499. DC CL1' ' 01438000
  1500. DATA DC 8CL10' ' DATA 01439000
  1501. KEY DC CL2' ' KEY 01440000
  1502. DC C' ' 01441000
  1503. DATATR DC CL32' ' TRANSLATED DATA 01442000
  1504. LINEND DC C' ' 01443000
  1505. LINEL EQU *-LINE LENGTH OF OUTPUT LINE 01444000
  1506. SPACE 01445000
  1507. TAPOP2 DC X'00' FOR TAPE DUMP 01446000
  1508. SUPMSG EQU * 01447000
  1509. SUPFROM DC CL6' ' 01448000
  1510. DC C' TO ' 01449000
  1511. SUPTO DC CL6' ' 01450000
  1512. DC C' SUPPRESSED LINE(S) SAME AS ABOVE .....' 01451000
  1513. SUPMSGL EQU *-SUPMSG LENGTH OF SUPPRSSED MESSAGE 01452000
  1514. SPACE 01453000
  1515. TAPOP3 DC X'00' FOR TAPE DUMP 01454000
  1516. SKIPMSG EQU * 01455000
  1517. SKIPFROM DC CL6' ' 01456000
  1518. DC C' TO ' 01457000
  1519. SKIPTO DC CL6' ' 01458000
  1520. MSGBLK EQU * @V200735 01459000
  1521. DC C' SUPPRESSED NON-CONTROL-PROGRAM PAGE(S) .....' 01460000
  1522. SKIPMSGL EQU *-SKIPMSG LENGTH OF PAGES SUPPRESSED MESSAGE 01461000
  1523. SPACE 01462000
  1524. DMPAMSG DC C'DMKDMP90' @V200735 01463000
  1525. DMPABMC DC C' ' 01464000
  1526. DC C'W SYSTEM DUMP FAILURE; ' 01465000
  1527. DMPABMT DC CL24' ' 01466000
  1528. DMPAMSGL EQU *-DMPAMSG LENGTH OF DUMP ABEND MESSAGE 01467000
  1529. SPACE 1 01468000
  1530. DMPERRM DC C'DMKDMP918I SYSTEM DUMP FAILURE; ' @VA13645 01469100
  1531. DC C'STATUS NOT STORED FOR NON-ABENDING PROCESSOR' @V407510 01470000
  1532. DMPERRML EQU *-DMPERRM LENGTH OF ERROR MESSAGE @V407510 01471000
  1533. INTQAMSG DC C'DMKDMP909W SYSTEM DUMP DEVICE; NOT-READY' @V200735 01472000
  1534. INTQLMSG EQU *-INTQAMSG LENGTH OF NOT-READY MESSAGE 01473000
  1535. SPACE 01474000
  1536. DMPSMSG EQU * @V200735 01475000
  1537. DMPTIME DC CL9'00:00:00 ' TIME OF DUMP @VA01097 01476000
  1538. DC C'DMKDMP908I SYSTEM FAILURE; CODE ' 01477000
  1539. DMPSCOD DC C'MMMCCC' 01478000
  1540. DC C' PROCESSOR ' @V407510 01479000
  1541. DMPROC DC CL2'NN' PROCESSOR ADDRESS @V407510 01480000
  1542. DMPROCL EQU DMPROC+1 LAST DIGIT OF PROCESSOR ADDRESS @V407510 01481000
  1543. DMPSMSGL EQU *-DMPSMSG 01482000
  1544. * EQUATES @V407510 01483000
  1545. DBL EQU 8 DOUBLE WORD MOVE LENGTH @V407510 01484000
  1546. RETRY EQU 256 RETRY SIGP 256 TIMES @V407510 01485000
  1547. NAMELN EQU 3 LENGTH OF ABENDED MODULE NAME @V407510 01486000
  1548. GRGLN EQU 16*4 LENGTH OF GENERAL REGS @V407510 01487000
  1549. REGLN EQU 32*4 LENGTH OF GPREGS AND CREGS @V407510 01488000
  1550. GPREG5 EQU 4*5 R5 SLOT IN DUMPSAVE @V407510 01489000
  1551. ZONE EQU X'F0' ZONE TO CLEAR SIGN FIELD @V407510 01490000
  1552. HALFLINE EQU DATA+24 MID-LINE AREA @V407510 01491000
  1553. HALFDATA EQU DATA+40 MID-LINE DATA AREA @V407510 01492000
  1554. BLNK EQU X'40' BLANK @V407510 01493000
  1555. FULLPAGE EQU 128 NUMBER LINES FOR 4096 PAGE @V407510 01494000
  1556. TRLEN EQU 8 TRANSLATE LENGTH @V407510 01495000
  1557. PKLEN EQU 9 UNPK LENGTH @V407510 01496000
  1558. LNTIMER EQU 16 LENGTH OF CPU TIMER & @V407510 01497000
  1559. * CLOCK COMPARATOR @V407510 01498000
  1560. SSCLK EQU 88 AREA CLOCKS ARE STORED FOR SSS @V407510 01499000
  1561. LNLOG EQU 16 LENGTH OF PSW, PREFIX REGISTER @V407510 01500000
  1562. * AND MODEL DEPENDENT FEATURE @V407510 01501000
  1563. LNREGS EQU 4*8+4*16+4*16 LENGTH OF FLOATING POINT REGS, @V407510 01502000
  1564. * GENERAL REGS, & CONTROL REGS @V407510 01503000
  1565. LN12 EQU 12 LENGTH OF HEADING @V407510 01504000
  1566. LN18 EQU 18 LENGTH OF HEADING @V407510 01505000
  1567. LN22 EQU 22 LENGTH OF HEADING @V407510 01506000
  1568. LCLN EQU 256 LENGTH OF LOWCORE SAVED @V407510 01507000
  1569. PAGE EQU 4096 @V4M0105 01508000
  1570. DMPUNI EQU X'80' INDICATE UNIPROCESSOR MODE @V4M0124 01509000
  1571. PROCBUSY EQU 2 CONDITION CODE 2 INDICATES BUSY @V4M0127 01510000
  1572. EJECT 01511000
  1573. LTORG 01512000
  1574. EJECT 01513000
  1575. COPY EQU 01514000
  1576. SPACE 01515000
  1577. WAITON EQU (EXTMODE+MCHEK+WAIT)*X'10000' 01516000
  1578. MCHEKENB EQU (MCHEK+EXTMODE)*X'10000' 01517000
  1579. XMODEON EQU EXTMODE*X'10000' 01518000
  1580. SPACE 01519000
  1581. * BITS DEFINED IN DMPSW 01520000
  1582. ALL EQU X'80' ON MEANS DUMP ALL OF MEMORY 01521000
  1583. BREAKSUP EQU X'40' ON MEANS TURN SUPPRESSION MECHANISM OFF 01522000
  1584. LINESUP EQU X'20' ON MEANS SUPPRESSION MECHANISM ACTIVE 01523000
  1585. DOUBLESP EQU X'10' ON MEANS DOUBLE SPACE AFTER THIS LINE 01524000
  1586. SKIPSUP EQU X'08' ON MEANS LINES BEING SUPPRESSED BECAUSE *01525000
  1587. PAGES ARE NOT CONTROL PROGRAM PAGES 01526000
  1588. SPACE 1 01526100
  1589. RTCNT1 EQU 65 RETRY COUNT + 1 FOR 3340/3344 @V56BDA8 01526200
  1590. TRKCONCK EQU X'02' TRACK CONDITION CHECK @V56BDA8 01526300
  1591. EJECT 01527000
  1592. COPY DEVTYPES 01528000
  1593. COPY IOBLOKS @V2B2638 01529000
  1594. COPY MONBLOKS @V2B2638 01530000
  1595. PSA 01531000
  1596. COPY RBLOKS 01532000
  1597. COPY CORE 01533000
  1598. COPY ALLOC 01534000
  1599. COPY SPOOL 01535000
  1600. COPY DMPBLOKS 01536000
  1601. EJECT 01537000
  1602. DMKDMP CSECT 01538000
  1603. SPACE 01539000
  1604. DMKDMPSF DC (SFBSIZE)D'0' SFBLOK FOR AUTOMATIC DUMP DEVICE 01540000
  1605. ORG DMKDMPSF+(SFBRECSZ-SFBLOK) 01541000
  1606. DC H'4096' 01542000
  1607. ORG DMKDMPSF+(SFBFLAG-SFBLOK) 01543000
  1608. DC AL1(SFBDUMP) 01544000
  1609. ORG DMKDMPSF+(SFBRECNO-SFBLOK) 01545000
  1610. DMPNOREC DC F'4' NUMBER OF RECORDS IN DUMP FILE @VW01525 01546000
  1611. ORG DMKDMPSF+(SFBFNAME-SFBLOK) 01547000
  1612. DC CL12'CPDUMP' @VA04431 01548000
  1613. ORG DMKDMPSF+(SFBFTYPE-SFBLOK) 01549000
  1614. DC CL12'FILE' @VA04431 01550000
  1615. ORG DMKDMPSF+(SFBCLAS-SFBLOK) 01551000
  1616. DC C'D' 01552000
  1617. ORG DMKDMPSF+(SFBDIST-SFBLOK) @VA04431 01553000
  1618. DC CL8' ' @VA04431 01554000
  1619. ORG 01555000
  1620. SPACE 01556000
  1621. END 01557000