Table of Contents

DMKIMG Source

References

Source Listing

DMKIMG.ASSEMBLE.txt
  1. IMG TITLE 'DMKIMG (CP) VM/370 - RELEASE 6' 00001000
  2. ISEQ 73,80 VALIDATE INPUT SERIALIZATION 00002000
  3. *. 00003000
  4. * 00004000
  5. * MODULE NAME - 00005000
  6. * 00006000
  7. * DMKIMG (GENIMAGE) 00007000
  8. * 00008000
  9. * FUNCTION - 00009000
  10. * 00010000
  11. * TO PROVIDE A CMS INTERFACE FOR THE VS-BASED IEBIMAGE PROGRAM. 00011000
  12. * THIS IS DONE BY HANDLING CERTAIN SVC'S ISSUED BY IEBIMAGE AND 00012000
  13. * TRANSLATING THEM INTO CMS TERMS. 00013000
  14. * 00014000
  15. * ATTRIBUTES - 00015000
  16. * 00016000
  17. * DISK RESIDENT, LOADED INTO CMS USER AREA, CALLED VIA SVC 202, 00017000
  18. * SERIALLY REUSABLE 00018000
  19. * 00019000
  20. * ENTRY POINT - 00020000
  21. * 00021000
  22. * DMKIMGBG (GENIMAGE) - INTERFACE TO IEBIMAGE 00022000
  23. * 00023000
  24. * ENTRY CONDITIONS - 00024000
  25. * 00025000
  26. * GPR 1 -> STANDARD CMS PLIST 00026000
  27. * GPR 14 = RETURN ADDRESS 00027000
  28. * GPR 15 = ADDRESS OF GENIMAGE 00028000
  29. * 00029000
  30. * THE FORMAT OF THE STANDARD PLIST IS: 00030000
  31. * 00031000
  32. * +-------------+----------------------------------------+ 00032000
  33. * | | | 00033000
  34. * | GENIMAGE | <FN> <FT> <FM> <(<SFN> <SFT> <SFM>> | 00034000
  35. * | | | 00035000
  36. * +-------------+----------------------------------------+ 00036000
  37. * 00037000
  38. * WHERE 'FN FT FM' REPRESENTS THE INPUT CONTROL FILE TO IEBIMAGE 00038000
  39. * AND DEFAULTS TO THE VALUE 'SYSIN FILE *' AND 00039000
  40. * 00040000
  41. * WHERE 'SFN SFT SFM' IS THE FILE INTO WHICH THE IEBIMAGE 00041000
  42. * LISTING GOES AND DEFAULTS TO 'SYSPRINT LISTING A1'. 00042000
  43. * 00043000
  44. * EXIT CONDITIONS - 00044000
  45. * 00045000
  46. * NORMAL 00046000
  47. * GPR15 < 100 - RETURN CODE FROM IEBIMAGE @VMI0006 00047000
  48. * 00048000
  49. * ERROR 00049000
  50. * GPR15 = 100 - ERROR ON INPUT PARAMETERS @VMI0006 00050000
  51. * GPR15 = 104 - FILEDEF ERROR @VMI0006 00051000
  52. * 00052000
  53. * CALLS TO OTHER ROUTINES - 00053000
  54. * 00054000
  55. * FSSTATE - SEE IF CONTROL FILE EXISTS 00055000
  56. * HNDSVC - TRAP CERTAIN SVC'S ISSUED BY IEBIMAGE 00056000
  57. * GETMAIN - GET AREA FOR SIMULATING OS LOAD SVC 00057000
  58. * FREEMAIN - RELEASE OS LOAD AREA 00058000
  59. * FILEDEF - ISSUE FILEDEF'S NEEDED BY IEBIMAGE 00059000
  60. * LOAD - SIMULATE OS LOAD AND QSAM READ 00060000
  61. * FSWRITE - CREATE A NEW TEXT FILE (STOW SIMULATION) 00061000
  62. * 00062000
  63. * EXTERNAL REFERENCES - 00063000
  64. * 00064000
  65. * MAINHIGH - SAVE AND RESTORE ITS VALUE BETWEEN LOADS 00065000
  66. * 00066000
  67. * TABLES / WORKAREAS - 00067000
  68. * 00068000
  69. * DCB 00069000
  70. * DECB 00070000
  71. * WORKAREA - INTERNAL WORK AREA USED BY IEBIMAGE 00071000
  72. * SEE NOTES SECTION FOR DEPENDENCIES 00072000
  73. * 00073000
  74. * REGISTER USAGE - 00074000
  75. * 00075000
  76. * GPR0 = SCRATCH REGISTER 00076000
  77. * GPR1 = ADDRESS OF PLIST 00077000
  78. * GPR2 = 00078000
  79. * GPR3 = 00079000
  80. * GPR4 = INTERNAL LINKAGE RETURN REGISTER 00080000
  81. * GPR5 = 00081000
  82. * GPR6 = 00082000
  83. * GPR7 = 00083000
  84. * GPR8 = 00084000
  85. * GPR9 = 00085000
  86. * GPR10 = 00086000
  87. * GPR11 = 00087000
  88. * GPR12 = MODULE ADDRESSIBILITY 00088000
  89. * GPR13 = 00089000
  90. * GPR14 = BALR RETURN REGISTER 00090000
  91. * GPR15 = BALR TARGET REGISTER AND RETURN CODES 00091000
  92. * 00092000
  93. * NOTES - 00093000
  94. * 00094000
  95. * WITH REGARD TO THE IEBIMAGE PROGRAM AS DISTRIBUTED 00095000
  96. * WITH THE VS SYSTEMS, THE FOLLOWING ASSUMPTIONS ARE MADE: 00096000
  97. * 1. WITHIN IEBIMAGE, GENERAL REGISTER 8 ALWAYS 00097000
  98. * POINTS TO THE IEBIMAGE WORK AREA. 00098000
  99. * NOTE: THE WORK AREA IS DESCRIBED BY A PLS2 00099000
  100. * DSECT CALLED 'IEBIBLKS'. 00100000
  101. * 2. THE DISPLACEMENT INTO THE WORK AREA OF THE 00101000
  102. * LOCATION 'LIBBUF' IS X'08BC'. THIS IS THE I/O AREA 00102000
  103. * FOR WRITING OUT THE NEW MEMBER IN THE NAME CARD. 00103000
  104. * THIS AREA IS IN THE FORMAT FOR OUTPUT TO THE 00104000
  105. * SYS1.IMAGELIB DATA SET AND IS THE AREA MADE INTO 00105000
  106. * A TEXT FILE BY THE STOW SVC SIMULATION. 00106000
  107. * 3. THE DISPLACEMENT INTO THE WORK AREA OF THE 00107000
  108. * LOCATION 'BLDLNTRY' IS X'003E'. THIS IS THE BLDL 00108000
  109. * ENTRY USED BY IEBIMAGE AND CONTAINS THE NAME 00109000
  110. * OF THE MODULE BEING PROCESSED. 00110000
  111. * 00111000
  112. * THE LARGEST IEBIMAGE MEMBER THAT CAN BE ACCOMMODATED USING 00112000
  113. * THIS SIMULATION TECHNIQUE IS 73000 BYTES FOR INPUT (ONLY THE 00113000
  114. * WTC NATIONAL GRAPHICS MOD IS THIS LARGE) AND 00114000
  115. * 8192 BYTES FOR OUTPUT. 00115000
  116. * 00116000
  117. * OPERATION - 00117000
  118. * 00118000
  119. * 1. VALIDATE THE INPUT PARAMETERS AND DETERMINE IF THE 00119000
  120. * INPUT CONTROL FILE EXISTS. IF NOT, EXIT WITH ERROR 00120000
  121. * MESSAGE DMSIMG002W AND RETURN CODE 4 IN R15. 00121000
  122. * OTHERWISE, CONTINUE. 00122000
  123. * 00123000
  124. * 2. ISSUE A GETMAIN FOR A 73000-BYTE AREA FOR SIMULATING 00124000
  125. * OS LOAD MACROS. 00125000
  126. * ISSUE A FILEDEF COMMAND FOR A DUMMY SYS1.IMAGELIB FILE 00126000
  127. * WITH THE AUXPROC OPTION FOR FIELDING ALL READ/WRITE 00127000
  128. * OPERATIONS ON THAT DATASET. 00128000
  129. * ISSUE ALL OTHER REQUIRED FILEDEFS. 00129000
  130. * 00130000
  131. * 3. ISSUE THE HNDSVC MACRO TO HANDLE THE FOLLOWING SVC'S: 00131000
  132. * SVC 8 (LOAD) 00132000
  133. * SVC 18 (BLDL) 00133000
  134. * SVC 21 (STOW) 00134000
  135. * 00135000
  136. * 4. CALL IEBIMAGE. THIS IMPLICITLY LOADS, IN ADDITION TO 00136000
  137. * 'IEBIMAGE TEXT', 'IEBIMSGS TEXT' AND 'IEBISCAN TEXT'. 00137000
  138. * THIS FILES ARE THE SAME AS THOSE SUPPLIED WITH VS AND 00138000
  139. * MUST BE AVAILABLE WHEN GENMOD'ING THIS MODULE. 00139000
  140. * 00140000
  141. * 5. SAVE THE RETURN CODE FROM IEBIMAGE AND FREEMAIN THE 00141000
  142. * PREVIOUSLY GOTTEN STORAGE. CLEAR ANY FILEDEFS THAT MAY 00142000
  143. * HAVE BEEN ISSUED AND RETURN TO THE CALLER WITH 00143000
  144. * THE RETURN CODE PASSED BY IEBIMAGE. 00144000
  145. * 00145000
  146. * SVC SIMULATION ROUTINES - 00146000
  147. * 00147000
  148. * BLDL SVC 00148000
  149. * ISSUE FSSTATE FOR TEXT FILE BEING SEARCHED FOR AND 00149000
  150. * SET THE APPROPRIATE RETURN CODES IN THE SVC 00150000
  151. * SAVE AREA. 00151000
  152. * 00152000
  153. * OS LOAD SVC - 00153000
  154. * A CMS LOAD IS ISSUED TO GET THE MODULE INTO THE 00154000
  155. * AREA JUST AFTER THE CURRENT MODULE LOAD. 00155000
  156. * THIS ADDRESS IS THEN PASSED BACK THE ISSUER OF 00156000
  157. * THE LOAD SVC IN REGISTER 1. 00157000
  158. * 00158000
  159. * READ/WRITE ROUTINE - 00159000
  160. * IF THIS IS A WRITE OPERATION, TREAT IT AS A NOP. 00160000
  161. * THE ACTUAL WRITE WILL BE DONE AT STOW TIME. 00161000
  162. * IF THIS IS A READ, USE CMS LOAD TO GET THE MODULE 00162000
  163. * INTO THE LOAD AREA. THEN MOVE THE DATA INTO THE 00163000
  164. * USER-SUPPLIED BUFFER FOR THE READ. 00164000
  165. * 00165000
  166. * STOW SVC - 00166000
  167. * TAKING AS INPUT THE 'LIBBUF' AREA OF THE IEBIMAGE WORK 00167000
  168. * AREA, CREATE A TEXT FILE FROM THAT IMAGE WITH FILENAME 00168000
  169. * AS STORED IN THE 'BNAME' FIELD IN THE IEBIMAGE WORK 00169000
  170. * AREA AND FILETYPE 'TEXT' AND FILEMODE 'A1'. 00170000
  171. * THIS IS DONE BY USING THE 'MODCNT' FIELD IN 'LIBBUF' 00171000
  172. * AND CREATING AN 'ESD' CARD, A SERIES OF 'TXT' CARDS 00172000
  173. * AND AN 'END' CARD. 00173000
  174. * 00174000
  175. * RESPONSE - 00175000
  176. * 00176000
  177. * NONE 00177000
  178. * 00178000
  179. * ERROR MESSAGES - 00179000
  180. * 00180000
  181. * NONE 00181000
  182. *. 00182000
  183. EJECT 00183000
  184. DMKIMG CSECT 00184000
  185. USING NUCON,R0 @V60B9BA 00185000
  186. SPACE 3 00186000
  187. ENTRY DMKIMGBG @V60B9BA 00187000
  188. EXTRN IEBIMAGE @V60B9BA 00188000
  189. DMKIMGBG DS 0H @V60B9BA 00189000
  190. GENIMAGE EQU * @V60B9BA 00190000
  191. LR R12,R15 OUR BASE REGISTER @V60B9BA 00191000
  192. USING DMKIMG,R12 ADDRESSIBILITY @V60B9BA 00192000
  193. ST R14,SAVE14 SAVE OUR RETURN REGISTER @V60B9BA 00193000
  194. LA R1,8(R1) POINT TO FIRST PARAMETER @V60B9BA 00194000
  195. LA R2,INFN WHERE IT GOES @V60B9BA 00195000
  196. LA R3,3 AT MOST 3 PARAMETERS @V60B9BA 00196000
  197. LOOP1 CLI 0(R1),X'FF' FENCE ? @V60B9BA 00197000
  198. BE ENDPARMS XFER IF SO @V60B9BA 00198000
  199. CLI 0(R1),C'(' START OF OUTPUT OPTIONS ? @V60B9BA 00199000
  200. BE OPTIONS XFER IF SO @V60B9BA 00200000
  201. MVC 0(8,R2),0(R1) MOVE IN THE SPECIFIED VALUE @V60B9BA 00201000
  202. LA R2,8(R2) NEXT FIELD @V60B9BA 00202000
  203. LA R1,8(R1) NEXT PARAMETER @V60B9BA 00203000
  204. BCT R3,LOOP1 TRY AGAIN @V60B9BA 00204000
  205. SPACE 00205000
  206. * MUST BE START OF OPTIONS OR FENCE 00206000
  207. SPACE 00207000
  208. CLI 0(R1),X'FF' FENCE? @V60B9BA 00208000
  209. BE ENDPARMS XFER IF SO @V60B9BA 00209000
  210. CLI 0(R1),C'(' START OF OUTPUT OPTIONS? @V60B9BA 00210000
  211. BNE PARMERR ERROR IF NOT @V60B9BA 00211000
  212. OPTIONS LA R1,8(R1) NEXT FIELD @V60B9BA 00212000
  213. LA R2,LISTFN WHERE IT WOULD GO @V60B9BA 00213000
  214. LA R3,3 AT MOST 3 PARAMETERS @V60B9BA 00214000
  215. LOOP2 CLI 0(R1),X'FF' FENCE? @V60B9BA 00215000
  216. BE ENDPARMS XFER IF SO @V60B9BA 00216000
  217. CLI 0(R1),C'(' IS IT THE DELIMITER? @V60B9BA 00217000
  218. BE PARMERR ERROR IF SO @V60B9BA 00218000
  219. CLI 0(R1),C')' ENDING DELIMITER? @V60B9BA 00219000
  220. BE ENDPARMS XFER IF SO @V60B9BA 00220000
  221. MVC 0(8,R2),0(R1) MOVE IN THE SPECIFIED VALUE @V60B9BA 00221000
  222. LA R1,8(R1) NEXT PARAMETER @V60B9BA 00222000
  223. LA R2,8(R2) NEXT PLACE TO PUT IT @V60B9BA 00223000
  224. BCT R3,LOOP2 TRY AGAIN @V60B9BA 00224000
  225. SPACE 00225000
  226. * CREATE A DUMMY IMAGELIB SUFFICIENT TO FAKE OUT 'OPEN' 00226000
  227. SPACE 00227000
  228. ENDPARMS FSWRITE FSCB=FSCB2,RECNO=1 JUST THE FIRST RECORD @V60B9BA 00228000
  229. FSWRITE FSCB=FSCB2,RECNO=2 AND THE SECOND ONE @V60B9BA 00229000
  230. FSCLOSE FSCB=FSCB2 CLOSE IT NOW @V60B9BA 00230000
  231. SPACE 00231000
  232. * DO THE FILEDEF FOR READS/WRITES TO IMAGELIB 00232000
  233. SPACE 00233000
  234. LA R1,FILEDEF1 DO THE FILEDEF FOR IMAGELIB @V60B9BA 00234000
  235. SVC 202 ... @V60B9BA 00235000
  236. DC AL4(FILEBAD) LOCATION FOR BAD FILEDEF @V60B9BA 00236000
  237. SPACE 00237000
  238. LA R1,FILEDEF2 FILEDEF FOR INPUT CONTROL FI@V60B9BA 00238000
  239. SVC 202 ... @V60B9BA 00239000
  240. DC AL4(FILEBAD) ERROR LOCATION @V60B9BA 00240000
  241. SPACE 00241000
  242. LA R1,FILEDEF3 FOR THE OUTPUT LISTING @V60B9BA 00242000
  243. SVC 202 ... @V60B9BA 00243000
  244. DC AL4(FILEBAD) ERROR LOCATION @V60B9BA 00244000
  245. SPACE 00245000
  246. * FINISHED PROCESSING THE INPUT PARAMETERS 00246000
  247. SPACE 00247000
  248. GETMAIN R,LV=BUFSIZE GET STORAGE FOR LOADS @V60B9BA 00248000
  249. ST R1,LOADADDR SAVE THE ADDRESS OF THE AREA@V60B9BA 00249000
  250. LINEDIT TEXT='........',DOT=NO,COMP=NO,SUB=(HEXA,LOADADDR), *00250000
  251. DISP=NONE,BUFFA=LOADBCD GET ADDRESS IN LOAD PLIST 00251000
  252. MVC LDWHERE,LOADBCD+1 MOVE IT TO PLIST @V60B9BA 00252000
  253. SPACE 00253000
  254. * SET UP TO TRAP THE SVCS ISSUED BY IEBIMAGE 00254000
  255. SPACE 00255000
  256. HNDSVC SET,(8,LOADRTN),(18,BLDLRTN),(21,STOWRTN) @V60B9BA 00256000
  257. SPACE 00257000
  258. * NOW WE CALL THE IEBIMAGE PROGRAM TO PROCESS ALL 00258000
  259. * THE CARDS IN THE INPUT CONTROL FILE 00259000
  260. SPACE 00260000
  261. L R15,=A(IEBIMAGE) ROUTINE TO CALL @V60B9BA 00261000
  262. BALR R14,R15 CALL IT @V60B9BA 00262000
  263. LR R6,R15 SAVE IEBIMAGE RETURN CODE @VMI0006 00263000
  264. SPACE 00264000
  265. LA R1,CLEAR CLEAR THE FILEDEFS @V60B9BA 00265000
  266. SVC 202 ... @V60B9BA 00266000
  267. DC AL4(*+4) @V60B9BA 00267000
  268. SPACE 00268000
  269. * CLEAR THE SVC HANDLING 00269000
  270. SPACE 00270000
  271. HNDSVC CLR,8,18,21 @V60B9BA 00271000
  272. SPACE 00272000
  273. L R1,LOADADDR LOAD ADDRESS FOR FREEMAIN @V60B9BA 00273000
  274. FREEMAIN R,LV=BUFSIZE,A=(1) @V60B9BA 00274000
  275. LR R15,R6 RESTORE IEBIMAGE RETURN CODE@VMI0006 00275000
  276. RETURN LR R5,R15 SAVE RETURN CODE @V60B9BA 00276000
  277. FSERASE FSCB=FSCB2 ERASE DUMMY IMAGELIB @V60B9BA 00277000
  278. LA R1,ERPDSTMP ERASE $PDSTEMP CMSUT2 ALSO @V60B9BA 00278000
  279. SVC 202 DO IT @V60B9BA 00279000
  280. DC AL4(*+4) NO ERROR ROUTINE @V60B9BA 00280000
  281. LR R15,R5 RESTORE RETURN CODE @V60B9BA 00281000
  282. L R14,SAVE14 GET THE RETURN REGISTER @V60B9BA 00282000
  283. BR R14 RETURN TO CALLER @V60B9BA 00283000
  284. SPACE 4 00284000
  285. PARMERR LA R15,100 PARAMETER ERROR @VMI0006 00285000
  286. B RETURN RETURN TO CALLER @V60B9BA 00286000
  287. SPACE 00287000
  288. FILEBAD LA R15,104 FILEDEF ERROR @VMI0006 00288000
  289. B RETURN RETURN TO CALLER @V60B9BA 00289000
  290. EJECT 00290000
  291. *. 00291000
  292. * THIS SIMULATES THE OS BLDL MACRO. THE SIMULATION CONSISTS 00292000
  293. * OF ISSUING A CMS STATE FUNCTION. UPON ENTRY, THE 00293000
  294. * STANDARD LINKAGE WILL BE SET UP. 00294000
  295. *. 00295000
  296. SPACE 00296000
  297. BLDLRTN DS 0H SIMULATE BLDL MACRO @V60B9BA 00297000
  298. USING BLDLRTN,R12 ADDRESSIBILITY @V60B9BA 00298000
  299. STM R14,R12,12(R13) SAVE THE REGS @V60B9BA 00299000
  300. ST R13,SAVEAR+4 BACKWARD POINTER @V60B9BA 00300000
  301. LA R14,SAVEAR OUR SAVE AREA @V60B9BA 00301000
  302. ST R14,8(R13) FORWARD POINTER @V60B9BA 00302000
  303. LR R13,R14 ESTABLISH NEW SAVE AREA @V60B9BA 00303000
  304. LR R2,R0 BLDL ENTRY ADDRESS @V60B9BA 00304000
  305. USING BLDNTRY,R2 ADDRESSIBILITY @V60B9BA 00305000
  306. MVC STNAME,BLDNAME MOVE IN FOR STATE @V60B9BA 00306000
  307. LA R1,STPLIST PLIST ADDRESS @V60B9BA 00307000
  308. SVC 202 ISSUE THE STATE @V60B9BA 00308000
  309. DC AL4(*+4) @V60B9BA 00309000
  310. OI BLDATTR,BLD1REC ONE RECD IN MEMBER @V60B9BA 00310000
  311. L R3,CURRSAVE GET ISSUER'S SVC REGISTERS @V60B9BA 00311000
  312. USING SSAVE,R3 ADDRESSIBILITY @V60B9BA 00312000
  313. SR R4,R4 GET INTO SYSTEM KEY @V60B9BA 00313000
  314. SPKA 0(R4) ... @V60B9BA 00314000
  315. LTR R15,R15 RETURN CODE FROM STATE @V60B9BA 00315000
  316. BNZ BLDL2 XFER IF NOT ZERO @V60B9BA 00316000
  317. ST R15,EGPR15 SEND USER THE 0 RC @V60B9BA 00317000
  318. B BLDRET AND RETURN @V60B9BA 00318000
  319. BLDL2 C R15,=F'28' FILE NOT FOUND? @V60B9BA 00319000
  320. BNE BLDL3 XFER IF NOT @V60B9BA 00320000
  321. MVC EGPR15,=F'4' THAT'S HIS RETURN CODE @V60B9BA 00321000
  322. B BLDRET AND RETURN @V60B9BA 00322000
  323. BLDL3 MVC EGPR15,=F'12' OTHER ERROR @V60B9BA 00323000
  324. BLDRET LA R4,X'E0' BACK TO USER KEY @V60B9BA 00324000
  325. SPKA 0(R4) .. @V60B9BA 00325000
  326. L R13,4(R13) GET CALLER'S SAVE AREA @V60B9BA 00326000
  327. LM R14,R12,12(R13) RESTORE HIS REGS @V60B9BA 00327000
  328. BR R14 RETURN TO CALLER @V60B9BA 00328000
  329. DROP R2,R3,R12 NO LONGER NEEDED @V60B9BA 00329000
  330. EJECT 00330000
  331. *. 00331000
  332. * THIS ROUTINE SIMULATES THE OS LOAD MACRO. 00332000
  333. * IT DOES THIS BY INVOKING THE CMS LOAD FUNCTION AND 00333000
  334. * SETTING UP THE REGISTERS AS FOR THE OS LOAD MACRO. 00334000
  335. *. 00335000
  336. SPACE 00336000
  337. LOADRTN DS 0H SIMULATE OS LOAD MACRO @V60B9BA 00337000
  338. USING LOADRTN,R12 ADDRESSIBILITY @V60B9BA 00338000
  339. STM R14,R12,12(R13) SAVE THE REGS @V60B9BA 00339000
  340. ST R13,SAVEAR+4 BACKWARD POINTER @V60B9BA 00340000
  341. LA R14,SAVEAR OUR SAVE AREA @V60B9BA 00341000
  342. ST R14,8(R13) FORWARD POINTER @V60B9BA 00342000
  343. LR R13,R14 OUR SAVE AREA @V60B9BA 00343000
  344. L R3,CURRSAVE GET THE SVC SAVE AREA @V60B9BA 00344000
  345. USING SSAVE,R3 ADDRESSIBILITY @V60B9BA 00345000
  346. L R4,EGPR0 GET ADDR OF NAME TO LOAD @V60B9BA 00346000
  347. LPR R4,R4 NEED IT TO BE POSITIVE @V60B9BA 00347000
  348. MVC MAINSAVE,MAINHIGH SAVE CURRENT MAINHIGH @V60B9BA 00348000
  349. MVC LDNAME,0(R4) NAME TO LOAD @V60B9BA 00349000
  350. LA R1,LDPLIST LOAD PLIST @V60B9BA 00350000
  351. SVC 202 DO IT @V60B9BA 00351000
  352. DC AL4(*+4) @V60B9BA 00352000
  353. SR R5,R5 GET SYSTEM PROTECT KEY @V60B9BA 00353000
  354. SPKA 0(R5) ... @V60B9BA 00354000
  355. XC EGPR15,EGPR15 ZERO RETURN CODE TO USER @V60B9BA 00355000
  356. MVC EGPR0,LOADADDR LOAD ADDRESS @V60B9BA 00356000
  357. MVC MAINHIGH,MAINSAVE RESTORE OLD MAINHIGH VALUE @V60B9BA 00357000
  358. LA R5,X'E0' BACK TO USER PROTECT KEY @V60B9BA 00358000
  359. SPKA 0(R5) ... @V60B9BA 00359000
  360. L R13,4(R13) CALLER'S SAVE AREA @V60B9BA 00360000
  361. LM R14,R12,12(R13) RESTORE THE REGS @V60B9BA 00361000
  362. BR R14 RETURN TO CALLER @V60B9BA 00362000
  363. DROP R3,R12 NO LONGER NEEDED @V60B9BA 00363000
  364. EJECT 00364000
  365. *. 00365000
  366. * THIS ROUTINE SIMULATES THE OS READ/WRITE FUNCTIONS FOR 00366000
  367. * THE IMAGELIB DATA SET. A WRITE IS TREATED AS A NO-OP, 00367000
  368. * SINCE THAT FUNCTION WILL BE SIMULATED AT STOW TIME. 00368000
  369. * A READ OPERATION IS SIMULATED BY THE CMS LOAD FUNCTION 00369000
  370. * FOLLOWED BY MOVING THE DATA TO THE USER'S AREA. 00370000
  371. * UPON ENTRY, REGISTER 1 POINTS TO THE DECB FOR THE 00371000
  372. * I/O OPERATION. 00372000
  373. *. 00373000
  374. SPACE 00374000
  375. READRTN DS 0H SIMULATE READ/WRITE FUNCTION@V60B9BA 00375000
  376. USING READRTN,R15 TEMPORARY ADDRESSIBILITY @V60B9BA 00376000
  377. STM R0,R15,READSAVE SAVE THE REGS @V60B9BA 00377000
  378. LR R12,R15 OUR BASE REGISTER @V60B9BA 00378000
  379. DROP R15 @V60B9BA 00379000
  380. USING READRTN,R12 ADDRESSIBILITY @V60B9BA 00380000
  381. LR R3,R1 DECB POINTER @V60B9BA 00381000
  382. USING DECB,R3 ADDRESSIBILITY @V60B9BA 00382000
  383. L R6,DECAREA USER'S DATA AREA @V60B9BA 00383000
  384. L R4,DECDCBAD ADDRESS OF DCB @V60B9BA 00384000
  385. USING DCB,R4 ADDRESSIBILITY @V60B9BA 00385000
  386. TM DCBMACR2,DCBOPWRT WAS IT WRITE OPERATION? @V60B9BA 00386000
  387. BO WRITERTN XFER IF SO @V60B9BA 00387000
  388. MVC MAINSAVE,MAINHIGH SAVE VALUE OF MAINHIGH @V60B9BA 00388000
  389. MVC LDNAME,STNAME MOVE IN WHAT TO LOAD @V60B9BA 00389000
  390. LA R1,LDPLIST LOAD PLIST @V60B9BA 00390000
  391. SVC 202 ... @V60B9BA 00391000
  392. DC AL4(*+4) @V60B9BA 00392000
  393. SR R1,R1 GET INTO SYSTEM KEY @V60B9BA 00393000
  394. SPKA 0(R1) GO DO IT @V60B9BA 00394000
  395. MVC MAINHIGH,MAINSAVE RESTORE VALUE OF MAINHIGH @V60B9BA 00395000
  396. LA R1,X'E0' BACK TO USER KEY @V60B9BA 00396000
  397. SPKA 0(R1) GO DO IT @V60B9BA 00397000
  398. L R7,LOCCNT GET MODULE SIZE @V60B9BA 00398000
  399. S R7,STRTADDR ... @V60B9BA 00399000
  400. L R0,LOADADDR SOURCE ADDRESS @V60B9BA 00400000
  401. LR R1,R7 SOURCE LENGTH @V60B9BA 00401000
  402. MVCL R6,R0 MOVE DATA TO USER AREA @V60B9BA 00402000
  403. B READEXIT RETURN TO CALLER @V60B9BA 00403000
  404. SPACE 00404000
  405. WRITERTN SR R1,R1 GET INTO SYSTEM KEY @V60B9BA 00405000
  406. SPKA 0(R1) ... @V60B9BA 00406000
  407. L R5,DCBDEBAD ADDRESS OF DEB @V60B9BA 00407000
  408. USING DEB,R5 ADDRESSIBILITY @V60B9BA 00408000
  409. MVI DEBNMEXT,0 PREVENT ERROR MSG 45 @V60B9BA 00409000
  410. LA R1,X'E0' BACK TO USER KEY @V60B9BA 00410000
  411. SPKA 0(R1) ... @V60B9BA 00411000
  412. SPACE 00412000
  413. READEXIT L R15,=F'65536' RETURN CODE @V60B9BA 00413000
  414. LM R0,R14,READSAVE RESTORE REGS @V60B9BA 00414000
  415. BR R14 RETURN TO CALLER @V60B9BA 00415000
  416. DROP R3,R4,R5,R12 @V60B9BA 00416000
  417. EJECT 00417000
  418. *. 00418000
  419. * THIS ROUTINE SIMULATES THE OPERATION OF THE OS STOW MACRO. 00419000
  420. * THIS IS DONE BY LOCATING THE MODULE DATA IN THE IEBIBLKS WORK 00420000
  421. * AREA AND CREATING A TEXT DECK FROM THIS MODULE. THE DECK 00421000
  422. * CONSISTS OF AN ESD CARD, FOLLOWED BY A NUMBER OF TXT CARDS, 00422000
  423. * FOLLOWED BY AN END CARD. 00423000
  424. *. 00424000
  425. SPACE 00425000
  426. STOWRTN DS 0H SIMULATE STOW MACRO @V60B9BA 00426000
  427. USING STOWRTN,R12 ADDRESSIBILITY @V60B9BA 00427000
  428. STM R14,R12,12(R13) SAVE THE REGS @V60B9BA 00428000
  429. ST R13,SAVEAR+4 BACKWARD POINTER @V60B9BA 00429000
  430. LA R14,SAVEAR OUR SAVE AREA @V60B9BA 00430000
  431. ST R14,8(R13) FORWARD POINTER @V60B9BA 00431000
  432. LR R13,R14 OUR SAVE AREA @V60B9BA 00432000
  433. L R3,CURRSAVE GET SVC ISSUER'S REG 8 @V60B9BA 00433000
  434. USING SSAVE,R3 ADDRESSIBILITY @V60B9BA 00434000
  435. L R8,EGPR8 GET POINTER TO IEBIBLKS @V60B9BA 00435000
  436. DROP R3 NO LONGER NEEDED @V60B9BA 00436000
  437. USING IEBIBLKS,R8 ADDRESSIBILITY @V60B9BA 00437000
  438. MVC RNFNAME,BNAME GET NAME OF TEXT FILE @V60B9BA 00438000
  439. MVC ERFNAME,BNAME SAME HERE @V60B9BA 00439000
  440. FSERASE FSCB=FSCB1 ERASE TEMP FILE @V60B9BA 00440000
  441. SPACE 00441000
  442. * CREATE THE ESD CARD 00442000
  443. SPACE 00443000
  444. MVC ESDNAME,BNAME MODULE NAME @V60B9BA 00444000
  445. MVC MODNAME,BNAME+4 GET MODULE NAME IN @V60B9BA 00445000
  446. LH R2,MODCNT GET MODULE SIZE @V60B9BA 00446000
  447. LA R2,8(R2) MODULE HEADER SIZE ADDED @V60B9BA 00447000
  448. STCM R2,B'0111',ESDMODLN PUT IT IN THE ESD CARD @V60B9BA 00448000
  449. SR R1,R1 INITIALIZE THE CARD @V60B9BA 00449000
  450. ST R1,SEQNO ..SEQUENCE NUMBERING @V60B9BA 00450000
  451. BAL R9,GETSEQ GET FIRST NUM IN PRINTABLE @V60B9BA 00451000
  452. MVC ESDSEQNO(4),BNAME+4 MODULE ID @V60B9BA 00452000
  453. ST R1,ESDSEQNO+4 SEQUENCE NUMBER @V60B9BA 00453000
  454. FSWRITE FSCB=FSCB1,BUFFER=ESDCARD WRITE IT OUT @V60B9BA 00454000
  455. SPACE 00455000
  456. * NOW CREATE THE TXT CARDS 00456000
  457. SPACE 00457000
  458. LA R3,LIBBUF ADDRESS OF MODULE @V60B9BA 00458000
  459. LA R4,56 INCREMENT @V60B9BA 00459000
  460. LR R5,R3 COMPARAND @V60B9BA 00460000
  461. AH R5,MODCNT ... IS ON THE LAST @V60B9BA 00461000
  462. LA R5,7(R5) ... BYTE OF THE MODULE @V60B9BA 00462000
  463. TXTLOOP LR R7,R3 GET STARTING ADDRESS @V60B9BA 00463000
  464. LA R6,LIBBUF GET INITIAL ADDRESS @V60B9BA 00464000
  465. SLR R7,R6 GET RELATIVE ADDRESS @V60B9BA 00465000
  466. STCM R7,B'0111',TXTRADD STORE IT IN THE TXT CARD @V60B9BA 00466000
  467. LR R6,R5 SEE HOW MANY BYTES TO MOVE @V60B9BA 00467000
  468. LA R6,1(R6) NUMBER LEFT IN THE @V60B9BA 00468000
  469. SLR R6,R3 .. MODULE INTO R6 @V60B9BA 00469000
  470. CLR R4,R6 MORE THAN 56 LEFT? @V60B9BA 00470000
  471. BNH *+6 XFER IF SO @V60B9BA 00471000
  472. LR R4,R6 USE WHAT'S LEFT @V60B9BA 00472000
  473. STH R4,TXTCOUNT SAVE IT IN THE TXT CARD @V60B9BA 00473000
  474. MVC TXTESDID,ESDID MOVE IN THE ESD ID @V60B9BA 00474000
  475. LR R1,R4 FOR EXECUTE MVC @V60B9BA 00475000
  476. BCTR R1,0 ... @V60B9BA 00476000
  477. EX R1,MOVETXT MOVE IT @V60B9BA 00477000
  478. BAL R9,GETSEQ GET SEQUENCE NUM IN R0,R1 @V60B9BA 00478000
  479. MVC TXTSEQNO(4),BNAME+4 SEQUENCE NUMBER @V60B9BA 00479000
  480. ST R1,TXTSEQNO+4 MODULE ID @V60B9BA 00480000
  481. FSWRITE FSCB=FSCB1,BUFFER=TXTCARD WRITE IT OUT @V60B9BA 00481000
  482. BXLE R3,R4,TXTLOOP PUT OUT ANOTHER CARD @V60B9BA 00482000
  483. SPACE 00483000
  484. * NOW PUT OUT THE 'END' CARD 00484000
  485. SPACE 00485000
  486. MVC ENDSEQNO(4),BNAME+4 MODULE ID @V60B9BA 00486000
  487. BAL R9,GETSEQ SEQ NUM INTO R0,R1 @V60B9BA 00487000
  488. ST R1,ENDSEQNO+4 PUT IT IN THE END CARD @V60B9BA 00488000
  489. FSWRITE FSCB=FSCB1,BUFFER=ENDCARD WRITE IT TO DISK @V60B9BA 00489000
  490. FSCLOSE FSCB=FSCB1 CLOSE THE FILE @V60B9BA 00490000
  491. SPACE 00491000
  492. * IT'S BEEN WRITTEN. NOW GET RID OF THE OLD ONE AND 00492000
  493. * RENAME THIS ONE TO THE PROPER NAME. 00493000
  494. SPACE 00494000
  495. LA R1,ERASEF ERASE PLIST @V60B9BA 00495000
  496. SVC 202 ... @V60B9BA 00496000
  497. DC AL4(*+4) @V60B9BA 00497000
  498. LA R1,RENAME RENAME PLIST @V60B9BA 00498000
  499. SVC 202 ... @V60B9BA 00499000
  500. DC AL4(*+4) @V60B9BA 00500000
  501. SPACE 00501000
  502. L R3,CURRSAVE GIVE SVC ISSUER A ZERO RC @V60B9BA 00502000
  503. USING SSAVE,R3 ADDRESSIBILITY @V60B9BA 00503000
  504. SR R1,R1 GET INTO SYSTEM KEY @V60B9BA 00504000
  505. SPKA 0(R1) DO IT @V60B9BA 00505000
  506. XC EGPR15,EGPR15 MAKE RTN COD = ZERO @V60B9BA 00506000
  507. LA R1,X'E0' BACK TO USER KEY @V60B9BA 00507000
  508. SPKA 0(R1) DO IT @V60B9BA 00508000
  509. DROP R3 NO LONGER NEEDED @V60B9BA 00509000
  510. SPACE 00510000
  511. L R13,4(R13) CALLER'S SAVE AREA @V60B9BA 00511000
  512. LM R14,R12,12(R13) RESTORE THE REGS @V60B9BA 00512000
  513. BR R14 RETURN TO CALLER @V60B9BA 00513000
  514. DROP R8 NO LONGER NEEDED @V60B9BA 00514000
  515. SPACE 00515000
  516. MOVETXT MVC TXTDATA(*-*),0(R3) FOR EXECUTE INSTR @V60B9BA 00516000
  517. SPACE 4 00517000
  518. * GETSEQ SUBROUTINE - NOTE: R12 IS THE BASE REGISTER 00518000
  519. * AND IT IS ASSUMED IT POINTS TO THE LABEL 'STOWRTN' 00519000
  520. * ON EXIT, THE SEQUENCE NUMBER IS IN R0,R1 00520000
  521. * AND IS THEN INCREMENTED. 00521000
  522. SPACE 00522000
  523. GETSEQ L R0,SEQNO GET ITS CURRENT VALUE @V60B9BA 00523000
  524. CVD R0,PKDWORD CONVERT TO PACKED DECIMAL @V60B9BA 00524000
  525. UNPK UNPKAREA,PKDWORD UNPACK IT @V60B9BA 00525000
  526. OI UNPKAREA+7,X'F0' MAKE IT PRINTABLE @V60B9BA 00526000
  527. AL R0,=F'1' INCREMENT SEQUENCE NUMBER @V60B9BA 00527000
  528. ST R0,SEQNO AND STORE ITS NEW VALUE @V60B9BA 00528000
  529. LM R0,R1,UNPKAREA PUT IT IN THE REGS @V60B9BA 00529000
  530. BR R9 RETURN TO CALLER @V60B9BA 00530000
  531. DROP R12 @V60B9BA 00531000
  532. EJECT 00532000
  533. * CONSTANTS AND WORK AREAS 00533000
  534. SPACE 00534000
  535. DS 0D @V60B9BA 00535000
  536. FILEDEF1 DC CL8'FILEDEF' IMAGELIB FILEDEF @V60B9BA 00536000
  537. DC CL8'SYSUT1' DDNAME @V60B9BA 00537000
  538. DC CL8'DISK' @V60B9BA 00538000
  539. DC CL8'GENIMAGE' DUMMY NAME @V60B9BA 00539000
  540. DC CL8'CMSUT2' IT'S IN PSEUDO-PDS FORMAT @V60B9BA 00540000
  541. DC CL8'(' START OF OPTIONS @V60B9BA 00541000
  542. DC CL8'AUXPROC' GET ROUTINE TO TRAP ALL @V60B9BA 00542000
  543. DC A(READRTN) ... READS AND WRITES @V60B9BA 00543000
  544. DC CL4' ' FILLER @V60B9BA 00544000
  545. DC 8X'FF' FENCE @V60B9BA 00545000
  546. SPACE 00546000
  547. CLEAR DC CL8'FILEDEF' FILEDEF @V60B9BA 00547000
  548. DC CL8'*' ALL OF THEM @V60B9BA 00548000
  549. DC CL8'CLEAR' IT'S THE CLEAR FUNCTION @V60B9BA 00549000
  550. DC 8X'FF' FENCE @V60B9BA 00550000
  551. SPACE 00551000
  552. FILEDEF2 DS 0D INPUT CONTROL FILE @V60B9BA 00552000
  553. DC CL8'FILEDEF' @V60B9BA 00553000
  554. DC CL8'SYSIN' DDNAME @V60B9BA 00554000
  555. DC CL8'DISK' @V60B9BA 00555000
  556. INFN DC CL8'SYSIN' DEFAULT FILENAME @V60B9BA 00556000
  557. INFT DC CL8'FILE' DEFAULT FILETYPE @V60B9BA 00557000
  558. INFM DC CL8'*' DEFAULT FILEMODE @V60B9BA 00558000
  559. DC 8X'FF' FENCE @V60B9BA 00559000
  560. SPACE 00560000
  561. FILEDEF3 DS 0D OUTPUT LISTING @V60B9BA 00561000
  562. DC CL8'FILEDEF' @V60B9BA 00562000
  563. DC CL8'SYSPRINT' DDNAME @V60B9BA 00563000
  564. DC CL8'DISK' @V60B9BA 00564000
  565. LISTFN DC CL8'SYSPRINT' DEFAULT FILENAME @V60B9BA 00565000
  566. LISTFT DC CL8'LISTING' DEFAULT FILETYPE @V60B9BA 00566000
  567. LISTFM DC CL8'A1' DEFAULT FILEMODE @V60B9BA 00567000
  568. DC 8X'FF' FENCE @V60B9BA 00568000
  569. SPACE 00569000
  570. SAVE14 DS F HOLD RETURN REGISTER HERE @V60B9BA 00570000
  571. LOADADDR DS 1A PLACE TO DO LOADS @V60B9BA 00571000
  572. BUFSIZE EQU 73000 SIZE OF LOAD AREA @V60B9BA 00572000
  573. SAVEAR DS 16F SAVE AREA FOR SVC ROUTINES @V60B9BA 00573000
  574. MAINSAVE DS 1A SAVE MAINHIGH ACROSS LOADS @V60B9BA 00574000
  575. LOADBCD DS 9X PLACE FOR LOAD ADDR @V60B9BA 00575000
  576. SPACE 00576000
  577. STPLIST DS 0D STATE FOR BLDL SIMULATION @V60B9BA 00577000
  578. DC CL8'STATE' @V60B9BA 00578000
  579. STNAME DC CL8' ' TEXT FILE NAME @V60B9BA 00579000
  580. STTYPE DC CL8'TEXT' @V60B9BA 00580000
  581. DC CL8'*' @V60B9BA 00581000
  582. DC 8X'FF' FENCE @V60B9BA 00582000
  583. SPACE 00583000
  584. LDPLIST DS 0D PLIST FOR CMS LOADS @V60B9BA 00584000
  585. DC CL8'LOAD' @V60B9BA 00585000
  586. LDNAME DC CL8' ' FILE TO LOAD @V60B9BA 00586000
  587. DC CL8'(' START OF OPTIONS @V60B9BA 00587000
  588. DC CL8'ORIGIN' WHERE TO LOAD @V60B9BA 00588000
  589. LDWHERE DC CL8' ' ..ADDRESS OF LOAD AREA @V60B9BA 00589000
  590. DC CL8'NOMAP' @V60B9BA 00590000
  591. DC 8X'FF' FENCE @V60B9BA 00591000
  592. SPACE 00592000
  593. READSAVE DS 16F READ/WRITE SAVE AREA @V60B9BA 00593000
  594. SPACE 00594000
  595. RENAME DS 0D RENAME FOR STOW SIMULATION @V60B9BA 00595000
  596. DC CL8'RENAME' @V60B9BA 00596000
  597. DC CL8'GENIMAGE' @V60B9BA 00597000
  598. DC CL8'CMSUT1' @V60B9BA 00598000
  599. DC CL8'A' @V60B9BA 00599000
  600. RNFNAME DC CL8' ' NAME OF NEW FILE @V60B9BA 00600000
  601. DC CL8'TEXT' @V60B9BA 00601000
  602. DC CL8'A' @V60B9BA 00602000
  603. DC 8X'FF' FENCE @V60B9BA 00603000
  604. SPACE 00604000
  605. ERASEF DS 0D PLIST TO ERASE OLD COPY @V60B9BA 00605000
  606. DC CL8'ERASE' @V60B9BA 00606000
  607. ERFNAME DC CL8' ' NAME TO ERASE @V60B9BA 00607000
  608. DC CL8'TEXT' @V60B9BA 00608000
  609. DC CL8'A' @V60B9BA 00609000
  610. DC 8X'FF' FENCE @V60B9BA 00610000
  611. SPACE 00611000
  612. ERPDSTMP DS 0D ERASE $PDSTEMP CMSUT2 @V60B9BA 00612000
  613. DC CL8'ERASE' @V60B9BA 00613000
  614. DC CL8'$PDSTEMP' @V60B9BA 00614000
  615. DC CL8'CMSUT2' @V60B9BA 00615000
  616. DC CL8'A' @V60B9BA 00616000
  617. DC 8X'FF' FENCE @V60B9BA 00617000
  618. SPACE 00618000
  619. ESDCARD DS 0D FORMAT FOR ESD CARD @V60B9BA 00619000
  620. DC X'02' 12-2-9 PUNCH @V60B9BA 00620000
  621. DC CL9'ESD' NAME OF CARD @V60B9BA 00621000
  622. DC X'0010' COUNT FIELD @V60B9BA 00622000
  623. DC CL2' ' @V60B9BA 00623000
  624. ESDID DC X'0001' ESD IDENTIFICATION @V60B9BA 00624000
  625. ESDNAME DC CL8' ' NAME OF THE ESD @V60B9BA 00625000
  626. DC F'0' ESD TYPE AND ADDRESS @V60B9BA 00626000
  627. DC C' ' BLANK @V60B9BA 00627000
  628. ESDMODLN DC AL3(0) MODULE LENGTH @V60B9BA 00628000
  629. DC CL40' ' BLANK OUT REST OF CARD @V60B9BA 00629000
  630. ESDSEQNO DC CL8' ' CARD SEQUENCE NUMBER @V60B9BA 00630000
  631. SPACE 00631000
  632. ENDCARD DS 0D FORMAT FOR END CARD @V60B9BA 00632000
  633. DC X'02' 12-2-9 PUNCH @V60B9BA 00633000
  634. DC CL4'END ' NAME OF CARD @V60B9BA 00634000
  635. DC XL3'000000' ENTRY POINT ADDRESS @V60B9BA 00635000
  636. DC CL6' ' BLANKS @V60B9BA 00636000
  637. DC XL2'0001' ESD IDENTIFICATION @V60B9BA 00637000
  638. DC CL17' ' BLANKS @V60B9BA 00638000
  639. DC CL10'GENIMAGE ' UTILITY NAME @V60B9BA 00639000
  640. DC CL2'01' VERSION @V60B9BA 00640000
  641. DC CL2'00' LEVEL @V60B9BA 00641000
  642. DC CL25' ' BLANKS @V60B9BA 00642000
  643. ENDSEQNO DC CL8' ' SEQUENCE NUMBER OF CARD @V60B9BA 00643000
  644. SPACE 00644000
  645. TXTCARD DS 0D FORMAT FOR TXT CARD @V60B9BA 00645000
  646. DC X'02' 12-2-9 PUNCH @V60B9BA 00646000
  647. DC CL4'TXT ' NAME OF CARD @V60B9BA 00647000
  648. TXTRADD DC AL3(0) TXT RELATIVE ADDRESS @V60B9BA 00648000
  649. DC CL2' ' BLANKS @V60B9BA 00649000
  650. TXTCOUNT DC H'0' NUMBER OF TXT BYTES @V60B9BA 00650000
  651. DC CL2' ' BLANKS @V60B9BA 00651000
  652. TXTESDID DC H'0' ESD ID OF TEXT @V60B9BA 00652000
  653. TXTDATA DC XL56'00' TEXT @V60B9BA 00653000
  654. TXTSEQNO DC CL8' ' TXT SEQUENCE NUMBER @V60B9BA 00654000
  655. SPACE 00655000
  656. IMGCARD DS CL80 CARD FOR DUMMY IMAGELIB @V60B9BA 00656000
  657. ORG IMGCARD @V60B9BA 00657000
  658. DC C'DMSLIB',X'0002',X'00000010' JUST SO OPEN @V60B9BA 00658000
  659. * ... WON'T FAIL @V60B9BA 00659000
  660. SPACE 00660000
  661. PKDWORD DS 1D PACKED DECIMAL SEQUENCE NUMB@V60B9BA 00661000
  662. UNPKAREA DS CL8 UNPACKED SEQUENCE NUMBER @V60B9BA 00662000
  663. SEQNO DS 1F BINARY SEQUENCE NUMBER @V60B9BA 00663000
  664. SPACE 00664000
  665. FSCB1 FSCB 'GENIMAGE CMSUT1 A1',RECFM=F,BSIZE=80 @V60B9BA 00665000
  666. FSCB2 FSCB 'GENIMAGE CMSUT2 A1',RECFM=F,BSIZE=80,BUFFER=IMGCARD 00666000
  667. EJECT 00667000
  668. BLDNTRY DSECT , BLDL ENTRY FORMAT @V60B9BA 00668000
  669. BLDLGTH DS 1F ENTRY LENGTH @V60B9BA 00669000
  670. BLDNAME DS CL8 MEMBER NAME @V60B9BA 00670000
  671. DS XL14 @V60B9BA 00671000
  672. BLDATTR DS X ATTRIBUTE BYTE @V60B9BA 00672000
  673. BLD1REC EQU X'01' 1 RECORD MEMBER @V60B9BA 00673000
  674. SPACE 2 00674000
  675. IEBIBLKS DSECT , IEBIMAGE WORK AREA @V60B9BA 00675000
  676. ORG IEBIBLKS+X'42' BLDL ENTRY FOR IEBIMAGE @V60B9BA 00676000
  677. BNAME DS CL8 BLDL NAME TO STOW @V60B9BA 00677000
  678. ORG IEBIBLKS+X'8BC' PLACE TO PUT THE MODULE @V60B9BA 00678000
  679. LIBBUF DS CL8192 MODULE AREA @V60B9BA 00679000
  680. ORG LIBBUF @V60B9BA 00680000
  681. MODNAME DS CL4 NAME OF MODULE @V60B9BA 00681000
  682. MODRSVD DS 1H RESERVED @V60B9BA 00682000
  683. MODCNT DS 1H BYTES IN BODY OF MODULE @V60B9BA 00683000
  684. SPACE 2 00684000
  685. DECB DSECT , DECB FOR BSAM @V60B9BA 00685000
  686. DS 2F NOT USED HERE @V60B9BA 00686000
  687. DECDCBAD DS 1A POINTER TO THE DCB @V60B9BA 00687000
  688. DECAREA DS 1A POINTER TO USER DATA AREA @V60B9BA 00688000
  689. SPACE 2 00689000
  690. DEB DSECT , DATA EXTENT BLOCK @V60B9BA 00690000
  691. DS 16X NOT USED HERE @V60B9BA 00691000
  692. DEBNMEXT DS 1X NUMBER OF EXTENTS @V60B9BA 00692000
  693. SPACE 00693000
  694. DCB DSECT , DATA CONTROL BLOCK @V60B9BA 00694000
  695. DS XL40 NOT USED HERE @V60B9BA 00695000
  696. DCBDDNAM DS CL8 DDNAME (BEFORE OPEN) @V60B9BA 00696000
  697. ORG DCBDDNAM @V60B9BA 00697000
  698. DS CL3 NOT USED HERE @V60B9BA 00698000
  699. DCBMACR2 DS 1X MACRF FLAGS 2 (AFTER OPEN) @V60B9BA 00699000
  700. DCBOPWRT EQU X'20' WRITE OPERATION @V60B9BA 00700000
  701. DCBDEBAD DS 1A ADDRESS OF DEB(AFTER OPEN) @V60B9BA 00701000
  702. SPACE 3 00702000
  703. COPY EQU @V60B9BA 00703000
  704. COPY DEVTYPES @V60B9BA 00704000
  705. NUCON , @V60B9BA 00705000
  706. SVCSAVE , @V60B9BA 00706000
  707. END DMKIMGBG 00707000