User Tools

Site Tools


ibm:vm370-lib:dumpscan:dmmedm.assemble_src

DMMEDM Source

References

Source Listing

DMMEDM.ASSEMBLE.txt
  1. EDM TITLE 'DMMEDM (IPCS) VM/370 - RELEASE 6' 00001000
  2. *. 00002000
  3. * MODULE NAME - DMMEDM 00003000
  4. * 00004000
  5. * FUNCTION - TO EDIT AND PRINT A CP DUMP. 00005000
  6. * 00006000
  7. * ATTRIBUTES - RUNS IN A VIRTUAL MACHINE UNDER CMS 00007000
  8. * CONTROL 00008000
  9. * 00009000
  10. * ENTRY POINTS - DMMEDMP 00010000
  11. * 00011000
  12. * ENTRY CONDITIONS - GPR 1=ADDRESS OF OPTION LIST 00012000
  13. * GPR 13=SVC SAVEAREA ADDRESS 00013000
  14. * GPR 14=RETURN ADDRESS 00014000
  15. * GPR 15=ENTRY POINT ADDRESS 00015000
  16. * 00016000
  17. * EXIT CONDITIONS - 1. IF ERROR IS ENCOUNTERED READING TH 00017000
  18. * CP DUMP FILE. GPR= NON ZERO. REFER TO 00018000
  19. * RDBUF FOR CODE MEANINGS. 00019000
  20. * 00020000
  21. * CALLS TO OTHER - RDBUF VIA SVC TO READ IN DUMP FILE. 00021000
  22. * ROUTINES ERASE VIA SVC TO DELETE THE CP DUMP 00022000
  23. * FILE FROM THE P-DISK. 00023000
  24. * CLOSIO VIA SVC TO CLOSE OUT PRINTER. 00024000
  25. * PRINTR VIA SVC TO PRINT A LINE ON 00025000
  26. * THE PRINTER. 00026000
  27. * TYPLIN VIA SVC TO WRITE MESSAGE TO 00027000
  28. * CONSOLE. 00028000
  29. * 00029000
  30. * 00030000
  31. * EXTERNAL REFERENCES - NONE 00031000
  32. * 00032000
  33. * 00033000
  34. * TABLES AND WORK AREAS - BUFF,BUFF2,HOLD,WORK,WORK2 00034000
  35. * 00035000
  36. * 00036000
  37. * REGISTER USAGE - GPR 0-7= SCRATCH 00037000
  38. * GPR 8= BUFF 00038000
  39. * GPR 9= BUFF2 00039000
  40. * GPR 10= PRTLINE 00040000
  41. * GPR 11= DMMEDMP+4096 00041000
  42. * GPR 12= DMMEDMP BASE 00042000
  43. * GPR 13= SAVEAREA ADDRESS 00043000
  44. * GPR 14= RETURN ADDRESS 00044000
  45. * GPR 15= RETURN CODE 00045000
  46. EJECT 00046000
  47. * 00047000
  48. * 00048000
  49. * NOTES - THE VDUMP EXEC PROCEDURE INVOKES 00049000
  50. * DMKFDM AND DMMEDM. 00050000
  51. * RE-ASSEMBLE BECAUSE SIZE OF 'VCONCTL' DSECT WAS CHANGED 00051000
  52. * 00052000
  53. * 00053000
  54. * OPERATION - 1. READS THE CP DUMP FROM THE CMS FILE. 00054000
  55. * 2. EDIT AND PRINT IN A READABLE FORMAT THE 00055000
  56. * FOLLOWING: 00056000
  57. * A. PSW'S 00057000
  58. * B. GPR'S, CREGS, AND FPREGS 00058000
  59. * C. TOD CLOCK, CLOCK COMPARATOR, CPU TIMER, 00059000
  60. * AND PREFIX REGISTER 00060000
  61. * D. CSW AND CAW 00061000
  62. * E. EXT, SVC, PGM, MCK, AND I/O PSWS 00062000
  63. * F. LOAD MAP 00063000
  64. * G. REAL DEVICE BLOCKS AND ASSOCIATED CONTROL 00064000
  65. * BLOCKS; 00065000
  66. * - RCHBLOK,RCUBLOK,RDEVBLOK,IOBLOK,RESPLCTL, 00066000
  67. * SFBLOK,IOERBLOK,ALOCBLOK,RECBLOK 00067000
  68. * H. SFBLOK CHAINS FOR READER,PRINTER,AND 00068000
  69. * PUNCH FILES. 00069000
  70. * I. CORE TABLE 00070000
  71. * J. EACH USERS VIRTUAL DEVICE BLOCKS AND 00071000
  72. * ASSOCIATED CONTROL BLOCKS 00072000
  73. * - VMBLOK,VCHBLOK,VCUBLOK,VDEVBLOK,VSPLCTL, 00073000
  74. * SFBLOK,VCONCTL 00074000
  75. * K. EACH USERS SEGMENT,PAGE,AND SWAP TABLES. 00075000
  76. * 3. PRINT A HEX DUMP OF CORE SUPPRESSING PRINT 00076000
  77. * LINES THAT ARE DUPLICATES OF THE PRECEDING 00077000
  78. * LINES. 00078000
  79. * 4. OPERATOR OPTIONS WILL ALLOW; 00079000
  80. * A. PREVENTION OF A FORMATTED DUMP TO PRINT 00080000
  81. * B. PREVENTION OF A HEX DUMP TO PRINT 00081000
  82. * C. THE CMS DUMP FILE TO BE ERASED. 00082000
  83. * D. A LOAD MAP TO BE PRINTED. 00083000
  84. * E. PRINTING OF DUMP AT THE USERS CONSOLE. 00084000
  85. * F. DEFAULT OF OPTIONS WILL CAUSE A FORMATTED 00085000
  86. * AND HEX DUMP TO BE PRINTED ON DEVICE 00E. 00086000
  87. *. 00087000
  88. * 5. IF A CHANNEL 12 CONDITION IS DETECTED 00088000
  89. * (FROM A VIRTUAL 3211) THEN THE LINE COUNT 00089000
  90. * IS SET TO 60 SO THAT AN EJECT WILL BE PERFORMED 00090000
  91. * ON THE NEXT REQUEST TO PRINT A LINE. 00091000
  92. * CHANNEL 9 RETURN CODES ARE IGNORED. 00092000
  93. EJECT 00093000
  94. DMMEDM CSECT @VA04250 00094000
  95. USING *,R15 @VA04250 00095000
  96. LM R11,R13,BASES LOAD BASE REGS @VA04250 00096000
  97. USING DMMEDM,R11,R12,R13 @VA04250 00097000
  98. DROP R15 @VA04250 00098000
  99. ENTRY DUMPLIST @VA04250 00099000
  100. ENTRY RETN @VA04250 00100000
  101. STM R14,R1,REGSAVE @V407510 00101000
  102. L R8,=A(ITEM2) SET BUFFER ADDRESS @VA04250 00102000
  103. USING ITEM2,R8 @VA04250 00103000
  104. MVC REGSAVE+K4(K4),=F'0' @V407510 00104000
  105. WRTERM VDUMSG,VDUMSGL WRITE HEADER @VA04250 00105000
  106. L R1,REGSAVE+K12 RESTORE R1 TO PARM LIST @V407510 00106000
  107. SPACE 1 00107000
  108. B CHKOP @VA04250 00108000
  109. BASES DC A(DMMEDM,DMMEDM+4096,DMMEDM+8192) @VA04250 00109000
  110. VDUMSG DC C'VM/370 ABEND DUMP EXTRACT, EDIT, AND PRINT' @VA04250 00110000
  111. VDUMSGL EQU *-VDUMSG @VA04250 00111000
  112. SPACE 3 00112000
  113. * ********************************************* 00113000
  114. * * DETERMINE OPTIONS SPECIFIED BY USER * 00114000
  115. * ********************************************* 00115000
  116. SPACE 3 00116000
  117. CHKOP LA R7,8(R1) POINT TO OPTIONS LIST @VA04250 00117000
  118. CLI 0(R7),XFF ANY OPTIONS ?? @VA04250 00118000
  119. BE READFILE NO, READ CP DUMP @VA04250 00119000
  120. LA R4,OPLIST PARM LIST @VA04250 00120000
  121. CLC 0(4,R7),=CL4'DUMP' FIRST PARM DUMP ?? @VA04250 00121000
  122. BE DOEDM YES, EDIT SPECIFIC FILE @VA04250 00122000
  123. CLC 0(3,R7),=C'PRB' FIRST PARM 'PRB'? @VA04250 00123000
  124. BE DOEDM YES, EDIT SPECIFIC FILE @VA04250 00124000
  125. OPLOOP CLC 0(8,R7),0(R4) COMP PARM @VA04250 00125000
  126. BE FNDOP FOUND @VA04250 00126000
  127. CLI 0(R4),XFF AT END @VA04250 00127000
  128. BE ERROP YES @VA04250 00128000
  129. LA R4,8(R4) NEXT PARM @VA04250 00129000
  130. B OPLOOP REPEAT @VA04250 00130000
  131. FNDOP MVI 7(R4),X01 FLAG AS FOUND @VA04250 00131000
  132. NXTOP LA R7,8(R7) NEXT PARM @VA04250 00132000
  133. LA R4,OPLIST RESET LIST @VA04250 00133000
  134. CLI 0(R7),XFF AT END OF OPTION LIST ?? @VA04250 00134000
  135. BNE OPLOOP NO, LOOK FOR MORE @VA04250 00135000
  136. B TSTFILE DONE @VA04250 00136000
  137. DOEDM MVC DUMP,0(R7) SAVE DUMP FILE NAME @VA04250 00137000
  138. B NXTOP GET MORE @VA04250 00138000
  139. ERROP MVC ERR1OP,0(R7) ERROR PARM @VA04250 00139000
  140. B ERROR1 EXIT @VA04250 00140000
  141. SPACE 2 00141000
  142. TSTFILE CLI DUMP,C'D' DUMP SPECIFIC FILE ?? @VA04250 00142000
  143. BE SETEDM YES, SET UP EDIT @VA04250 00143000
  144. READFILE DS 0H @VA04250 00144000
  145. CLI DUMP,C'P' DUMP SPECIFIC FILE ? @VA04250 00145000
  146. BNE RDUMP NO, READ CP DUMP @VA07214 00146000
  147. SPACE 2 00147000
  148. SETEDM MVC DUMPFILE+8(8),DUMP SET FSCB @VA04250 00148000
  149. FSSTATE FSCB=DUMPFILE,ERROR=ERROR3 LOOK FOR FILE @VM08728 00149000
  150. MVC PRBFN,DUMP MOVE REPORT FILENAME TO DUMP @VA04250 00150000
  151. LA R2,PRBFILE POINT TO PROBLEM REPORT FN FT @VA04250 00151000
  152. FSSTATE (R2),ERROR=NOREPORT @VA04250 00152000
  153. XC DATA,DATA CLEAR OUTPUT DATA @VA04250 00153000
  154. MVI CTL,SPACE1 SET FOR SINGLE SPACING @VA04250 00154000
  155. PNLOOP FSREAD (R2),ERROR=NOREPORT,BUFFER=DATA,BSIZE=80 @VA04250 00155000
  156. BAL R6,PRINTA GO PRINT THIS LINE OF REPORT @VA04250 00156000
  157. B PNLOOP PRINT UNTIL END OF FILE @VA04250 00157000
  158. NOREPORT MVI CTL,SPACE2 RESET TO DOUBLE SPACING @VA04250 00158000
  159. MVC DMPP,DUMP GET NAME @VA04250 00159000
  160. WRTERM DMSG,DMSGL @VA04250 00160000
  161. MVC BSIZE(4),=F'8192' SET BUFFER SIZE FOR 2 PAGES @VA04250 00161000
  162. B EDITDUMP DO EDIT DUMP @VA04250 00162000
  163. SPACE 2 00163000
  164. RDUMP BAL R2,READCPR READ CP RECORD @VA04250 00164000
  165. *********************************************************** 00165000
  166. ST R1,SAVEPRB SAVE R1 FOR LATER @VA05446 00166000
  167. L R1,REGSAVE+K12 RESTORE R1 TO PARM LIST @V407510 00167000
  168. L R15,=V(DMMINI) POINT TO DATA EXTRACTION RTN @VA05446 00168000
  169. BALR R14,R15 GO ASSIGN A DUMP NUMBER @VA05446 00169000
  170. L R1,SAVEPRB RESTORE R1 @VA05446 00170000
  171. LA R4,DUMPLIST GET NAME OF FILE @VA07214 00171000
  172. MVC DUMP,0(R4) SAVE FILE NAME @VA07214 00172000
  173. MVC DUMPFILE+8(8),0(R4) SET FSCB NAME @VA07214 00173000
  174. BAL R2,WTREC WRITE FIRST ITEM .. LOAD MAP @VA04250 00174000
  175. BAL R2,READCPR GET NEXT CP RECORD @VA04250 00175000
  176. BAL R2,WTREC WRITE INFO REC...REWRITE LATER @VA04250 00176000
  177. L R10,=A(BUFF) BASE @VA04250 00177000
  178. USING DMPINREC,R10 BASE @VA04250 00178000
  179. MVC I2GRS(4*16),DMPGPRS SAVE GREGS @VA04250 00179000
  180. MVC I2CRS(4*16),DMPCRS SAVE CREGS @VA04250 00180000
  181. MVC I2FPRS(4*8),DMPFPRS SAVE FPREGS @VA04250 00181000
  182. MVC I2TOD(8*4),DMPTODCK SAVE CLOCKS @VA04250 00182000
  183. MVC I2LCORE(256),DMPLCORE SAVE LOW CORE @VA04250 00183000
  184. MVC I2SYSRV,DMPSYSRV ***** DMPSYSRV ******* @VA04250 00184000
  185. MVC I2PRFRG,DMPPRFRG SAVE PREFIX REGISTER @V407510 00185000
  186. MVC I2AB,DMPABEND SAVE ABEND CODE @V407510 00186000
  187. MVC I2PROCA,DMPPROCA SAVE PROCESSOR ADDRESS @V407510 00187000
  188. * NOW BUILD ITEM TABLE FROM BIT MAP 00188000
  189. SR R2,R2 CLEAR @VA04250 00189000
  190. L R4,=A(ITEMTBL) BASE OF TABLE @VA04250 00190000
  191. LA R7,128 MAX WORDS @VA04250 00191000
  192. LA R3,DMPPGMAP BASE OF BIT MAP @VA04250 00192000
  193. NXTWD L R5,0(R3) GET FIRST WORD @VA04250 00193000
  194. LA R6,32 COUNT @VA04250 00194000
  195. TSTBIT LTR R5,R5 TEST FOR HI BIT @VA04250 00195000
  196. BNM NXTBIT NO @VA04250 00196000
  197. STH R2,0(R4) SAVE PAGE NUMBER IN ITEM TABLE @VA04250 00197000
  198. LA R4,2(R4) UP ITEM INDEX @VA04250 00198000
  199. NXTBIT LA R2,1(R2) UP PAGE NUMBER @VA04250 00199000
  200. SLL R5,1 SHIFT FOR NEXT TEST @VA04250 00200000
  201. BCT R6,TSTBIT REPEAT @VA04250 00201000
  202. LA R3,4(R3) NEXT WORD @VA04250 00202000
  203. BCT R7,NXTWD LOOP FOR ALL OF MAP @VA04250 00203000
  204. MVC 0(2,R4),=X'FFFF' MARK END OF TABLE @VA04250 00204000
  205. SPACE 2 00205000
  206. * ITEM TABLE CREATED 00206000
  207. BAL R2,READCPR READ KEY RECORD 1 @VA04250 00207000
  208. BAL R2,WTREC WRITE AS ITEM 3 @VA04250 00208000
  209. BAL R2,READCPR READ KEY RECORD 2 @VA04250 00209000
  210. BAL R2,WTREC WRITE AS ITEM 4 @VA04250 00210000
  211. BAL R2,READCPR READ PAGE 0 RECORD @VA04250 00211000
  212. MVC 0(256,R10),I2LCORE SET PAGE 0 LOW CORE @VA04250 00212000
  213. BAL R2,WTREC WRITE AS ITEM 5 @VA04250 00213000
  214. USING PSA,R10 BASE @VA04250 00214000
  215. MVC I2DATE,DATE @VA04250 00215000
  216. * CALCULATED TIME OF CRASH 00216000
  217. * THIS CODE FROM DMKCVTDT 00217000
  218. LM R0,R1,I2TOD GET TOD CLOCK AT CRASH @VA04250 00218000
  219. SL R1,TODATE+4 MINUS BASE AT MIDNITE @VA04250 00219000
  220. BC 11,*+8 OVERFLOW ?? @VA04250 00220000
  221. SL R0,=F'1' ADJUST @VA04250 00221000
  222. SL R0,TODATE .. @VA04250 00222000
  223. CL R0,=X'000141DD' IS THIS MAX. FOR ONE DAY ? @VA01199 00223000
  224. BH EDMMSG YES, BYPASS TIME @VA01199 00224000
  225. SRDL R0,12 MICROSECS SINCE MIDNITE @VA04250 00225000
  226. D R0,=F'1000000' CONVERT TO SECONDS @VA04250 00226000
  227. SR R0,R0 FORGET REMAINDER @VA04250 00227000
  228. D R0,=F'3600' GET HOURS @VA04250 00228000
  229. CVD R1,WORK3 .. @VA04250 00229000
  230. UNPK I2TIME(4),WORK3+6(3) .. @VA04250 00230000
  231. MVI I2TIME+2,C':' EDIT @VA04250 00231000
  232. LR R1,R0 REMAINING SECONDS @VA04250 00232000
  233. SR R0,R0 CLEAR @VA04250 00233000
  234. D R0,=F'60' GET MINUTES @VA04250 00234000
  235. CVD R1,WORK3 CONVERT @VA04250 00235000
  236. UNPK I2TIME+3(4),WORK3+6(3) .. @VA04250 00236000
  237. MVI I2TIME+5,C':' EDIT @VA04250 00237000
  238. CVD R0,WORK3 CONVERT SECONDS @VA04250 00238000
  239. UNPK I2TIME+6(2),WORK3+6(2) .. @VA04250 00239000
  240. OI I2TIME+7,XF0 SET ZONE @VA04250 00240000
  241. EDMMSG EQU * @VA01199 00241000
  242. MVC I2RCH(4*4),ARIOCT @VA04250 00242000
  243. MVC I2SPL(4*3),ARSPPR @VA04250 00243000
  244. MVC I2COR,ACORETBL @VA04250 00244000
  245. MVC I2VM,ASYSVM @VA04250 00245000
  246. MVC I2MPREF,PREFIXA SAVE MAIN PSA ADDR @V407510 00246000
  247. MVC I2APREF,PREFIXB SAVE ATTACHED PSA ADDR @V407510 00247000
  248. BAL R2,WTREC2 WRITE AS ITEM 2 @VA04250 00248000
  249. LA R2,5 RESET TO ITEM 5 @VA04250 00249000
  250. STH R2,ITEMNO .. @VA04250 00250000
  251. * TYPE CAUSE OF DUMP AND ASK TO CONTINUE 00251000
  252. MVC DATA(LABM),ABMSG ABEND MSG @VA04250 00252000
  253. MVC DATA+K25(K3),I2AB GET ABEND CODE @V407510 00253000
  254. L R1,I2AB GET NUMBER @V407510 00254000
  255. N R1,=X'000000FF' ISOLATE NUMBER @VA04250 00255000
  256. CVD R1,WORK3 CONVERT @VA04250 00256000
  257. OI WORK3+7,X0F SET ZONE @VA04250 00257000
  258. UNPK WORK3(3),WORK3+6(2) @VA04250 00258000
  259. MVC DATA+28(3),WORK3 GET ABEND CODE @VA00803 00259000
  260. MVC DATA+39(8),DATE MOVE MM/DD/YY @VA00803 00260000
  261. MVC DATA+57(8),I2TIME MOVE HH:MM:SS @VA00803 00261000
  262. MVC DATA+K66(K10),=C'PROCESSOR ' @V407510 00262000
  263. LH R1,I2PROCA GET PROCESSOR ADDRESS @V407510 00263000
  264. CVD R1,WORK3 CONVERT TO DECIMAL @V407510 00264000
  265. OI WORK3+K7,X0F SET ZONE @V407510 00265000
  266. UNPK WORK3(K2),WORK3+6(K2) PUT IN FINAL FORM @V407510 00266000
  267. MVC DATA+K76(K2),WORK3 MOVE PROCESSOR ADDRESS @V407510 00267000
  268. WRTERM DATA,K78 @V407510 00268000
  269. REREAD WRTERM ASKMSG,ASKMSGL @VA04250 00269000
  270. RDTERM DATA,EDIT=YES @VA04250 00270000
  271. CLC DATA(3),=CL3'NO ' @VA04250 00271000
  272. BE NOFDMP NO DUMP WANTED @VA04250 00272000
  273. CLC DATA(4),=CL4'YES ' IS IT YES REPLY ?? @VA04250 00273000
  274. BNE REREAD NO, ASK AGAIN @VA04250 00274000
  275. MVC CMP,DUMP FILE NAME @VA04250 00275000
  276. WRTERM CMSG,CMSGL CONFIRM DUMP @VA04250 00276000
  277. LOOP BAL R2,READCPR GET NEXT CP RECORD @VA04250 00277000
  278. BAL R2,WTREC WRITE IT OUT @VA04250 00278000
  279. B LOOP DO UNTIL READCPR GIVES EOF @VA04250 00279000
  280. SPACE 3 00280000
  281. READCPR L R6,=A(BUFF) WHERE TO READ @VA04250 00281000
  282. LA R7,X'00C' READER ADDRESS @VA04250 00282000
  283. DC X'83670034' DIAG...READ CP DUMP FILE SEQ'LY @VA04250 00283000
  284. BZR R2 RETURN - DATA IS IN THE BUFFER @VM08728 00284000
  285. * 00285000
  286. DIAGRTN BC 4,DMPEND1 EOF @VA04250 00286000
  287. BC 2,NODMP READER EMPTY @VA04250 00287000
  288. WRTERM DM0,DM0L DIAG FAILED @VA04250 00288000
  289. BAL R2,ERASE @VA04250 00289000
  290. LA R15,21 RETURN @VA04250 00290000
  291. RETN DS 0H @V407510 00291000
  292. ST R15,REGSAVE+K4 @V407510 00292000
  293. EXIT DS 0H @V407510 00293000
  294. LM R14,R15,REGSAVE RESTORE REGS @V407510 00294000
  295. BR R14 RETURN TO CMS @VA04250 00295000
  296. SPACE 3 00296000
  297. WTREC LH R1,ITEMNO GET ITEM NUMBER @VA04250 00297000
  298. LA R1,1(R1) BUMP @VA04250 00298000
  299. STH R1,ITEMNO SET FOR WRITE @VA04250 00299000
  300. FSWRT FSWRITE FSCB=DUMPFILE,BUFFER=BUFF,ERROR=ERRWRT @VA04250 00300000
  301. BR R2 @VA04250 00301000
  302. * 00302000
  303. WTREC2 FSWRITE FSCB=DUMPFILE,BUFFER=ITEM2,ERROR=ERRWRT,RECNO=2 00303000
  304. BR R2 @VA04250 00304000
  305. SPACE 2 00305000
  306. DMPEND1 MVC DM1P,DUMP SET FILE NAME @VA04250 00306000
  307. WRTERM DM1,DM1L @VA04250 00307000
  308. FSCLOSE FSCB=DUMPFILE SAVE DUMP FILE @VA04250 00308000
  309. *************************************************************** 00309000
  310. * CALL DMMEXT FOR EXTRACTION 00310000
  311. *************************************************************** 00311000
  312. L R15,=V(DMMEXT) POINT TO EXTRACTION PROGRAM @VA04250 00312000
  313. BALR R14,R15 GO DO DATA EXTRACTION @VA04250 00313000
  314. BAL R2,CLRDR CLOSE DUMP READER FILE @VA04250 00314000
  315. B SETEDM SET UP TO EDIT DUMP @VA04250 00315000
  316. EJECT 00316000
  317. * ******************************************************** 00317000
  318. * * THIS ROUTINE WILL PRINT OUT TIME,DATE,CAUSE * 00318000
  319. * * GPRS,CONTROL REGS,FPRS, AND THE PSWS. * 00319000
  320. * ************************************************** 00320000
  321. SPACE 3 00321000
  322. EDITDUMP DS 0H @VA04250 00322000
  323. DROP R10 @VA04250 00323000
  324. FSREAD FSCB=DUMPFILE,BUFFER=ITEM2,ERROR=QUIT,RECNO=2 @VA04250 00324000
  325. CLI NOFORMAT+7,X01 NO FORMAT WANTED ?? @VA04250 00325000
  326. BE HEXDUMP NO @VA04250 00326000
  327. PREREG L R8,=A(ITEM2) SET BASE @VA04250 00327000
  328. MVC RCHINDEX(4*K9),I2RCH GET POINTERS @V4M0004 00328000
  329. MVC RDATE(8*K2),I2DATE GET DATE & TIME @V4M0004 00329000
  330. MVC ABCODE(4),I2AB GET ABEND CODE @V4M0004 00330000
  331. MVC RSYSRV,I2SYSRV GET STORAGE SIZE @V4M0004 00331000
  332. MVC DATA(LABM),ABMSG ABEND MSG @VA04250 00332000
  333. MVC DATA+25(3),I2AB ABEND CODE @VA04250 00333000
  334. L R1,I2AB GET NUMBER @VA04250 00334000
  335. N R1,=X'000000FF' ISOLATE NUMBER @VA04250 00335000
  336. CVD R1,WORK3 CONVERT @VA04250 00336000
  337. OI WORK3+7,X0F SET ZONE @VA04250 00337000
  338. UNPK WORK3(3),WORK3+6(2) @VA04250 00338000
  339. MVC DATA+28(3),WORK3 SET NUMBER @VA02058 00339000
  340. MVC DATA+38(8),I2DATE @VA04250 00340000
  341. MVC DATA+56(8),I2TIME @VA04250 00341000
  342. MVC DATA+K65(K10),=C'PROCESSOR ' @V407510 00342000
  343. LH R1,I2PROCA GET PROCESSOR ADDRESS @V407510 00343000
  344. CVD R1,WORK3 CONVERT TO DECIMAL @V407510 00344000
  345. OI WORK3+K7,X0F SET ZONE @V407510 00345000
  346. UNPK WORK3(2),WORK3+K6(K2) PUT IN FINAL FORM @V4M0004 00346000
  347. MVC DATA+K75(K2),WORK3 MOVE PROCESSOR ADDRESS @V4M0004 00347000
  348. MVC LINECT,=H'60' FORCE EJECT @VA04250 00348000
  349. MVI CTL,SPACE2 @VA04250 00349000
  350. PRELIM3A BAL R6,PRINTA @VA04250 00350000
  351. SPACE 2 00351000
  352. * FORMAT AND PRINT GPRS AND CONTROL REGS 00352000
  353. SPACE 2 00353000
  354. PRELIM4 DS 0H @VA04250 00354000
  355. LR R7,R8 SAVE BUFFER POINTER @VA04250 00355000
  356. MVC DATA(K9),=C'GREGS 0-7' @VA04250 00356000
  357. LA R9,I2GRS DATA @VA04250 00357000
  358. PRELIM5 EQU * @VA04250 00358000
  359. LA R10,K2 TWO LINES OF PRINT FOR GPRS @VA04250 00359000
  360. LA R3,K64 LENGTH @VA04250 00360000
  361. BAL R6,TRANINIT GO UNPACK @VA04250 00361000
  362. LA R5,WORK+8 FROM ADDRESS @VA04250 00362000
  363. PRELIM6 LA R4,DATA+12 TO ADDRESS @VA04250 00363000
  364. LA R2,K64 LENGTH @VA04250 00364000
  365. BAL R6,MVSBRTN GO MOVE 8 REGS @VA04250 00365000
  366. BAL R6,PRINTA @VA04250 00366000
  367. MVC DATA+5(K4),=C'8-15' @VA04250 00367000
  368. MVI CTL,SPACE1 SET TO SINGLE SPACE @VA04250 00368000
  369. BCT R10,PRELIM6 @VA04250 00369000
  370. PRELIM7 NOP PRELIM8 @VA04250 00370000
  371. MVI CTL,SPACE2 SPACE 2 @VA04250 00371000
  372. MVC DATA(K9),=C'CREGS 0-7' @VA04250 00372000
  373. MVI PRELIM7+1,XF0 SET TO UNCONDITIONAL BRANCH @VA04250 00373000
  374. LA R9,I2CRS DATA @VA04250 00374000
  375. B PRELIM5 GO BACK AND DO CONTROL REGS @VA04250 00375000
  376. SPACE 2 00376000
  377. * FORMAT AND PRINT FLOATING POINT REGS 00377000
  378. SPACE 2 00378000
  379. PRELIM8 MVI CTL,SPACE2 SET TO DOUBLE SPACE @VA04250 00379000
  380. MVI PRELIM7+1,X00 RESTORE NOP @VA04250 00380000
  381. LA R9,I2FPRS DATA @VA04250 00381000
  382. LA R3,K32 LENGTH @VA04250 00382000
  383. BAL R6,TRANINIT TRANSLATE @VA04250 00383000
  384. LA R5,WORK+8 FROM ADDR @VA04250 00384000
  385. LA R4,DATA+12 TO ADDR @VA04250 00385000
  386. LA R2,K64 LENGTH @VA04250 00386000
  387. BAL R6,MVSBRTN @VA04250 00387000
  388. MVC DATA(K9),=C'FPRGS 0-4' @VA04250 00388000
  389. BAL R6,PRINTA @VA04250 00389000
  390. SPACE 2 00390000
  391. * FORMAT TOD CLK ,COMPARATOR, AND CPU TIMER 00391000
  392. SPACE 2 00392000
  393. LA R9,I2TOD DATA @VA04250 00393000
  394. LA R3,K24 LENGTH @VA04250 00394000
  395. BAL R6,TRANINIT TRANSLATE @VA04250 00395000
  396. MVC DATA(K9),=C'TOD CLOCK' @VA04250 00396000
  397. MVC DATA+12(8),WORK+8 FIRST WORD OF CSW @VA04250 00397000
  398. MVC DATA+22(8),WORK+16 SECOND WORD @VA04250 00398000
  399. MVC DATA+36(K14),=C'TOD CLOCK COMP' @VA04250 00399000
  400. MVC DATA+52(K8),WORK+40 MOVE 1ST WD OF COMP TO BUFF @VA04250 00400000
  401. MVC DATA+62(K8),WORK+48 MOVE SECOND WORD @VA04250 00401000
  402. BAL R6,PRINTA @VA04250 00402000
  403. MVC DATA(K9),=C'CPU TIMER' @VA04250 00403000
  404. MVC DATA+12(K8),WORK+24 MOVE FIRST WORD OF TIMER @VA04250 00404000
  405. MVC DATA+22(K8),WORK+32 MOVE SECOND WORD OF TIMER @VA04250 00405000
  406. LA R3,K4 LENGTH FOR TRANSLATE @V407510 00406000
  407. LA R9,I2PRFRG ADDRESS OF PREFIX AREA ADDRESS @V407510 00407000
  408. BAL R6,TRANINIT TRANSLATE @V407510 00408000
  409. MVC DATA+K36(K11),=C'PREFIX REG ' @V407510 00409000
  410. MVC DATA+K52(K8),WORK+K8 MOVE PREFIX REGISTER @V407510 00410000
  411. BAL R6,PRINTA @VA04250 00411000
  412. SPACE 2 00412000
  413. * FORMAT AND PRINT PSWS 00413000
  414. SPACE 2 00414000
  415. PRELIM11 DS 0H @V407510 00415000
  416. L R5,I2PRFRG GET PREFIX REG OF ABENDING PROC @V407510 00416000
  417. LA R3,K256 PAGE LENGTH IN DOUBLEWORDS @V407510 00417000
  418. MVI ERRINDX,IX1C SET ERROR INDEX FOR GETPAGE @V407510 00418000
  419. BAL R2,GETPAGE GET PSA PAGE IN CORE @V407510 00419000
  420. USING PSA,R9 SET UP ADDRESSABILITY FOR PSA @V407510 00420000
  421. L R5,INTKFLIN GET I/O INT CODE @V407510 00421000
  422. ST R5,WORK2 SAVE @VA04250 00422000
  423. LA R9,EXOPSW ADDRESS OF DATA TO BE PRINTED @V407510 00423000
  424. LA R3,120 THIS MANY BYTES @VA04250 00424000
  425. BAL R6,TRANINIT TRANSLATE @VA04250 00425000
  426. MVC DATA(K3),=C'CSW' @VA04250 00426000
  427. MVC DATA+5(K8),WORK+88 MOVE LEF HALF OF CSW @VA04250 00427000
  428. MVC DATA+15(K8),WORK+96 MOVE RIGHT HALF OF CSW @VA04250 00428000
  429. MVC DATA+30(K3),=C'CAW' @VA04250 00429000
  430. MVC DATA+35(K8),WORK+104 MOVE IN CAW ADDR @VA04250 00430000
  431. MVC DATA+51(9),=CL9'INT TIMER' @VA04250 00431000
  432. MVC DATA+62(8),WORK+120 @VA04250 00432000
  433. BAL R6,PRINTA @VA04250 00433000
  434. MVC DATA(K11),=C'EXT OLD PSW' @VA04250 00434000
  435. MVC DATA+13(K4),WORK+228 GET INTERRUPT CODE @VA04250 00435000
  436. MVC DATA+19(K8),WORK+8 MOVE LEFT HALF OF PSW @VA04250 00436000
  437. MVC DATA+29(K8),WORK+16 MOVE RIGHT HALF @VA04250 00437000
  438. MVC DATA+60(K11),=C'EXT NEW PSW' @VA04250 00438000
  439. MVC DATA+73(K8),WORK+136 MOVE LSFT HALF @VA04250 00439000
  440. MVC DATA+83(K8),WORK+144 MOVE RIGHT HALF @VA04250 00440000
  441. BAL R6,PRINTA @VA04250 00441000
  442. MVC DATA(K11),=C'SVC OLD PSW' @VA04250 00442000
  443. MVC DATA+13(K4),WORK+236 MOVE INTERRUPT CODE @VA04250 00443000
  444. MVC DATA+19(K8),WORK+24 MOVE LEFT HALF OF PSW @VA04250 00444000
  445. MVC DATA+29(K8),WORK+32 MOVE RIGHT HALF @VA04250 00445000
  446. PRELIM12 MVC DATA+60(K11),=C'SVC NEW PSW' @VA04250 00446000
  447. MVC DATA+73(K8),WORK+152 MOVE LEFT HALF @VA04250 00447000
  448. MVC DATA+83(K8),WORK+160 MOVE RIGHT HALF @VA04250 00448000
  449. BAL R6,PRINTA @VA04250 00449000
  450. MVC DATA(K11),=C'PGM OLD PSW' @VA04250 00450000
  451. MVC DATA+13(K4),WORK+244 MOVE INTERRUP CODE @VA04250 00451000
  452. MVC DATA+19(K8),WORK+40 MOVE LEFT HALF @VA04250 00452000
  453. MVC DATA+29(K8),WORK+48 MOVE RIGHT HALF @VA04250 00453000
  454. PRELIM13 MVC DATA+60(K11),=C'PGM NEW PSW' @VA04250 00454000
  455. MVC DATA+73(K8),WORK+168 MOVE LEFT HALF @VA04250 00455000
  456. MVC DATA+83(K8),WORK+176 MOVE RIGHT HALF @VA04250 00456000
  457. BAL R6,PRINTA @VA04250 00457000
  458. MVC DATA(K11),=C'MCK OLD PSW' @VA04250 00458000
  459. MVC DATA+19(K8),WORK+56 MOVE LEFT HALF OF PSW @VA04250 00459000
  460. MVC DATA+29(K8),WORK+64 MOVE RIGHT HALF @VA04250 00460000
  461. MVC DATA+60(K11),=C'MCK NEW PSW' @VA04250 00461000
  462. MVC DATA+73(K8),WORK+184 MOVE LEFT HALF OF PSW @VA04250 00462000
  463. MVC DATA+83(K8),WORK+192 MOVE RIGHT HALF @VA04250 00463000
  464. BAL R6,PRINTA @VA04250 00464000
  465. MVC DATA(11),=C'I/O OLD PSW' @VA04250 00465000
  466. MVC DATA+13(4),WORK+4 @VA04250 00466000
  467. MVC DATA+19(8),WORK+72 @VA04250 00467000
  468. MVC DATA+29(8),WORK+80 @VA04250 00468000
  469. MVC DATA+60(11),=C'I/O NEW PSW' @VA04250 00469000
  470. MVC DATA+73(8),WORK+200 @VA04250 00470000
  471. MVC DATA+83(8),WORK+208 @VA04250 00471000
  472. BAL R6,PRINTA @VA04250 00472000
  473. DROP R9 @V407510 00473000
  474. EJECT 00474000
  475. * ************************************************** 00475000
  476. * * THE FOLLOWING ROUTINE WILL PRINT OUT THE LOAD 00476000
  477. * * MODULE MAPยฌ THE MAP IS LOCATED IN ITEM = OF THE* 00477000
  478. * * CMS DUMP FILEยฌ * 00478000
  479. * ************************************************** 00479000
  480. SPACE 3 00480000
  481. LOADMAP CLI MAP+7,X01 WAS A MAP REQUESTED @VA04250 00481000
  482. BE PREND NO MAP @VA04250 00482000
  483. MVC LINECT,=H'60' EJECT @VA04250 00483000
  484. MVI CTL,SPACE2 SET FOR SINGLE SPACE @VA04250 00484000
  485. MVI SPACENUM+1,X02 @VA04250 00485000
  486. FSREAD FSCB=DUMPFILE,BUFFER=BUFF,ERROR=QUIT,RECNO=1 @VA04250 00486000
  487. L R3,=A(BUFF) SET BASE @VA04250 00487000
  488. LOADMAP2 LA R4,DATA DATA START @VA04250 00488000
  489. LA R5,5 FIVE SYMBOLS PER LINE @VA04250 00489000
  490. LOADMAP1 UNPK WORK(K9),K8(K5,R3) UNPK THE ADDR @VA04250 00490000
  491. TR WORK(K8),TTAB-240 @VA04250 00491000
  492. MVC 0(8,R4),0(R3) MOVE SYMBOL @VA04250 00492000
  493. MVC 11(6,R4),WORK+2 MOVE ADDRESS @VA04250 00493000
  494. MVI 9(R4),C'-' @VA04250 00494000
  495. LA R4,24(R4) BUMP DATA AREA @VA04250 00495000
  496. CLC 12(4,R3),=F'0' END OF LOAD MAP ? @VM08728 00496000
  497. BE MAPEND YES @VA04250 00497000
  498. LA R3,12(R3) NEXT SYMBOL @VA04250 00498000
  499. BCT R5,LOADMAP1 LOOP TIMES @VA04250 00499000
  500. BAL R6,PRINTA PRINT LINE @VA04250 00500000
  501. B LOADMAP2 REPEAT @VA04250 00501000
  502. MAPEND BAL R6,PRINTA PRINT LAST LINE @VA04250 00502000
  503. PREND NOP RDKEY @VA01570 00503000
  504. EJECT 00504000
  505. * 00505000
  506. * THIS SECTION FORMATS REAL CHANNEL BLOCKS- RCHBLOK 00506000
  507. * 00507000
  508. RCHFORM MVC LINECT,=H'60' @VA04250 00508000
  509. USING BLOKFORM,R10 @VA04250 00509000
  510. LA R10,DATA ADDR O/P AREA @VA04250 00510000
  511. L R5,RCHINDEX ADDR REAL CHANNEL BLK INDEX TBL @VA04250 00511000
  512. MVI ERRINDX,IX00 SET ERROR INDEX FOR GETPAGE @VA01570 00512000
  513. LA R3,4 4 DBLWDS @VA04250 00513000
  514. BAL R2,GETPAGE GET PAGE WITH TABLE @VA04250 00514000
  515. MVC CHINDEX(K32),K0(R9) SAVE REAL CHAN BLK INDEX TBL@VA04250 00515000
  516. L R4,CHDEX INITIAL ENTRY IN CHAN INDEX TABLE@VA04250 00516000
  517. RCHINIT EQU * @VA04250 00517000
  518. CLC K0(K2,R4),FFFF VALID CHAN TBL. ENTRY? @VA04250 00518000
  519. BNE RCHPRC YES, PROCESS CHAN. BLOCK @VA11255 00519000
  520. CHLOOP EQU * @VA01570 00520000
  521. C R4,CHANLAST LAST CHAN. TBL. ENTRY? @VA04250 00521000
  522. BE SFFORM @VA04250 00522000
  523. LA R4,K2(,R4) GET NEXT TBL. ENTRY ADDR. @VA04250 00523000
  524. B RCHINIT CHECK NEXT ENTRY @VA04250 00524000
  525. SPACE 1 00525000
  526. * AT THIS POINT REG 4 CONTAINS ADDR OF INDEX TABLE ENTRY FOR RCHBLOK 00526000
  527. * TO BE PROCESSED 00527000
  528. SPACE 1 00528000
  529. RCHPRC EQU * @VA11255 00529000
  530. ST R4,CHDEX SAVE ADDR CURR CH INDEX TBL ENTRY@VA04250 00530000
  531. LH R5,K0(,R4) NDEX INTO RCHBLOK'S FOR THIS CHAN@VA04250 00531000
  532. A R5,RCHSTRT + START ADDR RCHBLOK'S=NEW BLK AD@VA04250 00532000
  533. ST R5,WORK2 SAVE RCHBLOK ADDR @VA04250 00533000
  534. ST R5,CHAINCK SAVE FOR IOBLOK CHECK @VA04250 00534000
  535. MVI ERRINDX,IX01 SET ERROR INDEX FOR GETPAGE @VA01570 00535000
  536. LA R3,RCHSIZE SIZE @VA04250 00536000
  537. BAL R2,GETPAGE GET PAGE WITH RCHBLOK TO PRINT @VA04250 00537000
  538. USING RCHBLOK,R9 REAL CHANNEL BLOCK DSECT @VA04250 00538000
  539. MVC CUINDEX(K64),RCHCUTBL SAVE REAL CU INDEX TABLE @VA04250 00539000
  540. MVC IOBCHAIN(K4),RCHFIOB SAVE ADDR 1ST IOBLOK QUEUED@VA04250 00540000
  541. SLL R3,3 8=NO. OF BYTES TO TRANSLATE @VA04250 00541000
  542. BAL R6,TRANINIT TRANSLATE BLOCK @VA04250 00542000
  543. * 00543000
  544. * RCHBLOK HEADINGS FORMATED HERE 00544000
  545. * 00545000
  546. MVC HCHBADDR(6),WORK+2 CHAN ADDRESS @VA04250 00546000
  547. SR R4,R4 CLEAR REG. @VA04250 00547000
  548. IC R4,RCHADD GET CHANNEL ADDR @VA04250 00548000
  549. LA R5,TTAB ADDR TRANSLATE TABLE @VA04250 00549000
  550. AR R4,R5 ADDR OF TRANSLATED CHAR. @VA04250 00550000
  551. MVC HCHNO(K1),K0(R4) MOVE CHN NO. IN CHAR TO HDNG@VA04250 00551000
  552. SPACE 1 00552000
  553. * SET UP FOR WRITING CHANNEL BLOCK 00553000
  554. SPACE 1 00554000
  555. LA R2,HCHBLK ADDR OF RCHBLOK HEADING @VA04250 00555000
  556. LA R3,3 HEADINGINGS @VA04250 00556000
  557. LA R5,RCHSIZE NO. OF DOUBLE WORDS TO PRINT @VA04250 00557000
  558. LA R7,FRCHBLK INITIAL START ADDR IN O/P AREA @VA04250 00558000
  559. BAL R6,BLKPRINT GO PRINT RCHBLOK @VA04250 00559000
  560. * 00560000
  561. * ANY IOBLOKS CHAINED OFF OF THE RCHBLOK JUST PRINTED ARE PRINTED NOW 00561000
  562. * 00562000
  563. MVC HIOBLKS(K13),HIOBLOK PUT 'IOBLOK' IN HEADING @VA04250 00563000
  564. BAL R6,IOBPRINT GO TO IOBLOK PRINT ROUTINE @VA04250 00564000
  565. * 00565000
  566. * THIS SECTION FORMATS REAL CONTROL UNIT BLOCKS- RCUBLOK 00566000
  567. * 00567000
  568. L R4,CUDEX GET ADDR OF INITIAL ENTRY @VA04250 00568000
  569. RCUINIT EQU * @VA04250 00569000
  570. CLC K0(K2,R4),FFFF VALID TABLE ENTRY? @VA04250 00570000
  571. BNE RCUPRC YES, PROCESS BLOCK @VA11255 00571000
  572. CULOOP EQU * @VA01570 00572000
  573. C R4,RCULAST LAST CONTROL UNIT ENTRY? @VA04250 00573000
  574. BE CKCHAN YES, CK IF ANOTHER CHAN EXISTS @VA04250 00574000
  575. LA R4,K2(,R4) GET NEXT TABLE ENTRY ADDR. @VA04250 00575000
  576. B RCUINIT CHECK NEXT TABLE ENTRY @VA04250 00576000
  577. * 00577000
  578. * AT THIS POINT REG 4 CONTAINS ADDR OF INDEX TABLE ENTRY FOR RCUBLOK 00578000
  579. * TO BE PROCESSED 00579000
  580. * 00580000
  581. RCUPRC EQU * @VA11255 00581000
  582. ST R4,CUDEX SAVE ADDR CURR CU INDEX TBL ENTRY@VA04250 00582000
  583. LH R5,K0(,R4) GET DISP INTO CU TBLS FOR THIS CU@VA04250 00583000
  584. A R5,RCUSTRT PLUS CU TBL'S BASE =RCUBLOK ADDR @VA04250 00584000
  585. ST R5,CHAINCK SAVE FOR IOBLOK CHECK @VA04250 00585000
  586. ST R5,WORK2 SAVE RCUBLOK ADDR FOR TRANSLATION@VA04250 00586000
  587. MVI ERRINDX,IX02 SET ERROR INDEX FOR GETPAGE @VA01570 00587000
  588. LA R3,RCUSIZE SIZE @VA04250 00588000
  589. BAL R2,GETPAGE GET PAGE WITH TABLE @VA04250 00589000
  590. USING RCUBLOK,R9 @VA04250 00590000
  591. MVC DEVINDEX(K32),RCUDVTBL SAVE DEV NDX TBL FOR THIS@VA04250 00591000
  592. * CONTROL UNIT 00592000
  593. MVC IOBCHAIN(K4),RCUFIOB SV ADD 1ST IOBLOK QD TO RCU@VA04250 00593000
  594. SLL R3,3 8=NO. OF BYTES TO TRANSLATE @VA04250 00594000
  595. BAL R6,TRANINIT TRANSLATE RCUBLOK & ITS ADDR @VA04250 00595000
  596. * 00596000
  597. * RCUBLOK HEADINGS FORMATED HERE 00597000
  598. * 00598000
  599. MVC HCUBADDR(6),WORK+2 CU ADDRESS @VA04250 00599000
  600. SR R4,R4 CLEAR REG. @VA04250 00600000
  601. IC R4,RCUADD+1 GET CONTROL UNIT ADDR @VA04250 00601000
  602. SRL R4,4 MOVE UNIT NO TO LOW-ORDER FOR NDX@VA04250 00602000
  603. LA R5,TTAB ADDR TRANSLATE TABLE @VA04250 00603000
  604. AR R4,R5 ADDR OF TRANSLATED CHAR. @VA04250 00604000
  605. MVC HCUNO+1(K1),K0(R4) MOVE CU NO. IN CHAR TO HEAD @VA04250 00605000
  606. MVC HCUNO(K1),HCHNO PUT CHAN NO. IN UNIT ADDR. @VA04250 00606000
  607. SPACE 1 00607000
  608. * SETUP FOR WRITING REAL CONTROL UNIT BLOCK 00608000
  609. SPACE 1 00609000
  610. LA R2,HCUBLK ADDR OF RCUBLOK HEADING @VA04250 00610000
  611. LA R3,K3 NO. OF HEADING LINES @VA04250 00611000
  612. LA R5,RCUSIZE NO. OF DOUBLE WORDS TO PRINT @VA04250 00612000
  613. LA R7,FRCUBLK INITIAL START ADDR IN O/P AREA @VA04250 00613000
  614. BAL R6,BLKPRINT GO PRINT RCUBLOK @VA04250 00614000
  615. * 00615000
  616. * IOBLOKS CHAINED OFF OF THE RCUBLOK JUST PRINTED ARE PRINTED NOW 00616000
  617. * 00617000
  618. MVC HIOBLKS(K13),HIOBLOK PUT 'IOBLOK IN HEADING @VA04250 00618000
  619. BAL R6,IOBPRINT GO TO IOBLOK PRINT ROUTINE @VA04250 00619000
  620. * 00620000
  621. * THIS SECTION FORMATS REAL DEVICE BLOCKS- RDEVBLOK 00621000
  622. * 00622000
  623. L R4,DEVDEX GET ADDR INITIAL ENTRY IN DEVICE @VA04250 00623000
  624. * INDEX TABLE 00624000
  625. RDEVINIT EQU * @VA04250 00625000
  626. CLC K0(K2,R4),FFFF VALID DEV. TBL. ENTRY? @VA04250 00626000
  627. BNE RDEVPRC YES, PROCESS BLOCK @VA11255 00627000
  628. CKDEV EQU * @VA01570 00628000
  629. C R4,DEVLAST LAST DEVICE ENTRY? @VA04250 00629000
  630. BE CKCU YES, CK FOR ANOTHER CONTROL UNIT @VA04250 00630000
  631. LA R4,K2(,R4) GET NEXT TABLE ENTRY ADDR. @VA04250 00631000
  632. B RDEVINIT CHECK NEXT TABLE ENTRY @VA04250 00632000
  633. SPACE 1 00633000
  634. * AT THIS POINT REG 4 CONTAINS ADDR OF INDEX TABLE ENTRY FOR RDEVBLOK 00634000
  635. * TO BE PROCESSED 00635000
  636. SPACE 1 00636000
  637. RDEVPRC EQU * @VA11255 00637000
  638. ST R4,DEVDEX SAVE ADR CURR DEV NDX TBL ENTRY @VA04250 00638000
  639. LH R5,K0(,R4) DISP INTO RDEVBLOKS FOR THIS DEV @VA04250 00639000
  640. SLL R5,3(0) CONVERT TO BYTE INDEX @VM08728 00640000
  641. A R5,RDEVSTRT PLUS DEV TBL'S BASE=RDEVBLOK ADDR@VA04250 00641000
  642. ST R5,LIOBDEV SAVE FOR IOBLOK CHAIN CHECK @VA04250 00642000
  643. ST R5,WORK2 SAVE RDEVBLOK ADDR FOR TRANS @VA04250 00643000
  644. MVI ERRINDX,IX03 SET ERROR INDEX FOR GETPAGE @VA01570 00644000
  645. LA R3,RDEVSIZE SIZE @VA04250 00645000
  646. BAL R2,GETPAGE GET PAGE WITH RDEVBLOK @VA04250 00646000
  647. USING RDEVBLOK,R9 @VA04250 00647000
  648. TM RDEVTYPC,CLASURI+CLASURO SPOOL DEV ?? @VA04250 00648000
  649. BZ TSTRCON NO, TEXT FOR CONSOLE @VA04250 00649000
  650. L R5,RDEVSPL GET POINTER @VA04250 00650000
  651. LTR R5,R5 TEST @VA04250 00651000
  652. BZ RIOB NONE @VA04250 00652000
  653. TM RDEVFLAG,RDEVACNT WAS IT DOING ACNTNG STUFF? @VA05034 00653000
  654. BO RIOB YES - DONT TRY TO FORMAT RSPLCTL @VA05034 00654000
  655. ST R5,SPOOLSAV SAVE @VA04250 00655000
  656. OI SPOOLSW,XFF SET SW @VA04250 00656000
  657. B RIOB @VA04250 00657000
  658. TSTRCON TM RDEVTYPC,CLASTERM+CLASGRAF CONTASK CHAIN ? @VM08728 00658000
  659. BZ ROWN NO @VA04250 00659000
  660. L R5,RDEVCON GET POINTER @VA04250 00660000
  661. LTR R5,R5 TEST @VA04250 00661000
  662. BZ RIOB NONE @VA04250 00662000
  663. ST R5,VCONAD SAVE @VA04250 00663000
  664. OI CONSW,XFF SET SW @VA04250 00664000
  665. B RIOB @VA04250 00665000
  666. ROWN TM RDEVTYPC,CLASDASD DASD ?? @VA04250 00666000
  667. BZ RIOB NO @VA04250 00667000
  668. TM RDEVFLAG,RDEVOWN CP VOL ?? @VA04250 00668000
  669. BZ RIOB NO @VA04250 00669000
  670. L R5,RDEVPAGE GET ALLOC @VA04250 00670000
  671. ST R5,PAGBLOK SAVE @VA04250 00671000
  672. L R5,RDEVRECS SPOOL ALLOC @VA04250 00672000
  673. ST R5,SPLBLOK SAVE @VA04250 00673000
  674. OI OWNSW,XFF SET SW @VA04250 00674000
  675. RIOB DS 0H @VA04250 00675000
  676. MVC IOBDEV(K4),RDEVFIOB SVE ADR 1ST IOBLOK QD TO DEV@VA04250 00676000
  677. SLL R3,3 8=NO. OF BYTES TO TRANSLATE @VA04250 00677000
  678. BAL R6,TRANINIT TRANSLATE RDEVBLOK & ITS ADDR. @VA04250 00678000
  679. L R5,RDEVIOER GET ADDR IOERBLOK-IF ANY @VA04250 00679000
  680. LTR R5,R5 IS THERE AN IOERBLOK FOR THIS DEV@VA04250 00680000
  681. BZ NOIOER NO @VA04250 00681000
  682. OI IOERSW,XFF SET ERROR BLOCK SWITCH @VA04250 00682000
  683. ST R5,ERRBLOCK SAVE ADDR IOERBLOK @VA04250 00683000
  684. NOIOER EQU * @VA04250 00684000
  685. L R5,RDEVAIOB GET ADDR ACTIVE IOBLOK @VA04250 00685000
  686. LTR R5,R5 IS THIS ONE ACTIVE @VA04250 00686000
  687. BZ SETDVHD NO @VA04250 00687000
  688. OI ACTIOBSW,XFF SET ACTIVE IOB SWITCH @VA04250 00688000
  689. ST R5,AIOB SAVE ACTIVE IOBLOK ADDR @VA04250 00689000
  690. * 00690000
  691. * RDEVBLOK HEADINGS FORMATED HERE 00691000
  692. * 00692000
  693. SETDVHD EQU * @VA04250 00693000
  694. MVC HDBADDR(6),WORK+2 DEV ADDRESS @VA04250 00694000
  695. MVC HDEVNO(K1),RDEVADD+1 GET CU & DEVICE ADDR. @VA04250 00695000
  696. NI HDEVNO,X0F CLEAR CU ADDR. @VA04250 00696000
  697. SR R4,R4 CLEAR REG. @VA04250 00697000
  698. IC R4,HDEVNO GET DEVICE ADDR @VA04250 00698000
  699. LA R5,TTAB ADDR TRANSLATE TABLE @VA04250 00699000
  700. AR R4,R5 ADDR OF TRANSLATED CHAR. @VA04250 00700000
  701. MVC HDEVNO+2(K1),K0(R4) PUT DEV ADDR IN CHAR IN HEAD@VA04250 00701000
  702. MVC HDEVNO(K2),HCUNO PUT CH & CU ADDR IN DEV ADDR @VA04250 00702000
  703. SPACE 1 00703000
  704. * SETUP FOR WRITING REAL DEVICE BLOCK 00704000
  705. SPACE 1 00705000
  706. LA R2,HDEVBLK ADDR DEVICE BLOCK HEADINGS @VA04250 00706000
  707. LA R3,3 HEADINGS @VA04250 00707000
  708. LA R5,RDEVSIZE NO. OF DOUBLE WORDS TO PRINT @VA04250 00708000
  709. LA R7,FRDEVBLK INITIAL START ADDR IN O/P AREA @VA04250 00709000
  710. BAL R6,BLKPRINT PRINT FORMATED RDEVBLOK @VA04250 00710000
  711. SPACE 1 00711000
  712. * ACTIVE IOBLOK FORMATED HERE 00712000
  713. SPACE 1 00713000
  714. TM ACTIOBSW,XFF ACTIVE IOBLOK ON THIS DEVICE? @VA04250 00714000
  715. BZ IOBPRC NO, PROC IOBLOKS CHAINED TO DEV @VA11255 00715000
  716. MVC HIOBLKS(K13),HACTIO PUT ACTIVE IOBLOCK IN HEADNG@VA04250 00716000
  717. MVC IOBCHAIN(K4),AIOB ACTIVE IOBLOK ADDR @VA04250 00717000
  718. BAL R6,IOBPRINT PRINT ACTIVE IOBLOK @VA04250 00718000
  719. NI ACTIOBSW,255-XFF CLEAR SWITCH @VA04250 00719000
  720. SPACE 1 00720000
  721. * REAL DEVICE IOBLOK PROCESSING 00721000
  722. SPACE 1 00722000
  723. IOBPRC EQU * @VA11255 00723000
  724. MVC CHAINCK(K4),LIOBDEV ADR OF RDEVBLOK FOR CHAIN CK@VA04250 00724000
  725. MVC HIOBLKS(K13),HIOBLOK PUT 'IOBLOK IN HEADING @VA04250 00725000
  726. MVC IOBCHAIN(K4),IOBDEV FIRST IOBLOK ADDR -IF ANY @VA04250 00726000
  727. BAL R6,IOBPRINT GO TO IOBLOK PRINT ROUTINE @VA04250 00727000
  728. SPACE 1 00728000
  729. * PRINT CONTASKS FOR TERMINAL 00729000
  730. SPACE 1 00730000
  731. TM CONSW,XFF TEST @VA04250 00731000
  732. BZ TSTRSPL TEST FOR SPOOL @VA04250 00732000
  733. MVI CONSW,X00 CLEAR @VA04250 00733000
  734. CONLOOP L R5,VCONAD GET CONTASK ADDRESS @VA04250 00734000
  735. LTR R5,R5 TEST FOR ANY @VA04250 00735000
  736. BZ IOERPRNT NONE @VA04250 00736000
  737. ST R5,WORK2 SAVE @VA04250 00737000
  738. LA R3,16(0,0) MAX SIZE (FOR PRINTING) @VM08728 00738000
  739. MVI ERRINDX,IX04 SET ERROR INDEX FOR GETPAGE @VA01570 00739000
  740. BAL R2,GETPAGE GET BUFFER @VA04250 00740000
  741. USING CONTASK,R9 @VA04250 00741000
  742. LH R3,CONTSKSZ GET SIZE @VM08728 00742000
  743. SLL R3,3 ... IN BYTES @VA04250 00743000
  744. BAL R6,TRANINIT TRANSLATE @VA04250 00744000
  745. MVC HIOBLKS(13),HCONTASK HEADING @VA04250 00745000
  746. MVC HIOBADDR(6),WORK+2 ADDRESS @VA04250 00746000
  747. LA R2,HIOBLKS HEADINGS @VA04250 00747000
  748. LA R3,2 TWO @VA04250 00748000
  749. LH R5,CONTSKSZ CONTASK SIZE (DBL-WDS) @VM08728 00749000
  750. LTR R5,R5 AVOID ENDLESS LOOPS @VA01570 00750000
  751. BNP ONLY16 ON ZERO AND MINUS @VA01570 00751000
  752. CH R5,=H'16' MORE THAN WAS TRANSLATED ? @VM08728 00752000
  753. BNH *+8 NO - O.K. @VM08728 00753000
  754. ONLY16 EQU * @VA01570 00754000
  755. LA R5,16(0,0) CAN ONLY PRINT 128 BYTES @VM08728 00755000
  756. LA R7,FSPOOL DISP @VA04250 00756000
  757. L R6,CONPNT GET NEXT ADDRESS @VA04250 00757000
  758. ST R6,VCONAD SAVE @VA04250 00758000
  759. BAL R6,BLKPRINT PRINT IT @VA04250 00759000
  760. B CONLOOP DO ALL OF THEM @VA04250 00760000
  761. SPACE 1 00761000
  762. * IF THIS DEVICE IS A UNIT RECORD TYPE, RSPLCTL & SFBLOK FORMATED HERE 00762000
  763. SPACE 1 00763000
  764. TSTRSPL TM SPOOLSW,XFF IS THIS SPOOLING DEVICE? @VA04250 00764000
  765. BZ IOERPRNT NO, CHECK FOR IOERBLOK @VA04250 00765000
  766. NI SPOOLSW,255-XFF CLEAR SWITCH @VA04250 00766000
  767. L R5,SPOOLSAV GET ADDR OF RSPLCTL BLOCK @VA04250 00767000
  768. ST R5,WORK2 ADDR OF BLOCK FOR TRANSLATION @VA04250 00768000
  769. MVI ERRINDX,IX05 SET ERROR INDEX FOR GETPAGE @VA01570 00769000
  770. LA R3,RSPSIZE SIZE @VA04250 00770000
  771. BAL R2,GETPAGE GET PAGE WITH RSPLCTL @VA04250 00771000
  772. USING RSPLCTL,R9 @VA04250 00772000
  773. MVC SPOOLSAV(K4),RSPSFBLK SAVE SFBLOK ADDR @VA04250 00773000
  774. SLL R3,3 8=NO. OF BYTES TO TRANSLATE @VA04250 00774000
  775. BAL R6,TRANINIT TRANSLATE BLOCK AND ITS ADDR. @VA04250 00775000
  776. MVC HIOBLKS(K13),HRSPLCTL SET TOP HEADING @VA04250 00776000
  777. MVC HIOBADDR(6),WORK+2 BLOK ADDRESS @VA04250 00777000
  778. SPACE 1 00778000
  779. * SETUP FOR WRITING RSPLCTL BLOCK 00779000
  780. SPACE 1 00780000
  781. LA R2,HIOBLKS ADDR HEADING LINES @VA04250 00781000
  782. LA R3,K2 NO. OF HEADING LINES @VA04250 00782000
  783. LA R5,RSPSIZE NO. OF DOUBLE WORDS TO PRINT @VA04250 00783000
  784. LA R7,FSPOOL INITIAL START ADDR IN O/P AREA @VA04250 00784000
  785. BAL R6,BLKPRINT GO PRINT RSPLCTL BLOCK @VA04250 00785000
  786. BAL R6,SFPRINT GO TO SFBLOCK PRINT RTN. @VA04250 00786000
  787. IOERPRNT TM IOERSW,XFF TEST FOR BLOCK @VA04250 00787000
  788. BZ OWNTST NO @VA04250 00788000
  789. BAL R6,IOERPRC PRINT IT @VA11255 00789000
  790. OWNTST TM OWNSW,XFF TEST @VA04250 00790000
  791. BZ ENDCK NO @VA04250 00791000
  792. MVI OWNSW,X00 CLEAR @VA04250 00792000
  793. PAGLOOP L R5,PAGBLOK GET BLOK ADDRESS @VA04250 00793000
  794. LTR R5,R5 TEST FOR BLOK @VA04250 00794000
  795. BZ SPLST TRY SPOOL LIST @VA04250 00795000
  796. ST R5,WORK2 SAVE @VA04250 00796000
  797. MVI ERRINDX,IX06 SET ERROR INDEX FOR GETPAGE @VA01570 00797000
  798. LA R3,RECSIZE SIZE @VA04250 00798000
  799. BAL R2,GETPAGE GET BUFFER @VA04250 00799000
  800. USING RECBLOK,R9 @VA04250 00800000
  801. SLL R3,3 @VA04250 00801000
  802. BAL R6,TRANINIT TRANSLATE @VA04250 00802000
  803. MVC HRECADDR(6),WORK+2 @VA04250 00803000
  804. MVC HRECID(6),=CL6'-PAGE' @VA04250 00804000
  805. LA R2,HRECBLK HEADING @VA04250 00805000
  806. LA R3,2 3 @VA04250 00806000
  807. LA R5,RECSIZE @VA04250 00807000
  808. LA R7,FSPOOL DISP @VA04250 00808000
  809. ST R9,REG9SAV SAVE REG 9 (RECBLOK ADDR) @VA02332 00809000
  810. BAL R6,BLKPRINT PRINT IT @VA01570 00810000
  811. L R9,REG9SAV RESTORE RECBLOK POINTER @VA02332 00811000
  812. L R6,RECPNT GET NEXT @VA04250 00812000
  813. ST R6,PAGBLOK SAVE @VA04250 00813000
  814. B PAGLOOP @VA04250 00814000
  815. SPLST L R5,SPLBLOK GET BLOK ADDRESS @VA04250 00815000
  816. LTR R5,R5 TEST @VA04250 00816000
  817. BZ ENDCK NONE @VA04250 00817000
  818. ST R5,WORK2 SAVE @VA04250 00818000
  819. MVI ERRINDX,IX07 SET ERROR INDEX FOR GETPAGE @VA01570 00819000
  820. LA R3,RECSIZE SIZE @VA04250 00820000
  821. BAL R2,GETPAGE GET BUFFER @VA04250 00821000
  822. SLL R3,3 @VA04250 00822000
  823. BAL R6,TRANINIT TRANSLATE @VA04250 00823000
  824. MVC HRECADDR(6),WORK+2 @VA04250 00824000
  825. MVC HRECID(6),=CL6'-SPOOL' @VA04250 00825000
  826. LA R2,HRECBLK HEADING @VA04250 00826000
  827. LA R3,2 3 @VA04250 00827000
  828. LA R5,RECSIZE SIZE @VA04250 00828000
  829. LA R7,FSPOOL DISP @VA04250 00829000
  830. ST R9,REG9SAV SAVE REG 9 (RECBLOK ADDR) @VA02332 00830000
  831. BAL R6,BLKPRINT PRINT IT @VA01570 00831000
  832. L R9,REG9SAV RESTORE RECBLOK POINTER @VA02332 00832000
  833. L R6,RECPNT GET NEXT @VA04250 00833000
  834. ST R6,SPLBLOK SAVE @VA04250 00834000
  835. B SPLST LOOP FOR ALL @VA04250 00835000
  836. SPACE 1 00836000
  837. * A CHECK IS MADE HERE FOR THE END OF THE DEVICE, CONTROL UNIT, AND 00837000
  838. * CHANNEL INDEX TABLES 00838000
  839. SPACE 1 00839000
  840. ENDCK EQU * @VA04250 00840000
  841. L R4,DEVDEX ADDR OF CURRENT DEV INDEX VALUE @VA04250 00841000
  842. B CKDEV CHECK FOR LAST TABLE ENTRY @VA04250 00842000
  843. CKCU EQU * @VA04250 00843000
  844. LA R4,DEVINDEX ADDR 1ST ENTRY IN DEV.INDEX TBL. @VA04250 00844000
  845. * FOR NEXT CONTROL UNIT 00845000
  846. ST R4,DEVDEX REINITIALIZE INDEX PTR FOR NEXT @VA04250 00846000
  847. * CONTROL UNIT 00847000
  848. L R4,CUDEX ADDR OF CURRENT CU INDEX VALUE @VA04250 00848000
  849. B CULOOP CHECK FOR LAST TABLE ENTRY @VA04250 00849000
  850. CKCHAN EQU * @VA04250 00850000
  851. LA R4,CUINDEX ADDR 1ST ENTRY IN CU INDEX TBL. @VA04250 00851000
  852. ST R4,CUDEX REINITIALIZE CU INDEX TBL. PTR. @VA04250 00852000
  853. L R4,CHDEX ADDR OF CURRENT CHAN INDEX VALUE @VA04250 00853000
  854. B CHLOOP CHECK FOR LAST TABLE ENTRY @VA04250 00854000
  855. EJECT 00855000
  856. * 00856000
  857. * PROCESSING OF THE VIRTUAL MACHINE VMBLOK'S AND I/O BLOCKS 00857000
  858. * COMMENCES HERE 00858000
  859. * 00859000
  860. SPACE 2 00860000
  861. VIRTUALM EQU * @VA04250 00861000
  862. TM NOVIRT+7,X01 WANT VIRTUAL FORMAT ?? @VA04250 00862000
  863. BO HEXDUMP NO @VA04250 00863000
  864. OI VMBSW,XF0 FIRST SYSVMBLK @VA04250 00864000
  865. LA R10,DATA SET DATA ADDRESS @VA04250 00865000
  866. MVI HCHBLK,V CHG CH BLOCK HEADING TO VIRTUAL @VA04250 00866000
  867. MVI HCUBLK,V CHG CU BLOCK HEADING TO VIRTUAL @VA04250 00867000
  868. MVI HDEVBLK,V CHG DEV BLOCK HEADING TO VIRTUAL @VA04250 00868000
  869. L R5,VMPTR GET 1ST VMBLOK ADDR(SYSVMBLK) @VA04250 00869000
  870. VMPRC EQU * @VA11255 00870000
  871. MVC LINECT,=H'60' FORCE EJECT @VA04250 00871000
  872. ST R5,VMCURENT SAVE ADDR CURRENT VMBLOK @VA04250 00872000
  873. ST R5,WORK2 SAVE ADDR FOR TRANSLATION @VA04250 00873000
  874. SPACE 1 00874000
  875. * CH, CU, & DEV INDEX POINTERS ARE REINITIALIZED 00875000
  876. SPACE 1 00876000
  877. LA R4,CHINDEX ADDR START OF CH INDEX TBL SAVE @VA04250 00877000
  878. * AREA 00878000
  879. ST R4,CHDEX INIT PTR TO CURRENT TB. VALUE @VA04250 00879000
  880. LA R4,CUINDEX ADDR START OF CU NDX TBL SAVEAREA@VA04250 00880000
  881. ST R4,CUDEX INIT PTR TO CURRENT TBL SAVE @VA04250 00881000
  882. LA R4,DEVINDEX ADDR START OF DEV. INDEX TBL.SAVE@VA04250 00882000
  883. ST R4,DEVDEX INIT PTR TO CURRENT TBL VALUE @VA04250 00883000
  884. MVI ERRINDX,IX08 SET ERROR INDEX FOR GETPAGE @VA01570 00884000
  885. LA R3,VMBSIZE SIZE @VA04250 00885000
  886. BAL R2,GETPAGE GET PAGE WITH VMBLOK @VA04250 00886000
  887. USING VMBLOK,R9 @VA04250 00887000
  888. ST R9,REG9SAV SAVE VMBLOK POINTER @VA04250 00888000
  889. NOSYS EQU * @VA04250 00889000
  890. MVC VMCHAIN(K4),VMPNT SAVE ADR NXT VMBLOK IN CHAIN@VA04250 00890000
  891. MVC VCHSTRT(K4),VMCHSTRT SAVE START ADDR CH NDX TBLS@VA04250 00891000
  892. MVC VCUSTRT(K4),VMCUSTRT SAVE START ADDR CU NDX TBLS@VA04250 00892000
  893. MVC VDVSTRT(K4),VMDVSTRT SAVE START ADR DEV NDX TBLS@VA04250 00893000
  894. TM VMPEND,VMDEFSTK DEFERRED EXECUTION BLOCK @V407510 00894000
  895. * STACKED FOR THIS VMBLOK? @V407510 00895000
  896. BNO DEFZERO NO, ZERO POINTER @V407510 00896000
  897. MVC DEFEXPT,VMDFTPNT SAVE @ DEFERRED EXECUTION BLOK @V407510 00897000
  898. B NXT @V407510 00898000
  899. DEFZERO DS 0H @V407510 00899000
  900. XC DEFEXPT,DEFEXPT ZERO POINTER @V407510 00900000
  901. NXT DS 0H @V407510 00901000
  902. MVC PAGBLOK,VMECEXT SAVE EXT ADDRESS @VA04250 00902000
  903. TM VMESTAT,VMEXTCM IN EC MODE ?? @VA04250 00903000
  904. BZ *+8 NO @VA04250 00904000
  905. MVI CONSW,XFF SET SW @VA04250 00905000
  906. MVC SPLBLOK,VMTREXT TRACE EXT @VA04250 00906000
  907. TM VMTRCTL,XFF TRACING ?? @VA04250 00907000
  908. BZ *+8 NO @VA04250 00908000
  909. MVI SPOOLSW,XFF SET SW @VA04250 00909000
  910. MVC CHINDEX(K32),VMCHTBL SAVE CH BLOCK INDEX TABLE @VA04250 00910000
  911. LA R3,K96 NO. OF BYTES TO TRANSLATE IN @VA04250 00911000
  912. * 1ST 2 PRINTS 00912000
  913. BAL R6,TRANINIT TRANSLATE VMBLOK AND ITS ADDR. @VA04250 00913000
  914. SPACE 1 00914000
  915. * VMBLOK HEADINGS FORMATED HERE 00915000
  916. SPACE 1 00916000
  917. MVC HVMBADDR(6),WORK+2 BLOK ADDRESS @VA04250 00917000
  918. MVC HIDEN(K8),VMUSER USER ID @VA04250 00918000
  919. SPACE 1 00919000
  920. * SET UP FOR WRITING VMBLOK 00920000
  921. SPACE 1 00921000
  922. LA R5,VMBSIZE SIZE @VA04250 00922000
  923. STH R5,VMSAVE SAVE @VA04250 00923000
  924. OI VMBSW,X0F DOING VMBLOK @VA04250 00924000
  925. LA R2,HVMBLOK ADDR VMBLOK HEADINGS @VA04250 00925000
  926. LA R3,3 HEADINGS @VA04250 00926000
  927. VMNXT LH R5,VMSAVE GET COUNT @VA04250 00927000
  928. CH R5,=H'12' MORE THAN 3 LINE TO DO ?? @VA04250 00928000
  929. BH VM12 YES @VA04250 00929000
  930. NI VMBSW,XF0 LAST PART OF VMBLOK @VA04250 00930000
  931. B VMPRINT PRINT IT @VA04250 00931000
  932. VM12 SH R5,=H'12' DECREMENT @VA04250 00932000
  933. STH R5,VMSAVE SAVE @VA04250 00933000
  934. LA R5,12 SIZE @VA04250 00934000
  935. VMPRINT DS 0H @VA04250 00935000
  936. LA R7,FVMBLK INITIAL START ADDR IN O/P AREA @VA04250 00936000
  937. BAL R6,BLKPRINT PRINT 3 LINES @VA04250 00937000
  938. TM VMBSW,X0F MORE VMBLOK TO DO ?? @VA04250 00938000
  939. BZ VMETST NO @VA04250 00939000
  940. OI PRTENDSW,XF0 NO HEADING @VA04250 00940000
  941. L R9,REG9SAV GET START ADDR OF LAST TRANS. @VA04250 00941000
  942. LA R9,K96(,R9) ADDR NEXT TRANSLATION @VA04250 00942000
  943. ST R9,REG9SAV SAVE IT @VA04250 00943000
  944. LA R3,K96 NO. OF BYTES TO TRANSLATE @VA04250 00944000
  945. BAL R6,TRANINIT TRANSLATE NEXT SECTION OF VMBLOK @VA04250 00945000
  946. B VMNXT DO NEXT PART @VA04250 00946000
  947. VMETST DS 0H @V407510 00947000
  948. L R5,DEFEXPT ADDR OF DEFERRED EXECUTION BLK @V407510 00948000
  949. LTR R5,R5 DOES ONE EXIST? @V407510 00949000
  950. BZ VMETST1 NO, SKIP THIS PROCESSING @V407510 00950000
  951. ST R5,WORK2 SAVE ADDRESS @V407510 00951000
  952. MVI ERRINDX,IX1D SET ERROR INDICATOR @V407510 00952000
  953. LA R3,CPEXSIZE GET LENGTH OF BLOK @V407510 00953000
  954. BAL R2,GETPAGE BRING PAGE IN @V407510 00954000
  955. USING CPEXBLOK,R9 SET UP ADDRESSABILITY @V407510 00955000
  956. SLL R3,K3 GET LENGTH IN BYTES @V407510 00956000
  957. BAL R6,TRANINIT TRANSLATE @V407510 00957000
  958. MVC HIOBLKS(K13),HVMDE HEADING @V407510 00958000
  959. MVC HIOBADDR(K6),WORK+K2 @V407510 00959000
  960. LA R2,HIOBLKS ADDRESS OF HEADING @V407510 00960000
  961. LA R3,K2 @V407510 00961000
  962. LA R5,CPEXSIZE SIZE OF DEFERRED EXECECUTION BLK @V407510 00962000
  963. LA R7,FVMBLK DISPLACEMENT @V407510 00963000
  964. BAL R6,BLKPRINT PRINT IT @V407510 00964000
  965. VMETST1 DS 0H @V407510 00965000
  966. TM CONSW,XFF ANY ECBLOK? @VA08569 00966000
  967. BZ TSTTR NO @VA08569 00967000
  968. L R5,PAGBLOK GET ADDRSS @VA04250 00968000
  969. MVI CONSW,X00 @VA04250 00969000
  970. ST R5,WORK2 SAVE @VA04250 00970000
  971. MVI ERRINDX,IX09 SET ERROR INDEX FOR GETPAGE @VA01570 00971000
  972. LA R3,EXTSIZE SIZE @VA04250 00972000
  973. BAL R2,GETPAGE GET BUFFER @VA04250 00973000
  974. USING ECBLOK,R9 @VA04250 00974000
  975. SLL R3,3 @VA04250 00975000
  976. BAL R6,TRANINIT TRANSLATE @VA04250 00976000
  977. MVC HIOBLKS(13),HVMEC HEADING @VA04250 00977000
  978. MVC HIOBADDR(6),WORK+2 @VA04250 00978000
  979. LA R2,HIOBLKS HEADING @VA04250 00979000
  980. LA R3,2 2 @VA04250 00980000
  981. LA R5,EXTSIZE SIZE @VA04250 00981000
  982. LA R7,FVMBLK DISP @VA04250 00982000
  983. BAL R6,BLKPRINT PRINT IT @VA04250 00983000
  984. TSTTR TM SPOOLSW,XFF TEST FOR TR EXT @VA04250 00984000
  985. BZ VMEND NONE @VA04250 00985000
  986. MVI SPOOLSW,X00 @VA04250 00986000
  987. L R5,SPLBLOK GET ADDRSSS @VA04250 00987000
  988. ST R5,WORK2 SAVE @VA04250 00988000
  989. MVI ERRINDX,IX0A SET ERROR INDEX FOR GETPAGE @VA01570 00989000
  990. LA R3,TREXSIZE SIZE @VA04250 00990000
  991. BAL R2,GETPAGE @VA04250 00991000
  992. USING TREXT,R9 @VA04250 00992000
  993. SLL R3,3 @VA04250 00993000
  994. BAL R6,TRANINIT TRANSLATE @VA04250 00994000
  995. MVC HIOBLKS(13),HVMTR @VA04250 00995000
  996. MVC HIOBADDR(6),WORK+2 @VA04250 00996000
  997. LA R2,HIOBLKS HEADING @VA04250 00997000
  998. LA R3,2 @VA04250 00998000
  999. LA R5,TREXSIZE SIZE @VA04250 00999000
  1000. LA R7,FVMBLK DISP @VA04250 01000000
  1001. BAL R6,BLKPRINT PRINT IT @VA04250 01001000
  1002. VMEND EQU * @VA04250 01002000
  1003. * 01003000
  1004. * VIRTUAL CHANNEL BLOCKS-VCHBLOK- PROCESSED HERE 01004000
  1005. * 01005000
  1006. L R4,CHDEX ADDR OF INIT ENTRY IN CH NDX TBL @VA04250 01006000
  1007. VCHINIT EQU * @VA04250 01007000
  1008. CLC K0(K2,R4),FFFF VALID CHANNEL TBL. ENTRY? @VA04250 01008000
  1009. BNE VCHPRC YES, PROCESS CHANNEL BLOCK @VA11255 01009000
  1010. LOOPCH EQU * @VA01570 01010000
  1011. C R4,CHANLAST LAST CHANNEL ENTRY? @VA04250 01011000
  1012. BE VMCK YES, PROCESS NEXT VIRTUAL MACHINE@VA04250 01012000
  1013. LA R4,K2(,R4) GET NEXT ENTRY ADDR. @VA04250 01013000
  1014. B VCHINIT CHECK FOR VALID ENTRY @VA04250 01014000
  1015. SPACE 1 01015000
  1016. VCHPRC EQU * @VA11255 01016000
  1017. ST R4,CHDEX SAVE ADDR CURR CH INDEX TBL ENTRY@VA04250 01017000
  1018. LH R5,K0(,R4) INDEX INTO VCHBLOK'S FOR THIS CH @VA04250 01018000
  1019. A R5,VCHSTRT + START ADDR VCHBLOKS=NEW BLK ADD@VA04250 01019000
  1020. ST R5,WORK2 SAVE ADDR FOR TRANSLATION @VA04250 01020000
  1021. MVI ERRINDX,IX0B SET ERROR INDEX FOR GETPAGE @VA01570 01021000
  1022. LA R3,VCHSIZE SIZE @VA04250 01022000
  1023. BAL R2,GETPAGE GET PAGE WITH VCHBLOK @VA04250 01023000
  1024. USING VCHBLOK,R9 @VA04250 01024000
  1025. MVC CUINDEX(K32),VCHCUTBL SAVE VIRTUAL CU INDEX TBL.@VA04250 01025000
  1026. SLL R3,3 8=NO. OF BYTES TO MOVE FOR TRANS.@VA04250 01026000
  1027. BAL R6,TRANINIT TRANSLATE VCHBLOK AND ITS ADDR @VA04250 01027000
  1028. SPACE 1 01028000
  1029. * VCHBLOK HEADINGS FORMATED HERE 01029000
  1030. SPACE 1 01030000
  1031. MVC HCHBADDR(6),WORK+2 BLOK ADDRESS @VA04250 01031000
  1032. SR R4,R4 CLEAR REG @VA04250 01032000
  1033. IC R4,VCHADD GET CHANNEL ADDR. @VA04250 01033000
  1034. LA R5,TTAB ADDR TRANSLATE TABLE @VA04250 01034000
  1035. AR R4,R5 ADDR. OF TRANSLATED CHAR. @VA04250 01035000
  1036. MVC HCHNO(K1),K0(R4) PUT CHAR. IN HEADING @VA04250 01036000
  1037. SPACE 1 01037000
  1038. * SETUP FOR WRITING CHANNEL BLOCK 01038000
  1039. SPACE 1 01039000
  1040. LA R2,HCHBLK ADDR VCHBLOK HEADING @VA04250 01040000
  1041. LA R3,3 HEADINGS @VA04250 01041000
  1042. LA R5,VCHSIZE NO. OF DOUBLE WORDS TO PRINT @VA04250 01042000
  1043. LA R7,FVCHBLK INITIAL START ADDR IN O/P AREA @VA04250 01043000
  1044. BAL R6,BLKPRINT PRINT BLOCK @VA04250 01044000
  1045. SPACE 1 01045000
  1046. * THIS SECTION FORMATS VIRTUAL CONTROL UNIT BLOCKS-VCUBLOK 01046000
  1047. SPACE 1 01047000
  1048. L R4,CUDEX ADDR INIT ENTRY IN CU INDEX TBL @VA04250 01048000
  1049. VCUINIT EQU * @VA04250 01049000
  1050. CLC K0(K2,R4),FFFF VALID CU TABLE ENTRY? @VA04250 01050000
  1051. BNE VCUPRC YES, FORMAT CU BLOCK @VA11255 01051000
  1052. VCULOOP EQU * @VA01570 01052000
  1053. C R4,VCULAST LAST CONTROL UNIT ENTRY? @VA04250 01053000
  1054. BE CHANCK YES, CHECK FOR ANOTHER CHANNEL @VA04250 01054000
  1055. LA R4,K2(,R4) GET NEXT ENTRY ADDR. @VA04250 01055000
  1056. B VCUINIT CHECK NEXT ENTRY @VA04250 01056000
  1057. SPACE 1 01057000
  1058. * AT THIS POINT REG 4 CONTAINS ADDR OF INDEX TABLE ENTRY FOR VCUBLOK 01058000
  1059. * TO BE PROCESSED 01059000
  1060. SPACE 01060000
  1061. VCUPRC EQU * @VA11255 01061000
  1062. ST R4,CUDEX SAVE ADDR CURR CU INDEX TBL ENTRY@VA04250 01062000
  1063. LH R5,K0(,R4) GET DISP INTO CU TBLS FOR THIS CU@VA04250 01063000
  1064. A R5,VCUSTRT PLUS CU TBL.BASE=RCUBLOK ADDR @VA04250 01064000
  1065. ST R5,WORK2 SAVE VCUBLOK ADDR FOR TRANSLATION@VA04250 01065000
  1066. MVI ERRINDX,IX0C SET ERROR INDEX FOR GETPAGE @VA01570 01066000
  1067. LA R3,VCUSIZE SIZE @VA04250 01067000
  1068. BAL R2,GETPAGE GET PAGE CONTAINING VCUBLOK @VA04250 01068000
  1069. USING VCUBLOK,R9 @VA04250 01069000
  1070. MVC DEVINDEX(K32),VCUDVTBL SAVE DEV NDX TBL FOR THIS@VA04250 01070000
  1071. * CONTROL UNIT 01071000
  1072. SLL R3,3 8=NO. OF BYTES TO TRANSLATE @VA04250 01072000
  1073. BAL R6,TRANINIT TRANSLATE VCUBLOK & ITS ADDR @VA04250 01073000
  1074. SPACE 1 01074000
  1075. * VCUBLOK HEADINGS FORMATED HERE 01075000
  1076. SPACE 1 01076000
  1077. MVC HCUBADDR(6),WORK+2 BLOK ADDRESS @VA04250 01077000
  1078. SR R4,R4 CLEAR REG. @VA04250 01078000
  1079. IC R4,VCUADD+1 GET CONTROL UNIT ADDR. @VA04250 01079000
  1080. SRL R4,4 ISOLATE UNIT ADDR. @VA04250 01080000
  1081. LA R5,TTAB ADDR TRANSLATE TABLE @VA04250 01081000
  1082. AR R4,R5 ADDR. OF TRANSLATED CHAR. @VA04250 01082000
  1083. MVC HCUNO+1(K1),K0(R4) PUT CU ADDR IN HEADING @VA04250 01083000
  1084. MVC HCUNO(K1),HCHNO PUT CHAN NO. IN UNIT ADDR. @VA04250 01084000
  1085. SPACE 1 01085000
  1086. * SET UP FOR WRITING VIRTUAL CONTROL UNIT BLOCK 01086000
  1087. SPACE 1 01087000
  1088. LA R2,HCUBLK ADDR OF VCUBLOK HEADING @VA04250 01088000
  1089. LA R3,K3 NO. OF HEADING LINES @VA04250 01089000
  1090. LA R5,VCUSIZE NO. OF DOUBLE WORDS IN VCUBLOK @VA04250 01090000
  1091. LA R7,FVCUBLK INITIAL START ADDR IN O/P AREA @VA04250 01091000
  1092. BAL R6,BLKPRINT GO PRINT VCUBLOK @VA04250 01092000
  1093. * 01093000
  1094. * THIS SECTION FORMATS VIRTUAL DEVICE BLOCKS 01094000
  1095. * 01095000
  1096. L R4,DEVDEX ADDR INIT ENTRY IN DEV INDEX TBL @VA04250 01096000
  1097. VDVINIT EQU * @VA04250 01097000
  1098. CLC K0(K2,R4),FFFF VALID DEVICE TABLE ENTRY? @VA04250 01098000
  1099. BNE VDEVPRC YES, FORMAT DEVICE BLOCK @VA11255 01099000
  1100. DEVCK EQU * @VA01570 01100000
  1101. C R4,DEVLAST LAST DEVICE ENTRY IN TBL. @VA04250 01101000
  1102. BE CUCK YES, CK FOR ANOTHER CONTROL UNIT @VA04250 01102000
  1103. LA R4,K2(,R4) GET NEXT ENTRY ADDR. @VA04250 01103000
  1104. B VDVINIT CHECK NEXT ENTRY @VA04250 01104000
  1105. SPACE 1 01105000
  1106. * AT THIS POINT REG 4 CONTAINS ADDR OF INDEX TABLE ENTRY FOR VDEVBLOK 01106000
  1107. * TO BE PROCESSED 01107000
  1108. SPACE 01108000
  1109. VDEVPRC EQU * @VA11255 01109000
  1110. ST R4,DEVDEX SAVE ADDR CURR DEV NDX TBL ENTRY @VA04250 01110000
  1111. LH R5,K0(,R4) DISP INTO RDEVBLOKS FOR THIS DEV @VA04250 01111000
  1112. NOCON EQU * @VA04250 01112000
  1113. A R5,VDVSTRT PLUS DEV TBL'S BASE=VDEVBLOK ADDR@VA04250 01113000
  1114. ST R5,WORK2 SAVE VDEVBLOK ADDR FOR TRANS @VA04250 01114000
  1115. MVI ERRINDX,IX0D SET ERROR INDEX FOR GETPAGE @VA01570 01115000
  1116. LA R3,VDEVSIZE @VA04250 01116000
  1117. BAL R2,GETPAGE GET PAGE WITH VDEVBLOK @VA04250 01117000
  1118. USING VDEVBLOK,R9 @VA04250 01118000
  1119. TM VDEVTYPC,CLASURI+CLASURO SPOOL DEV ?? @VA04250 01119000
  1120. BZ TSTCON NO @VA04250 01120000
  1121. L R5,VDEVSPL GET BLOK @VA04250 01121000
  1122. LTR R5,R5 TEST @VA04250 01122000
  1123. BZ DODEV NONE @VA04250 01123000
  1124. ST R5,ERRBLOCK SAVE @VA04250 01124000
  1125. OI SPOOLSW,XFF SET SW @VA04250 01125000
  1126. B DODEV CONT @VA04250 01126000
  1127. TSTCON TM VDEVTYPC,CLASTERM TERMINAL ?? @VA04250 01127000
  1128. BZ TSTIOB NO @VA04250 01128000
  1129. CLI VDEVTYPE,TYP3215 VIRT CONSOLE ?? @VA04250 01129000
  1130. BNE TSTIOB NO @VA04250 01130000
  1131. L R5,VDEVCON GET BLOK @VA04250 01131000
  1132. LTR R5,R5 TEST @VA04250 01132000
  1133. BZ DODEV NONE @VA04250 01133000
  1134. ST R5,ERRBLOCK SAVE @VA04250 01134000
  1135. OI CONSW,XFF SET SW @VA04250 01135000
  1136. B DODEV CONT @VA04250 01136000
  1137. TSTIOB L R5,VDEVIOB ANY ACTIVE IOB ?? @VA04250 01137000
  1138. LTR R5,R5 .. @VA04250 01138000
  1139. BZ TSTIOER NO @VA04250 01139000
  1140. ST R5,AIOB SAVE @VA04250 01140000
  1141. MVI ACTIOBSW,XFF SET SW @VA04250 01141000
  1142. TSTIOER L R5,VDEVIOER GET BLOK @VA04250 01142000
  1143. LTR R5,R5 TEST @VA04250 01143000
  1144. BZ DODEV NONE @VA04250 01144000
  1145. OI IOERSW,XFF SET SW @VA04250 01145000
  1146. ST R5,ERRBLOCK SAVE @VA04250 01146000
  1147. DODEV LA R3,VDEVSIZE VDEVBLOK SIZE IN DWORDS TIMES @VA04250 01147000
  1148. SLL R3,3 8=NO. OF BYTES TO TRANSLATE @VA04250 01148000
  1149. BAL R6,TRANINIT TRANSLATE VDEVBLOK & ITS ADDR @VA04250 01149000
  1150. SPACE 1 01150000
  1151. * VDEVBLOK HEADINGS FORMATED HERE 01151000
  1152. SPACE 1 01152000
  1153. MVC HDBADDR(6),WORK+2 BLOK ADDRESS @VA04250 01153000
  1154. MVC HDEVNO(K1),VDEVADD+1 GET CU & DEVICE ADDR. @VA04250 01154000
  1155. NI HDEVNO,255-XF0 CLEAR CU ADDR. @VA04250 01155000
  1156. SR R4,R4 CLEAR REG. @VA04250 01156000
  1157. IC R4,HDEVNO GET DEVICE ADDR. @VA04250 01157000
  1158. LA R5,TTAB ADDR TRANSLATE TABLE @VA04250 01158000
  1159. AR R4,R5 ADDR. OF TRANSLATED CHAR. @VA04250 01159000
  1160. MVC HDEVNO+K2(K1),K0(R4) PUT DEV ADR IN CHAR IN HEAD@VA04250 01160000
  1161. MVC HDEVNO(K2),HCUNO PUT CH & CU ADDR IN DEV ADDR@VA04250 01161000
  1162. SPACE 1 01162000
  1163. * SETUP FOR WRITING VIRTUAL DEVICE BLOCK 01163000
  1164. SPACE 1 01164000
  1165. LA R2,HDEVBLK ADDR HEADING LINES @VA04250 01165000
  1166. LA R3,3 HEADINGS @VA04250 01166000
  1167. LA R5,VDEVSIZE NO. OF DOUBLE WORDS TO PRINT @VA04250 01167000
  1168. LA R7,FVDEVBLK INITIAL START ADDR OF O/P AREA @VA04250 01168000
  1169. BAL R6,BLKPRINT PRINT VDEVBLOK @VA04250 01169000
  1170. SPACE 1 01170000
  1171. * IF THIS DEVICE IS THE CONSOLE, VCONCTL BLOCK IS PRINTED HERE 01171000
  1172. SPACE 1 01172000
  1173. TM CONSW,XFF IS THIS VIRTUAL CONSOLE? @VA04250 01173000
  1174. BZ TSTSPOOL NO,TEST FOR SPOOLING DEVICE @VA04250 01174000
  1175. NI CONSW,255-XFF CLEAR CONSOLE SWITCH @VA04250 01175000
  1176. L R5,ERRBLOCK GET ADDRESS @VA04250 01176000
  1177. ST R5,WORK2 ADDR OF BLOCK FOR TRANSLATION @VA04250 01177000
  1178. MVI ERRINDX,IX0E SET ERROR INDEX FOR GETPAGE @VA01570 01178000
  1179. LA R3,VCONSIZE SIZE @VA04250 01179000
  1180. BAL R2,GETPAGE GET PAGE WITH VCONCTL BLOCK @VA04250 01180000
  1181. SLL R3,3 TIMES 8=NO. OF BYTES TO TRANSLATE@VA04250 01181000
  1182. BAL R6,TRANINIT TRANSLATE BLOCK @VA04250 01182000
  1183. MVC HIOBLKS(K13),HVCONCTL SET TOP HEADING LINE @VA04250 01183000
  1184. MVC HIOBADDR(6),WORK+2 BLOK ADDRESS @VA04250 01184000
  1185. LA R2,HIOBLKS ADDR HEADING LINES @VA04250 01185000
  1186. LA R3,K2 NO. OF HEADING LINES @VA04250 01186000
  1187. LA R4,K4 NO. OF BLOCKS/LINE @VA04250 01187000
  1188. LA R5,VCONSIZE NO. OF BLOCKS TO PRINT @VA04250 01188000
  1189. LA R7,FSPOOL START ADDR IN O/P AREA @VA04250 01189000
  1190. BAL R6,BLKPRINT PRINT OUT VCONCTL BLOCK @VA04250 01190000
  1191. B NXTVDEV DO NEXT @VA04250 01191000
  1192. SPACE 1 01192000
  1193. * IF THIS DEVICE IS A UNIT RECORD TYPE, VSPLCTL & SFBLOK FORMATED HERE 01193000
  1194. SPACE 1 01194000
  1195. TSTSPOOL EQU * @VA04250 01195000
  1196. TM SPOOLSW,XFF IS THIS A SPOOLING DEVICE? @VA04250 01196000
  1197. BZ VIOB NO, CHECK FOR IOERBLOK @VA04250 01197000
  1198. NI SPOOLSW,255-XFF CLEAR SWITCH @VA04250 01198000
  1199. L R5,ERRBLOCK GET ADDRESS @VA04250 01199000
  1200. ST R5,WORK2 ADDR OF BLOCK FOR TRANSLATION @VA04250 01200000
  1201. MVI ERRINDX,IX0F SET ERROR INDEX FOR GETPAGE @VA01570 01201000
  1202. LA R3,VSPSIZE SIZE @VA04250 01202000
  1203. BAL R2,GETPAGE GET PAGE WITH VSPLCTL @VA04250 01203000
  1204. USING VSPLCTL,R9 @VA04250 01204000
  1205. L R5,VSPSFBLK GET NEXT @VA04250 01205000
  1206. ST R5,SPOOLSAV SAVE @VA04250 01206000
  1207. SLL R3,3 8=NO. OF BYTES TO TRANSLATE @VA04250 01207000
  1208. BAL R6,TRANINIT TRANSLATE BLOCK & ITS ADDR @VA04250 01208000
  1209. MVC HIOBLKS(K13),HVSPLCTL SET TOP HEADING LINE @VA04250 01209000
  1210. MVC HIOBADDR(6),WORK+2 BLOK ADDRESS @VA04250 01210000
  1211. SPACE 1 01211000
  1212. * SETUP FOR WRITING VSPLCTL BLOCK 01212000
  1213. SPACE 1 01213000
  1214. LA R2,HIOBLKS ADDR HEADING LINES @VA04250 01214000
  1215. LA R3,K2 NO. OF HEADING LINES @VA04250 01215000
  1216. LA R5,VSPSIZE NO. OF DOUBLE WORDS TO PRINT @VA04250 01216000
  1217. LA R7,FSPOOL INITIAL START ADDR IN O/P AREA @VA04250 01217000
  1218. BAL R6,BLKPRINT GO PRINT VSPLCTL BLOCK @VA04250 01218000
  1219. BAL R6,SFPRINT GO TO SFBLOK PRINT ROUTINE @VA04250 01219000
  1220. B NXTVDEV DO NEXT @VA04250 01220000
  1221. VIOB TM ACTIOBSW,XFF ANY IOB ?? @VA04250 01221000
  1222. BZ VIOER NO @VA04250 01222000
  1223. MVC HIOBLKS(13),HACTIO @VA04250 01223000
  1224. MVC IOBCHAIN,AIOB SET ADDRESS @VA04250 01224000
  1225. BAL R6,IOBPRINT PRINT IT @VA04250 01225000
  1226. MVI ACTIOBSW,X00 @VA04250 01226000
  1227. VIOER TM IOERSW,XFF TEST FOR IOER BLOK @VA04250 01227000
  1228. BZ NXTVDEV DO NEXT @VA04250 01228000
  1229. BAL R6,IOERPRC PRINT IT @VA11255 01229000
  1230. SPACE 1 01230000
  1231. * A CHECK IS MADE HERE FOR THE END OF THE DEVICE, CONTROL UNIT, 01231000
  1232. * CHANNEL INDEX TABLES AND VMBLOKS 01232000
  1233. SPACE 1 01233000
  1234. NXTVDEV L R4,DEVDEX ADDR OF CURRENT DEV. INDEX VALUE @VA04250 01234000
  1235. B DEVCK CHECK FOR LAST TABLE ENTRY @VA04250 01235000
  1236. CUCK EQU * @VA04250 01236000
  1237. LA R4,DEVINDEX ADDR 1ST ENTRY IN DEV INDEX TBL @VA04250 01237000
  1238. ST R4,DEVDEX REINITIALIZE DEV INDEX PTR FOR @VA04250 01238000
  1239. * NEXT CONTROL UNIT 01239000
  1240. L R4,CUDEX ADDR OF CURRENT CU INDEX VALUE @VA04250 01240000
  1241. B VCULOOP CHECK FOR LAST TABLE ENTRY @VA04250 01241000
  1242. CHANCK EQU * @VA04250 01242000
  1243. LA R4,CUINDEX ADDR 1ST ENTRY IN CU INDEX TBL. @VA04250 01243000
  1244. ST R4,CUDEX REINITIALIZE CU INDEX TBL PTR @VA04250 01244000
  1245. * FOR NEXT CHANNEL 01245000
  1246. L R4,CHDEX ADDR CURRENT CHAN INDEX VALUE @VA04250 01246000
  1247. B LOOPCH CHECK FOR LAST TABLE ENTRY @VA04250 01247000
  1248. VMCK EQU * @VA04250 01248000
  1249. LA R4,CHINDEX ADDR 1ST ENTRY IN CH INDEX TABLE @VA04250 01249000
  1250. ST R4,CHDEX REINITIALIZE CH TBL PTR FOR NEXT @VA04250 01250000
  1251. * VIRTUAL MACHINE 01251000
  1252. L R5,VMCURENT ADDR CURRENT VMBLOK @VA04250 01252000
  1253. BAL R6,SEGPGTB GO TO SEGMENT TABLE PROCESSING @VA04250 01253000
  1254. LA R10,DATA RESTORE ADDR. FOR O/P AREA DSECT @VA04250 01254000
  1255. CLC VMCHAIN(K4),VMPTR END OF VIRTUAL PROCESSING? @VA04250 01255000
  1256. BE HEXDUMP GO DO HEX DUMP IF REQUIRED @VA04250 01256000
  1257. L R5,VMCHAIN GET ADDR NEXT VMBLOK IN CHAIN @VA04250 01257000
  1258. LTR R5,R5 TEST FOR ONE ONLY @VA04250 01258000
  1259. BZ HEXDUMP DONE @VA04250 01259000
  1260. TM VMBSW,XF0 DOINF SYSVMBLK ?? @VA04250 01260000
  1261. BZ VMPRC NO @VA11255 01261000
  1262. NI VMBSW,X0F SW OFF @VA04250 01262000
  1263. ST R5,VMPTR SAVE 1ST VMBLOK ADDR FOR CHAIN CK@VA04250 01263000
  1264. B VMPRC PROCESS NEXT VIRTUAL MACHINE @VA11255 01264000
  1265. EJECT 01265000
  1266. * 01266000
  1267. * SUBROUTINE TO PRINT FORMATED I/O BLOCKS 01267000
  1268. * INPUT- R2= ADDR OF BLOCK HEADING, R3-NO. OF LINES IN HEADING, R4-NO. 01268000
  1269. * OF BLOCKS OF DATA(16 CHARS) TO PRINT/LINE, R5-TOTAL NO. OF DATA 01269000
  1270. * BLOCKS, R7-ADDR FOR START OF DATA 01270000
  1271. * 01271000
  1272. BLKPRINT EQU * @VA04250 01272000
  1273. ST R6,RTNSAVE SAVE RETURN ADDR @VA04250 01273000
  1274. LR R9,R5 GET DBL WORD COUNT @VA04250 01274000
  1275. SRL R9,2 GET NUMBER OF LINE FOR BLOCK @VA04250 01275000
  1276. AH R9,LINECT ADD COURRENT LINE COUNTER @VA04250 01276000
  1277. LA R9,2(R9) PLUS 2 FOR SPACING @VA04250 01277000
  1278. CH R9,=H'59' ENOUGH ON ONE PAGE ?? @VA10490 01278001
  1279. BNH SETUP YES, CONT @VA04250 01279000
  1280. STH R9,LINECT FORCE EJECT @VA04250 01280000
  1281. SETUP DS 0H @VA04250 01281000
  1282. LR R1,R7 SAVE O/P POINTER @VA04250 01282000
  1283. LA R9,WORK+8 START ADDR OF TRANSLATED BLOCK @VA04250 01283000
  1284. MVI SPACENUM+K1,X01 1 FOR LINE COUNTER @VA04250 01284000
  1285. MVI CTL,SPACE1 SET SINGLE SPACING @VA04250 01285000
  1286. MVCLOOP EQU * @VA04250 01286000
  1287. LA R8,4 FOUR DBL WORDS PER LINE @VA04250 01287000
  1288. LR R7,R1 RESET O/P POINTER @VA04250 01288000
  1289. HDTEST EQU * @VA04250 01289000
  1290. TM PRTENDSW,XF0 LAST HEAD ALREADY PRINTED? @VA04250 01290000
  1291. BO TSTDATA TEST FOR MORE DATA @VA04250 01291000
  1292. BCT R3,NOHDEND LAST HEAD LINE TEST @VA04250 01292000
  1293. OI PRTENDSW,XF0 SET LAST HEAD LINE SWITCH @VA04250 01293000
  1294. NOHDEND EQU * @VA04250 01294000
  1295. MVC K0(K14,R7),K0(R2) PUT HEAD IN O/P AREA @VA04250 01295000
  1296. LA R2,14(R2) NEXT HEADING @VA04250 01296000
  1297. TSTDATA TM PRTENDSW,X0F ANY MORE DATA @VA04250 01297000
  1298. BO PRNTLINE NO, PRINT @VA04250 01298000
  1299. CH R5,=H'4' MORE THAN 1 LINE LEFT ?? @VA04250 01299000
  1300. BH FULLINE YES @VA04250 01300000
  1301. LR R8,R5 SET COUNT @VA04250 01301000
  1302. OI PRTENDSW,X0F SET SW @VA04250 01302000
  1303. FULLINE SH R5,=H'4' REMAINING @VA04250 01303000
  1304. POSMOVE LA R7,2(R7) SPACE OVER @VA04250 01304000
  1305. UNPK WORK3(5),LINEHEX(3) GET HEX DISP @VA04250 01305000
  1306. TR WORK3(4),TTAB-240 @VA04250 01306000
  1307. MVC 14(3,R7),WORK3+1 SET DISP @VA04250 01307000
  1308. LH R4,LINEHEX GET COUNT @VA04250 01308000
  1309. LA R4,32(R4) BUMP COUNTER @VA04250 01309000
  1310. STH R4,LINEHEX SAVE @VA04250 01310000
  1311. DATAMOVE EQU * @VA04250 01311000
  1312. LA R7,K18(,R7) INCREMENT O/P POINTER @VA04250 01312000
  1313. MVC 0(8,R7),0(R9) MOVE FIRST WORD @VA04250 01313000
  1314. MVC 9(8,R7),8(R9) MOVE SECOND WORD @VA04250 01314000
  1315. LA R9,K16(,R9) INCREMENT TRANSLATED DATA POINTER@VA04250 01315000
  1316. BCT R8,DATAMOVE MOVE NEXT BLK IF NOT END OF LINE @VA04250 01316000
  1317. PRNTLINE EQU * @VA04250 01317000
  1318. CLI PRTENDSW,XFF ALL DONE @VA04250 01318000
  1319. BNE PRNTSP NO, PRINT AND CONT @VA04250 01319000
  1320. TM VMBSW,X0F DOING VMBLOK ?? @VA04250 01320000
  1321. BO SKIPSP YES @VA04250 01321000
  1322. BAL R6,PRINTA PRINT IT @VA04250 01322000
  1323. MVC LINEHEX,=H'0' CLEAR LINE DISP @VA04250 01323000
  1324. MVI CTL,SPACE2 SET SPACING @VA04250 01324000
  1325. MVI SPACENUM+1,2 @VA04250 01325000
  1326. SKIPSP BAL R6,PRINTA PRINT LINE @VA04250 01326000
  1327. MVI PRTENDSW,X00 CLEAR @VA04250 01327000
  1328. L R6,RTNSAVE RETURN @VA04250 01328000
  1329. BR R6 @VA04250 01329000
  1330. PRNTSP BAL R6,PRINTA PRINT LINE @VA04250 01330000
  1331. B MVCLOOP CONT @VA04250 01331000
  1332. EJECT 01332000
  1333. * 01333000
  1334. * IOBLOK PRINT SUBROUTINE. THIS ROUTINE PRINTS ALL IOBLOKS CHAINED 01334000
  1335. * OFF OF THE CHANNEL, CONTROL UNIT, OR DEVICE BLOCK THAT IS 01335000
  1336. * CURRENTLY BEING PROCESSED. THE FIELD 'IOBCHAIN' CONTAINS THE 01336000
  1337. * ADDR. OF THE FIRST IOBLOK CHAINED(IF ANY) TO THAT BLOCK. 01337000
  1338. * 01338000
  1339. IOBPRINT EQU * @VA04250 01339000
  1340. USING IOBLOK,R9 @VA04250 01340000
  1341. L R5,IOBCHAIN GET ADDR OF NEXT CHANNEL IOBLOK @VA04250 01341000
  1342. C R5,CHAINCK IS THERE AN IOBLOK CHAINED TO BLK@VA04250 01342000
  1343. BCR 8,R6 NO, RETURN @VA04250 01343000
  1344. ST R6,IOBRTN SAVE RETURN ADDR. @VA04250 01344000
  1345. IOBLOOP EQU * @VA04250 01345000
  1346. ST R5,WORK2 PUT BLOCK ADDR IN TRANS. @VA04250 01346000
  1347. MVI ERRINDX,IX10 SET ERROR INDEX FOR GETPAGE @VA01570 01347000
  1348. LA R3,IOBSIZE SIZE @VA04250 01348000
  1349. BAL R2,GETPAGE GET PAGE WITH THIS IOBLOK @VA04250 01349000
  1350. SLL R3,3 8=NO. OF BYTES TO TRANSLATE @VA04250 01350000
  1351. MVC IOBSAVE(4),IOBCHAIN REMEMBER THIS IOBLOK @VA07496 01351000
  1352. MVC IOBCHAIN(4),IOBFPNT SAVE ADDR NEXT IOBLOK CHAIND@VA04250 01352000
  1353. BAL R6,TRANINIT TRANSLATE FIELD @VA04250 01353000
  1354. MVC HIOBADDR(6),WORK+2 BLOK ADDRESS @VA04250 01354000
  1355. SPACE 1 01355000
  1356. * SETUP FOR WRITING IOBLOK 01356000
  1357. SPACE 1 01357000
  1358. LA R2,HIOBLKS ADDR OF IOBLOK HEADING @VA04250 01358000
  1359. LA R3,K2 NO. OF HEADING LINES @VA04250 01359000
  1360. LA R5,IOBSIZE NO. OF DOUBLE WORDS TO PRINT @VA04250 01360000
  1361. LA R7,FIOBLK INITIAL START ADDR IN O/P AREA @VA04250 01361000
  1362. BAL R6,BLKPRINT GO PRINT IOBLOK @VA04250 01362000
  1363. TM ACTIOBSW,XFF IS THIS AN ACTIVE IOBLOK? @VA04250 01363000
  1364. BO IOBACK YES, ONLY ONE TO PRINT @VA04250 01364000
  1365. L R5,IOBCHAIN GET ADDR OF NEXT IOBLOK @VA04250 01365000
  1366. CLC IOBSAVE(4),IOBCHAIN NEXT SAME AS LAST @VA07496 01366000
  1367. BE IOBACK YES, DON'T LOOP PRINTING IT @VA07496 01367000
  1368. CL R5,CHAINCK ANOTHER BLOCK ON CHAIN? @VA04250 01368000
  1369. BNE IOBLOOP YES,PROCESS NEXT BLOCK @VA04250 01369000
  1370. IOBACK EQU * @VA04250 01370000
  1371. L R6,IOBRTN GET RETURN ADDR. @VA04250 01371000
  1372. BR R6 RETURN @VA04250 01372000
  1373. EJECT 01373000
  1374. * THIS SUBROUTINE PRINTS A FORMATED SFBLOK. INPUT: THE FIELD 01374000
  1375. * 'SPOOLSAV' CONTAINS THE ADDR. OF THE SFBLOK TO PRINT 01375000
  1376. SPACE 1 01376000
  1377. SFPRINT EQU * @VA04250 01377000
  1378. ST R6,SFRTN SAVE RETURN ADDR. @VA04250 01378000
  1379. L R5,SPOOLSAV GET ADDR OF SFBLOK @VA04250 01379000
  1380. ST R5,WORK2 ADDR OF BLOCK FOR TRANSLATION @VA04250 01380000
  1381. MVI ERRINDX,IX11 SET ERROR INDEX FOR GETPAGE @VA01570 01381000
  1382. LA R3,SFBSIZE SIZE @VA04250 01382000
  1383. BAL R2,GETPAGE GET PAGE CONTAING BLOCK @VA04250 01383000
  1384. USING SFBLOK,R9 @VA04250 01384000
  1385. L R4,SFBPNT GET NEXT SFBLOK POINTER @VA04250 01385000
  1386. ST R4,NXTSFBK SAVE @VA04250 01386000
  1387. SLL R3,3 8=NO. OF BYTES TO TRANSLATE @VA04250 01387000
  1388. BAL R6,TRANINIT TRANSLATE BLOCK AND ITS ADDR @VA04250 01388000
  1389. MVC HSFID(8),SFBUSER USERID @VA04250 01389000
  1390. MVC HSFADDR(6),WORK+2 @VA04250 01390000
  1391. LA R2,HSFBLK @VA04250 01391000
  1392. LA R3,K3 NO. OF HEADING LINES @VA04250 01392000
  1393. LA R5,SFBSIZE NO. OF DOUBLE WORDS TO PRINT @VA04250 01393000
  1394. LA R7,FSPOOL INITIAL START ADDR IN O/P AREA @VA04250 01394000
  1395. BAL R6,BLKPRINT GO PRINT SFBLOK @VA04250 01395000
  1396. SFERR EQU * @VA02332 01396000
  1397. L R6,SFRTN GET RETURN ADDR. @VA04250 01397000
  1398. BR R6 RETURN @VA04250 01398000
  1399. SPACE 1 01399000
  1400. * THIS SUBROUTINE PRINTS THE IOERBLOK. INPUT: IF THERE IS A 01400000
  1401. * BLOCK TO PRINT THE SWITCH 'IOERSW' WILL CONTAIN A X'FF' AND 01401000
  1402. * THE FIELD 'ERRBLOCK' WILL CONTAIN THE ADDR. OF THE BLOCK TO 01402000
  1403. * PRINT 01403000
  1404. SPACE 1 01404000
  1405. IOERPRC EQU * @VA11255 01405000
  1406. ST R6,IOERSAV SAVE RETURN ADDR. @VA04250 01406000
  1407. NI IOERSW,255-XFF CLEAR SWITCH @VA04250 01407000
  1408. L R5,ERRBLOCK GET ADDR OF IOERBLOK @VA04250 01408000
  1409. ST R5,WORK2 PUT IN TRANSLATION AREA @VA04250 01409000
  1410. MVI ERRINDX,IX12 SET ERROR INDEX FOR GETPAGE @VA01570 01410000
  1411. LA R3,IOERSIZE SIZE @VA04250 01411000
  1412. BAL R2,GETPAGE GET PAGE WITH BLOCK @VA04250 01412000
  1413. USING IOERBLOK,R9 @VA04250 01413000
  1414. SLL R3,3 8=NO. OF BYTES TO TRANSLATE @VA04250 01414000
  1415. BAL R6,TRANINIT TRANSLATE BLOCK AND ITS ADDR @VA04250 01415000
  1416. MVC HIOBLKS(13),HIOERBLK PUT 'IOERBLOK' IN HEADING @VA04250 01416000
  1417. MVC HIOBADDR(6),WORK+2 BLOK ADDRESS @VA04250 01417000
  1418. LA R2,HIOBLKS ADDR HEADING LINES @VA04250 01418000
  1419. LA R3,K2 NO. OF HEADING LINES @VA04250 01419000
  1420. LA R5,IOERSIZE NO. OF DOUBLE WORDS TO PRINT @VA04250 01420000
  1421. LA R7,FSPOOL @VA04250 01421000
  1422. BAL R6,BLKPRINT GO PRINT IOERBLOK @VA04250 01422000
  1423. IOERERR EQU * RETURN FROM ERROR @VA01570 01423000
  1424. L R6,IOERSAV GET RETURN ADDR. @VA04250 01424000
  1425. BR R6 RETURN @VA04250 01425000
  1426. EJECT 01426000
  1427. * ******************************************** 01427000
  1428. * * THIS SUBROUTINE WILL PRINTOUT THE PTR, * 01428000
  1429. * * PCH,AND RDR SFBLOK CHAINS. * 01429000
  1430. * ******************************************** 01430000
  1431. SPACE 3 01431000
  1432. SFFORM EQU * @VA04250 01432000
  1433. MVC LINECT,=H'60' FORCE EJECT @VA04250 01433000
  1434. MVC DATA+2(K19),=C'PRINTER SPOOL CHAIN' @VA04250 01434000
  1435. MVI ERRINDX,IX13 SET ERROR INDEX FOR GETPAGE @VA01570 01435000
  1436. L R5,PRTSPL GET PTR SPOOL POINTER @VA04250 01436000
  1437. SFFORM1 LA R3,1 ONE WORD @VA04250 01437000
  1438. BAL R2,GETPAGE @VA04250 01438000
  1439. L R5,K0(,R9) GET ADR OF SFBLOK @VA04250 01439000
  1440. BAL R6,PRINTA GO PRINT HEADING @VA04250 01440000
  1441. SFFORM2 LTR R5,R5 EQUAL TO ZERO @VA04250 01441000
  1442. BZ SFFORM7 BRANCH IF YES @VA04250 01442000
  1443. MVI SFFORM7+1,XF0 SET SWITCH @VA04250 01443000
  1444. ST R5,SPOOLSAV ADDRESS OF SFBLOK @VA04250 01444000
  1445. BAL R6,SFPRINT PRINT BLOCK @VA04250 01445000
  1446. L R5,NXTSFBK GET NEXT BLOK ADDRESS @VA04250 01446000
  1447. B SFFORM2 @VA04250 01447000
  1448. SPACE 2 01448000
  1449. SFFORM7 NOP SFFORM8 @VA04250 01449000
  1450. MVI CTL,SPACE3 @VA04250 01450000
  1451. MVI SPACENUM+1,X03 @VA04250 01451000
  1452. MVC DATA+16(K24),=C'NO SFBLOKS ON THIS CHAIN' @VA04250 01452000
  1453. SFFORM8 BAL R6,PRINTA PRINT EXTRA BLANK LINE @VA04250 01453000
  1454. SFFORMC NOP SFFORM9 @VA04250 01454000
  1455. MVC DATA+2(K17),=C'PUNCH SPOOL CHAIN' @VA04250 01455000
  1456. MVI SFFORM7+1,X00 RESTORE NOP @VA04250 01456000
  1457. MVI SFFORMC+1,XF0 @VA04250 01457000
  1458. L R5,PNCHSPL GET PUNCH SPOOL POINTER @VA04250 01458000
  1459. B SFFORM1 @VA04250 01459000
  1460. SFFORM9 NOP CORTBL @VA04250 01460000
  1461. MVC DATA+2(K18),=C'READER SPOOL CHAIN' @VA04250 01461000
  1462. MVI SFFORM7+1,X00 RESTORE TO NOP @VA04250 01462000
  1463. MVI SFFORM9+1,XF0 @VA04250 01463000
  1464. L R5,RDRSPL GET RDR SPOOL POINTER @VA04250 01464000
  1465. B SFFORM1 @VA04250 01465000
  1466. EJECT 01466000
  1467. * ************************************************** 01467000
  1468. * * * THE FOLLOWING ROUTINE WILL FORMAT AND PRINT * 01468000
  1469. * * OUT THE CORETABLE. * 01469000
  1470. * ************************************************** 01470000
  1471. SPACE 3 01471000
  1472. USING CORTABLE,R10 @VA04250 01472000
  1473. CORTBL MVC LINECT,=H'59' 01473100
  1474. L R7,RSYSRV GET REAL STORAGE GENERATION SIZE @VA04250 01474000
  1475. SRL R7,12 SIZE IN PAGES @VA04250 01475000
  1476. L R5,CORPOINT GET START @VA04250 01476000
  1477. CORTBLS LH R6,LINECT GET COUNT @VA04250 01477000
  1478. CH R6,=H'59' ENOUGH ON ONE PAGE ?? @VA10490 01478001
  1479. BNE CORTBL2 NO @VA04250 01479000
  1480. MVI CTL,SPACE1 SETUP FOR SINGLE SPACE @VA04250 01480000
  1481. MVI SPACENUM+1,X01 @VA04250 01481000
  1482. MVC DATA+30(39),CORTBHD1 HEADING @VA04250 01482000
  1483. MVC DATA+72(K21),CORTBHD2 MVE 2ND LINE OF HD TO BUF@VA04250 01483000
  1484. MVC DATA+19(7),=C'ADDRESS' @VA04250 01484000
  1485. BAL R6,PRINTA @VA04250 01485000
  1486. BAL R6,PRINTA PRINT A BLANK LINE @VA01570 01486000
  1487. CORTBL2 ST R5,THIS @VA04250 01487000
  1488. MVI ERRINDX,IX14 SET ERROR INDEX FOR GETPAGE @VA01570 01488000
  1489. LA R3,2 2 DBL WDS @VA04250 01489000
  1490. BAL R2,GETPAGE @VA04250 01490000
  1491. A R5,BLKSIZE ADD 16 TO GET NXT BLK ADR @VA04250 01491000
  1492. ST R5,NXTSFBK @VA04250 01492000
  1493. UNPK WORK3(7),THIS+1(4) @VA04250 01493000
  1494. TR WORK3(6),TTAB-240 @VA04250 01494000
  1495. MVC DATA+20(6),WORK3 @VA04250 01495000
  1496. UNPK WORK3(5),PGCT(3) @VA04250 01496000
  1497. TR WORK3(4),TTAB-240 @VA04250 01497000
  1498. MVC DATA+74(3),WORK3+1 PAGE NUMBER @VA04250 01498000
  1499. MVC WORK2(K16),K0(R9) SAVE THE BLOCK @VA04250 01499000
  1500. SPACE 2 01500000
  1501. * GO GET USERS NAME 01501000
  1502. SPACE 2 01502000
  1503. USING CORTABLE,R10 @VA04250 01503000
  1504. CORTBL3 LR R10,R9 @VA04250 01504000
  1505. L R8,=A(ITEM2) RESTORE R8 TO POINT TO ITEM2 @VA08574 01505000
  1506. CLC I2VM,CORFPNT IS THIS THE VMBLOK? @VA08574 01506000
  1507. BNE CORTBL4 NO @VA04250 01507000
  1508. MVC DATA+82(18),=CL18'CP- RESIDENT' @VA04250 01508000
  1509. B CORTBL9 @VA04250 01509000
  1510. CORTBL4 CLC FREEID(K4),CORFPNT EQUAL TO FREE @VA04250 01510000
  1511. BNE CORTBL5 NO @VA04250 01511000
  1512. MVC DATA+82(18),=CL18'CP- FREE STORAGE' @VA04250 01512000
  1513. B CORTBL9 @VA04250 01513000
  1514. CORTBL5 TM CORFLAG,CORCP IS IT A CP PAGE ?? @VA04250 01514000
  1515. BNO CORTBL6 NO @VA04250 01515000
  1516. MVC DATA+82(18),=CL18'CP- PAGEABLE' @VA04250 01516000
  1517. B CORTBL9 @VA04250 01517000
  1518. SPACE 1 01518000
  1519. CORTBL6 TM CORFLAG,CORFREE CHECK TO SEE IF ON FREE LIST@VA04250 01519000
  1520. BO CORTBLA YES @VA04250 01520000
  1521. TM CORFLAG,CORDISA DISABLED ?? @VA04250 01521000
  1522. BO CORTBLE YES @VA04250 01522000
  1523. CLC CORFPNT,=CL4'*OL*' OFFLINE ?? @VA04250 01523000
  1524. BNE CORTBLB NO @VA04250 01524000
  1525. CORTBLE MVC DATA+82(18),=CL18'CP- OFFLINE' @VA04250 01525000
  1526. B CORTBL9 @VA04250 01526000
  1527. CORTBLA MVC DATA+82(18),=CL18'USER FREE LIST' @VA04250 01527000
  1528. B CORTBL9 @VA04250 01528000
  1529. CORTBLB TM CORFLAG,CORFLUSH @VA04250 01529000
  1530. BZ CORTBLC NO @VA04250 01530000
  1531. MVC DATA+82(18),=CL18'USER FLUSH LIST' @VA04250 01531000
  1532. B CORTBL9 @VA04250 01532000
  1533. CORTBLC TM CORFLAG,CORSHARE @VA04250 01533000
  1534. BZ CORTBLD NO @VA04250 01534000
  1535. MVC DATA+82(18),=CL18'USER SHARED PAGE' @VA04250 01535000
  1536. B CORTBL9 @VA04250 01536000
  1537. CORTBLD MVC DATA+82(18),=CL18'USER' @VA04250 01537000
  1538. CORTBL6A L R5,CORSWPNT GET SWPTABLE ADDRESS @VA04250 01538000
  1539. LA R5,0(R5) CLEAR @VA04250 01539000
  1540. MVI ERRINDX,IX15 SET ERROR INDEX FOR GETPAGE @VA01570 01540000
  1541. LA R3,1 SIZE @VA04250 01541000
  1542. BAL R2,GETPAGE GET SWPTABLE ENTRY @VA04250 01542000
  1543. USING SWPTABLE,R10 @VA04250 01543000
  1544. LR R10,R9 SAVE SWPTABLE ADDRESS @VA04250 01544000
  1545. SR R9,R9 @VA04250 01545000
  1546. IC R9,1(R10) GET VIRT PAGE ADDRESS @VA04250 01546000
  1547. LA R9,1(R9) UP INDEX @VA04250 01547000
  1548. SLL R9,3 TIMES 8 @VA04250 01548000
  1549. SR R5,R9 POINT TO VMBLOK POINTER @VA04250 01549000
  1550. MVI ERRINDX,IX16 SET ERROR INDEX FOR GETPAGE @VA01570 01550000
  1551. LA R3,1 SIZE @VA04250 01551000
  1552. BAL R2,GETPAGE @VA04250 01552000
  1553. LR R10,R9 LOAD BASE REG @VA04250 01553000
  1554. L R5,SWPVM GET VMBLOCK ADDRESS @VA04250 01554000
  1555. USING VMBLOK,R10 @VA04250 01555000
  1556. MVI ERRINDX,IX17 SET ERROR INDEX FOR GETPAGE @VA01570 01556000
  1557. LA R3,VMBSIZE SIZE @VA04250 01557000
  1558. BAL R2,GETPAGE GET VMBLOK @VA04250 01558000
  1559. LR R10,R9 LOAD BASE REG @VA04250 01559000
  1560. MVC DATA+87(K8),VMUSER MOVE USERID TO PRT BUF @VA04250 01560000
  1561. CORTBL9 DS 0H @VA04250 01561000
  1562. SPACE 2 01562000
  1563. * FORMAT COREBLOCK DATA AND PRINT IT 01563000
  1564. SPACE 1 01564000
  1565. CORTBL7 EQU * @VA04250 01565000
  1566. LA R3,K16 LENGTH @VA04250 01566000
  1567. BAL R6,TRANINT1 @VA04250 01567000
  1568. LA R4,DATA+30 TO FIELD @VA04250 01568000
  1569. LA R5,WORK FROM FIELD @VA04250 01569000
  1570. LA R2,K32 LENGTH @VA04250 01570000
  1571. BAL R6,MVSBRTN @VA04250 01571000
  1572. BAL R6,PRINTA @VA04250 01572000
  1573. LH R5,PGCT GET PAGE COUNT @VA04250 01573000
  1574. LA R5,1(R5) BUMP @VA04250 01574000
  1575. STH R5,PGCT SAVE @VA04250 01575000
  1576. L R5,NXTSFBK GET NEXT CORETABLE ENTRY @VA04250 01576000
  1577. BCT R7,CORTBLS LOOP @VA04250 01577000
  1578. B VIRTUALM DO VMBLOKS @VA04250 01578000
  1579. SPACE 2 01579000
  1580. EJECT 01580000
  1581. * ************************************************** 01581000
  1582. * * THE FOLLOWING ROUTINE WILL PRINT OUT THE * 01582000
  1583. * * * SEGMENT, PAGE, AND SWAP TABLES FOR A USER. * 01583000
  1584. * * UPON ENTRY TO THIS ROUTINE * 01584000
  1585. * * R5= POINTER TO VMBLOK 01585000
  1586. * * R6= RETURN ADDR * 01586000
  1587. * ************************************************** 01587000
  1588. SPACE 3 01588000
  1589. USING VMBLOK,R10 @VA04250 01589000
  1590. SEGPGTB ST R6,RETADR SAVE RETURN ADDRESS @VA04250 01590000
  1591. MVC SEGNUMB,=H'0' CLEAR @VA04250 01591000
  1592. MVI CTL,SPACE1 SETUP FOR TRIPLE SPACE @VA04250 01592000
  1593. MVI SPACENUM+1,X01 @VA04250 01593000
  1594. MVI ERRINDX,IX18 SET ERROR INDEX FOR GETPAGE @VA01570 01594000
  1595. LA R3,VMBSIZE SIZE @VA04250 01595000
  1596. BAL R2,GETPAGE GET VMBLOK @VA04250 01596000
  1597. LR R10,R9 LOAD INCORE ADR OF VMBLOK IN BASE@VA04250 01597000
  1598. L R5,VMSEG GET SEGMENT TABLE ADDR @VA04250 01598000
  1599. LTR R5,R5 DOES SEGMENT TABLE PTR=0 @VA04250 01599000
  1600. BNZ SEGPGTP1 BR IF NO @VA04250 01600000
  1601. MVC DATA+10(50),SEGHD3 MOVE MSG TO PRT BUFFER @VA04250 01601000
  1602. BAL R6,PRINTA @VA04250 01602000
  1603. B SEGPGTBF GO BACK TO CALLER @VA04250 01603000
  1604. SEGPGTP1 MVC DATA+10(40),SEGHD HEADING @VA04250 01604000
  1605. MVC LINECT,=H'60' FORCE EJECT @VA04250 01605000
  1606. BAL R6,PRINTA PRINT HEADING @VA04250 01606000
  1607. SPACE 1 01607000
  1608. SEGPGTBE ST R5,SEGSAVE SAVE IT @VA04250 01608000
  1609. L R10,VMSIZE GET NUMBER OF SEGMENTS TO BE @VA01570 01609000
  1610. * PRINTED 01610000
  1611. A R10,K64M1 ADJUST FOR PARTIAL SEGMENTS @VA01570 01611000
  1612. SRL R10,16 AND DROP REMAINDER @VA01570 01612000
  1613. DROP R10 @VA04250 01613000
  1614. L R5,SEGSAVE RESTORE SEGMENT TBL ADR @VA04250 01614000
  1615. SEGPGTB1 LA R3,1 SIZE @VA04250 01615000
  1616. MVI ERRINDX,IX19 SET ERROR INDEX FOR GETPAGE @VA01570 01616000
  1617. BAL R2,GETPAGE @VA04250 01617000
  1618. MVC PAGNUMB,=H'0' RESET PAGE COUNT @VA01570 01618000
  1619. MVI SEGPGTBA+1,X00 INIT THE FIRST SWITCH @VA01570 01619000
  1620. MVI SEGPGTBB+1,X00 AND THE SECOND TOO @VA01570 01620000
  1621. BAL R6,PRINTA PRINT A BLANK LINE @VA01570 01621000
  1622. MVC WORK2(K4),K0(R9) PLACE ENTRY INTO WORK2 @VA04250 01622000
  1623. L R5,K0(,R9) LOAD PAGE TABLE ADDR INTO R5 @VA04250 01623000
  1624. LA R5,0(R5) CLEAR HI BYTE @VA04250 01624000
  1625. S R5,=F'4' R5 POINTS TO PG TBL -4 @VA04250 01625000
  1626. SR R7,R7 CLEAR @VA04250 01626000
  1627. TM 3(R9),X'01' IS SEGMENT VALID ?? @VA04250 01627000
  1628. BO SEGPGTBD NO @VA04250 01628000
  1629. L R7,0(,R9) LOAD PAGETABLE ADDRESS @VA01127 01629000
  1630. SRL R7,28 GET NUMBER OF PAGE ENTRIES -1 @VA01127 01630000
  1631. LA R7,1(,R7) ADD ONE @VA01127 01631000
  1632. SEGPGTB2 ST R5,PGSAVE @VA04250 01632000
  1633. MVI ERRINDX,IX1A SET ERROR INDEX FOR GETPAGE @VA01570 01633000
  1634. LA R3,4 SIZE @VA04250 01634000
  1635. BAL R2,GETPAGE GO GET PAGE TABLE @VA04250 01635000
  1636. MVC WORK2+4(K2),K4(R9) SAVE PAGETABLE ENTRY @VA04250 01636000
  1637. SPACE 1 01637000
  1638. SEGPGTBA NOP SEGPGTB3 @VA04250 01638000
  1639. * * THE FOLLOWING INSTRUCTION IS EXECUTED ONLY WHEN 01639000
  1640. * A NEW SEGMENT TABLE ENTRY IS FETCHED. 01640000
  1641. MVC SWAPSAVE+1(K3),K1(R9) SAVE ADDR OF SWAPTABLE @VA04250 01641000
  1642. MVI SEGPGTBA+1,XF0 SET SWITCH @VA04250 01642000
  1643. LH R5,LINECT GET LINE COUNT @VA04250 01643000
  1644. CH R5,=H'43' ROOM ON PAGE FOR ALL ?? @VA04250 01644000
  1645. BL SEGPGTB3 YES @VA04250 01645000
  1646. MVC DATA+10(40),SEGHD HEADING @VA04250 01646000
  1647. MVC LINECT,=H'60' FORCE EJECT @VA04250 01647000
  1648. BAL R6,PRINTA PRINT IT @VA04250 01648000
  1649. BAL R6,PRINTA PRINT A BLANK LINE @VA01570 01649000
  1650. SPACE 3 01650000
  1651. SEGPGTB3 L R5,SWAPSAVE GET POINTER TO SWPTABLE ENTRY @VA04250 01651000
  1652. MVI ERRINDX,IX1B SET ERROR INDEX FOR GETPAGE @VA01570 01652000
  1653. LA R3,1 @VA04250 01653000
  1654. BAL R2,GETPAGE @VA04250 01654000
  1655. MVC WORK2+6(K8),K0(R9) MOVE ENTRY TO WORK2 @VA04250 01655000
  1656. SEGPGTBD LA R3,K16 LENGTH @VA04250 01656000
  1657. BAL R6,TRANINT1 GO UNPACK DATA @VA04250 01657000
  1658. SEGPGTBB NOP SEGPGTBC @VA04250 01658000
  1659. MVC DATA+10(K8),WORK MOVE SEGTBL ENTRY TO PRT BUF@VA04250 01659000
  1660. UNPK WORK3(3),SEGNUMB+1(2) @VA04250 01660000
  1661. TR WORK3(2),TTAB-240 @VA04250 01661000
  1662. MVC DATA+6(2),WORK3 SEG NUMBER @VA04250 01662000
  1663. LTR R7,R7 R7=0 EQUALS NO PG TBL THIS ENTRY @VA04250 01663000
  1664. BZ SEGPGTB7 @VA04250 01664000
  1665. MVI SEGPGTBB+1,XF0 @VA04250 01665000
  1666. SEGPGTBC MVC DATA+25(4),WORK+8 MOVE PAGTABLE @VA04250 01666000
  1667. LA R5,WORK+12 FROM ADDR @VA04250 01667000
  1668. LA R4,DATA+33 AREA @VA04250 01668000
  1669. LA R2,K16 LENGTH @VA04250 01669000
  1670. BAL R6,MVSBRTN MOVE SWAPTABLE ENTRY TO PRTBUF @VA04250 01670000
  1671. UNPK WORK3(3),PAGNUMB+1(2) @VA04250 01671000
  1672. TR WORK3(2),TTAB-240 @VA04250 01672000
  1673. MVC DATA+22(1),WORK3+1 @VA04250 01673000
  1674. BAL R6,PRINTA @VA04250 01674000
  1675. SEGERR EQU * @VA01570 01675000
  1676. BCT R7,SEGPGTB4 FALL THRU WHEN ALL PGTBLE PRTED @VA04250 01676000
  1677. B SEGPGTB5 @VA04250 01677000
  1678. SPACE 2 01678000
  1679. * INCREMENT PGSAVE TO POINT TO NEXT PAGE TABLE ENTRY 01679000
  1680. * AND INCREMENT THE PAGE NUMBER. 01680000
  1681. SPACE 2 01681000
  1682. SEGPGTB4 LH R5,PAGNUMB GET PAGE COUNT @VA04250 01682000
  1683. LA R5,1(R5) BUMP @VA04250 01683000
  1684. STH R5,PAGNUMB SAVE @VA04250 01684000
  1685. LA R5,K8 LENGTH OF SWAP TABLE @VA04250 01685000
  1686. A R5,SWAPSAVE UPDATE POINTER @VA04250 01686000
  1687. ST R5,SWAPSAVE SAVE IT @VA04250 01687000
  1688. LA R5,K2 ADD 2 TO @VA04250 01688000
  1689. A R5,PGSAVE TO POINT TO NEXT ENTRY @VA04250 01689000
  1690. MVC WORK(K8),BLANK1 CLEAR SEGMT ENTRY FROM WORK @VA04250 01690000
  1691. B SEGPGTB2 GO BACK TO CONSTRUCT NXT LINE @VA04250 01691000
  1692. SPACE 3 01692000
  1693. * WHEN A COMPLETE PAGE TABLE HAS BEEN PRTED UP DATE 01693000
  1694. * SEGMENT POINTERS, AND RETURN TO START CYCLE OVER. 01694000
  1695. SPACE 2 01695000
  1696. SEGPGTB5 BCT R10,SEGPGTB6 REDUCE BY 1 AMT OF SEG TAB ENTRY @VA04250 01696000
  1697. SEGPGTBF L R6,RETADR GET RETURN ADDR @VA04250 01697000
  1698. BR R6 GO BACK TO CALLER @VA04250 01698000
  1699. SEGPGTB6 LH R5,SEGNUMB GET SEG COUNT @VA04250 01699000
  1700. LA R5,1(R5) BUMP @VA04250 01700000
  1701. STH R5,SEGNUMB SAVE @VA04250 01701000
  1702. LA R5,K4 ADD 4 TO @VA04250 01702000
  1703. A R5,SEGSAVE TO POINT TO NXT ENTRY @VA04250 01703000
  1704. ST R5,SEGSAVE SAVE IT @VA04250 01704000
  1705. B SEGPGTB1 @VA04250 01705000
  1706. SPACE 2 01706000
  1707. SEGPGTB7 DS 0H @VA04250 01707000
  1708. MVC DATA+20(K39),SEGHD2 MOVE MESSAGE INTO BUF @VA04250 01708000
  1709. BAL R6,PRINTA @VA04250 01709000
  1710. B SEGPGTB5 GO GET NEXT SEGMENT ENTRY @VA04250 01710000
  1711. EJECT 01711000
  1712. * ************************************************** 01712000
  1713. * * HEX CORE DUMP ROUTINE * 01713000
  1714. * ************************************************** 01714000
  1715. SPACE 3 01715000
  1716. HEXDUMP CLI HEX+7,X01 SEE IF NO HEX DUMP WAS SPECIFIED @VA04250 01716000
  1717. BE ERASE3 BR IF YES @VA04250 01717000
  1718. MVC LINECT,=H'60' FORCE EJECT @VA04250 01718000
  1719. MVI PREND+1,XF0 SET EXIT SWITCH @VA01570 01719000
  1720. B PREREG PRINT LOW CORE INFO @VA04250 01720000
  1721. SPACE 01721000
  1722. RDKEY DS 0H RETURN AFTER PRINTING LOW CORE @VA04250 01722000
  1723. MVI CTL,SPACE1 @VA04250 01723000
  1724. MVI SPACENUM+1,1 @VA04250 01724000
  1725. MVC LINECT,=H'60' FORCE EJECT @VA04250 01725000
  1726. FSREAD FSCB=DUMPFILE,BUFFER=KEY,ERROR=QUIT,RECNO=3 @VA04250 01726000
  1727. FSREAD FSCB=DUMPFILE,BUFFER=KEY1,ERROR=QUIT,RECNO=4 @VA04250 01727000
  1728. L R9,=A(ITEMTBL) GET TABLE ADDRESS @VA04250 01728000
  1729. PRTMAIN DS 0H @V407510 01729000
  1730. L R8,=A(ITEM2) SET BUFFER ADDRESS @V407510 01730000
  1731. L R5,I2MPREF GET MAIN PROCESSOR PSA ADDR @V407510 01731000
  1732. LTR R5,R5 UNIPROCESSOR SYSTEM? @V407510 01732000
  1733. BZ READPAGE YES, START TO DUMP CORE @V407510 01733000
  1734. MVI PSASW,K0 CLEAR SWITCH FOR PSA @V407510 01734000
  1735. MVI ERRINDX,IX1E ERROR INDICATOR FOR GETPAGE @V407510 01735000
  1736. LA R7,HVMAIN SET UP FOR HEADING @V407510 01736000
  1737. XC CURRPAGE,CURRPAGE CLEAR CURRPAGE PTR @V407510 01737000
  1738. PSALOOP DS 0H @V407510 01738000
  1739. MVC LINECT,=H'60' FORCE PAGE EJECT @V407510 01739000
  1740. ST R5,WORK2 SAVE ADDRESS FOR HEADING @V407510 01740000
  1741. LA R3,K256 PAGE SIZE IN DBL WORDS @V407510 01741000
  1742. BAL R2,GETPAGE BRING PAGE IN CORE @V407510 01742000
  1743. SLL R3,K3 PAGE SIZE IN BYTES -DBLWORDS*8 @V407510 01743000
  1744. BAL R6,TRANINIT TRANSLATE @V407510 01744000
  1745. MVC DATA(K14),0(R7) MOVE IN HEADING @V407510 01745000
  1746. MVC DATA+K20(K6),WORK+K2 ADDRESS IN HEADING @V407510 01746000
  1747. BAL R6,PRINTA PRINT HEADING @V407510 01747000
  1748. LH R10,ITEMNO GET ITEM NUMBER @V407510 01748000
  1749. LA R6,K5 CORE DUMP STARTS AT REC 5 @V407510 01749000
  1750. SR R10,R6 GET ITEM # BASE LOC 0 @V407510 01750000
  1751. SLL R10,K1 MULTIPLY BY 2 FOR HW ENTRIES @V407510 01751000
  1752. A R10,=A(ITEMTBL) GET ITEMTBL ENTRY @V407510 01752000
  1753. LH R10,0(R10) GET PAGE NUMBER @V407510 01753000
  1754. BAL R6,GETKEY GET PROTECT KEY @V407510 01754000
  1755. SLL R10,K12 GET PROPER DISPLACEMENT @V407510 01755000
  1756. ST R10,LASTPAG INITIALIZE LASTPAG PTR @V407510 01756000
  1757. MVC HOLD(K32),BLK BLANK OUT COMPARE FIELD @V407510 01757000
  1758. LR R14,R9 SET UP BUFFER ADDRESS @V407510 01758000
  1759. BAL R6,PNTPAGE PRINT PAGE @V407510 01759000
  1760. PRTATT DS 0H @V407510 01760000
  1761. CLI PSASW,K0 FINISHED PROCESSING PSA? @V407510 01761000
  1762. BNZ DUMPCORE YES, DUMP CORE @V407510 01762000
  1763. MVI PSASW,XFF INDICATE END OF PSA PROCESSING @V407510 01763000
  1764. L R8,=A(ITEM2) SET BUFFER ADDRESS @V407510 01764000
  1765. L R5,I2APREF GET ATTACHED PROCESSOR PSA ADDR @V407510 01765000
  1766. MVI ERRINDX,IX1F SET ERROR INDICATOR FOR GETPAGE @V407510 01766000
  1767. LA R7,HVATT SET UP HEADING @V407510 01767000
  1768. B PSALOOP PROCESS ATTACHED PROCESSOR PSA @V407510 01768000
  1769. DUMPCORE DS 0H @V407510 01769000
  1770. XC LASTPAG,LASTPAG CLEAR LAST PAGE PTR @V407510 01770000
  1771. L R9,=A(ITEMTBL) GET TABLE ADDRESS @V407510 01771000
  1772. LA R1,K4 SET UP FOR LOOP CONTROL @V407510 01772000
  1773. STH R1,ITEMNO START LOOP WITH REC 5 @V407510 01773000
  1774. MVC DATA(K14),HVSTOR MOVE IN HEADING @V4M0004 01774000
  1775. MVC LINECT,=H'60' FORCE PAGE EJECT @V4M0004 01775000
  1776. BAL R6,PRINTA PRINT HEADING @V4M0004 01776000
  1777. READPAGE DS 0H @V407510 01777000
  1778. LH R1,ITEMNO GET ITEM @VA04250 01778000
  1779. LA R1,1(R1) ADD ONE @VA04250 01779000
  1780. STH R1,ITEMNO SET ITEM @VA04250 01780000
  1781. FSREAD FSCB=DUMPFILE,BUFFER=BUFF,ERROR=ERRCK @VA04250 01781000
  1782. LH R10,K0(,R9) GET PAGE NO @VA04250 01782000
  1783. CH R10,FFFF END OF DUMP DATA? @VA04250 01783000
  1784. BE ENDUMP YES, FINISH IT @VA08111 01784000
  1785. BAL R6,GETKEY GET PROTECT KEY @VA08111 01785000
  1786. SLL R10,K12 GET PROPER DISPLACEMENT @VA08111 01786000
  1787. L R14,=A(BUFF) SET BASE @VA08111 01787000
  1788. BAL R6,PNTPAGE @VA08111 01788000
  1789. LA R9,K2(,R9) @VA08111 01789000
  1790. B READPAGE @VA08111 01790000
  1791. ENDUMP LH R15,=H'12' INDICATE EOF @VA08111 01791000
  1792. B ERRCK GO DO FINAL PROCESSING @VA04250 01792000
  1793. SPACE 2 01793000
  1794. * GET STORAGE PROTECT KEYS FOR THIS PAGE OF REAL CORE 01794000
  1795. SPACE 2 01795000
  1796. GETKEY L R2,KEYADR GET STARTING ADDR OF KEYS @VA04250 01796000
  1797. LR R4,R10 MOVE PAGE NUMBER INTO R4 @VA04250 01797000
  1798. SLL R4,K1 MULTIPLY BY 2 - TWO KEYS PER PG @VA04250 01798000
  1799. LA R3,K0(R2,R4) GET ADDR WHICH ->KEYS FOR THIS PG@VA04250 01799000
  1800. UNPK KEYSAVE(K5),K0(K3,R3) @VA04250 01800000
  1801. TR KEYSAVE(K4),TTAB-240 @VA04250 01801000
  1802. MVC KEYPRT+2(K2),KEYSAVE PUT INTO PRTBUF - WILL BE @VA04250 01802000
  1803. * PRTED IN THE 1ST LINE OF EACH PAGE 01803000
  1804. BR R6 RETURN TO CALLER @V407510 01804000
  1805. SPACE 2 01805000
  1806. SPACE 2 01806000
  1807. ERRCK CH R15,=H'12' EOF ?? @VA04250 01807000
  1808. BNE QUIT @VA04250 01808000
  1809. ERASE3 EQU * @VA01570 01809000
  1810. MVC DATA(19),=C'*** END OF DUMP ***' @VA04250 01810000
  1811. BAL R6,PRINTA @VA04250 01811000
  1812. SR R15,R15 SET ZERO RETURN CODE @VA04250 01812000
  1813. ST R15,REGSAVE+K4 @V407510 01813000
  1814. CLI ERASEIT+7,X01 SEE IF FILE IS TO BE ERASED @VA04250 01814000
  1815. BNE KPFIL BR IF NO @VA04250 01815000
  1816. BAL R2,ERASE @VA04250 01816000
  1817. MVC ERMP,DUMP SET NAME @VA04250 01817000
  1818. WRTERM ERMSG,ERMSGL @VA04250 01818000
  1819. CLOSE MVC DMR1P,DUMP SET NAME @VA04250 01819000
  1820. LA R1,CLOSEPNT CLOSE PRINTER @VA04250 01820000
  1821. SVC X'CA' @VA04250 01821000
  1822. FSCLOSE FSCB=DUMPFILE CLOSE THE FILE @VA02628 01822000
  1823. SR R15,R15 CLEAR @VA04250 01823000
  1824. B RETN @VA04250 01824000
  1825. SPACE 2 01825000
  1826. SPACE 2 01826000
  1827. KPFIL EQU * @VA04250 01827000
  1828. MVC KMP,DUMP SET NAME @VA04250 01828000
  1829. WRTERM KPMSG,KPMSGL @VA04250 01829000
  1830. B CLOSE @VA04250 01830000
  1831. SPACE 3 01831000
  1832. * PRINT PAGE ROUTINE. R14=INPUT BUFFER, R10=LINE ADDRESS 01832000
  1833. SPACE 3 01833000
  1834. PNTPAGE ST R6,RETADR SAVE CALLERS ADDRESS @VA04250 01834000
  1835. C R10,LASTPAG CONTIGUOUS PAGES ?? @VA04250 01835000
  1836. BE NXTLINE YES, CONT @VA04250 01836000
  1837. ST R10,WORK2 SAVE START ADDRESS @VA04250 01837000
  1838. UNPK WORK(9),LASTPAG(5) SAVE NEXT PAGE ADDRSSS @VA04250 01838000
  1839. UNPK WORK+8(9),WORK2(5) THIS PAGE ADDRESS @VA04250 01839000
  1840. TR WORK(16),TTAB-240 TRANSLATE @VA04250 01840000
  1841. MVC DATA(6),WORK+2 SET FROM ADDRESS @VA04250 01841000
  1842. MVC DATA+8(2),=C'TO' EDIT @VA04250 01842000
  1843. MVC DATA+12(6),WORK+10 SET TO ADDRESS @VA04250 01843000
  1844. MVC DATA+20(44),=C'SUPPRESSED NON-CONTROL-PROGRAM PAGE(S) .....' 01844000
  1845. MVC KEYPRT+2(2),BLANK1 BLANK KEY ENTRY @VW01525 01845000
  1846. BAL R6,PRINTA PRINT LINE @VA04250 01846000
  1847. MVC KEYPRT+2(2),KEYSAVE RESTORE KEY FOR FIRST LINE @VW01525 01847000
  1848. MVC LINECT,=H'60' FORCE EJECT @VA04250 01848000
  1849. NXTLINE CLC HOLD(K32),K0(R14) PREVIOUS LINE THE SAME @VA04250 01849000
  1850. MVC HOLD(K32),K0(R14) SAVE THIS LINE @VA04250 01850000
  1851. BE SUPPRESS @VA04250 01851000
  1852. SUPSW BC K0,PRNSUPP @VA04250 01852000
  1853. ST R10,THISLINE @VA04250 01853000
  1854. UNPK WORK(K9),THISLINE(K5) @VA04250 01854000
  1855. TR WORK(K8),TTAB-240 @VA04250 01855000
  1856. MVC LINEADDR(K6),WORK+2 STORE LINE ADDR IN BUFFER @VA04250 01856000
  1857. MVC EBCIDIC(32),K0(R14) MOVE IN LINE @VA04250 01857000
  1858. LA R3,K32 @VA04250 01858000
  1859. LA R4,EBCIDIC @VA04250 01859000
  1860. LA R5,WORK @VA04250 01860000
  1861. BAL R6,TRANS @VA04250 01861000
  1862. LA R5,WORK FROM ADDR @VA04250 01862000
  1863. LA R4,WORDS TO ADDR @VA04250 01863000
  1864. LA R2,K32 LENGTH @VA04250 01864000
  1865. BAL R6,MVSBRTN @VA04250 01865000
  1866. LA R2,K32 @VA04250 01866000
  1867. LA R4,K2(,R4) @VA04250 01867000
  1868. BAL R6,MVSBRTN @VA04250 01868000
  1869. TR EBCIDIC(K32),HEXTAB @VA04250 01869000
  1870. MVI EBCIDIC-1,C'*' @VA04250 01870000
  1871. MVI EBCIDIC+32,C'*' @VA04250 01871000
  1872. BAL R6,PRINTA @VA04250 01872000
  1873. RESUMP LA R14,K32(,R14) BUMP INPUT BY 32 @VA04250 01873000
  1874. LA R10,K32(,R10) BUMP REAL LINE ADDR BY 32 @VA04250 01874000
  1875. ST R10,ANDFLD @VA04250 01875000
  1876. NC ANDFLD(K4),=F'4095' CHECK FOR THE END OF PAGE @VA04250 01876000
  1877. BZ RESUMP2 @VA04250 01877000
  1878. NC ANDFLD(K4),=F'2047' @VA04250 01878000
  1879. BNZ NXTLINE BR IF NOT END OF HALF PAGE @VA04250 01879000
  1880. MVC KEYPRT+2(K2),KEYSAVE+2 GET KEY FOR 2ND HALF PAG@VA04250 01880000
  1881. B NXTLINE @VA04250 01881000
  1882. RESUMP2 ST R10,LASTPAG SAVE LAST PAGE PRINTED @VA04250 01882000
  1883. RESUMP1 TM SUPSW+1,XF0 @VA04250 01883000
  1884. BC K7,CLEANUP @VA04250 01884000
  1885. GONE DS 0H @VA04250 01885000
  1886. L R6,RETADR @VA04250 01886000
  1887. BR R6 GO TO PG CONTROL FOR NXT PAGE @VA04250 01887000
  1888. SUPPRESS ST R10,SAME SAVE NEW ADDRESS @VA04250 01888000
  1889. MVI SUPSW+1,XF0 @VA04250 01889000
  1890. B RESUMP @VA04250 01890000
  1891. PRNSUPP ST R10,SAME @VA04250 01891000
  1892. LM R3,R4,THISLINE GET LAST PRTD LINE&LAST SAME LINE@VA04250 01892000
  1893. LA R3,K32(,R3) @VA04250 01893000
  1894. STM R3,R4,WORK2 @VA04250 01894000
  1895. UNPK WORK(K9),WORK2(K5) @VA04250 01895000
  1896. UNPK WORK+8(K9),WORK2+4(K5) @VA04250 01896000
  1897. TR WORK(K16),TTAB-240 @VA04250 01897000
  1898. MVC DATA(K6),WORK+2 @VA04250 01898000
  1899. MVC DATA+8(K2),=C'TO' @VA04250 01899000
  1900. MVC DATA+12(K6),WORK+10 @VA04250 01900000
  1901. MVC DATA+20(38),=C'SUPPRESSED LINE(S) SAME AS ABOVE .....' 01901000
  1902. BAL R6,PRINTA @VA04250 01902000
  1903. MVI SUPSW+1,X00 @VA04250 01903000
  1904. PAGEEND BC K0,PAGEFINI @VA04250 01904000
  1905. B SUPSW @VA04250 01905000
  1906. CLEANUP MVI PAGEEND+1,XF0 SET RETURN @VA04250 01906000
  1907. B PRNSUPP PRINT SUPPRESSED LINE MSG @VA04250 01907000
  1908. PAGEFINI MVI PAGEEND+1,X00 @VA04250 01908000
  1909. MVC HOLD(K32),BLK BLANK OUT COMPARE FIELD @VA04250 01909000
  1910. B GONE @VA04250 01910000
  1911. EJECT 01911000
  1912. * ******************************************** 01912000
  1913. * * PRINTA IS A SERVICE ROUTINE WHICH WILL * 01913000
  1914. * * * PRINT A 131 CHARACTER LINE FROM THE * 01914000
  1915. * * BUFFER LABELED DATA. IN ADDITION A LINE * 01915000
  1916. * * COUNT IS KEPT AND PAGE EJECT IS PERFORMED* 01916000
  1917. * * WHEN NECESSARY. * 01917000
  1918. * ******************************************** 01918000
  1919. SPACE 3 01919000
  1920. PRINTA STM R0,R2,PRTSAVE SAVE @VA04250 01920000
  1921. LH R2,LINECT GET THE LINE COUNT @VA04250 01921000
  1922. AH R2,SPACENUM UPDATE LINE COUNT @VA04250 01922000
  1923. CH R2,=H'59' ENOUGH ON ONE PAGE ?? @VMI0055 01923000
  1924. BNH PRINT BR IF LINE COUNT LESS THAN 60 @VA04250 01924000
  1925. PRINTL EJECT,1 @VA04250 01925000
  1926. NONFATAL EQU * @VA04250 01926000
  1927. LH R2,SPACENUM RESET LINE COUNT @VA04250 01927000
  1928. PRINT DS 0H @VA04250 01928000
  1929. PRINTL LINE,133,ERROR=PRTERR @VA04250 01929000
  1930. MVI DATA,C' ' @VA04250 01930000
  1931. MVC DATA+1(131),DATA @VA04250 01931000
  1932. STH R2,LINECT SAVE NEW COUNT @VA04250 01932000
  1933. LM R0,R2,PRTSAVE RESTORE @VA04250 01933000
  1934. BR R6 RETURN @VA04250 01934000
  1935. SPACE 2 01935000
  1936. PRTSAVE DS 3F'0' REG SAVE AREA @VA04250 01936000
  1937. LINECT DC H'0' @VA04250 01937000
  1938. SPACENUM DC H'1' @VA04250 01938000
  1939. LINE DS 0CL133 @VA04250 01939000
  1940. CTL DC C'0' SET FOR DOUBLE SPACING @VA04250 01940000
  1941. DATA DC CL132' ' LINE BUFFER @VA04250 01941000
  1942. LINEADDR EQU DATA @VA04250 01942000
  1943. WORDS EQU DATA+10 @VA04250 01943000
  1944. KEYPRT EQU DATA+90 @VA04250 01944000
  1945. EBCIDIC EQU DATA+97 @VA04250 01945000
  1946. DS 0F @VA04250 01946000
  1947. EJECT DC C'1' NEW PAGE @VA04250 01947000
  1948. SPACE 3 01948000
  1949. * ************************************************** 01949000
  1950. * * THE GETPAGE SERVICE ROUTINE WILL FETCH FROM THE* 01950000
  1951. * * DUMP FILE THE PAGE (OR TWO) WHICH CONTAINS THE * 01951000
  1952. * * ADDR IN R5. TWO PAGES WILL BE FETCHED AT A TIME* 01952000
  1953. * * IF CONTIGUOUS,IF NOT ONLY ONE. THIS IS BECAUSE * 01953000
  1954. * * A BLOK MAY OVERLAY A PAGE BOUNDRY. R9 UPON RE- * 01954000
  1955. * * * TURN WILL CONTAIN THE INCORE ADR OF THE R5 ADR.* 01955000
  1956. * ************************************************** 01956000
  1957. SPACE 3 01957000
  1958. GETPAGE DS 0H @VA04250 01958000
  1959. LR R6,R5 SAVE ADDRESS @VA04250 01959000
  1960. N R6,=X'00FFFFFF' @VA04250 01960000
  1961. SRL R6,K12 GET PAGE NUMBER @VA04250 01961000
  1962. CH R6,CURRPAGE IS PAGE IN BUFFER @VA04250 01962000
  1963. BE GIVE BR IF YES @VA04250 01963000
  1964. L R4,=A(ITEMTBL) GET TABLE BASE @VA04250 01964000
  1965. LA R8,K5 R8 IS ITEM NUMBER ON DISK OF PG 0@VA04250 01965000
  1966. SEARCH CH R6,0(,R4) IS THIS DESIRED PAGE @VA04250 01966000
  1967. BE GET BR IF YES @VA04250 01967000
  1968. LA R4,2(,R4) BUMP TO NEXT TABLE ENTRY @VA04250 01968000
  1969. LA R8,1(,R8) BUMP ITEM NUMBER @VA04250 01969000
  1970. CLC K0(K2,R4),FFFF CHECK FOR END OF ITEM TABLE @VA04250 01970000
  1971. BNE SEARCH BRANCH IF NO @VA04250 01971000
  1972. B ERRFND @VA04250 01972000
  1973. GET STH R8,ITEMNO STORE DESIRED ITEM NO. @VA04250 01973000
  1974. STH R6,CURRPAGE CURRENT PAGE IN BUFFER @VA04250 01974000
  1975. LR R8,R5 GET PAGE ADDRESS @VA04250 01975000
  1976. LR R4,R3 GET SIZE REQUIRED @VA04250 01976000
  1977. SLL R4,3 IN BYTES @VA04250 01977000
  1978. AR R8,R4 GET END PAGE ADDRESS @VA04250 01978000
  1979. SRL R8,12 GET PAGE ADDRESS @VA04250 01979000
  1980. CH R8,CURRPAGE IS IT THE SAME ?? @VA04250 01980000
  1981. BE GETONE YES, GET ONE PAGE ONLY @VA04250 01981000
  1982. GETWO MVI NUMBER+1,2 READ 2 RECORDS @VA04250 01982000
  1983. B RETRVE READ @VA04250 01983000
  1984. GETONE MVI NUMBER+1,1 @VA04250 01984000
  1985. RETRVE DS 0H @VA04250 01985000
  1986. FSREAD FSCB=DUMPFILE,BUFFER=BUFF,ERROR=QUIT @VA04250 01986000
  1987. SET9 L R9,=A(BUFF) GET BASE OF AREA @VA04250 01987000
  1988. LR R6,R5 GET ADDRESS @VA04250 01988000
  1989. N R6,XFFF GET DISPALCEMENT @VA04250 01989000
  1990. AR R9,R6 FORM ADDRESS OF DATA @VA04250 01990000
  1991. MVI NUMBER+1,1 RESET TO 1 @VA04250 01991000
  1992. BR R2 RETURN @VA04250 01992000
  1993. GIVE LR R8,R5 GET ADDRESS @VA04250 01993000
  1994. LR R4,R3 SIZE @VA04250 01994000
  1995. SLL R4,3 IN BYTES OF DESIRED AREA @VA04250 01995000
  1996. AR R8,R4 GET END PAGE ADDRESS @VA04250 01996000
  1997. SRL R8,12 FORM PAGE ADDRESS @VA04250 01997000
  1998. CH R8,CURRPAGE IN SAME PAGE ?? @VA04250 01998000
  1999. BNE GETWO NO, READ 2 RECORDS @VA04250 01999000
  2000. B SET9 OK, SET ADDRESS @VA04250 02000000
  2001. SPACE 3 02001000
  2002. * ************************************************** 02002000
  2003. * * TRANSLATE SERVICE ROUTINE WILL UNPACK DATA * 02003000
  2004. * * R4 - POINTS TO DATA TO BE UNPACKED * 02004000
  2005. * * R5 - PTS TO FIELD RECIEVING UPKED DATA * 02005000
  2006. * * R3 - LENGTH OF FIELD TO BE UNPACKED * 02006000
  2007. * ************************************************** 02007000
  2008. SPACE 3 02008000
  2009. TRANINIT EQU * @VA04250 02009000
  2010. CH R3,=H'128' DO NO MORE THAN 128 BYTES=16 DWDS@VA04250 02010000
  2011. BL *+8 OK @VA04250 02011000
  2012. LA R3,128 SET SIZE @VA04250 02012000
  2013. EX R3,BLOCKMVC MOVE BLK TO TRANSLATE AREA @VA04250 02013000
  2014. LA R3,K4(R3) LENGTH INCLUDING BLOCK ADDR @VA04250 02014000
  2015. TRANINT1 EQU * @VA04250 02015000
  2016. LA R4,WORK2 ADDR OF FIELD TO BE TRANSLATED @VA04250 02016000
  2017. LA R5,WORK ADDR OF AREA TO PLACE TRANSLATION@VA04250 02017000
  2018. TRANS SRL R3,K2 GET NO OF WORDS @VA04250 02018000
  2019. CH R3,=H'33' CANT DO MORE THAN 33 WORDS @VA04250 02019000
  2020. BL *+8 OK @VA04250 02020000
  2021. LA R3,33 SET SIZE @VA04250 02021000
  2022. UNP UNPK 0(K9,R5),0(K5,R4) UNPACK ONE WORD @VA04250 02022000
  2023. TR 0(K8,R5),TTAB-240 @VA04250 02023000
  2024. LA R5,K8(,R5) BUMP RECV. FIELD @VA04250 02024000
  2025. LA R4,K4(,R4) BUMP FROM FIELD @VA04250 02025000
  2026. BCT R3,UNP @VA04250 02026000
  2027. BR R6 RETURN TO CALLER @VA04250 02027000
  2028. SPACE 1 02028000
  2029. BLOCKMVC MVC WORK2+4(0),0(R9) EXECUTED MOVE @VA04250 02029000
  2030. SPACE 3 02030000
  2031. * ************************************************** 02031000
  2032. * * MOVE SERVICE ROUTINE WILL MOVE WILL TAKE A CON-* 02032000
  2033. * * TIGUOUS DATA AREA AND MOVE IT INTO A SECOND * 02033000
  2034. * * AREA IN THE FOLLOWING FORMAT - 8 BYTES, 2 SPACS* 02034000
  2035. * * 8 BYTES,2 SPACES, ETC... * 02035000
  2036. * * ON ENTRY ON EXIT * 02036000
  2037. * * R2=LENGTH R2=DESTROYED * 02037000
  2038. * * R3= R2=DESTROYED * 02038000
  2039. * * R4= TO FIELD R4=NXT TO FIELD * 02039000
  2040. * * R5= FRM FIELD R5=NXT FRM FIELD * 02040000
  2041. * ************************************************** 02041000
  2042. SPACE 3 02042000
  2043. MVSBRTN LA R3,K0(R2,R5) GET END OF INPUT FIELD @VA04250 02043000
  2044. S R3,=F'8' @VA04250 02044000
  2045. LA R2,K8 GET INCREMENT @VA04250 02045000
  2046. GO MVC K0(K8,R4),K0(R5) @VA04250 02046000
  2047. LA R4,K10(,R4) BUMP OUT AREA AND SPACE 2 BLANKS @VA04250 02047000
  2048. BXLE R5,R2,GO @VA04250 02048000
  2049. BR R6 RETURN TO CALLER @VA04250 02049000
  2050. EJECT 02050000
  2051. * ************************************************** 02051000
  2052. * * THE FOLLOWING CODE CONTAINS DMMEDM ERROR * 02052000
  2053. * * ROUTINES. * 02053000
  2054. * ************************************************** 02054000
  2055. SPACE 3 02055000
  2056. ERRWRT DS 0H @V407510 02056000
  2057. ST R15,REGSAVE+K4 @V407510 02057000
  2058. WRTERM DM2,DM2L @VA04250 02058000
  2059. BAL R2,HLDRDR @VA04250 02059000
  2060. ERS BAL R2,ERASE @VA04250 02060000
  2061. B EXIT @VA04250 02061000
  2062. ERROR1 WRTERM DM3,DM3L @VA04250 02062000
  2063. LA R15,24 RETURN @VA04250 02063000
  2064. B RETN @VA04250 02064000
  2065. ERROR2 WRTERM DM4,DM4L @VA04250 02065000
  2066. LA R15,22 @VA04250 02066000
  2067. B RETN @VA04250 02067000
  2068. ERROR3 MVC DM5P,DUMP @VA04250 02068000
  2069. ST R15,REGSAVE+K4 @V407510 02069000
  2070. WRTERM DM5,DM5L @VA04250 02070000
  2071. B EXIT @VA04250 02071000
  2072. NODMP WRTERM DM6,DM6L @VA04250 02072000
  2073. LA R15,23 @VA04250 02073000
  2074. ST R15,REGSAVE+K4 @V407510 02074000
  2075. B ERS @VA04250 02075000
  2076. NOFDMP WRTERM DM9,DM9L @VA04250 02076000
  2077. BAL R2,CLRDR @VA04250 02077000
  2078. LA R15,30 @VA04250 02078000
  2079. ST R15,REGSAVE+K4 @V407510 02079000
  2080. B ERS @VA04250 02080000
  2081. PRTERR C R15,=F'3' POSSIBLY CH 9 FROM V3211 @VA04250 02081000
  2082. BH FATAL BR. - NOPE, SOMEBODY GOOFED.@VA04250 02082000
  2083. C R15,=F'2' OR MAYBE CH 12 FROM V3211? @VA04250 02083000
  2084. BH NONFATAL BR - MUST HAVE BEEN CH 9, IGNORE @VA04250 02084000
  2085. BL FATAL OOPS, MUST BE 1, BAD NEWS. @VA04250 02085000
  2086. LA R2,60 SET LINE COUNT TO FORCE EJECT @VA04250 02086000
  2087. B PRINT NEXT TIME A LINE IS PRINTED @VA01570 02087000
  2088. FATAL DS 0H @V407510 02088000
  2089. ST R15,REGSAVE+K4 END OF ROAD @V407510 02089000
  2090. WRTERM DM10,DM10L @VA04250 02090000
  2091. B EXIT @VA04250 02091000
  2092. ERRFND WRTERM DM7,DM7L @VA04250 02092000
  2093. SR R2,R2 PREPARE FOR IC @VA01570 02093000
  2094. SR R6,R6 DOUBLE THE FUN @VA01570 02094000
  2095. IC R2,ERRINDX GET THE INDEX TO THE ERROR TABLES@VA01570 02095000
  2096. IC R6,ERMSGTAB(R2) GET THE LENGTH OF THE ERROR MSG @VA01570 02096000
  2097. BCTR R6,0 ADJUST FOR EXECUTE @VA01570 02097000
  2098. LR R9,R6 SAVE IT @VA01570 02098000
  2099. LA R6,L'DM7+L'DM7A(R6) SETUP LENGTH FOR EXECUTE @VA01570 02099000
  2100. MVI DATA,C'*' SOME KIND OF INDICATOR @VA01570 02100000
  2101. EX R6,STARMOVE HERE WE GO @VA01570 02101000
  2102. BAL R6,PRINTA @VA01570 02102000
  2103. MVC DATA(L'DM7),DM7 MOVE MSG DMMEDM864 @VA01570 02103000
  2104. MVC DATA+L'DM7(L'DM7A),DM7A AND SECOND PART @VA01570 02104000
  2105. L R6,ERMSGTAB(R2) GET NAME OF FAILING CTL BLOCK @VA01570 02105000
  2106. EX R9,ERRMOVE AND COMPLETE MESSAGE @VA01570 02106000
  2107. BAL R6,PRINTA PRINT THE GOODIE @VA01570 02107000
  2108. LA R6,L'DM7+L'DM7A(R9) GET LENGTH FOR EXEC AGAIN @VA01570 02108000
  2109. MVI DATA,C'*' @VA01570 02109000
  2110. EX R6,STARMOVE @VA01570 02110000
  2111. BAL R6,PRINTA @VA01570 02111000
  2112. L R6,ERRETAB(R2) GET ADDRESS OF RETURN POINT @VA01570 02112000
  2113. BR R6 AND TRY (AT LEAST) @VA01570 02113000
  2114. STARMOVE MVC DATA+1(0),DATA PROPAGATING @VA01570 02114000
  2115. ERRMOVE MVC DATA+L'DM7+L'DM7A(0),0(R6) @VA01570 02115000
  2116. QUIT DS 0H @V407510 02116000
  2117. ST R15,REGSAVE+K4 @V407510 02117000
  2118. WRTERM DM8,DM8L @VA04250 02118000
  2119. B EXIT @VA04250 02119000
  2120. ERASE FSERASE FSCB=DUMPFILE @VA04250 02120000
  2121. BR R2 @VA04250 02121000
  2122. SPACE 2 02122000
  2123. CLRDR MVC CPHOLD,=CL8' ' NO HOLD @VA04250 02123000
  2124. CLRDR1 LA R1,CPRDR @VA04250 02124000
  2125. SVC X'CA' @VA04250 02125000
  2126. BR R2 @VA04250 02126000
  2127. HLDRDR MVC CPHOLD,=CL8'HOLD' @VA04250 02127000
  2128. B CLRDR1 @VA04250 02128000
  2129. SPACE 2 02129000
  2130. CPRDR DC CL8'CP' @VA04250 02130000
  2131. DC CL8'CLOSE' @VA04250 02131000
  2132. DC CL8'00C' @VA04250 02132000
  2133. CPHOLD DC CL8'NOHOLD' @VA04250 02133000
  2134. DC 2F'-1' @VA04250 02134000
  2135. SAVEPRB DC F'0' @VA05446 02135000
  2136. EJECT 02136000
  2137. * ********************C O N S T A N T S******************* 02137000
  2138. SPACE 3 02138000
  2139. K0 EQU 0 @VA04250 02139000
  2140. K1 EQU 1 @VA04250 02140000
  2141. K2 EQU 2 @VA04250 02141000
  2142. K3 EQU 3 @VA04250 02142000
  2143. K4 EQU 4 @VA04250 02143000
  2144. K5 EQU 5 @VA04250 02144000
  2145. K7 EQU 7 @VA04250 02145000
  2146. K6 EQU 6 @VA04250 02146000
  2147. K8 EQU 8 @VA04250 02147000
  2148. K9 EQU 9 @VA04250 02148000
  2149. K10 EQU 10 @VA04250 02149000
  2150. K11 EQU 11 @VA04250 02150000
  2151. K12 EQU 12 @VA04250 02151000
  2152. K13 EQU 13 @VA04250 02152000
  2153. K14 EQU 14 @VA04250 02153000
  2154. K16 EQU 16 @VA04250 02154000
  2155. K18 EQU 18 @VA04250 02155000
  2156. K15 EQU 15 @VA04250 02156000
  2157. K17 EQU 17 @VA04250 02157000
  2158. K19 EQU 19 @VA04250 02158000
  2159. K20 EQU 20 @VA04250 02159000
  2160. K21 EQU 21 @VA04250 02160000
  2161. K22 EQU 22 @VA04250 02161000
  2162. K24 EQU 24 @VA04250 02162000
  2163. K25 EQU 25 @V407510 02163000
  2164. K28 EQU 28 @VA04250 02164000
  2165. K30 EQU 30 @VA04250 02165000
  2166. K32 EQU 32 @VA04250 02166000
  2167. K33 EQU 33 @VA04250 02167000
  2168. K36 EQU 36 @VA04250 02168000
  2169. K37 EQU 37 @VA04250 02169000
  2170. K39 EQU 39 @VA04250 02170000
  2171. K52 EQU 52 @VA04250 02171000
  2172. PRBFILE DS 0D PROBLEM REPORT FILE FN FT FM @VA04250 02172000
  2173. PRBFN DS CL8 REPORT FILENAME @VA04250 02173000
  2174. DC CL8'REPORT' FILETYPE OF REPORT @VA04250 02174000
  2175. DC C'A1' FILEMODE OF REPORT @VA04250 02175000
  2176. K45 EQU 45 @VA04250 02176000
  2177. K46 EQU 46 @VA04250 02177000
  2178. K48 EQU 48 @VA04250 02178000
  2179. K55 EQU 55 @VA04250 02179000
  2180. K56 EQU 56 @VA04250 02180000
  2181. K59 EQU 59 @VA04250 02181000
  2182. K60 EQU 60 @VA04250 02182000
  2183. K64 EQU 64 @VA04250 02183000
  2184. K65 EQU 65 @VA04250 02184000
  2185. K66 EQU 66 @VA04250 02185000
  2186. K75 EQU 75 @V407510 02186000
  2187. K76 EQU 76 @V407510 02187000
  2188. K77 EQU 77 @V407510 02188000
  2189. K78 EQU 78 @V407510 02189000
  2190. K80 EQU 80 @VA04250 02190000
  2191. K90 EQU 90 @VA04250 02191000
  2192. K92 EQU 92 @VA04250 02192000
  2193. K96 EQU 96 @VA04250 02193000
  2194. K120 EQU 120 @VA04250 02194000
  2195. K131 EQU 131 @VA04250 02195000
  2196. K144 EQU 144 @VA04250 02196000
  2197. K256 EQU 256 @VA04250 02197000
  2198. K512 EQU 512 @VA04250 02198000
  2199. K520 EQU 520 @VA04250 02199000
  2200. X00 EQU X'00' @VA04250 02200000
  2201. X01 EQU X'01' @VA04250 02201000
  2202. X02 EQU X'02' @VA04250 02202000
  2203. X03 EQU X'03' @VA04250 02203000
  2204. X08 EQU X'08' @VA04250 02204000
  2205. X0F EQU X'0F' @VA04250 02205000
  2206. X34 EQU X'34' @VA04250 02206000
  2207. X40 EQU X'40' @VA04250 02207000
  2208. XF0 EQU X'F0' @VA04250 02208000
  2209. XFF EQU X'FF' @VA04250 02209000
  2210. X0002 EQU X'000F' @VA04250 02210000
  2211. AMPERSAN EQU X'50' @VA04250 02211000
  2212. SPACE1 EQU X'40' @VA04250 02212000
  2213. SPACE2 EQU X'F0' @VA04250 02213000
  2214. SPACE3 EQU C'-' @VA04250 02214000
  2215. V EQU C'V' @VA04250 02215000
  2216. IX00 EQU X'00' @VA01570 02216000
  2217. IX01 EQU X'04' @VA01570 02217000
  2218. IX02 EQU X'08' @VA01570 02218000
  2219. IX03 EQU X'0C' @VA01570 02219000
  2220. IX04 EQU X'10' @VA01570 02220000
  2221. IX05 EQU X'14' @VA01570 02221000
  2222. IX06 EQU X'18' @VA01570 02222000
  2223. IX07 EQU X'1C' @VA01570 02223000
  2224. IX08 EQU X'20' @VA01570 02224000
  2225. IX09 EQU X'24' @VA01570 02225000
  2226. IX0A EQU X'28' @VA01570 02226000
  2227. IX0B EQU X'2C' @VA01570 02227000
  2228. IX0C EQU X'30' @VA01570 02228000
  2229. IX0D EQU X'34' @VA01570 02229000
  2230. IX0E EQU X'38' @VA01570 02230000
  2231. IX0F EQU X'3C' @VA01570 02231000
  2232. IX10 EQU X'40' @VA01570 02232000
  2233. IX11 EQU X'44' @VA01570 02233000
  2234. IX12 EQU X'48' @VA01570 02234000
  2235. IX13 EQU X'4C' @VA01570 02235000
  2236. IX14 EQU X'50' @VA01570 02236000
  2237. IX15 EQU X'54' @VA01570 02237000
  2238. IX16 EQU X'58' @VA01570 02238000
  2239. IX17 EQU X'5C' @VA01570 02239000
  2240. IX18 EQU X'60' @VA01570 02240000
  2241. IX19 EQU X'64' @VA01570 02241000
  2242. IX1A EQU X'68' @VA01570 02242000
  2243. IX1B EQU X'6C' @VA01570 02243000
  2244. IX1C EQU X'70' @V407510 02244000
  2245. IX1D EQU X'74' @V407510 02245000
  2246. IX1E EQU X'78' @V407510 02246000
  2247. IX1F EQU X'7C' @V407510 02247000
  2248. SPACE 3 02248000
  2249. DUMPLIST DC CL8'DUMP00' @VA04250 02249000
  2250. DC CL8'DUMP01' @VA04250 02250000
  2251. DC CL8'DUMP02' @VA04250 02251000
  2252. DC CL8'DUMP03' @VA04250 02252000
  2253. DC CL8'DUMP04' @VA04250 02253000
  2254. DC CL8'DUMP05' @VA04250 02254000
  2255. DC CL8'DUMP06' @VA04250 02255000
  2256. DC CL8'DUMP07' @VA04250 02256000
  2257. DC CL8'DUMP08' @VA04250 02257000
  2258. DC CL8'DUMP09' @VA04250 02258000
  2259. * ******************************************************* 02259000
  2260. DUMP DC CL8' ' DUMP FILE NAME @VA04250 02260000
  2261. OPLIST DS 0F OPTION LIST @VA04250 02261000
  2262. ERASEIT DC CL8'ERASE' @VA04250 02262000
  2263. MAP DC CL8'NOMAP' @VA04250 02263000
  2264. HEX DC CL8'NOHEX' @VA04250 02264000
  2265. NOFORMAT DC CL8'NOFORM' @VA04250 02265000
  2266. NOVIRT DC CL8'NOVIRT' @VA04250 02266000
  2267. END DC X'FFFFFFFF' @VA04250 02267000
  2268. SPACE 3 02268000
  2269. * ******************************************************* 02269000
  2270. DUMPFILE FSCB 'DUMPXX DUMP',BUFFER=BUFF,BSIZE=4096 @VA04250 02270000
  2271. ITEMNO EQU DUMPFILE+26 @VA04250 02271000
  2272. NUMBER EQU DUMPFILE+38 @VA04250 02272000
  2273. BSIZE EQU DUMPFILE+32 @VA04250 02273000
  2274. SPACE 3 02274000
  2275. DUMPSRCH FSCB 'DUMPXX DUMP',BUFFER=BUFF @VA04250 02275000
  2276. CLOSEPNT DS 0F @VA04250 02276000
  2277. DC CL8'CP' @VA04250 02277000
  2278. DC CL8'CLOSE' @VA04250 02278000
  2279. DC CL8'PRT' @VA04250 02279000
  2280. DC CL8'NAME' @VA04250 02280000
  2281. DMR1P DC CL8'SYSDUMP' @VA04250 02281000
  2282. DC CL8' DUMP' @VA04250 02282000
  2283. DC 2F'-1' @VA04250 02283000
  2284. SPACE 3 02284000
  2285. WORK2 DC 33F'0' @VA04250 02285000
  2286. WORK DC 66F'0' @VA04250 02286000
  2287. WORK3 DC D'0' @VA04250 02287000
  2288. BLANK1 DC 8C' ' @VA04250 02288000
  2289. CORTBHD1 DC C'********** C O R E T A B L E ********* ' @VA04250 02289000
  2290. CORTBHD2 DC C' PAG U S E R I D ' @VA04250 02290000
  2291. FREEID DC C'FREE' @VA04250 02291000
  2292. HEXTAB DC 64C'.' @VA04250 02292000
  2293. DC C' ' @VA04250 02293000
  2294. DC 10C'.' @VA04250 02294000
  2295. DC C'.)(+ &&' @VA04250 02295000
  2296. DC 10C'.' @VA04250 02296000
  2297. DC C'$*) -/' @VA04250 02297000
  2298. DC 9C'.' @VA04250 02298000
  2299. DC X'6B6C' @VA04250 02299000
  2300. DC C' ' @VA04250 02300000
  2301. DC 10C'.' @VA04250 02301000
  2302. DC C' ' @VA04250 02302000
  2303. DC X'7B7C' @VA04250 02303000
  2304. DC C'''= ' @VA04250 02304000
  2305. DC 64C'.' @VA04250 02305000
  2306. DC C'.ABCDEFGHI' @VA04250 02306000
  2307. DC 7C'.' @VA04250 02307000
  2308. DC C'JKLMNOPQR' @VA04250 02308000
  2309. DC 8C'.' @VA04250 02309000
  2310. DC C'STUVWXYZ' @VA04250 02310000
  2311. DC 6C'.' @VA04250 02311000
  2312. DC C'0123456789......' @VA04250 02312000
  2313. BLK DC C' ' @VA04250 02313000
  2314. HOLD DC 32C' ' @VA04250 02314000
  2315. INCR DC X'1C' @VA04250 02315000
  2316. KEYSAVE DC CL6' ' @VA04250 02316000
  2317. LASTPAG DC F'0' START AT ZERO @VA04250 02317000
  2318. LINEHEX DC H'0' @VA04250 02318000
  2319. PGCT DC H'0' @VA04250 02319000
  2320. PAGNUMB DC H'0' @VA04250 02320000
  2321. SEGNUMB DC H'0' @VA04250 02321000
  2322. SEGHD DC C'SEGTABLE PAGTABLE S W P T A B L E' @VA04250 02322000
  2323. SEGHD2 DC CL39'NO PAGTABLE ENTRIES FOR THIS SEGMENT' @VA04250 02323000
  2324. SEGHD3 DC CL50'NO SEGTABLE, PAGTABLE OR SWPTABLE FOR THIS USER' 02324000
  2325. ABMSG DC C'VM/370 SYSTEM ABEND CODE ' @VA00803 02325000
  2326. DC CL8'XXXXXX; ' @VA00803 02326000
  2327. DC C'DATE ' @VA04250 02327000
  2328. DC CL12' ' @VA04250 02328000
  2329. DC C'TIME ' @VA04250 02329000
  2330. LABM EQU *-ABMSG @VA04250 02330000
  2331. ZERO DC C'00' @VA04250 02331000
  2332. TTAB DC C'0123456789ABCDEF' @VA04250 02332000
  2333. SYSVMBLK DC C'SYSTEM' @VA04250 02333000
  2334. SPACESAV DC H'0' @VA04250 02334000
  2335. CTLSAV DC X'00' @VA04250 02335000
  2336. ANDFLD DC F'0' @VA04250 02336000
  2337. BLKSIZE DC F'16' @VA04250 02337000
  2338. KEYADR DC A(KEY) @VA04250 02338000
  2339. CURRPAGE DC X'FFFFFFFF' CURRENT PAGE IN BUFFER @V4M0004 02339000
  2340. NXTSFBK DC F'0' @VA04250 02340000
  2341. ONE DC F'1' @VA04250 02341000
  2342. PGSAVE DC F'0' @VA04250 02342000
  2343. PTRCORTB DC F'0' @VA04250 02343000
  2344. RETADR DC F'0' @VA04250 02344000
  2345. RSAV DC F'0' @VA04250 02345000
  2346. REGSAVE DC 4F'0' @V407510 02346000
  2347. SEGSAVE DC F'0' @VA04250 02347000
  2348. SWAPSAVE DC F'0' @VA04250 02348000
  2349. THIS DC F'0' @VA04250 02349000
  2350. THISLINE DC F'0' @VA04250 02350000
  2351. SAME DC F'0' @VA04250 02351000
  2352. CHAINCK DC F'0' IOBLOK CHAIN CHECK SAVE AREA @VA04250 02352000
  2353. IOBSAVE DC F'0' REMEMBER IOBLOK HERE @VA07496 02353000
  2354. LASTQUED DC F'0' LAST IOBLOK CHAINED TO A BLOCK @VA04250 02354000
  2355. LIOBDEV DC F'0' LAST IOBLOK CHAINED TO RDEVBLOK @VA04250 02355000
  2356. PLISTADR DC F'0' @VA04250 02356000
  2357. XFFF DC X'00000FFF' @VA04250 02357000
  2358. X000F DC X'0000000F' @VA04250 02358000
  2359. MCORTAB DC C'CORETABLE' @VA01570 02359000
  2360. MSWPTAB DC C'SWAPTABLE' @VA01570 02360000
  2361. MVMBLOK DC C'VMBLOK' @VA01570 02361000
  2362. MRCHIX DC C'REAL CHANNEL BLOCK INDEX' @VA01570 02362000
  2363. DM7A DC C' WHILE EDITING ' @VA01570 02363000
  2364. MABP DC C'ABENDING PROCESSOR PSA' @V407510 02364000
  2365. MDEBLOK DC C'DEFERRED EXECUTION BLOK' @V407510 02365000
  2366. MMAIN DC C'MAIN PROCESSOR PSA' @V407510 02366000
  2367. MATT DC C'ATTACHED PROCESSOR PSA' @V407510 02367000
  2368. EJECT 02368000
  2369. RCHINDEX DC F'0' @VA04250 02369000
  2370. RCHSTRT DC F'0' @VA04250 02370000
  2371. RCUSTRT DC F'0' @VA04250 02371000
  2372. RDEVSTRT DC F'0' @VA04250 02372000
  2373. PRTSPL DC F'0' @VA04250 02373000
  2374. PNCHSPL DC F'0' @VA04250 02374000
  2375. RDRSPL DC F'0' @VA04250 02375000
  2376. CORPOINT DC F'0' @VA04250 02376000
  2377. VMPTR DC F'0' @VA04250 02377000
  2378. ABCODE DC F'0' @VA04250 02378000
  2379. RSYSRV DC F'0' @VA04250 02379000
  2380. RDATE DC D'0' @VA04250 02380000
  2381. RTIME DC D'0' @VA04250 02381000
  2382. EJECT 02382000
  2383. * WHEN THE GETPAGE SUBROUTINE DETERMINES, THAT A PAGE IS NOT ON THE 02383000
  2384. * DUMPXX DATASET, RETURN IS MADE USING THE FOLLOWING TABLE. 02384000
  2385. * ERRINDX IS SET TO AN INDEX VALUE PRIOR TO THE ENTRY TO GETPAGE. 02385000
  2386. SPACE 2 02386000
  2387. ERRETAB EQU * @VA01570 02387000
  2388. DC A(SFFORM) @VA01570 02388000
  2389. DC A(CKCHAN) @VA01570 02389000
  2390. DC A(CKCU) @VA01570 02390000
  2391. DC A(ENDCK) @VA01570 02391000
  2392. DC A(IOERPRNT) @VA01570 02392000
  2393. DC A(IOERPRNT) @VA01570 02393000
  2394. DC A(SPLST) @VA02149 02394000
  2395. DC A(ENDCK) @VA02149 02395000
  2396. DC A(HEXDUMP) @VA01570 02396000
  2397. DC A(TSTTR) @VA01570 02397000
  2398. DC A(VMEND) @VA01570 02398000
  2399. DC A(CHANCK) @VA01570 02399000
  2400. DC A(CUCK) @VA01570 02400000
  2401. DC A(NXTVDEV) @VA01570 02401000
  2402. DC A(NXTVDEV) @VA01570 02402000
  2403. DC A(NXTVDEV) @VA01570 02403000
  2404. DC A(IOBACK) @VA01570 02404000
  2405. DC A(SFERR) @VA01570 02405000
  2406. DC A(IOERERR) @VA01570 02406000
  2407. DC A(CORTBL) @VA01570 02407000
  2408. DC A(VIRTUALM) @VA01570 02408000
  2409. DC A(CORTBL7) @VA01570 02409000
  2410. DC A(CORTBL7) @VA01570 02410000
  2411. DC A(CORTBL7) @VA01570 02411000
  2412. DC A(SEGPGTBF) @VA01570 02412000
  2413. DC A(SEGPGTB6) @VA01570 02413000
  2414. DC A(SEGERR) @VA01570 02414000
  2415. DC A(SEGERR) @VA01570 02415000
  2416. DC A(LOADMAP) @V407510 02416000
  2417. DC A(VMETST1) @V407510 02417000
  2418. DC A(PRTATT) @V407510 02418000
  2419. DC A(DUMPCORE) @V407510 02419000
  2420. SPACE 2 02420000
  2421. ERMSGTAB DS 0F @VA01570 02421000
  2422. DC AL1(L'MRCHIX),AL3(MRCHIX) @VA01570 02422000
  2423. DC AL1(L'HCHBLK),AL3(HCHBLK) @VA01570 02423000
  2424. DC AL1(L'HCUBLK),AL3(HCUBLK) @VA01570 02424000
  2425. DC AL1(L'HDEVBLK),AL3(HDEVBLK) @VA01570 02425000
  2426. DC AL1(L'HCONTASK),AL3(HCONTASK) @VA01570 02426000
  2427. DC AL1(L'HRSPLCTL),AL3(HRSPLCTL) @VA01570 02427000
  2428. DC AL1(L'HRECBLK),AL3(HRECBLK) @VA01570 02428000
  2429. DC AL1(L'HRECBLK),AL3(HRECBLK) @VA01570 02429000
  2430. DC AL1(L'HVMBLOK),AL3(HVMBLOK) @VA01570 02430000
  2431. DC AL1(L'HVMEC),AL3(HVMEC) @VA01570 02431000
  2432. DC AL1(L'HVMTR),AL3(HVMTR) @VA01570 02432000
  2433. DC AL1(L'HCHBLK),AL3(HCHBLK) @VA01570 02433000
  2434. DC AL1(L'HCUBLK),AL3(HCUBLK) @VA01570 02434000
  2435. DC AL1(L'HDEVBLK),AL3(HDEVBLK) @VA01570 02435000
  2436. DC AL1(L'HVCONCTL),AL3(HVCONCTL) @VA01570 02436000
  2437. DC AL1(L'HVSPLCTL),AL3(HVSPLCTL) @VA01570 02437000
  2438. DC AL1(14),AL3(HIOBLKS) @VA01570 02438000
  2439. DC AL1(L'HSFBLK),AL3(HSFBLK) @VA01570 02439000
  2440. DC AL1(L'HIOERBLK),AL3(HIOERBLK) @VA01570 02440000
  2441. DC AL1(19),AL3(DATA+2) @VA01570 02441000
  2442. DC AL1(L'MCORTAB),AL3(MCORTAB) @VA01570 02442000
  2443. DC AL1(L'MSWPTAB),AL3(MSWPTAB) @VA01570 02443000
  2444. DC AL1(L'MVMBLOK),AL3(MVMBLOK) @VA01570 02444000
  2445. DC AL1(L'MVMBLOK),AL3(MVMBLOK) @VA01570 02445000
  2446. DC AL1(L'MVMBLOK),AL3(MVMBLOK) @VA01570 02446000
  2447. DC AL1(8),AL3(SEGHD) @VA01570 02447000
  2448. DC AL1(8),AL3(SEGHD2+3) @VA01570 02448000
  2449. DC AL1(L'MSWPTAB),AL3(MSWPTAB) @VA01570 02449000
  2450. DC AL1(L'MABP),AL3(MABP) @V407510 02450000
  2451. DC AL1(L'MDEBLOK),AL3(MDEBLOK) @V407510 02451000
  2452. DC AL1(L'MMAIN),AL3(MMAIN) @V407510 02452000
  2453. DC AL1(L'MATT),AL3(MATT) @V407510 02453000
  2454. EJECT 02454000
  2455. * 02455000
  2456. * POINTERS INTO I/O BLOCK INDEX TABLES-ADDR SAVED HERE IS POINTER 02456000
  2457. * TO INDEX VALUE OF BLOCK BEING PROCESSED-ONE CHANNEL, ONE CU & 1DEV 02457000
  2458. * 02458000
  2459. CHDEX DC A(CHINDEX) ADDR OF CURRENT CHAN INDEX VALUE @VA04250 02459000
  2460. CUDEX DC A(CUINDEX) ADDR OF CURRENT CU INDEX VALUE @VA04250 02460000
  2461. DEVDEX DC A(DEVINDEX) ADDR OF CURRENT DEV INDEX VALUE @VA04250 02461000
  2462. SPACE 2 02462000
  2463. * 02463000
  2464. * SAVE AREAS FOR INDEX TABLES WITH DISPLACEMENTS INT I/O BLOCKS 02464000
  2465. * 02465000
  2466. CHINDEX DS 16H INDEX TBL FOR CHANNEL BLOCKS @VA04250 02466000
  2467. CUINDEX DS 32H INDEX TBL FOR CONTROL UNIT BLOCKS@VA04250 02467000
  2468. DEVINDEX DS 16H INDEX TBL FOR DEVICE BLOCKS @VA04250 02468000
  2469. SPACE 1 02469000
  2470. CHANLAST DC A(CHINDEX+30) ADDR LAST ENTRY IN CHAN TABLE @VA04250 02470000
  2471. RCULAST DC A(CUINDEX+62) ADDR LAST ENTRY REAL CU TABLE @VA04250 02471000
  2472. VCULAST DC A(CUINDEX+30) ADDR LAST ENTRY VIRTUAL CU TABLE @VA04250 02472000
  2473. DEVLAST DC A(DEVINDEX+30) ADDR LAST ENTRY DEVICE INDEX TABL@VA04250 02473000
  2474. SPACE 1 02474000
  2475. * THE FOLLOWING ENTRIES ARE SAVED FROM VMBLOK-EXECEPT VMCHTBL 02475000
  2476. * WHICH IS SAVED AT CHINDEX 02476000
  2477. SPACE 1 02477000
  2478. VCHSTRT DC F'0' START ADDR VIRTUAL CH INDEX TBL. @VA04250 02478000
  2479. VCUSTRT DC F'0' START ADDR VIRTUAL CU INDEX TABLE@VA04250 02479000
  2480. VDVSTRT DC F'0' START ADDR VIRT DEV INDEX TABLE @VA04250 02480000
  2481. * 02481000
  2482. VMCHAIN DC F'0' ADDR OF NEXT VMBLOK IN CHAIN @VA04250 02482000
  2483. VMCURENT DC F'0' ADDR. CURRENT VMBLOK @VA04250 02483000
  2484. DEFEXPT DC F'0' ADDR DEFERRED EXECUTION BLOK @V407510 02484000
  2485. SPACE 3 02485000
  2486. RTNSAVE DC A(0) RETURN ADDR SAVE AREA @VA04250 02486000
  2487. IOBRTN DC A(0) RTN ADDR SAVE FROM IOBLOK PRINT @VA04250 02487000
  2488. PRNTPTR DC F'0' VMBLOK PRINT POINTER SAVE AREA @VA04250 02488000
  2489. IOBCHAIN DC F'0' IOBBLOK CHAIN ADDR SAVE AREA @VA04250 02489000
  2490. IOBDEV DC F'0' ADDR 1ST IOBLOK CHAINED OFF DEV @VA04250 02490000
  2491. SFRTN DC F'0' RTN ADDR FROM SFBLOK PRINT RTN. @VA04250 02491000
  2492. IOERSAV DC F'0' RTN ADDR SAVE FROM IOERBLOK PRINT@VA04250 02492000
  2493. SPOOLSAV DC F'0' ADDR OF SPOOL FILE CONTROL BLOCK @VA04250 02493000
  2494. AIOB DC F'0' ACTIVE IOBLOK ADDR @VA04250 02494000
  2495. ERRBLOCK DC F'0' IOERBLOK ADDR SAVE AREA @VA04250 02495000
  2496. PAGBLOK DC F'0' @VA04250 02496000
  2497. SPLBLOK DC F'0' @VA04250 02497000
  2498. VCONAD DC F'0' @VA04250 02498000
  2499. REG9SAV DC F'0' REG 9 SAVE AREA @VA04250 02499000
  2500. K64M1 DC F'65535' 64K MINUS 1 @VA01570 02500000
  2501. VMSAVE DC H'0' NO. OF BLKS OF VMBLOK YET TO PRNT@VA04250 02501000
  2502. TWENTY4 DC H'24' @VA04250 02502000
  2503. TWELVE DC H'12' @VA04250 02503000
  2504. FOUR DC H'4' @VA04250 02504000
  2505. TWO DC H'2' @VA04250 02505000
  2506. FFFF DC X'FFFF' @VA04250 02506000
  2507. PRTENDSW DC X'00' LAST PRINT LINE SWITCH-F0=END OF @VA04250 02507000
  2508. * OF HEADINGS, 0F=END OF DATA 02508000
  2509. DATENDSW DC X'00' LAST DATA LINE SWITCH @VA04250 02509000
  2510. CONSW DC X'00' VIRTUAL CONSOLE DEVICE SWITCH @VA04250 02510000
  2511. IOERSW DC X'00' IOERBLOK SWITCH @VA04250 02511000
  2512. ACTIOBSW DC X'00' ACTIVE IOBLOK SWITCH @VA04250 02512000
  2513. SPOOLSW DC X'00' SPOOLING DEVICE SWITCH @VA04250 02513000
  2514. OWNSW DC X'00' @VA04250 02514000
  2515. VMBSW DC X'00' @VA04250 02515000
  2516. ERRINDX DC X'00' THIS IS THE UNFOOLING GUY @VA01570 02516000
  2517. PSASW DC X'00' PSA PROCESSING SWITCH @V407510 02517000
  2518. SPACE 3 02518000
  2519. * 02519000
  2520. * HEADINGS FOR ALL I/O AND VM BLOCKS 02520000
  2521. * 02521000
  2522. HCHBLK DC C'RCHBLOK ' CHANNEL BLOCK HEADING @VA04250 02522000
  2523. HCHAN DC C'CHAN ' CHANNEL NO. HEADING @VA04250 02523000
  2524. HCHNO DC C'XXX ' CHANNEL NUMBER @VA04250 02524000
  2525. HCHADDR DC C'ADDR ' @VA04250 02525000
  2526. HCHBADDR DC 9C' ' CHANNEL BLOCK ADDR @VA04250 02526000
  2527. SPACE 1 02527000
  2528. HCUBLK DC C'RCUBLOK ' CU BLOCK HEADING @VA04250 02528000
  2529. HCUNIT DC C'UNIT ' @VA04250 02529000
  2530. HCUNO DC C'XXX ' @VA04250 02530000
  2531. HCUADDR DC C'ADDR ' @VA04250 02531000
  2532. HCUBADDR DC 9C' ' CU BLOCK ADDR @VA04250 02532000
  2533. SPACE 1 02533000
  2534. HDEVBLK DC C'RDEVBLOK ' DEV BLOCK HEADING @VA04250 02534000
  2535. HDEV DC C'DEV ' @VA04250 02535000
  2536. HDEVNO DC C'XXX ' @VA04250 02536000
  2537. HDADDR DC C'ADDR ' @VA04250 02537000
  2538. HDBADDR DC 9C' ' BLOCK ADDR @VA04250 02538000
  2539. SPACE 1 02539000
  2540. HSFBLK DC CL14'SFBLOK' @VA04250 02540000
  2541. HSFID DC CL14' ' @VA04250 02541000
  2542. DC CL5'ADDR ' @VA04250 02542000
  2543. HSFADDR DC CL9' ' @VA04250 02543000
  2544. SPACE 1 02544000
  2545. HRECBLK DC CL8'RECBLOK' @VA04250 02545000
  2546. HRECID DC CL6' ' @VA04250 02546000
  2547. DC CL5'ADDR ' @VA04250 02547000
  2548. HRECADDR DC CL9' ' @VA04250 02548000
  2549. SPACE 1 02549000
  2550. HIOBLKS DC 14C' ' HEADING FOR IOBLOK,RSPLCTL, @VA04250 02550000
  2551. * SFBLOK,IOERBLOK, AND ACTIVE IOBLOK 02551000
  2552. HIOADDR DC C'ADDR ' @VA04250 02552000
  2553. HIOBADDR DC 9C' ' BLOCK ADDR. @VA04250 02553000
  2554. HACTIO DC C'ACTIVE IOBLOK' @VA04250 02554000
  2555. HIOBLOK DC C'IOBLOK ' @VA04250 02555000
  2556. HRSPLCTL DC C'RSPLCTL ' @VA04250 02556000
  2557. HCONTASK DC CL14'CONTASK' @VA04250 02557000
  2558. HIOERBLK DC C'IOERBLOK ' @VA04250 02558000
  2559. HVMEC DC CL14'ECBLOK' @VA04250 02559000
  2560. HVMTR DC CL14'TREXT' @VA04250 02560000
  2561. HVMDE DC CL14'DEFERRED TASK ' @V407510 02561000
  2562. HVMAIN DC CL14'MAIN PSA ' @V407510 02562000
  2563. HVATT DC CL14'ATTACHED PSA ' @V407510 02563000
  2564. HVSTOR DC CL14'MAIN STORAGE ' @V4M0004 02564000
  2565. HVCONCTL DC C'VCONCTL ' @VA04250 02565000
  2566. HVSPLCTL DC C'VSPLCTL ' @VA04250 02566000
  2567. SPACE 1 02567000
  2568. HVMBLOK DC C'VMBLOK ' VMBLOK HEADING @VA04250 02568000
  2569. HUSERID DC CL5'USER ' @VA04250 02569000
  2570. HIDEN DC 9C' ' USERID @VA04250 02570000
  2571. HVMADDR DC C'ADDR ' @VA04250 02571000
  2572. HVMBADDR DC 9C' ' BLOCK ADDR. @VA04250 02572000
  2573. EJECT 02573000
  2574. DM0 DC C'DMMEDM850I UNABLE TO READ DUMP FROM READER' @VA04250 02574000
  2575. DM0L EQU *-DM0 @VA04250 02575000
  2576. DM1 EQU * @VA04250 02576000
  2577. DC C'''' @VA04250 02577000
  2578. DM1P DC CL8' ' @VA04250 02578000
  2579. DC C' DUMP'' FILE CREATED' @VA04250 02579000
  2580. DM1L EQU *-DM1 @VA04250 02580000
  2581. DM2 DC C'DMMEDM852I FATAL I/O ERROR WRITING DUMP' @VA04250 02581000
  2582. DM2L EQU *-DM2 @VA04250 02582000
  2583. DM3 DC C'DMMEDM863E INVALID PARAMETER - ' @V305435 02583000
  2584. ERR1OP DC CL8' ' @VA04250 02584000
  2585. DM3L EQU *-DM3 @VA04250 02585000
  2586. DM4 DC C'DMMEDM851I TEN DUMP FILES ALREADY EXIST' @VA04250 02586000
  2587. DM4L EQU *-DM4 @VA04250 02587000
  2588. DM5 DC C'DMMEDM861E DUMP FILE ' @V305435 02588000
  2589. DC C'''' @VA04250 02589000
  2590. DM5P DC CL8' ' @VA04250 02590000
  2591. DC C' DUMP'' NOT FOUND' @VA04250 02591000
  2592. DM5L EQU *-DM5 @VA04250 02592000
  2593. DM6 DC C'DMMEDM853I NO DUMP FILES EXIST' @VA04250 02593000
  2594. DM6L EQU *-DM6 @VA04250 02594000
  2595. DM7 DC C'DMMEDM864I PAGE REFERENCED NOT AVAILABLE' @VA04250 02595000
  2596. DM7L EQU *-DM7 @VA04250 02596000
  2597. DM8 DC C'DMMEDM860I FATAL I/O ERROR READING DUMP' @VA04250 02597000
  2598. DM8L EQU *-DM8 @VA04250 02598000
  2599. DM9 DC C'NO DUMP FILE CREATED' @VA04250 02599000
  2600. DM9L EQU *-DM9 @VA04250 02600000
  2601. DM10 DC C'PRINTER ERROR' @VA04250 02601000
  2602. DM10L EQU *-DM10 @VA04250 02602000
  2603. DMSG DC C'PRINTING FILE ' @VA04250 02603000
  2604. DC C'''' @VA04250 02604000
  2605. DMPP DC CL8' ' @VA04250 02605000
  2606. DC C' DUMP''' @VA04250 02606000
  2607. DMSGL EQU *-DMSG @VA04250 02607000
  2608. CMSG DC C'CREATING FILE ' @VA04250 02608000
  2609. DC C'''' @VA04250 02609000
  2610. CMP DC CL8' ' @VA04250 02610000
  2611. DC C' DUMP''' @VA04250 02611000
  2612. CMSGL EQU *-CMSG @VA04250 02612000
  2613. KPMSG DC C'DUMP FILE ' @VA04250 02613000
  2614. DC C'''' @VA04250 02614000
  2615. KMP DC CL8' ' @VA04250 02615000
  2616. DC C' DUMP'' PRINTED AND KEPT' @VA04250 02616000
  2617. KPMSGL EQU *-KPMSG @VA04250 02617000
  2618. ERMSG DC C'DUMP FILE ' @VA04250 02618000
  2619. DC C'''' @VA04250 02619000
  2620. ERMP DC CL8' ' @VA04250 02620000
  2621. DC C' DUMP'' PRINTED AND ERASED' @VA04250 02621000
  2622. ERMSGL EQU *-ERMSG @VA04250 02622000
  2623. ASKMSG DC C'DO YOU WANT THIS DUMP? REPLY YES OR NO' @VA04250 02623000
  2624. ASKMSGL EQU *-ASKMSG @VA04250 02624000
  2625. LTORG @VA04250 02625000
  2626. ORG DMMEDM+(3*4096) ORG TO BUFFER AREA @VA04250 02626000
  2627. BUFF DS 1024F @VA04250 02627000
  2628. KEY EQU * @VA04250 02628000
  2629. BUFF2 DS 1024F @VA04250 02629000
  2630. KEY1 DS 1024F @VA04250 02630000
  2631. ITEM2 DS 1024F @VA04250 02631000
  2632. ORG ITEM2 @VA04250 02632000
  2633. I2GRS DS 16F @VA04250 02633000
  2634. I2CRS DS 16F @VA04250 02634000
  2635. I2FPRS DS 4D @VA04250 02635000
  2636. I2TOD DS 3D @VA04250 02636000
  2637. DS 2X @V407510 02637000
  2638. I2PROCA DS 1H PROCESSOR ADDRESS @V407510 02638000
  2639. I2SYSRV DS 1F STORAGE SIZE @V407510 02639000
  2640. I2LCORE DS XL256 @VA04250 02640000
  2641. ***************************************************************@V407510 02641000
  2642. ORG I2LCORE+248 SAVE PREFIX REGS IN LCORE AREA @V407510 02642000
  2643. * AREA USED ONLY BY EDM***REC 5 @V407510 02643000
  2644. * HAS BEEN REFRESHED WITH DMPLCORE @V407510 02644000
  2645. I2MPREF DS 1F MAIN PREFIX RG @V407510 02645000
  2646. I2APREF DS 1F ATTACHED PREFIX RG @V407510 02646000
  2647. ***************************************************************@V407510 02647000
  2648. I2PRFRG DS 1F PREFIX REGISTER @V407510 02648000
  2649. I2AB DS 1F ABEND CODE @V407510 02649000
  2650. I2RCH DS 4F @VA04250 02650000
  2651. I2SPL DS 3F @VA04250 02651000
  2652. I2COR DS 1F @VA04250 02652000
  2653. I2VM DS 1F @VA04250 02653000
  2654. I2DATE DS 1D @VA04250 02654000
  2655. I2TIME DS 1D @VA04250 02655000
  2656. ITEMTBL DS 0F @VA04250 02656000
  2657. EJECT 02657000
  2658. BLOKFORM DSECT @VA04250 02658000
  2659. FRCHBLK DS 0C @VA04250 02659000
  2660. DS CL9 @VA04250 02660000
  2661. FRCUBLK DS 0C @VA04250 02661000
  2662. DS CL9 @VA04250 02662000
  2663. FRDEVBLK DS 0C @VA04250 02663000
  2664. DS CL9 @VA04250 02664000
  2665. FIOBLK DS 0C @VA04250 02665000
  2666. DS CL9 @VA04250 02666000
  2667. FSPOOL DS 0C @VA04250 02667000
  2668. FVMBLK EQU FRCHBLK @VA04250 02668000
  2669. FVCHBLK EQU FRCHBLK @VA04250 02669000
  2670. FVCUBLK EQU FRCUBLK @VA04250 02670000
  2671. FVDEVBLK EQU FRDEVBLK @VA04250 02671000
  2672. EJECT 02672000
  2673. PSA @VA04250 02673000
  2674. COPY DMPBLOKS @VA04250 02674000
  2675. COPY ALLOC @VA04250 02675000
  2676. COPY CPEXBLOK @V4M0004 02676000
  2677. COPY TREXT @VA04250 02677000
  2678. COPY CORE @VA04250 02678000
  2679. COPY RBLOKS @VA04250 02679000
  2680. COPY VBLOKS @VA04250 02680000
  2681. COPY VMBLOK @VA04250 02681000
  2682. COPY IOBLOKS @VA04250 02682000
  2683. COPY SPOOL @VA04250 02683000
  2684. COPY DEVTYPES @VA04250 02684000
  2685. COPY EQU @VA04250 02685000
  2686. COPY IOER @VA04250 02686000
  2687. END 02687000
ibm/vm370-lib/dumpscan/dmmedm.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator