Table of Contents

DMSBOP Source

References

Source Listing

DMSBOP.ASSEMBLE.txt
  1. BOP TITLE 'DMSBOP (CMS) VM/370 - RELEASE 6' 00001000
  2. SPACE 2 00002000
  3. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00003000
  4. *. * 00004000
  5. * MODULE NAME: * 00005000
  6. * DMSBOP * 00006000
  7. * * 00007000
  8. * FUNCTION: * 00008000
  9. * DMSBOP OPENS CMS/DOS FILES ASSOCIATED WITH THE * 00009000
  10. * FOLLOWING DTFS - DTFCN, DTFCD, DTFPR, DTFMT, DTFDI, * 00010000
  11. * DTFCP AND DTFSD. DTF TABLE INITIALIZATION IS PER- * 00011000
  12. * FORMED ACCORDING TO BOTH DTF TYPE AND DEVICE TYPE. * 00012000
  13. * ONCE THE TABLE INITIALIZATION IS COMPLETE, NORMAL I/O * 00013000
  14. * OPERATIONS CAN BE PERFORMED AGAINST THE FILE. * 00014000
  15. * * 00015000
  16. * ATTRIBUTES: * 00016000
  17. * DISCONTIGUOUS SHARED SEGMENT * 00017000
  18. * REENTRANT * 00018000
  19. * * 00019000
  20. * ENTRY POINTS: * 00020000
  21. * DMSBOP * 00021000
  22. * * 00022000
  23. * ENTRY CONDITIONS: * 00023000
  24. * DMSBOP IS INVOKED BY MEANS OF THE OPEN MACRO EXPANSION * 00024000
  25. * OR IN RESPONSE TO AN SVC 2 BEING ISSUED BY A PROBLEM * 00025000
  26. * PROGRAM. * 00026000
  27. * * 00027000
  28. * EXAMPLE: * 00028000
  29. * * 00029000
  30. * OPEN DTF1,DTF2,ACB * 00030000
  31. * + CNOP 0,4 * 00031000
  32. * + DC 0F'0' * 00032000
  33. * + LA 1,=C'$$BOPEN' * 00033000
  34. * +IJJO0001 BAL 0,*+4+4*(4-1) * 00034000
  35. * + DC A(DTF1) * 00035000
  36. * + DC A(DTF2) * 00036000
  37. * + DC A(ACB) * 00037000
  38. * + SVC 2 * 00038000
  39. * 00039000
  40. * NOTE: THE ABOVE LIST OF ADCONS WILL CONTAIN 00040000
  41. * EITHER DTFS OR ACBS BUT NOT BOTH 00041000
  42. * 00042000
  43. * * 00043000
  44. * THE OPEN ROUTINE IS INVOKED BY MEANS OF AN SVC 2. * 00044000
  45. * SVC 2 IS A FETCH FOR THE ROUTINE POINTED TO BY R1 AS * 00045000
  46. * A RESULT OF THE MACRO EXPANSION ... IN THIS CASE * 00046000
  47. * $$BOPEN. UPON ENTRY TO DMSBOP, R0 POINTS TO THE FIRST * 00047000
  48. * DTF OR ACB ADCON IN THE MACRO EXPANSION. * 00048000
  49. * * 00049000
  50. * EXIT CONDITIONS: * 00050000
  51. * * 00051000
  52. * NORMAL RETURN = 0 * 00052000
  53. * * 00053000
  54. * NORMAL EXITS: * 00054000
  55. * SVC 11 - RETURN TO PROBLEM PROGRAM AFTER OPEN IS * 00055000
  56. * COMPLETE. * 00056000
  57. * SVC 2 - FETCH $$BOVSAM TO OPEN ANY ACBS. THIS WILL BE * 00057000
  58. * FOLLOWED BY A RETURN TO DMSBOP. * 00058000
  59. * * 00059000
  60. * ABNORMAL EXITS: * 00060000
  61. * R15 = 24 * 00061000
  62. * R15 = 36 * 00062000
  63. * R15 = 40 * 00063000
  64. * R15 = 100 * 00064000
  65. * AS FOLLOWS: * 00065000
  66. * * 00066000
  67. * DMSBOP037E DISK 'MODE' IS READ/ONLY * 00067000
  68. * * 00068000
  69. * EXPLANATION: ATTEMPT TO OPEN SEQUENTIAL* 00069000
  70. * DISK FILE FOR OUTPUT BUT ADTFLG1 IN * 00070000
  71. * THE ADT INDICATES READ/ONLY DISK. * 00071000
  72. * * 00072000
  73. * SYSTEM ACTION: RC=36 * 00073000
  74. * THE SESSION IS CANCELLED. * 00074000
  75. * * 00075000
  76. * USER ACTION: INSURE THAT THE * 00076000
  77. * APPROPRIATE DISK IS BEING ASSOCIATED * 00077000
  78. * WITH THE DTF BEING OPENED AND RESTART * 00078000
  79. * THE SESSION. * 00079000
  80. * * 00080000
  81. * * 00081000
  82. * DMSBOP058E END-OF-FILE OR END-OF-TAPE ON 'TAPN' * 00082000
  83. * * 00083000
  84. * EXPLANATION: END OF FILE OR END OF TAPE* 00084000
  85. * HAS BEEN ENCOUNTERED WHILE PERFORMING * 00085000
  86. * TAPE I/O OPERATION. * 00086000
  87. * * 00087000
  88. * SYSTEM ACTION: RC = 40 * 00088000
  89. * THE SESSION IS CANCELLED. * 00089000
  90. * * 00090000
  91. * USER ACTION: REWIND AND REPOSITION THE * 00091000
  92. * TAPE AND RESTART THE SESSION. * 00092000
  93. * * 00093000
  94. * * 00094000
  95. * DMSBOP113S 'TAPN (CUU)' NOT ATTACHED * 00095000
  96. * * 00096000
  97. * EXPLANATION: THE TAPE HAS NOT BEEN * 00097000
  98. * MOUNTED AND/OR THE DEVICE IS NOT * 00098000
  99. * READY. * 00099000
  100. * * 00100000
  101. * SYSTEM ACTION: RC=100 * 00101000
  102. * THE SESSION IS CANCELLED. * 00102000
  103. * * 00103000
  104. * USER ACTION: ATTACH THE TAPE TO THE * 00104000
  105. * USER'S VIRTUAL MACHINE AND RESTART THE * 00105000
  106. * SESSION. * 00106000
  107. * * 00107000
  108. * * 00108000
  109. * DMSBOP069E DISK 'MODE' NOT ACCESSED * 00109000
  110. * * 00110000
  111. * EXPLANATION: ATTEMPT TO OPEN A * 00111000
  112. * SEQUENTIAL DISK FILE AND THE DISK * 00112000
  113. * ASSOCIATED WITH THE FILE HAS NOT BEEN * 00113000
  114. * ACCESSED. * 00114000
  115. * * 00115000
  116. * SYSTEM ACTION: RC = 36 * 00116000
  117. * THE SESSION IS CANCELLED. * 00117000
  118. * * 00118000
  119. * USER ACTION: ACCESS THE DISK AND * 00119000
  120. * RESTART THE SESSION. * 00120000
  121. * * 00121000
  122. * * 00122000
  123. * DMSBOP043E TAPN IS FILE PROTECTED * 00123000
  124. * * 00124000
  125. * EXPLANATION: TAPN WHERE N = 1,2,3,4 IS * 00125000
  126. * FILE PROTECTED. * 00126000
  127. * * 00127000
  128. * SYSTEM ACTION: RC = 36 * 00128000
  129. * THE SESSION IS CANCELLED. * 00129000
  130. * * 00130000
  131. * USER ACTION: VERIFY THAT CORRECT TAPE * 00131000
  132. * HAS BEEN SELECTED, CORRECT THE FILE * 00132000
  133. * PROTECT SITUATION AND RESTART THE * 00133000
  134. * SESSION. * 00134000
  135. * * 00135000
  136. * DMSBOP088E UNSUPPORTED DTF TYPE 'DTFTYPE' * 00136000
  137. * * 00137000
  138. * EXPLANATION: ATTEMPT TO OPEN UNSUPPORTED 00138000
  139. * * 00139000
  140. * SYSTEM ACTION: RC = 24 * 00140000
  141. * THE SESSION IS CANCELLED. * 00141000
  142. * * 00142000
  143. * USER ACTION: NONE, CMSDOS ONLY SUPPORTS* 00143000
  144. * THOSE DTFS IDENTIFIED IN THE * 00144000
  145. * SPECIFICATIONS. * 00145000
  146. * * 00146000
  147. * * 00147000
  148. * * 00148000
  149. * DMSBOP089E OPEN ERROR CODE 'CODE' ON FN/SYSXXX/TAPN* 00149000
  150. * * 00150000
  151. * EXPLANATION:THIS MESSAGE WILL BE ISSUED * 00151000
  152. * FOR MANY OF THE OPEN ERROR MESSAGES. * 00152000
  153. * A UNIQUE ERROR CODE IN THE MESSAGE WILL * 00153000
  154. * IDENTIFY THE ERROR SITUATION. * 00154000
  155. * * 00155000
  156. * * 00156000
  157. * SYSTEM ACTION: * 00157000
  158. * * 00158000
  159. * RC = 1 * 00159000
  160. * SYSXXX VALUE IN DOSCB DOES NOT * 00160000
  161. * MATCH VALUE IN DTF. * 00161000
  162. * * 00162000
  163. * * 00163000
  164. * RC = 2 * 00164000
  165. * CMS/DOS DOES NOT SUPPORT WRITING TO * 00165000
  166. * OS/DOS DISKS. ALL FILES MUST BE WRITTEN* 00166000
  167. * TO CMS DISKS. * 00167000
  168. * * 00168000
  169. * * 00169000
  170. * RC = 3 * 00170000
  171. * ATTEMPTING TO OPEN A SEQUENTIAL DISK * 00171000
  172. * FILE BUT NO DOSCB EXISTS WITH THE DOSCB * 00172000
  173. * DDNAME EQUAL TO THE DTF FILENAME. * 00173000
  174. * CMS/DOS REQUIRES A USER ISSUED DLBL FOR * 00174000
  175. * ALL SEQUENTIAL DISK INPUT AND OUTPUT * 00175000
  176. * FILES. * 00176000
  177. * * 00177000
  178. * RC = 4 * 00178000
  179. * ATTEMPT TO OPEN DTFCD OR DTFPR WITH * 00179000
  180. * ASSOCFLE/FUNC PARAMETERS SPECIFIED ON * 00180000
  181. * DTFXX MACRO. THESE PARAMETERS ARE NOT * 00181000
  182. * SUPPORTED. * 00182000
  183. * * 00183000
  184. * * 00184000
  185. * RC = 5 * 00185000
  186. * ATTEMPT TO OPEN AN INPUT SEQUENTIAL * 00186000
  187. * DISK FILE BUT NO EXTENT INFORMATION HAS * 00187000
  188. * BEEN FOUND IN THE OSFST. * 00188000
  189. * * 00189000
  190. * RC = 6 * 00190000
  191. * ATTEMPT TO VERIFY EXISTENCE OF DISK * 00191000
  192. * INPUT FILE BY CALLING STATE (DMSSTTE) * 00192000
  193. * AND FILE NOT FOUND CONDITION * 00193000
  194. * ENCOUNTERED. * 00194000
  195. * * 00195000
  196. * RC = 7 * 00196000
  197. * THE PUB DEVICE TYPE CODE IS INCOMPATIBLE* 00197000
  198. * WITH THE DEVICE TYPES SUPPORTED BY THE * 00198000
  199. * DTF BEING OPENED. * 00199000
  200. * * 00200000
  201. * RC = 8 * 00201000
  202. * SYSTEM OR PROGRAMMER LOGICAL UNIT * 00202000
  203. * IS UNASSIGNED (PUB POINTER IN LUB = * 00203000
  204. * X'FF'). * 00204000
  205. * * 00205000
  206. * RC = 9 * 00206000
  207. * NO CMS/DOS SUPPORT FOR READING TAPES * 00207000
  208. * IN A BACKWARD DIRECTION. WHEN THE * 00208000
  209. * PARAMETER 'READ= BACK' IS SPECIFIED * 00209000
  210. * ON THE DTFMT MACRO, A FLAG IS SET IN * 00210000
  211. * THE DTF AT COMPILATION TIME INDICATING * 00211000
  212. * THIS CONDITION. CMS/DOS WILL ONLY * 00212000
  213. * SUPPORT TAPE PROCESSING IN A FORWARD * 00213000
  214. * DIRECTION. * 00214000
  215. * * 00215000
  216. * RC = 11 * 00216000
  217. * ATTEMPT TO OPEN DTFMT (TAPE DATA * 00217000
  218. * FILES) AND 'ASCII=YES' WAS * 00218000
  219. * SPECIFIED. THIS PARAMETER IS NOT * 00219000
  220. * SUPPORTED. * 00220000
  221. * * 00221000
  222. * RC = 12 * 00222000
  223. * OPENING DTFMT (FILABL=STD) BUT NO * 00223000
  224. * VOL1/HDR1 ENCOUNTERED. * 00224000
  225. * * 00225000
  226. * RC = 13 * 00226000
  227. * PUB INFORMATION (SEVEN TRACK INDICATOR * 00227000
  228. * OR DENSITY) IS INCOMPATIBLE WITH THE * 00228000
  229. * TAPE DRIVE. * 00229000
  230. * * 00230000
  231. * RC = 14 * 00231000
  232. * 3420 TAPE DRIVE BUT INVALID TAPE * 00232000
  233. * MODEL NUMBER (VALID MODEL NUMBERS ARE * 00233000
  234. * 3, 4, 5, 6, 7, 8. * 00234000
  235. * * 00235000
  236. * RC = 15 * 00236000
  237. * ERROR ACCESSING OS/DOS DISK WHEN * 00237000
  238. * OPENING A SEQUENTIAL DISK INPUT FILE * 00238000
  239. * AS RESULT OF CALL TO STATE (DMSSTTE). * 00239000
  240. * * 00240000
  241. * RC = 16 * 00241000
  242. * SYSIPT OR SYSRDR ASSIGNED TO TAPE * 00242000
  243. * AND RECORD LENGTH DOES NOT EQUAL * 00243000
  244. * 80 OR 81 BYTES. * 00244000
  245. * * 00245000
  246. * RC = 17 * 00246000
  247. * UNEXPECTED TAPE ERROR ENCOUNTERED * 00247000
  248. * WHEN PERFORMING TAPE IO OPERATION. * 00248000
  249. * * 00249000
  250. * THE SESSION IS CANCELLED IN ALL THE * 00250000
  251. * ABOVE SITUATIONS WITH A RC = 36 EXCEPT * 00251000
  252. * IN THE CASE WHERE A SYSTEM/PROGRAMMER * 00252000
  253. * LOGICAL UNIT IS UNASSIGNED (RC = 8). * 00253000
  254. * IN THIS CASE, AN SVC 2 (FETCH) * 00254000
  255. * IS ISSUED TO THE ABNORMAL TERMINATION * 00255000
  256. * ROUTINE (DMSBAB) WHICH VERIFIES WHETHER * 00256000
  257. * LINKAGE HAS BEEN ESTABLISHED TO A STXIT * 00257000
  258. * AB ROUTINE. * 00258000
  259. * * 00259000
  260. * USER ACTION: CORRECTION THE INDIVIDUAL * 00260000
  261. * SITUATION AND RESTART THE SESSION. * 00261000
  262. * 00262000
  263. * DMSBOP400S SYSTEM 'SYSNAME' DOES NOT EXIST 00263000
  264. * EXPLANATION: THE SUBJECT SYSTEM HAS 00264000
  265. * NOT BEEN DEFINED IN THE CONTROL 00265000
  266. * PROGRAM MODULE DMKSNT. 00266000
  267. * 00267000
  268. * SYSTEM ACTION: RC = 44 00268000
  269. * THE SESSION IS CANCELLED. 00269000
  270. * 00270000
  271. * USER ACTION: CONTACT THE INSTALLATION 00271000
  272. * SYSTEM PROGRAMMER WHO MUST USE THE 00272000
  273. * VSAMGEN EXEC PROCEDURE TO SAVE THE CMS 00273000
  274. * VSAM SYSTEM. 00274000
  275. * 00275000
  276. * DMSBOP401S V.M. SIZE CANNOT EXCEED 'CMSDOS' START 00276000
  277. * ADDRESS 00277000
  278. * 00278000
  279. * EXPLANATION: THE USER'S VIRTUAL MACHINE 00279000
  280. * STORAGE SIZE AS CURRENTLY DEFINED IS OF 00280000
  281. * SUCH A SIZE THAT THE NAMED SYSTEM WOULD 00281000
  282. * HAVE OVERLAID PART OF THE USER'S STORAGE. 00282000
  283. * 00283000
  284. * SYSTEM ACTION: RC = 104 THE SYSTEM 00284000
  285. * EXECUTION TERMINATES; THE SYSTEM REMAINS 00285000
  286. * IN THE SAME STATUS AS BEFORE THE ROUTINE 00286000
  287. * WAS ENTERED. 00287000
  288. * 00288000
  289. * USER ACTION: CONTACT THE INSTALLATION 00289000
  290. * SYSTEM PROGRAMMER WNO MUST RESAVE THE 00290000
  291. * NAMED VSAM SYSTEM AT AN ADDRESS LARGE 00291000
  292. * ENOUGH NOT TO CONFLICT WITH NORMAL 00292000
  293. * VIRTUAL MACHINE SIZE PERMITTED TO THE 00293000
  294. * USERS. 00294000
  295. * 00295000
  296. * DMSBOP410S CONTROL PROGRAM ERROR INDICATION 00296000
  297. * 'RETCODE' 00297000
  298. * 00298000
  299. * EXPLANATION: AN UNEXPECTED ERROR 00299000
  300. * OCCURRED WHILE THE CONTROL PROGRAM 00300000
  301. * WAS PROCESSING A REQUEST FROM CMS 00301000
  302. * TO FIND OR LOAD A SAVED VSAM SYSTEM. 00302000
  303. * 00303000
  304. * SYSTEM ACTION: RC = NNN 00304000
  305. * WHERE NNN IS THE ACTUAL ERROR COD 00305000
  306. * FROM THE CONTROL PROGRAM. 00306000
  307. * 117 - PAGING I/O ERRORS. 00307000
  308. * 00308000
  309. * USER ACTION: CONTACT THE INSTALLATION 00309000
  310. * SYSTEM PROGRAMMER FOR ASSISTANCE. 00310000
  311. * 00311000
  312. * DMSBOP413S STORAGE NOT INITIALIZED FOR VSAM 00312000
  313. * PROCESSING. 00313000
  314. * 00314000
  315. * EXPLANATION: SET DOS ON (VSAM WAS NOT 00315000
  316. * SPECIFIED AND THEREFORE STORAGE 00316000
  317. * WAS NOT INITIALIZED FOR VSAM 00317000
  318. * PROCESSING. 00318000
  319. * 00319000
  320. * SYSTEM ACTION: RC = 104 00320000
  321. * EXECUTION OF THE PRESENT ROUTINE IS 00321000
  322. * CANCELLED. THE SYSTEM REMAINS IN THE 00322000
  323. * SAME STATUS AS BEFORE THE ROUTINE 00323000
  324. * WAS ENTERED. 00324000
  325. * 00325000
  326. * USER ACTION: WHEN RUNNING DOSVSAM, 00326000
  327. * USER SHOULD USE 'SET DOS ON (VSAM' 00327000
  328. * TO INSURE THAT STORAGE IS INITIALIZED 00328000
  329. * PROPERLY FOR VSAM. 00329000
  330. * 00330000
  331. * DMSBOP308E ' ' DISK IN CMS FORMAT; INVALID FOR 00331000
  332. * NON-CMS DATASET. 00332000
  333. * 00333000
  334. * EXPLANTION: ACB IS BEING OPENED; 00334000
  335. * DISK MUST BE OS/DOS DISK. 00335000
  336. * SYSTEM ACTION: RC = 24 00336000
  337. * THE ROUTINE IS CANCELLED; THE SYSTEM 00337000
  338. * REMAINS IN THE SAME STATUS AS BEFORE 00338000
  339. * THE ROUTINE WAS ENTERED. 00339000
  340. * 00340000
  341. * USER ACTION: ENSURE THAT PROPER DISK 00341000
  342. * WAS SPECIFIED FOR DATASET. 00342000
  343. * 00343000
  344. * DMSBOP302E NO SYSXXX OPERAND SPECIFIED 00344000
  345. * 00345000
  346. * EXPLANATION: NO SYSXXX WAS SPECIFIED 00346000
  347. * ON THE DTF MACRO OR THE DLBL FOR THE 00347000
  348. * SPECIFIC FILENAME. 00348000
  349. * 00349000
  350. * SYSTEM ACTION: RC = 24 00350000
  351. * EXECUTION OF THE ROUTINE IS CANCELLED. 00351000
  352. * THE SYSTEM REMAINS IN THE SAME STATUS 00352000
  353. * AS BEFORE THE ROUTINE WAS ENTERED. 00353000
  354. * 00354000
  355. * USER ACTION: EITHER SPECIFY THE 00355000
  356. * SYSXXX ON THE DTF OR THE DLBL. 00356000
  357. * 00357000
  358. * DMSBOP086W DLBL 'DDNAME' DUMMY INVALID FOR VSAM 00358000
  359. * 00359000
  360. * EXPLANATION: INVALID TO SPECIFY DUMMY 00360000
  361. * ON VSAM DATA SET 00361000
  362. * 00362000
  363. * SYSTEM ACTION: VSAM RC = 8 00363000
  364. * SYSTEM REMAINS IN SAME STATE AS 00364000
  365. * BEFORE THE ROUTINE WAS ENTERED. 00365000
  366. * 00366000
  367. * USER ACTION: DO NOT SPECIFY 00367000
  368. * DLBL DUMMY FOR VSAM DATA SET 00368000
  369. * * 00369000
  370. * CALLS TO OTHER ROUTINES: * 00370000
  371. * DMSTIO - SVC 202 * 00371000
  372. * DMSSTTE * 00372000
  373. * ADTLKP * 00373000
  374. * DMSFRE * 00374000
  375. * $$BOVSAM - SVC 2 (FETCH) TO PERFORM OPEN OF ACBS * 00375000
  376. * SVC 8 - TEMPORARILY RETURN TO PROB. PROG. TO PROCESS * 00376000
  377. * USER TAPE LABELS * 00377000
  378. * * 00378000
  379. * * 00379000
  380. * EXTERNAL REFERENCES: * 00380000
  381. * NUCON, REGEQU, DOSCB, OSFST, ADT * 00381000
  382. * MAPPUB, BGCOM, FSTB, DOSAVE * 00382000
  383. * * 00383000
  384. * * 00384000
  385. * CALLED BY: * 00385000
  386. * INVOKED IN RESPONSE TO SVC 2 (FETCH FOR DMSBOP). * 00386000
  387. * THE SVC 2 CAN RESULT FROM TWO SITUATIONS: * 00387000
  388. * * 00388000
  389. * 1. SVC 2 GENERATED AS PART OF * 00389000
  390. * OPEN MACRO EXPANSION WHERE R1 * 00390000
  391. * POINTS TO NAME OF FILE TO BE * 00391000
  392. * FETCHED ($$BOPEN). * 00392000
  393. * * 00393000
  394. * 2. SVC 2 ISSUED IN USER PROGRAM * 00394000
  395. * AND R1 POINTS TO NAME OF FILE TO * 00395000
  396. * BE FETCHED ($$BOPEN). * 00396000
  397. * * 00397000
  398. * * 00398000
  399. * TABLES AND WORK AREAS: * 00399000
  400. * * 00400000
  401. * CC - CCHH CONTROL FIELD TABLE CONTAINING AN * 00401000
  402. * ENTRY FOR EACH DISK DEVICE TYPE. EACH * 00402000
  403. * ENTRY CONTAINS A MAXIMUM CCHH VALUE FOR * 00403000
  404. * A FILE RESIDING ON THE SPECIFIC DISK DEVICE * 00404000
  405. * TYPE. THIS VALUE HAS BEEN COMPUTED * 00405000
  406. * BASED ON 32,768 RECORDS/CMS FILE AND THE * 00406000
  407. * NUMBER OF TRACKS/CYL. * 00407000
  408. * * 00408000
  409. * * 00409000
  410. * DISKTAB - TABLE WITH FOUR (8) BYTE ENTRIES. EACH * 00410000
  411. * ENTRY CORRESPONDS WITH A DIRECT ACCESS * 00411000
  412. * STORAGE DEVICE TYPE (3340 35MB, 3340 70MB, * 00412000
  413. * 2314/2319 AND 3330) AND CONTAINS FOUR FIELDS * 00413000
  414. * RELATING TO THE STORATE DEVICE TYPE. * 00414000
  415. * * 00415000
  416. * 1. ADT DEVICE CODE. * 00416000
  417. * 2. DOS DEVICE CODE. * 00417000
  418. * 3. TRACK CAPACITY. * 00418000
  419. * 4. MAXIMUM CCHH ADDRESS FOR THE * 00419000
  420. * STORAGE DEVICE. * 00420000
  421. * * 00421000
  422. * TYPETAB - TABLE WITH AN ENTRY FOR EACH SUPPORTED * 00422000
  423. * DTF TYPE. THE FIRST BYTE OF EACH ENTRY * 00423000
  424. * CONTAINS THE DTF TYPE. THIS ONE-BYTE IS * 00424000
  425. * FOLLOWED BY A THREE-BYTE ADDRESS OF A ROUTINE* 00425000
  426. * TO BE GIVEN CONTROL TO PROCESS THE SPECIFIED * 00426000
  427. * DTF TYPE. THE THIRD FIELD IN EACH ENTRY * 00427000
  428. * IS A 7 CHARACTER CONSTANT (DTFXX) USED IN * 00428000
  429. * ERROR MESSAGES. * 00429000
  430. * * 00430000
  431. * SYSTAB - TABLE OF THREE BYTE ENTRIES CONSISTING OF * 00431000
  432. * SYSTEM LOGICAL UNIT SYMBOLICS (IE; PCH, IPT, * 00432000
  433. * LST ETC.) * 00433000
  434. * * 00434000
  435. * FREE - THIRTY TWO DOUBLE WORDS OF FREE STORAGE USED FOR* 00435000
  436. * SWITCHES, ADDRESSES, PLISTS AND WORKAREAS WHICH * 00436000
  437. * WILL BE MODIFIED AT SOME POINT DURING THE * 00437000
  438. * PROGRAM. (DMSBOP IS REENTRANT) * 00438000
  439. * * 00439000
  440. * * 00440000
  441. * REGISTER USAGE: * 00441000
  442. * * 00442000
  443. * R0 - AT DMSBOP ENTRY R0 POINTS TO THE LIST OF ADCONS * 00443000
  444. * GENERATED BY THE OPEN MACRO. EACH ADCON IS AN * 00444000
  445. * ADDRESS OF A DTF TO BE OPENED BY THE PROGRAM. * 00445000
  446. * R1 - WORKING REGISTER * 00446000
  447. * R2 - DTF ADDRESS * 00447000
  448. * R3 - WORKING REGISTER * 00448000
  449. * R4 - WORKING REGISTER * 00449000
  450. * R5 - POINTER TO PUB INDEX CODE * 00450000
  451. * - POINTER TO PUB ENTRY * 00451000
  452. * - WORKING REGISTER * 00452000
  453. * R6 - BAL RETURN REGISTER * 00453000
  454. * R7 - WORKING REGISTER * 00454000
  455. * R8 - WORKING REGISTER * 00455000
  456. * R9 - FREE STORAGE POINTER * 00456000
  457. * R10 - WORKING REGISTER * 00457000
  458. * R11 - BASE REGISTER * 00458000
  459. * R12 - BASE REGISTER * 00459000
  460. * R13 - WORKING REGISTER * 00460000
  461. * R14 - EXTERNAL LINKAGE/WORKING REGISTER * 00461000
  462. * R15 - RETURN CODES * 00462000
  463. * * 00463000
  464. * * 00464000
  465. * OPERATION: * 00465000
  466. * * 00466000
  467. * * 00467000
  468. * DMSBOP IS THE SIMULATED OPEN ROUTINE USED BY THE * 00468000
  469. * CMS/DOS SUPPORT TO OPEN SUPPORTED DTF TYPES. DMSBOP * 00469000
  470. * IS USED INSTEAD OF THE MANY $$B-TRANSIENTS * 00470000
  471. * USED BY DOS/VS. THE FUNCTION PERFORMED BY DMSBOP IS * 00471000
  472. * BASICALLY THAT OF DTF TABLE INITIALIZATION - * 00472000
  473. * INITIALIZING THOSE FIELDS IN THE DTF WHICH WILL BE USED* 00473000
  474. * LATER BY THE DOS/VS LIOCS ROUTINES. * 00474000
  475. * * 00475000
  476. * * 00476000
  477. * DMSBOP PERFORMS SEVERAL MAJOR ACTIVITIES: * 00477000
  478. * * 00478000
  479. * 1. DMSBOP OBTAINS A WORK AREA FROM FREE STORAGE. * 00479000
  480. * * 00480000
  481. * 2. THE PROGRAM THEN SCANS THE LIST OF DTF/ACB FILES * 00481000
  482. * TO BE OPENED. UPON ENCOUNTERING AN ACB, CONTROL * 00482000
  483. * IS GIVEN TO THE VSAM OPEN ROUTINE ($$BOVSAM) TO * 00483000
  484. * OPEN THE SPECIFIED ACB. * 00484000
  485. * * 00485000
  486. * 3. ONCE THIS IS ACCOMPLISHED, THE DTF TYPE IS EXAMINED* 00486000
  487. * AND CONTROL IS PASSED TO A ROUTINE WHICH OPENS THAT* 00487000
  488. * PARTICULAR DTF TYPE. * 00488000
  489. * * 00489000
  490. * THE OPEN ACTIVITY FOR EACH DTF TYPE FOLLOWS: * 00490000
  491. * * 00491000
  492. * DTFCD (DTF TYPE X'02'): * 00492000
  493. * OPEN BIT IN DTF IS POSTED OPEN. * 00493000
  494. * * 00494000
  495. * DTFCD (DTF TYPE X'04'), * 00495000
  496. * DTFPR (DTF TYPE X'08'): * 00496000
  497. * IF TWO IOAREAS ARE SPECIFIED, THE IOREG * 00497000
  498. * IS LOADED WITH THE APPROPRIATE IOAREA * 00498000
  499. * ADDRESS TAKING INTO ACCOUNT CONTROL CHARACTER * 00499000
  500. * AND VARIABLE LENGTH RECORDS. * 00500000
  501. * NEXT, THE PUB INDEX BYTE IS CHECKED. * 00501000
  502. * IF EQUAL TO X'FF' (UNASSIGNED), AN ERROR * 00502000
  503. * MESSAGE IS ISSUED. IF EQUAL X'FE' (IGNORE), * 00503000
  504. * THE OPEN IGNORE BIT IS POSTED. OTHERWISE, * 00504000
  505. * PROCESSING CONTINUES BY ANALYZING THE PUB DEVICE * 00505000
  506. * CODE. THE DTF OPEN BIT IS THEN POSTED OPEN. * 00506000
  507. * * 00507000
  508. * DTFCN (DTF TYPE X'03'): * 00508000
  509. * NO OPEN IS REQUIRED FOR DTFCN (CONSOLE). * 00509000
  510. * * 00510000
  511. * DTFMT (TAPE DATA FILES DTF TYPE X'11', X'12', * 00511000
  512. * X'14'): * 00512000
  513. * ERROR MESSAGE IS ISSUED IF LOGICAL UNIT IS * 00513000
  514. * UNASSIGNED OR IGNORED. (PUB INDEX BYTE = X'FF' * 00514000
  515. * OR X'FE'). * 00515000
  516. * PUB DEVICE TYPE CODE MUST INDICATE A TAPE. * 00516000
  517. * 'READ=BACK' AND 'ASCII=YES' ARE NOT SUPPORTED. * 00517000
  518. * THE TAPE IS REWOUND IF 'NOREWIND' IS NOT SPECIFIED.* 00518000
  519. * IF AN IOREG IS SPECIFIED, THE IOREG IS LOADED * 00519000
  520. * WITH THE APPROPRIATE IOAREA ADDRESS. * 00520000
  521. * (ONLY APPROPRIATE WITH OUTPUT TAPES) * 00521000
  522. * * 00522000
  523. * INPUT TAPE DATA FILES: * 00523000
  524. * * 00524000
  525. * STANDARD LABEL: * 00525000
  526. * * 00526000
  527. * THE STANDARD LABEL IS SKIPPED. IF A USER * 00527000
  528. * ENTRY HAS BEEN SPECIFIED VIA THE LABADDR * 00528000
  529. * PARAMETER ON THE DTF MACRO, CONTROL IS PASSED * 00529000
  530. * TO THE USER LABEL ROUTINE . UPON RETURN, * 00530000
  531. * THE TAPE IS FORWARD SPACED BEYOND THE TAPE MARK. * 00531000
  532. * IF NO USER ENTRY WAS SPECIFIED, THE TAPE IS * 00532000
  533. * FORWARD SPACED BEYOND THE TAPE MARK. * 00533000
  534. * * 00534000
  535. * NON-STANDARD LABEL: * 00535000
  536. * * 00536000
  537. * IF A USER ENTRY HAS BEEN SPECIFIED, CONTROL IS * 00537000
  538. * PASSED TO THE USER LABEL ROUTINE. IF THE UTILITIES* 00538000
  539. * BIT IS ON UPON RETURN, THE DTF IS POSTED OPEN. * 00539000
  540. * IF THE UTILITIES BIT IS NOT ON, THE TAPE IS * 00540000
  541. * FORWARD SPACED BEYOND THE TAPE MARK AND THE DTF * 00541000
  542. * IS POSTED OPEN. IF NO USER ENTRY WAS SPECIFIED, * 00542000
  543. * THE TAPE IS FORWARD SPACED BEYOND THE TAPE MARK. * 00543000
  544. * * 00544000
  545. * NOLABEL: * 00545000
  546. * * 00546000
  547. * THE TAPE IS POSITIONED AT THE FIRST DATA RECORD. * 00547000
  548. * * 00548000
  549. * TAPE DATA OUTPUT FILES: * 00549000
  550. * * 00550000
  551. * ALL TAPE DATA OUTPUT FILES WILL BE TREATED AS * 00551000
  552. * NOLABEL TAPES. UNLESS 'TRMARK=NO' IS SPECIFIED, * 00552000
  553. * A TAPE MARK WILL BE WRITTEN AND THE DTF POSTED * 00553000
  554. * OPEN. (THIS MEANS THAT IF THE TAPE IS STANDARD * 00554000
  555. * LABEL OR NON-STANDARD LABEL, THE LABEL WILL BE * 00555000
  556. * DESTROYED. * 00556000
  557. * * 00557000
  558. * DTFMT (WORKFILES DTF TYPE X'10'): * 00558000
  559. * TAPE WORKFILES UNDERGO THE SAME OPEN PROCESS * 00559000
  560. * AS TAPE DATA FILES. HOWEVER, SINCE ALL TAPE * 00560000
  561. * WORKFILES ARE OPENED AS OUTPUT FIRST, THERE * 00561000
  562. * WILL BE NO LABEL SUPPORT FOR TAPE WORKFILES. * 00562000
  563. * ALL TAPE WORKFILES WILL BE TREATED AS NO LABEL * 00563000
  564. * TAPES. * 00564000
  565. * * 00565000
  566. * DTFSD (DISK DTF TYPE X'20'), * 00566000
  567. * DTFCP (DISK DTF TYPE X'32'), * 00567000
  568. * DTFDI (DISK DTF TYPE X'33): * 00568000
  569. * THE LUB IS VERIFIED TO INSURE THAT THE * 00569000
  570. * LOGICAL UNIT HAS BEEN ASSIGNED. IF UNASSIGNED, * 00570000
  571. * AN ERROR MESSAGE IS ISSUED. NEXT A CHECK IS * 00571000
  572. * MADE TO SEE IF A DOSCB EXISTS FOR THE DTF FILENAME.* 00572000
  573. * IF TWO IOAREAS ARE SPECIFIED (OUTPUT ONLY), THE * 00573000
  574. * IOREG IS LOADED WITH THE APPROPRIATE IOAREA ADDRESS* 00574000
  575. * IF AN INPUT FILE, A CHECK IS MADE TO VERIFY * 00575000
  576. * EXISTENCE OF THE FILE (CALL TO DMSSTTE). * 00576000
  577. * VARIOUS FIELDS ARE THEN INITIALIZED IN * 00577000
  578. * THE DTF (BOTH INPUT AND OUTPUT) _ * 00578000
  579. * TRACK CAPACITY, UPPER AND LOWER EXTENT FIELDS ETC. * 00579000
  580. * * 00580000
  581. * DISK OUTPUT FILES: * 00581000
  582. * SEARCH ARGUMENT INITIALIZED X'0000000000' * 00582000
  583. * RECORDS/TRACK INITIALIZED X'00' * 00583000
  584. * * 00584000
  585. * DISK INPUT FILES: * 00585000
  586. * SEARCH ARGUMENT INITIALIZED X'0000000001' * 00586000
  587. * IN THE CASE OF A CMS DISK. * 00587000
  588. * SEARCH ARGUMENT INITIALIZED TO LOW EXTENT * 00588000
  589. * IN THE CASE OF DOS DISK. * 00589000
  590. * RECORDS/TRACK INITIALIZED TO X'01' * 00590000
  591. * RECORDS/TRACK INITIALIZED TO X'02' - DTFCP * 00591000
  592. * * 00592000
  593. * DTFCP AND DTFDI FILES OTHER THAN DISK * 00593000
  594. * WILL BE INITIALIZED IN ACCORDANCE WITH * 00594000
  595. * THE RULES FOR THE PARTICULAR DEVICE TYPE * 00595000
  596. * AS INDICATED ABOVE FOR TAPE AND UNIT * 00596000
  597. * RECORD EQUIPMENT. * 00597000
  598. * * 00598000
  599. * 4. AFTER EACH DTF TABLE IS INITIALIZED, A CHECK IS * 00599000
  600. * MADE TO SEE IF MORE DTFS REMAIN TO BE OPENED. * 00600000
  601. * IF SO, PROCESSING CONTINUES AS OUTLINED IN (3) * 00601000
  602. * ABOVE. * 00602000
  603. * 5. WHEN ALL FILES HAVE BEEN OPENED, EXIT IS MADE BY * 00603000
  604. * AN SVC 11 TO THE PROBLEM PROGRAM ASSUMING THERE * 00604000
  605. * WERE NO ACBS TO OPEN. IF ACBS REMAIN TO BE OPEN, * 00605000
  606. * AN SVC 2 IS ISSUED FOR $$BOVSAM. CONTROL RETURNS * 00606000
  607. * TO DMSBOP AND EXIT IS MADE VIA SVC 11. * 00607000
  608. * 6. WHEN ERRORS ARE ENCOUNTERED, AN APPROPRIATE ERROR * 00608000
  609. * MESSAGE IS ISSUED AND EXIT IS MADE VIA SVC 6 * 00609000
  610. * (CANCEL - ABNORMAL TERMINATION). * 00610000
  611. * * 00611000
  612. *. * 00612000
  613. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00613000
  614. PUNCH 'SPB' @VA06270 00614000
  615. SPACE 2 00615000
  616. DMSBOP CSECT @V305066 00616000
  617. USING NUCON,R0 @V305066 00617000
  618. USING DTF,R2 @V305066 00618000
  619. USING DOSSECT,R3 @V305066 00619000
  620. USING FREE,R9 ESTABLISH ADDRESSABILIY @V305066 00620000
  621. USING BGCOM,R7 COMREG ADDRESSABILITY @V305066 00621000
  622. DC CL8'$$BOPEN' @V305066 00622000
  623. BALR R12,0 ESTABLISH ADDRESSABILITY @V305066 00623000
  624. USING *,R12,R11 @V305066 00624000
  625. LA R11,Q4095(R12) @VM03137 00625000
  626. LA R11,ONE(,R11) @VM03137 00626000
  627. LR R2,R0 PTR TO FIRST DTF/ACB ADCON @V305066 00627000
  628. LA R0,FREEDB GET NO. DOUBLE WORDS FOR FREE @V305101 00628000
  629. DMSFREE DWORDS=(0),TYPE=NUCLEUS,TYPCALL=BALR @V305066 00629000
  630. LR R9,R1 ADDRESS OF FREE STORAGE @V305066 00630000
  631. XC 0(FREELN,R9),0(R9) ZERO OUT ACQUIRED AREA @V305101 00631000
  632. MVI SAVEFN,BLANK PROPAGATE BLANKS THROUGH @V305066 00632000
  633. MVC SAVEFN+1(SIX),SAVEFN FIELD USED IN ERROR MSGS @VM03137 00633000
  634. ST R2,SAVEPTR PTR FOR FIRST DTF/ACB ADCON @V305066 00634000
  635. MVC SETMODE(SIXTEEN),CCW MOVE 2 CCWS TO FREE STRG @VM03137 00635000
  636. LA R4,SETMODE PT TO CCW1 IN FREE STORAGE @V305066 00636000
  637. LA R5,BUFFER PREPARE TO PLACE BUFFER @V305066 00637000
  638. LA R6,TWO ADDRESS IN CCW @V305066 00638000
  639. LOOP STCM R5,M7,ONE(R4) PLACE BUFFER AD IN CCW @VM03137 00639000
  640. LA R4,EIGHT(,R4) INCREM TO NEXT CCW @VM03137 00640000
  641. BCT R6,LOOP LOOP IF MORE CCWS @V305066 00641000
  642. GOAHEAD L R2,SAVEPTR RESTORE PTR TO FIRST ADCON @V305066 00642000
  643. L R2,0(,R2) DTF OR ACB ADDRESS @V305066 00643000
  644. ISITACB CLI DTFTYPE,ACB ACB? @V305066 00644000
  645. BE VSAMCHEK YES, GO PROCESS ACB NOW.. @V305101 00645000
  646. CHKTYP LA R3,TYPETAB CHECK FOR SUPPORTED DTF TYPES @V305066 00646000
  647. LA R4,TYPELAST @V305066 00647000
  648. TYPELOOP CLC 0(ONE,R3),DTFTYPE DID WE FIND MATCH? @VM03137 00648000
  649. BE TYPEQ MATCH @V305066 00649000
  650. LA R3,Q11(,R3) BUMP TO NEXT ENTRY IN TABLE @VM03137 00650000
  651. BCT R4,TYPELOOP @V305066 00651000
  652. LA R5,DTFTYPE UNSUPPORTED DTFTYPE @V305066 00652000
  653. B ERR88E BRANCH TO PRINT ERROR MESSAGE @V305066 00653000
  654. TYPEQ CLI DTFTYPE,DTFCD DTFCD - PUNCH @V305066 00654000
  655. BE TYPEFND YES, GO TO OPEN ROUTINE @V305066 00655000
  656. CLI DTFTYPE,DTFPR DTFPR - PRINTER @V305066 00656000
  657. BE TYPEFND YES, GO TO OPEN ROUTINE @V305066 00657000
  658. CLI DTFTYPE,SDTYPE DTFSD @V305066 00658000
  659. BE TYPEFND YES, GO TO OPEN ROUTINE @V305066 00659000
  660. BAL R6,GETLUB GO GET PUB INDEX CODE @V305066 00660000
  661. CLI 0(R5),FE UA, IGN, OR NORMAL ? @V305066 00661000
  662. BL NORMLUB NORMAL ASSIGNMENT TO DEVICE @V305066 00662000
  663. BH ASGNERR UA - UNASSIGNED @V305066 00663000
  664. OI FLAGIGN,OPENIGN OPEN IGNORE @V305066 00664000
  665. CLI DTFTYPE,THIRTY2 DTFCP DASD FILE @V305066 00665000
  666. BE TYPEFND YES, GO TO OPEN ROUTINE @V305066 00666000
  667. CLI DTFTYPE,THIRTY3 DTFDI DASD FILE @V305066 00667000
  668. BE TYPEFND YES, GO TO OPEN ROUTINE @V305066 00668000
  669. LA R6,CHMOR ADD TO SEE IF MORE FILES TO OPEN @V305066 00669000
  670. ISIOREG CLI DTFTYPE,NOLAB NOLAB OR NONSTD LAB TAPE @V305066 00670000
  671. BE TYPE1112 YES @V305066 00671000
  672. CLI DTFTYPE,STD STD LABEL O/P TAPE @V305066 00672000
  673. BE TYPE1112 YES @V305066 00673000
  674. BR R6 RETURN @V305066 00674000
  675. TYPE1112 TM OPENSW,INPUT INPUT FILE ? @V305066 00675000
  676. BCR 1,R6 YES, NO NEED TO LOAD IOREG @V305066 00676000
  677. TM FLAGIGN,SPANNED SPANNED FILE? @V305066 00677000
  678. BCR 1,R6 YES @V305066 00678000
  679. TM OPENSW2,IOREG IOREG PREVIOUSLY LOADED @V305066 00679000
  680. BCR 1,R6 YES @V305066 00680000
  681. SR R4,R4 CLEAR REGISTER 4 @V305066 00681000
  682. IC R4,REG 2ND BYTE OF LOAD/NOP INST @V305066 00682000
  683. SRA R4,4 CLEAR OUT X2 PART OF OPERAND @V305066 00683000
  684. BCR 8,R6 RETURN IF RESULT R1 REG IS 0 @V305066 00684000
  685. SH R4,CONNINE SUBTRACT 9 @V305066 00685000
  686. BC 11,SFREG BR IF RESULT NOT NEGATIVE @V305066 00686000
  687. LA R4,SIXTEEN(,R4) ADD DISP FOR REGS 0-B @VM03137 00687000
  688. SFREG SLL R4,TWO MULT BY 4, 4 BYTE REGS @VM03137 00688000
  689. LH R8,PIBPT PIB POINTER @V305066 00689000
  690. L R8,EIGHT(,R8) PRT TO USER SAVEAREA ADD @VM03137 00690000
  691. LA R8,SIXTEEN(,R8) POINT TO REGISTER SAVEAREA @VM03137 00691000
  692. AR R8,R4 DISP + SAVEAREA ADDRESS @V305066 00692000
  693. SR R4,R4 CLEAR REGISTER 4 @V305066 00693000
  694. IC R4,IOPTR REL ADDR OF PTR TO IOAREA @V305066 00694000
  695. L R4,DTF(R4) IOAREA ADDRESS @V305066 00695000
  696. ST R4,0(,R8) STORE IN REG SAVEAREA @V305066 00696000
  697. BR R6 RETURN @V305066 00697000
  698. NORMLUB NI FLAGIGN,DF SET OFF COBOL IGN IND. @V305066 00698000
  699. LA R6,TYPEFND ADD TO GO TO OPEN ROUTINE @V305066 00699000
  700. B ISIOREG GO LOAD IOREG IF NECESSARY @V305066 00700000
  701. TYPEFND L R4,0(R3) LOAD BR ADDR INTO REG @V305066 00701000
  702. LA R4,0(R4) ZERO OUT HIGH ORDER BYTE @V305066 00702000
  703. BR R4 GO TO APPROPRIATE DEVICE ROUTINE @V305066 00703000
  704. EJECT 00704000
  705. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00705000
  706. * * 00706000
  707. * ROUTINE TO OPEN UNIT RECORD EQUIPMENT * 00707000
  708. * * 00708000
  709. * * 00709000
  710. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00710000
  711. SPACE 2 00711000
  712. USING DTFUNIT,R2 @V305066 00712000
  713. * ENTER HERE IF DTFCD (DTF TYPE = X'02' - READER) 00713000
  714. UNITREC1 TM SWITCH,RDR3525 3525 READER ? @V305066 00714000
  715. BZ UNITREC3 NO @V305066 00715000
  716. TM SWITCH3,ASSOC FUNC/ASSOC SPECIFIED? @V305066 00716000
  717. BZ SETOPNBT NO, GO OPEN FILE @V305066 00717000
  718. ERR4 BAL R6,CVTUNIT CONVERT LOGICAL UNIT @V305066 00718000
  719. LA R15,FOUR RC = 4 @V305066 00719000
  720. B BADOPEN BR TO PRINT MSG @V305066 00720000
  721. * ENTER HERE IF DTFCD OR DTFPR (DTF TYPE = X'04' - PUNCH OR X'08' - 00721000
  722. * PRINTER) 00722000
  723. UNITREC2 TM DEVCODE,PCH3525 3525 PUNCH? @V305066 00723000
  724. BZ UNITREC3 NO FUNC/ASSOCFLE PARMS @V305066 00724000
  725. TM SWITCH3,ASSOC FUNC/ASSOC SPECIFIED? @V305066 00725000
  726. BZ UNITREC3 NO, SKIP INST @V305066 00726000
  727. B ERR4 BR TO PUT OUT MSG @VM03139 00727000
  728. UNITREC4 TM SWITCH3,PRT3525 3525 PRINTER @V305066 00728000
  729. BZ UNITREC3 NO @V305066 00729000
  730. TM SWITCH3,ASSOC FUNC/ASSOC SPECIFIED? @V305066 00730000
  731. BZ UNITREC3 NO @V305066 00731000
  732. B ERR4 ERROR IF SPECIFIED @V305066 00732000
  733. * ENTER HERE FOR DTFCN (DTF TYPE = X'03' - CONSOLE) 00733000
  734. UNITREC3 TM SWITCH,TWOIO TWO IOAREAS? @V305066 00734000
  735. BO LAINST DOES DTF HAVE INST TO LOAD IOREG @V305066 00735000
  736. ABOVE3 BAL R6,GETLUB GO OBTAIN LUB @V305066 00736000
  737. B CHKFE SEE IF 'IGNORE' @V305066 00737000
  738. LAINST CLI LODIOREG,LA IS THERE INST TO LOAD IOREG @V305066 00738000
  739. BNE ABOVE3 NO @V305066 00739000
  740. MVC FULLWORD(4),TWENTY4(R2) MOVE IOAREA1 ADDRESS @VM03137 00740000
  741. L R4,FULLWORD R4 CONTAINS ADDRESS OF IOAREA1 @V305066 00741000
  742. LA R6,ONE CONSTANT @V305066 00742000
  743. LA R5,FOUR CONSTANT @V305066 00743000
  744. * I/O REGISTER IS LOADED WITH THE FIRST BYTE OF DATA. IF THERE IS 00744000
  745. * A CONTROL CHAR OR VARIABLE LENGTH RECORDS, THE I/O AREA1 ADDRESS 00745000
  746. * MUST BE ADJUSTED TO REFLECT THIS 00746000
  747. TM SWITCH,CNTLCHAR CONTROL CHARACTER ? @V305066 00747000
  748. BZ NOCTLCHR @V305066 00748000
  749. SR R4,R6 ADJUST FOR CONTROL CHARACTER @V305066 00749000
  750. NOCTLCHR TM SWITCH,VARIBL VAR LENGTH RECORDS? @V305066 00750000
  751. BZ NOVARY @V305066 00751000
  752. SR R4,R5 ADJUST FOR VAR LEN RECORDS @V305066 00752000
  753. * AT THIS POINT, R4 CONTAINS THE CORRECT VALUE TO BE LOADED 00753000
  754. * INTO THE I/OREG 00754000
  755. * THIS VALUE WILL BE STORED INTO THE USER REG IN THE SUPERVISOR 00755000
  756. * SAVEAREA 00756000
  757. NOVARY L R1,ASYSREF R1 CONTAINS ADD OF COMM REG @V305066 00757000
  758. LH R6,Q90(R1) PIB TABLE ADDRESS @VM03137 00758000
  759. LA R5,EIGHT(R6) CALC ADDRESS OF SAVEAREA @VM03137 00759000
  760. L R6,0(R5) SAVEAREA TO REG @VM03139 00760000
  761. LA R6,SIXTEEN(R6) @VM03137 00761000
  762. * R6 POINTS TO THE BEGINNING OF THE REGISTER SAVEAREA 00762000
  763. SR R5,R5 @V305066 00763000
  764. IC R5,LODIOREG+1 @V305066 00764000
  765. SRL R5,FOUR GET I/O REG @VM03137 00765000
  766. * USER REG ARE STORED STARTING WITH REG9 00766000
  767. LA R7,NINE CONSTANT @V305066 00767000
  768. CR R5,R7 COMPARE I/O REG TO 9 @V305066 00768000
  769. BL LOWIORG BRANCH IF LESS @VM03141 00769000
  770. SR R5,R7 GREATER OR EQUAL 9 BACK UP BY NINE @VA07647 00770000
  771. B COMMON1 JOIN CODE SHORTLY BELOW. @VM03141 00771000
  772. LOWIORG LA R5,SEVEN(R5) ADD 7 TO IOREG @VM03137 00772000
  773. COMMON1 SLL R5,TWO MULT BY 4 TO GET PROPER DISP @VM03137 00773000
  774. AR R5,R6 ADD SAVEAREA+DISP - LOC. OF IOREG@V305066 00774000
  775. ST R4,0(R5) STORE IOAREA1 ADDR IN IOREG SAVE @V305066 00775000
  776. BAL R6,GETLUB GO OBTAIN LUB @V305066 00776000
  777. CHKFE CLI 0(R5),FE TEST FOR IGN OR UNASSIGN @V305066 00777000
  778. BL BELOWFE BR IF NOT IGNORE @V305066 00778000
  779. BE POST GO TO POST IGNORE BIT @V305066 00779000
  780. ASGNERR BAL R6,CVTUNIT CONVERT LOGICAL UNIT @V305066 00780000
  781. LA R15,EIGHT CODE=8, SYSXXX UNASSIGN OR IGNORE@V305066 00781000
  782. B BADOPEN BRANCH TO PRINT MESSAGE @V305066 00782000
  783. POST OI SIXTEEN(R2),TWENTY POST OPEN IGNORE BIT @VM03137 00783000
  784. B CHMOR BYPASS OPENING THE DTF @V305066 00784000
  785. BELOWFE NI SIXTEEN(R2),FF-OPENIGN RESET OPEN IGNORE SWITCH @VM03137 00785000
  786. BAL R6,GETPUB GO GET PUB ENTRY @V305066 00786000
  787. USING PUBADR,R5 @V305066 00787000
  788. MVZ TEMP,PUBDEVT GET ZONE OF PUB DEVICE TYPE @V305066 00788000
  789. CLI DTFTYP,CONSOLE CONSOLE? @V305066 00789000
  790. BNE CHKPRTR NO @VM03141 00790000
  791. CLI TEMP,FORTY DEVICE A PRINTER? @V305066 00791000
  792. BE CHMOR YES @V305066 00792000
  793. CLI TEMP,ZERO DEVICE A CONSOLE? @V305066 00793000
  794. BE CHMOR YES @V305066 00794000
  795. DEVERR BAL R6,CVTUNIT CONVERT 2 BYTE UNIT TO SYSXXX @V305066 00795000
  796. LA R15,SEVEN INVALID DEVICE TYPE CODE IN PUB @V305066 00796000
  797. B BADOPEN BR TO PRINT ERROR MSG @V305066 00797000
  798. CHMOR L R2,SAVEPTR ADDR OF DTF TO BE OPEN @V305066 00798000
  799. LA R2,FOUR(R2) POINT TO NEXT ADCON @VM03137 00799000
  800. CLI 0(R2),ANOTHER ANY MORE FILES TO OPEN? @VA09227 00800300
  801. BNE EXIT NO,END OF LIST @VA09227 00800600
  802. MVI SAVEFN,BLANK PROPAGATE BLANKS THROUGH @VA04418 00802000
  803. MVC SAVEFN+1(SIX),SAVEFN FIELD USED IN ERR. MSGS @VA04418 00803000
  804. ST R2,SAVEPTR STORE POINTER TO NEXT ADCON @V305066 00804000
  805. L R2,0(R2) NEXT DTF ADDR @V305066 00805000
  806. B ISITACB GO TO OPEN NEXT FILE @V305101 00806000
  807. CHKPRTR CLI DTFTYP,PRINTER PRINTER? @V305066 00807000
  808. BE UCSPRT YES @V305066 00808000
  809. CLI DTFTYP,READER DTFCD - DTFTYPE = X'02' ? @V305066 00809000
  810. BE RDRZONE YES, CHECK PUB DEVICE FOR RDR @V305066 00810000
  811. PCHZONE CLI TEMP,TWENTY MUST BE PUNCH DEVICE @V305066 00811000
  812. BNE DEVERR OTHERWISE, ERROR 7 @V305066 00812000
  813. B SETOPNBT PUNCH, GO TO SET OPEN BIT @V305066 00813000
  814. B SETOPNBT INDICATE FILE IS OPEN @V305066 00814000
  815. UCSPRT CLI TEMP,FORTY IS DEVICE A PRINTER? @V305066 00815000
  816. BNE DEVERR NO, ERROR 7 @V305066 00816000
  817. CLI FOUR(R5),UCS UNIVERSAL CHAR SET PRINTER? @VM03137 00817000
  818. BNE SETOPNBT NO @V305066 00818000
  819. LR R1,R2 PLACE DTF ADDRESS IN R1 @V305066 00819000
  820. MVC TEMPSAVE,CCWADDR SAVE USER CCW ADDRESS @V305066 00820000
  821. LA R4,SETMODE ADDRESS OF SETMODE CCW @V305066 00821000
  822. ST R4,FULLWORD STORE THIS ADDRESS @V305066 00822000
  823. MVC CCWADDR(THREE),FULLWORD+1 ADDR OF SETMODE CCW @VM03137 00823000
  824. * TO CCB 00824000
  825. MVI SETMODE,SUPPRESS SUPPRESS DATA CHECKS @V305066 00825000
  826. TM BUFFER1+4,DATACKS WANT DATA CHECKS TO OCCUR @V305066 00826000
  827. BZ STMODEIO DATA CHECKS CANNOT OCCUR @V305066 00827000
  828. MVI SETMODE,DATA WANT DATA CHECKS TO OCCUR @V305066 00828000
  829. STMODEIO SVC EXCP PERFORM SVC 0 @V305066 00829000
  830. MVC CCWADDR(THREE),TEMPSAVE RESTORE USER CCB @VM03137 00830000
  831. SETOPNBT OI SWITCH,HEX80 UNIT RECORD EQUIPMENT OPEN @V305066 00831000
  832. B CHMOR GO SEE IF MORE FILES TO OPEN @VM03139 00832000
  833. RDRZONE CLI TEMP,HEX10 READER? @V305066 00833000
  834. BNE DEVERR NO, ERROR 7 @V305066 00834000
  835. B SETOPNBT READER, GO SET OPEN BIT @V305066 00835000
  836. EJECT 00836000
  837. GETLUB L R7,ASYSREF GET ADDRESS OF BGCOM @V305066 00837000
  838. LH R5,NICLPT NICL ADDRESS @V305066 00838000
  839. SR R4,R4 CLEAR REGISTER R4 @V305066 00839000
  840. IC R4,0(R5) NO. SYS LOGICAL UNITS FROM NICL @V305066 00840000
  841. SR R5,R5 CLEAR REGISTER @V305066 00841000
  842. CLI SIX(R2),FF DEVADDR NOT SPEC IN DTF @VM03137 00842000
  843. BNE IC SPECIFIED @V305066 00843000
  844. CLI DTFTYP,SDTYPE DTFSD @VM03139 00844000
  845. BE ACCEPTFF WILL GET SYSXXX FROM DOSCB @V305066 00845000
  846. MVC SAVEFN,FOUR(R3) MOVE DTF TYPE FOR MSG @VM03137 00846000
  847. LA R15,EIGHT LOG. UNIT UNASSIGNED @V305066 00847000
  848. B BADOPEN BR TO PRINT MESSAGE @V305066 00848000
  849. ACCEPTFF BR R6 RETURN @V305066 00849000
  850. IC IC R5,SEVEN(R2) LOG UNIT CLASS FROM DTF @VM03137 00850000
  851. TM SIX(R2),HEX01 PROGRAMMER LOGICAL UNIT ? @VM03137 00851000
  852. BNO DOUBLE NO, MUST BE SYSTEM UNIT @V305066 00852000
  853. AR R5,R4 INCREM BY NO SYSTEM LUBS @V305066 00853000
  854. DOUBLE AR R5,R5 DOUBLE VALUE IN R3 @V305066 00854000
  855. AH R5,LUBPT ADD LUB TABLE ADDRESS @V305066 00855000
  856. * AT THIS TIME R5 POINTS TO LUB BYTE 00856000
  857. BR R6 RETURN TO MAINLINE @V305066 00857000
  858. GETPUB LH R4,PUBPT PUB ADDRESS @V305066 00858000
  859. LR R1,R5 STORE PUB POINTER @V305066 00859000
  860. SR R5,R5 CLEAR REGISTER @V305066 00860000
  861. IC R5,0(R1) PUB INDEX CODE @V305066 00861000
  862. SLL R5,THREE MULTIPLY BY LENGTH OF PUB @VM03137 00862000
  863. AR R5,R4 ADD PUB ADDRESS @V305066 00863000
  864. * AT THIS TIME R5 POINTS TO CORRECT PUB ENTRY 00864000
  865. BR R6 RETURN TO MAINLINE @V305066 00865000
  866. EJECT 00866000
  867. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00867000
  868. * * 00868000
  869. * ROUTINE TO OPEN TAPE DATA FILES * 00869000
  870. * * 00870000
  871. * * 00871000
  872. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00872000
  873. SPACE 2 00873000
  874. USING DTFMT,R2 TAPE DTF ADDRESSABILITY @V305066 00874000
  875. TAPEDATA TM MTFLAG4,PHTAB DTFPH TABLE? @V305066 00875000
  876. BNO ASCII NO, SEE IF ASCII SPECIFIED @V305066 00876000
  877. LA R5,TYPEMT POINT TO DTF TYPE @V305066 00877000
  878. B ERR88E BR TO PRINT MSG @V305066 00878000
  879. ASCII TM MTFLAG0,ASC ASCII = YES SPECIFIED @V305066 00879000
  880. BZ PUB NO, GO ON ... @V305066 00880000
  881. MVC SAVEFN(SEVEN),MTFN FILENAME FOR MSG @VM03137 00881000
  882. ERR11 LA R15,ELEVEN ERROR CODE = 11 @V305066 00882000
  883. B BADOPEN BR TO PRINT MSG @V305066 00883000
  884. PUB BAL R6,GETPUB GET PUB ENTRY @V305066 00884000
  885. BAL R6,CRPLIST CREATE PLIST FOR TAPEIO REQUEST @V305066 00885000
  886. USING PUBADR,R5 ESTABLISH PUB ADDRESSABILITY @V305066 00886000
  887. MVZ TEMP,PUBDEVT MOVE PUB DEVICE CODE TO TEMP @V305066 00887000
  888. CLI TEMP,FIFTY DEVICE TYPE = TAPE ? @V305066 00888000
  889. BNE DEVERR NO, ERROR @V305066 00889000
  890. CLI PUBDEVT,TCR TAPE CARTRIDGE READER? @VM03139 00890000
  891. BE DEVERR IF TCR, INVALID DEVICE @V305066 00891000
  892. TM MTFLAG3,BACKWARD DRIVE DIRECTION = BACKWARD ?@V305066 00892000
  893. BNO CHKREWND NO, SEE IF NOREWIND SPECIFIED @V305066 00893000
  894. LA R15,NINE READ TAPE BACKWARDS NOT SUPPORTED@V305066 00894000
  895. B TAPEMSG GO PRINT ERROR MESSAGE @V305066 00895000
  896. CHKREWND TM MTFLAG3,NOREWIND NOREWIND SPECIFIED ? @V305066 00896000
  897. BO LABEL YES, DO NOT REWIND @V305066 00897000
  898. MVC FUNC,REW REWIND TAPE @V305066 00898000
  899. BAL R6,IOROUT PERFORM I/O @V305066 00899000
  900. LABEL TM MTFLAG3,STDLABEL STD. LABEL TAPE? @V305066 00900000
  901. BO STDLAB YES, BR TO STD LAB ROUT @V305066 00901000
  902. TM MTFLAG3,NONSTD NONSTD LABEL TAPE ? @V305066 00902000
  903. BO IOCONSTD YES, BR TO NONSTD ROUTINE @V305066 00903000
  904. * UNLABELED FILE READING IN A FORWARD DIRECTION 00904000
  905. NOLABEL MVC FUNC,SENSE PERFORM SENSE AND SAVE SENSE INFO@V305066 00905000
  906. BAL R6,IOROUT PERFORM I/O @V305066 00906000
  907. BAL R6,CHKMODE TAPE MODE COMPATIBLE WITH PUB @V305066 00907000
  908. MVC SAVESENS(ONE),BUFF2 SAVE SENSE INFORMATION @VM03137 00908000
  909. TM SAVESENS,HEX08 TAPE AT LOAD POINT ? @V305066 00909000
  910. BO READIT YES, GO TO READ @V305066 00910000
  911. TM MTFLAG4,FILETYPE INPUT FILE ? @V305066 00911000
  912. BZ SVNTRACK IF NOT, BR AROUND READ AND BACKSP@V305066 00912000
  913. READIT EQU * @VA13166 00913000
  914. TM MTFLAG1,MTINP INPUT @VA13166 00913100
  915. BZ ISLOADPT BRANCH IF OUTPUT @VA13166 00913200
  916. MVC FUNC,READ READ @VA13166 00913300
  917. LA R3,INOUT IF TM ON NEXT IO, GO HERE @V305066 00914000
  918. BAL R6,IO PERFORM IO @V305066 00915000
  919. MVC FUNC,REW REWIND TAPE @V305066 00918000
  920. TM SAVESENS,HEX08 TAPE AT LOADPT BEFORE READING @V305066 00919000
  921. BO SKPBSR YES @V305066 00920000
  922. MVC FUNC,BSR BACKSPACE ONE RECORD @V305066 00921000
  923. SKPBSR BAL R6,IOROUT CALL SUBROUTINE @VM03141 00922000
  924. ISITOPEN TM MTFLAG4,MTOPEN IS FILE OPEN ? @V305066 00923000
  925. BZ SETOPEN NO @V305066 00924000
  926. OI MTFLAG4,ENDFILE SET EOF SWITCH ON @V305066 00925000
  927. NI Q88(R7),FB RESET FIRST TIME SWITCH @VM03137 00926000
  928. SVC SVC11 RETURN TO PROBLEM PROGRAM @V305066 00927000
  929. SETOPEN OI MTFLAG4,MTOPEN INDICATE FILE IS OPEN @V305066 00928000
  930. B CHMOR ANYMORE FILES TO OPEN ? @V305066 00929000
  931. CRPLIST MVC PLIST(EIGHT),TAPEIO PREPARE PLIST FOR TAPEIO @VM03137 00930000
  932. MVC DEVID(THREE),TAPEIO MOVE 'TAP' TO PLIST @VM03137 00931000
  933. MVC DEVID+3(ONE),PUBCUU+1 SECOND DIGIT OF CUU IN PUB@VM03137 00932000
  934. OI DEVID+3,CHAR0 CHANGE SEC DIGIT CUU TO CHAR @V305066 00933000
  935. LA R3,BUFFER BUFFER ADDRESS @V305066 00934000
  936. ST R3,PMODE STORE BUFFER ADDRESS IN PLIST @V305066 00935000
  937. MVC BUFFLEN,EIGHTY BUFFER LEN = 80 @V305066 00936000
  938. MVC PMODE,PUBTAPM1 CMS TAPE MODE TO PLIST @V305066 00937000
  939. BR R6 RETURN TO CALLER. @VM03141 00938000
  940. ISLOADPT TM SAVESENS,HEX08 TAPE AT LOAD POINT? @V305066 00939000
  941. BZ NOTLDPT NO @V305066 00940000
  942. DOREWIND MVC FUNC,REW REWIND TAPE @V305066 00941000
  943. DOIO BAL R6,IOROUT PERFORM I/O @V305066 00942000
  944. SVNTRACK TM SIX(R5),TRACK7 SEVEN TRACK TAPE ? @VM03137 00943000
  945. BO SEV YES @V305066 00944000
  946. MVC FUNC,WRITE WRITE ON TAPE TO SET TAPE MODE @V305066 00945000
  947. BAL R6,IOROUT PERFORM I/O @V305066 00946000
  948. BAL R6,BKSPACE PERFORM I/O @V305066 00947000
  949. SEV TM MTFLAG3,TMOPT TAPE MARK OPTION SPECIFIED ? @V305066 00948000
  950. BO ISITOPEN GO TO OPEN FILE @V305066 00949000
  951. MVC FUNC,WTM WRITE TAPE MARK @V305066 00950000
  952. BAL R6,IOROUT PERFORM I/O @V305066 00951000
  953. B ISITOPEN GO TO OPEN FILE @V305066 00952000
  954. NOTLDPT MVC FUNC,BSR BACKSPACE @V305066 00953000
  955. B DOIO GO TO PERFORM BACKSPACE @V305066 00954000
  956. INOUT TM MTFLAG1,MTINP INPUT FILE ? @V305066 00955000
  957. BZ ISLOADPT NO @V305066 00956000
  958. B ISITOPEN GO SEE IF FILE IS OPEN @VM03141 00957000
  959. BKSPACE MVC FUNC,BSR BAKSPACE @V305066 00958000
  960. SPACE 00959000
  961. * SUBROUTINE TO CALL TAPEIO (R6 = RETURN-REGISTER): 00960000
  962. IOROUT EQU * @V305066 00961000
  963. LA R1,PLIST PREPARE TAPIO REQUEST @V305066 00962000
  964. SVC SVC202 ISSUE SVC @VM03137 00963000
  965. DC AL4(BADTAPIO) @V305066 00964000
  966. BR R6 @V305066 00965000
  967. BADTAPIO EQU * @V305066 00966000
  968. CH R15,H8 WLR LONG? @VA03457 00967000
  969. BNL ERRLONG TELL THEM @VA03457 00968000
  970. CH R15,NOTATT TAPE NOT ATTACHED @V305066 00969000
  971. BE ERR113S YES, ERROR @V305066 00970000
  972. BH ERR43E TAPE FILE PROTECTED @V305066 00971000
  973. CH R15,TM EOF OR END OF TAPE @V305066 00972000
  974. BE ERR58E YES, ERROR @V305066 00973000
  975. ERRLONG LA R15,SEVTEEN UNEXPECTED TAPE ERROR @VA03457 00974000
  976. TAPEMSG MVC SAVEFN(FOUR),DEVID MOVE DEVID FOR ERROR MSG @VM03137 00975000
  977. B BADOPEN BR TO PRINT ERROR MESSAGE @V305066 00976000
  978. EJECT 00977000
  979. IO LA R1,PLIST POINTER TO PLIST @V305066 00978000
  980. SVC SVC202 IO REQUEST @VM03137 00979000
  981. DC AL4(TAPEMARK) ERROR ADDRESS @V305066 00980000
  982. BR R6 RETURN IF SUCCESSFUL IO @V305066 00981000
  983. TAPEMARK CH R15,TM TAPE MARK ENCOUNTERED? @V305066 00982000
  984. BCR 8,R3 RETURN IF TM ENCOUNTERED @V305066 00983000
  985. B BADTAPIO OTHER TAPE ERRORS @V305066 00984000
  986. EJECT 00985000
  987. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00986000
  988. * THIS ROUTINE PROCESSES NONSTD LABELED TAPES * 00987000
  989. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00988000
  990. SPACE 2 00989000
  991. IOCONSTD TM MTFLAG4,FILETYPE I/P TAPE? @V305066 00990000
  992. BNO NOLABEL OUTPUT, TREAT AS NOLABEL @V305066 00991000
  993. TM MTFLAG3,USERENTY USER ENTRY? @V305066 00992000
  994. BZ IOCOTMCK NO @V305066 00993000
  995. * EXIT TO PROCESS USER LABELS 00994000
  996. NI MTFLAG4,FF-UTILITY TURN OFF UTILITIES BIT @VM03137 00995000
  997. BAL R6,USER GO TO USER LABEL ROUTINE @V305066 00996000
  998. TM MTFLAG4,UTILITY IS UTILITIES BIT ON ? @V305066 00997000
  999. BO ISITOPEN YES, SKIP CHECK FOR TM @V305066 00998000
  1000. IOCOTMCK MVC FUNC,FSR SKIP 1 BLOCK @V305066 00999000
  1001. LA R3,ISITOPEN IF TM ON NEXT IO, GO HERE @V305066 01000000
  1002. BAL R6,IO PERFORM IO @V305066 01001000
  1003. TM MTFLAG3,USERENTY USER ENTRY? @V305066 01002000
  1004. BZ IOCOTMCK NO @V305066 01003000
  1005. MVC FUNC,BSR BACKSPACE 1 BLOCK @V305066 01004000
  1006. BAL R6,IOROUT PERFORM IO @V305066 01005000
  1007. B ISITOPEN GO SEE IF FILE IS OPEN @V305066 01006000
  1008. IOCOULAB TM MTFLAG3,NONSTD NONSTD LABELS @V305066 01007000
  1009. BZ SEV NO @V305066 01008000
  1010. TM MTFLAG3,USERENTY USER ENTRY? @V305066 01009000
  1011. BNO SEV NO @V305066 01010000
  1012. BAL R6,USER GO TO USER @V305066 01011000
  1013. B SEV BRANCH. @VM03141 01012000
  1014. USER L R14,MTFLAG3 USER LABEL ADDRESS @V305066 01013000
  1015. LA R0,O CHARACTER 'O' IN R0 @V305066 01014000
  1016. LH R1,UNITMT LOGICAL UNIT @V305066 01015000
  1017. STM R2,R3,TEMPSAVE TEMP STORE R2,R3 @V305066 01016000
  1018. SVC SVC8 GO TEMP. TO USER ROUTINE @V305066 01017000
  1019. LM R2,R3,TEMPSAVE RESTORE REGISTERS ON RETURN @V305066 01018000
  1020. BR R6 RETURN TO CALLER. @VM03141 01019000
  1021. EJECT 01020000
  1022. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01021000
  1023. * THIS ROUTINE PROCESSES STD LABEL TAPES FOR INPUT * 01022000
  1024. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01023000
  1025. SPACE 2 01024000
  1026. STDLAB TM MTFLAG1,MTINP INPUT FILE ? @V305066 01025000
  1027. BZ NOLABEL NO, STDLAB O/P TREAT AS NOLAB @V305066 01026000
  1028. MVC FUNC,SENSE PREPARE TO DO SENSE @V305066 01027000
  1029. BAL R6,IOROUT PERFORM IO @V305066 01028000
  1030. TM BUFF2,LOADPT IF NOT AT LOADPT @V305066 01029000
  1031. MVC FUNC,READ PREPARE FOR READ @V305066 01030000
  1032. BZ READTAPE GO HERE @V305066 01031000
  1033. * VOLUME LABEL CHECKING 01032000
  1034. ATLOADPT LA R3,INOUT IF TM ON NEXT IO, TREAT NOLABEL @V305066 01033000
  1035. BAL R6,IO PERFORM IO @V305066 01034000
  1036. CLC BUFFER(FOUR),VOL1 VOL1 LABEL READ @VM03137 01035000
  1037. BNE ERR1 FILABL=STD BUT NO 'VOL1' @V305066 01036000
  1038. TM MTFLAG4,MTOPEN FILE ALREADY OPEN? @V305066 01037000
  1039. BO READTAPE YES @V305066 01038000
  1040. * HEADER LABEL CHECKING 01039000
  1041. READTAPE BAL R6,IOROUT PERFORM IO @V305066 01040000
  1042. CLC BUFFER(FOUR),VOL1 VOL1 LABEL READ? @VM03137 01041000
  1043. BE READTAPE YES @V305066 01042000
  1044. CLC BUFFER(THREE),UVL UVL LABEL READ @VM03137 01043000
  1045. BE READTAPE YES @V305066 01044000
  1046. CLC BUFFER(FOUR),HDR1 HEADER LABEL READ @VM03137 01045000
  1047. BNE ERR1 FILABL=STD BUT NO 'HDR1' @V305066 01046000
  1048. TM MTFLAG3,USERENTY USER ENTRY? @V305066 01047000
  1049. BZ SPACEFWD NO @V305066 01048000
  1050. READLABL LA R3,RESET IF TM ON NEXT IO, GO HERE @V305066 01049000
  1051. BAL R6,IO PERFORM IO @V305066 01050000
  1052. CLC BUFFER(THREE),HDR1 HDR LABEL READ @VM03137 01051000
  1053. BE READLABL READ AGAIN IF SO @V305066 01052000
  1054. * USER LABEEL CHECKING ROUTINE 01053000
  1055. LA R0,O CHARACTER 'O' IN R0 @V305066 01054000
  1056. LA R1,BUFFER BUFFER ADDRESS @V305066 01055000
  1057. STM R2,R3,TEMPSAVE STORE REGS TEMPORARILY @V305066 01056000
  1058. SVC SVC8 RETURN TEMP TO PROB PROG @V305066 01057000
  1059. LM R2,R3,TEMPSAVE RESTORE REGS ON RETURN @V305066 01058000
  1060. LTR R1,R1 IF USER IS NOT FINISHED, @V305066 01059000
  1061. BC 7,READLABL GO HERE @V305066 01060000
  1062. SPACEFWD MVC FUNC,FSF FORWARD SPACE PAST TM @V305066 01061000
  1063. BAL R6,IOROUT PERFORM IO @V305066 01062000
  1064. RESET XC DTFMT+40(FOUR),DTFMT+40 ZERO BLOCK COUNT @VM03137 01063000
  1065. TM MTFLAG4,MTOPEN FILE ALREADY OPEN @V305066 01064000
  1066. BZ SETOPEN NO @V305066 01065000
  1067. OI MTFLAG4,ENDFILE SET EOF BIT ON @VA04418 01066000
  1068. LR R1,R9 POINT TO FREE AREA @VA04418 01067000
  1069. BAL R6,FREESTOR RELEASE ACQUIRED STORAGE @VA04418 01068000
  1070. LH R14,PIBPT PIB ADDRESS @V305066 01069000
  1071. L R14,EIGHT(,R14) GET SAVEAREA OF PP @VM03188 01070000
  1072. MVC 40(FOUR,R14),MTFLAG0 REG15 HAS MODULE ADDRESS @VM03137 01071000
  1073. SVC SVC11 RETURN TO PROBLEM PROGRAM @V305066 01072000
  1074. ERR1 MVC SAVEFN(SEVEN),MTFN FILENAME FOR MSG @VM03137 01073000
  1075. LA R15,TWELVE ERROR CODE = 12 @V305066 01074000
  1076. B BADOPEN BRANCH. @VM03141 01075000
  1077. EJECT 01076000
  1078. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01077000
  1079. * THE FOLLOWING ROUTINE VERIFIES THAT THE CHARACTERISTICS OF * 01078000
  1080. * THE TAPE DRIVE AGREE WITH WHAT HAS BEEN SPECIFIED IN THE * 01079000
  1081. * PUB ENTRY BY THE ASSGN COMMAND. IF THE TAPE DRIVE IS 7TRACK, * 01080000
  1082. * THE 7TRACK INDICATOR IN THE PUB ENTRY MUST BE PRESENT. * 01081000
  1083. * IF THE TAPE DRIVE IS 9TRACK, THE FOLLOWING CHECKS ARE * 01082000
  1084. * PERFORMED: * 01083000
  1085. * * 01084000
  1086. * 1. IF 2400 SERIES TAPE DRIVE (6 SENSE BYTES READ BY SENSE * 01085000
  1087. * OPERATION), THE PUB DENSITY MUST BE EITHER 800 0R 1600 * 01086000
  1088. * BPI. * 01087000
  1089. * * 01088000
  1090. * 2. IF 3420 OR 3803 SERIES TAPE DRIVE (24 SENSE BYTES READ * 01089000
  1091. * BY SENSE OPERATION), AND INPUT FILE, THE PUB DENSITY * 01090000
  1092. * MUST AGREE WITH THE TAPE DRIVE. * 01091000
  1093. * * 01092000
  1094. * A. IF MODELS 4,6, OR 8, DENSITY MUST BE 1600 BPI * 01093000
  1095. * (C0 DOS MODE IN PUB) OR 6250 BPI (D0 DOS MODE IN * 01094000
  1096. * PUB) DEPENDING UPON WHAT IS SPECIFIED IN THE SENSE* 01095000
  1097. * INFORMATION. * 01096000
  1098. * * 01097000
  1099. * B. IF MODELS 3,5, OR 7, DENSITY MUST BE 1600 (C0 DOS * 01098000
  1100. * MODE IN PUB) OR 800 BPI (C0 DOS MODE IN PUB IF * 01099000
  1101. * SINGLE DENSITY DRIVE OR C8 DOS MODE IF DUAL * 01100000
  1102. * DENSITY DRIVE) DEPENDING UPON WHAT IS SPECIFIED IN* 01101000
  1103. * THE SENSE INFORMATION. * 01102000
  1104. * * 01103000
  1105. * 4. IF 3420 OR 3803 SERIES TAPE DRIVE AND OUTPUT FILE, * 01104000
  1106. * AND DUAL DENSITY BIT IS ON IN THE SENSE INFORMATION, * 01105000
  1107. * DENSITY MUST BE ONE OF THE APPROPRIATE DENSITIES * 01106000
  1108. * ASSOCIATED WITH THE MODEL TYPES. * 01107000
  1109. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01108000
  1110. SPACE 2 01109000
  1111. CHKMODE EQU * @V305066 01110000
  1112. TM PUBTAP7,TRACK7 PUB ENTRY FOR 7TRACK ? @V305066 01111000
  1113. BO TRK7 YES, TAPE DRIVE MUST BE 7TRK @V305066 01112000
  1114. * NINE TRACK VERIFICATION FOLLOWS 01113000
  1115. TM BUFF2,TAP7 DOES SENSE INFOR IND 7TRK @VM03139 01114000
  1116. BNO PUBMODE IF NOT 7TRK, VERIFY DENSITY DATA @V305066 01115000
  1117. INCOMP LA R15,THIRTEEN PUB INCOMPATIBLE WITH TAPE DRIVE @V305066 01116000
  1118. B TAPEMSG GO TO PRINT TAPE ERROR MESSAGE @V305066 01117000
  1119. * TAPE DATA FILES 01118000
  1120. PUBMODE CLI PUBTAPM2,DEN ANY DEN PARM WHEN ASSIGNED @V305066 01119000
  1121. BNE CHK2400 YES, VERIFY SENSE AND PUB @V305066 01120000
  1122. BR R6 DON'T COMPARE, JUST CONTINUE @V305066 01121000
  1123. CHK2400 LA R4,SIX 6 SENSE BYTES FOR 2400 UNIT @V305066 01122000
  1124. C R4,BYTES COMP NO. SENSE BYTES READ TO 6 @V305066 01123000
  1125. BL CHK3420 IF MORE THAN 6, MUST BE 3420 @V305066 01124000
  1126. DT3411 TM BUFF4,BPI1600 @VA14961 01125000
  1127. BNO PUB800 NO, SEE IF PUB INDICATES 800 BPI @V305066 01126000
  1128. CLI PUBTAPM2,P1600 1600 BPI DEN IN PUB @V305066 01127000
  1129. BNE CHKC8 IF DUAL DENSITY, COULD BE 800 @V305066 01128000
  1130. BR R6 1600 BPI @V305066 01129000
  1131. PUB800 CLI PUBTAPM2,SING800 SENSE-800, C0 IN PUB SINGLE @V305066 01130000
  1132. BNE CHKC8 NOT 800 BPI SINGLE DENSITY @V305066 01131000
  1133. BR R6 @V305066 01132000
  1134. CHKC8 CLI PUBTAPM2,DUAL800 800 BPI DUAL DENSITY @V305066 01133000
  1135. BNE INCOMP IF 2400, EITHER C0 OR C8 @V305066 01134000
  1136. BR R6 RETURN TO CALLER. @VM03141 01135000
  1137. CHK3420 LA R4,NINE @VA14961 01136250
  1138. C R4,BYTES D/T3410/3411? @VA14961 01136500
  1139. BE DT3411 BR IF YES @VA14961 01136750
  1140. BO MOD468 3420 MODEL 8 @V305066 01137000
  1141. TM BUFF7,MODEL6 3420 MODEL 6 @V305066 01138000
  1142. BO MOD468 3420 MODEL 6 @V305066 01139000
  1143. TM BUFF7,MODEL4 3420 MODEL 4 @V305066 01140000
  1144. BO MOD468 3420 MODEL 4 @V305066 01141000
  1145. TM BUFF7,MODEL7 3420 MODEL 7 @V305066 01142000
  1146. BO MOD357 3420 MODEL 7 @V305066 01143000
  1147. TM BUFF7,MODEL5 3420 MODEL 5 @V305066 01144000
  1148. BO MOD357 3420 MODEL 5 @V305066 01145000
  1149. TM BUFF7,MODEL3 3420 MODEL 3 @V305066 01146000
  1150. BO MOD357 3420 MODEL 3 @V305066 01147000
  1151. B BADMODEL IF NONE OF THE ABOVE - BAD MODEL @V305066 01148000
  1152. MOD468 MVI MOD468SW,ON IND. MODELS 4, 6, OR 8 @V305066 01149000
  1153. TM BUFF7,BPI6250 CHK TAPE DEN FROM SENSE INFO@V305066 01150000
  1154. BO PUB6250 6250 BPI - CHECK PUB @V305066 01151000
  1155. B PUB1600 1600 BPI - CHECK PUB @V305066 01152000
  1156. MOD357 MVI MOD357SW,ON IND. MODELS 3, 5, OR 7 @V305066 01153000
  1157. TM BUFF7,BPI800 CHK TAPE DENS FROM SENSE @V305066 01154000
  1158. BO PUB800A 800 BPI - CHECK PUB @V305066 01155000
  1159. B PUB1600 1600 BPI - CHECK PUB @V305066 01156000
  1160. PUB800A TM BUFF7,DUAL DUAL DEN DRIVE @V305066 01157000
  1161. BO DUALDEN YES @V305066 01158000
  1162. CLI PUBTAPM2,SING800 SENSE 800, C0 800 SING. @V305066 01159000
  1163. BNE INCOMP ERROR, NOT DUAL DENSITY @V305066 01160000
  1164. BR R6 RETURN TO MAINLINE @V305066 01161000
  1165. DUALDEN TM MTFLAG1,MTINP INPUT FILE @V305066 01162000
  1166. BO ISIT800 DENSITY = 800 @V305066 01163000
  1167. CLI PUBTAPM2,DUAL800 800 DUAL DENSITY @V305066 01164000
  1168. BNE CHK1600 NO, THEN IS IT 1600 @V305066 01165000
  1169. BR R6 RETURN TO CALLER. @VM03141 01166000
  1170. CHK1600 CLI PUBTAPM2,P1600 1600 BPI @V305066 01167000
  1171. BNE INCOMP ERROR IF NEITHER 800 0R 1600 @V305066 01168000
  1172. BR R6 RETURN TO CALLER. @VM03141 01169000
  1173. ISIT800 CLI PUBTAPM2,DUAL800 800 DUAL DENSITY @V305066 01170000
  1174. BNE INCOMP NO, ERROR @V305066 01171000
  1175. BR R6 RETURN TO CALLER. @VM03141 01172000
  1176. BADMODEL LA R15,FOURTEEN INVALID TAPE MODEL NUMBER @V305066 01173000
  1177. B TAPEMSG GO TO PRINT TAPE ERROR MESSAGE @V305066 01174000
  1178. PUB6250 CLI PUBTAPM2,DEN6250 6250 BPI IN PUB @V305066 01175000
  1179. BNE IPOP2 NO @V305066 01176000
  1180. BR R6 RETURN TO CALLER. @VM03141 01177000
  1181. IPOP2 CLI TYPEMT,MTWORK WORKFILE? @V305066 01178000
  1182. BE IPOP2A ELIM INP CHK, OPEN WORK FOR O/P @V305066 01179000
  1183. TM MTFLAG1,MTINP INPUT FILE ? @V305066 01180000
  1184. BO INCOMP YES, MUST BE SPECIFIC DENSITY @V305066 01181000
  1185. IPOP2A TM BUFF7,DUAL DUAL DEN DRIVE @V305066 01182000
  1186. BNO INCOMP NO, MUST BE SPECIFIC DENSITY @V305066 01183000
  1187. CLI PUBTAPM2,P1600 1600 BPI @V305066 01184000
  1188. BNE INCOMP NO, ERROR @V305066 01185000
  1189. BR R6 @V305066 01186000
  1190. IPOP1 CLI TYPEMT,MTWORK TAPE WORKFILE @V305066 01187000
  1191. BE IPOP1A ELIM INP CHK, OPEN WORK FOR O/P @V305066 01188000
  1192. TM MTFLAG1,MTINP INPUT FILE ? @V305066 01189000
  1193. BO INCOMP YES, MUST BE SPECIFIC DENSITY @V305066 01190000
  1194. IPOP1A CLI MOD468SW,ON 3420 MODEL 4, 6, OR 8 @V305066 01191000
  1195. BE CHKDUAL YES, GO LOOK FOR DUAL DENSITY @V305066 01192000
  1196. CLI MOD357SW,ON 3420 MODEL 3, 5, OR 7 @V305066 01193000
  1197. BE CHKDUAL2 YES, GO LOOK FOR DUAL DENSITY @V305066 01194000
  1198. B INCOMP ERROR @V305066 01195000
  1199. CHKDUAL TM BUFF7,DUAL DUAL DENSITY DRIVE @V305066 01196000
  1200. BNO INCOMP NO @V305066 01197000
  1201. CLI PUBTAPM2,DEN6250 6250 BPI @V305066 01198000
  1202. BNE INCOMP NO, ERROR @V305066 01199000
  1203. BR R6 RETURN TO CALLER. @VM03141 01200000
  1204. CHKDUAL2 TM BUFF7,DUAL DUAL DENSITY DRIVE @V305066 01201000
  1205. BNO INCOMP NO, ERROR @V305066 01202000
  1206. CLI PUBTAPM2,SING800 800 BPI SINGLE DENSITY @V305066 01203000
  1207. BNE CHKC8A NO, SEE IF 800 DUAL DENSITY @V305066 01204000
  1208. BR R6 RETURN TO CALLER. @VM03141 01205000
  1209. CHKC8A CLI PUBTAPM2,DUAL800 800 BPI DUAL DEN @V305066 01206000
  1210. BNE INCOMP NO, ERROR @V305066 01207000
  1211. BR R6 RETURN TO CALLER. @VM03141 01208000
  1212. PUB1600 CLI PUBTAPM2,P1600 1600 BPI @V305066 01209000
  1213. BNE IPOP1 CHECK FOR DUAL DENSITY, IF O/P @V305066 01210000
  1214. BR R6 RETURN TO CALLER. @VM03141 01211000
  1215. TRK7 TM BUFF2,SEVTRK SEVEN TRACK @V305066 01212000
  1216. BNO INCOMP NO, INCOMPATIBLE @V305066 01213000
  1217. BR R6 RETURN TO CALLER. @VM03141 01214000
  1218. EJECT 01215000
  1219. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01216000
  1220. * * 01217000
  1221. * ROUTINE TO OPEN TAPE WORK FILES * 01218000
  1222. * * 01219000
  1223. * * 01220000
  1224. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01221000
  1225. SPACE 2 01222000
  1226. TAPEWK EQU * OPEN TAPE WORK FILES: @VM03141 01223000
  1227. BAL R6,GETPUB LOCATE PUB ENTRY @V305066 01224000
  1228. MVZ TEMP,PUBDEVT MOVE PUB DEVICE CODE TO TEMP @V305066 01225000
  1229. CLI TEMP,FIFTY DEVICE = TAPE ? @V305066 01226000
  1230. BNE DEVERR NO, ERROR @V305066 01227000
  1231. CLI PUBDEVT,TCR TAPE CARTRIDGE READER @V305066 01228000
  1232. BE DEVERR IF TCR - INVALID DEVICE @V305066 01229000
  1233. BOMT06 BAL R6,CRPLIST CREATE PLIST FOR TAPEIO REQUEST @V305066 01230000
  1234. TM MTFLAG1,WKNORWD NOREWIND SPECIFIED ? @V305066 01231000
  1235. BO NREWIND YES, SKIP REWIND INSTR. @V305066 01232000
  1236. YESREWND EQU * @V305066 01233000
  1237. MVC FUNC,REW REWIND @V305066 01234000
  1238. BAL R6,IOROUT PERFORM I/O @V305066 01235000
  1239. NREWIND MVC FUNC,SENSE SENSE @V305066 01236000
  1240. BAL R6,IOROUT PERFORM I/O @V305066 01237000
  1241. BAL R6,CHKMODE SENSE INFO COMPATIBLE WITH PUB @V305066 01238000
  1242. TM BUFF2,HEX08 TAPE AT LOAD POINT? @V305066 01239000
  1243. BZ CONT NO @V305066 01240000
  1244. TM SIX(R5),TRACK7 7-TRACK TAPE ? @VM03137 01241000
  1245. BO CONT YES @V305066 01242000
  1246. ******* 9-TRACK TAPE PROCESSING 01243000
  1247. MVC FUNC,READ READ @V305066 01244000
  1248. LA R3,SENSEOP IF TM ON NEXT IO, GO HERE @V305066 01245000
  1249. BAL R6,IO PERFORM IO @V305066 01246000
  1250. SENSEOP MVC FUNC,SENSE SENSE @V305066 01247000
  1251. BAL R6,IOROUT PERFORM I/O @V305066 01248000
  1252. MVC FUNC,BSR BACKSPACE RECORD @V305066 01249000
  1253. LA R3,DETDEN IF TM ON NEXT IO, GO HERE @V305066 01250000
  1254. BAL R6,IO PERFORM IO @V305066 01251000
  1255. ***** X'04' IN BUFFER + 3 INDICATES 1600 BPI (ON) OR 800 BPI (OFF) 01252000
  1256. ***** X'08' IN PUB + 5 INDICATES 800 BPI ON DUAL DENSITY DRIVE 01253000
  1257. DETDEN TM BUFF4,HEX04 1600 BPI @V305066 01254000
  1258. BZ VOL800 NO, MUST BE 800 @V305066 01255000
  1259. TM PUBTAPM2,HEX08 DUAL DENSITY DRIVE ? @V305066 01256000
  1260. BZ CONT NO @V305066 01257000
  1261. B NVOLON BRANCH. @VM03141 01258000
  1262. VOL800 TM PUBTAPM2,HEX08 DUAL DENSITY DRIVE @V305066 01259000
  1263. BO CONT YES @V305066 01260000
  1264. NVOLON OI MTFLAG0,NEWVOL TURN NEW VOL SW ON @V305066 01261000
  1265. CONT MVC FUNC,READ READ @V305066 01262000
  1266. LA R3,CHMOR IF TM ON NEXT IO, GO HERE @V305066 01263000
  1267. BAL R6,IO PERFORM IO @V305066 01264000
  1268. CLC BUFFER(FOUR),VOL1 VOL1 LABEL @VM03137 01265000
  1269. BNE BSPREC NO, BSR AND WTM @V305066 01266000
  1270. LA R3,REWWTM GO HERE IF TM ON NEXT IO @V305066 01267000
  1271. SPACE 2 01268000
  1272. * UNDER DOS/VS, IF NO HDR1 IS ENCOUNTERED OR IF HDR1 RECORD DOES 01269000
  1273. * NOT CONTAIN BLANKS OR ZEROS, DOS WRITES THE HDR1 LABEL AND WRITES 01270000
  1274. * A TAPEMARK. SINCE CMSDOS DOES NOT SUPPORT WRITING STANDARD LABEL 01271000
  1275. * TAPES, WHEN THIS CONDITION IS ENCOUNTERED, THE TAPE WILL BE 01272000
  1276. * REWOUND AND A TAPEMARK WRITTEN. THIS MUST BE AN OUTPUT FILE. 01273000
  1277. SPACE 2 01274000
  1278. RDAGAIN BAL R6,IO READ NEXT RECORD @V305066 01275000
  1279. CLC BUFFER(FOUR),VOL1 ANOTHER VOL1 ENCOUNTERED @VM03137 01276000
  1280. BE RDAGAIN YES, SKIP ALL VOL1 LABELS @V305066 01277000
  1281. CLC BUFFER(FOUR),HDR1 HDR1 LABEL @VM03137 01278000
  1282. BNE REWWTM REWIND AND WRITE TM @V305066 01279000
  1283. CLI BUFFER+4,HDR00 ZEROS IN HDR RECORD @V305066 01280000
  1284. BNE ISBLANK NO, CHECK FOR BLANKS @V305066 01281000
  1285. CLC BUFFER+4(Q75),BUFFER+5 ZEROS ? @VM03137 01282000
  1286. BE SKIP YES, NO EXPIRATION DATE @V305066 01283000
  1287. ISBLANK CLC BUFFER+4(Q76),BLANKS HDR RECORD CONTAIN BLANKS @VM03137 01284000
  1288. BNE REWWTM NO, MUST CONTAIN EXP DATE @V305066 01285000
  1289. SKIP LA R3,CHMOR GO HERE IF TM ON NEXT IO @V305066 01286000
  1290. BAL R6,IO PERFORM READ @V305066 01287000
  1291. B CHMOR FINISHED WITH THIS DTF @V305066 01288000
  1292. REWWTM MVC FUNC,REW REWIND TAPE @V305066 01289000
  1293. BAL R6,IOROUT PERFORM REWIND IO @V305066 01290000
  1294. MVC FUNC,WTM WRITE TM @V305066 01291000
  1295. BAL R6,IOROUT PERFORM WRITE TM IO @V305066 01292000
  1296. B CHMOR FINISHED OPENING DTF @V305066 01293000
  1297. BSPREC MVC FUNC,BSR BACKSPACE ONE RECORD @V305066 01294000
  1298. BAL R6,IOROUT PERFORM I/O @V305066 01295000
  1299. MVC FUNC,WTM WRITE TAPE MARK @V305066 01296000
  1300. BAL R6,IOROUT PERFORM I/O @V305066 01297000
  1301. B CHMOR ANY MORE FILES TO OPEN ? @V305066 01298000
  1302. EJECT 01299000
  1303. USING DTFSD,R2 ESTABLISH ADDRESSABILITY @V305066 01300000
  1304. USING DOSSECT,R3 @V305066 01301000
  1305. DISK EQU * PROCESSING FOR SEQ.DISK FILES @V305066 01302000
  1306. BAL R6,GETDOSCB FIND MATCHING DOSCB @V305066 01303000
  1307. CLI SIX(R2),FF DEVADDR MISSING FROM DTF? @VM03137 01304000
  1308. BE CHECK1 YES, SEE IF SYSXXX IN DOSCB @V305066 01305000
  1309. CLC DOSYSXXX(TWO),UNITSD DTB SYSXXX = DOSCB SYSXXX? @VM03137 01306000
  1310. BNE CHECK1 NO, DOSCB SYSXXX OVERRIDES @V305066 01307000
  1311. BAL R6,GETLUB SEE IF SYSXXX ASSIGNED @V305066 01308000
  1312. CHKASSGN CLI 0(R5),FE LOG UNIT ASSIGNED @V305066 01309000
  1313. BH ASGNERR ERROR IF UNASSIGNED @V305066 01310000
  1314. MVC SAVEFN(SEVEN),FILESD MOVE DISK FN TO SAVEFN @VA04418 01311000
  1315. TM SDFLAG1,SDWORK DTFSD WORK FILE? @V305066 01312000
  1316. BO PUB3 DO NOT LOAD IOREG @V305066 01313000
  1317. TM SDFLAG1,INPSD INPUT FILE? @V305066 01314000
  1318. BO PUB3 DO NOT LOAD IOREG @V305066 01315000
  1319. SR R4,R4 CLEAR REGISTER 4 @V305066 01316000
  1320. IC R4,IOREGSD+1 2ND BYTE OF LOAD/NOP INST @V305066 01317000
  1321. SRA R4,FOUR CLEAR X2 PART OF OPERAND @VM03137 01318000
  1322. BC 8,PUB3 DO NOT LOAD IOREG @V305066 01319000
  1323. SH R4,CONNINE SUBTRACE 9 FROM REG NO. @V305066 01320000
  1324. BC 11,SFREG2 BR IF RESULT IF NOT NEG. @V305066 01321000
  1325. LA R4,SIXTEEN(,R4) ADD DISP FOR REG 0-8 @VM03137 01322000
  1326. SFREG2 SLL R4,TWO MULT BY 4, 4 BYTES PER REG @VM03137 01323000
  1327. LH R8,PIBPT PIB POINTER @V305066 01324000
  1328. L R8,EIGHT(,R8) PTR TO SAVEAREA ADD @VM03137 01325000
  1329. LA R8,SIXTEEN(,R8) POINT TO REG SAVEAREA @VM03137 01326000
  1330. AR R8,R4 DISP + SAVEAREA ADDRESS @V305066 01327000
  1331. SR R4,R4 CLEAR REGISTER @V305066 01328000
  1332. IC R4,IOREGSD+3 RLTV ADD OF PTR TO IOAREA @V305066 01329000
  1333. L R4,DTFSD(R4) IOAREA ADDRESS @V305066 01330000
  1334. ST R4,0(,R8) STORE IN REGISTER SAVEAREA @V305066 01331000
  1335. PUB3 CLI 0(R5),FE LOG UNIT ASSIGNED 'IGN' @V305066 01332000
  1336. BE POSTSD YES, POST IGNORE BIT IN DTF @V305066 01333000
  1337. NI SIXTEEN(R2),FF-OPENIGN RESET OPEN IGN BIT @VM03137 01334000
  1338. BAL R6,GETPUB GET PUB ENTRY @V305066 01335000
  1339. USING PUBADR,R5 PUB ADDRESSABILITY @V305066 01336000
  1340. MVZ TEMP(ONE),PUBDEVT ZONE OF PUB DEVICE CODE @VM03137 01337000
  1341. CLI TEMP,SIXTY DISK DEVICE TYPE @V305066 01338000
  1342. BNE DISKERR NO @V305066 01339000
  1343. TM SDFLAG1,OPENSD FILE ALREADY OPEN ? @VA04643 01340000
  1344. BO SKIPVER YES, SKIP DEVTYPE CHECK @VA04643 01341000
  1345. BAL R6,VERIFY VER ADT @V305066 01342000
  1346. SKIPVER NI SDFLAG0,FF-TRKHOLD TRK HOLD OPT NOT ALLOWED @VA04643 01343000
  1347. TM SDFLAG1,SDWORK WORK FILE ? @V305066 01344000
  1348. BO WORK YES @V305066 01345000
  1349. TM SDFLAG1,INPSD INPUT FILE ? @V305066 01346000
  1350. BO OPEN YES, SEE IF FILE ALREADY OPEN @V305066 01347000
  1351. CHKCNTRL TM SDFLAG3,CNTRLSD CONTROL = YES SPECIFIED ? @V305066 01348000
  1352. BNO GO1 NO @V305066 01349000
  1353. TM SDFLAG0,SPANSD SPANNED PROCESSING @V305066 01350000
  1354. BO SPAN YES @V305066 01351000
  1355. TM SDFLAG3,FIXSD FIXED LENGTH RECORDS ? @V305066 01352000
  1356. BO FIXED YES @V305066 01353000
  1357. TM SDFLAG1,INPSD VAR OR UNDEF - IS IT INPUT ? @V305066 01354000
  1358. BNO UNDEFOUT NO, OUTPUT @V305066 01355000
  1359. CLI CCWB,THIRTY1 SEARCH ID EQ CCW OPCODE = X'31' @V305066 01356000
  1360. BE UPDYES IMPLIES UPDATE=YES ON DTF @V305066 01357000
  1361. B DOS2 VAR OR UNDEF, INP, NO UPDATE @V305066 01358000
  1362. UPDYES MVC DOS6SD,CCBAD VAR OR UNDEF, INP, UPDATE @V305066 01359000
  1363. B GO1 CONTINUE PROCESSING @V305066 01360000
  1364. UNDEFOUT TM SDFLAG3,UNDEFOP UNDEF O/P FILE ? @V305066 01361000
  1365. BO UNDEF YES { @V305066 01362000
  1366. B BOTH VAR, OUTPUT, CONTROL @V305066 01363000
  1367. UNDEF MVC DOS7SD,CCBAD UNDEF, OUTPUT,CONTROL @V305066 01364000
  1368. B GO1 CONTINUE PROCESSING @VM03141 01365000
  1369. FIXED EQU * STORE DOSCB ADD IN ALL DTF CCBS @V305066 01366000
  1370. TM SDFLAG1,INPSD FIXED INPUT FILE ? @V305066 01367000
  1371. BO FIXINP YES @V305066 01368000
  1372. DOS3 MVC DOS3SD,CCBAD OTHERWISE FIXED OUTPUT FILE @V305066 01369000
  1373. B GO1 CONTINUE PROCESSING @V305066 01370000
  1374. FIXINP TM SDFLAG1,SDBLOCK BLOCKED FILE ? @V305066 01371000
  1375. BNO GO1 NO @V305066 01372000
  1376. CLI CCWA,NINETY2 READ COUNT CCW OPCODE = X'92' @V305066 01373000
  1377. BE CHKCCWB IMPLIES TRUNCS=YES ON DTF @V305066 01374000
  1378. CLI CCWA,THIRTY1 NO TRUNCS, SRCH ID EQ CCW OPCODE @V305066 01375000
  1379. BE UPDONLY = X'31' IMPLIES UPDATE=YES @V305066 01376000
  1380. MVC DOS8SD,CCBAD UPDATE=NO, TRUNCS=NO @V305066 01377000
  1381. B GO1 CONTINUE PROCESSING @V305066 01378000
  1382. CHKCCWB CLI CCWB,THIRTY1 SEARCH ID EQ CCW OPCODE = X'31' @V305066 01379000
  1383. BE BOTH IMPLIES UPDATE=YES @V305066 01380000
  1384. DOS2 MVC DOS2SD,CCBAD JUST TRUNCS SPECIFIED @V305066 01381000
  1385. B GO1 CONTINUE PROCESSING @V305066 01382000
  1386. BOTH MVC DOS4SD,CCBAD FIXBLK,INP,UPDATE,TRUNC,CONTROL @V305066 01383000
  1387. B GO1 CONTINUE PROCESSING @VM03141 01384000
  1388. UPDONLY MVC DOS3SD,CCBAD UPDATE ONLY @V305066 01385000
  1389. B GO1 CONTINUE PROCESSING @V305066 01386000
  1390. DISKERR LA R15,SEVEN PUB DEVICE TYPE INCOMPATIBLE @V305066 01387000
  1391. B BADOPEN BR TO PRINT ERROR MSG @V305066 01388000
  1392. SPAN TM SDFLAG1,INPSD SPANNED INPUT FILE ? @V305066 01389000
  1393. BNO GO1 NO, CONTINUE PROCESSING @V305066 01390000
  1394. CLI CCWB,THIRTY1 SPANNED REC AND UPDATE = YES? @V305066 01391000
  1395. BNE DOS2 SPANNED,INP, NO UPDATE @V305066 01392000
  1396. MVC DOS6SD,CCBAD SPANNED, INP, UPDATE = YES @V305066 01393000
  1397. GO1 LH R6,BLKLESS1 BLOCK SIZE MINUS 1 @V305066 01394000
  1398. AH R6,KON1 INCREM BY 1 TO GET BLKSIZE @V305066 01395000
  1399. STH R6,DOSBLKSZ STORE BLKSIZE IN DOSCB @V305066 01396000
  1400. TM SDFLAG3,FIXSD RECFM = FIXED ? @V305066 01397000
  1401. BO FIXFORM YES @V305066 01398000
  1402. VARIABLE MVC DOSFORM(TWO),V VARIABLE/UNDEFINED @VM03137 01399000
  1403. TESTIP TM SDFLAG1,INPSD INPUT FILE ? @V305066 01400000
  1404. BO CONTINUE YES, GO PROCESS INPUT FILE @V305066 01401000
  1405. OUT XC RECTRKSD(ONE),RECTRKSD RECS/TRK = 0 FOR OP @VM03137 01402000
  1406. OUT2 LA R1,DOSDSMD-Q24 POINT TO FM FOR ADTLKP @VM03137 01403000
  1407. L R15,VCADTLKP PREPARE TO DO ADT LOOKUP @VM03093 01404000
  1408. BALR R14,R15 ... @V305066 01405000
  1409. BNZ ERR69E BR IF NOT FOUND @V305066 01406000
  1410. BAL R6,ADTCHECK SEE IF R/W CMS DISK @V305066 01407000
  1411. MVC DOSOP(EIGHT),ERASE ERASE FILE SINCE OUTPUT @VM03137 01408000
  1412. LA R1,DOSOP R1 POINTS TO PLIST @V305066 01409000
  1413. L R15,AERASE ADDRESS OF DMSERS @V305066 01410000
  1414. BALR R14,R15 BR TO ERASE FILE @V305066 01411000
  1415. LA R4,CC CONTROL FIELD TABLE @VM03139 01412000
  1416. BAL R6,GETCON GET APPROPRIATE CONTROL FIELD @V305066 01413000
  1417. XC SEARCHSD(FIVE),SEARCHSD DEFAULT SEARCH ARG TO 1 @VM03137 01414000
  1418. XC CCHHRSD(FIVE),CCHHRSD EXT LOW LIMIT AND REC NO. @VM03137 01415000
  1419. MVC CCHHSD,0(R4) SET UP EXT LIMIT TO MAX VALUE @V305066 01416000
  1420. OI SDFLAG1,OPENSD FILE IS NOW OPEN @V305066 01417000
  1421. MVI HHSD+1,LOWLIM0 LOWLIM TO 0FOR EXT TYPE 01 @V305066 01418000
  1422. MVI COMSD+2,TYPE00 EXT SEQ NO. LAST EXT OPENED @V305066 01419000
  1423. NI SDFLAG0,BF RESET SPECIAL OPEN IND. @V305066 01420000
  1424. OI COMSD,NOEXTSD NO MORE EXTENT IND. @V305066 01421000
  1425. B CHMOR ANYMORE FILES TO OPEN ? @V305066 01422000
  1426. FIXFORM TM SDFLAG1,INPSD INPUT FILE? @V305066 01423000
  1427. BO FIX INPUT @V305066 01424000
  1428. STH R6,TRKCAPSD+1 TRKCAP = BLKSIZE @V305066 01427000
  1429. B VARIABLE BR TO PUT VAR FLAG @V305066 01428000
  1430. FIX MVC DOSFORM(TWO),F FIXED @VM03137 01429000
  1431. B TESTIP BRANCH. @VM03141 01430000
  1432. POSTSD TM SDFLAG0,OPENIGN OPEN IGNORE POSTED @V305066 01431000
  1433. BZ POST NO, FIRST OPEN CALL @V305066 01432000
  1434. TM SDFLAG1,INPSD INPUT FILE? @V305066 01433000
  1435. BO RESETEOF YES, EXIT TO USER EOF ROUTINE @V305066 01434000
  1436. B EXIT IF OUTPUT,RETURN TO LIOCS MODULE @V305066 01435000
  1437. CHECK1 CLI DOSSYS,FF SYSXXX SPECIFIED IN DLBL? @V305066 01436000
  1438. BE ERR302E NO, ERROR @V305066 01437000
  1439. MVC UNITSD(TWO),DOSYSXXX OVERRIDE SYSXXX IN DTF @VM03137 01438000
  1440. BAL R6,GETLUB FIND PUB POINTER (LUB) @V305066 01439000
  1441. B CHKASSGN SEE IF ASSIGNED @V305066 01440000
  1442. EJECT 01441000
  1443. CONTINUE OI COMSD,LASTVOL IND LAST VOL OF DATA SET @V305066 01442000
  1444. XC DOSOP(EIGHT),DOSOP CLEAR DOSOP @VM03137 01443000
  1445. LA R1,DOSOP GET ADDR OF STATE PLIST @V305066 01444000
  1446. L R15,ASTATE CALL STATE @V305066 01445000
  1447. BALR R14,R15 @V305066 01446000
  1448. L R14,DOSOSFST GET OS FST ADDR @V305066 01447000
  1449. LTR R14,R14 IS IT ZERO? @V305066 01448000
  1450. BNZ OSDOS DOS DISK @V305066 01449000
  1451. CH R15,OSRDERR ERROR ACCESSING OS/DOS DISK? @V305066 01450000
  1452. BNL ACCERR ERROR ACCESSING OS/DOS DISK @V305066 01451000
  1453. LTR R15,R15 FILE FOUND? @V305066 01452000
  1454. BZ GETFST FILE HAS BEEN FOUND @V305066 01453000
  1455. STATERR LA R15,SIX FILE NOT FOUND @V305066 01454000
  1456. B BADOPEN BRANCH TO PRINT ERROR MESSAGE @V305066 01455000
  1457. ACCERR LA R15,FIFTEEN ERROR ACCESSING OS/DOS DISK @V305066 01456000
  1458. B BADOPEN GO PRINT ERROR MESSAGE @V305066 01457000
  1459. USING FSTSECT,R7 @V305066 01458000
  1460. GETFST L R7,DOSBUFF GET ADDR OF FST CMS IP FILE @V305066 01459000
  1461. LA R4,CC CONTROL FIELD TABLE @VA07181 01460000
  1462. BAL R6,GETCON FILL CONTROL FIELD IN DTF @V305066 01461000
  1463. CLI CPBYTE,THIRTY2 DTFCP @V305066 01462000
  1464. BE ZEROBYTE YES, CLEAR SWITCH @V305066 01463000
  1465. CLI CPBYTE,THIRTY3 DTFDI @V305066 01464000
  1466. BE ZEROBYTE YES, CLEAR SWITCH @V305066 01465000
  1467. MVI RECTRKSD,RECTRK1 RECS/TRK = 1 @V305066 01466000
  1468. NEXT1 MVC SEARCHSD(FIVE),REC SEARCH ARG= ITEM ON CMSFILE @VM03137 01467000
  1469. SR R4,R4 @V305066 01468000
  1470. SR R5,R5 @V305066 01469000
  1471. SR R6,R6 @V305066 01470000
  1472. IC R6,TRK NUMBER TRKS/CYL/DEVICE @V305066 01471000
  1473. ICM R5,M3,FSTIC NUMBER OF ITEMS ON CMS FILE @V305066 01472000
  1474. LA R5,ONE(,R5) INCREM NO. ITEMS BY 1 @VM03137 01473000
  1475. DR R4,R6 DIVIDE NO. ITEMS BY NO. TRKS/CYL @V305066 01474000
  1476. STH R5,CCHHSD STORE UPPER LIMIT CYL. @VA06293 01475000
  1477. STC R4,CCHHSD+3 STORE UPPER LIMIT HEAD @V305066 01476000
  1478. MVI HHSD+1,LOWLIM0 LOW LIM = 0 , SIM AS TYPE 1 EXT @V305066 01477000
  1479. MVC CCHHRSD(FIVE),SEARCHSD SRCH ARG BUCKET = LOWLIM @VM03137 01478000
  1480. NI COMSD,F7 RESET NEW VOL IND. @V305066 01479000
  1481. NI COMSD+1,HEX7F RESET 'BYPASSED EXT' IND. @V305066 01480000
  1482. MVC COMSD+2,DEFEXTSQ DEF EXT SEQ TO 0 FOR CMSFILE@V305066 01481000
  1483. OI COMSD,NOEXTSD SET NO MORE EXTS IND. @V305066 01482000
  1484. OI SDFLAG1,OPENSD FILE IS NOW OPEN @V305066 01483000
  1485. MVC DOSDSMD,FSTM MOVE MODE FROM FST TO DOSCB @V305066 01484000
  1486. B CHMOR MORE FILES TO OPEN ? @V305066 01485000
  1487. ZEROBYTE MVI CPBYTE,CLEAR CLEAR SWITCH @V305066 01486000
  1488. B NEXT1 RECS/TRK ALREADY IN DTF @V305066 01487000
  1489. USING OSFST,R14 @V305066 01488000
  1490. OSDOS LTR R15,R15 ANY ERRORS FROM STATE? @V305066 01489000
  1491. BNZ STATERR YES, DON'T OPEN @V305066 01490000
  1492. CLI CPBYTE2,SW2311 DEV CODE IN DTF=0, 2311 @V305066 01491000
  1493. MVI CPBYTE2,CLEAR CLEAR SW FOR NEXT TIME @V305066 01492000
  1494. BE BADDEV YES, ALSO UNACCEPTABLE @V305066 01493000
  1495. OI DOSINIT,DOS INDICATE DOS DISK IN DOSCB @V305066 01494000
  1496. LA R4,CC2 CONTROL FIELD TABLE @VM03139 01495000
  1497. BAL R6,GETCON @V305066 01496000
  1498. CLI CPBYTE,THIRTY2 DTFCP @V305066 01497000
  1499. BE NEXT3 YES, FILL IN RECS/TRK @V305066 01498000
  1500. CLI CPBYTE,THIRTY3 DTFDI @V305066 01499000
  1501. BNE RECSTRK DTFSD - CALC RECS/TRK @VM03148 01500000
  1502. NEXT3 MVI CPBYTE,CLEAR REINIT CP/DI BYTE @V305066 01501000
  1503. MVC RECTRKSD,FULSAV+1 RECS/TRK FOR DOS DISK @V305066 01502000
  1504. B NEXT2 PLACE EXTENT INFO IN DTF @VM03148 01503000
  1505. CALC30 LA R4,CON3330 POINT TO 3330 CONSTANTS @VM03148 01504000
  1506. B CALC GO TO CALC RECS/TRK @VM03148 01505000
  1507. CALC50 LA R4,CON3350 POINT TO 3350 CONSTANTS @V505098 01506000
  1508. B CALC GO TO CALC RECS/TRK @V505098 01507000
  1509. CALC14 LA R4,CON2314 POINT TO 2314 CONSTANTS @VM03148 01508000
  1510. B CALC GO TO CALC RECS/TRK @VM03148 01509000
  1511. RECSTRK CLC DOSFORM(2),F FIXED RECORDS @VM03148 01510000
  1512. BNE NEXT2 NO, SKIP CALC OF RECS/TRK @VM03148 01511000
  1513. CLI DEVSD,DEV2314 2314? @VM03148 01512000
  1514. BE CALC14 YES @VM03148 01513000
  1515. CLI DEVSD,DEV3330 3330? @VM03148 01514000
  1516. BE CALC30 YES @VM03148 01515000
  1517. CLI DEVSD,DEV333B 3330-11? @V505098 01516000
  1518. BE CALC30 YES @V505098 01517000
  1519. CLI DEVSD,DEV3350 3350? @V505098 01518000
  1520. BE CALC50 YES @V505098 01519000
  1521. LA R4,CON3340 POINT TO 3340 CONSTANTS @VM03148 01520000
  1522. CALC LH R6,0(R4) GET TOLERANCE FACTOR @VM03148 01521000
  1523. MH R6,DOSBLKSZ MULT BY BLOCKSIZE @VM03148 01522000
  1524. SRL R6,9 DIVIDE BY 512 @VM03148 01523000
  1525. AH R6,2(R4) ADD OVERHEAD CONSTANT @VM03148 01524000
  1526. LH R15,4(R4) GET TRACK CAPACITY @VM03148 01525000
  1527. SH R15,DOSBLKSZ SUBTRACT BLOCKSIZE @VM03148 01526000
  1528. LR R1,R14 SAVE R14 TEMPORARILY @VM03148 01527000
  1529. SR R14,R14 CLEAR REGISTER FOR DIVIDE @VM03148 01528000
  1530. DR R14,R6 DIVIDE @VM03148 01529000
  1531. AH R15,KON1 ADD ONE @VM03223 01530000
  1532. STH R15,FULSAV STORE TEMPORARILY @VM03148 01531000
  1533. MVC RECTRKSD,FULSAV+1 MOVE RECS/TRK TO DTF @VM03148 01532000
  1534. LR R14,R1 RESTORE R14 NOW @VM03148 01533000
  1535. NEXT2 SR R4,R4 CLEAR REGISTER @V305066 01534000
  1536. IC R4,OSFSTXNO NUMBER OF DATA EXTENTS ON DISK @V305066 01535000
  1537. LTR R4,R4 ANY ENTENTS? @V305066 01536000
  1538. BZ ERR5 NO EXTENTS PRESENT, ERROR @V305066 01537000
  1539. LA R1,ONE POINTER TO CURRENT EXT @V305066 01538000
  1540. LA R14,OSFSTXTN POINTER TO EXT INFO IN DOSCB @V305066 01539000
  1541. B EXTENTS GO FILL DTF WITH EXTENT INFO @V305066 01540000
  1542. ERR5 LA R15,FIVE NO EXTENTS PRESENT- ERROR @V305066 01541000
  1543. B BADOPEN BRANCH TO PRINT ERROR MESSAGE @V305066 01542000
  1544. USING EXTENT,R14 ESTABLISH DSECT ADDRESSABILITY @V305066 01543000
  1545. EXTENTS BCT R4,MORE DECREM NUMBER OF EXTENTS @V305066 01544000
  1546. OI COMSD,NOEXTSD IF NO MORE, POST IN DTF @V305066 01545000
  1547. XC DOSEXT(TWO),DOSEXT FILL DOSEXT AND EXTCOUNT @VM03137 01546000
  1548. * ZEROS 01547000
  1549. B PROCESS PROCESS THE EXTENT AT HAND @V305066 01548000
  1550. MORE STC R4,DOSEXT NUMBER EXTENTS LEFT IN DOSCB @V305066 01549000
  1551. STC R1,DOSEXTCT STORE IN DOSCB @V305066 01550000
  1552. PROCESS MVC SEARCHSD,EXTLOW LOWER EXTENT= SEARCH ARG @V305066 01551000
  1553. MVI RECSD,REC1 REC ON SEARCH ARG = 1 @V305066 01552000
  1554. MVC CCHHSD,EXTUP MOVE UPPER LIMIT FROM OSFST @V305066 01553000
  1555. MVI HHSD+1,LOWLIM0 LOHD = 0 IF DATA EXT TYPE 01 @V305066 01554000
  1556. CLI 0(R14),TYPE01 DATA EXT TYPE = 01 @V305066 01555000
  1557. BE DOWN2 YES @V305066 01556000
  1558. MVC HHSD+1(ONE),EXTLOW+3 IF SPLIT CYL - LOW HEAD LIM@VM03137 01557000
  1559. MVC CONSD+3(ONE),EXTUP+3 SPLIT CYL - UPHD TO CONT. @VM03137 01558000
  1560. * FLD 01559000
  1561. DOWN2 OI SDFLAG1,OPENSD FILE IS NOW OPEN @V305066 01560000
  1562. MVC CCHHRSD(FIVE),SEARCHSD INIT SRCH ARG BUCKET @VM03137 01561000
  1563. NI COMSD,F7 RESET NEW VOL IND. @V305066 01562000
  1564. NI COMSD+1,HEX7F RESET 'BYPASSED EXT' IND. OFF @V305066 01563000
  1565. MVC COMSD+2(ONE),EXTSEQ INIT EXTENT SEQ NO. @VM03137 01564000
  1566. USING OSFST,R14 ESTABLISH OSFST ADDRESSABILIY @V305066 01565000
  1567. L R14,DOSOSFST ADDRESS OF OSFST @V305066 01566000
  1568. MVC DOSDSMD,OSFSTFM MOVE FM TO DOSCB FROM OSFST @V305066 01567000
  1569. MVC DOSFORM,OSFSTRFM MOVE RECFM TO DOSCB FROM OSFST@V305066 01568000
  1570. B CHMOR ANY MORE FILES TO OPEN ? @VM03141 01569000
  1571. EJECT 01570000
  1572. OPEN TM SDFLAG1,OPENSD FILE ALREADY OPEN ? @V305066 01571000
  1573. BNO CHKCNTRL NO, FIRST TIME OPEN @V305066 01572000
  1574. ALLOPEN TM COMSD,NOEXTSD ANYMORE EXTENTS @V305066 01573000
  1575. BO TESTSW NO, TEST FOR END OF EXT SW @V305066 01574000
  1576. NI SDFLAG2,F7 TURN OFF SW @V305066 01575000
  1577. TM DTFSD+4,UNITEXC UNIT EXCEPTION - EOF @V305066 01576000
  1578. BZ NEXTXTNT GO GET NEXT EXTENT @V305066 01577000
  1579. USING BGCOM,R7 @V305066 01578000
  1580. RESETEOF NI DTFSD+4,FF-UNITEXC RESET UNIT EXCEPTION @VM03137 01579000
  1581. L R7,ASYSREF BGCOM ADDRESS @V305066 01580000
  1582. OI COMSD,EXITEOF SET SW TO EXIT TO EOF ROUT @V305066 01581000
  1583. LR R1,R9 POINT TO FREE AREA @VA04418 01582000
  1584. BAL R6,FREESTOR RELEASE ACQUIRED FREE STORAGE @VA04418 01583000
  1585. LH R14,PIBPT ADDRESS OF PIB TABLE @V305066 01584000
  1586. L R14,EIGHT(R14) AD CURRENT PSW SAVE AREA @VM03137 01585000
  1587. MVC 13(THREE,R14),EODSD EOF AD TO USER'S OLD PSW @VM03137 01586000
  1588. LOADWORK SVC SVC11 RETURN TO PROB. PROG. @V305066 01587000
  1589. TESTSW TM SDFLAG2,ENDEXT END OF EXT CONDITION? @V305066 01588000
  1590. BO LOADWORK EXIT TO MODULE TO READ LAST REC @V305066 01589000
  1591. B RESETEOF EOF EXIT @V305066 01590000
  1592. USING OSFST,R14 @V305066 01591000
  1593. NEXTXTNT SR R8,R8 CLEAR REGISTER @V305066 01592000
  1594. IC R8,DOSEXTCT POINTER TO NEXT EXTENT @V305066 01593000
  1595. LA R1,ONE(,R8) INCREM EXT POINTER BY 1 @VM03137 01594000
  1596. L R14,DOSOSFST POINTER TO OSFST @V305066 01595000
  1597. MH R8,H10 MULT BY LEN OF 1 EXT INFO @V305066 01596000
  1598. LA R14,OSFSTXTN PTR TO BEGIN EXT INFO IN DOSCB @V305066 01597000
  1599. AR R14,R8 INCREMENT TO RIGHT EXT INFO @V305066 01598000
  1600. SR R4,R4 CLEAR REGISTER @V305066 01599000
  1601. IC R4,DOSEXT NO. EXTENTS LEFT @V305066 01600000
  1602. B EXTENTS FILL DTF WITH EXT INFO @V305066 01601000
  1603. EJECT 01602000
  1604. VERIFY LA R1,DOSDSMD-Q24 POSITION I/P TO ADTLKP @VM03137 01603000
  1605. L R15,VCADTLKP PREPARE TO DO ADT LOOKUP @VM03093 01604000
  1606. BALR R14,R15 BRANCH @V305066 01605000
  1607. LTR R15,R15 SUCCESSFUL ? @V305066 01606000
  1608. BC 8,FOUNDIT YES @V305066 01607000
  1609. B ERR69E NO, ERROR @V305066 01608000
  1610. FOUNDIT MVC FULLWORD(FOUR),12(R1) SAVE NUCLEUS TABLE ADDRESS@VM03137 01609000
  1611. L R4,FULLWORD PLACE THIS ADDRESS IN REG. @V305066 01610000
  1612. LA R10,DISKTAB DISTINGUISH DEVICE TYPES @V305066 01611000
  1613. CLI THREE(R4),DEV3340 TABLE MATCH ADT DEV CODE - @VM03137 01612000
  1614. * 3340 01613000
  1615. BE TYP3340 YES - SEE WHAT TYPE OF 3340 @VM03137 01614000
  1616. LA R10,SIXTEEN(,R10) TWO TABLE ENTRIES FOR 2314 @VM03137 01615000
  1617. CLI 3(R4),TYP2314 DEV CODE = 2314 ? @VM03137 01616000
  1618. BE EQUAL YES @VM03137 01617000
  1619. LA R10,EIGHT(,R10) ENTRY FOR 3330 @V505098 01618000
  1620. CLI 3(R4),TYP3330 DEV CODE = 3350 ? @V505098 01619000
  1621. BE EQUAL YES @V505098 01620000
  1622. LA R10,EIGHT(R10) ENTRY FOR 3350 @V505098 01621000
  1623. CLI 3(R4),TYP3350 DEV CODE = 3350 ? @V505098 01622000
  1624. BE EQUAL YES @V505098 01623000
  1625. LA R10,EIGHT(R10) MUST BE 3330-11 @V505098 01624000
  1626. EQUAL CLI DEVSD,DEF2311 2311 DEF CODE IN DTF @V305066 01625000
  1627. BE EQUAL2 YES, GO SET SW @V305066 01626000
  1628. CLC 0(ONE,R10),DEVSD DTF DEV CODE MATCH PUB? @VM03137 01627000
  1629. BNE ISITWORK SEE IF WORKFILE @V305066 01628000
  1630. EQUAL3 MVC DEVSD,ONE(R10) MOVE DEV CODE TO DTF @VM03137 01629000
  1631. MVC DOS1SD,CCBAD STORE DOSCB ADDRESS IN DTF CCB @V305066 01630000
  1632. BR R6 @V305066 01631000
  1633. EQUAL2 OI CPBYTE2,SW2311 SET SW FOR LATER @V305066 01632000
  1634. B EQUAL3 BRANCH TO PUT CODE IN DTF @V305066 01633000
  1635. TYP3340 CLI PUBDEVT,DSK35MB 3340 35MB? @V305066 01634000
  1636. BE EQUAL YES @V305066 01635000
  1637. LA R10,EIGHT(,R10) INCREM TO NEXT TABLE ENTRY @VM03137 01636000
  1638. B EQUAL 70MB @V305066 01637000
  1639. ISITWORK TM SDFLAG1,SDWORK DTFSD WORKFILE ? @V305066 01638000
  1640. BO EQUAL3 YES, MODIFY DEVSD PER PUB @V305066 01639000
  1641. TM SDFLAG1,INPSD SD INPUT? @VA12559 01639250
  1642. BO EQUAL3 @VA12559 01639500
  1643. BZ EQUAL3 OUTPUT @VA12559 01639750
  1644. BADDEV LA R15,SEVEN INCOMP DEV TYPE @V305066 01640000
  1645. B BADOPEN BR TO DISPLAY ERROR MSG @V305066 01641000
  1646. EJECT 01642000
  1647. USING DTFSDW,R2 ESTABLISH ADDRESSABILIY @V305066 01643000
  1648. WORK MVC SDWCAP,TWO(R10) TRACK CAP COUNTER @VM03137 01644000
  1649. BAL R6,ADTCHECK SEE IF R/W CMS DISK? @V305066 01645000
  1650. MVC DOSFORM(TWO),V FIX VAR FLAG IN DOSCB @VM03137 01646000
  1651. CLC COMNAME,PLIOPT IS THIS THE PL/I COMPILER @VA07764 01647000
  1652. BNE TRACKCAP NO - TREAT AS USUAL @VA07764 01648000
  1653. MVC DOSFORM(TWO),F MAKE FILE FIXED SO COMPILER @VA07764 01649000
  1654. * WILL RUN MUCH FASTER 01650000
  1655. TRACKCAP MVC LOHDSDW(TWO),SIX(R10) LOHD AND UPHD FOR DEV TYPE@VM03137 01651000
  1656. MVC EXTUPLIM(FOUR),FOUR(R10) EXT UP LIM=MAX CCHH @VM03137 01652000
  1657. * FOR DEV 01653000
  1658. OI COMSDW,EXTOPENW INDICATE EXTENT OPENED @V305066 01654000
  1659. NI LOGMODSW,SWOFF SET LIOCS WORKFILE SW OFF @V305066 01655000
  1660. XC SRCHSDW(FIVE),SRCHSDW SEARCH ADDRESS AND REC = 0@VM03137 01656000
  1661. MVC CNTLIM(FIVE),REC LOW LIM AND REC TO COUNT AREA @VM03137 01657000
  1662. OI SDWFLAG1,OPENSDW WORK FILE IS OPEN @V305066 01658000
  1663. MVC DOSBLKSZ(TWO),LRECLSDW RECSIZE TO DOSCB @VM03137 01659000
  1664. B CHMOR ANY MORE FILES TO OPEN ? @V305066 01660000
  1665. SPACE 2 01661000
  1666. EJECT 01662000
  1667. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01663000
  1668. * ROUTINE TO LOCATE APPROPRIATE DOSCB, IF ONE EXITS, AND TO * 01664000
  1669. * STORE THE DOSCB ADDRESS IN THE FIRST CCB IN THE DTF. IF * 01665000
  1670. * NO MATCHING DOSCB IS FOUND, AN ERROR MESSAGE IS ISSUED AND * 01666000
  1671. * THE OPEN ROUTINE TERMINATED. * 01667000
  1672. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01668000
  1673. SPACE 2 01669000
  1674. USING DTFSD,R2 @V305066 01670000
  1675. GETDOSCB L R3,DOSFIRST LOCATE APPROPRIATE DOSCB @V305066 01671000
  1676. TEST LTR R3,R3 ANY DOSCBS ON DOSCB CHAIN ? @V305066 01672000
  1677. BNZ COMPDD YES, GO LOOK FOR RIGHT DOSCB @V305066 01673000
  1678. MVC SAVEFN(SEVEN),FILESD MOVE DISK FN TO SAVEFN @VA04418 01674000
  1679. LA R15,THREE CODE = 3 NO DOSCBS PRESENT @V305066 01675000
  1680. B BADOPEN BRANCH TO PRINT ERROR MESSAGE @V305066 01676000
  1681. COMPDD CLC DOSDD(SEVEN),FILESD DDNAME IN DOSCB = FN IN @VM03137 01677000
  1682. * DTF ? 01678000
  1683. BE STOREAD STORE DOSCB ADDRESS @V305066 01679000
  1684. USING DTFSD,R2 @V305066 01680000
  1685. NEXT L R3,DOSNEXT CONTINUE TO SCAN DOSCB CHAIN @V305066 01681000
  1686. LA R3,0(,R3) ZERO HIGH ORDER BYTE @V305066 01682000
  1687. B TEST BRANCH @V305066 01683000
  1688. STOREAD ST R3,CCBAD STORE DOSCB ADDRESS @V305066 01684000
  1689. BR R6 RETURN @V305066 01685000
  1690. EJECT 01686000
  1691. USING ADTSECT,R1 ESTABLISH ADDRESSABILITY @V305066 01687000
  1692. ADTCHECK TM ADTFLG1,ADTFRO READ ONLY DISK ? @V305066 01688000
  1693. BO ERR37E CANNOT WRITE TO READ ONLY DISK @V305066 01689000
  1694. TM ADTFLG2,ADTFROS OS DISK ? @V305066 01690000
  1695. BO OSDOSDSK YES, INVALID TO WRITE TO OS DISK @V305066 01691000
  1696. TM ADTFLG2,ADTFDOS DOS DISK ? @V305066 01692000
  1697. BO OSDOSDSK YES, INVALID TO WRITE TO DOS DISK@V305066 01693000
  1698. BR R6 RETURN TO MAIN LINE @V305066 01694000
  1699. OSDOSDSK LA R15,TWO INVALID TO WRITE TO OS/DOS DISK @V305066 01695000
  1700. B BADOPEN BRANCH TO PRINT ERROR MESSAGE @V305066 01696000
  1701. EJECT 01697000
  1702. USING DTFCP,R2 ESTABLISH ADDRESSABILITY @V305066 01698000
  1703. CPORDI EQU * @V305066 01699000
  1704. TM CPFLAG0,ASC ASCII=YES SPECIFIED @V305066 01700000
  1705. BO ASCIIERR YES,ERROR @V305066 01701000
  1706. CLI TYPECP,THIRTY2 DISK SYSTEM TABLE ? @V305066 01702000
  1707. BNL DISKS YES @V305066 01703000
  1708. SPACE 2 01704000
  1709. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01705000
  1710. * * 01706000
  1711. * * 01707000
  1712. * THIS ROUTINE PROCESSES DTF TYPE X'31' OR TAPE RESIDENT * 01708000
  1713. * SYSTEMS. THE DISK = PARAMETER HAS BEEN OMITTED FROM THE DTF * 01709000
  1714. * MACRO * 01710000
  1715. * * 01711000
  1716. * * 01712000
  1717. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01713000
  1718. SPACE 2 01714000
  1719. USING TAPERES,R2 ESTABLISH ADDRESSABILITY @V305066 01715000
  1720. NI CCBSW,FB INITIALIZE SWITCH @V305066 01716000
  1721. BAL R6,GETLUB OBTAIN LUB @V305066 01717000
  1722. CLI 0(R5),FF LOGICAL UNIT UNASSIGNED ? @V305066 01718000
  1723. BNE CHKIGN EITHER IGNORE OR ASSIGNED @V305066 01719000
  1724. B ASGNERR BRANCH TO PRINT ERROR MESSAGE @V305066 01720000
  1725. CHKIGN CLI 0(R5),FE LOGICAL UNIT IGNORED ? @V305066 01721000
  1726. BE SETSW TREAT AS RDR IF IGNORED @V305066 01722000
  1727. BAL R6,GETPUB OBTAIN PUB @V305066 01723000
  1728. MVZ TEMP,PUBDEVT DEVICE TYPE CODE TO SAVE @V305066 01724000
  1729. CHKRDR2 CLI TEMP,READZONE READER @V305066 01725000
  1730. BE SETSW YES @V305066 01726000
  1731. CLI TEMP,TWENTY PUNCH ? @V305066 01727000
  1732. BNE CHKPTR2 NO GO SEE IF PRINTER @V305066 01728000
  1733. OI CPOPEN1,HEX08 PUNCH @V305066 01729000
  1734. TM PUBDEVT,PCH2540 2540/3525 PUNCH @V305066 01730000
  1735. BO P2540 YES @V305066 01731000
  1736. CLI PUBDEVT,PCH2520 2520 PUNCH @V305066 01732000
  1737. BE P2520 YES @V305066 01733000
  1738. B UNTRCP ALL OTHERS @V305066 01734000
  1739. P2520 OI CPFLAG8,LSTPCH SYSLST/SYSPCH @V305066 01735000
  1740. P2540 TM CPFLAG8,HEX40 SYSPCH TO 2540 @V305066 01736000
  1741. BZ UNTRCP NO @V305066 01737000
  1742. OI CPFLAG8,HEX20 2540 PUNCH @V305066 01738000
  1743. B UNTRCP BRANCH. @VM03141 01739000
  1744. SETSW OI CPOPEN1,READER INDICATE DEVICE IS READER @V305066 01740000
  1745. BAL R6,LDIORG2 @V305066 01741000
  1746. B CHMOR ANYMORE FILES TO OPEN ? @V305066 01742000
  1747. SPACE 2 01743000
  1748. CHKPTR2 CLI TEMP,FORTY X'40' - PRINTER @V305066 01744000
  1749. BNE CKMGTP IS IT TAPE ? @V305066 01745000
  1750. OI CPOPEN1,PRTIND PRINTER @V305066 01746000
  1751. CLI PUBDEVT,PRTUCS DOES PRINTER HAVE UCS @V305066 01747000
  1752. BL UNTRCP NO @V305066 01748000
  1753. LR R1,R2 R1 POINTS TO DTF CCB @V305066 01749000
  1754. MVC TEMPSAVE(THREE),TAPERES+9 SAVE CC @VM03137 01750000
  1755. LA R3,STMODCCW SET MODE CCW @V305066 01751000
  1756. ST R3,HOLD STORE TEMPORARILY @V305066 01752000
  1757. MVC TAPERES+9(THREE),HOLD+1 ADDR OF SET MODE CCW @VM03137 01753000
  1758. SVC EXCP ISSUE IO REQUEST @V305066 01754000
  1759. MVC TAPERES+9(THREE),TEMPSAVE REST ORIG CCW ADDR @VM03137 01755000
  1760. * TO CCB 01756000
  1761. B UNTRCP OPEN UNIT RECORD DTFS @V305066 01757000
  1762. CKMGTP CLI TEMP,FIFTY TAPE ? @V305066 01758000
  1763. BNE TAPERR TAPE ERROR @V305066 01759000
  1764. CLI PUBDEVT,TCR TAPE CARTRIDGE READER @V305066 01760000
  1765. BNE TAPEOK IF TCR, INVALID DEVICE @V305066 01761000
  1766. TAPERR MVC SAVEFN(SEVEN),CPFN1 MOVE FILENAME TO MSG SAVE @VM03137 01762000
  1767. * AREA 01763000
  1768. CODE7 LA R15,SEVEN OPEN TAPE, BUT PUB DEV TYPE INVAL@V305066 01764000
  1769. B BADOPEN BRANCH TO PRINT ERROR MESSAGE @V305066 01765000
  1770. TAPEOK BAL R6,CRPLIST CREATE TAPEIO PLIST @V305066 01766000
  1771. MVC FUNC,SENSE SENSE @V305066 01767000
  1772. BAL R6,IOROUT PERFORM SENSE @V305066 01768000
  1773. BAL R6,CHKMODE VERIFY DRIVE AGREES PUB MODE @V305066 01769000
  1774. CLI TAPERES+6,HEX01 PROGRAMMER LOGICAL UNIT @V305066 01770000
  1775. BE PROG YES, CONTINUE OPEN @V305066 01771000
  1776. BAL R6,SYSFILE SPECIAL PROCESSING FOR SYS FILES @V305066 01772000
  1777. BAL R4,SYSUNIT SYSIPT/SYSRDR @V305066 01773000
  1778. PROG OI CPOPEN1,DEVTAP DEV TYPE = X'01' TAPE @V305066 01774000
  1779. TM CPFLAG8,CPIN INPUT FILE ? @V305066 01775000
  1780. BO INITIAL2 @V305066 01776000
  1781. TM CPFLAG8,FORTY X'40' SYSLST/SYSPCH ASSIGNED @V305066 01777000
  1782. BZ INITIAL2 @V305066 01778000
  1783. OI CPFLAG8,HEX08 SYSLST/SYSPCH ON O/P TAPE @V305066 01779000
  1784. MVC CPFN1(EIGHT),MULTVOL VOL SWITCHING ROUTINE @VM03137 01780000
  1785. INITIAL2 LA R6,MGTPOP2 @V305066 01781000
  1786. LDIORG2 TM CPOPEN1,TWENTY TWO IOAREAS SUPPORTED @V305066 01782000
  1787. BCR 8,R6 YES @V305066 01783000
  1788. TM CPFLAG8,CPIN INPUT ? @V305066 01784000
  1789. BCR 1,R6 YES @V305066 01785000
  1790. LH R1,PIBPT POINTER TO PIB TABLE @V305066 01786000
  1791. L R1,EIGHT(R1) USER SAVEAREA ADDRESS @VM03137 01787000
  1792. LA R1,SIXTEEN(R1) R1 - REG SAVEAREA @VM03137 01788000
  1793. L R3,CPFLAG9 IOAREA2 ADDRESS @V305066 01789000
  1794. TM CPOPEN1,PRTPCH PRINT/PUNCH @V305066 01790000
  1795. BZ EXC BRANCH IF NEITHER @VM03141 01791000
  1796. BCTR R3,0 @V305066 01792000
  1797. EXC SR R4,R4 CLEAR REGISTER @V305066 01793000
  1798. IC R4,CPINST+1 IOREG NO. @V305066 01794000
  1799. SRL R4,FOUR GET IOREG NO. @VM03137 01795000
  1800. CH R4,CONNINE IOREG < 9 ? @V305066 01796000
  1801. BL LTNINE2 ES @V305066 01797000
  1802. SH R4,CONNINE DECREM IOREG BY 9 @V305066 01798000
  1803. B MPY2 CONTINUE SHORTLY BELOW @VM03141 01799000
  1804. LTNINE2 AH R4,H7 INCREMENT BY 7 @V305066 01800000
  1805. MPY2 SLL R4,TWO MULTIPLY BY 4 @VM03137 01801000
  1806. AR R1,R4 DISP + SAVE AREA ADDRESS @V305066 01802000
  1807. ST R3,0(R1) STORE R3 IN REG SAVE AREA @V305066 01803000
  1808. BR R6 @V305066 01804000
  1809. MGTPOP2 CLI TAPERES+6,HEX01 PROGRAMMER LOGICAL UNIT @V305066 01805000
  1810. BNE CHMOR IF SYS UNIT, DISCONTINUE OPEN @V305066 01806000
  1811. MVI CPTYPE1,CPTAP TAPE WORKFILE @V305066 01807000
  1812. TM CPFLAG8,CPIN INPUT ? @V305066 01808000
  1813. BO BOMT06 GO TO CALL OPEN FOR WORKFILES @V305066 01809000
  1814. OI CPOPEN1,HEX08 TAPE O/P FILE @V305066 01810000
  1815. B BOMT06 PROCESS AS TAPE WORKFILE @V305066 01811000
  1816. UNTRCP L R3,CPCCW0+4 RECORD COUNT FROM CCW @V305066 01812000
  1817. SH R3,KON1 DECREM BUFFER LENGTH BY 1 @V305066 01813000
  1818. ST R3,CPCCW0+4 STORE BACK IN CCW @V305066 01814000
  1819. PPRT L R3,CPCCW0 BUFFER ADDRESS IN CCW @V305066 01815000
  1820. AH R3,KON1 POINT TO SEC BYTE OF BUFFER @V305066 01816000
  1821. ST R3,CPCCW0 STORE BACK IN CCW @V305066 01817000
  1822. L R3,CPFLAG9 ALTERNATE I/O AREA ADDRESS @V305066 01818000
  1823. AH R3,KON1 POINT TO SEC BYTE OF ALT AREA @V305066 01819000
  1824. ST R3,CPFLAG9 STORE BACK IN DTF FIELD @V305066 01820000
  1825. OI CPFLAG8,IO2 2 IO AREAS @V305066 01821000
  1826. BAL R6,LDIORG2 @V305066 01822000
  1827. B CHMOR ANYMORE FILES TO OPEN ? @V305066 01823000
  1828. ASCIIERR MVC SAVEFN(SEVEN),CPFN1 FILENAME FOR MSG @VM03137 01824000
  1829. B ERR11 BR TO PRINT MSG @V305066 01825000
  1830. EJECT 01826000
  1831. USING DTFCP,R2 ESTABLISH ADDRESSABILIY @V305066 01827000
  1832. DISKS EQU * @VA04418 01828000
  1833. LUB BAL R6,GETLUB GET LUB ENTRY @V305066 01829000
  1834. CHKFFFE CLI 0(R5),FE LOG UNIT UNASSIGNED OR IGNORED ? @V305066 01830000
  1835. BL PUB1 NOT IGNORE OR UNASSIGN - GET PUB @V305066 01831000
  1836. BE RDRCI GO PROCESS AS READER FILE @V305066 01832000
  1837. B ASGNERR GO TO PRINT ERROR MESSAGE @V305066 01833000
  1838. PUB1 MVC SAVEFN(SEVEN),CPFN FILENAME @VA04418 01834000
  1839. BAL R6,GETPUB GET PUB ENTRY @VA04418 01835000
  1840. USING PUBADR,R5 ESTABLISH PUB ADDRESSABILITY @V305066 01836000
  1841. MVZ TEMP(ONE),PUBDEVT SAVE DEVICE TYPE ZONE BITS @VM03137 01837000
  1842. CLI TEMP,SIXTY DASD DEVICE ? @V305066 01838000
  1843. BE INDISC YES @V305066 01839000
  1844. TM CPDSK,FF IS DISK POSSIBLE WITH THIS DTF ? @V305066 01840000
  1845. BO CKRST NO @V305066 01841000
  1846. MVI CPDEVID+1,TYPE00 INDICATE NON-DISK DEVICE @V305066 01842000
  1847. LR R1,R2 PLACE DTF IN WORK REGISTER @V305066 01843000
  1848. LA R1,Q112(R2) INCREM BY 112 @VM03137 01844000
  1849. ST R1,CPCCW1 STORE UPD CCW IN CCB @V305066 01845000
  1850. TM CPFLAG5,CPIN INPUT FILE ? @V305066 01846000
  1851. BO INOM YES @V305066 01847000
  1852. MVC CPCCWI+1(SEVEN),CPCCWO+1 SET UP CCW FOR O/P IN @VM03137 01848000
  1853. * DTF 01849000
  1854. NI CPCCWI+4,B7 DECHAIN CCW @V305066 01850000
  1855. MVI CPCCWI,WRITEOP PUT WRITE COMMAND CODE IN CCW @V305066 01851000
  1856. B CKRST FIND DEVICE TYPE @V305066 01852000
  1857. INOM MVI CPCCWI,READOP PUT READ COMMAND IN CCW FOR IP @V305066 01853000
  1858. CKRST MVI CPFLAG4,OTHER X'F0' = OTHER THAN RDR/DASD DEV @V305066 01854000
  1859. CKRDR CLI TEMP,READZONE READER? @V305066 01855000
  1860. BE SETSW3 GO OPEN DTFCP READER FILE @V305066 01856000
  1861. CLI TEMP,TWENTY X'20' PUNCH @V305066 01857000
  1862. BNE CKPTR IF NOT SEE IF PRINTER @V305066 01858000
  1863. B PUNCH GO OPEN DTFCP PUNCH FILE @V305066 01859000
  1864. INDISC BAL R6,GETDOSCB GET DISK DOSCB @V305066 01860000
  1865. CLC DOSYSXXX(TWO),DTFCP+6 DTF SYSXXX = DOSCB SYSXXX?@VM03137 01861000
  1866. BNE OPENERR1 NO, ERROR ON DTFDI AND DTFCP @V305066 01862000
  1867. MVC DOSCB1,CCBAD MOVE DOSCB ADD TO CCB (DTF) @V305066 01863000
  1868. MVI CPDEVTY,TWENTY DISK DEVICE X'20' @V305066 01864000
  1869. OI CPFLAG1,HEX08 VERSION 2 DISK= YES INDICATOR @V305066 01865000
  1870. MVI CPFLAG4,DASD X'F3' DASD @V305066 01866000
  1871. MVC DOSBLKSZ(TWO),CPDATLEN LRECL TO DOSCB FOR CP @VM03137 01867000
  1872. * OR DI 01868000
  1873. MVC DOSFORM(TWO),F DTFCP FIXED UNBLOCKED @VM03137 01869000
  1874. CLI TYPECP,THIRTY3 DTFDI @V305066 01870000
  1875. BNE CPCONT NO, CONTINUE @V305066 01871000
  1876. BAL R6,SLIBIT TURN OFF SLIBIT @V305066 01872000
  1877. CPCONT CLI PUBDEVT,DSK2314 2314/2319 @V305066 01873000
  1878. BE INIT14 YES @V305066 01874000
  1879. CLI PUBDEVT,DSK3330 3330 @V305066 01875000
  1880. BE INIT30 YES @V305066 01876000
  1881. CLI PUBDEVT,DSK333B 3330-11 @V505098 01877000
  1882. BE INIT3B YES @V505098 01878000
  1883. CLI PUBDEVT,DSK3350 3350 @V505098 01879000
  1884. BE INIT50 YES @V505098 01880000
  1885. MVI CPDEV,HEX00 MOVE 3340 DEV CODE TO DTF @V305066 01881000
  1886. MVN CPDEV,PUBDEVT SET CORRECT DEV. CODE @V305066 01882000
  1887. LA R8,CON3340 POINT TO 3340 CONSTANTS @V305066 01883000
  1888. COMPUTE TM CPFLAG5,CPIN INPUT FILE? @V305066 01884000
  1889. BO INPCP YES @V305066 01885000
  1890. MVI CPRECS,RECTRK1 DEF RECS/TRK TO CMS DISK @V305066 01886000
  1891. B SYSO CONTINUE OPEN @V305066 01887000
  1892. OPENERR1 LA R15,ONE NO MATCHING SYSXXX @V305066 01888000
  1893. B BADOPEN BR TO PRINT ERROR MESSAGE @V305066 01889000
  1894. SPACE 2 01890000
  1895. * COMPUTE NUMBER OF RECORDS PER TRACK 01891000
  1896. * FOR 2314 USE FORMULA: 01892000
  1897. * L+(7294-RECSIZE)/(101+(534*RECSIZE)/512) 01893000
  1898. * FOR 3330 USE FORMULA: 01894000
  1899. * L+(13030-RECISZE)/(135+(512*RECSIZE)/512) 01895000
  1900. * FOR 3340 USE FORMULA: 01896000
  1901. * L+(8368-RECSIZE)/(167+(512*RECSIZE)/512) 01897000
  1902. SPACE 2 01898000
  1903. INPCP MVC CPBYTE,TYPECP SAVE DTF TYPE @V305066 01899000
  1904. MVI CPRECS,TWO DEF RECS/TRK TO CMS DISK @VM03137 01900000
  1905. LH R10,0(R8) GET TOLERANCE FACTOR @V305066 01901000
  1906. MH R10,CPDATLEN MULT BY RECSIZE @V305066 01902000
  1907. SRL R10,NINE DIVIDE BY 512 @VM03137 01903000
  1908. AH R10,TWO(R8) ADD OVERHEAD CONSTANT @VM03137 01904000
  1909. LH R7,FOUR(R8) GET TRACK CAPACITY @VM03137 01905000
  1910. SH R7,CPDATLEN SUBTRACT RECSIZE @V305066 01906000
  1911. SR R6,R6 CLEAR REGISTER FOR DIVIDE @V305066 01907000
  1912. DR R6,R10 DIVIDE @V305066 01908000
  1913. AH R7,KON2 ADD TWO @V305066 01909000
  1914. STH R7,FULSAV SAVE RECS/TRK @V305066 01910000
  1915. B SYSO CONTINUE OPEN @V305066 01911000
  1916. SLIBIT TM CPFLAG5,CPIN INPUT FILE ? @V305066 01912000
  1917. BZ RTNCP NO, OUTPUT @V305066 01913000
  1918. NI CPCCWI+4,DF TURN OFF SLI BIT @V305066 01914000
  1919. RTNCP BR R6 RETURN TO MAIN LINE @V305066 01915000
  1920. INIT14 MVI CPDEV,DEV2314 2314 DEV CODE @V305066 01916000
  1921. LA R8,CON2314 POINT TO 2314 CONSTANTS @V305066 01917000
  1922. B COMPUTE COMPUTE RECS/TRK @V305066 01918000
  1923. INIT30 MVI CPDEV,DEV3330 3330 DEV CODE @V305066 01919000
  1924. LA R8,CON3330 POINT TO 3330 CONSTANTS @V305066 01920000
  1925. B COMPUTE COMPUTE RECS/TRK @V305066 01921000
  1926. INIT3B MVI CPDEV,DEV333B 3330-11 DEV CODE @V505098 01922000
  1927. LA R8,CON3330 POINT TO 3330-11 CONSTANTS @V505098 01923000
  1928. B COMPUTE COMPUTE RECS/TRK @V505098 01924000
  1929. INIT50 MVI CPDEV,DEV3350 3350 DEV CODE @V505098 01925000
  1930. LA R8,CON3350 POINT TO 3350 CONSTANTS @V505098 01926000
  1931. B COMPUTE COMPUTE RECS/TRK @V505098 01927000
  1932. CKPTR CLI TEMP,FORTY X'40' PRINTER @V305066 01928000
  1933. BE PRINTIN GO OPEN DTFCP PRINTER FILE @V305066 01929000
  1934. CLI TEMP,FIFTY TAPE DEVICE ? @V305066 01930000
  1935. BNE DEVERR NO, ERROR INVALID DEVICE TYPE @V305066 01931000
  1936. CLI PUBDEVT,TCR TAPE CARTRIDGE READER @V305066 01932000
  1937. BE DEVERR IF TCR, DEVICE ERROR @V305066 01933000
  1938. BAL R6,CRPLIST CREATE PLIST FOR TAPEIO @V305066 01934000
  1939. MVC FUNC,SENSE SENSE @V305066 01935000
  1940. BAL R6,IOROUT PERFORM IO @V305066 01936000
  1941. BAL R6,CHKMODE VER TAPE MODE AGREES WITH PUB @V305066 01937000
  1942. CLI DTFCP+6,HEX01 PROGRAMMER LOGICAL UNIT @V305066 01938000
  1943. BE CPCONT1 YES, SKIP SYS FILE PROCESSING @V305066 01939000
  1944. BAL R6,SYSFILE PROCESS SYSTEM FILES @V305066 01940000
  1945. BAL R4,SYSUNIT MAKE SYS UNIT CHECK @V305066 01941000
  1946. CLI TYPECP,THIRTY3 DTF TYPE = X'33' - DTFDI @V305066 01942000
  1947. BNE CPCONT1 NO @V305066 01943000
  1948. BAL R6,SLIBIT TURN OFF SLIBIT @V305066 01944000
  1949. CPCONT1 MVI CPDEVTY,CPTAP INDICATE TAPE DEVICE @V305066 01945000
  1950. MVI CPFLAG4,TAPDEV INDICATE TAPE DEVICE @V305066 01946000
  1951. TM CPFLAG5,CPIN INPUT ? @V305066 01947000
  1952. BO INITIAL YES @V305066 01948000
  1953. TM CPFLAG5,PCHFILE SYSLST OR SYSPCH O/P ? @V305066 01949000
  1954. BZ INITIAL NO @V305066 01950000
  1955. OI CPFLAG5,HEX02 SET SYSLST/SYSPCH O/P TAPE @V305066 01951000
  1956. MVC CPFN(EIGHT),MULTVOL NAME OF VOL SWITCHING PHASE @VM03137 01952000
  1957. INITIAL LA R6,MGTPOP INITIALIZE BRANCH REGISTER @V305066 01953000
  1958. LDIORG TM CPFLAG5,IO2 2 IOAREAS @V305066 01954000
  1959. BCR 8,R6 NO I/O REG, GO TO CORRECT INSTR. @V305066 01955000
  1960. TM CPFLAG5,CPIN INPUT ? @V305066 01956000
  1961. BCR 1,R6 INPUT, NO LOAD NEEDED @V305066 01957000
  1962. LH R14,PIBPT PIB POINTER @V305066 01958000
  1963. L R14,EIGHT(R14) USER SAVEAREA @VM03137 01959000
  1964. LA R14,SIXTEEN(R14) R1 - REG SAVEAREA @VM03137 01960000
  1965. L R8,CPFLAG5 IOAREA2 ADDRESS TO REGISTER @V305066 01961000
  1966. TM CPDEVTY,PRTPCH PRINTER/PUNCH @V305066 01962000
  1967. BZ EXEC NO @V305066 01963000
  1968. BCTR R8,0 POINT TO CONTROL CHARACTER @V305066 01964000
  1969. EXEC SR R4,R4 CLEAR REGISTER @VM03139 01965000
  1970. TM CPDSK,FF DISK POSSSBLE WITH THIS DTF? @V305066 01966000
  1971. BO SYSLOD NO @V305066 01967000
  1972. IC R4,CPINSTR+1 OBTAIN IOREG NO. @V305066 01968000
  1973. B STOR BRANCH. @VM03141 01969000
  1974. SYSLOD IC R4,CPIOREG IOREG FOR NON-DISK @V305066 01970000
  1975. STOR SRL R4,4 GET IOREG NO. @V305066 01971000
  1976. CH R4,CONNINE IOREG < 9 ? @V305066 01972000
  1977. BL LTNINE YES @V305066 01973000
  1978. SH R4,CONNINE SUBTRACT 9 FROM IOREG @V305066 01974000
  1979. B MYP CONTINUE SHORTLY BELOW @VM03141 01975000
  1980. LTNINE LA R4,SEVEN(R4) INCREM BY 7 @VM03137 01976000
  1981. MYP SLL R4,TWO MULTIPLY BY 4 @VM03137 01977000
  1982. AR R14,R4 DISP + SAVE ADDRESS FOR REG @V305066 01978000
  1983. ST R8,0(R14) IOAREA1 ADDRESS TO REG SAVE AREA@V305066 01979000
  1984. BR R6 @V305066 01980000
  1985. SYSO MVI TYPECP,TWENTY DISK DTF TYPE @V305066 01981000
  1986. TM CPFLAG5,CPIN INPUT ? @V305066 01982000
  1987. BO STKON YES @V305066 01983000
  1988. MVI CPDEVID+1,TWENTY X'20' FOR O/P @V305066 01984000
  1989. B STKON1 CONTINUE SHORTLY BELOW @VM03140 01985000
  1990. STKON MVI CPDEVID+1,HEX18 MOVE CONSTANT TO DTF @V305066 01986000
  1991. STKON1 BAL R6,LDIORG CALL SUBROUTINE @VM03140 01987000
  1992. TM CPFLAG1,INPSD IS IT INPUT FILE @V305066 01988000
  1993. BNO OUT2 NO, MUST BE OUTPUT @V305066 01989000
  1994. TM CPFLAG1,OPENSD FILE ALREADY OPEN ? @V305066 01990000
  1995. BO ALLOPEN ALREADY OPEN @V305066 01991000
  1996. B CONTINUE PROCESS AS INPUT @V305066 01992000
  1997. MGTPOP CLI DTFCP+6,HEX01 PROGRAMMER LOGICAL UNIT @V305066 01993000
  1998. BNE CHMOR MUST BE SYSTEM FILE @V305066 01994000
  1999. TM CPFLAG5,CPIN INPUT ? @V305066 01995000
  2000. BO INWKFL YES @V305066 01996000
  2001. B OUTWKFL OUTPUT FILE @V305066 01997000
  2002. EJECT 01998000
  2003. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01999000
  2004. * THIS ROUTINE WILL CORRECTLY POSITION A TAPE ASSOCIATED * 02000000
  2005. * WITH A SYSTEM LOGICAL UNIT (DTFCP OR DTFDI). SUCH POSITIONING * 02001000
  2006. * WILL ELIMINATE THE NEED FOR NORMAL OPEN PROCESSING. * 02002000
  2007. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02003000
  2008. SPACE 2 02004000
  2009. SYSUNIT CLC DTFCP+6(TWO),IPTRDR SYSIPT/SYSRDR @VM03137 02005000
  2010. BCR 2,R4 CONTINUE TO OPEN @V305066 02006000
  2011. MVC FUNC,READ PREPARE TO READ RECORD @V305066 02007000
  2012. MVC BUFFLEN(FOUR),LENGTH INCREASE BUF LEN TO 82 @VM03137 02008000
  2013. READTM LA R3,READTM IF TM ON NEXT IO, GO HERE @V305066 02009000
  2014. BAL R6,IO PERFORM IO @V305066 02010000
  2015. MVC BUFFLEN,EIGHTY RESTORE BUFFLEN TO 80 @V305066 02011000
  2016. CLC BYTES(FOUR),READ80 80 BYTES READ @VM03137 02012000
  2017. BE BACKSP YES, OK @V305066 02013000
  2018. CLC BYTES(FOUR),READ81 81 BYTES READ @VM03137 02014000
  2019. BE BACKSP YES, OK @V305066 02015000
  2020. BAL R6,CVTUNIT CONVERT SYS LOG UNIT @V305066 02016000
  2021. LA R15,SIXTEEN SYSIPT/SYSRDR EXCEEDS 81 @V305066 02017000
  2022. B BADOPEN BR TO PRINT ERROR @V305066 02018000
  2023. BACKSP MVC FUNC,BSR BACKSPACE RECORD @V305066 02019000
  2024. BAL R6,IOROUT ISSUE IO @V305066 02020000
  2025. BR R4 RETURN TO MAINLINE @V305066 02021000
  2026. SPACE 2 02022000
  2027. SYSFILE TM BUFF2,LOADPT IS TAPE AT LOADPT? @V305066 02023000
  2028. BCR 8,R6 NO, DO NOT REPOSITION TAPE @V305066 02024000
  2029. CLC DTFCP+6(TWO),IPTRDR SYSIPT/SYSRDR @VM03137 02025000
  2030. BC 2,SYSLST NO, MUST BE SYSLST @V305066 02026000
  2031. MVC FUNC,READ PREPARE TO SEE IF LABELS @V305066 02027000
  2032. LA R1,PLIST POINT TO PLIST @V305066 02028000
  2033. SVC SVC202 ISSUE IO @VM03137 02029000
  2034. DC AL4(TM2) ERROR ADDRESS @V305066 02030000
  2035. CLC BUFFER(FOUR),VOL1 VOL1 LABEL READ @VM03137 02031000
  2036. BNE REWTAP NO LABELS/NO TM - REWIND @V305066 02032000
  2037. MVC FUNC,FSF FORWARD SPACE FILE BEYOND TM @V305066 02033000
  2038. LA R1,PLIST POINT TO PLIST @V305066 02034000
  2039. SVC SVC202 ISSUE IO @VM03137 02035000
  2040. DC AL4(BADTAPIO) ERROR ADDRESS @V305066 02036000
  2041. BR R6 RETURN TO MAIN LINE @V305066 02037000
  2042. REWTAP MVC FUNC,REW REWIND REQUEST @V305066 02038000
  2043. LA R1,PLIST POINT TO PLIST @V305066 02039000
  2044. SVC SVC202 ISSUE IO @VM03137 02040000
  2045. DC AL4(BADTAPIO) ERROR ADDRESS @V305066 02041000
  2046. BR R6 RETURN TO MAIN LINE @V305066 02042000
  2047. SYSLST MVC FUNC,WTM IF SYSLST, WRITE TM @V305066 02043000
  2048. LA R1,PLIST POINT TO PLIST @V305066 02044000
  2049. SVC SVC202 ISSUE IO @VM03137 02045000
  2050. DC AL4(BADTAPIO) ERROR ADDRESS @V305066 02046000
  2051. BR R6 RETURN TO MAIN LINE @V305066 02047000
  2052. SPACE 2 02048000
  2053. TM2 CH R15,TM TM ENCOUNTERED? @V305066 02049000
  2054. BCR 8,R6 YES, NO LABELS @V305066 02050000
  2055. B BADTAPIO OTHERWISE ERROR @V305066 02051000
  2056. SPACE 2 02052000
  2057. EJECT 02053000
  2058. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02054000
  2059. * * 02055000
  2060. * ROUTINE TO OPEN DTFCP OR DTFDI TAPE OUTPUT FILES * 02056000
  2061. * * 02057000
  2062. * * 02058000
  2063. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02059000
  2064. SPACE 4 02060000
  2065. OUTWKFL OI CPFLAG1,HEX08 TAPE O/P INDICATOR @V305066 02061000
  2066. SR R3,R3 CLEAR REGISTER 3 @V305066 02062000
  2067. MVC FUNC,REW PREPARE TO REWIND TAPE @V305066 02063000
  2068. BAL R6,IOROUT PERFORM IO @V305066 02064000
  2069. MVC FUNC,READ ISSUE READ REQUEST @V305066 02065000
  2070. LA R1,PLIST PREPARE TO ISSUE TAPEIO REQUEST @V305066 02066000
  2071. SVC SVC202 ISSUE REQUEST @VM03137 02067000
  2072. DC AL4(TM1) ERROR ROUTINE @V305066 02068000
  2073. DOSENSE MVC FUNC,REW PREPARE TO REWIND @V305066 02069000
  2074. BAL R6,IOROUT PERFORM IO @V305066 02070000
  2075. MVC FUNC,SENSE PREPARE TO DO SENSE @V305066 02071000
  2076. BAL R6,IOROUT PERFORM IO @V305066 02072000
  2077. TM BUFF2,LOADPT IS TAPE AT LOADPT? @V305066 02073000
  2078. BC 8,TMREAD NO @V305066 02074000
  2079. MVC FUNC,READ PREPARE TO READ @V305066 02075000
  2080. LA R1,PLIST PREPARE TO ISSUE READ @V305066 02076000
  2081. SVC SVC202 ... @VM03137 02077000
  2082. DC AL4(TM8) ERROR ADDRESS @V305066 02078000
  2083. TMREAD LTR R3,R3 TM MARK READ? @V305066 02079000
  2084. BC 2,SETSW2 YES, R3 > 0 @V305066 02080000
  2085. MVC FUNC,REW OTHERWISE, REWIND TAPE @V305066 02081000
  2086. BAL R6,IOROUT PERFORM IO @V305066 02082000
  2087. SETSW2 NI CPFLAG5,FE TURN OFF TAPE LABELED SWITCH @V305066 02083000
  2088. B CHMOR ANYMORE FILES TO OPEN ? @V305066 02084000
  2089. TM1 CH R15,TM TAPE MARK ENCOUNTERED @V305066 02085000
  2090. BH BADTAPIO NO, OTHER ERROR @V305066 02086000
  2091. BL BADTAPIO NO, OTHER ERROR @V305066 02087000
  2092. LA R3,ONE R3=1 MEANS TAPE MARK FOUND @V305066 02088000
  2093. B DOSENSE BRANCH. @VM03141 02089000
  2094. TM8 CH R15,TM TAPE MARK ENCOUNTERED @V305066 02090000
  2095. BE TMREAD YES,CONTINUE @V305066 02091000
  2096. B BADTAPIO OTHERWISE, ERROR @V305066 02092000
  2097. EJECT 02093000
  2098. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02094000
  2099. * * 02095000
  2100. * ROUTINE TO OPEN DTFCP OR DTFDI TAPE INPUT FILES * 02096000
  2101. * * 02097000
  2102. * * 02098000
  2103. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02099000
  2104. SPACE 4 02100000
  2105. INWKFL NI CPFLAG1,FD TURN OFF DISK I/P INDICATOR @V305066 02101000
  2106. TM CPFLAG0,ASC ASCII SPECIFIED @V305066 02102000
  2107. BO ASCIIERR YES, ERROR @V305066 02103000
  2108. SR R14,R14 CLEAR REGISTER 14 @V305066 02104000
  2109. TM CPFLAG1,CON80 REWIND OPTION SPECIFIED ? @VM03139 02105000
  2110. BO DETPATH NO, SKIP REWIND OPTION @V305066 02106000
  2111. MVC FUNC,REW REWIND @V305066 02107000
  2112. BAL R6,IOROUT @V305066 02108000
  2113. DETPATH MVC FUNC,SENSE PREPARE FOR SENSE OPERATION @V305066 02109000
  2114. BAL R6,IOROUT PERFORM IO @V305066 02110000
  2115. TM BUFF2,LOADPT IS TAPE AT LOADPT ? @VM03139 02111000
  2116. BC 8,ZEROR3 NO @V305066 02112000
  2117. LA R14,FOUR(,R14) ADJUST PTR FOR LOADPT @VM03137 02113000
  2118. ZEROR3 SR R3,R3 CLEAR REGISTER @V305066 02114000
  2119. MVC FUNC,READ READ @V305066 02115000
  2120. LA R1,PLIST PREPARE TO ISSUE READ @V305066 02116000
  2121. SVC SVC202 ISSUE IO @VM03137 02117000
  2122. DC AL4(TM4) ERROR ROUTINE @V305066 02118000
  2123. CHKLABEL CLC BUFFER(FOUR),VOL1READ VOL1 LABEL READ ? @VM03137 02119000
  2124. BNE HDR1CHK NO @V305066 02120000
  2125. LA R14,EIGHT(,R14) ADJUST PTR FOR LABEL FILE @VM03137 02121000
  2126. BOCPT4 L R14,PROCTAB(R14) ADD OF PROCEDURE LIST @V305066 02122000
  2127. PROCRUN1 L R1,0(R14) @V305066 02123000
  2128. BAL R6,0(R1) BR TO ROUTINE @V305066 02124000
  2129. PROCRUN2 LA R14,FOUR(,R14) ADDR NEXT SUBROUTINE @VM03137 02125000
  2130. B PROCRUN1 ... @V305066 02126000
  2131. SPACE 2 02127000
  2132. * PROCEDURE LIST 02128000
  2133. PROCTAB DC A(PROC7) @V305066 02129000
  2134. DC A(PROC7) @V305066 02130000
  2135. DC A(PROC6) @V305066 02131000
  2136. DC A(PROC5) @V305066 02132000
  2137. * ROUTINE ADDRESSES 02133000
  2138. PROC5 DC A(VOLSKIP) SKIP ADDITIONAL VOL LABELS @V305066 02134000
  2139. PROC6 DC A(FWSPTM) FORWARD SPACE TO TAPE MARK @V305066 02135000
  2140. DC A(EXITNLB) EXIT TAPE UNLABELED @V305066 02136000
  2141. PROC7 DC A(EXITNLAB) EXIT TAPE UNLABELED @V305066 02137000
  2142. SPACE 2 02138000
  2143. VOLSKIP MVC FUNC,READ PREPARE TO READ @V305066 02139000
  2144. VOLSKIP1 MVI BUFFER,BLANK PROPAGATE BLANKS THROUGH @V305066 02140000
  2145. MVC BUFFER+1(Q79),BUFFER IO AREA @VM03137 02141000
  2146. LA R1,PLIST PREPARE TO ISSUE IO @V305066 02142000
  2147. SVC SVC202 ISSUE IO @VM03137 02143000
  2148. DC AL4(BADTAPIO) ERROR ADD @V305066 02144000
  2149. CLC BUFFER(FOUR),VOL1 VOL1 LABEL READ @VM03137 02145000
  2150. BE VOLSKIP1 READ AGAIN... @V305066 02146000
  2151. CLC BUFFER(THREE),UVL UVL LABEL READ @VM03137 02147000
  2152. BE VOLSKIP1 YES, READ AGAIN... @V305066 02148000
  2153. CLC BUFFER(FOUR),HDR1 HDR1 LABEL READ @VM03137 02149000
  2154. BNE ERR1 STDLAB BUT NO HDR1 @V305066 02150000
  2155. BR R6 RETURN @V305066 02151000
  2156. FWSPTM MVC FUNC,FSF FORWARD SPACE FILE @V305066 02152000
  2157. LA R1,PLIST PREPARE TO ISSUE IO @V305066 02153000
  2158. SVC SVC202 ISSUE IO @VM03137 02154000
  2159. DC AL4(TM3) ERROR ADDRESS @V305066 02155000
  2160. BR R6 RETURN @V305066 02156000
  2161. HDR1CHK CLC BUFFER(FOUR),HDR1 HDR1 LABEL READ @VM03137 02157000
  2162. BNE BOCPT4 MUST BE NOLABEL @V305066 02158000
  2163. LA R14,EIGHT(,R14) ADJUST PTR FOR LABELED FILE @VM03137 02159000
  2164. B BOCPT4 BR TO PROCESS LABEL @V305066 02160000
  2165. TM4 CH R15,TM TAPE MARK ENCOUNTERED @V305066 02161000
  2166. BL BADTAPIO ERROR @V305066 02162000
  2167. BH BADTAPIO ERROR @V305066 02163000
  2168. LA R3,ONE R3=1 IND TAPE MARK ENCOUNTERED @V305066 02164000
  2169. B CHKLABEL CHK LABEL SITUATION @V305066 02165000
  2170. EXITNLAB LTR R3,R3 TM MARK READ ? @V305066 02166000
  2171. BC 2,EXITNLB YES,EXIT @V305066 02167000
  2172. MVC FUNC,REW PREPARE TO REWIND @V305066 02168000
  2173. BAL R6,IOROUT ISSUE IO REQUEST @V305066 02169000
  2174. EXITNLB NI CPFLAG5,FE TURN OFF TAPE LABELED SW @V305066 02170000
  2175. B CHMOR ANYMORE FILES TO OPEN ? @V305066 02171000
  2176. TM3 CH R15,TM TAPE MARK ENCOUNTERED @V305066 02172000
  2177. BCR 8,R6 YES @V305066 02173000
  2178. B BADTAPIO OTHERWISE, TAPE ERROR @V305066 02174000
  2179. EJECT 02175000
  2180. USING CPUNTREC,R2 @V305066 02176000
  2181. RDRCI MVI SWITHS,READER INDICATE THAT DEVICE IS READERCI @V305066 02177000
  2182. MVI SYSTYPE,RDTAP2 SECOND INDICATOR IN DTF @V305066 02178000
  2183. BAL R6,LDIORG GO INITIALIZE I/O REG @V305066 02179000
  2184. B CHMOR ANY MORE FILES TO OPEN ? @V305066 02180000
  2185. PUNCH MVI SWITHS,PCHFILE INDICATE DEVICE IS A PUNCH @V305066 02181000
  2186. CLI PUBDEVT,PUN3525 3525 PUNCH @V305066 02182000
  2187. BE UNTRCP2 FINISH INITIALIZING DTF @V305066 02183000
  2188. TM PUBDEVT,PCH2540 2540 PUNCH @V305066 02184000
  2189. BO P2540B YES @V305066 02185000
  2190. CLI PUBDEVT,PCH2520 2520 PUNCH @V305066 02186000
  2191. BE P2540B YES @V305066 02187000
  2192. B UNTRCP2 ALL OTHERS @V305066 02188000
  2193. P2540B TM OPSW1,PCHFILE SYSPCH ASSGNED TO 2540 PCH? @V305066 02189000
  2194. BZ UNTRCP2 NO @V305066 02190000
  2195. OI OPSW1,HEX08 INDICATE DEVICE IS 2540 PUNCH @V305066 02191000
  2196. OI CPCCB+2,EQCHK EQUIPMENT CHECK @V305066 02192000
  2197. TM CPOIND,FF IS DISK POSSIBLE WITH THIS DTF @V305066 02193000
  2198. BO UNTRCP2 YES @V305066 02194000
  2199. MVI CPOIND,FF IND DTF NOT DEFINED FOR DISK @V305066 02195000
  2200. MVC LOAD2(FOUR),LOAD MOVE IOREG LOAD INSTRUCTION @VM03137 02196000
  2201. MVC CCWND(EIGHT),CCWASA MOVE CCW TO PROPER POSITION @VM03137 02197000
  2202. LA R6,CCWND ADDRESS OF CCW @V305066 02198000
  2203. ST R6,HOLD ADDRESS OF CCW TO TEMP AREA @V305066 02199000
  2204. MVC CCWPTR(THREE),HOLD+1 ADDRESS OF CCW TO CCB @VM03137 02200000
  2205. MVC CCWE1(EIGHT),E1CCW RELOCATE 2540 PUNCH ERROR @VM03137 02201000
  2206. * CCW1 02202000
  2207. LA R6,SAVE1 ADDRESS OF SAVE AREA TO REGISTER @V305066 02203000
  2208. ST R6,HOLD ADDR OF SAVE AREA TO TEMP AREA @V305066 02204000
  2209. MVC CCWE1+1(THREE),HOLD+1 ADDR OF SAVEAREA1 TO ERR @VM03137 02205000
  2210. * CCW1 02206000
  2211. MVC CCWE2(EIGHT),E2CCW RELOCATE 2540 PUNCH ERROR @VM03137 02207000
  2212. * CCW2 02208000
  2213. LA R6,SAVE2 ADDRESS OF SAVE AREA TO REGISTER @V305066 02209000
  2214. ST R6,HOLD DRESS OF SAVE AREA TO TEMP AREA @V305066 02210000
  2215. MVC CCWE2+1(THREE),HOLD+1 ADDR OF SAVEAREA2 TO ERR @VM03137 02211000
  2216. * CCW2 02212000
  2217. B UNTRCP2 TO UNIT RECORD OPEN @V305066 02213000
  2218. SETSW3 MVI SWITHS,READER INDICATE THAT DEVICE IS A READER @V305066 02214000
  2219. MVI SYSTYPE,RDTAP2 SECOND INDICATOR IN DTF @V305066 02215000
  2220. B UNTRC1 GO TO UNIT RECORD OPEN @VM03139 02216000
  2221. CKPTR3 CLI TEMP,FORTY IS DEVICE A PRINTER ? @V305066 02217000
  2222. BNE CHMOR SEE IF MORE FILES TO OPEN @V305066 02218000
  2223. PRINTIN MVI SWITHS,HEX08 INDICATE DEVICE IS A PRINTER @V305066 02219000
  2224. CLI PUBDEVT,PRTUCS 1403 PRINTER WITH UCS @V305066 02220000
  2225. BL UNTRCP2 NO @V305066 02221000
  2226. LR R1,R2 R1 POINTS TO CCB @V305066 02222000
  2227. MVC TEMPSAVE(THREE),CCWPTR SAVE CCW ADDRESS @VM03137 02223000
  2228. LA R8,STMODCCW ADDRESS OF SET MODE CCW @V305066 02224000
  2229. ST R8,CCWPTR-1 CCW ADDRESS TO CCB @V305066 02225000
  2230. SVC EXCP SET MODE @V305066 02226000
  2231. MVC CCWPTR(THREE),TEMPSAVE RESTORE USER CCB @VM03137 02227000
  2232. UNTRCP2 TM CPOIND,FF DISK DEVICE? @V305066 02228000
  2233. BO ADJSYS BR IF DISK DEVICE @V305066 02229000
  2234. L R4,CCWASA+4 LOAD RECORD COUNT @V305066 02230000
  2235. SH R4,KON1 SUBTRACT ONE @V305066 02231000
  2236. ST R4,CCWASA+4 STORE BACK IN DTF @V305066 02232000
  2237. L R4,CCWASA LOAD IO ADDRESS @V305066 02233000
  2238. AH R4,KON1 ADD ONE @V305066 02234000
  2239. ST R4,CCWASA STORE BACK IN DTF @V305066 02235000
  2240. B AJALT GO UPD ALT IO ADDRESS @V305066 02236000
  2241. ADJSYS L R4,CCWND+4 LOAD RECORD COUNT @V305066 02237000
  2242. SH R4,KON1 SUBTRACT ONE @V305066 02238000
  2243. ST R4,CCWND+4 REPLACE COUNT @V305066 02239000
  2244. L R4,CCWND LOAD IO ADDRSS @V305066 02240000
  2245. AH R4,KON1 ADD ONE @V305066 02241000
  2246. ST R4,CCWND RESTORE LOAD IO ADDRESS @V305066 02242000
  2247. AJALT L R4,ALTIO-1 LOAD ALTERNATE IO AREA @V305066 02243000
  2248. AH R4,KON1 ADD ONE @V305066 02244000
  2249. ST R4,ALTIO-1 UPDATE ALTERNATE IOAREA @V305066 02245000
  2250. UNTRC1 BAL R6,LDIORG @V305066 02246000
  2251. B CHMOR ANY MORE FILES TO OPEN ? @V305066 02247000
  2252. EJECT 02248000
  2253. USING DTFSD,R2 ESTABLISH ADDRESSABILITY @V305066 02249000
  2254. GETCON CLI DEVSD,DEV2314 DEV TYPE = 2314 @V305066 02250000
  2255. BE INSERT YES @V305066 02251000
  2256. LA R4,FOUR(,R4) BUMP TO NEXT ENTRY IN TABLE @VM03137 02252000
  2257. CLI DEVSD,DEV3330 3330 @V305066 02253000
  2258. BE INSERT YES @V305066 02254000
  2259. LA R4,FOUR(R4) BUMP TO NEXT TABLE @V505098 02255000
  2260. CLI DEVSD,DEV333B 3330-11 @V505098 02256000
  2261. BE INSERT YES @V505098 02257000
  2262. LA R4,FOUR(,R4) BUMP TO NEXT TABLE ENTRY @VM03137 02258000
  2263. CLI DEVSD,DEV3350 3350 @V505098 02259000
  2264. BE INSERT YES @V505098 02260000
  2265. LA R4,FOUR(R4) BUMP TO NEXT TABLE ENTRY @V505098 02261000
  2266. TM DEVSD,DEV70MB 3340 70MB @V305066 02262000
  2267. BM INSERT NO, 35MB @V305066 02263000
  2268. LA R4,FOUR(,R4) BUMP TO NEXT TABLE ENTRY @VM03137 02264000
  2269. INSERT MVC CONSD,0(R4) MOVE CONTROL FIELD TO DTF @V305066 02265000
  2270. BR R6 RETURN TO MAIN LINE @V305066 02266000
  2271. EJECT 02267000
  2272. CVTUNIT SR R5,R5 CLEAR @V305066 02268000
  2273. IC R5,SEVEN(,R2) GET UNIT NUMBER @VM03137 02269000
  2274. TM SIX(R2),HEX01 PROGRAMMER LOGICAL UNIT @VM03137 02270000
  2275. BO CNVPROG YES, BRANCH @V305066 02271000
  2276. SLL R5,TWO MULTIPLY BY 4 @VM03137 02272000
  2277. LA R5,SYSTAB(R5) INDEX TO CORRECT XXX @V305066 02273000
  2278. MVC DDNAME+3(THREE),0(R5) MOVE XXX TO AREA @VM03137 02274000
  2279. CONVERT2 MVC DDNAME(THREE),SYS FIRST 3 CHAR OF LOG UNIT = @VM03137 02275000
  2280. * 'SYS' 02276000
  2281. MVC SAVEFN(SIX),DDNAME MOVE SYSXXX TO ERR MSG FIELD @VM03137 02277000
  2282. BR R6 RETURN TO CALLER @V305066 02278000
  2283. CNVPROG CVD R5,DDNAME CONVERT UNIT NUMBER @V305066 02279000
  2284. UNPK DDNAME+3(THREE),DDNAME+6(TWO) CVT TO ZONED @VM03137 02280000
  2285. OI DDNAME+5,CHAR0 SET LAST ZONE @V305066 02281000
  2286. B CONVERT2 GO TO MOVE SYS TO AREA @V305066 02282000
  2287. EJECT 02283000
  2288. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02284000
  2289. * * 02285000
  2290. * ERROR MESSAGES * 02286000
  2291. * * 02287000
  2292. * * 02288000
  2293. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02289000
  2294. SPACE 5 02290000
  2295. BADOPEN EQU * @V305066 02291000
  2296. LA R4,BUFFER SCRATCH AREA @V305066 02292000
  2297. CVD R15,0(R4) CVT ERROR CODE TO DECIMAL @V305066 02293000
  2298. UNPK 0(TWO,R4),SIX(TWO,R4) UNPACK ERROR CODE @VM03137 02294000
  2299. MVC TWO(Q14,R4),ERRMSG1 SETUP ERROR MESSAGE @VM03137 02295000
  2300. OI ONE(R4),CHAR0 CONVERT ERR CODE TO EBCDIC @VM03137 02296000
  2301. MVC EIGHT(SEVEN,R4),SAVEFN FILENAME/SYSXXX/TAPN @VM03137 02297000
  2302. LR R5,R15 SAVE R15 @V305066 02298000
  2303. DMSERR MF=I,SUB=(CHARA,(R4)),NUM=89,LET=E,TEXT='OPEN ERROR COD*02299000
  2304. E ''................' @V305066 02300000
  2305. LA R15,THIRTY6 RETURN CODE = 36 @VM03137 02301000
  2306. CH R5,H8 PUB UNASSIGNED? @V305066 02302000
  2307. BNE SVC6 IF NO 8, GO TO CANCEL @V305066 02303000
  2308. LR R1,R9 FREE STOR PTR IN R1 @V305066 02304000
  2309. LR R9,R15 SAVE R15 CONTENTS @V305066 02305000
  2310. BAL R6,FREESTOR FREE ACQUIRED STORAGE @V305066 02306000
  2311. LR R15,R9 RESTORE R15 ERROR CODE @V305066 02307000
  2312. SR R0,R0 CLEAR REGISTER 0 @V305066 02308000
  2313. IC R0,ABCODE AB TERM CODE @V305066 02309000
  2314. LA R1,ABTERM ABTERM ROUTINE @V305066 02310000
  2315. SVC SVC2 FETCH AB TERM ROUT @V305066 02311000
  2316. SPACE 5 02312000
  2317. ERR69E LA R5,DOSDSMD POSITION R5 FOR ERROR MSG @V305066 02313000
  2318. DMSERR NUM=69,LET=E,SUB=(CHARA,((R5),1)),TEXT='DISK ''..'' NOT*02314000
  2319. ACCESSED' @V305066 02315000
  2320. LA R15,THIRTY6 RETURN CODE = 36 @V305066 02316000
  2321. B SVC6 BR TO CANCEL @VM03141 02317000
  2322. SPACE 5 02318000
  2323. ERR37E LA R5,DOSDSMD POSITION R5 FOR ERROR MSG @V305066 02319000
  2324. DMSERR NUM=37,LET=E,SUB=(CHARA,((R5),1)),TEXT='DISK ''..'' IS *02320000
  2325. READ/ONLY' @V305066 02321000
  2326. LA R15,THIRTY6 RETURN CODE = 36 @V305066 02322000
  2327. B SVC6 BR TO CANCEL @VM03141 02323000
  2328. SPACE 5 02324000
  2329. USING DTFMT,R2 @V305066 02325000
  2330. ERR58E LA R5,DEVID POINTER TO TAPN @V305066 02326000
  2331. DMSERR NUM=58,LET=E,TEXT='END-OF-FILE OR END-OF-TAPE ON ''....*02327000
  2332. ''',SUB=(CHARA,(R5)) @V305066 02328000
  2333. LA R15,RC40 RETURN CODE = 40 @V305066 02329000
  2334. B SVC6 BR TO CANCEL @VM03141 02330000
  2335. SPACE 5 02331000
  2336. ERR113S BAL R6,CVTCUU CONVERT CUU @V305066 02332000
  2337. LA R6,DEVID DEVID POINTER - TAPX @V305066 02333000
  2338. DMSERR NUM=113,LET=S,SUB=(CHARA,(R6),CHARA,(R5)),TEXT='''.... *02334000
  2339. (...)'' NOT ATTACHED',MF=(E,'SYS') @V305066 02335000
  2340. LA R15,HUNDRED RETURN CODE = 100 @V305066 02336000
  2341. B SVC6 BR TO CANCEL @V305066 02337000
  2342. SPACE 5 02338000
  2343. ERR43E LA R5,DEVID POSITION FOR MESSAGE @V305066 02339000
  2344. DMSERR NUM=43,LET=E,SUB=(CHARA,(R5)),TEXT='.... IS FILE PROTEC*02340000
  2345. TED' @V305066 02341000
  2346. LA R15,THIRTY6 RETURN CODE = 36 @V305066 02342000
  2347. B SVC6 BR TO CANCEL @V305066 02343000
  2348. ERR88E DMSERR NUM=88,LET=E,SUB=(HEX4A,(R5)),TEXT='UNSUPPORTED DTF TYP*02344000
  2349. E ''..''' @V305066 02345000
  2350. LA R15,TWENTY4 RETURN CODE = 24 @V305066 02346000
  2351. B SVC6 BR TO CANCEL @V305066 02347000
  2352. CVTCUU LH R5,0(R5) CUU TO REGISTER @V305066 02348000
  2353. SLL R5,FOUR ZERO AND SHIFT LAST 4 BITS @VM03137 02349000
  2354. ST R5,DDNAME+4 STORE PACKED DECIMAL VALUE @V305066 02350000
  2355. OI DDNAME+7,PACK INSURE SIGN IN LAST POSITION @V305066 02351000
  2356. UNPK DDNAME(THREE),DDNAME+6(2) CVT CUU TO ZONE @VM03137 02352000
  2357. OI DDNAME+2,CHAR0 PRINTABLE CHARACTER @V305066 02353000
  2358. LA R5,DDNAME POINT TO CUU @V305066 02354000
  2359. BR R6 RETURN TO CALLER. @VM03141 02355000
  2360. SPACE 1 02356000
  2361. ERR400S EQU * @V305106 02357000
  2362. DMSERR MF=(E,'SYS'),NUM=400,LET=S,SUB=(CHARA,(R2)), @V305106*02358000
  2363. TEXT='SYSTEM ''........'' DOES NOT EXIST' @V305106 02359000
  2364. LA R15,RC44 RETURN CODE = 44 @V305066 02360000
  2365. B SVC6 BR TO CANCEL @VM03141 02361000
  2366. SPACE 2 02362000
  2367. ERR308E EQU * @V305106 02363000
  2368. DMSERR NUM=308,LET=E,SUB=(CHARA,(DOSDSMD,1)), @V305106*02364000
  2369. TEXT='''..'' DISK IN CMS FORMAT; INVALID FOR NON-CMS DAT*02365000
  2370. ASET' @V305106 02366000
  2371. LA R15,TWENTY4 RETURN CODE = 24 @V305066 02367000
  2372. B SVC6 CANCEL THE JOB @V305106 02368000
  2373. SPACE 1 02369000
  2374. NOVSAM EQU * VSAM NOT GEND @V305106 02370000
  2375. DMSERR LET=S,NUM=413, @V305106*02371000
  2376. TEXT='STORAGE NOT INITIALIZED FOR VSAM PROCESSING' 02372000
  2377. LA R15,HUNDRED4 RETURN CODE = 104 @VM03137 02373000
  2378. B SVC6 CANCEL THE JOB @V305106 02374000
  2379. EJECT 02375000
  2380. ERR401S EQU * @V305106 02376000
  2381. L R6,ASYSNAMS GET A(SAVED SYS TABLE) @V305106 02377000
  2382. USING SYSNAMES,R6 @V305106 02378000
  2383. DMSERR MF=(E,'SYS'),LET=S,NUM=401,SUB=(HEXA,VMSIZE,CHARA,CMSVS*02379000
  2384. AM,HEX,(R2)),TEXT='V.M. SIZE (.......) CANNOT EXCEED ''.*02380000
  2385. .......'' START ADDRESS (......)' @V305106 02381000
  2386. DROP R6 @V305106 02382000
  2387. LA R15,HUNDRED4 RETURN CODE = 104 @V305066 02383000
  2388. B SVC6 BR TO CANCEL @VM03141 02384000
  2389. SPACE 1 02385000
  2390. ERR410S EQU * @V305106 02386000
  2391. DMSERR LET=S,NUM=410,SUB=(DEC,(R3)),TEXT='CONTROL PROGRAM ERRO*02387000
  2392. R INDICATION ''....''' @V305106 02388000
  2393. LR R15,R3 @V305106 02389000
  2394. B SVC6 BR TO CANCEL @VM03141 02390000
  2395. ERR302E EQU * @V305106 02391000
  2396. DMSERR NUM=302,LET=E,TEXT='NO SYSXXX OPERAND SPECIFIED' 02392000
  2397. LA R15,TWENTY4 RC = 24 @VM03137 02393000
  2398. B SVC6 CANCEL @V305066 02394000
  2399. ERR086I EQU * @VM03188 02395000
  2400. DMSERR TEXT='DLBL ''........'' DUMMY INVALID FOR VSAM', *02396000
  2401. SUB=(CHARA,(R4)),LET=W,NUM=086 @VM03188 02397000
  2402. LR R1,R9 POINT TO FREE AREA @VA04418 02398000
  2403. BAL R6,FREESTOR RELEASE ACQUIRED FREE STORAGE @VA04418 02399000
  2404. LA R15,EIGHT SET VSAM R.C. OF 8 @VM03188 02400000
  2405. LH R14,PIBPT GET PIB ADDRESS @VM03188 02401000
  2406. L R14,EIGHT(,R14) POINT TO PROGRAM SAVE AREA @VM03188 02402000
  2407. ST R15,40(,R14) AND PLACE R.C. IN USER'S R15 @VM03188 02403000
  2408. SVC SVC11 NOW, RETURN TO CALLER. @VM03188 02404000
  2409. SPACE 1 02405000
  2410. EJECT 02406000
  2411. *********************************************************************** 02407000
  2412. * CHEK ALL VSAM ACBS FOR DATASET DISK ACCESS, CATALOG 02408000
  2413. * DISK ACCESS AND THE CORRECT STATUS (R/W,R/O) FOR BOTH 02409000
  2414. *********************************************************************** 02410000
  2415. USING SYSCOM,R10 @V305106 02411000
  2416. USING IKQACB,R2 @V305106 02412000
  2417. VSAMCHEK EQU * @V305106 02413000
  2418. TM DOSFLAGS,DOSVSAM DOS SET ON WITH 'VSAM'? @V305106 02414000
  2419. BZ NOVSAM ERROR IF NOT... @V305106 02415000
  2420. L R7,ABGCOM POINT TO BGCOM @V305106 02416000
  2421. ICM R1,15,PPEND DOES ANCHOR TABLE EXIST? @VA11066 02416150
  2422. BNZ VSAMCHK1 YES, ALREADY IN PLACE @VA11066 02416300
  2423. LA R1,DMSSMNAT IF NOT, CALL STORAGE INITIALIZER @VA11066 02416450
  2424. SVC 202 SET UP STORAGE AND ANCHOR TABLE @VA11066 02416600
  2425. DC AL4(*+4) ... @VA11066 02416750
  2426. VSAMCHK1 EQU * @VA11066 02416900
  2427. L R10,ASYSCOM POINT TO SYSCOM @V305106 02417000
  2428. L R6,SAVEPTR ADDR IF DTF TO BE OPENED @VA07404 02418000
  2429. VSAMLOOP EQU * @VA07404 02419000
  2430. LA R4,ACBDDNM GET DDNAME FROM ACB @V305106 02420000
  2431. LA R14,HITDS FIRST FIND THE DATASET DOSCB @V305106 02421000
  2432. FINDCB L R3,DOSFIRST START AT FIRST DOSCB IN CHAIN @V305106 02422000
  2433. LH R8,DOSNUM AND NUMBER OF DOSCBS @V305106 02423000
  2434. LTR R8,R8 ARE THERE ANY DEFINED? @V305106 02424000
  2435. BZ VSAMLOAD NO, GO SEE IF VSAM IS LOADED @V305101 02425000
  2436. CBLOOP CLC 0(SEVEN,R4),DOSDD MATCH ON DDNAME ? @VM03137 02426000
  2437. BER R14 IF SO, RETURN TO CALLER @V305106 02427000
  2438. L R3,DOSNEXT IF NOT, LOAD A(NEXT DOSCB) @V305106 02428000
  2439. LA R3,0(,R3) CLEAR HIGH ORDER BYTE @V305106 02429000
  2440. BCT R8,CBLOOP KEEP LOOKING UNTIL END OF CHAIN @V305106 02430000
  2441. B VSAMLOAD NONE FOUND, SEE IF VSAM LOADED @V305101 02431000
  2442. HITDS CLI DOSDEV,DOSDUM IS DDNAME DLBL'D FOR DUMMY ? @VM03188 02432000
  2443. BNE CKIFACC NO, CHECK IF DISK ACCESSED. @VM03188 02433000
  2444. MVI ACBERFLG,ACBOLIGN SET ACB ERROR FIELD @VM03188 02434000
  2445. B ERR086I AND ISSUE INFORMATION MESSAGE. @VM03188 02435000
  2446. CKIFACC LA R1,DOSDSMD-24 POINT TO DISK MODE IN DOSCB @VM03188 02436000
  2447. L R15,VCADTLKP AND MAKE SURE IT'S ACCESSED @VM03093 02437000
  2448. BALR R14,R15 ... @V305106 02438000
  2449. BNZ ERR69E ERROR IF NOT FOUND @V305106 02439000
  2450. TM ADTFLG2,ADTFMFD FOUND, IS IT CMS DISK? @V305106 02440000
  2451. BO ERR308E ERROR IF SO... @V305106 02441000
  2452. TM ADTFLG2,ADTFROS ACCESSED AS DOS OR OS DISK? @V305106 02442000
  2453. BZ ERR69E ERROR IF NOT... @V305106 02443000
  2454. CLC DOSDD(SEVEN),IJSYSCT OPENING MASTER CATALOG @VM03137 02444000
  2455. BE INPUTDS YES, SKIP TO R/W CHEK @V305106 02445000
  2456. CLC DOSDD(SEVEN),IJSYSUC OPENING USER CATALOG? @VA06032 02446000
  2457. BE INPUTDS BRANCH IF YES @VA06032 02447000
  2458. TM ACBOFLGS,ACBCAT USER CATALOG? @VA07854 02448000
  2459. BO INPUTDS YES, SKIP TO W/R CHECK @VA07854 02449000
  2460. TM ACBMACR1,ACBOUT OPENING DATASET FOR OUTPUT? @V305106 02450000
  2461. BZ TESTCAT IF NOT, CONTINUE... @V305106 02451000
  2462. TM ADTFLG3,ADTFRW IF SO, MAKE SURE DISK R/W @V305101 02452000
  2463. BZ ERR37E ERROR IF NOT R/W @V305101 02453000
  2464. SPACE 1 02454000
  2465. TESTCAT TM DOSINIT,DOSUCAT IS DATASET ON A USER CATALOG? @V305106 02455000
  2466. BO USERCAT IF SO, FIND THE NAME @V305106 02456000
  2467. LA R4,IJSYSCT IF NO, USE MASTER CATALOG @V305066 02457000
  2468. B FINDCAT GO LOOK FOR THE CAT DOSCB @V305106 02458000
  2469. USERCAT LA R4,DOSUCNAM POINT TO USER CAT NAME @V305106 02459000
  2470. FINDCAT BAL R14,FINDCB FIND THE CATALOG DOSCB @V305106 02460000
  2471. CLI DOSDEV,DOSDUM IS DDNAME DLBL'D FOR DUMMY ? @VM03188 02461000
  2472. BE VSAMLOAD YES, BYPASS DISK CHECKS @VM03188 02462000
  2473. LA R1,DOSDSMD-Q24 FOUND IT...NOW MAKE SURE @VM03137 02463000
  2474. L R15,VCADTLKP THAT DISK IS ACCESSED @VM03093 02464000
  2475. BALR R14,R15 ... @V305106 02465000
  2476. BNZ ERR69E ERROR IF NOT FOUND @V305106 02466000
  2477. TM ADTFLG2,ADTFMFD FOUND, IS IT CMS DISK? @V305106 02467000
  2478. BO ERR308E ERROR IF SO... @V305106 02468000
  2479. TM ADTFLG2,ADTFROS ACCESSED AS DOS OR OS DISK? @V305106 02469000
  2480. BZ ERR69E ERROR IF NOT FOUND @V305106 02470000
  2481. TM ACBMACR1,ACBIN OPENING DATASET FOR INPUT? @V305106 02471000
  2482. BO INPUTDS YES, CONTINUE @V305106 02472000
  2483. TM ADTFLG3,ADTFRW NO, SO MAKE SURE CATALOG DISK @V305101 02473000
  2484. BZ ERR37E IS R/W... ERROR IF NOT @V305101 02474000
  2485. B VSAMLOAD NOW GO SEE IF VSAM IS LOADED @V305101 02475000
  2486. INPUTDS TM ADTFLG3,ADTFRW IS CATALOG DISK R/W ? @V305101 02476000
  2487. BO VSAMLOAD IF SO, LET STATS BE RECORDED @V305101 02477000
  2488. OI ACBINFLG,ACBSTSKP IF NOT R/O, NO STATS ALLOWED @V305106 02478000
  2489. SPACE 1 02479000
  2490. DROP R2 @V305106 02480000
  2491. SPACE 1 02481000
  2492. VSAMLOAD EQU * @VA07404 02482000
  2493. LA R6,FOUR(R6) POINT TO NEXT ADCON @VA07404 02483000
  2494. CLC 0(2,R6),EOL TEST OF END OF LIST @VA08388 02484000
  2495. BE DOVSAMO IF YES PROCD WITH OPEN @VA08388 02485000
  2496. L R2,ZERO(,R6) DTF/ACB ADDRESS @VA07404 02486000
  2497. USING DTF,R2 @VA07404 02487000
  2498. CLI DTFTYPE,ACB ACB ? @VA07404 02488000
  2499. BE VSAMLOOP YES, GO PROCESS @VA07404 02489000
  2500. DROP R2 @VA07404 02490000
  2501. DOVSAMO EQU * @VA08388 02491000
  2502. TM VSAMFLG1,VSAMRUN HAS VSAM BEEN LOADED ? @VA07404 02492000
  2503. BO GENFLAGS YES, NO NEED TO DO IT AGAIN @V305106 02493000
  2504. L R6,ASYSNAMS GET A (SAVED SYS TABLE) @V305106 02494000
  2505. USING SYSNAMES,R6 AND MAP IT... @V305106 02495000
  2506. LA R2,CMSVSAM POINT TO SAVED VSAM NAME @V305106 02496000
  2507. LA R3,TWELVE AND USE 'FINDSYS' CODE @VM03137 02497000
  2508. DC X'83230064' FIND SAVED SYSTEM @V305106 02498000
  2509. BC 8,LOADED CC=0, ALREADY LOADED @V305106 02499000
  2510. BC 4,LOADIT CC=1, EXISTS BUT NOT LOADED @V305106 02500000
  2511. SPACE 1 02501000
  2512. ERRORS CH R3,FORTY4 RC = 44? @V305106 02502000
  2513. BE ERR400S IF SO, NO SUCH SYSTEM @V305106 02503000
  2514. B ERR410S OTHERWISE, PAGING I/O ERRORS @V305106 02504000
  2515. FORTY4 DC H'44' CP RC FOR 'SYSTEM NOT FOUND' @V305106 02505000
  2516. SPACE 1 02506000
  2517. LOADIT C R2,VMSIZE WILL VSAM OVERLAY USER STORAGE ? @VA04565 02507000
  2518. BL ERR401S YES, THEN GIVE ERROR MESSAGE @V305101 02508000
  2519. LA R2,CMSVSAM POINT TO VSAM NAME AGAIN @V305106 02509000
  2520. DROP R6 @V305106 02510000
  2521. XR R3,R3 R3=0 FOR SHARED COPY @V305106 02511000
  2522. DC X'83230064' LOAD THE SHARED VSAM SYSTEM @V305106 02512000
  2523. BC 2,ERRORS ERRORS (SHOULDN'T HAPPEN) @V305106 02513000
  2524. SPACE 1 02514000
  2525. LOADED EQU * OK, ALL LOADED @V305106 02515000
  2526. OI VSAMFLG1,VSAMRUN SIGNAL VSAM LOADED AND RUNNING @V305106 02516000
  2527. ST R2,AVSAMSYS SAVE VSAM DCSS ADDR IN NUCON @V305106 02517000
  2528. GENFLAGS OI IJBFLG04,VSAMON INDICATE VSAM=YES IN SYSCOM @V305106 02518000
  2529. OI RMSROPEN,RPSON SET RPS BIT FOR SYSTEM @V305106 02519000
  2530. DROP R10 @V305066 02520000
  2531. LR R1,R9 POINTER TO FREE STORAGE @V305101 02521000
  2532. L R9,SAVEPTR POINT TO LIST OF ACB ADDRESSES @V305101 02522000
  2533. BAL R6,FREESTOR FREE ACQUIRED STORAGE @V305101 02523000
  2534. LA R1,VSAMOPEN PREPARE TO FETCH VSAM OPEN ROUT @V305066 02524000
  2535. LR R0,R9 NOW MOVE LIST POINTER TO R0 @V305101 02525000
  2536. * THE FOLLOWING CODE INITIALIZES THE AREA 1000(D) FROM THE 02526000
  2537. * BEGINNING OF THE LOGICAL TRANSIENT EXECUTION AREA. 02527000
  2538. L R4,DOSTRANS GET A(DOS TRANS AREA) @V305106 02528000
  2539. ST R0,LISTPNT(R4) SAVE A(ACB LIST) FOR $$BOVSAM @V305106 02529000
  2540. LH R3,PIBPT NOW GET THE USER'S PIBTAB @V305106 02530000
  2541. L R3,EIGHT(R3) AND PNT TO USER'S SAVEAREA @V305106 02531000
  2542. LA R3,SIXTEEN(,R3) NOW PNT AT REGSAVE PART @V305106 02532000
  2543. ST R3,REGADDR-1(R4) SAVE A(USER REG SAVEAREA) @V305106 02533000
  2544. NI VSAMFLG1,FF-VIPSOP TURN OFF VIPSOP FLAG @VM03137 02534000
  2545. LR R2,R0 NOW WE MUST POINT AT @V305106 02535000
  2546. L R2,0(R2) A(FIRST ACB) FOR $BOVSAM @V305106 02536000
  2547. SVC SVC2 FETCH $$BOVSAM @V305066 02537000
  2548. B EXIT2 WHEN WE COME BACK, GO TO EXIT2 @V305101 02538000
  2549. EXIT LR R1,R9 POINTER TO FREE STORAGE @V305066 02539000
  2550. BAL R6,FREESTOR FREE ACQUIRED STORAGE @V305066 02540000
  2551. EXIT2 SR R15,R15 SET RETURN CODE OF ZERO @V305101 02541000
  2552. SVC SVC11 EXIT TO PROB. PROG. FROM $$BOPEN @VM03137 02542000
  2553. SPACE 5 02543000
  2554. SVC6 LR R1,R9 POINTER TO FREE STORAGE @V305066 02544000
  2555. LR R9,R15 SAVE RETURN CODE @V305066 02545000
  2556. BAL R6,FREESTOR FREE ACQUIRED STORAGE @V305066 02546000
  2557. TM VSAMFLG1,VIPSOP WHERE WE CALLED FROM VIP ? @V305101 02547000
  2558. BZ CHKAMS NO, SEE IF AMS RUNNING... @V305101 02548000
  2559. STC R9,DOSRC SAVE ERROR RETURN CODE @V305101 02549000
  2560. SVC SVC11 AND RETURN TO DMSVIP. @V305066 02550000
  2561. CHKAMS LR R15,R9 RESTORE RETURN CODE. @V305101 02551000
  2562. TM VSAMFLG1,VSAMSERV IS AMSERV RUNNING ? @V305101 02552000
  2563. BZ DOSVC6 NO, JUST ISSUE SVC 6 (CANCEL) @V305101 02553000
  2564. LA R1,ABTERM OTHERWISE CALL $$BABEND TO @V305101 02554000
  2565. SVC SVC2 GIVE CONTROL TO AMSERV STXIT. @V305066 02555000
  2566. DOSVC6 SVC SVCSIX ISSUE CANCEL SVC @V305066 02556000
  2567. SPACE 5 02557000
  2568. FREESTOR LA R0,FREEDB GET NO. DOUBLE WORDS TO FRET @V305101 02558000
  2569. DMSFRET DWORDS=(0),LOC=(1),TYPCALL=BALR @V305101 02559000
  2570. BR R6 RETURN TO CALLER @VM03140 02560000
  2571. EJECT 02561000
  2572. CCW CCW X'73',*,X'20',1 SUPPRESS DATA CHECKS FOR UCS@V305066 02562000
  2573. CCW X'73',*,X'20',1 @V305066 02563000
  2574. SPACE 5 02564000
  2575. TAPEIO DC CL8'TAPEIO' @V305066 02565000
  2576. REW DC CL8'REW' @V305066 02566000
  2577. SENSE DC CL8'SENSE' @V305066 02567000
  2578. READ DC CL8'READ' @V305066 02568000
  2579. FSR DC CL8'FSR' @V305066 02569000
  2580. FSF DC CL8'FSF' @V305066 02570000
  2581. WRITE DC CL8'WRITE' @V305066 02571000
  2582. BSR DC CL8'BSR' @V305066 02572000
  2583. WTM DC CL8'WTM' @V305066 02573000
  2584. EOL DC X'0A02' END OF ACB/DTF LIST @VA08388 02574000
  2585. SPACE 5 02575000
  2586. EIGHTY DC F'80' @V305066 02576000
  2587. OSRDERR DC H'80' OS STATE ERROR CODE @V305066 02577000
  2588. ERRMSG1 DC C''' ON '' ''' @V305066 02578000
  2589. ABTERM DC CL8'$$BABEND' @V305066 02579000
  2590. VSAMOPEN DC CL8'$$BOVSAM' @V305066 02580000
  2591. MULTVOL DC CL8'$$BCMT07' @V305066 02581000
  2592. VOL1READ DC CL4'VOL1' @V305066 02582000
  2593. KON1 DC H'1' @V305066 02583000
  2594. KON2 DC H'2' @V305066 02584000
  2595. CONNINE DC H'9' @V305066 02585000
  2596. REC DC XL5'0000000001' @V305066 02586000
  2597. BLANKS DC 76C' ' @V305066 02587000
  2598. NOTATT DC H'5' TAPE NOT ATTACHED @V305066 02588000
  2599. TM DC H'2' TAPE MARK @V305066 02589000
  2600. H10 DC H'10' LENGTH OF ONE EXTENT ENTRY @V305066 02590000
  2601. H7 DC H'7' @V305066 02591000
  2602. H8 DC H'8' @V305066 02592000
  2603. IPTRDR DC H'1' SYSIPT/SYSRDR @V305066 02593000
  2604. LENGTH DC F'82' @V305066 02594000
  2605. PLIOPT DC CL8'PLIOPT' PL/I OPTIMIZING COMPILER @VA07764 02595000
  2606. READ80 DC F'80' @V305066 02596000
  2607. READ81 DC F'81' @V305066 02597000
  2608. VOL1 DC CL4'VOL1' @V305066 02598000
  2609. UVL DC CL3'UVL' @V305066 02599000
  2610. HDR1 DC CL4'HDR1' @V305066 02600000
  2611. V DC CL2'V ' VARIABLE/UNDEFINED FLAG @V305066 02601000
  2612. F DC CL2'F ' FIXED FLAG @V305066 02602000
  2613. ERASE DC CL8'ERASE' @V305066 02603000
  2614. SYS DC CL3'SYS' FIRST 3 CHAR OF LOGICAL UNIT @V305066 02604000
  2615. DMSSMNAT DC CL8'DMSSMNAT' ROUTINE TO SET UP ANCHOR TABLE @VA11066 02604500
  2616. IJSYSCT DC CL8'IJSYSCT' MASTER CATALOG @V305066 02605000
  2617. IJSYSUC DC CL8'IJSYSUC' USER CATALOG @VA06032 02606000
  2618. SPACE 5 02607000
  2619. * THE FOLLOWING TABLE (CC) CONTAINS DUMMY UPPER EXTENT LIMITS (CCHH) 02608000
  2620. * FOR DATA SETS WRITTEN ON CMS DISKS UNDER CMS/DOS. THE 'HH' PORTION 02609000
  2621. * TYPE (IE 2314, 3330, 3330-11, 3340, 3350) AND THE FACT THAT 02610000
  2622. * A MAXIMUN OF 65,533 02611000
  2623. * DEVICE TYPE (IE 2314, 3330, 3340). SINCE A CMS FILE HAS A MAXIMUM 02612000
  2624. * CAPACITY OF 65,533 RECORDS REGARDLESS OF DEVICE TYPE, AN EXPLICIT 02613000
  2625. * CYLINDER LIMIT IS NOT REQUIRED. 02614000
  2626. CC EQU * @VA07181 02615000
  2627. DC XL4'FFFF0013' 2314/2319 @VA07181 02616000
  2628. DC XL4'FFFF0012' 3330 @VA07181 02617000
  2629. DC XL4'FFFF0012' 3330-11 @V505098 02618000
  2630. DC XL4'FFFF001D' 3350 @V505098 02619000
  2631. DC XL4'FFFF000B' 3340 35MB @VA08280 02620000
  2632. DC XL4'FFFF000B' 3340 70MB @VA07181 02621000
  2633. SPACE 02622000
  2634. ENDCC EQU (*-CC)/4 @V305066 02623000
  2635. SPACE 2 02624000
  2636. CC2 DC XL4'00C80013' 2314/2319 @V305066 02625000
  2637. DC XL4'01FF0012' 3330 @V305066 02626000
  2638. DC XL4'03FE0012' 3330-11 @V505098 02627000
  2639. DC XL4'022B001D' 3350 @V505098 02628000
  2640. DC XL4'015C000B' 3340 35MB @V305066 02629000
  2641. DC XL4'02B8000B' 3340 70MB @V305066 02630000
  2642. ENDCC2 EQU (*-CC2)/4 @V305066 02631000
  2643. SPACE 2 02632000
  2644. CON2314 DS 0H 2314 CONSTANTS @V305066 02633000
  2645. DC H'534' @V305066 02634000
  2646. DC H'101' @V305066 02635000
  2647. DC H'7294' @V305066 02636000
  2648. CON3330 DS 0H 3330 & 3330-11 CONSTANTS @V505098 02637000
  2649. DC H'512' @V305066 02638000
  2650. DC H'135' @V305066 02639000
  2651. DC H'13030' @V305066 02640000
  2652. CON3340 DS 0H 3340 CONSTANTS @V305066 02641000
  2653. DC H'512' @V305066 02642000
  2654. DC H'167' @V305066 02643000
  2655. DC H'8368' @V305066 02644000
  2656. CON3350 DS 0H 3350 CONSTANTS @V505098 02645000
  2657. DC H'512' @V505098 02646000
  2658. DC H'185' @V505098 02647000
  2659. DC H'19069' @V505098 02648000
  2660. SPACE 2 02649000
  2661. DS 0F @V305066 02650000
  2662. DISKTAB EQU * @V305066 02651000
  2663. DC XL1'08',XL1'09',H'8368',XL4'1556000B' 3340 35 M@V505098 02652000
  2664. DC XL1'08',XL1'0A',H'8368',XL4'1556000B' 3340 70 M@V505098 02653000
  2665. DC XL1'01',XL1'01',H'7294',XL4'0CCD0013' 2314 @V505098 02654000
  2666. DC XL1'04',XL1'04',H'13030',XL4'0D7A0012' 3330 @V505098 02655000
  2667. DC XL1'07',XL1'07',H'19069',XL4'0889001D' 3350 @V505098 02656000
  2668. DC XL1'05',XL1'05',H'13030',XL4'0D7A0012' 3330-11 @V505098 02657000
  2669. DISKEND EQU (*-DISKTAB)/10 @V305066 02658000
  2670. SPACE 2 02659000
  2671. SYSTAB DS 0H @V305066 02660000
  2672. DC CL4'RDR' 00 @V305066 02661000
  2673. DC CL4'IPT' 01 @V305066 02662000
  2674. DC CL4'PCH' 02 @V305066 02663000
  2675. DC CL4'LST' 03 @V305066 02664000
  2676. DC CL4'LOG' 04 @V305066 02665000
  2677. DC CL4'LNK' 05 @V305066 02666000
  2678. DC CL4'RES' 06 @V305066 02667000
  2679. DC CL4'SLB' 07 @V305066 02668000
  2680. DC CL4'RLB' 08 @V305066 02669000
  2681. DC CL4'USE' 09 @V305066 02670000
  2682. DC CL4'REC' 0A @V305066 02671000
  2683. DC CL4'CLB' 0B @V305066 02672000
  2684. DC CL4'VIS' 0C @V305066 02673000
  2685. DC CL4'CAT' 0D @V305066 02674000
  2686. DS 0F @V305066 02675000
  2687. TYPETAB DC XL1'02',AL3(UNITREC1),CL7'DTFCD' @V305066 02676000
  2688. DC XL1'03',AL3(UNITREC3),CL7'DTFCN' @V305066 02677000
  2689. DC XL1'04',AL3(UNITREC2),CL7'DTFCD' @V305066 02678000
  2690. DC XL1'08',AL3(UNITREC4),CL7'DTFPR' @V305066 02679000
  2691. DC XL1'10',AL3(TAPEWK),CL7'DTFMT' @V305066 02680000
  2692. DC XL1'11',AL3(TAPEDATA),CL7'DTFMT' @V305066 02681000
  2693. DC XL1'12',AL3(TAPEDATA),CL7'DTFMT' @V305066 02682000
  2694. DC XL1'14',AL3(TAPEDATA),CL7'DTFMT' @V305066 02683000
  2695. DC XL1'20',AL3(DISK),CL7'DTFSD' @V305066 02684000
  2696. DC XL1'31',AL3(CPORDI),CL7'DTFCP' @V305066 02685000
  2697. DC XL1'32',AL3(CPORDI),CL7'DTFCP' @V305066 02686000
  2698. DC XL1'33',AL3(CPORDI),CL7'DTFDI' @V305066 02687000
  2699. TYPELAST EQU (*-TYPETAB)/11 @V305066 02688000
  2700. EJECT 02689000
  2701. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02690000
  2702. * * 02691000
  2703. * EQUATES * 02692000
  2704. * * 02693000
  2705. * * 02694000
  2706. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02695000
  2707. SPACE 2 02696000
  2708. M7 EQU B'0111' LOW 3 BYTES FOR ICM/STCM @VM03137 02697000
  2709. DEV3340 EQU X'07' 3340 @VM03137 02698000
  2710. Q4095 EQU 4095 FOR ESTABLISHING ADDRESSABILITY @VM03137 02699000
  2711. Q90 EQU 90 OFFSET OF PIB TABLE ADDRESS @VM03137 02700000
  2712. * OTHER DECIMAL EQUATES: 02701000
  2713. Q11 EQU 11 @VM03137 02702000
  2714. Q14 EQU 14 @VM03137 02703000
  2715. Q24 EQU 24 @VM03137 02704000
  2716. Q72 EQU 72 @VM03137 02705000
  2717. Q75 EQU 75 @VM03137 02706000
  2718. Q76 EQU 76 @VM03137 02707000
  2719. Q79 EQU 79 @VM03137 02708000
  2720. Q88 EQU 88 @VM03137 02709000
  2721. Q112 EQU 112 @VM03137 02710000
  2722. SVC202 EQU 202 @VM03137 02711000
  2723. M3 EQU B'0011' @V305066 02712000
  2724. O EQU C'O' @V305066 02713000
  2725. BF EQU X'BF' @V305066 02714000
  2726. B7 EQU X'B7' @V305066 02715000
  2727. P1600 EQU X'C0' 1600 PUB DENSITY @V305066 02716000
  2728. SING800 EQU X'C0' 800 SINGLE PUB DEN @V305066 02717000
  2729. MFCMASK EQU X'C0' @V305066 02718000
  2730. DUAL800 EQU X'C8' 800 BPI DUAL DENSITY @V305066 02719000
  2731. DF EQU X'DF' SET OFF COBOL IGN IND. @V305066 02720000
  2732. DEN6250 EQU X'D0' PUB 6250 DENSITY @V305066 02721000
  2733. PCHMASK EQU X'EF' @V305066 02722000
  2734. FB EQU X'FB' @V305066 02723000
  2735. FD EQU X'FD' @V305066 02724000
  2736. FE EQU X'FE' @V305066 02725000
  2737. FF EQU X'FF' @V305066 02726000
  2738. CHAR0 EQU X'F0' @V305066 02727000
  2739. TAPDEV EQU X'F1' @V305066 02728000
  2740. RDTAP2 EQU X'F1' @V305066 02729000
  2741. F7 EQU X'F7' RESET NEW VOL INDICATOR @V305066 02730000
  2742. DEV70MB EQU X'0A' 3340 70MB @V305066 02731000
  2743. MODEL4 EQU X'0B' 3420 MODEL 4 @V305066 02732000
  2744. MODEL6 EQU X'0C' 3420 MODEL 6 @V305066 02733000
  2745. PRTPCH EQU X'0C' PRINT/PUNCH @V305066 02734000
  2746. PACK EQU X'0C' @V305066 02735000
  2747. MODEL8 EQU X'0D' 3420 MODEL 8 @V305066 02736000
  2748. ANOTHER EQU X'00' ANOTHER DTF IN OPEN LIST @V305066 02737000
  2749. HDR00 EQU X'00' ZEROS IN HDR RECORD @V305066 02738000
  2750. LOWLIM0 EQU X'00' SET LOWLIM TO 0 FOR EXT TYPE 01 @V305066 02739000
  2751. DEFEXTSQ EQU X'00' DEF EXT SEQ @V305066 02740000
  2752. CLEAR EQU X'00' USED TO CLEAR SWITCHES @V305066 02741000
  2753. DEN EQU X'00' @V305066 02742000
  2754. DEF2311 EQU X'00' DEV CODE IN DTF = 2311 @V305066 02743000
  2755. HEX00 EQU X'00' @V305066 02744000
  2756. ZERO EQU X'00' @V305066 02745000
  2757. ON EQU X'01' TURN SW ON @V305066 02746000
  2758. RECTRK1 EQU X'01' INIT TO 1 REC/TRK @V305066 02747000
  2759. SW2311 EQU X'01' DEV CODE IN DTF=00, 2311 DEF @V305066 02748000
  2760. REC1 EQU X'01' RECORD ON SEARCH ARGUMENT @V305066 02749000
  2761. TYPE01 EQU X'01' DAT EXT TYPE @V305066 02750000
  2762. UNITEXC EQU X'01' UNIT EXCEPTION @V305066 02751000
  2763. WRITEOP EQU X'01' WRITE CCW OPCODE @V305066 02752000
  2764. DEV2314 EQU X'01' 2314/2319 @V305066 02753000
  2765. DEVTAP EQU X'01' @V305066 02754000
  2766. TRACK7 EQU X'01' @V305066 02755000
  2767. RPFILE EQU X'01' @V305066 02756000
  2768. HEX01 EQU X'01' @V305066 02757000
  2769. RPSON EQU X'01' SYSGEN RPS=YES FLG IN COMREG @V305106 02758000
  2770. ASC EQU X'02' ASCII SPECIFIED IN DTF @V305066 02759000
  2771. UTILITY EQU X'02' UTILITIES BIT @V305066 02760000
  2772. READOP EQU X'02' READ CCW OPCODE @V305066 02761000
  2773. RECTRK2 EQU X'02' RECS/TRK = 02 @V305066 02762000
  2774. TMOPT EQU X'02' @V305066 02763000
  2775. PPWFILE EQU X'02' @V305066 02764000
  2776. READER EQU X'02' @V305066 02765000
  2777. HEX02 EQU X'02' @V305066 02766000
  2778. CONSOLE EQU X'03' DTFTYPE FOR DTFCN @V305066 02767000
  2779. MODEL3 EQU X'03' 3420 MODEL 3 @V305066 02768000
  2780. DTFCD EQU X'04' PUNCH @V305066 02769000
  2781. SPANNED EQU X'04' SPANNED @V305066 02770000
  2782. MODEL5 EQU X'04' 3420 MODEL 5 @V305066 02771000
  2783. USERENTY EQU X'04' USER ENTRY @V305066 02772000
  2784. BPI1600 EQU X'04' 1600 BPI TAPE DENSITY @V305066 02773000
  2785. LSTPCH EQU X'04' SYSLST/SYSPCH @V305066 02774000
  2786. PRTIND EQU X'04' @V305066 02775000
  2787. DEV3330 EQU X'04' @V305066 02776000
  2788. IOREG EQU X'04' @V305066 02777000
  2789. PCHFILE EQU X'04' @V305066 02778000
  2790. PCH3525 EQU X'04' @V305066 02779000
  2791. TWOIO EQU X'04' @V305066 02780000
  2792. HEX04 EQU X'04' @V305066 02781000
  2793. MODEL7 EQU X'05' 3420 MODEL 7 @V305066 02782000
  2794. DEV333B EQU X'05' 3330-11 DTF DEV CODE @V505098 02783000
  2795. DEV3350 EQU X'07' 3350 DTF DEV CODE @V505098 02784000
  2796. ASSOC EQU X'07' FUNC/ASSOC SPECIFIED ON DTF @V305066 02785000
  2797. DTFPR EQU X'08' PRINTER @V305066 02786000
  2798. INPUT EQU X'08' INPUT FILE @V305066 02787000
  2799. LOADPT EQU X'08' TAPE LOAD POINT @V305066 02788000
  2800. ENDEXT EQU X'08' END OF EXTENT CONDITION @V305066 02789000
  2801. TYP2314 EQU X'08' 2314/2319 @V305066 02790000
  2802. HEX08 EQU X'08' @V305066 02791000
  2803. PRINTER EQU X'08' @V305066 02792000
  2804. VARIBL EQU X'08' @V305066 02793000
  2805. TYP3330 EQU X'09' 3330 ADT DEV CODE @V505098 02794000
  2806. TYP3350 EQU X'0B' 3350 ADT DEV CODE @V505098 02795000
  2807. HEX10 EQU X'10' @V305066 02796000
  2808. RDR3525 EQU X'10' @V305066 02797000
  2809. PRT3525 EQU X'10' @V305066 02798000
  2810. BPI6250 EQU X'10' 6250 TAPE DENSITY FROM SENSE @V305066 02799000
  2811. BPI800 EQU X'10' 800 BPI FROM SENSE @V305066 02800000
  2812. SEVTRK EQU X'10' 7TRK SENSE INDICATOR @V305066 02801000
  2813. NEWVOL EQU X'10' NEW VOLUME SWITCH @V305066 02802000
  2814. DOS EQU X'10' IND. DOSCB FOR DOS DISK @V305066 02803000
  2815. TAP7 EQU X'10' @V305066 02804000
  2816. EXITEOF EQU X'10' SW TO EXIT TO EOF ROUT @V305066 02805000
  2817. READZONE EQU X'10' @V305066 02806000
  2818. CPTAP EQU X'10' @V305066 02807000
  2819. IO2 EQU X'10' @V305066 02808000
  2820. TRKHOLD EQU X'10' TRK HOLD OPTION @V305066 02809000
  2821. PBITON EQU X'10' @V305066 02810000
  2822. NOLAB EQU X'11' NOLAB/NONSTD @V305066 02811000
  2823. STD EQU X'12' @V305066 02812000
  2824. HEX18 EQU X'18' @V305066 02813000
  2825. SDTYPE EQU X'20' DTFSD - DISK @V305066 02814000
  2826. OPENIGN EQU X'20' @V305066 02815000
  2827. DUAL EQU X'20' DUAL DENSITY DRIVE @V305066 02816000
  2828. LASTVOL EQU X'20' LAST VOLUME OF DATA SET @V305066 02817000
  2829. PCH2520 EQU X'20' 2520 PUNCH @V305066 02818000
  2830. HEX20 EQU X'20' @V305066 02819000
  2831. CNTLCHAR EQU X'20' @V305066 02820000
  2832. TWENTY EQU X'20' @V305066 02821000
  2833. VSAMON EQU X'20' SYSGEN VSAM=YES FLG IN SYSCOM @V305106 02822000
  2834. PCH2540 EQU X'21' 2540 PUNCH @V305066 02823000
  2835. PUN3525 EQU X'23' @V305066 02824000
  2836. ABCODE EQU X'26' CODE PASSED TO DMSBAB @V305066 02825000
  2837. ACB EQU X'28' @V305066 02826000
  2838. THIRTY1 EQU X'31' @V305066 02827000
  2839. THIRTY2 EQU X'32' @V305066 02828000
  2840. THIRTY3 EQU X'33' @V305066 02829000
  2841. BLANK EQU X'40' @V305066 02830000
  2842. HEX40 EQU X'40' @V305066 02831000
  2843. FORTY EQU X'40' @V305066 02832000
  2844. LA EQU X'41' @V305066 02833000
  2845. PRTUCS EQU X'42' 1403 WITH UCS @V305066 02834000
  2846. UCS EQU X'42' @V305066 02835000
  2847. FIFTY EQU X'50' @V305066 02836000
  2848. TCR EQU X'51' TAPE CARTRIDGE READER @V305066 02837000
  2849. SIXTY EQU X'60' @V305066 02838000
  2850. DSK2314 EQU X'62' @V305066 02839000
  2851. DSK3330 EQU X'63' 3330-11 PUB DEV CODE @V505098 02840000
  2852. DSK333B EQU X'65' 3350 PUB DEV CODE @V505098 02841000
  2853. DSK3350 EQU X'67' @V505098 02842000
  2854. DSK3340 EQU X'68' @V305066 02843000
  2855. DSK35MB EQU X'69' 3340 35MB @V305066 02844000
  2856. DATA EQU X'7B' ALLOW DATA CHECKS @V305066 02845000
  2857. HEX7F EQU X'7F' @V305066 02846000
  2858. SUPPRESS EQU X'73' SUPPRESS DATA CHECKS @V305066 02847000
  2859. PHTAB EQU X'80' DTFPH TABLE @V305066 02848000
  2860. STDLABEL EQU X'80' STD LABEL TAPE @V305066 02849000
  2861. CON80 EQU X'80' @V305066 02850000
  2862. DATACKS EQU X'80' @V305066 02851000
  2863. BUSY EQU X'80' @V305066 02852000
  2864. HEX80 EQU X'80' @V305066 02853000
  2865. EQCHK EQU X'86' EQUIPMENT CHECK @V305066 02854000
  2866. NINETY2 EQU X'92' @V305066 02855000
  2867. EXCP EQU 0 @V305066 02856000
  2868. ONE EQU 1 @V305066 02857000
  2869. TEN EQU 10 @V305066 02858000
  2870. HUNDRED EQU 100 @V305066 02859000
  2871. HUNDRED4 EQU 104 @V305066 02860000
  2872. SVC11 EQU 11 @V305066 02861000
  2873. ELEVEN EQU 11 @V305066 02862000
  2874. REGADDR EQU 1181 A(USER REGSAVE AREA) FROM TRANS S@V305106 02863000
  2875. LISTPNT EQU 1196 A(USER ACB LIST) FROM TRANS START@V305106 02864000
  2876. TWELVE EQU 12 @V305066 02865000
  2877. THIRTEEN EQU 13 @V305066 02866000
  2878. FOURTEEN EQU 14 @V305066 02867000
  2879. FIFTEEN EQU 15 @V305066 02868000
  2880. SIXTEEN EQU 16 @V305066 02869000
  2881. SEVTEEN EQU 17 @V305066 02870000
  2882. SVC2 EQU 2 @V305066 02871000
  2883. TWO EQU 2 @V305066 02872000
  2884. TWENTY4 EQU 24 @V305066 02873000
  2885. THREE EQU 3 @V305066 02874000
  2886. THIRTY6 EQU 36 @V305066 02875000
  2887. FOUR EQU 4 @V305066 02876000
  2888. RC40 EQU 40 @V305066 02877000
  2889. RC44 EQU 44 @V305066 02878000
  2890. FIVE EQU 5 @V305066 02879000
  2891. SVCSIX EQU 6 @V305066 02880000
  2892. SIX EQU 6 @V305066 02881000
  2893. WAIT EQU 7 @V305066 02882000
  2894. SEVEN EQU 7 @V305066 02883000
  2895. SVC8 EQU 8 @V305066 02884000
  2896. EIGHT EQU 8 @V305066 02885000
  2897. DIVID9 EQU 9 @V305066 02886000
  2898. NINE EQU 9 @V305066 02887000
  2899. EJECT 02888000
  2900. FREE DSECT FREE STORAGE DSECT @VM03139 02889000
  2901. DDNAME DS D MESSAGE FIELD - SYSXXX/CUU @V305066 02890000
  2902. SETMODE DS D CCW @V305066 02891000
  2903. STMODCCW DS D CCW @V305066 02892000
  2904. FULLWORD DS F USED FOR IO ADD/NUC.TAB. ADD @V305066 02893000
  2905. BUFFER DS XL1 NEXT 21F IO BUFFER @V305066 02894000
  2906. BUFF2 DS XL1 LOADPT @V305066 02895000
  2907. DS XL1 @V305066 02896000
  2908. BUFF4 DS XL1 BPI @V305066 02897000
  2909. DS XL2 @V305066 02898000
  2910. BUFF7 DS XL1 MODEL @V305066 02899000
  2911. DS XL1 @V305066 02900000
  2912. DS 19F REST OF BUFFER @V305066 02901000
  2913. TEMPSAVE DS F TEMP. SAVE AREA @V305066 02902000
  2914. HOLD DS F TEMP. SAVE AREA @V305066 02903000
  2915. SAVEPTR DS F TEMP. SAVE AREA @V305066 02904000
  2916. CCBAD DS F DOSCB ADDRESS @V305066 02905000
  2917. SPACE 2 02906000
  2918. PLIST DS CL8 IO PLIST @V305066 02907000
  2919. FUNC DS CL8 @V305066 02908000
  2920. DEVID DS CL4 @V305066 02909000
  2921. PMODE DS 1X @V305066 02910000
  2922. BUFFAD DS CL3 @V305066 02911000
  2923. BUFFLEN DS CL4 @V305066 02912000
  2924. BYTES DS CL4 @V305066 02913000
  2925. SPACE 2 02914000
  2926. SAVEFN DS CL7 MSG FLD FOR SYSXXX/FILENAME/TAPN @V305066 02915000
  2927. SAVESENS DS XL1 SAVE FOR SENSE INFORMATION @V305066 02916000
  2928. DS XL1 @V305066 02917000
  2929. MOD468SW DS XL1 SW FOR 3420 MODELS 4,8,8 @V305066 02918000
  2930. MOD357SW DS XL1 SW FOR 3420 MODELS 3,5,7 @V305066 02919000
  2931. TEMP DS XL1 SAVE FOR PUB ZONE @V305066 02920000
  2932. FULSAV DS H TEMP. SAVE AREA @V305066 02921000
  2933. CPBYTE DS XL1 SAVE FOR DTFCP/DTFDI DTF TYPE @V305066 02922000
  2934. CPBYTE2 DS XL1 2311 DEFAULT DEV. CODE IN DTFSD @V305066 02923000
  2935. FREEND DS 0D @V305101 02924000
  2936. FREELN EQU (FREEND-FREE) @V305101 02925000
  2937. FREEDB EQU (FREEND-FREE)/8 @V305101 02926000
  2938. EJECT 02927000
  2939. EXTENT DSECT @V305066 02928000
  2940. TYPEEXT DS CL1 TYPE OF DATA EXTENT @V305066 02929000
  2941. TYPE00 EQU X'00' NO EXTENTS PRESENT @V305066 02930000
  2942. EXTSEQ DS CL1 EXTENT SEQUENCE NUMBER @V305066 02931000
  2943. EXTLOW DS CL4 EXTENT LOWER LIMIT @V305066 02932000
  2944. EXTUP DS CL4 EXTENT UPPER LIMIT @V305066 02933000
  2945. EJECT 02934000
  2946. DTF DSECT @V305066 02935000
  2947. DS CL16 @V305066 02936000
  2948. FLAGIGN DS CL1 @V305066 02937000
  2949. DS CL3 @V305066 02938000
  2950. DTFTYPE DS CL1 DTF TYPE @V305066 02939000
  2951. OPENSW DS CL1 OPEN SWITCH @V305066 02940000
  2952. DS CL14 @V305066 02941000
  2953. OPENSW2 DS CL1 @V305066 02942000
  2954. DS CL16 @V305066 02943000
  2955. REG DS CL1 @V305066 02944000
  2956. DS CL1 @V305066 02945000
  2957. IOPTR DS CL1 @V305066 02946000
  2958. EJECT 02947000
  2959. DTFUNIT DSECT @V305066 02948000
  2960. CCB DS CL6 @V305066 02949000
  2961. LOGUNT DS CL3 @V305066 02950000
  2962. CCWADDR DS CL3 @V305066 02951000
  2963. DS CL4 @V305066 02952000
  2964. SWITCH3 DS CL4 @V305066 02953000
  2965. DTFTYP DS CL1 @VM03139 02954000
  2966. SWITCH DS CL1 @V305066 02955000
  2967. COMCODE DS CL2 @V305066 02956000
  2968. BUFFER1 DS CL10 @V305066 02957000
  2969. LODIOREG DS CL4 @V305066 02958000
  2970. DEVCODE DS CL1 @V305066 02959000
  2971. EJECT 02960000
  2972. DTFSDW DSECT SEQUENTIAL DISK WORKFILE DSECT @VM03139 02961000
  2973. DS CL6 @V305066 02962000
  2974. UNITSDW DS CL1 LOGICAL UNIT @V305066 02963000
  2975. CLASSSDW DS CL1 CLASS @V305066 02964000
  2976. DS CL4 @V305066 02965000
  2977. DOSSDW DS CL4 DOSCB ADDRESS @V305066 02966000
  2978. DS CL4 @V305066 02967000
  2979. TYPESDW DS CL1 DTF TYPE X'20' @V305066 02968000
  2980. SDWFLAG1 DS CL1 @V305066 02969000
  2981. OPENSDW EQU X'04' FILE OPENED @V305066 02970000
  2982. FILESDW DS CL7 FILENAME @V305066 02971000
  2983. DEVSDW DS CL1 DEVICE TYPE CODE @V305066 02972000
  2984. SDWCAP DS CL2 TRACK CAPACITY COUNTER @V305066 02973000
  2985. DS CL4 @V305066 02974000
  2986. SDWSEQ DS CL1 EXTENT SEQUENCE NUMBER @V305066 02975000
  2987. COMSDW DS CL1 OPEN COMMUNICATIONS BYTE @V305066 02976000
  2988. EXTOPENW EQU X'04' EXTENT OPENED @V305066 02977000
  2989. LOHDSDW DS CL1 LOWER HEAD LIMIT @V305066 02978000
  2990. UPHDSDW DS CL1 UPPER HEAD LIMIT @V305066 02979000
  2991. LRECLSDW DS CL2 RECORD LENGTH @V305066 02980000
  2992. EXT1LL DS CL4 INITIAL EXTENT LOWER LIMIT @V305066 02981000
  2993. CUREXTLL DS CL4 CURRENT EXTENT LOWER LIMIT @V305066 02982000
  2994. EXTUPLIM DS CL4 EXTENT UPPER LIMIT @V305066 02983000
  2995. SEEKSDW DS CL2 SEEK ADDRESS (CCHH) @V305066 02984000
  2996. SRCHSDW DS CL4 SEARCH ADDRESS (CCHH) @V305066 02985000
  2997. RECSDW DS CL1 RECORD NUMBER @V305066 02986000
  2998. LOGMODSW DS CL1 LOGIC MODULE SWITCH @V305066 02987000
  2999. SWOFF EQU X'7F' SET WORK FILE SW OFF @V305066 02988000
  3000. MAXREC DS CL2 MAXIMUM RECORD LENGTH @V305066 02989000
  3001. DS CL1 @V305066 02990000
  3002. EOFSDW DS CL3 USER'S EOF ADDRESS @V305066 02991000
  3003. LOGIND DS CL1 LOGICAL INDICATORS @V305066 02992000
  3004. CNTLIM EQU DTFSDW+144 COUNT AREA @V305066 02993000
  3005. EJECT 02994000
  3006. DTFSD DSECT SEQUENTIAL DISK DSECT @V305066 02995000
  3007. DS CL6 @V305066 02996000
  3008. UNITSD DS CL1 LOGICAL UNIT @V305066 02997000
  3009. CLASSSD DS CL1 CLASS @V305066 02998000
  3010. DS CL4 @V305066 02999000
  3011. DOS1SD DS CL4 DOSCB ADDRESS @V305066 03000000
  3012. SDFLAG0 DS CL1 @V305066 03001000
  3013. SPANSD EQU X'02' SPANNED PROCESSING @V305066 03002000
  3014. DS CL3 @V305066 03003000
  3015. TYPESD DS CL1 DTF TYPE = X'20' @V305066 03004000
  3016. SDFLAG1 DS CL1 @V305066 03005000
  3017. SDBLOCK EQU X'40' BLOCKED FILE @V305066 03006000
  3018. SDWORK EQU X'20' WORK FILE @V305066 03007000
  3019. OPENSD EQU X'04' FILE OPEN @V305066 03008000
  3020. INPSD EQU X'02' INPUT FILE @V305066 03009000
  3021. FILESD DS CL7 FILENAME @V305066 03010000
  3022. DEVSD DS CL1 DEVICE TYPE CODE @V305066 03011000
  3023. DS CL8 @V305066 03012000
  3024. COMSD DS CL1 OPEN COMMUNICATIONS BYTE @V305066 03013000
  3025. NOEXTSD EQU X'80' NO MORE EXTENTS @V305066 03014000
  3026. EOFSD EQU X'10' EXIT TO USER'S EOF ROUTINE @V305066 03015000
  3027. DS CL5 @V305066 03016000
  3028. SDIO1 DS CL4 ADDRESS OF IOAREA1 @V305066 03017000
  3029. DS CL4 @V305066 03018000
  3030. HHSD DS CL2 LOWER HEAD LIMIT @V305066 03019000
  3031. CCHHSD DS CL4 EXT UPPER LIMIT (CCHH) @V305066 03020000
  3032. SEEKSD DS CL2 SEEK ADDRESS (BB) @V305066 03021000
  3033. SEARCHSD DS CL4 SEARCH ARGUMENT @V305066 03022000
  3034. RECSD DS CL1 RECORD NUMBER @V305066 03023000
  3035. EODSD DS CL3 EOF ADDRESS IF INPUT @V305066 03024000
  3036. CONSD DS CL4 CCHH CONTROL FIELD @V305066 03025000
  3037. TRK EQU CONSD+3 TRK PORTION OF CCHH CONTROL FLD @V305066 03026000
  3038. RECTRKSD DS CL1 NO RECS PER TRK/INP @V305066 03027000
  3039. * NO RECS PER TRK MINUS ONE/OUT 03028000
  3040. SDFLAG2 DS CL1 @V305066 03029000
  3041. BLKLESS1 DS CL2 BLOCKSIZE MINUS ONE @V305066 03030000
  3042. CCHHRSD DS CL5 EXT LOWER LIMIT AND RECORD NO. @V305066 03031000
  3043. TRKCAPSD DS CL3 TRACK CAPACITY COUNTER IF OUTPUT @V305066 03032000
  3044. IOREGSD DS CL4 INST. TO LOAD IOREG @V305066 03033000
  3045. CURIOSD DS CL4 ADDRESS OF CURRENT I/O AREA @V305066 03034000
  3046. LRECLSD DS CL4 LOGICAL RECORD SIZE @V305066 03035000
  3047. ENDIOSD DS CL4 ADDRESS OF END OF I/O AREA @V305066 03036000
  3048. SDFLAG3 DS CL1 LOGICAL INDICATORS @V305066 03037000
  3049. IO2SD EQU X'08' 2 I/O AREAS @V305066 03038000
  3050. FIXSD EQU X'02' FIXED LENGTH RECORDS @V305066 03039000
  3051. CNTRLSD EQU X'01' CONTROL PARAMETER SPECIFIED @V305066 03040000
  3052. UNDEFOP EQU X'04' UNDEFINED O/P FILE @V305066 03041000
  3053. DS CL35 @V305066 03042000
  3054. CCWA DS CL8 BEG. OF VARIABLE PORTION OF DTF @V305066 03043000
  3055. CCWB DS CL8 CHK CCWA/CCWB FOR TRUNCS AND UPD @V305066 03044000
  3056. DS CL12 @V305066 03045000
  3057. DOS2SD DS CL4 VAR/UNDEF/SPAN/INP/UPD=NO DOSCB ADD@V305066 03046000
  3058. DS CL8 @V305066 03047000
  3059. ORG CCWA FIXBLK,UPDATE,INP @V305066 03048000
  3060. DS CL36 FIXBLK,CONTROL,OUTPUT @V305066 03049000
  3061. DOS3SD DS CL4 DOSCB ADDRESS @V305066 03050000
  3062. DS CL8 @V305066 03051000
  3063. ORG CCWA FIXBLK,TRUNC,UPDATE,INP @V305066 03052000
  3064. DS CL52 VAR,OUTPUT,CONTROL @V305066 03053000
  3065. DOS4SD DS CL4 DOSCB ADDRESS @V305066 03054000
  3066. DS CL8 @V305066 03055000
  3067. ORG CCWA @V305066 03056000
  3068. DS CL12 FIXBLK,CONTROL,INPUT @V305066 03057000
  3069. DOS5SD DS CL4 DOSCB ADDRESS @V305066 03058000
  3070. DS CL8 @V305066 03059000
  3071. ORG CCWA VAR,UNDEF,INP,UPDATE @V305066 03060000
  3072. DS CL68 @V305066 03061000
  3073. DOS6SD DS CL4 DOSCB ADDRESS @V305066 03062000
  3074. DS CL8 @V305066 03063000
  3075. ORG CCWA UNDEF,OUTPUT,CONTROL @V305066 03064000
  3076. DS CL45 @V305066 03065000
  3077. DOS7SD DS CL4 DOSCB ADDRESS @V305066 03066000
  3078. DS CL8 @V305066 03067000
  3079. ORG CCWA @V305066 03068000
  3080. DS CL12 FIXBLK,INP,TRUNCS=NO,UPD=NO @V305066 03069000
  3081. DOS8SD DS CL4 CONTROL= YES DOSCB ADDRESS @V305066 03070000
  3082. DS CL8 @V305066 03071000
  3083. EJECT 03072000
  3084. DTFMT DSECT @V305066 03073000
  3085. DS CL6 @V305066 03074000
  3086. UNITMT DS CL1 LOGICAL UNIT @V305066 03075000
  3087. CLASSMT DS CL1 CLASS @V305066 03076000
  3088. DS CL8 @V305066 03077000
  3089. MTFLAG0 DS CL1 TAPE SWITCH @V305066 03078000
  3090. DS CL3 @V305066 03079000
  3091. TYPEMT DS CL1 DTF TYPE = X'10'-X'14' @V305066 03080000
  3092. MTFLAG1 DS CL1 @V305066 03081000
  3093. WKNORWD EQU X'80' NO REWIND SPECIFIED @V305066 03082000
  3094. MTWORK EQU X'10' WORK AREA SPECIFIED @V305066 03083000
  3095. MTINP EQU X'08' INPUT FILE @V305066 03084000
  3096. MTFN DS CL8 FILENAME @V305066 03085000
  3097. MTFLAG2 DS CL1 TAPE SWITCH @V305066 03086000
  3098. DS CL1 @V305066 03087000
  3099. NOREWIND EQU X'10' NOREWIND SPECIFIED @V305066 03088000
  3100. NONSTD EQU X'40' NON-STANDARD LABEL PROCESSING @V305066 03089000
  3101. BACKWARD EQU X'08' DRIVE DIRECTION = BACKWARD @V305066 03090000
  3102. MTFLAG3 DS CL1 TAPE SWITCH @V305066 03091000
  3103. FILETYPE EQU X'20' INPUT FILE @V305066 03092000
  3104. MTOPEN EQU X'04' FILE OPEN @V305066 03093000
  3105. ENDFILE EQU X'08' END OF FILE SWITCH ON @V305066 03094000
  3106. DS CL3 @V305066 03095000
  3107. MTFLAG4 DS CL1 @V305066 03096000
  3108. MTDOF DS CL3 END OF FILE ADDRESS @V305066 03097000
  3109. MTBLOCK DS CL4 BLOCK COUNT @V305066 03098000
  3110. DS CL8 @V305066 03099000
  3111. MTIOREG DS CL4 INST TO LOAD IOREG @V305066 03100000
  3112. DS CL8 @V305066 03101000
  3113. MTIO DS CL4 IOAREA ADDRESS @V305066 03102000
  3114. EJECT 03103000
  3115. DTFCP DSECT @V305066 03104000
  3116. DS CL8 @V305066 03105000
  3117. CPCCW1 DS CL4 CCW ADDRESS @V305066 03106000
  3118. DOSCB1 DS CL4 @V305066 03107000
  3119. CPFLAG0 DS CL1 SWITCH @V305066 03108000
  3120. DS CL3 @V305066 03109000
  3121. TYPECP DS CL1 DTF TYPE @V305066 03110000
  3122. CPFLAG1 DS CL1 OPEN INDICATORS @V305066 03111000
  3123. CPFN DS CL7 FILENAME @V305066 03112000
  3124. CPDEV DS CL1 DEVICE TYPE CODE @V305066 03113000
  3125. CPDSK DS CL1 CODE IND WHETHER DISK POSSIBLE @V305066 03114000
  3126. CPSYSPCH DS CL1 @V305066 03115000
  3127. DS CL1 @V305066 03116000
  3128. CPIOREG DS CL1 IOREG @V305066 03117000
  3129. DS CL3 @V305066 03118000
  3130. CPIOREG2 DS CL1 IOREG FOR DIFFERENT DTF @V305066 03119000
  3131. CPFLAG2 DS CL1 OPEN SWITCH @V305066 03120000
  3132. CPSEQC DS CL1 CURRENT EXTENT SEQ @V305066 03121000
  3133. CPSEQL DS CL1 LAST EXT SEQUENCE @V305066 03122000
  3134. CPFLAG3 DS CL1 STANDARD LABEL SWITCH @V305066 03123000
  3135. CPDEVTY DS CL1 @V305066 03124000
  3136. CPFLAG4 DS CL1 DASD,RDR, OR OTHER @V305066 03125000
  3137. DASD EQU X'F3' DASD @V305066 03126000
  3138. OTHER EQU X'F0' OTHER @V305066 03127000
  3139. CPFLAG5 DS CL1 @V305066 03128000
  3140. CPIN EQU X'80' @V305066 03129000
  3141. DS CL7 @V305066 03130000
  3142. CPLOHD DS CL2 LOWER HD LIMIT @V305066 03131000
  3143. CPEXTUP DS CL4 EXT UPPER LIMIT @V305066 03132000
  3144. DS CL10 @V305066 03133000
  3145. CPBUCK DS CL4 CONTROL BUCKET CCHH @V305066 03134000
  3146. CPRECS DS CL1 NO. RECS/TRK/ FOR OUT @V305066 03135000
  3147. * NO. RECS/TRK+1 FOR INPUT 03136000
  3148. CPFLAG6 DS CL1 @V305066 03137000
  3149. CPDEVID DS CL2 @V305066 03138000
  3150. CPCOUNT DS CL5 CCHHR FOR COUNT FIELD @V305066 03139000
  3151. DS CL1 @V305066 03140000
  3152. CPDATLEN DS CL2 DATALENGTH IN DTF @V305066 03141000
  3153. CPINSTR DS CL4 INST. TO LOAD IOAREA TO IOREG @V305066 03142000
  3154. DS CL24 @V305066 03143000
  3155. CPCCWI DS CL8 CCW FOR DASD INP AND 1ST CCW FOR DASD OUT @V305066 03144000
  3156. CPCCWO DS CL8 SEC CCW FOR O/P @V305066 03145000
  3157. EJECT 03146000
  3158. TAPERES DSECT @V305066 03147000
  3159. DS CL2 @V305066 03148000
  3160. CCBSW DS CL14 @V305066 03149000
  3161. DS CL1 @V305066 03150000
  3162. LOGMOD1 DS CL3 LOGIC MODULE ADDRESS @V305066 03151000
  3163. CPTYPE1 DS CL1 DTF TYPE FOR TAPE RES X'31' @V305066 03152000
  3164. CPOPEN1 DS CL1 OPEN INDICATORS @V305066 03153000
  3165. CPFN1 DS CL7 FILENAME @V305066 03154000
  3166. DS CL1 @V305066 03155000
  3167. CPFLAG7 DS CL1 X'00' IND TO DTFCP OPEN PHASES @V305066 03156000
  3168. CPFLAG8 DS CL1 @V305066 03157000
  3169. CPFLAG9 DS CL1 OPEN INDICATORS @V305066 03158000
  3170. IO2AD DS CL3 IOAREA2 ADDRESS @V305066 03159000
  3171. CPINST DS F INST. TO LOAD IOAREA AD TO IOREG @V305066 03160000
  3172. CPCCW0 DS D CCW @V305066 03161000
  3173. *** END OF TABLE IF DTF IS DEFINED AS O/P AND DEVADDR IS NOT SYSPCH 03162000
  3174. PUNCCW1 DS D 2540 PUNCH ERROR RECOVERY CCW1 @V305066 03163000
  3175. PUNCCW2 DS D 2540 PUNCH ERROR RECOVERY CCW2 @V305066 03164000
  3176. CPEOF DS CL3 EOF ADDRESS - INPUT ONLY @V305066 03165000
  3177. EJECT 1 03166000
  3178. IKQACB @VM03188 03167000
  3179. EJECT 03168000
  3180. CPUNTREC DSECT @V305066 03169000
  3181. CPCCB DS CL6 CCB @V305066 03170000
  3182. DS CL3 @V305066 03171000
  3183. CCWPTR DS CL3 CCW POINTER @V305066 03172000
  3184. DS CL4 @V305066 03173000
  3185. LOGIC DS CL4 LOGIC MODULE ADDRESS @V305066 03174000
  3186. TYPECP2 DS CL1 DTFTYPE @V305066 03175000
  3187. CPOPEN2 DS CL1 @V305066 03176000
  3188. FILNAM DS CL7 FILENAME @V305066 03177000
  3189. DASDID DS CL1 DASD DEVICE IDENTIFICATION @V305066 03178000
  3190. CPOIND DS CL6 F1 ADDRESS OR INDICATOR @V305066 03179000
  3191. LOAD2 EQU CPOIND+2 LOAD INSTRUCTION @V305066 03180000
  3192. DS CL2 VOL SEQ NUMBER @V305066 03181000
  3193. DS CL1 DISK OPEN SWITCH @V305066 03182000
  3194. DS CL1 XTNT SEQ NO OF CURRENT EXTENT @V305066 03183000
  3195. XTNWRK DS CL1 XTNT SEQ NO OF LAST EXTENT @V305066 03184000
  3196. DS CL1 @V305066 03185000
  3197. SWITHS DS CL1 LOGICAL INDICATORS @V305066 03186000
  3198. SYSTYPE DS CL1 INDICATOR FOR DTFCP OPEN @V305066 03187000
  3199. OPSW1 DS CL1 @V305066 03188000
  3200. ALTIO DS CL3 IO AREA @V305066 03189000
  3201. CCWND DS CL4 USER LABEL @V305066 03190000
  3202. CCWE1 EQU CCWND+8 AREA TO RELOCATE PPNCH ERR CCW1 @V305066 03191000
  3203. CCWE2 EQU CCWE1+8 AREA TO RELOCATE PUNCH ERR CCW2 @V305066 03192000
  3204. DS CL8 @V305066 03193000
  3205. CPSEK DS CL4 CCHH @V305066 03194000
  3206. CPRECORD DS CL1 R @V305066 03195000
  3207. EOFADR DS CL3 EOF ADDRESS FOR INPUT FILES @V305066 03196000
  3208. CPUPP DS CL4 UPPER LIMIT @V305066 03197000
  3209. CPRMX DS CL1 NO. RECORDS/TRACK @V305066 03198000
  3210. SAVE1 EQU CPRMX CARD IMAGE SAVE AREA 1 @V305066 03199000
  3211. DS CL1 WORK AREA @V305066 03200000
  3212. DS CL1 WORK AREA @V305066 03201000
  3213. CCWKN DS CL1 ADJUSTMENT FOR CCW @V305066 03202000
  3214. CPCNT DS CL6 COUNT AND KEY FIELD @V305066 03203000
  3215. DATALGTH DS CL2 DATA LENGTH FIELD @V305066 03204000
  3216. LOAD DS CL4 LOAD USER IO REGISTER @V305066 03205000
  3217. DS 3D @V305066 03206000
  3218. CCWASA DS D @V305066 03207000
  3219. CCWOT DS D @V305066 03208000
  3220. DS 3D @V305066 03209000
  3221. E1CCW DS D 2540 PUNCH ERROR CCW1 @V305066 03210000
  3222. SAVE2 EQU E1CCW CARD IMAGE SAVE AREA 2 @V305066 03211000
  3223. E2CCW DS D 2540 PUNCH ERROR CCW2 @V305066 03212000
  3224. EJECT 03213000
  3225. NUCON @V305066 03214000
  3226. REGEQU @V305066 03215000
  3227. EJECT 03216000
  3228. DOSCB @V305066 03217000
  3229. OSFST @V305066 03218000
  3230. EJECT 03219000
  3231. ADT @V305066 03220000
  3232. EJECT 03221000
  3233. MAPPUB @V305066 03222000
  3234. SYSCOM @V305106 03223000
  3235. BGCOM @V305066 03224000
  3236. FSTB @V305066 03225000
  3237. EJECT 03226000
  3238. DOSAVE @V305066 03227000
  3239. SYSNAMES @V305066 03228000
  3240. DMSBOP CSECT @V305066 03229000
  3241. LTORG @V305066 03230000
  3242. END 03231000