Table of Contents

DMSCLS Source

References

Source Listing

DMSCLS.ASSEMBLE.txt
  1. CLS TITLE 'DMSCLS (CMS) VM/370 - RELEASE 6' 00001000
  2. SPACE 2 00002000
  3. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00003000
  4. *. * 00004000
  5. * MODULE NAME: * 00005000
  6. * DMSCLS * 00006000
  7. * * 00007000
  8. * FUNCTION: * 00008000
  9. * DMSCLS CLOSES CMS/DOS FILES ASSOCIATED WITH THE * 00009000
  10. * FOLLOWING DTFS - DTFCN, DTFCD, DTFPR, DTFMT, DTFDI, * 00010000
  11. * DTFCP AND DTFSD. THE CLOSE OPERATION DEPENDS ON * 00011000
  12. * BOTH DTF TYPE AND DEVICE TYPE AS DETERMINED FROM THE * 00012000
  13. * PUB ASSIGNMENT. ONCE THE DTF TABLE HAS BEEN IDENTIFIED * 00013000
  14. * AS CLOSED, A 'CP CLOSE' IS PERFORMED IN THE CASE OF * 00014000
  15. * READER, PRINTER, AND PUNCH. IF A DISK FILE IS BEING * 00015000
  16. * CLOSED, A 'FINIS FN FT FM' IS PERFORMED. IF A DISK * 00016000
  17. * WORKFILE IS BEING CLOSED AND DELETFL=NO IS NOT * 00017000
  18. * SPECIFIED, THE WORKFILE IS ERASED (DMSERS). * 00018000
  19. * * 00019000
  20. * ATTRIBUTES: * 00020000
  21. * DISCONTIGUOUS SHARED SEGMENT * 00021000
  22. * REENTRANT * 00022000
  23. * * 00023000
  24. * ENTRY POINTS: * 00024000
  25. * DMSCLS * 00025000
  26. * * 00026000
  27. * ENTRY CONDITIONS: * 00027000
  28. * DMSCLS IS INVOKED BY MEANS OF THE CLOSE OR CLOSER * 00028000
  29. * MACRO EXPANSION OR IN RESPONSE TO AN SVC 2 (FETCH FOR * 00029000
  30. * $$BCLOSE) BEING ISSUED BY A PROBLEM PROGRAM. * 00030000
  31. * * 00031000
  32. * EXAMPLE: * 00032000
  33. * CLOSE DTF1,DTF2,DTF3 * 00033000
  34. * + CNOP 0,4 * 00034000
  35. * + DC 0F'0' * 00035000
  36. * + LA 1,=C'$$BCLOSE' * 00036000
  37. * +IJJC0002 BAL 0,*+4+4*(2-1) * 00037000
  38. * + DC A(DTF1) * 00038000
  39. * + DC A(DTF2) * 00039000
  40. * + DC A(DTF3) * 00040000
  41. * + SVC 2 * 00041000
  42. * * 00042000
  43. * THE CLOSE ROUTINE IS INVOKED BY MEANS OF AN SVC 2. * 00043000
  44. * SVC 2 IS A FETCH FOR THE ROUTINE POINTED TO BY R1 AS * 00044000
  45. * A RESULT OF THE MACRO EXPANSION...IN THIS CASE * 00045000
  46. * $$BCLOSE. UPON ENTRY TO DMSCLS, R0 POINTS TO THE * 00046000
  47. * FIRST DTF OR ACB ADCON IN THE MACRO EXPANSION. * 00047000
  48. * * 00048000
  49. * EXIT CONDITIONS: * 00049000
  50. * * 00050000
  51. * NORMAL RETURN = 0 * 00051000
  52. * * 00052000
  53. * NORMAL EXITS: * 00053000
  54. * SVC 11 - RETURN TO PROBLEM PROGRAM AFTER CLOSE IS * 00054000
  55. * COMPLETE. * 00055000
  56. * * 00056000
  57. * SVC 2 - FETCH FOR $$BCVSAM TO CLOSE ANY ACBS. THIS * 00057000
  58. * WILL BE FOLLOWED BY A RETURN TO DMSCLS AND AN EVENTUAL * 00058000
  59. * RETURN TO THE PROBLEM PROGRAM VIA AN SVC 11. * 00059000
  60. * * 00060000
  61. * ABNORMAL EXITS: * 00061000
  62. * R15 = 24 * 00062000
  63. * R15 = 36 * 00063000
  64. * R15 = 100 * 00064000
  65. * R15 = 40 * 00065000
  66. * IN EACH OF ABOVE SITUATIONS, ROUTINE IS * 00066000
  67. * CANCELLED WITH AN SVC 6. * 00067000
  68. * * 00068000
  69. * ERROR MESSAGES ISSUED BY THIS ROUTINE: * 00069000
  70. * * 00070000
  71. * DMSCLS088E UNSUPPORTED DTF TYPE 'DTF TYPE' * 00071000
  72. * * 00072000
  73. * EXPLANATION: ATTEMPT TO OPEN * 00073000
  74. * UNSUPPORTED DTF TYPE . * 00074000
  75. * * 00075000
  76. * SYSTEM ACTION: RC = 24 * 00076000
  77. * THE SESSION IS CANCELLED. * 00077000
  78. * * 00078000
  79. * USER ACTION: USE A SUPPORTED DTF * 00079000
  80. * IN THE USER PROGRAM AND RESTART THE * 00080000
  81. * SESSION. * 00081000
  82. * * 00082000
  83. * DMSCLS113S 'TAPN (CUU)' NOT ATTACHED * 00083000
  84. * * 00084000
  85. * EXPLANATION: THE TAPE HAS NOT BEEN * 00085000
  86. * MOUNTED AND/OR THE DEVICE IS NOT * 00086000
  87. * READY. * 00087000
  88. * * 00088000
  89. * SYSTEM ACTION: RC = 100 * 00089000
  90. * THE SESSION IS CANCELLED * 00090000
  91. * * 00091000
  92. * USER ACTION: ATTACH THE TAPE TO * 00092000
  93. * THE USER'S VIRTUAL MACHINE AND RE- * 00093000
  94. * START THE SESSION. * 00094000
  95. * * 00095000
  96. * DMSCLS058E END-OF-FILE OR END-OF-TAPE ON 'TAPN'* 00096000
  97. * * 00097000
  98. * EXPLANATION: END OF FILE OR END * 00098000
  99. * OF TAPE HAS BEEN ENCOUNTERED WHILE * 00099000
  100. * PERFORMING TAPE I/O OPERATIONS. * 00100000
  101. * * 00101000
  102. * SYSTEM ACTION: RC = 40 * 00102000
  103. * THE SESSION IS CANCELLED. * 00103000
  104. * * 00104000
  105. * USER ACTION: REWIND AND REPOSITION * 00105000
  106. * THE TAPE AND RESTART THE SESSION. * 00106000
  107. * * 00107000
  108. * DMSCLS043E TAPN IS FILE PROTECTED. * 00108000
  109. * * 00109000
  110. * EXPLANATION: TAPN WHERE N= 1, 2, 3,* 00110000
  111. * 4 IS FILE PROTECTED. * 00111000
  112. * * 00112000
  113. * SYSTEM ACTION: RC = 36 * 00113000
  114. * THE SESSION IS CANCELLED. * 00114000
  115. * * 00115000
  116. * USER ACTION: VERIFY THAT THE * 00116000
  117. * CORRECT TAPE HAS BEEN SELECTED, * 00117000
  118. * CORRECT THE FILE PROTECT SITUATION * 00118000
  119. * AND RESTART THE SESSION. * 00119000
  120. * * 00120000
  121. * DMSCLS089E CLOSE ERROR CODE 'NN' ON * 00121000
  122. * FN/SYSXXX/TAPN * 00122000
  123. * * 00123000
  124. * EXPLANATION: THIS MESSAGE WILL BE * 00124000
  125. * ISSUED FOR MANY OF THE CLOSE ERROR * 00125000
  126. * MESSAGES. A UNIQUE ERROR CODE IN * 00126000
  127. * THE MESSAGE WILL IDENTIFY THE ERROR * 00127000
  128. * SITUATION. * 00128000
  129. * * 00129000
  130. * * 00130000
  131. * SYSTEM ACTION: * 00131000
  132. * * 00132000
  133. * RC = 1 * 00133000
  134. * SYSXXX VALUE IN DOSCB DOES NOT * 00134000
  135. * MATCH THE VALUE IN THE DTF. * 00135000
  136. * * 00136000
  137. * RC = 3 * 00137000
  138. * ATTEMPTING TO CLOSE A SEQUENTIAL * 00138000
  139. * DISK FILE BUT NO DOSCB EXISTS WITH * 00139000
  140. * THE DOSCB DDNAME EQUAL TO THE DTF * 00140000
  141. * FILENAME. CMS/DOS REQUIRES A USER * 00141000
  142. * ISSUED DLBL FOR ALL SEQUENTIAL DISK * 00142000
  143. * INPUT AND OUTPUT FILES. * 00143000
  144. * * 00144000
  145. * * 00145000
  146. * RC = 4 * 00146000
  147. * ATTEMPT TO CLOSE DTFCD/DTFPR WITH * 00147000
  148. * ASSOCFLE/FUNC PARAMETERS SPECIFIED * 00148000
  149. * ON DTF MACRO. THESE PARAMETERS ARE * 00149000
  150. * NOT SUPPORTED. * 00150000
  151. * * 00151000
  152. * RC = 7 * 00152000
  153. * THE PUB DEVICE TYPE CODE IS IN- * 00153000
  154. * COMPATIBLE WITH THE DEVICE TYPES * 00154000
  155. * SUPPORTED BY THE DTF BEING CLOSED. * 00155000
  156. * * 00156000
  157. * RC = 8 * 00157000
  158. * SYSTEM OR PROGRAMMER LOGICAL UNIT * 00158000
  159. * IS UNASSIGNED (PUB POINTER IN LUB * 00159000
  160. * EQUALS X'FF'). * 00160000
  161. * * 00161000
  162. * RC = 11 * 00162000
  163. * ASCII=YES SPECIFIED ON THE DTFMT/ * 00163000
  164. * DTFCP MACRO. THIS PARAMETER IS NOT * 00164000
  165. * SUPPORTED. * 00165000
  166. * * 00166000
  167. * RC = 17 * 00167000
  168. * UNEXPECTED TAPE ERROR ENCOUNTERED * 00168000
  169. * WHEN PERFORMING TAPE IO OPERATION. * 00169000
  170. * * 00170000
  171. * THE SESSION IS CANCELLED IN ALL THE * 00171000
  172. * ABOVE SITUATIONS. RC = 36 * 00172000
  173. * * 00173000
  174. * USER ACTION: CORRECT THE INDIVIDUAL* 00174000
  175. * SITUATION AND RESTART THE SESSION. * 00175000
  176. * * 00176000
  177. * CALLS TO OTHER ROUTINES: * 00177000
  178. * DMSTIO - SVC 202 * 00178000
  179. * DMSFNS - FINIS (BALR) * 00179000
  180. * DMSFREB - DMSFREE FOR FREE STORAGE * 00180000
  181. * 'CP CLOSE' TO CLOSE READER, PRINTER AND PUNCH FILES. * 00181000
  182. * DMSXCP - SVC 0 TO PERFORM IO * 00182000
  183. * DMSERR - ERROR MESSAGES * 00183000
  184. * DMSERS - TO ERASE DISK WORKFILES. * 00184000
  185. * * 00185000
  186. * EXTERNAL REFERENCES: * 00186000
  187. * NUCON, DOSAVE, BGCOM, MAPPUB, DOSCB, REGEQU * 00187000
  188. * * 00188000
  189. * CALLED BY: * 00189000
  190. * INVOKED IN RESPONSE TO SVC 2 (FETCH FOR $$BCLOSE). * 00190000
  191. * THE SVC 2 CAN RESULT FROM TWO SITUATIONS: * 00191000
  192. * 1. SVC 2 GENERATED AS PART OF * 00192000
  193. * CLOSE/CLOSER MACRO EXPANSION * 00193000
  194. * WHERE R1 POINTS TO THE NAME OF * 00194000
  195. * A FILE TO BE FETCHED ($$BCLOSE).* 00195000
  196. * * 00196000
  197. * 2. SVC 2 ISSUED IN USER PROGRAM * 00197000
  198. * AND R1 POINTS TO THE NAME OF A * 00198000
  199. * FILE TO BE FETCHED ($$BCLOSE). * 00199000
  200. * * 00200000
  201. * TABLES AND WORK AREAS: * 00201000
  202. * SYSTAB - TABLE CONTAINING A 4 BYTE ENTRY FOR EACH * 00202000
  203. * SYSTEM LOGICAL UNIT. (IE: CL4'RDR', CL4'IPT',* 00203000
  204. * ETC.) THIS TABLE IS USED TO CONVERT THE TWO- * 00204000
  205. * BYTE LOGICAL UNIT IN THE DTF TO THE MORE * 00205000
  206. * RECOGNIZED FORM OF 'SYSXXX'. * 00206000
  207. * * 00207000
  208. * PROCTAB - A TABLE CONTAINING A SERIES OF ADCONS WHICH * 00208000
  209. * POINT TO A LIST OF ROUTINE ADDRESSES TO BE * 00209000
  210. * GIVEN CONTROL IN A GIVEN SITUATION . * 00210000
  211. * PROCTAB EQU * * 00211000
  212. * DC A(PROC7) O/P, NOREW * 00212000
  213. * EXAMPLE: DC A(PROC3) I/P, NOREW * 00213000
  214. * DC A(PROC6) O/P, REW * 00214000
  215. * DC A(PROC1) I/P, REW * 00215000
  216. * * 00216000
  217. * PROC7 DC A(TMWRITE) WRITE TM * 00217000
  218. * DC A(EXIT) EXIT PHASE * 00218000
  219. * * 00219000
  220. * FREE - 31 DOUBLEWORDS OF FREE STORAGE USED FOR * 00220000
  221. * SWITCHES, ADDRESSES, PLISTS AND WORKAREAS * 00221000
  222. * WHICH WILL BE MODIFIES AT SOME POINT DURING THE * 00222000
  223. * PROGRAM. (DMSCLS IS REENTRANT) * 00223000
  224. * * 00224000
  225. * REGISTER USAGE: * 00225000
  226. * * 00226000
  227. * R0 - AT DMSCLS ENTRY R0 POINTS TO THE LIST OF ADCONS * 00227000
  228. * GENERATED BY THE CLOSE MACRO. EACH ADCON IS AN * 00228000
  229. * ADDRESS OF A DTF OR ACB TO BE CLOSED BY THE * 00229000
  230. * PROGRAM. * 00230000
  231. * R1 - PLIST POINTER AND WORKING REGISTER * 00231000
  232. * R2 - DTF POINTER * 00232000
  233. * R3 - WORKING REGISTER * 00233000
  234. * R4 - WORKING REGISTER * 00234000
  235. * R5 - PUB POINTER/WORKING REGISTER * 00235000
  236. * R6 - BAL REGISTER * 00236000
  237. * R7 - WORKING REGISTER * 00237000
  238. * R8 - WORKING REGISTER * 00238000
  239. * R9 - FREE STORAGE POINTER * 00239000
  240. * R10 - BGCOM POINTER * 00240000
  241. * R11 - BASE REGISTER 2 * 00241000
  242. * R12 - BASE REGISTER 1 * 00242000
  243. * R13 - WORKING REGISTER * 00243000
  244. * R14 - WORKING REGISTER * 00244000
  245. * R15 - RETURN CODES * 00245000
  246. * * 00246000
  247. * OPERATION: * 00247000
  248. * * 00248000
  249. * DMSCLS IS THE SIMULATED CLOSE ROUTINE USED BY THE * 00249000
  250. * CMS/DOS SUPPORT TO CLOSE SUPPORTED DTF TYPES. DMSCLS * 00250000
  251. * IS USED INSTEAD OF THE MANY $$B-TRANSIENTS * 00251000
  252. * USED BY DOS/VS. * 00252000
  253. * * 00253000
  254. * DMSCLS PERFORMS THE FOLLOWING MAJOR ACTIVITIES: * 00254000
  255. * * 00255000
  256. * 1. DMSCLS OBTAINS ITS WORK AREA FROM FREE STORAGE. * 00256000
  257. * * 00257000
  258. * 2. THE PROGRAM THEN SCANS THE LIST OF DTF/ACB FILES * 00258000
  259. * TO BE CLOSED. UPON ENCOUNTERING AN ACB, CONTROL * 00259000
  260. * IS PASSED TO THE VSAM CLOSE ROUTINE ($$BCVSAM) * 00260000
  261. * TO CLOSE THE SPECIFIED ACB. * 00261000
  262. * * 00262000
  263. * 3. ONCE THIS IS ACCOMPLISHED, THE DTF TYPE IS EXAMINED* 00263000
  264. * AND CONTROL IS PASSED TO A ROUTINE WHICH CLOSES * 00264000
  265. * THAT PARTICULAR DTF TYPE. * 00265000
  266. * * 00266000
  267. * OPEN IGNORE BIT POSTED - NO ACTION. * 00267000
  268. * * 00268000
  269. * UNIT RECORD EQUIPMENT - (DTF TYPES X'02', X '04', * 00269000
  270. * X'08') RESET OPEN INDICATOR IN DTF. * 00270000
  271. * * 00271000
  272. * TAPE WORKFILE (DTF TYPE X'10') - * 00272000
  273. * IF NOREWIND IS SPECIFIED, THE TAPE IS NOT REWOUND. * 00273000
  274. * IF REWIND/UNLOAD IS SPECIFIED, THE TAPE * 00274000
  275. * IS REWOUND AND UNLOADED. IF A WRITE COMMAND IS * 00275000
  276. * FOUND IN THE DTF, A TAPE MARK IS WRITTEN. * 00276000
  277. * * 00277000
  278. * TAPE DATA FILES (DTF TYPES X'11', X'12', X'14') * 00278000
  279. * IF OUTPUT FILE, AND BLOCKED RECORDS, RETURN CONTROL* 00279000
  280. * TO TRUNCS ROUTINE IN LOGIC MODULE VIA SVC 8. * 00280000
  281. * IF OUTPUT FILE, AND UNBLOCKED RECORDS A TAPE MARK * 00281000
  282. * IS WRITTEN. IF REWIND/UNLOAD IS INDICATED, * 00282000
  283. * THIS ACTION IS TAKEN AND THE DTF IS POSTED CLOSED. * 00283000
  284. * IF A TAPE DATA INPUT FILE, AND NO USASI * 00284000
  285. * COBOL CLOSE, THE NORMAL REWIND/UNLOAD IS * 00285000
  286. * DONE IF SPECIFIED. IF TAPE DATA INPUT FILE, * 00286000
  287. * AND USASI COBOL CLOSE IS SPECIFIED, AND * 00287000
  288. * NONSTANDARD LABEL TAPE, EXIT IS MADE TO USER * 00288000
  289. * LABEL ROUTINE IF SPECIFIED. IN OTHER INPUT CASES, * 00289000
  290. * THE TAPE IS REWOUND/UNLOADED AS SPECIFIED. * 00290000
  291. * * 00291000
  292. * DISK FILES (DTFSD/DTFCP/DTFDI) * 00292000
  293. * IN THE CASE OF OUTPUT FILES, AN EXIT IS MADE TO * 00293000
  294. * THE LOGIC MODULE TO WRITE THE LAST RECORD IF * 00294000
  295. * REQUIRED. OTHERWISE, FIELDS ARE INITIALIZED TO * 00295000
  296. * CLOSE STATUS IN THE DTF AND A CALL IS MADE * 00296000
  297. * TO FINIS TO CLOSE THE DISK FILE. IN THE CASE * 00297000
  298. * OF A DISK WORKFILE WHEN DELETFL=NO HAS NOT * 00298000
  299. * BEEN SPECIFIED ON THE DTF MACRO, A CALL IS MADE * 00299000
  300. * TO DMSERS TO ERASE THE WORKFILE. * 00300000
  301. * * 00301000
  302. * IN THE CASE OF DTFCP SYSTEM TAPE FILES, * 00302000
  303. * NO REWIND OR UNLOAD IS PERFORMED. THIS IS NECESSARY* 00303000
  304. * FOR COMPILER FILES. * 00304000
  305. * * 00305000
  306. * * 00306000
  307. * 4. AFTER EACH DTF TABLE IS INITIALIZED PER THE CLOSE * 00307000
  308. * RULES, A CHECK IS MADE TO SEE IF MORE DTFS REMAIN * 00308000
  309. * TO BE CLOSED. IF SO, PROCESSING CONTINUES AS OUT- * 00309000
  310. * LINED ABOVE IN (3). * 00310000
  311. * * 00311000
  312. * 5. WHEN ALL FILES HAVE BEEN CLOSED, EXIT IS MADE BY * 00312000
  313. * AN SVC 11 TO THE PROBLEM PROGRAM ASSUMING THERE * 00313000
  314. * WERE NO ACBS TO CLOSE. IF ACBS REMAIN TO BE * 00314000
  315. * CLOSED, AN SVC 2 IS ISSUED FOR $$BCVSAM. CONTROL * 00315000
  316. * RETURNS TO DMSBOP AND EXIT IS MADE VIA AND SVC 11. * 00316000
  317. * * 00317000
  318. * 6. WHEN ERRORS ARE ENCOUNTERED, AN APPROPRIATE ERROR * 00318000
  319. * MESSAGE IS ISSUED AND EXIT IS MADE VIA AN SVC 6 * 00319000
  320. * (CANCEL - ABNORMAL TERMINATION). * 00320000
  321. *. * 00321000
  322. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00322000
  323. PUNCH 'SPB' @VA06270 00322500
  324. SPACE 2 00323000
  325. DMSCLS CSECT @V305066 00324000
  326. USING DMSCLS,R12,R11 ESTABLISH ADDRESSABILITY @V305066 00325000
  327. USING DOSSECT,R13 DOSCB ADDRESSABILITY @V305066 00326000
  328. USING NUCON,R0 NUCON ADDRESSABILITY @V305066 00327000
  329. USING FREE,R9 ADDRESSABILITY FOR FREE STORAGE @V305066 00328000
  330. USING DTFSD,R2 DTF ADDRESSABILITY @V305066 00329000
  331. USING PUBADR,R5 PUB ADDRESSABILITY @V305066 00330000
  332. USING BGCOM,R10 PART.COMREG ADDRESSABILITY @V305066 00331000
  333. DC CL8'$$BCLOSE' @V305066 00332000
  334. BALR R12,0 ESTABLISH OWN ADDRESSABILITY @V305066 00333000
  335. USING *,R12,R11 ADDRESSABILITY @V305066 00334000
  336. LA R11,4095(R12) ESTABLISH SECOND BASE REGISTER @V305066 00335000
  337. LA R11,1(,R11) @V305066 00336000
  338. L R10,ASYSREF BGCOM ADDRESS @V305066 00337000
  339. LR R2,R0 PTR TO FIRST DTF/ACB ADCON @V305066 00338000
  340. LA R0,FREEDB GET NO. DOUBLE WORDS FREE STOR @V305101 00339000
  341. DMSFREE DWORDS=(0),TYPE=NUCLEUS,TYPCALL=BALR @V305066 00340000
  342. LR R9,R1 ADDRESS OF FREE STORAGE @V305066 00341000
  343. XC FREE(FREELN),FREE ZERO OUT ACQUIRED AREA @V305101 00342000
  344. MVI DDNAME,BLANK PROPAGATE BLANKS THROUGH @V305066 00343000
  345. MVC DDNAME+1(L'DDNAME-1),DDNAME PROPAGATE BLANKS @V305066 00344000
  346. ST R2,SAVEPTR SAVE PTR FOR FIRST DTF/ACB ADCON @V305066 00345000
  347. MVC CCWS(L'CCWS),CCW MOVE 1 CCW TO FREE STORAGE @V305066 00346000
  348. LA R8,BUFFER PREPARE TO RELOCATE CCWS @V305066 00347000
  349. STCM R8,SEVEN,CCWS+1 PLACE BUFFER ADDRESS IN CCW @VM03102 00348000
  350. B GOAHEAD GO START CHECKING LIST @V305101 00349000
  351. EJECT 00350000
  352. CHMOR CLI TYPESD,TWENTY DTFSD? @V305066 00351000
  353. BE GETDOSCB GO GET DOSCB @V305066 00352000
  354. MVZ ZONE,PUBDEVT MOVE PUB DEV CODE ZONE TO TEMP @V305066 00353000
  355. CLI ZONE,CON CONSOLE? @V305066 00354000
  356. BE ENDUP YES, NO CLOSE @V305066 00355000
  357. CLI ZONE,TAPE TAPE? @V305066 00356000
  358. BE ENDUP YES, NO CLOSE @V305066 00357000
  359. CLI ZONE,TEN READER? @V305066 00358000
  360. BE RDRCLOSE YES, CLOSE READER @V305066 00359000
  361. CLI ZONE,TWENTY PUNCH? @V305066 00360000
  362. BE PCHCLOSE YES, CLOSE PUNCH @V305066 00361000
  363. CLI ZONE,PRINTER PRINTER? @V305066 00362000
  364. BE PRTCLOSE YES, CLOSE PRINTER @V305066 00363000
  365. * MUST BE DTFCP/DTFDI DISK FILE 00364000
  366. GETDOSCB L R13,DOSFIRST ADDRESS FIRST DOSCB @V305066 00365000
  367. TEST LTR R13,R13 ANY DOSCBS ON CHAIN? @V305066 00366000
  368. BNZ COMPDD YES, SEE IF MATCH @V305066 00367000
  369. LA R15,THREE NO DOSCB FOR DISK FILE @V305066 00368000
  370. MVC DDNAME(SEVEN),FILESD FILE NAME FOR ERROR MSG @VM03102 00369000
  371. B BADCLOSE BR TO PRINT ERROR MSG @V305066 00370000
  372. COMPDD CLC DOSDD(SEVEN),FILESD MATCH? @VM03102 00371000
  373. BE SYMUNIT YES, CHECK SYSXXX @V305066 00372000
  374. L R13,DOSNEXT GET NEXT DOSCB ADDRESS @V305066 00373000
  375. LA R13,0(,R13) ZERO HIGH ORDER BYTE @V305066 00374000
  376. B TEST REPEAT TEST @V305066 00375000
  377. SYMUNIT CLC DOSYSXXX,UNITSD MATCHING SYSXXX @V305066 00376000
  378. BE CLOSDSK YES, MATCHING DOSCB @V305066 00377000
  379. LA R15,ONE ERROR CODE = 1 @V305066 00378000
  380. MVC DDNAME(SEVEN),FILESD FILE NAME FOR MSG @VM03102 00379000
  381. B BADCLOSE BR TO PRINT ERROR MSG @V305066 00380000
  382. CLOSDSK MVC FUNC(EIGHTEEN),DOSDSNAM FN, FT, FM @VM03102 00381000
  383. LA R1,PLIST GET FINIS PLIST FOR DISK @V305066 00382000
  384. L R15,AFINIS GET DMSFNS ADDRESS @V305066 00383000
  385. BALR R14,R15 BRANCH TO FINIS @V305066 00384000
  386. TM SDFLAG1,SDWORK DTFSD WORKFILE? @V305066 00385000
  387. BNO ENDUP NO, CONTINUE @V305066 00386000
  388. * CHECK FOR RESERVED CMS FILETYPE- IF FOUND DO NOT ERASE @VA04538 00386100
  389. * FILE IS REQUIRED AT EXECUTION TIME @VA04538 00386200
  390. CLC DOSDSTYP,=CL8'SYMDMP' RESERVED WORKFILE? @VA04538 00386300
  391. BE ENDUP AH SO- SKIP ERASE CALL @VA04538 00386400
  392. TM SDFLAG1,DEL DELETFL=NO SPECIFIED? @V305066 00387000
  393. BO ENDUP YES, DO NOT ERASE WORKFILE @V305066 00388000
  394. MVC PLIST,ERASE PREPARE ERASE PLIST @V305066 00389000
  395. L R15,AERASE ADDRESS OF DMSERS @V305066 00390000
  396. BALR R14,R15 BR TO DMSERS @V305066 00391000
  397. ENDUP L R2,SAVEPTR PTR TO CURRENT ADCON @V305066 00392000
  398. LA R2,FOUR(,R2) POINT TO NEXT ADCON @VM03102 00393000
  399. CLI 0(R2),HEX00 ANY MORE FILES TO CLOSE? @V305066 00394000
  400. BNE FINALE NO, ALL FILES ARE OPEN @V305101 00395000
  401. ST R2,SAVEPTR SAVE CURRENT ADCON PTR @V305066 00396000
  402. L R2,0(,R2) GET NEXT DTF ADDRESS @V305066 00397000
  403. B ISITACB VERIFY DTF TYPE ON NEXT FILE @V305066 00398000
  404. RDRCLOSE MVC DEVID(EIGHT),CREADER READER @VM03102 00399000
  405. CLOSEIT MVC PLIST(SIXTEEN),CLOSE MOVE 'CP CLOSE' TO PLIST @VM03102 00400000
  406. MVC BUFFLEN(EIGHT),FENCE IND END OF PLIST @VM03102 00401000
  407. LA R1,PLIST POINT TO PLIST @V305066 00402000
  408. SVC SVC202 ISSUE IO @VM03102 00403000
  409. DC AL4(ENDUP) NO-OP @V305066 00404000
  410. B ENDUP SEE IF MORE FILES TO CLOSE @V305066 00405000
  411. PCHCLOSE MVC DEVID(EIGHT),CPUNCH PUNCH @VM03102 00406000
  412. B CLOSEIT CLOSE FILE @V305066 00407000
  413. PRTCLOSE MVC DEVID(EIGHT),CPRINT PRINTER @VM03102 00408000
  414. B CLOSEIT GO CLOSE FILE @V305066 00409000
  415. GOAHEAD L R2,SAVEPTR RESTORE PTR TO FIRST ADCON @V305066 00410000
  416. L R2,0(,R2) DTF OR ACB ADDRESS @V305066 00411000
  417. ISITACB CLI TYPESD,ACB IS IT ACB? @V305066 00412000
  418. BE VSAMCHEK YES, PROCESS THIS ACB NOW.. @V305101 00413000
  419. TM SDFLAG0,TWENTY WAS OPEN IGNORED? @V305066 00414000
  420. BO ENDUP SEE IF MORE FILES TO CLOSE @V305066 00415000
  421. CLI TYPESD,TWENTY SEQ DASD? @V305066 00416000
  422. BL BCLOS2 DTF TYPES LESS THAN X'20' @V305066 00417000
  423. BE BOSDC1 SEQ DASD @V305066 00418000
  424. CLI TYPESD,CP DTFCD? @V305066 00419000
  425. BE CP32 YES @V305066 00420000
  426. CLI TYPESD,DI DTFDI? @V305066 00421000
  427. BE CP32 DTFDI TREATED AS DTFCP @V305066 00422000
  428. BL BCLOS2 ANY REMAINING IE: X'31' DTFCP @V305066 00423000
  429. B ERR88E UNSUPPORTED DTF TYPE @V305066 00424000
  430. EJECT 00425000
  431. CP32 TM SDFLAG0,TWO ASCII SPECIFIED? @V305066 00426000
  432. BNO CPNEXT NO, CONTINUE @V305066 00427000
  433. LA R15,ELEVEN RC = 11 @V305066 00428000
  434. MVC DDNAME(SEVEN),FILESD FILENAME TO DDNAME @VM03102 00429000
  435. B BADCLOSE BR TO PRINT MSG @V305066 00430000
  436. USING DTFCP,R2 @V305066 00431000
  437. CPNEXT TM CPDEVTY,TWENTY DTFCP/DTFDI DISK FILE? @V305066 00432000
  438. USING DTFSD,R2 @V305066 00433000
  439. BO BOSDC1 CLOSE SAME AS FOR SEQ DISK @V305066 00434000
  440. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00435000
  441. * ROUTINE FOR ALL DTF TYPES EXCEPT DTFSD, AND DTFCP/DTFDI FOR * 00436000
  442. * DISK FILES. * 00437000
  443. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00438000
  444. SPACE 2 00439000
  445. BCLOS2 EQU * @V305066 00440000
  446. BAL R6,GETLUB GET LUB ENTRY @V305066 00441000
  447. CLI 0(R3),IGN LOGICAL UNIT ASSIGNED X'FE' @V305066 00442000
  448. BE CHKRDR SEE IF DTFCD READER FILE @V305066 00443000
  449. BH ASGNERR LOG UNIT IS UNASSIGNED @V305066 00444000
  450. BAL R6,GETPUB GET CORRESPONDING PUB ENTRY @V305066 00445000
  451. CLI TYPESD,TWO DTFCD READER ? @V305066 00446000
  452. BL ERR88E IF TYPE LESS, ERROR @V305066 00447000
  453. BE UNITRCD1 DTFCD - READER @V305066 00448000
  454. CLI TYPESD,HEX4 DTFCD PUNCH? @V305066 00449000
  455. BL CHMOR DTFCN @V305066 00450000
  456. BE UNITRCD2 DTFCD - PUNCH @V305066 00451000
  457. CLI TYPESD,HEX8 DTFPR? @V305066 00452000
  458. BE UNITRCD3 DTFPR - PRINTER @V305066 00453000
  459. CLI TYPESD,TEN TAPE WORKFILE? @V305066 00454000
  460. BE BCMT06 BRANCH IF TAPE WORKFILE @V305066 00455000
  461. CLI TYPESD,HEX11 NOLAB/NONSTD TAPE? @V305066 00456000
  462. BE BCLOS3 BRANCH IF TAPE DATA FILE @V305066 00457000
  463. CLI TYPESD,HEX12 STANDARD LABEL TAPE? @V305066 00458000
  464. BE BCLOS3 YES @V305066 00459000
  465. CLI TYPESD,HEX14 STANDARD LABEL TAPE? @V305066 00460000
  466. BE BCLOS3 YES @V305066 00461000
  467. CLI TYPESD,HEX31 IF LOWER THAN X'31' INVALID @V305066 00462000
  468. BL ERR88E IF LOW, INVALID TYPE @V305066 00463000
  469. CLI TYPESD,CP DTFCP FILE? @V305066 00464000
  470. BL CP31A DTFCP TYPE X'31' @V305066 00465000
  471. BE CP32A DTFCP TYPE X'32' @V305066 00466000
  472. CLI TYPESD,DI DTFDI? @V305066 00467000
  473. BNE ERR88E INVALID TYPE @V305066 00468000
  474. EJECT 00469000
  475. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00470000
  476. * ROUTINE FOR DTFDI - DTF TYPE = X'33' * 00471000
  477. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00472000
  478. SPACE 2 00473000
  479. USING DTFCP,R2 @V305066 00474000
  480. TM CPDEVTY,HEX18 IS IT PRINTER OR PUNCH @V305066 00475000
  481. BZ CP32A PUNCH @V305066 00476000
  482. TM CPDEVTY,HEX8 IS IT PRINTER? @V305066 00477000
  483. BZ TAPLST NO, TAKE BRANCH @V305066 00478000
  484. MVI SUBONE,HEX01 NO-OP BRANCH @V305066 00479000
  485. TAPLST BAL R6,SUBONE1 PRINTER, SUBTRACT 1 FROM BUFFER @V305066 00480000
  486. MVC ALTERIO(THREE),CPCCWOB IS SWAP NEEDED? @VM03102 00481000
  487. BNE CP32A NO @V305066 00482000
  488. MVC ALTERIO(THREE),CPCCWIB SWAP @VM03102 00483000
  489. BAL R6,SUBONE1 SUBTRACT ONE FROM BUFFER @V305066 00484000
  490. B CP32A BR TO PROCESS AS DTFCP @V305066 00485000
  491. SUBONE1 CLI SUBONE,HEX01 CONTINUE OR BRANCH @V305066 00486000
  492. BE NEXTINST KEEP GOING @V305066 00487000
  493. BR R6 RETURN FROM SUBROUTINE @V305066 00488000
  494. NEXTINST L R4,CPFLAG5 LOAD ALT IOAREA ADDRESS @V305066 00489000
  495. BCTR R4,0 SUBTRACT ONE @V305066 00490000
  496. ST R4,CPFLAG5 RESTORE UPD IOAREA ADDRESS IN DTF@V305066 00491000
  497. BR R6 RETURN FROM SUBROUTINE @V305066 00492000
  498. SPACE 5 00493000
  499. CHKRDR CLI TYPECP,TWO DTFCD? @V305066 00494000
  500. BNE ENDUP NO, SEE IF MORE FILES TO CLOSE @V305066 00495000
  501. USING DTFUNIT,R2 @V305066 00496000
  502. NI SWITCH,HEX7F RESET OPEN INDICATOR @V305066 00497000
  503. B ENDUP ANY MORE FILES TO CLOSE ? @V305066 00498000
  504. EJECT 00499000
  505. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00500000
  506. * UNIT RECORD CLOSE - DTF TYPES X'02', X'03', X'04', AND X'08' * 00501000
  507. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00502000
  508. SPACE 2 00503000
  509. USING DTFUNIT,R2 @V305066 00504000
  510. UNITRCD1 TM SWITCH,TEN 3525 READER ? @V305066 00505000
  511. BZ CHK3525 NO @V305066 00506000
  512. TM SWITCH3,HEX07 FUNC/ASSOC SPECIFIED? @V305066 00507000
  513. BZ CHK3525 NO @V305066 00508000
  514. ERR4 BAL R6,CVTUNIT CONVERT LOGICAL UNIT @V305066 00509000
  515. LA R15,FOUR ERROR CODE = 04 @V305066 00510000
  516. B BADCLOSE GO TO PRINT MSG @V305066 00511000
  517. UNITRCD2 TM DEVCODE,HEX4 3525 PUNCH? @V305066 00512000
  518. BZ CHK3525 NO @V305066 00513000
  519. TM SWITCH3,HEX07 FUNC/ASSOC SPECIFIED? @V305066 00514000
  520. BZ CHK3525 NO @V305066 00515000
  521. B ERR4 ERROR @V305066 00516000
  522. UNITRCD3 TM SWITCH3,TEN 3525 PRINTER @V305066 00517000
  523. BZ CHK3525 NO @V305066 00518000
  524. TM SWITCH3,HEX07 FUNC/ASSOC SPECIFIED? @V305066 00519000
  525. BZ CHK3525 NO @V305066 00520000
  526. B ERR4 ERROR @V305066 00521000
  527. CHK3525 NI SWITCH,HEX7F RESET FILE OPEN IND. @V305066 00522000
  528. CLI PUBDEVT,HEX23 3525 PUNCH? @V305066 00523000
  529. BE CHKFILE YES @V305066 00524000
  530. B CHMOR ANY MORE FILES TO CLOSE ? @V305066 00525000
  531. CHKFILE CLI DTFTYPE,HEX8 PRINTER? @V305066 00526000
  532. BE FEEDCARD YES @V305066 00527000
  533. CLI DTFTYPE,HEX4 DTF PUNCH FILE? @V305066 00528000
  534. BE PUNCH YES @V305066 00529000
  535. B CHMOR MORE FILES TO CLOSE ? @V305066 00530000
  536. PUNCH NI SWITCH3,HEXEF TURN OFF SEQ BIT (PUNCH) @V305066 00531000
  537. B CHMOR ANY MORE FILE TO CLOSE ? @V305066 00532000
  538. FEEDCARD LR R1,R2 USER CCB ADDRESS @V305066 00533000
  539. MVC ADSAVE(FOUR),CCWADDR SAVE CCW ADDRESS @VM03102 00534000
  540. LA R4,CCWS GET ADDR OF BLANK CCW @V305066 00535000
  541. ST R4,CCWADDR STORE IN DTF @V305066 00536000
  542. FEED SVC SVC0 PERFORM IO @V305066 00537000
  543. MVC CCWADDR(FOUR),ADSAVE RESTORE CCW ADDR IN CCB @VM03102 00538000
  544. MVI CCWS,HEX01 RESTORE PUNCH COMMAND @V305066 00539000
  545. B CHMOR ANY MORE FILES TO CLOSE ? @V305066 00540000
  546. EJECT 00541000
  547. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00542000
  548. * PUNCH CLOSE ROUTINE * 00543000
  549. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00544000
  550. SPACE 2 00545000
  551. BCLOSP EQU * PUNCH CLOSE ROUTINE CLOSP @V305066 00546000
  552. USING DTFCP,R2 @V305066 00547000
  553. OI CPSTAT,DE POST AT DEVICE END @VM03103 00548000
  554. CLI PUBDEVT,PCH2540 2540 PUNCH @V305066 00549000
  555. BE CP2540 YES @V305066 00550000
  556. CLI PUBDEVT,PCH2520 2520 PUNCH @V305066 00551000
  557. BE CP2540 PROCESS AS 2540 @V305066 00552000
  558. B CHMOR ANY MORE FILES TO CLOSE ? @V305066 00553000
  559. CP2540 EQU * @V305066 00554000
  560. USING TAPERES,R2 @V305066 00555000
  561. CLI CPTYPE1,CP DTFCP DISK @V305066 00556000
  562. BNL DISK3 YES @V305066 00557000
  563. LA R7,CPCCW0 RESTORE ORIGINAL CCW ADD TO CCB @V305066 00558000
  564. B CONT3 IN TAPE DTFCP TABLE @V305066 00559000
  565. USING DTFCP,R2 @V305066 00560000
  566. DISK3 LA R7,CCWORIG RESTORE ORIG CCW AD TO DISK CCB @V305066 00561000
  567. CONT3 ST R7,CPCCW1 IN DISK DTFCP @V305066 00562000
  568. TM CPDEVTY,PCH PUNCH? @V305066 00563000
  569. BZ CHMOR NO, ANY MORE TO CLOSE ? @V305066 00564000
  570. L R7,CPFLAG5 LOAD ADD IOAREA @V305066 00565000
  571. BCTR R7,0 RESET TO ORIG LOCATION @V305066 00566000
  572. ST R7,CPFLAG5 RESTORE IN DTF @V305066 00567000
  573. L R7,CCWORIG LOAD ADD IOAREA @V305066 00568000
  574. BCTR R7,0 RESET TO ORIGINAL LOC @V305066 00569000
  575. ST R7,CCWORIG RESTORE IN DTF @V305066 00570000
  576. L R7,CCWORIG+4 LOC RECORD COUNT @V305066 00571000
  577. AH R7,K1 ADD ONE @V305066 00572000
  578. ST R7,CCWORIG+4 RESTORE TO DTF @V305066 00573000
  579. B CHMOR CHECK IF ANY MORE FILES TO CLOSE @VM03105 00574000
  580. EJECT 00575000
  581. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00576000
  582. * TAPE CLOSE ROUTINE * 00577000
  583. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00578000
  584. SPACE 2 00579000
  585. BCLOS3 EQU * TAPE CLOSE ROUTINE @V305066 00580000
  586. USING DTFMT,R2 ESTABLISH ADDRESSABILIY @V305066 00581000
  587. TM MTFLAG4,TAPEPH DTFPH FOR TAPE? @V305066 00582000
  588. BO ERR88E DTFPH NOT SUPPORTED @V305066 00583000
  589. NI MTFLAG1,HEX7F TURN OFF 1ST TIME SW @V305066 00584000
  590. TM MTFLAG1,TAPIP TAPE INPUT FILE @V305066 00585000
  591. BZ TESTBLK BR IF NOT I/P FILE @V305066 00586000
  592. CLI MTDIR,FORMAT TEST FOR VAR RECFM @VM03103 00587000
  593. BL VARIBL BR IF VAR BLOCK LENGTH @V305066 00588000
  594. SPACE 2 00589000
  595. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00590000
  596. * TAPE IS FIXBLK AND PROCESSING IS IN FORWARD DIRECTION. * 00591000
  597. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00592000
  598. SPACE 2 00593000
  599. XC DBLOCK1(FOUR),DBLOCK1 ZERO DBL 1 @VM03102 00594000
  600. XC DBLOCK3(FOUR),DBLOCK3 ZERO DBL 3 @VM03102 00595000
  601. B BCMT05 SEE IF I/P OR O/P @V305066 00596000
  602. VARIBL TM MTDIR,RECFMVAR TEST FOR VARIABLE RECFM @V305066 00597000
  603. BZ BCMT05 SEE IF I/P OR O/P @V305066 00598000
  604. XC DBLOCK3(EIGHT),DBLOCK3 ZERO DBL3 AND DBL4 @VM03102 00599000
  605. XC DBLOCK6(FOUR),DBLOCK6 ZERO DBL6 @VM03102 00600000
  606. B BCMT05 YES @V305066 00601000
  607. TESTBLK TM MTFLAG1,MTBLOCK BLOCKED RECORDS @V305066 00602000
  608. BZ BCMT05 NO @V305066 00603000
  609. LR R1,R2 DTF ADD FOR TRUNCS ROUTINE @V305066 00604000
  610. L R15,MTFLAG0 ADD OF LOGIC MODULE @V305066 00605000
  611. LA R14,DEC20(R15) TRANSFER ADD TO TRUNC ROUTINE @VM03102 00606000
  612. OI MTFLAG1,HEX01 SET INDICATOR @V305066 00607000
  613. SVC SVC8 TEMP. RETURN TO PROB. PROG. @V305066 00608000
  614. NI MTFLAG1,HEXFE RESET INDICATOR @V305066 00609000
  615. SPACE 2 00610000
  616. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00611000
  617. * ROUTINE TO CLOSE TAPE DATA FILES * 00612000
  618. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00613000
  619. SPACE 2 00614000
  620. BCMT05 EQU * @V305066 00615000
  621. MVZ ZONE(ONE),PUBDEVT DEVICE TYPE MUST BE TAPE @VM03102 00616000
  622. CLI ZONE,TAPE TAPE? @V305066 00617000
  623. BE CHKTCR CHK FOR TP CART READER @V305066 00618000
  624. ERR3 BAL R6,CVTUNIT CONVERT LOGICAL UNIT @V305066 00619000
  625. LA R15,SEVEN PUB DEV NOT COMPATIBLE @V305066 00620000
  626. B BADCLOSE BR TO PRINT ERROR MSG @V305066 00621000
  627. CHKTCR CLI PUBDEVT,TCR TAPE CARTRIDGE READER? @V305066 00622000
  628. BE ERR3 ERROR IF TCR @V305066 00623000
  629. BAL R6,CRPLIST CREATE TAPEIO PLIST @V305066 00624000
  630. TM MTFLAG4,OPENIND FILE OPEN? @V305066 00625000
  631. BC 14,IOCCPART NO @V305066 00626000
  632. TM MTFLAG4,FILETYPE INPUT FILE? @V305066 00627000
  633. BC 14,IOCCOUTF NO, BRANCH TO O/P ROUTINE @V305066 00628000
  634. TESTREW TM MTFLAG3,NOREWIND NOREWIND ENTRY? @V305066 00629000
  635. BO IOCCEFSW YES, SKIP @V305066 00630000
  636. B IOCCREWX BRANCH TO REWIND @V305066 00631000
  637. IOCCOUTF MVC FUNC,WTM WTM @V305066 00632000
  638. BAL R6,IOROUT PERFORM IO @V305066 00633000
  639. IOCCWRIT MVC FUNC,WTM WRITE TAPE MARK @V305066 00634000
  640. BAL R6,IOROUT PERFORM IO @V305066 00635000
  641. TM MTFLAG3,NOREWIND NOREWIND SPECIFIED? @V305066 00636000
  642. BO IOCCBKSP NO REWIND SPECIFIED @V305066 00637000
  643. IOCCREWX TM MTFLAG3,REWUNL REWIND/UNLOAD ? @V305066 00638000
  644. BC 14,IOCCRWTP NO @V305066 00639000
  645. MVC FUNC,RUN REW/UNLOAD @V305066 00640000
  646. BAL R6,IOROUT PERFORM IO @V305066 00641000
  647. B IOCCEFSW BR TO SET CLOSE INDICATORS @V305066 00642000
  648. IOCCRWTP MVC FUNC,REW REWIND @V305066 00643000
  649. BAL R6,IOROUT PERFORM IO @V305066 00644000
  650. IOCCEFSW XI MTFLAG4,OPENIND SET FILE STATUS TO CLOSE @V305066 00645000
  651. IOCCPART XC BLOCKCNT(FOUR),BLOCKCNT RESET BLOCK COUNT BUCKET@VM03102 00646000
  652. NI MTFLAG1,HEX7F TURN OFF LOGIC SWITCH @V305066 00647000
  653. B CHMOR ANY MORE FILES TO CLOSE ? @V305066 00648000
  654. IOCCBKSP MVC FUNC,BSR BKSP TAPE OPCODE TO CCW @V305066 00649000
  655. LA R8,IOCCEFSW GO HERE IF TM ON NEXT IO @V305066 00650000
  656. BAL R6,IO PERFORM IO REQUEST @V305066 00651000
  657. B IOCCEFSW @V305066 00652000
  658. SPACE 2 00653000
  659. IO LA R1,PLIST POINT TO TAPIO PLIST @V305066 00654000
  660. SVC SVC202 ISSUE IO REQUEST @VM03102 00655000
  661. DC AL4(TAPEMARK) ERROR ADDRESS @V305066 00656000
  662. BR R6 RETURN TO MAIN LINE @V305066 00657000
  663. TAPEMARK CH R15,K2 TM ENCOUNTERED? @V305066 00658000
  664. BCR 8,R8 RETURN TO RIGHT ADDRESS @V305066 00659000
  665. B BADTAPIO OTHERWISE TAPE ERROR @V305066 00660000
  666. EJECT 00661000
  667. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00662000
  668. * TAPE I/O ROUTINE * 00663000
  669. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00664000
  670. SPACE 2 00665000
  671. IOROUT EQU * @V305066 00666000
  672. LA R1,PLIST PREPARE FOR TAPEIO REQUEST @V305066 00667000
  673. SVC SVC202 ISSUE SVC @VM03102 00668000
  674. DC AL4(BADTAPIO) ERROR ADDRESS @V305066 00669000
  675. BR R6 @V305066 00670000
  676. BADTAPIO EQU * @VA03457 00670200
  677. CH R15,K8 WLR LONG? @VA03457 00670400
  678. BNL ERRLONG TELL THEM @VA03457 00670600
  679. CH R15,K5 TAPE NOT ATTACHED? @VA03457 00671100
  680. BE ERR113SB YES, ERROR @V305066 00672000
  681. BH ERR43E TAPE FILE PROTECTED @V305066 00673000
  682. CH R15,K2 EOF OR END OF TAPE? @V305066 00674000
  683. BE ERR58E YES, ERROR @V305066 00675000
  684. ERRLONG LA R15,SEVTEEN UNEXPECTED TAPE ERROR @VA03457 00676100
  685. MVC DDNAME(FOUR),DEVID MVE DEVID FOR ERROR MSG @VM03102 00677000
  686. B BADCLOSE ERROR @V305066 00678000
  687. EJECT 00679000
  688. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00680000
  689. * TAPE WORKFILE CLOSE * 00681000
  690. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00682000
  691. SPACE 2 00683000
  692. BCMT06 EQU * @V305066 00684000
  693. MVZ ZONE,PUBDEVT DEVICE TYPE MUST BE TAPE @V305066 00685000
  694. CLI ZONE,TAPE TAPE? @V305066 00686000
  695. BNE ERR3 IF NOT , ERROR @V305066 00687000
  696. CLI PUBDEVT,TCR TAPE CARTRIDGE READER? @V305066 00688000
  697. BE ERR3 ERROR IF TCR @V305066 00689000
  698. BAL R6,CRPLIST CREATE TAPEIO PLIST @V305066 00690000
  699. TM MTFLAG1,WRITE TEST DTF FOR WRITE COMMAND @V305066 00691000
  700. BZ REWINDT IF NO, BR TO REWIND TEST @V305066 00692000
  701. MVC FUNC,WTM WTM REQUEST @V305066 00693000
  702. BAL R6,IOROUT TO WRITE A TAPE MARK @V305066 00694000
  703. REWINDT TM MTFLAG1,WKNORWD NOREWIND SPECIFIED (WORK) @V305066 00695000
  704. BO EXITCLOS YES @V305066 00696000
  705. TM MTFLAG1,WORKRUN IS REWIND/UNLOAD SPECIFIED? @V305066 00697000
  706. BZ REWIND IF NOT BR TO REWIND @V305066 00698000
  707. MVC FUNC,RUN MOVE REW/UNLOAD OPCODE @V305066 00699000
  708. BAL R6,IOROUT PERFORM IO @V305066 00700000
  709. B EXITCLOS @V305066 00701000
  710. REWIND MVC FUNC,REW REWIND TAPE @V305066 00702000
  711. BAL R6,IOROUT PERFORM IO @V305066 00703000
  712. EXITCLOS XC BLOCKCNT(FOUR),BLOCKCNT ZERO BLOCK COUNT BUCKET @VM03102 00704000
  713. B CHMOR ANY MORE FILES TO CLOSE @V305066 00705000
  714. EJECT 00706000
  715. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00707000
  716. * DTFCP/DTFDI CLOSE ROUTINE * 00708000
  717. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00709000
  718. SPACE 2 00710000
  719. USING DTFCP,R2 @V305066 00711000
  720. CP31A TM CPSYSPCH,PCH2520 2540/2520 PUNCH FILE @V305066 00712000
  721. BO BCLOSP CALL PUNCH CLOSE TRANSIENT @V305066 00713000
  722. MVZ ZONE(ONE),PUBDEVT PUB DEVICE TYPE @VM03102 00714000
  723. CLI ZONE,TAPE TAPE? @V305066 00715000
  724. BNE CHMOR NO, NO CLOSE PROCESSING @V305066 00716000
  725. CLI PUBDEVT,TCR TAPE CARTRIDGE READER? @V305066 00717000
  726. BE ERR3 ERROR @V305066 00718000
  727. LSTPCH CLC DTFCP+6(TWO),SYSLST SYSLST LOG UNIT? @VM03102 00719000
  728. BE WTMBSR YES, WTM AND BSR @V305066 00720000
  729. CLC DTFCP+6(TWO),SYSPCH SYSPCH LOG UNIT? @VM03102 00721000
  730. BE WTMBSR YES, WTM AND BSR @V305066 00722000
  731. B CHMOR OTHERWISE NO CLOSE PROCESSING @V305066 00723000
  732. SPACE 2 00724000
  733. WTMBSR BAL R6,CRPLIST CREATE TAPIO PLIST @V305066 00725000
  734. MVC FUNC,SENSE PREPARE TO DO SENSE @V305066 00726000
  735. BAL R6,IOROUT PERFORM IO @V305066 00727000
  736. TM BUFFER+1,LOADPT TAPE AT LOADPT @V305066 00728000
  737. MVC FUNC,WTM PREPARE TO WRITE TM @V305066 00729000
  738. BC 8,BACKSP NO, WRITE TM AND BSR @V305066 00730000
  739. BAL R6,IOROUT PERFORM WTM @V305066 00731000
  740. B CHMOR END CLOSE PROCESSING @V305066 00732000
  741. BACKSP BAL R6,IOROUT ISSUE IO REQUEST @V305066 00733000
  742. MVC FUNC,BSR PREPARE TO BACK SPACE REC @V305066 00734000
  743. LA R8,CHMOR GO HERE IF TM ON NEXT IO @V305066 00735000
  744. BAL R6,IO PERFORM IO REQUEST @V305066 00736000
  745. B CHMOR END OF CLOSE PROCESSING @V305066 00737000
  746. CP32A TM CPDEVTY,TAPECP DTFCP TAPE FILE? @V305066 00738000
  747. BO CPTAPE YES, BRANCH @V305066 00739000
  748. TM CPDEVTY,DISKCP DTFCP DISK FILE? @V305066 00740000
  749. BO BOSDC1 YES, BRANCH @V305066 00741000
  750. CLI PUBDEVT,PCH3525 3525 PUNCH? @V305066 00742000
  751. BE FEEDCARD YES, BRANCH @V305066 00743000
  752. CLI CPFLAG5,PCHCP 2540 OR 2520 PUNCH DTFCP FILE? @V305066 00744000
  753. BO BCLOSP YES @V305066 00745000
  754. B CHMOR MORE FILES REMAIN TO BE OPENED? @V305066 00746000
  755. EJECT 00747000
  756. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00748000
  757. * DTFCP/DTFDI TAPE FILE CLOSE * 00749000
  758. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00750000
  759. SPACE 2 00751000
  760. CPTAPE CLI LOGUNT1,PROG SYSTEM TAPE FILE? @V305066 00752000
  761. BC 8,BCCPT1 NO, CONTINUE CLOSE PROCESSING @V305066 00753000
  762. B LSTPCH SEE IF SYSLST/SYSPCH @V305066 00754000
  763. EJECT 00755000
  764. BCCPT1 EQU * DTFCP TAPE CLOSE ROUTINE @V305066 00756000
  765. USING DTFCP,R2 ESTABLISH ADDRESSABILITY @V305066 00757000
  766. TM CPFLAG0,CPASCII ASCII SPECIFIED? @V305066 00758000
  767. BNO BCCPT1A NO, CONTINUE @V305066 00759000
  768. LA R15,ELEVEN RC = 11 @V305066 00760000
  769. MVC DDNAME(SEVEN),CPFN FILENAME @VM03102 00761000
  770. B BADCLOSE BR TO PRINT MSG @V305066 00762000
  771. BCCPT1A BAL R6,CRPLIST CREATE TAPEIO PLIST @V305066 00763000
  772. SR R3,R3 CLEAR REGISTER @VM03103 00764000
  773. TM CPFLAG1,CPREWIND REWIND OPTION SPECIFIED? @V305066 00765000
  774. BO CHKINP NO, SKIP REWIND OPTION @V305066 00766000
  775. LA R3,FOUR(,R3) ADJUST POINTER FOR REWIND @VM03102 00767000
  776. CHKINP TM CPFLAG5,CPIN INPUT FILE ? @V305066 00768000
  777. BZ PROCRUN NO, DETERMINE PROPER PROCEDURE @V305066 00769000
  778. ADJINPUT LA R3,EIGHT(,R3) ADJUST POINTER FOR IP FILE @VM03102 00770000
  779. TM CPFLAG1,CPREWIND REWIND OPTION SPECIFIED? @V305066 00771000
  780. BZ PROCRUN YES, SKIP EOF TEST @V305066 00772000
  781. MVC FUNC,READ READ @V305066 00773000
  782. LA R8,CHKEOF GO HERE IF TM ON NEXT IO @V305066 00774000
  783. BAL R6,IO PERFORM IO REQUEST @V305066 00775000
  784. CHKEOF CLC BUFFER(FOUR),EOF1 EOF1 LABEL ? @VM03102 00776000
  785. BE PROCRUN YES, DETERMINE PROPER PROCEDURE @V305066 00777000
  786. LA R3,EIGHT(,R3) NO EOF1 LABEL @VM03102 00778000
  787. MVC FUNC,BSR BACKSPACE RECORD READ @V305066 00779000
  788. LA R8,PROCRUN GO HERE IF TM ON NEXT IO @V305066 00780000
  789. BAL R6,IO PERFORM IO REQUEST @V305066 00781000
  790. PROCRUN L R3,PROCTAB(R3) PICK UP AD OF PROCEDURE LIST @V305066 00782000
  791. PROCRUN1 L R7,0(R3) AD OF FIRST ROUTINE TO CALL @V305066 00783000
  792. BAL R4,0(R7) BRANCH TO CORRECT SUBROUTINE @V305066 00784000
  793. PROCRUN2 LA R3,FOUR(,R3) AD NEXT SUBROUTINE @VM03102 00785000
  794. B PROCRUN1 BRANCH TO GET AD OF NEXT ROUTINE @V305066 00786000
  795. TREWIND MVC FUNC,REW REWIND @V305066 00787000
  796. BAL R6,IOROUT PERFORM I/O @V305066 00788000
  797. BR R4 @V305066 00789000
  798. SPACE 2 00790000
  799. BYSTDUTL MVC FUNC,READ READ REQUEST @V305066 00791000
  800. EOFSKIP MVI BUFFER,BLANK BLANK OUT @V305066 00792000
  801. MVC BUFFER+1(SEVENTY9),BUFFER IOAREA @VM03102 00793000
  802. LA R8,TRAILER GO HERE IF TM ON NEXT IO @V305066 00794000
  803. BAL R6,IO PERFORM IO REQUEST @V305066 00795000
  804. TRAILER CLC BUFFER(THREE),EOF1 EOF TRAILER @VM03102 00796000
  805. BE EOFSKIP YES, SKIP EOF, READ NEXT RECORD @V305066 00797000
  806. CLC BUFFER(THREE),UTL @VM03102 00798000
  807. BE EOFSKIP YES, SKIP UTL, READ NEXT RECORD @V305066 00799000
  808. CH R15,K2 TAPE MARK ENCOUNTERED? @V305066 00800000
  809. BNE EOFSKIP NO, READ NEXT RECORD @V305066 00801000
  810. BR R4 RETURN @V305066 00802000
  811. SPACE 2 00803000
  812. TMWRITE MVC FUNC,WTM WTM REQUEST @V305066 00804000
  813. BAL R6,IOROUT PERFORM IO @V305066 00805000
  814. BR R4 @V305066 00806000
  815. SPACE 2 00807000
  816. EXIT NI CPFLAG5,HEXFE TURN OFF LABEL SWITCH IN DTF @V305066 00808000
  817. B CHMOR ANY MORE FILES TO CLOSE ? @V305066 00809000
  818. EJECT 00810000
  819. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00811000
  820. * THE FOLLOWING ROUTINE OBTAIN THE APPROPRIATE LUB * 00812000
  821. * AND PUB ENTRIES BASED ON THE LOGICAL UNIT CODES IN THE * 00813000
  822. * DTF * 00814000
  823. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00815000
  824. SPACE 2 00816000
  825. GETLUB LH R3,NICLPT NICL ADDRESS @V305066 00817000
  826. SR R4,R4 CLEAR REGISTER R4 @V305066 00818000
  827. IC R4,0(R3) NO. SYS LOGICAL UNITS FROM NICL @V305066 00819000
  828. SR R3,R3 CLEAR REGISTER @V305066 00820000
  829. IC R3,LOGUNT2 LOG UNIT CLASS FROM DTF @V305066 00821000
  830. TM LOGUNT1,PROG PROG LOG. UNIT? @V305066 00822000
  831. BNO DOUBLE NO, MUST BE SYSTEM UNIT @V305066 00823000
  832. AR R3,R4 INCREM BY NO SYSTEM LUBS @V305066 00824000
  833. DOUBLE AR R3,R3 DOUBLE VALUE IN R3 @V305066 00825000
  834. AH R3,LUBPT ADD LUB TABLE ADDRESS @V305066 00826000
  835. BR R6 RETURN TO MAINLINE @V305066 00827000
  836. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00828000
  837. * AT THIS TIME R5 POINTS TO PUB INDEX CODE IN LUB * 00829000
  838. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00830000
  839. SPACE 2 00831000
  840. GETPUB LH R4,PUBPT PUB ADDRESS @V305066 00832000
  841. SR R5,R5 CLEAR REGISTER @V305066 00833000
  842. IC R5,0(R3) CONTAINS PUB INDEX CODE @VM03103 00834000
  843. SLL R5,3 MULTIPLY BY LENGTH OF PUB @V305066 00835000
  844. AR R5,R4 ADD PUB ADDRESS @V305066 00836000
  845. BR R6 RETURN TO MAINLINE @V305066 00837000
  846. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00838000
  847. * AT THIS TIME R5 POINTS TO THE CORRECT PUB ENTRY * 00839000
  848. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00840000
  849. SPACE 2 00841000
  850. ASGNERR BAL R6,CVTUNIT CONVERT LOGICAL UNIT @V305066 00842000
  851. LA R15,EIGHT ERROR CODE = 08 @V305066 00843000
  852. B BADCLOSE BR TO PRINT MESSAGE @V305066 00844000
  853. EJECT 00845000
  854. USING DTFSD,R2 @V305066 00846000
  855. BOSDC1 BAL R6,GETLUB GET PUB POINTER @V305066 00847000
  856. CLI 0(R3),IGN ASSIGNED IGN? @V305066 00848000
  857. BE ENDUP YES, DO NOT PERFORM CLOSE @V305066 00849000
  858. BH ASGNERR LOGICAL UNIT IS UNASSIGNED @V305066 00850000
  859. TM SDFLAG1,OPENIND FILE BEEN OPENED? @V305066 00851000
  860. BZ UNEXOFF NO, DON'T PERFORM CLOSE @V305066 00852000
  861. CLI UNITSD,SYSFILE IS THIS A SYSTEM FILE CLOSE? @V305066 00853000
  862. BNE WORKFILE NO @V305066 00854000
  863. CLI CLASSSD,SYSLNK DETERMINE TYPE OF SYS FILE @V305066 00855000
  864. BL CLOSFIL1 BRANCH IF SYSRDR TO SYSLST @VM03104 00856000
  865. SPACE 2 00857000
  866. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00858000
  867. * NEXT A CHECK IS MADE TO SEE IF CLOSING A PRIVATE LIBRARY. * 00859000
  868. * (SYSRLB, SYSCLB, SYSSLB) * 00860000
  869. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00861000
  870. SPACE 2 00862000
  871. CLI CLASSSD,SYSRES PRIVAT LIBRARY CLOSE? @V305066 00863000
  872. BH WORKCLOS YES @V305066 00864000
  873. SPACE 2 00865000
  874. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00866000
  875. * A TEST IS MADE TO DETERMINE IF THIS IS A WORKFILE CLOSE. * 00867000
  876. * IF IT IS, INITIALIZATION IS DONE FOR THE WORKFILE LIOCS. * 00868000
  877. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00869000
  878. SPACE 2 00870000
  879. WORKFILE TM SDFLAG1,SDWORK WORKFILE CLOSE @V305066 00871000
  880. BZ CPCLOSE NO @V305066 00872000
  881. USING DTFSDW,R2 WORKFILE ADDRESSABILITY @V305066 00873000
  882. CLI WRITECCW,WRCKD NEED TO EXIT TO LOG MOD ADDRESS @V305066 00874000
  883. BNE RESET NO @V305066 00875000
  884. OI SDWFLAG1,FMCLOSE ROUT. ENTERED FROM CLOSE ROUT. @V305066 00876000
  885. OI LOGMODSW,CHECKRW SET 'CHK AFTER RD/WTE IND.' ON @V305066 00877000
  886. XC CNTLIM(TWO),CNTLIM SET 'DL' IN CNT FIELD TO 0 @VM03102 00878000
  887. LR R1,R2 DTF ADDRESS IN R1 FOR LIOCS @V305066 00879000
  888. ST R2,DTFREG STORE DTF POINTER @V305066 00880000
  889. L R14,LOGMODAD LOGIC MODULE ADDRESS @V305066 00881000
  890. LR R15,R14 LOG MOD ADD IN R15 @V305066 00882000
  891. LA R14,THIRTY6(,R14) GET LOGIC MODULE REENTRY ADDR @VM03102 00883000
  892. TM SDWFLAG1,SECOND GO TO LOG MOD FOR SEC TIME @V305066 00884000
  893. BO SVC8A YES @V305066 00885000
  894. LA R14,FOUR(,R14) LOGMOD WRITE ADDRESS @VM03102 00886000
  895. SVC8A SVC SVC8 RETURN TO LIOCS @V305066 00887000
  896. SPACE 2 00888000
  897. L R2,DTFREG REST DTF ADD AFTER RET. FM LIOCS @V305066 00889000
  898. RESET NI SDWFLAG1,HEXF6 SET LIOCS CLOSE IND TO OFF @V305066 00890000
  899. MVI SDWCAP,ZERO SET BIN. NO. TO 0 FOR WORK CLOSE @V305066 00891000
  900. MVI SRCHSDW+2,HEXFF ILLEG. SEEK IN LOW LIM @V305066 00892000
  901. MVI LOGMODSW,ZERO RESET WORKFILE SWITCHES @V305066 00893000
  902. B WORKCLOS @V305066 00894000
  903. USING DTFSD,R2 RE-EST. ADDR. FOR SEQ DISK @V305066 00895000
  904. CPCLOSE TM TYPESD,CPTYPE THIS IS A CP CLOSE @V305066 00896000
  905. BO WORKCLOS YES @V305066 00897000
  906. INPUTFLE TM SDFLAG1,INPSD INPUT FILE? @V305066 00898000
  907. BZ OUTPTFL NO @V305066 00899000
  908. TM COMSD,UPDSD IS IT AN UPDATE FILE? @V305066 00900000
  909. BZ CLOSFILE NO @V305066 00901000
  910. TM SDFLAG2,TWO HAS LAST RECORD BEEN WRITTEN ? @V305066 00902000
  911. BZ CLOSFILE YES @V305066 00903000
  912. OI COMSD,TLOSESD SW-CLOSE AFTER WRITING LST REC @V305066 00904000
  913. OI UPDATSW,LASTREC WRITING LAST RECORD @V305066 00905000
  914. SPACE 2 00906000
  915. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00907000
  916. * IF DTFSD OUTPUT FILE, EXIT IS MADE TO LIOCS CLOSE ADDRESS * 00908000
  917. * TO WRITE LAST RECORD. * 00909000
  918. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00910000
  919. SPACE 2 00911000
  920. OUTPTFL LR R1,R2 PLACE DTF ADDRESS IN R1 @V305066 00912000
  921. ST R2,DTFREG STORE DTF POINTER @V305066 00913000
  922. L R14,SDFLAG0 LOGIC MODULE ADDRESS IN R14 @V305066 00914000
  923. LR R15,R14 LOG MOD ADD IN R15 @V305066 00915000
  924. LA R14,SIXTEEN(,R14) GET CLOSE ENTRY ADDRESS @VM03102 00916000
  925. CLI UPDATSW,LASTREC WRITING LAST REC? @V305066 00917000
  926. BE SVC8B YES @V305066 00918000
  927. TM SDFLAG2,SECTIME GO TO LOGMOD SEC TIME? @V305066 00919000
  928. BZ SVC8B NO @V305066 00920000
  929. LA R14,EIGHT(,R14) LOGMOD RE-ENTRY ADDRESS @VM03102 00921000
  930. SVC8B SVC SVC8 RETURN TO LIOCS @V305066 00922000
  931. SPACE 2 00923000
  932. L R2,DTFREG RESTORE DTF ADDRESS AFTER RETURN @V305066 00924000
  933. TM SDFLAG1,INPSD INPUT FILE ? @V305066 00925000
  934. BO CLOSFILE YES @V305066 00926000
  935. WORKCLOS TM SDFLAG1,SDWORK WORK FILE CLOSE ? @V305066 00927000
  936. BO UNEXOFF UES @V305066 00928000
  937. CLOSFILE MVI SDFLAG2,ZERO RESET LIOCS DTF SW @V305066 00929000
  938. CLOSFIL1 MVI CCHHRSD+2,HEXFF SET ILLEG ADDRESS @VM03104 00930000
  939. MVI SEARCHSD+2,HEXFF SET ILLEG SEEK IN LOW LIM @V305066 00931000
  940. MVI COMSD,OFF RESET OPEN IND. SWITCH @VM03103 00932000
  941. MVI COMSD+1,ZERO RESET OPEN SW2 TO ZERO @V305066 00933000
  942. UNEXOFF NI DTFSD+4,HEXFE RESET UNIT EXCPT.IN DTF CCB @V305066 00934000
  943. MVI F1ADDR+5,ZERO RESET LABEL CREATED IND. @V305066 00935000
  944. TM SDFLAG1,OPENIND FILE OPENED? @V305066 00936000
  945. BZ ENDUP NO, SEE IF MORE FILES TO CLOSE @V305066 00937000
  946. NI SDFLAG1,HEXFB SET OPEN INDICATOR OFF @V305066 00938000
  947. B CHMOR SEE IF MORE FILES TO CLOSE @V305066 00939000
  948. EJECT 00940000
  949. *********************************************************************** 00941000
  950. * CHEK ALL VSAM ACBS FOR DLBL DEFINITIONS AND 00942000
  951. * SET UP THE NECESSARY FIELDS IN THE TRANSIENT AREA+1000 00943000
  952. *********************************************************************** 00944000
  953. USING IKQACB,R4 @V305106 00945000
  954. VSAMCHEK EQU * @V305106 00946000
  955. LR R4,R2 POINT TO ACB TO OPEN @V305101 00947000
  956. SPACE 1 00948000
  957. VSAMPREP EQU * @V305106 00949000
  958. LR R1,R9 POINTER TO FREE STORAGE @V305101 00950000
  959. L R9,SAVEPTR POINT TO LIST OF ACBS @V305101 00951000
  960. BAL R6,FREESTOR GO RELEASE FREE STORAGE @V305101 00952000
  961. TM VSAMFLG1,VIPTCLOS OS 'TCLOSE' CALL? @V305106 00953000
  962. BZ VCLOSE NO, NORMAL CLOSE @V305106 00954000
  963. LA R1,VSAMTCLS YES, CALL $$BTCLOS @V305106 00955000
  964. B VCLOSE3 CONTINUE BELOW @V305174 00956000
  965. VCLOSE EQU * @V305174 00957000
  966. ICM R3,B'1111',AVSRWORK DMSVSR ACTIVE? @V305174 00958000
  967. BZ VCLOSE2 NO, SKIP @V305174 00959000
  968. TM VSAMFLG1,VIPINIT VSR WORKING FOR OS? @V305174 00960000
  969. BZ VCLOSE2 NO, SKIP @V305174 00961000
  970. * 00962000
  971. * ASSIST AUTOMATIC CLOSE FOR OS USER 00963000
  972. * 00964000
  973. * VSAM CLOSE ROUTINE REQUIRES THAT THE ADDRESS OF IKQVSM 00965000
  974. * (DATA MGT REQUEST DRIVER) BE CONTAINED IN THE OPEN ACB- 00966000
  975. * REPLACE A(DMSVIP) TO AVOID CLOSE ERRORS. 00967000
  976. * 00968000
  977. LR R5,R9 POINT TO LIST OF ACB'S @V305174 00969000
  978. * GET ADDRESS OF VSAM DATA MGT REQUEST DRIVER 00970000
  979. L R3,AVSAMSYS POINT TO VSAM SAVED SYSTEM @V305174 00971000
  980. LA R3,FOUR(,R3) POINT TO 1ST PHASE NAME @VM03102 00972000
  981. FINDVRM CLC VDRIVER,0(R3) FOUND DRIVER ENTRY? @V305174 00973000
  982. BE STORVRM YES, GO WORK ON ACB'S @V305174 00974000
  983. CLC 0(EIGHT,R3),FENCE HIT END OF TABLE? @VM03102 00975000
  984. BE VCLOSE2 YES @V305174 00976000
  985. LA R3,TWELVE(,R3) POINT TO NEXT ENTRY @VM03102 00977000
  986. B FINDVRM AND CONTINUE @V305174 00978000
  987. STORVRM L R3,EIGHT(R3) GET ADDR OF IKQVSM IN WORK REG @VM03102 00979000
  988. STV2 L R4,0(R5) POINT TO ACB @V305174 00980000
  989. ST R3,ACBAM0 STORE VSM ADDR INTO ACB @V305174 00981000
  990. LA R5,FOUR(,R5) POINT TO NEXT ACB ADDRESS @VM03102 00982000
  991. CLI 0(R5),HEX0A END OF LIST MARKER? @V305174 00983000
  992. BNE STV2 NO, CONTINUE @V305174 00984000
  993. DROP R4 @V305174 00985000
  994. VCLOSE2 EQU * @V305174 00986000
  995. LA R1,VSAMCLSE CALL $$BCLOSE @V305174 00987000
  996. VCLOSE3 EQU * @V305174 00988000
  997. LR R0,R9 GET ACB LIST POINTER IN R0 @V305101 00989000
  998. L R4,DOSTRANS GET A(DOS TRANSIENT AREA) @V305106 00990000
  999. ST R0,LISTPNT(R4) SAVE A(ACB LIST) FOR $$BOVSAM @V305106 00991000
  1000. LH R3,PIBPT NOW GET THE USER'S PIBTAB @V305106 00992000
  1001. L R3,EIGHT(R3) AND PNT TO USER'S SAVEAREA @VM03102 00993000
  1002. LA R3,SIXTEEN(,R3) NOW PNT AT REGSAVE PART @VM03102 00994000
  1003. ST R3,REGADDR-1(R4) SAVE A(USER REG SAVEAREA) @V305106 00995000
  1004. NI VSAMFLG1,HEXFF-VIPSOP ENSURE 'OS CALL' FLAG OFF @VM03102 00996000
  1005. SVC SVC2 FETCH $$BCVSAM @VM03102 00997000
  1006. B FINALE2 WHEN WE COME BACK, GO TO FINALE2 @V305101 00998000
  1007. FINALE LR R1,R9 FREE STORAGE @V305066 00999000
  1008. BAL R6,FREESTOR RELEASE ACQUIRED FREE STORAGE@V305066 01000000
  1009. FINALE2 SR R15,R15 SET RETURN CODE TO ZERO @V305101 01001000
  1010. SVC SVC11 RETURN TO PROB. PROG @V305066 01002000
  1011. SPACE 5 01003000
  1012. SVC6 LR R1,R9 FREE STORAGE POINTER @V305066 01004000
  1013. LR R9,R15 SAVE RETURN CODE @V305066 01005000
  1014. BAL R6,FREESTOR RELEASE ACQUIRED FREE STORAGE@V305066 01006000
  1015. TM VSAMFLG1,VIPSOP WHERE WE CALLED FROM VIP ? @V305101 01007000
  1016. BZ CHKAMS NO, SEE IF AMS RUNNING... @V305101 01008000
  1017. DMSKEY RESET UNSTACK VIP'S NUCLEUS KEY, @V305101 01009000
  1018. NI VSAMFLG1,HEXFF-VIPSOP AND RESET VIPSOP FLAG. @VM03102 01010000
  1019. CHKAMS LR R15,R9 RESTORE RETURN CODE. @V305101 01011000
  1020. TM VSAMFLG1,VSAMSERV IS AMSERV RUNNING ? @V305101 01012000
  1021. BZ DOSVC6 NO, JUST ISSUE SVC 6 (CANCEL) @V305101 01013000
  1022. LA R1,ABTERM OTHERWISE CALL $$BABEND TO @V305101 01014000
  1023. SVC SVC2 GIVE CONTROL TO AMSERV STXIT. @VM03102 01015000
  1024. DOSVC6 SVC SVCSIX ISSUE CANCEL SVC @VM03102 01016000
  1025. SPACE 5 01017000
  1026. FREESTOR LA R0,FREEDB GET NUMBER DOUBLE WORDS TO FREE @V305101 01018000
  1027. DMSFRET DWORDS=(0),LOC=(1),TYPCALL=BALR @V305101 01019000
  1028. BR R6 RETURN TO MAIN LINE ROUTINE @V305066 01020000
  1029. EJECT 01021000
  1030. CRPLIST MVC PLIST(EIGHT),TAPEIO PREPARE PLIST FOR TAPEIO @VM03102 01022000
  1031. MVC DEVID(THREE),TAPEIO MOVE 'TAP' TO PLIST @VM03102 01023000
  1032. MVC DEVID+3(ONE),PUBCUU+1 SECOND DIGIT OF CUU IN PUB@VM03102 01024000
  1033. OI DEVID+3,CHARDATA CHANGE TO CHAR DATA @V305066 01025000
  1034. LA R3,BUFFER BUFFER ADDRESS @V305066 01026000
  1035. ST R3,PMODE STORE BUFFER ADDRESS IN PLIST@V305066 01027000
  1036. MVC BUFFLEN,EIGHTY BUFFER LEN = 80 @V305066 01028000
  1037. MVC PMODE,PUBTAPM1 CMS TAPE MODE TO PLIST @V305066 01029000
  1038. BR R6 @V305066 01030000
  1039. EJECT 01031000
  1040. SPACE 2 01032000
  1041. CVTUNIT SR R5,R5 CLEAR @V305066 01033000
  1042. IC R5,SEVEN(,R2) GET UNIT NUMBER @VM03102 01034000
  1043. TM SIX(R2),PROG IS IT PROGRAMMER UNIT? @VM03102 01035000
  1044. BO CNVPROG YES, BRANCH @V305066 01036000
  1045. SLL R5,TWO MULTIPLY BY 4 @VM03102 01037000
  1046. LA R5,SYSTAB(R5) INDEX TO CORRECT XXX @V305066 01038000
  1047. MVC DDNAME+3(THREE),0(R5) MOVE XXX TO AREA @VM03102 01039000
  1048. CONVERT2 MVC DDNAME(THREE),SYS MOVE THE SYS TO AREA @VM03102 01040000
  1049. BR R6 RETURN REG @V305066 01041000
  1050. CNVPROG CVD R5,DDNAME CONVERT UNIT NUMBER @V305066 01042000
  1051. UNPK DDNAME+3(THREE),DDNAME+6(TWO) CVT TO ZONED @VM03102 01043000
  1052. OI DDNAME+5,CHARDATA SET LAST ZONE @V305066 01044000
  1053. B CONVERT2 GO TO MOVE SYS TO AREA @V305066 01045000
  1054. EJECT 01046000
  1055. CVTCUU LH R5,0(R5) CUU TO REGISTER @V305066 01047000
  1056. SLL R5,4 ZERO AND SHIFT LAST 4 BITS @V305066 01048000
  1057. ST R5,DDNAME+4 STORE IN DOUBLE WORD @V305066 01049000
  1058. OI DDNAME+7,PACKED PUT IN PACKED DEC FORMAT @V305066 01050000
  1059. UNPK DDNAME(THREE),DDNAME+6(TWO) CVT CUU TO ZONE @VM03102 01051000
  1060. OI DDNAME+2,CHARDATA PRINTABLE CHARACTER @V305066 01052000
  1061. LA R5,DDNAME POINT FOR ERROR MESSAGE @V305066 01053000
  1062. BR R6 RETURN REG @VM03105 01054000
  1063. EJECT 01055000
  1064. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01056000
  1065. * ERROR MESSAGES * 01057000
  1066. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01058000
  1067. SPACE 5 01059000
  1068. BADCLOSE LA R4,BUFFER SCRATCH AREA @V305066 01060000
  1069. CVD R15,0(R4) CVT ERROR CODE TO DEC @V305066 01061000
  1070. UNPK 0(TWO,R4),SIX(TWO,R4) UNPACK @VM03102 01062000
  1071. MVC TWO(FOURTEEN,R4),ERRMSG1 SETUP ERROR MESSAGE @VM03102 01063000
  1072. OI ONE(R4),CHARDATA CVT ERROR CODE TO EBCDIC @VM03102 01064000
  1073. MVC EIGHT(SEVEN,R4),DDNAME TAPN/SYSXXX @VM03102 01065000
  1074. LR R5,R15 SAVE RETURN CODE @V305066 01066000
  1075. DMSERR MF=I,SUB=(CHARA,(R4)),NUM=89,LET=E,TEXT='CLOSE ERROR CO*01067000
  1076. DE ''..................' @V305066 01068000
  1077. LA R15,THIRTY6 RETURN CODE = 36 @V305066 01069000
  1078. CH R5,K8 UNASSIGNMENT ERROR @V305066 01070000
  1079. BNE SVC6 NO, JUST REGULAR CANCEL @V305066 01071000
  1080. LR R1,R9 FREE STORAGE POINTER @V305066 01072000
  1081. LR R9,R15 SAVE RETURN CODE @V305066 01073000
  1082. BAL R6,FREESTOR FREE ACQUIRED STORAGE @V305066 01074000
  1083. LR R15,R9 RESTORE RETURN CODE @V305066 01075000
  1084. SR R0,R0 CLEAR REGISTER 0 @V305066 01076000
  1085. IC R0,DOSVSUA @V305066 01077000
  1086. LA R1,ABTERM ROUT.TO SEE IF STXIT AB ROUTINE @V305066 01078000
  1087. SVC SVC2 @V305066 01079000
  1088. SPACE 2 01080000
  1089. ERR88E LA R4,TYPESD POINT TO DTF TYPE @V305066 01081000
  1090. DMSERR NUM=88,LET=E,SUB=(HEX4A,(R4)),TEXT='UNSUPPORTED DTF TYP*01082000
  1091. E ''..''' @V305066 01083000
  1092. LA R15,TWENTY4 RETURN CODE = 24 @V305066 01084000
  1093. B SVC6 BR TO CANCEL ROUTINE @V305066 01085000
  1094. SPACE 5 01086000
  1095. ERR113SB BAL R6,CVTCUU CONVERT CUU TO PRINTABLE @V305066 01087000
  1096. LA R6,DEVID POINT TO TAPX @V305066 01088000
  1097. DMSERR NUM=113,LET=S,SUB=(CHARA,(R6),CHARA,(R5)),TEXT='''.... *01089000
  1098. (...)'' NOT ATTACHED',MF=(E,'SYS') @V305066 01090000
  1099. LA R15,HUNDRED RETURN CODE = 100 @V305066 01091000
  1100. B SVC6 BR TO CANCEL @V305066 01092000
  1101. SPACE 5 01093000
  1102. ERR58E LA R6,DEVID POINT TO TAPN @V305066 01094000
  1103. DMSERR NUM=58,LET=E,TEXT='END-OF-FILE OR END-OF-TAPE ON ''....*01095000
  1104. ''',SUB=(CHARA,(R6)) @V305066 01096000
  1105. LA R15,FORTY RETURN CODE = 40 @V305066 01097000
  1106. B SVC6 BR TO CANCEL ROUTINE @V305066 01098000
  1107. SPACE 5 01099000
  1108. ERR43E LA R5,DEVID POINT TO TAPX @V305066 01100000
  1109. DMSERR NUM=43,LET=E,SUB=(CHARA,(R5)),TEXT='.... IS FILE PROTEC*01101000
  1110. TED' @V305066 01102000
  1111. LA R15,THIRTY6 RETURN CODE = 36 @V305066 01103000
  1112. B SVC6 BR TO CANCEL ROUTINE @V305066 01104000
  1113. EJECT 01105000
  1114. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01106000
  1115. * CONSTANTS * 01107000
  1116. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01108000
  1117. SPACE 5 01109000
  1118. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01110000
  1119. * SYSXXX CONSTANTS FOR SYSTEM LOGICAL UNITS * 01111000
  1120. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01112000
  1121. SPACE 2 01113000
  1122. SYSTAB DS 0H @V305066 01114000
  1123. DC CL4'RDR' 00 @V305066 01115000
  1124. DC CL4'IPT' 01 @V305066 01116000
  1125. DC CL4'PCH' 02 @V305066 01117000
  1126. DC CL4'LST' 03 @V305066 01118000
  1127. DC CL4'LOG' 04 @V305066 01119000
  1128. DC CL4'LNK' 05 @V305066 01120000
  1129. DC CL4'RES' 06 @V305066 01121000
  1130. DC CL4'SLB' 07 @V305066 01122000
  1131. DC CL4'RLB' 08 @V305066 01123000
  1132. DC CL4'USE' 09 @V305066 01124000
  1133. DC CL4'REC' 0A @V305066 01125000
  1134. DC CL4'CLB' 0B @V305066 01126000
  1135. DC CL4'VIS' 0C @V305066 01127000
  1136. DC CL4'CAT' 0D @V305066 01128000
  1137. EJECT 01129000
  1138. EOF1 DC C'EOF1' @V305066 01130000
  1139. UTL DC C'UTL' @V305066 01131000
  1140. EIGHTY DC F'80' @V305066 01132000
  1141. ERRMSG1 DC C''' ON '' ''' @V305066 01133000
  1142. ABTERM DC CL8'$$BABEND' @V305066 01134000
  1143. VSAMCLSE DC CL8'$$BCVSAM' @V305066 01135000
  1144. VSAMTCLS DC CL8'$$BTCLOS' THE LONG WAY FOR OS REQUEST @V305106 01136000
  1145. SPACE 5 01137000
  1146. CLOSE DC CL8'CP' COMMAND NAME @V305066 01138000
  1147. DC CL8'CLOSE' ACTION @V305066 01139000
  1148. FENCE DC 8X'FF' PLIST FENCE @V305066 01140000
  1149. SPACE 5 01141000
  1150. CREADER DC CL8'READER' @V305066 01142000
  1151. CPUNCH DC CL8'PUNCH' @V305066 01143000
  1152. CPRINT DC CL8'PRINT' @V305066 01144000
  1153. ERASE DC CL8'ERASE' @V305066 01145000
  1154. SYS DC CL3'SYS' FIRST 3 CHAR OF ALL LOG UNITS @V305066 01146000
  1155. SPACE 2 01147000
  1156. K1 DC H'1' ONE @V305066 01148000
  1157. K2 DC H'2' TAPE MARK ENCOUNTERED @V305066 01149000
  1158. K5 DC H'5' TAPE NOT ATTACHED @V305066 01150000
  1159. K8 DC H'8' DOS/VS CODE FOR UNASSIGNED @V305066 01151000
  1160. SYSLST DC H'3' SYSLST @V305066 01152000
  1161. SYSPCH DC H'2' SYSPCH @V305066 01153000
  1162. SPACE 5 01154000
  1163. TAPEIO DC CL8'TAPEIO' @V305066 01155000
  1164. REW DC CL8'REW' @V305066 01156000
  1165. RUN DC CL8'RUN' @V305066 01157000
  1166. WTM DC CL8'WTM' @V305066 01158000
  1167. READ DC CL8'READ' @V305066 01159000
  1168. BSR DC CL8'BSR' @V305066 01160000
  1169. FSF DC CL8'FSF' @V305066 01161000
  1170. SENSE DC CL8'SENSE' @V305066 01162000
  1171. SPACE 5 01163000
  1172. DC 0F'0' @V305066 01164000
  1173. CCW CCW X'01',0,X'20',1 CCW TO EJECT CARD @V305066 01165000
  1174. VDRIVER DC CL8'IKQVRM' VSAM DM REQ DRIVER PHASE NAME@V305174 01166000
  1175. EJECT 01167000
  1176. PROC1 DC A(TREWIND) REWIND TAPE @V305066 01168000
  1177. PROC2 DC A(EXIT) EXIT FROM PHASE @V305066 01169000
  1178. PROC3 DC A(BYSTDUTL) BYPASS ALL TRAILER LABELS @V305066 01170000
  1179. DC A(EXIT) EXIT FROM PHASE @V305066 01171000
  1180. SPACE 2 01172000
  1181. PROC7 DC A(TMWRITE) WRITE TM @V305066 01173000
  1182. DC A(EXIT) EXIT FROM PHASE @V305066 01174000
  1183. SPACE 2 01175000
  1184. PROC6 DC A(TMWRITE) WRITE A TM @V305066 01176000
  1185. DC A(TREWIND) REWIND @V305066 01177000
  1186. DC A(EXIT) EXIT FROM PHASE @V305066 01178000
  1187. SPACE 5 01179000
  1188. PROCTAB EQU * @V305066 01180000
  1189. DC A(PROC7) O/P FILE, NOREWIND @V305066 01181000
  1190. DC A(PROC6) O/P FILE, REWIND @V305066 01182000
  1191. DC A(PROC3) I/P FILE, NOREWIND, EOF @V305066 01183000
  1192. DC A(PROC1) I/P FILE, REWIND @V305066 01184000
  1193. DC A(PROC2) I/P FILE, NOREWIND, NOEOF @V305066 01185000
  1194. SPACE 5 01186000
  1195. EJECT 01187000
  1196. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01188000
  1197. * EQUATES * 01189000
  1198. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01190000
  1199. SPACE 5 01191000
  1200. CPTYPE EQU X'30' @V305066 01192000
  1201. TEN EQU X'10' @V305066 01193000
  1202. TWENTY EQU X'20' @V305066 01194000
  1203. TWO EQU X'02' @V305066 01195000
  1204. ONE EQU 1 @VM05066 01196000
  1205. THREE EQU 3 @VM05066 01197000
  1206. FOUR EQU 4 @VM05066 01198000
  1207. SIX EQU 6 @VM03102 01199000
  1208. SEVEN EQU 7 @VM05066 01200000
  1209. EIGHT EQU 8 @VM03102 01201000
  1210. ELEVEN EQU 11 @VM05066 01202000
  1211. TWELVE EQU 12 @VM03102 01203000
  1212. FOURTEEN EQU 14 @VM03102 01204000
  1213. SIXTEEN EQU 16 @VM03102 01205000
  1214. SEVTEEN EQU 17 @VM05066 01206000
  1215. EIGHTEEN EQU 18 @VM03102 01207000
  1216. DEC20 EQU 20 @VM03102 01208000
  1217. TWENTY4 EQU 24 @VM05066 01209000
  1218. THIRTY6 EQU 36 @VM05066 01210000
  1219. FORTY EQU 40 @VM05066 01211000
  1220. SEVENTY9 EQU 79 @VM03102 01212000
  1221. HUNDRED EQU 100 @V305066 01213000
  1222. REGADDR EQU 1181 A(USER REGSAVE AREA) FROM TRANS @V305106 01214000
  1223. LISTPNT EQU 1196 A(USER ACB LIST) FROM TRANS @V305106 01215000
  1224. HEXEF EQU X'EF' @V305066 01216000
  1225. HEXFB EQU X'FB' SET OPEN IND OFF @V305066 01217000
  1226. HEXFE EQU X'FE' @V305066 01218000
  1227. IGN EQU X'FE' @V305066 01219000
  1228. HEXFF EQU X'FF' ILLEG SEEK IN LOW LIM @V305066 01220000
  1229. CHARDATA EQU X'F0' INSURE PRINTABLE CHARACTERS @V305066 01221000
  1230. HEXF6 EQU X'F6' LIOCS CLOSE INDICATOR OFF @V305066 01222000
  1231. PACKED EQU X'0C' PACKED DECIMAL FORMAT @V305066 01223000
  1232. CON EQU X'00' @V305066 01224000
  1233. SYSFILE EQU X'00' SYSTEM FILE @V305066 01225000
  1234. ZERO EQU X'00' USED FOR TURNING OFF SWITCHES @V305066 01226000
  1235. HEX00 EQU X'00' @V305066 01227000
  1236. PROG EQU X'01' PROGRAMMER LOGICAL UNIT @V305066 01228000
  1237. LASTREC EQU X'01' WRITING LAST RECORD @V305066 01229000
  1238. HEX01 EQU X'01' @V305066 01230000
  1239. CPASCII EQU X'02' DTFCP TAPE WITH ASCII @V305066 01231000
  1240. DE EQU X'04' DEVICE END @V305066 01232000
  1241. PCH EQU X'04' PUNCH DEVICE CODE @V305066 01233000
  1242. OPENIND EQU X'04' @V305066 01234000
  1243. HEX4 EQU X'04' @V305066 01235000
  1244. HEX07 EQU X'07' @V305066 01236000
  1245. WRITE EQU X'08' TAPE WRITE COMMAND @V305066 01237000
  1246. LOADPT EQU X'08' TAPE AT LOAD POINT @V305066 01238000
  1247. PCHCP EQU X'08' 2540/2520 PUNCH @V305066 01239000
  1248. OFF EQU X'08' RESET OPEN COMMUNICATION SW @V305066 01240000
  1249. TAPIP EQU X'08' TAPE INPUT FILE @V305066 01241000
  1250. HEX8 EQU X'08' @V305066 01242000
  1251. SECOND EQU X'09' GOING TO LOG MOD FOR SEC TIME @V305066 01243000
  1252. WRCKD EQU X'1D' WRITE COUNT, KEY AND DATA CCW @V305066 01244000
  1253. TAPECP EQU X'10' DTFCP TAPE @V305066 01245000
  1254. HEX11 EQU X'11' @V305066 01246000
  1255. HEX12 EQU X'12' @V305066 01247000
  1256. HEX14 EQU X'14' @V305066 01248000
  1257. HEX18 EQU X'18' @V305066 01249000
  1258. DISKCP EQU X'20' DTFCP DISK @V305066 01250000
  1259. PCH2520 EQU X'20' 2520 PUNCH @V305066 01251000
  1260. REWUNL EQU X'20' REWIND/UNLOAD @V305066 01252000
  1261. PCH2540 EQU X'21' 2540 PUNCH @V305066 01253000
  1262. PCH3525 EQU X'23' 3525 PUNCH @V305066 01254000
  1263. HEX23 EQU X'23' @V305066 01255000
  1264. DOSVSUA EQU X'26' DOS/VS CODE FOR UNASSIGN @V305066 01256000
  1265. SECTIME EQU X'28' GOING TO LOG MOD SEC TIME @V305066 01257000
  1266. ACB EQU X'28' @V305066 01258000
  1267. HEX31 EQU X'31' @V305066 01259000
  1268. CP EQU X'32' DTFCP @V305066 01260000
  1269. DI EQU X'33' DTFDI @V305066 01261000
  1270. BLANK EQU X'40' @V305066 01262000
  1271. WORKRUN EQU X'40' REW/UNLOAD FOR TAPE WORKFILES @V305066 01263000
  1272. RECFM EQU X'40' RECFM @V305066 01264000
  1273. RECFMVAR EQU X'40' TEST FOR VARIABLE RECFM @V305066 01265000
  1274. PRINTER EQU X'40' @V305066 01266000
  1275. DEL EQU X'40' @V305066 01267000
  1276. TAPE EQU X'50' @V305066 01268000
  1277. TCR EQU X'51' TAPE CARTRIDGE READER @V305066 01269000
  1278. HEX7F EQU X'7F' @V305066 01270000
  1279. CPREWIND EQU X'80' REWIND TAPE FOR DTFCP @V305066 01271000
  1280. TAPEPH EQU X'80' DTFPH TAPE FILE @V305066 01272000
  1281. FORMAT EQU X'86' READ DIR + RECFM @V305066 01273000
  1282. HEX0A EQU X'0A' DOS END OF LIST MARKER @V305174 01274000
  1283. SVC0 EQU 0 SVC 0 @V305066 01275000
  1284. SVC2 EQU 2 SVC 2 @V305066 01276000
  1285. SYSLNK EQU 5 SYSLNK @V305066 01277000
  1286. SYSRES EQU 6 SYSRES @V305066 01278000
  1287. SVCSIX EQU 6 SVC 6 @V305066 01279000
  1288. SVC8 EQU 8 SVC 8 @V305066 01280000
  1289. SVC11 EQU 11 SVC 11 @V305066 01281000
  1290. SVC202 EQU 202 TO CALL CMS ROUTINES @VM03102 01282000
  1291. SPACE 2 01283000
  1292. EJECT 01284000
  1293. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01285000
  1294. * DSECTS 01286000
  1295. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01287000
  1296. SPACE 5 01288000
  1297. DTFUNIT DSECT @V305066 01289000
  1298. CCB DS CL6 @V305066 01290000
  1299. LOGUNT DS CL2 LOGICAL UNIT @V305066 01291000
  1300. CCWADDR DS CL4 ADDRESS OF CCW CHAIN @V305066 01292000
  1301. DS CL4 @V305066 01293000
  1302. SWITCH3 DS CL4 @V305066 01294000
  1303. DTFTYPE DS CL1 @V305066 01295000
  1304. SWITCH DS CL1 @V305066 01296000
  1305. COMCODE DS CL2 @V305066 01297000
  1306. BUFFER1 DS CL10 @V305066 01298000
  1307. LODIOREG DS CL4 @V305066 01299000
  1308. DEVCODE DS CL1 @V305066 01300000
  1309. EJECT 01301000
  1310. DTFSDW DSECT SEQUENTIAL DISK WORKFILE DSECT @V305066 01302000
  1311. DS CL6 @V305066 01303000
  1312. UNITSDW DS CL1 LOGICAL UNIT @V305066 01304000
  1313. CLASSSDW DS CL1 CLASS @V305066 01305000
  1314. DS CL4 @V305066 01306000
  1315. FCBSDW DS CL4 FCB ADDRESS @V305066 01307000
  1316. LOGMODAD DS CL4 LOGIC MODULE ADDRESS @V305066 01308000
  1317. TYPESDW DS CL1 DTF TYPE X'20' @V305066 01309000
  1318. SDWFLAG1 DS CL1 @V305066 01310000
  1319. DISKSDW EQU X'00' DISK DEVICE @V305066 01311000
  1320. SDWORKW EQU X'20' WORK FILE @V305066 01312000
  1321. POINTSDW EQU X'10' TYPE OF OPEN - POINT OR NORMAL @V305066 01313000
  1322. RESETPNT EQU X'EF' RESET POINT INDICATOR @V305066 01314000
  1323. FMCLOSE EQU X'08' ROUT. ENTERED FROM CLOSE ROUTINE @V305066 01315000
  1324. OPENSDW EQU X'04' FILE OPENED @V305066 01316000
  1325. TOCLOSE EQU X'01' REENTRY TO CLOSE ROUTINE @V305066 01317000
  1326. FILESDW DS CL7 FILENAME @V305066 01318000
  1327. DEVSDW DS CL1 DEVICE TYPE CODE @V305066 01319000
  1328. SDW2311 EQU X'00' 2311 @V305066 01320000
  1329. SDW2314 EQU X'01' 2314 0R 2319 @V305066 01321000
  1330. SDW3330 EQU X'04' 3330 @V305066 01322000
  1331. SDW3340 EQU X'08' 3340 GENERAL @V305066 01323000
  1332. SDW3340X EQU X'09' 3340 35MB @V305066 01324000
  1333. SDW3340Y EQU X'0A' 3340 70MB @V305066 01325000
  1334. SDWCAP DS CL2 TRACK CAPACITY COUNTER @V305066 01326000
  1335. DS CL4 @V305066 01327000
  1336. SDWSEQ DS CL1 EXTENT SEQUENCE NUMBER @V305066 01328000
  1337. COMSDW DS CL1 OPEN COMMUNICATIONS BYTE @V305066 01329000
  1338. EXTOPENW EQU X'04' EXTENT OPENED @V305066 01330000
  1339. LOHDSDW DS CL1 LOWER HEAD LIMIT @V305066 01331000
  1340. UPHDSDW DS CL1 UPPER HEAD LIMIT @V305066 01332000
  1341. LRECLSDW DS CL2 RECORD LENGTH @V305066 01333000
  1342. EXT1LL DS CL4 INITIAL EXTENT LOWER LIMIT @V305066 01334000
  1343. CUREXTLL DS CL4 CURRENT EXTENT LOWER LIMIT @V305066 01335000
  1344. EXTUPLIM DS CL4 EXTENT UPPER LIMIT @V305066 01336000
  1345. SEEKSDW DS CL2 SEEK ADDRESS (CCHH) @V305066 01337000
  1346. SRCHSDW DS CL4 SEARCH ADDRESS (CCHH) @V305066 01338000
  1347. RECSDW DS CL1 RECORD NUMBER @V305066 01339000
  1348. LOGMODSW DS CL1 LOGIC MODULE SWITCH @V305066 01340000
  1349. SWOFF EQU X'7F' SET WORK FILE SW OFF @V305066 01341000
  1350. CHECKRW EQU X'02' CHECK AFTER READ/WRITE @V305066 01342000
  1351. MAXREC DS CL2 MAXIMUM RECORD LENGTH @V305066 01343000
  1352. EOFSDW DS CL3 USER'S EOF ADDRESS @V305066 01344000
  1353. LOGIND DS CL1 LOGICAL INDICATORS @V305066 01345000
  1354. WRITECCW EQU DTFSDW+96 CCW @V305066 01346000
  1355. CNTLIM EQU DTFSDW+150 PART OF COUNT AREA FIELD @V305066 01347000
  1356. RECORD EQU DTFSDW+148 RECORD NUMBER IN COUNT AREA @V305066 01348000
  1357. EJECT 01349000
  1358. DTFSD DSECT SEQUENTIAL DISK DSECT @V305066 01350000
  1359. DS CL6 @V305066 01351000
  1360. UNITSD DS CL1 LOGICAL UNIT @V305066 01352000
  1361. CLASSSD DS CL1 CLASS @V305066 01353000
  1362. DS CL4 @V305066 01354000
  1363. FCB1SD DS CL4 FCB ADDRESS @V305066 01355000
  1364. SDFLAG0 DS CL1 @V305066 01356000
  1365. SPANSD EQU X'02' SPANNED PROCESSING @V305066 01357000
  1366. DS CL3 @V305066 01358000
  1367. TYPESD DS CL1 DTF TYPE = X'20' @V305066 01359000
  1368. SDFLAG1 DS CL1 @V305066 01360000
  1369. SDBLOCK EQU X'40' BLOCKED FILE @V305066 01361000
  1370. SDWORK EQU X'20' WORK FILE @V305066 01362000
  1371. WORKSD EQU X'10' WORK AREA SPECIFIED @V305066 01363000
  1372. OPENSD EQU X'04' FILE OPEN @V305066 01364000
  1373. INPSD EQU X'02' INPUT FILE @V305066 01365000
  1374. FILESD DS CL7 FILENAME @V305066 01366000
  1375. DEVSD DS CL1 DEVICE TYPE CODE @V305066 01367000
  1376. SD2311 EQU X'00' 2311 @V305066 01368000
  1377. SD2314 EQU X'01' 2314, OR 2319 @V305066 01369000
  1378. SD3330 EQU X'04' 3330 @V305066 01370000
  1379. SD3340 EQU X'08' 3340 GENERAL @V305066 01371000
  1380. SD3340X EQU X'09' 3340 35MB @V305066 01372000
  1381. SD3340Y EQU X'0A' 3340 70MB @V305066 01373000
  1382. F1ADDR DS CL8 F1ADDR @V305066 01374000
  1383. COMSD DS CL1 OPEN COMMUNICATIONS BYTE @V305066 01375000
  1384. NOEXTSD EQU X'80' NO MORE EXTENTS @V305066 01376000
  1385. EOFSD EQU X'10' EXIT TO USER'S EOF ROUTINE @V305066 01377000
  1386. TLOSESD EQU X'04' RETURN TO CLOSE ROUTINE @V305066 01378000
  1387. EXTSWSD EQU X'01' EXTENT SWITCH @V305066 01379000
  1388. UPDSD EQU X'40' UPDATE = YES @V305066 01380000
  1389. DS CL5 @V305066 01381000
  1390. SDIO1 DS CL4 ADDRESS OF IOAREA1 @V305066 01382000
  1391. DS CL4 @V305066 01383000
  1392. HHSD DS CL2 LOWER HEAD LIMIT @V305066 01384000
  1393. CCHHSD DS CL4 EXT UPPER LIMIT (CCHH) @V305066 01385000
  1394. SEEKSD DS CL2 SEEK ADDRESS (BB) @V305066 01386000
  1395. SEARCHSD DS CL4 SEARCH ARGUMENT @V305066 01387000
  1396. RECSD DS CL1 RECORD NUMBER @V305066 01388000
  1397. EODSD DS CL3 EOF ADDRESS IF INPUT @V305066 01389000
  1398. KEYDATA EQU EOFSD KEY LEN AND DATA LEN IF OUTPUT @V305066 01390000
  1399. CONSD DS CL4 CCHH CONTROL FIELD @V305066 01391000
  1400. TRK EQU CONSD+3 TRK PORTION OF CCHH CONTROL FIELD@V305066 01392000
  1401. RECTRKSD DS CL1 NO RECS PER TRK/INP @V305066 01393000
  1402. * NO RECS PER TRK MINUS ONE/OUT 01394000
  1403. SDFLAG2 DS CL1 @V305066 01395000
  1404. BLKLESS1 DS CL2 BLOCKSIZE MINUS ONE @V305066 01396000
  1405. CCHHRSD DS CL5 EXT LOWER LIMIT AND RECORD NUMBER@V305066 01397000
  1406. TRKCAPSD DS CL3 TRACK CAPACITY COUNTER IF OUTPUT @V305066 01398000
  1407. IOREGSD DS CL4 INST. TO LOAD IOREG @V305066 01399000
  1408. CURIOSD DS CL4 ADDRESS OF CURRENT I/O AREA @V305066 01400000
  1409. LRECLSD DS CL4 LOGICAL RECORD SIZE @V305066 01401000
  1410. ENDIOSD DS CL4 ADDRESS OF END OF I/O AREA @V305066 01402000
  1411. SDFLAG3 DS CL1 LOGICAL INDICATORS @V305066 01403000
  1412. IO2SD EQU X'08' 2 I/O AREAS @V305066 01404000
  1413. FIXSD EQU X'02' FIXED LENGTH RECORDS @V305066 01405000
  1414. CNTRLSD EQU X'01' CONTROL PARAMETER SPECIFIED @V305066 01406000
  1415. UNDEFOP EQU X'04' UNDEFINED O/P FILE @V305066 01407000
  1416. NOTRUNCF EQU X'04' TRUNC IS NOT SPECIFIED @V305066 01408000
  1417. DS CL35 @V305066 01409000
  1418. CCWA DS CL8 BEG. OF VARIABLE PORTION OF DTF @V305066 01410000
  1419. CCWB DS CL8 CHK CCWA & CCWB FOR TRUNCS/UPDATE@V305066 01411000
  1420. DS CL12 @V305066 01412000
  1421. FCB2SD DS CL4 VAR/UNDEF/SPAN/INP/UPD=NO FCB ADDR@V305066 01413000
  1422. DS CL8 @V305066 01414000
  1423. ORG CCWA FIXBLK,UPDATE,INP @V305066 01415000
  1424. DS CL36 FIXBLK,CONTROL,OUTPUT @V305066 01416000
  1425. FCB3SD DS CL4 FCB ADDRESS @V305066 01417000
  1426. DS CL8 @V305066 01418000
  1427. ORG CCWA FIXBLK,TRUNC,UPDATE,INP @V305066 01419000
  1428. DS CL52 VAR,OUTPUT,CONTROL @V305066 01420000
  1429. FCB4SD DS CL4 FCB ADDRESS @V305066 01421000
  1430. DS CL8 @V305066 01422000
  1431. ORG CCWA @V305066 01423000
  1432. DS CL12 FIXBLK,CONTROL,INPUT @V305066 01424000
  1433. FCB5SD DS CL4 FCB ADDRESS @V305066 01425000
  1434. DS CL8 @V305066 01426000
  1435. ORG CCWA VAR,UNDEF,INP,UPDATE @V305066 01427000
  1436. DS CL68 @V305066 01428000
  1437. FCB6SD DS CL4 FCB ADDRESS @V305066 01429000
  1438. DS CL8 @V305066 01430000
  1439. ORG CCWA UNDEF,OUTPUT,CONTROL @V305066 01431000
  1440. DS CL45 @V305066 01432000
  1441. FCB7SD DS CL4 FCB ADDRESS @V305066 01433000
  1442. DS CL8 @V305066 01434000
  1443. ORG CCWA @V305066 01435000
  1444. DS CL12 FIXBLK,INP,TRUNCS=NO,UPD=NO @V305066 01436000
  1445. FCB8SD DS CL4 CONTROL= YES FCB ADDRESS @V305066 01437000
  1446. DS CL8 @V305066 01438000
  1447. EJECT 01439000
  1448. DTFMT DSECT @V305066 01440000
  1449. DS CL6 @V305066 01441000
  1450. UNITMT DS CL1 LOGICAL UNIT @V305066 01442000
  1451. CLASSMT DS CL1 CLASS @V305066 01443000
  1452. DS CL8 @V305066 01444000
  1453. MTFLAG0 DS CL1 TAPE SWITCH @V305066 01445000
  1454. DS CL3 @V305066 01446000
  1455. TYPEMT DS CL1 DTF TYPE = X'10'-X'14' @V305066 01447000
  1456. MTFLAG1 DS CL1 @V305066 01448000
  1457. WKNORWD EQU X'80' NO REWIND SPECIFIED @V305066 01449000
  1458. MTBLOCK EQU X'40' BLOCKED FILE @V305066 01450000
  1459. MT2IO EQU X'20' 2 I/O AREAS @V305066 01451000
  1460. MTWORK EQU X'10' WORK AREA SPECIFIED @V305066 01452000
  1461. MTINP EQU X'08' INPUT FILE @V305066 01453000
  1462. MTBACK EQU X'04' BACKWARDS @V305066 01454000
  1463. MTFN DS CL8 FILENAME @V305066 01455000
  1464. MTFLAG2 DS CL1 TAPE SWITCH @V305066 01456000
  1465. DS CL1 @V305066 01457000
  1466. NOREWIND EQU X'10' NOREWIND SPECIFIED @V305066 01458000
  1467. NONSTD EQU X'40' NON-STANDARD LABEL PROCESSING @V305066 01459000
  1468. BACKWARD EQU X'08' DRIVE DIRECTION = BACKWARD @V305066 01460000
  1469. MTFLAG3 DS CL1 TAPE SWITCH @V305066 01461000
  1470. FILETYPE EQU X'20' INPUT FILE @V305066 01462000
  1471. MTOPEN EQU X'04' FILE OPEN @V305066 01463000
  1472. ENDFILE EQU X'08' END OF FILE SWITCH ON @V305066 01464000
  1473. DS CL3 @V305066 01465000
  1474. MTFLAG4 DS CL1 @V305066 01466000
  1475. DS CL3 @V305066 01467000
  1476. BLOCKCNT DS CL4 @V305066 01468000
  1477. MTDIR DS CL4 TAPE DIRECTION, FORWARD, BACKWARD@V305066 01469000
  1478. DS CL8 @V305066 01470000
  1479. MTCCW DS CL8 @V305066 01471000
  1480. DS CL4 @V305066 01472000
  1481. DBLOCK1 DS CL4 @V305066 01473000
  1482. DS CL4 @V305066 01474000
  1483. DBLOCK3 DS CL4 @V305066 01475000
  1484. DS CL4 @V305066 01476000
  1485. DS CL4 @V305066 01477000
  1486. DBLOCK6 DS CL4 DBLOCKER 6 @V305066 01478000
  1487. EJECT 01479000
  1488. DTFCP DSECT @V305066 01480000
  1489. DS CL2 @V305066 01481000
  1490. CPSTAT DS CL1 STATUS BYTE @V305066 01482000
  1491. DS CL3 @V305066 01483000
  1492. LOGUNT1 DS CL1 FIRST BYTE OF LOG. UNIT @V305066 01484000
  1493. LOGUNT2 DS CL1 SEC. BYTE OF LOG. UNIT @V305066 01485000
  1494. CPCCW1 DS CL4 CCW ADDRESS @V305066 01486000
  1495. DS CL4 @V305066 01487000
  1496. CPFLAG0 DS CL1 SWITCH @V305066 01488000
  1497. DS CL3 @V305066 01489000
  1498. TYPECP DS CL1 DTF TYPE @V305066 01490000
  1499. CPFLAG1 DS CL1 OPEN INDICATORS @V305066 01491000
  1500. CPFN DS CL7 FILENAME @V305066 01492000
  1501. CPDEV DS CL1 DEVICE TYPE CODE @V305066 01493000
  1502. CPDSK DS CL1 DISK POSSIBILE WITH THIS DTF ? @V305066 01494000
  1503. CPSYSPCH DS CL1 @V305066 01495000
  1504. DS CL1 @V305066 01496000
  1505. CPIOREG DS CL1 IOREG @V305066 01497000
  1506. DS CL3 @V305066 01498000
  1507. CPIOREG2 DS CL1 IOREG FOR DIFFERENT DTF @V305066 01499000
  1508. CPFLAG2 DS CL1 OPEN SWITCH @V305066 01500000
  1509. CPSEQC DS CL1 CURRENT EXTENT SEQ @V305066 01501000
  1510. CPSEQL DS CL1 LAST EXT SEQUENCE @V305066 01502000
  1511. CPFLAG3 DS CL1 STANDARD LABEL SWITCH @V305066 01503000
  1512. STDLAB EQU X'80' @V305066 01504000
  1513. CPDEVTY DS CL1 @V305066 01505000
  1514. CPFLAG4 DS CL1 DASD,RDR, OR OTHER @V305066 01506000
  1515. DASD EQU X'F3' DASD @V305066 01507000
  1516. RDR EQU X'F1' RDR @V305066 01508000
  1517. OTHER EQU X'F0' OTHER @V305066 01509000
  1518. CPFLAG5 DS CL1 @V305066 01510000
  1519. CPIN EQU X'80' @V305066 01511000
  1520. ALTERIO DS CL3 @V305066 01512000
  1521. CCWORIG DS CL4 @V305066 01513000
  1522. CPLOHD DS CL2 LOWER HD LIMIT @V305066 01514000
  1523. CPEXTUP DS CL4 EXT UPPER LIMIT @V305066 01515000
  1524. DS CL10 @V305066 01516000
  1525. CPBUCK DS CL4 CONTROL BUCKET CCHH @V305066 01517000
  1526. CPRECS DS CL1 NO. RECS/TRK/ FOR OUT @V305066 01518000
  1527. * NO. RECS/TRK+1 FOR INPUT 01519000
  1528. CPFLAG6 DS CL1 @V305066 01520000
  1529. CPINP EQU X'00' INPUT @V305066 01521000
  1530. CPOUT EQU X'01' OUTPUT @V305066 01522000
  1531. CPDEVID DS CL2 @V305066 01523000
  1532. CPCOUNT DS CL5 CCHHR FOR COUNT FIELD @V305066 01524000
  1533. DS CL1 @V305066 01525000
  1534. CPDATLEN DS CL2 DATALENGTH IN DTF @V305066 01526000
  1535. CPINSTR DS CL4 INST TO LOAD IOAREA ADDR TO IOREG@V305066 01527000
  1536. DS CL24 @V305066 01528000
  1537. CPCCWIA DS CL1 FIRST BYTE INPUT CCW @V305066 01529000
  1538. CPCCWIB DS CL7 CCW FOR DASD INP/CCW FOR DASD OUT@V305066 01530000
  1539. CPCCWOA DS CL1 FIRST BYTE OF OUTPUT CCW @V305066 01531000
  1540. CPCCWOB DS CL7 REST OF OUTPUT CCW @V305066 01532000
  1541. EJECT 01533000
  1542. DS 0D @V305066 01534000
  1543. TAPERES DSECT @V305066 01535000
  1544. DS CL1 @V305066 01536000
  1545. CCBSW DS CL14 @V305066 01537000
  1546. DS CL2 @V305066 01538000
  1547. LOGMOD1 DS CL3 LOGIC MODULE ADDRESS @V305066 01539000
  1548. CPTYPE1 DS CL1 DTF TYPE FOR TAPE RES X'31' @V305066 01540000
  1549. CPOPEN1 DS CL1 OPEN INDICATORS @V305066 01541000
  1550. CPFN1 DS CL7 FILENAME @V305066 01542000
  1551. DS CL1 @V305066 01543000
  1552. CPFLAG7 DS CL1 X'00' IND.TO DTFCP OPEN PHASES @V305066 01544000
  1553. CPFLAG8 DS CL1 @V305066 01545000
  1554. CPFLAG9 DS CL1 OPEN INDICATORS @V305066 01546000
  1555. IO2AD DS CL3 IOAREA2 ADDRESS @V305066 01547000
  1556. CPINST DS F INST TO LOAD IOAREA AD TO IOREG @V305066 01548000
  1557. CPCCW0 DS D CCW @V305066 01549000
  1558. * END OF TABLE IF DTF IS DEFINED AS O/P AND DEVADDR IS NOT SYSPCH 01550000
  1559. PUNCCW1 DS D 2540 PUNCH ERROR RECOVERY CCW1 @V305066 01551000
  1560. PUNCCW2 DS D 2540 PUNCH ERROR RECOVERY CCW2 @V305066 01552000
  1561. CPEOF DS CL3 EOF ADDRESS - INPUT ONLY @V305066 01553000
  1562. EJECT 01554000
  1563. FREE DSECT @V305066 01555000
  1564. DS 0D @V305066 01556000
  1565. CCWS DS D CCW TO EJECT CARD @V305066 01557000
  1566. SPACE 2 01558000
  1567. PLIST DS CL8 IO PLIST @V305066 01559000
  1568. FUNC DS CL8 @V305066 01560000
  1569. DEVID DS CL4 @V305066 01561000
  1570. PMODE DS 1X @V305066 01562000
  1571. BUFFAD DS CL3 @V305066 01563000
  1572. BUFFLEN DS CL4 @V305066 01564000
  1573. BYTES DS CL4 @V305066 01565000
  1574. SPACE 2 01566000
  1575. DDNAME DS D USED FOR MESSAGE FIELD @V305066 01567000
  1576. DTFREG DS F SAVE FOR DTF ADDRESS @V305066 01568000
  1577. SAVEPTR DS F POINTER TO DTF PARM LIST @V305066 01569000
  1578. ADSAVE DS F CCW ADDRESS @V305066 01570000
  1579. BUFFER DS 20F IO BUFFER @V305066 01571000
  1580. UPDATSW DS XL1 WRITING LAST REC SW @V305066 01572000
  1581. SUBONE DS XL1 SWITCH @V305066 01573000
  1582. ZONE DS XL1 PUB DEVICE TYPE ZONE @V305066 01574000
  1583. FREEND DS 0D @V305174 01575000
  1584. FREELN EQU (FREEND-FREE) @V305174 01576000
  1585. FREEDB EQU (FREEND-FREE)/8 @V305174 01577000
  1586. EJECT 01578000
  1587. DS 0D @V305106 01579000
  1588. IKQACB DSECT @V305106 01580000
  1589. DS XL8 ACB INFORMATION @V305174 01581000
  1590. ACBAM0 DS A POINTER TO AM/0 CODE @V305174 01582000
  1591. DS XL1 @V305174 01583000
  1592. ACBINFLG DS XL1 @V305106 01584000
  1593. ACBSTSKP EQU X'08' SKIP UPDATING STATISTICS @V305106 01585000
  1594. DS XL4 @V305106 01586000
  1595. ACBMACR1 DS BL1 MACRF INFO @V305106 01587000
  1596. ACBIN EQU X'04' DATASET OPENED FOR INPUT @V305106 01588000
  1597. ACBOUT EQU X'02' DATASET OPENED FOR OUTPUT @V305106 01589000
  1598. DS XL9 @V305106 01590000
  1599. ACBDDNM DS CL8 DDNAME @V305106 01591000
  1600. EJECT 01592000
  1601. NUCON @V305066 01593000
  1602. REGEQU @V305066 01594000
  1603. EJECT 01595000
  1604. DOSAVE @V305066 01596000
  1605. BGCOM @V305066 01597000
  1606. MAPPUB @V305066 01598000
  1607. DOSCB @V305066 01599000
  1608. DMSCLS CSECT @V305066 01600000
  1609. LTORG @V305066 01601000
  1610. END 01603000