Table of Contents

DMSLDS Source

References

Source Listing

DMSLDS.ASSEMBLE.txt
  1. LDS TITLE 'DMSLDS (CMS) VM/370 - RELEASE 6' 00001000
  2. SPACE 2 00002000
  3. *. 00003000
  4. * 00004000
  5. * MODULE NAME: 00005000
  6. * 00006000
  7. * DMSLDS (LISTDS) 00007000
  8. * 00008000
  9. * FUNCTION: 00009000
  10. * 00010000
  11. * TO LIST INFORMATION ABOUT SPECIFIED DATA SETS RESIDING 00011000
  12. * ON AN O/S DISK. THIS FUNCTION IS PROVIDED BY INVOKING 00012000
  13. * THE COMMAND 'LISTDS'. 00013000
  14. * 00014000
  15. * ATTRIBUTES: 00015000
  16. * 00016000
  17. * DISK RESIDENT 00017000
  18. * 00018000
  19. * ENTRY POINTS 00019000
  20. * 00020000
  21. * DMSLDS 00021000
  22. * 00022000
  23. * ENTRY CONDITIONS: 00023000
  24. * 00024000
  25. * LA R1,PLIST 00025000
  26. * SVC 202 00026000
  27. * DC AL4(ERROR) 00027000
  28. * 00028000
  29. * 00029000
  30. * R1 MUST POINT TO THE PARAMETER LIST AS USUAL: 00030000
  31. * 00031000
  32. * DS 0D 00032000
  33. * PLIST DC CL8'LISTDS' 00033000
  34. * DC CL8'QUAL1' 1ST. QUALIFIER OF DATA SET NAME 00034000
  35. * DC CL8'QUAL2' 2ND. QUALIFIER OF DATA SET NAME 00035000
  36. * DC CL8'QUALN' NTH. QUALIFIER OF DATA SET NAME 00036000
  37. * DC CL8'FMODE' FILE MODE OF O/S DISK 00037000
  38. * DC CL8'(' BEGINNING OF OPTIONS 00038000
  39. * DC CL8'PDS' TYPE ALL MEMBERS OF PO DATA SET 00039000
  40. * DC CL8'FORMAT' TYPE EXTENDED INFORMATION 00040000
  41. * DC CL8'FREE' TYPE FREESPACE EXTENTS 00041000
  42. * DC CL8'EXTENT' TYPE DATA SET EXTENTS 00042000
  43. * DC XL8'FF' FENCE 00043000
  44. * 00044000
  45. * EXIT CONDITIONS: 00045000
  46. * 00046000
  47. * NORMAL RETURN - 00047000
  48. * 00048000
  49. * R15 = 0 00049000
  50. * 00050000
  51. * ERROR RETURNS - 00051000
  52. * 00052000
  53. * R15 = 4: WARNING 00053000
  54. * INVALID EXTENT FOUND 00054000
  55. * 00055000
  56. * R15 = 24: SYNTAX ERROR 00056000
  57. * INVALID FILE MODE SPECIFIED, 00057000
  58. * NO FILEMODE SPECIFIED, 00058000
  59. * INVALID OPTION FOUND, 00059000
  60. * INVAID DATA SET NAME 00060000
  61. * INVALID DATA SET NAME WITH FREE OPTION 00061000
  62. * INVALID DATA SET NAME WITH EXTENT OPTION 00062000
  63. * 00063000
  64. * R15 = 28: DISK ERRORS 00064000
  65. * I/O ERROR READING O/S DISK, 00065000
  66. * DATA SET NOT FOUND. 00066000
  67. * 00067000
  68. * CALLS TO OTHER ROUTINES: 00068000
  69. * 00069000
  70. * DMSLAD, DMSROS, DMSSTT, DMSFLD, DMSCWR, DMSERR 00070000
  71. * 00071000
  72. * EXTERNAL REFERENCES: 00072000
  73. * 00073000
  74. * NUCON, ADT, CMSCB 00074000
  75. * 00075000
  76. * TABLES/WORK AREAS: 00076000
  77. * 00077000
  78. * NONE 00078000
  79. * 00079000
  80. * 00080000
  81. * REGISTER USAGE 00081000
  82. * 00082000
  83. * R1 PLIST ADDRESS 00083000
  84. * R5 ADT ADDRESSABILITY 00084000
  85. * R7 FCBSECT ADDRESSABILITY 00085000
  86. * R11+12 LISTDS ADDRESSABILITY 00086000
  87. * R14 LINKAGE REGISTER 00087000
  88. * R15 RETURN CODE 00088000
  89. * REST WORK 00089000
  90. * 00090000
  91. * OPERATION: 00091000
  92. * 00092000
  93. * LISTDS SAVES RETURN REGISTER, SETS ITSELF IN NUCLEUS 00093000
  94. * PROTECT KEY, CLEARS THE DSNAME KEY, AND INITIALIZES 00094000
  95. * ITS INTERNAL FLAG. 00095000
  96. * 00096000
  97. * THE PARAMETER LIST IS CHECKED FOR ERRORS. THE 00097000
  98. * DATA SET NAME MUST NOT EXCEED 44 CHARACTERS, AND THE 00098000
  99. * DISK - MODE, (THE LAST PARAMETER BEFORE THE OPTIONS) 00099000
  100. * MUST BE ALPHABETIC. THE QUALIFIERS ARE JOINED WITH 00100000
  101. * DOTS (.) TO FORM VALID DSNAME 'S. (IF THE DSNAME IS 00101000
  102. * SPECIFIED AS A QUESTION MARK (?), THE USER IS PROMP- 00102000
  103. * TED TO ENTER THE DSNAME INTERACTIVELY IN EXACTLY THE 00103000
  104. * SAME FORM AS THE DSNAME APPEARS ON THE O/S DISK.) 00104000
  105. * 00105000
  106. * DMSLAD IS CALLED TO FIND THE ACTIVE DISK TABLE (ADT) 00106000
  107. * BLOCK. IF FMODE IS SPECIFIED AS ASTERICK , THEN THE 00107000
  108. * SEARCH IS MADE FOR ALL ADT BLOCKS. IF THE FMODE IS 00108000
  109. * SPECIFIED AS ALPHABETIC, THEN ONLY THE ADT BLOCK FOR 00109000
  110. * THE SPECIFIED FMODE IS ACQUIRED. 00110000
  111. * 00111000
  112. * IF THE DSNAME IS SPECIFIED (WHICH IS OPTIONAL), THEN 00112000
  113. * THE CHANNEL PROGRAMS ARE SET TO READ BY KEY, IF NOT 00113000
  114. * THE WHOLE VTOC IS SEARCHED FOR FORMAT 1 DSCB AND ALL 00114000
  115. * THE NEEDED INFORMATION IN THE DSCB IS TYPED TO THE 00115000
  116. * USER'S CONSOLE. IF THE FORMAT OPTION IS SPECIFIED,WE 00116000
  117. * TYPE THE RECFM, LRECL, BLKSI, DSORG, DATE, LABEL, FM 00117000
  118. * AND DATA SET NAME; OTHERWISE WE ONLY TYPE THE FMODE 00118000
  119. * AND DATA SET NAME. 00119000
  120. * 00120000
  121. * IF THE PDS OPTION IS SPECIFIED, WE LET THE 'FIND' 00121000
  122. * ROUTINE IN DMSROS READ THE MEMBER DIRECTORY AND GIVE 00122000
  123. * US IN THE FCBMEMBR FIELD OF 'CMSCB' THE NAME OF EACH 00123000
  124. * MEMBER IN THE DATA SET (PROVIDED THE DATA SET IS PO) 00124000
  125. * 00125000
  126. * IF THE FREE OPTION IS SPECIFIED, A CHECK IS MADE 00126000
  127. * TO ENSURE THAT NO DATA SET NAME HAS BEEN SPECIFIED, 00127000
  128. * A VALID , UNIQUE DISK HAS BEEN SPECIFIED, AND NO 00128000
  129. * OTHER OPTIONS ARE PRESENT. THE DEVICE TYPE AND NUMBER 00129000
  130. * OF CYLINDERS ARE OBTAINED FROM THE ADT, AND THE 00130000
  131. * NUMBER OF TRACKS IS CALCULATED. 00131000
  132. * A GETMAIN IS ISSUED FOR ENOUGH FREE STORAGE TO MAP 00132000
  133. * EACH TRACK ON THE DISK TO A BIT. THE VTOC IS MAPPED 00133000
  134. * USING THE EXTENTS IN THE ADT. ALL DSCB'S IN THE VTOC 00134000
  135. * ARE READ IN ONE AT A TIME AND THE FORMAT 1 AND FORMAT 00135000
  136. * 3 DSCB'S ARE SCANNED FOR EXTENTS. THE TRACKS 00136000
  137. * SPECIFIED BY THE EXTENTS ARE MAPPED IN THE FREE 00137000
  138. * STORAGE AREA. 00138000
  139. * WHEN THE END OF THE VTOC IS REACHED, THE TRACK MAP 00139000
  140. * IS SCANNED FOR NON-ALLOCATED TRACKS. CONTIGUOUS 00140000
  141. * NON-ALLOCATED TRACKS MAKE UP AN EXTENT WHICH IS TYPED 00141000
  142. * TO THE TERMINAL. 00142000
  143. * 00143000
  144. * IF THE EXTENT OPTION IS SPECIFIED, A CHECK IS MADE 00144000
  145. * THAT NO OTHER OPTIONS ARE PRESENT. VTOC INFORMATION 00145000
  146. * IS OBTAINED FROM THE ADT AND A SEARCH ON KEY IS 00146000
  147. * DONE FOR THE FORMAT 1 DSCB. THE EXTENT INFORMATION 00147000
  148. * IS ANALYZED FOR TYPE AND NUMBER AND OUTPUT LINES 00148000
  149. * ARE BUILT, 3 EXTENTS TO EACH LINE. IF MORE THAN 3 00149000
  150. * EXTENTS EXIST FOR THE DATA SET, THE FORMAT 3 DSCB IS 00150000
  151. * READ IN USING THE POINTER AT THE END OF THE FORMAT 1 00151000
  152. * DSCB. WHEN A LINE IS FILLED IT IS TYPED TO THE 00152000
  153. * TERMINAL. 00153000
  154. * 00154000
  155. * AFTER ALL THE PROCESSING HAS BEEN DONE,LISTDS RESETS 00155000
  156. * THE NUCLEUS KEY TO USER KEY, GETS THE RETURN CODE IN 00156000
  157. * REG. 15 AND RETURN TO ITS CALLER. 00157000
  158. * 00158000
  159. *. 00159000
  160. EJECT 00160000
  161. DMSLDS CSECT @V201101 00161000
  162. USING NUCON,R0 NUCON ADDRESSABILITY @V201101 00162000
  163. USING ADTSECT,R5 ADT ADDRESSABILITY @V201101 00163000
  164. USING DMSLDS,R11 LISTDS ADDRESSABILITY 1ST PAGE @V305114 00164000
  165. USING DMSLDS+4096,R12 AND 2ND PAGE @V305114 00165000
  166. SPACE 1 00166000
  167. LR R11,R15 SETUP BASE REGISTERS @V305114 00167000
  168. LA R15,4095 ...... @V305114 00168000
  169. LA R12,1(R11,R15) ...... @V305114 00169000
  170. ST R14,SAVR14 SAVE RETURN ADDRESS @V201101 00170000
  171. MVI LVSW,0 INITIALIZE OUR FLAGS @V201101 00171000
  172. DMSKEY NUCLEUS DISABLE NUCLEUS PROTECT @V201101 00172000
  173. * 00173000
  174. MVC SAVDOS(1),DOSFLAGS RESET DOS INDICATORS @V305114 00174000
  175. NI DOSFLAGS,255-DOSSVC FOR PROPER SVC HANDLING @V305114 00175000
  176. CLI 8(R1),FENCE ANYTHING SPECIFIED ? @V201101 00176000
  177. BE NOFMODE NO..ERROR @V201101 00177000
  178. CLI 8(R1),LPAR ANY FILEMODE SPECIFIED ? @VM03015 00178000
  179. BE NOFMODE NO..ERROR @VM03015 00179000
  180. CLC 8(2,R1),=C'? ' USER WANTS TO ENTER DSNAME ? @V201101 00180000
  181. BE GETDSN YES..GO GET IT @V201101 00181000
  182. LA R2,DSNAME GET DSNAME ADDRESS @V201101 00182000
  183. MVI 0(R2),BLANK PREPARE TO BLANK @V201101 00183000
  184. MVC 1(43,R2),0(R2) OUT DSNAME FIELD @V201101 00184000
  185. SR R3,R3 ZERO DSNAME COUNT @V201101 00185000
  186. * 00186000
  187. CHKQUALS LA R1,8(,R1) GET QUALIFIER OF DSN @V201101 00187000
  188. CLI 8(R1),FENCE END OF LINE ? @V201101 00188000
  189. BE CHKMODE YES..GO CHECK FMODE @V201101 00189000
  190. CLI 8(R1),LPAR BEGINNING OF OPTIONS ? @V201101 00190000
  191. BE CHKMODE YES..GO CHECK FMODE @V201101 00191000
  192. * 00192000
  193. LA R5,9 SET QUALIFIER LENGTH+1 @V201101 00193000
  194. LR R4,R1 GET QUALIFIER BEGIN @V201101 00194000
  195. LOOP CLI 0(R4),BLANK BLANK CHAR. ? @V201101 00195000
  196. BE CHKLEN YES..CHECK LENGTH @V201101 00196000
  197. CLI 0(R4),DOT PERIOD SPECIFIED? @V201101 00197000
  198. BE BADDSN YES, THEN BAD DATA SET NAME @V201101 00198000
  199. LA R4,1(,R4) BUMP TO NEXT CHAR. @V201101 00199000
  200. BCT R5,LOOP KEEP SEARCHING @V201101 00200000
  201. BCTR R4,0 ... @V201101 00201000
  202. * 00202000
  203. CHKLEN SR R4,R1 BEGIN LESS END @V201101 00203000
  204. LTR R4,R4 IS LENGTH ZERO ? @V201101 00204000
  205. BZ CHKQUALS YES..GET NEXT QUALIFIER @V201101 00205000
  206. LA R3,1(R4,R3) GET DSNAME TOTAL LENGTH @V201101 00206000
  207. CH R3,H45 EXCEEDS MAXIMUN ? @V201101 00207000
  208. BH BADDSN YES..ERROR @V201101 00208000
  209. TM LVSW,DSN IS THIS THE FIRST QUALIFIER ?@V201101 00209000
  210. BO SETDOT NO..INSERT DOT @V201101 00210000
  211. OI LVSW,DSN SET NOT FIRST @V201101 00211000
  212. B SETDSN MOVE THE QUALIFIER @V201101 00212000
  213. * 00213000
  214. SETDOT MVI 0(R2),DOT INSERT DOT AFTER LAST QUAL. @V201101 00214000
  215. LA R2,1(,R2) BUMP DSNAME POINTER BY ONE @V201101 00215000
  216. SETDSN BCTR R4,0 LENGTH LESS ONE FOR EXECUTE @V201101 00216000
  217. EX R4,MVEDSN MOVE DSNAME TO KEY @V201101 00217000
  218. LA R2,1(R4,R2) BUMP DSNAME POINTER BY LENGTH@V201101 00218000
  219. B CHKQUALS GET NEXT QUALIFIER @V201101 00219000
  220. * 00220000
  221. MVEDSN MVC 0(0,R2),0(R1) MOVE DSNAME TO KEY @V201101 00221000
  222. EJECT 1 00222000
  223. * 00223000
  224. GETDSN LA R1,16(,R1) BUMP POINTER TO MODE @V201101 00224000
  225. CLI 0(R1),FENCE ANYTHING THERE ? @V201101 00225000
  226. BE NOFMODE NO..ERROR @V201101 00226000
  227. CLI 0(R1),LPAR TRY AGAIN @V201101 00227000
  228. BE NOFMODE NO..ERROR @V201101 00228000
  229. LR R3,R1 SAVE R1 TEMPORARILY @V201101 00229000
  230. BAL R14,DSNMSG LET USER KNOW YOUR WHEREABOUT@V201101 00230000
  231. LA R1,CONRD GET CONSOLE READ PLIST @V201101 00231000
  232. SVC 202 GET DSNAME FROM CONSOLE @V201101 00232000
  233. DC AL4(*+4) ... @V201101 00233000
  234. LR R1,R3 RESTORE R1 @V201101 00234000
  235. LH R3,CONCNT+2 GET NUMBER BYTES READ @V201101 00235000
  236. LTR R3,R3 ANYTHING READ ? @V201101 00236000
  237. BZ CHKMODE NO..LIST ALL DATA SETS THEN @V201101 00237000
  238. LA R3,1(,R3) MY FOOLNESS @V201101 00238000
  239. SH R3,H45 EXCEEDS MAX DSNAME LEN ? @V201101 00239000
  240. BNP DSNOK NO..GOOD DSNAME @V201101 00240000
  241. CKOVR44 LA R5,DSNAME+43(R3) GET END TYPED LINE @V201101 00241000
  242. CLI 0(R5),BLANK IS IT BLANK ? @V201101 00242000
  243. BNE BADDSN NO..ERROR @V201101 00243000
  244. BCT R3,CKOVR44 KEEP LOOKING PAST 44 @V201101 00244000
  245. DSNOK OI LVSW,DSN SET TO SEARCH VTOC BY KEY @V201101 00245000
  246. * 00246000
  247. CHKMODE CLI 2(R1),BLANK TWO CHAR. MODE ? @V201101 00247000
  248. BNE BADMODE NO..INVALID FMODE @V201101 00248000
  249. CLI 1(R1),BLANK ONE CHAR. MODE ? @V201101 00249000
  250. BE CHKSTAR YES..SEE IF ASTERICK @V201101 00250000
  251. CLI 1(R1),X'F0' IS MODE NO. VALID ? @V201101 00251000
  252. BL BADMODE NO..INVALID FMODE @V201101 00252000
  253. CLI 1(R1),X'F5' ... @V201101 00253000
  254. BH BADMODE DITTO @V201101 00254000
  255. CHKSTAR CLI 0(R1),STAR SEARCH ALL DISKS ? @V201101 00255000
  256. BNE CHKABLE NO..SEE IF MODE ALPHA @V201101 00256000
  257. OI LVSW,ALLOS SEARCH ALL ADTS @V201101 00257000
  258. B SETMODE CONTINUE.. @V201101 00258000
  259. * 00259000
  260. CHKABLE CLI 0(R1),ABLE IS IT MODE A ? @V201101 00260000
  261. BL BADMODE IF LOWER..ERROR @V201101 00261000
  262. CLI 0(R1),ZEBRA IS IT MODE Z ? @V201101 00262000
  263. BH BADMODE IF HIGHER..ERROR @V201101 00263000
  264. * 00264000
  265. SETMODE MVC FMODE(1),0(R1) SAVE FMODE FOR ADTLKUP @V201101 00265000
  266. LA R5,SETLNTH LOAD FOR FUTURE BRANCH @V305114 00266000
  267. EJECT 1 00267000
  268. LA R6,LVMOD-LVBUF GET DEFAULT BUFFER INDEX @V201101 00268000
  269. LA R7,LVEND-LVMOD GET DEFAULT BUFFER LENGTH @V201101 00269000
  270. CLI 8(R1),FENCE ANY OPTIONS ? @V201101 00270000
  271. BER R5 NO ... SET TYPLIN BUFFER LENGTH @V305114 00271000
  272. LA R1,16(,R1) UP TO OPTION @V201101 00272000
  273. CLC 0(5,R1),FREE FREE OPTION SPECIFIED ? @V305114 00273000
  274. BE SETFREE YES ... BR @V305114 00274000
  275. CLC 0(7,R1),XTNT EXTENT OPTION SPECIFIED ? @V305114 00275000
  276. BE SETXTNT YES ... BR @V305114 00276000
  277. CLC 0(4,R1),EX ALLOW EXTENT ABBREVIATION @V305114 00277000
  278. BE SETXTNT ....... @V305114 00278000
  279. CHKOPTS CLC 0(8,R1),FORMAT IS IT VALID OPTION ? @V201101 00279000
  280. BE SETINDX YES..SET NEW BUFF INDEX @V201101 00280000
  281. CLC 0(4,R1),FO ONE MORE CHANCE.. @V201101 00281000
  282. BE SETINDX YES..SET NEW BUFF INDEX @V201101 00282000
  283. CLC 0(4,R1),PDS IS IT PDS OPTION ? @V201101 00283000
  284. BE SETMEMSW YES, CHECK NEXT OPTION @V201101 00284000
  285. CLI 0(R1),C')' RIGHT PAREN? @V201101 00285000
  286. BNE BADOPT NO..ERROR @V201101 00286000
  287. B CHKNXT YES, THROUGH WITH LINE @V201101 00287000
  288. SETMEMSW OI LVSW,MEM SET PDS OPTION FLAG @V201101 00288000
  289. B CHKNXT GO SEE IF MORE OPTIONS @V201101 00289000
  290. SETFREE TM LVSW,DSN NO DSN ALLOWED @V305114 00290000
  291. BO FREERR ELSE ERROR @V305114 00291000
  292. LA R1,8(,R1) BUMP PTR FOR POSSIBLE ERROR MSG @VM03091 00292000
  293. CLI 0(R1),FENCE NO OTHER OPTIONS ALLOWED @VM03091 00293000
  294. BE FOPTOK BR IF FENCE @V305114 00294000
  295. CLI 0(R1),RTPAREN RIGHT PAREN OK TOO @VM03091 00295000
  296. BNE BADOPT ERROR IF NEITHER @V305114 00296000
  297. FOPTOK OI LVSW,FREESW FLAG FREESPACE REQUEST @V305114 00297000
  298. LA R7,LEN70 PRESET LENGTH OF OUTPUT @V305066 00298000
  299. BR R5 SET TYPLIN BUFFER LENGTH @V305114 00299000
  300. SPACE 1 00300000
  301. SETXTNT LA R1,8(,R1) BUMP PTR FOR POSSIBLE ERROR MSG @VM03091 00301000
  302. CLI 0(R1),FENCE NO OTHER OPTIONS ALLOWED @VM03091 00302000
  303. BE XOPTOK BR IF FENCE @V305114 00303000
  304. CLI 0(R1),RTPAREN RIGHT PAREN IS OK @VM03091 00304000
  305. BNE BADOPT ERROR IF NEITHER @V305114 00305000
  306. XOPTOK OI LVSW,XTNTSW FLAG EXTENT REQUEST @V305114 00306000
  307. LA R7,LEN30 PRESET LENGTH OF OUTPUT @V305066 00307000
  308. BR R5 SET TYPLIN BUFFER LENGTH @V305114 00308000
  309. SPACE 1 00309000
  310. SETINDX AR R7,R6 SET OPTIONAL BUFFER LENGTH @V201101 00310000
  311. SR R6,R6 SET OPTIONAL BUFFER INDEX @V201101 00311000
  312. CHKNXT CLI 8(R1),FENCE ANY MORE OPTIONS ? @V201101 00312000
  313. BER R5 NO ... SET TYPLIN BUFFER LENGTH @V305114 00313000
  314. LA R1,8(,R1) BUMP TO NEXT OPTION @V201101 00314000
  315. B CHKOPTS GO AND CHECK IT.. @V201101 00315000
  316. SETLNTH STCM R7,B'0111',LVLNTH+1 BUFFER LENGTH IN PLIST @V201101 00316000
  317. LA R1,RDDSCB1 GET GENERAL CHAN PROG. @V201101 00317000
  318. TM LVSW,FREESW FREE SPECIFIED ? @V305114 00318000
  319. BO SETCHAN YES ... ALL SET @V305114 00319000
  320. TM LVSW,DSN SEARCHING BY KEY ? @V201101 00320000
  321. BZ SETCHAN NO..USE THIS ONE @V201101 00321000
  322. LA R1,RDDSCB1K GET CHAN PROG TO SEARCH BY KE@V201101 00322000
  323. SETCHAN ST R1,CHNPROG SAVE CHAN PROG ADDRESS @V201101 00323000
  324. SR R5,R5 ... @V201101 00324000
  325. * 00325000
  326. TM LVSW,ALLOS SEARCHING ALL ADTS ? @V201101 00326000
  327. BO SRCHADTS YES..USE ADTNXT @V201101 00327000
  328. LA R1,FMODE-24 GET PLIST FOR ADTLKP @V201101 00328000
  329. L R15,VCADTLKP GET ADTLKP ADDRESS @VM03093 00329000
  330. BALR R14,R15 FIND ADT FOR ASSOCIATED MODE @V201101 00330000
  331. BZ CHKMORE DO MORE CHECKS @VA02610 00331000
  332. LA R1,FMODE GET FILEMODE ADDRESS @VA02610 00332000
  333. B BADMODE GIVE ERROR MSG @VA02610 00333000
  334. CHKMORE LR R5,R1 GET ADT ADDRESS IN REG 5 @VA02610 00334000
  335. TM ADTFLG2,ADTFROS IS IT AN O/S DISK ? @V201101 00335000
  336. BNZ SETSEEK YES..GO SET VTOC SEEK ADDR. @V201101 00336000
  337. LA R1,FMODE GET FILEMODE DISK IN ERROR @V201101 00337000
  338. B BADMODE2 GIVE ERROR MSG @VA02610 00338000
  339. * 00339000
  340. SRCHADTS LR R1,R5 GET NEXT ADT ADDRESS @V201101 00340000
  341. L R15,VCADTNXT GET ADTNXT ADDRESS @VM03093 00341000
  342. BALR R14,R15 FIND NEXT ADT @V201101 00342000
  343. BZ TESTADT FOUND..TEST FOR O/S DISK @V201101 00343000
  344. B TSTDSNF THAT IS ALL FOLKS @VA05780 00344000
  345. TESTADT LR R5,R1 GET ADT ADDR IN R5 @V201101 00346000
  346. TM ADTFLG2,ADTFROS IS IT O/S DISK ? @V201101 00347000
  347. BZ SRCHADTS NO..GET NEXT ONE THEN @V201101 00348000
  348. SETSEEK MVC CCHHR(5),OSADTVTA SET SEEK ADDRESS @V201101 00349000
  349. TM LVSW,FREESW+XTNTSW FREE OR EXTENT REQUEST ? @V305114 00350000
  350. BZ GOTDSN NO ... BR @V305114 00351000
  351. ************************************************************** 00352000
  352. * DETERMINE THE NUMBER OF TRACKS PER CYLINDER FOR FREE 00353000
  353. * REQUEST AND EXTENT REQUEST. 00354000
  354. ************************************************************** 00355000
  355. LA R7,CON20 PLUG 2314 TYPE TRKS PER CYL @V305066 00356000
  356. CLI OSADTDSK+3,T2314 2314 ? @V305114 00357000
  357. BE SETTC YES ... BR @V305114 00358000
  358. LA R7,CON19 PLUG 3330 TYPE TRACKS PER CYL @V305066 00359000
  359. CLI OSADTDSK+3,T3330 3330 ? @V305114 00360000
  360. BE SETTC YES ... BR @V305114 00361000
  361. CLI OSADTDSK+3,T333B 3330-11? @V505098 00361080
  362. BE SETTC YES ... BR @V505098 00361160
  363. LA R7,CON30 PLUG 3350 TRK/CYL @VA06168 00361250
  364. CLI OSADTDSK+3,T3350 IS IT A 3350? @VA06168 00361500
  365. BE SETTC YES ---- BRANCH @VA06168 00361750
  366. LA R7,CON15 PLUG 3380 TRK/CYL HRC004DS 00361810
  367. CLI OSADTDSK+3,T3380 IS IT A 3380? HRC004DS 00361870
  368. BE SETTC YES ---- BRANCH HRC004DS 00361930
  369. LA R7,CON12 PLUG 3340 TYPE TRACKS PER CYL @V305066 00362000
  370. SETTC STH R7,TRKCYL SET TRACKS PER CYL @V305114 00363000
  371. TM LVSW,DSN DSN SPECIFIED ? @V305114 00364000
  372. BO GOTDSN YES ... BR @V305114 00365000
  373. OI LVSW,DSFND INDICATE DATA SET FOUND @V305114 00366000
  374. TM LVSW,XTNTSW EXTENT REQUEST ? @V305114 00367000
  375. BNO MAPVTOC MUST BE FREESPACE REQUEST @V305114 00368000
  376. SPACE 1 00369000
  377. OI LVSW,DSFND DATA SET AUTOMATICALLY FOUND @V305114 00370000
  378. OI XTNTFLG,VTOCFLG SET VTOC INDICATOR ON @V305114 00371000
  379. MVC DSNAME(5),VTOC PLUG 'VTOC' INTO DSN @V305114 00372000
  380. MVC DSNAME+5(39),DSNAME+4 CLEAR THE REST @V305114 00373000
  381. USING FMT1,R9 WE'LL FOOL THE XTNT ROUTINE @V305114 00374000
  382. LA R9,DSCB AND BUILD AN EXTENT FOR VTOC @V305114 00375000
  383. SPACE 1 00376000
  384. MVI X1SEQ,SEQ0 FORCE SEQ. NUM. TO ZERO @V305066 00377000
  385. MVC X1LCC(4),OSADTVTA PLUG LOW CYL AND HEAD @V305114 00378000
  386. MVC X1HCC(4),OSADTVTB PLUG HIGH CYL AND HEAD @V305114 00379000
  387. MVI XTNUM,EXT1 ONLY ONE EXTENT FOR VTOC @V305066 00380000
  388. B VTOCENT GET INTO NORMAL EXTENT ROUTINE @V305114 00381000
  389. DROP R9 @V305114 00382000
  390. SPACE 1 00383000
  391. ************************************************************** 00384000
  392. * THIS ROUTINE IS USED TO DETERMINE THE FREE SPACE EXTENTS ON 00385000
  393. * THE VTOC AND SET THE TRACK MAP BITS FOR THE VTOC. 00386000
  394. ************************************************************** 00387000
  395. MAPVTOC L R7,ADTCYL GET NUMBER OF CYLINDERS AND @V305114 00388000
  396. MH R7,TRKCYL CALCULATE TOTAL TRACKS ON DISK @V305114 00389000
  397. STH R7,TRKTOTAL SAVE THE TOTAL @V305114 00390000
  398. SRL R7,3 DIVIDE BY EIGHT FOR TRACK MAP @V305114 00391000
  399. LA R7,1(,R7) ADD 1 FOR POSSIBLE REMAINDER @V305114 00392000
  400. STH R7,MAPNUM AND SAVE THE BYTE COUNT @V305114 00393000
  401. SPACE 1 00394000
  402. GETMAIN R,LV=(7) @V305114 00395000
  403. LR R6,R1 SET ADR FOR CLEAR OP @V305114 00396000
  404. SR R8,R8 THIS WILL RESULT @V305114 00397000
  405. SR R9,R9 IN A CLEAR OPERATION @V305114 00398000
  406. MVCL R6,R8 BY MVCL @V305114 00399000
  407. SPACE 1 00400000
  408. ST R1,MAPAD SAVE TRACK MAP ADDRESS @V305114 00401000
  409. OI 0(R1),HEX80 TRACK 0 IS NEVER AVAILABLE @V305066 00402000
  410. LH R7,OSADTVTA GET LOW CYL @V305114 00403000
  411. MH R7,TRKCYL MULTIPLY BY TRACKS PER CYL @V305114 00404000
  412. LH R8,OSADTVTA+2 INSERT LOW TRACK NUMBER @V305114 00405000
  413. AR R7,R8 AND ADD TO THE REST @V305114 00406000
  414. LH R8,OSADTVTB DO THE SAME FOR @V305114 00407000
  415. MH R8,TRKCYL THE HIGH EXTENT @V305114 00408000
  416. LH R6,OSADTVTB+2 THEN DETERMINE THE @V305114 00409000
  417. AR R8,R6 NUMBER OF TRACKS @V305114 00410000
  418. SR R8,R7 IN THE EXTENT @V305114 00411000
  419. LA R8,1(,R8) PLUS 1 FOR TRUE TOTAL @V305114 00412000
  420. SPACE 1 00413000
  421. BAL R14,FILLMAP SET PROPER BITS ON IN TRACK MAP @V305114 00414000
  422. SPACE 1 00415000
  423. EJECT 1 00416000
  424. *************************************************************** 00417000
  425. * 00418000
  426. * READ AND VERIFY FORMAT 1 DSCB FOR DATA SET 00419000
  427. * 00420000
  428. *************************************************************** 00421000
  429. SPACE 1 00422000
  430. GOTDSN L R0,CHNPROG CHAN PROG TO READ FORMAT 1 DS@V201101 00423000
  431. BAL R14,DISKIO GO READ IT @V201101 00424000
  432. B DSCB1UC UNIT CHECK DURING I/O @V201101 00425000
  433. B DSCB1SLI POSSIBLE INCORRECT LENGTH @V201101 00426000
  434. B GOTDSCB1 DATA SET FOUND @V201101 00427000
  435. * 00428000
  436. DSCB1UC BAL R14,CHKSENSE GO CHECK SENSE DATA @V201101 00429000
  437. TM SNSEBYTE,X'09' NO REC FOUND OR OVERFLOW ? @V201101 00430000
  438. BNZ VTOCERR IF ANY..VTOC I/O ERROR @V201101 00431000
  439. TM SNSEBYTE,X'20' WAS IT CYLINDER END ? @V201101 00432000
  440. BZ VTOCERR NO..ASSUME VTOC I/O ERROR @V201101 00433000
  441. BAL R14,INCRCYL GO INCREMENT CYLINDER ADDRESS@V201101 00434000
  442. * 00435000
  443. CHKXTNT1 CLC CCHHR(4),OSADTVTB EXCEEDS UPPER LIM OF VTOC? @VA03666 00436000
  444. BNH GOTDSN NO.. GO TRY NEXT CYLINDER @VA03666 00437000
  445. TM LVSW,FREESW FREE OPTION PROCESSING ? @V305101 00438000
  446. BO TYPFREE YES, FINISH UP FREE LIST @V305101 00439000
  447. SRCHDISK TM LVSW,ALLOS MORE DISKS TO SEARCH ? @VA05780 00440000
  448. BO SRCHADTS YES - GET NEXT ADT @VA05780 00440200
  449. B TSTDSNF GO TEST FOR DATA SET FOUND @VA05780 00440400
  450. * 00445000
  451. DSCB1SLI EQU * @VA06431 00446500
  452. TM LVSW,FREESW FREE OPTION SPECIFIED ? @VA05780 00447200
  453. BO TYPFREE YES - FREE OPTION PROCESSING @VA05780 00447400
  454. B SRCHDISK GO TEST FOR MORE DISKS @VA05780 00447600
  455. * 00449000
  456. GOTDSCB1 TM LVSW,FREESW FREE OPTION SPECIFIED ? @V305114 00450000
  457. BO FREEREQ YES ... BR @V305114 00451000
  458. TM LVSW,XTNTSW EXTENT REQUEST ? @V305114 00452000
  459. BO XTNTREQ YES ... BR @V305114 00453000
  460. CLI DSCB1+44-44,C'1' IS IT FORMAT 1 DSCB ? @V201101 00454000
  461. BE CHKDSCB1 YES..CHECK ALL FIELDS @V201101 00455000
  462. * 00456000
  463. GETNXT TM LVSW,DSN SEARCHING BY KEY ? @V201101 00457000
  464. BNO BLNKDSN NO..BLANK OUT DSNAME @V201101 00458000
  465. TM LVSW,ALLOS SEARCHING ALL DISKS ? @V201101 00459000
  466. BO SRCHADTS YES..GET NEXT O/S DISK @V201101 00460000
  467. B EXIT IF NOT..RETURN @V201101 00461000
  468. BLNKDSN NI LVSW,255-MEMHDG SET TO TYPE MEMBER HEADING @V201101 00462000
  469. LA R2,DSNAME GET DSNAME ADDRESS @V201101 00463000
  470. MVI 0(R2),BLANK PREPARE TO BLANK @V201101 00464000
  471. MVC 1(43,R2),0(R2) OUT DSNAME FIELD @V201101 00465000
  472. MVC CCHHR(5),NEXTSEEK GET NEXT FROMAT 1 DSCB @V201101 00466000
  473. B CHKXTNT1 ..... @V305114 00467000
  474. EJECT 1 00468000
  475. CHKDSCB1 TM LVSW,DSHDNG FIRST TIME THROUGH ? @V201101 00469000
  476. BO CHKDSN NO..PROCESS DSCB1 @V201101 00470000
  477. OI LVSW,DSHDNG+DSFND MAIN HEADING TYPED..DATA SET @V201101 00471000
  478. LA R10,LVHEAD(R6) GET HEADING ADDRESS @V201101 00472000
  479. STCM R10,B'0111',LVBUFF+1 STORE IN TYPLIN LIST @V201101 00473000
  480. LA R1,LVLINE GET HEADING ADDRESS @V201101 00474000
  481. SVC 202 TYPE HEADING @V201101 00475000
  482. DC AL4(*+4) ... @V201101 00476000
  483. * 00477000
  484. CHKDSN LA R10,LVDSN GET DSNAME AREA @V201101 00478000
  485. MVC 0(44,R10),DSNAME MOVE FOUND DSNAME @V201101 00479000
  486. * 00480000
  487. LA R10,LVREC GET LRECL AREA @V201101 00481000
  488. TM DSCB1+84-44,U IS RECFM U ? @V201101 00482000
  489. BM CHKF NO..CHECK FOR FIXED @V201101 00483000
  490. BZ CHKLREC IF ZERO..NO RECFM SPEC. @V201101 00484000
  491. MVI 0(R10),C'U' SET RECFM U @V201101 00485000
  492. LA R10,1(,R10) UP RECFM POINTER @V201101 00486000
  493. B CHKS KEEP CHECKING @V201101 00487000
  494. * 00488000
  495. CHKF TM DSCB1+84-44,F IS RECFM FIXED ? @V201101 00489000
  496. BZ CHKV NO..MUST BE VAR. @V201101 00490000
  497. MVI 0(R10),C'F' MOVE F TO RECFM @V201101 00491000
  498. B CHKV+4 KEEP CHECKING @V201101 00492000
  499. * 00493000
  500. CHKV MVI 0(R10),C'V' MOVE V TO RECFM @V201101 00494000
  501. LA R10,1(,R10) UP RECFM POINTER @V201101 00495000
  502. * 00496000
  503. CHKB TM DSCB1+84-44,B BLOCKED RECORDS ? @V201101 00497000
  504. BZ CHKS NO..SEE IF SPANNED @V201101 00498000
  505. MVI 0(R10),C'B' MOVE B TO RECFM @V201101 00499000
  506. LA R10,1(,R10) UP RECFM POINTER @V201101 00500000
  507. * 00501000
  508. CHKS TM DSCB1+84-44,S SPANNED RECORDS ? @V201101 00502000
  509. BZ CHKT NO..SEE IF TRK OVFLW @V201101 00503000
  510. MVI 0(R10),C'S' MOVE S TO RECFM @V201101 00504000
  511. LA R10,1(,R10) UP RECFM POINTER @V201101 00505000
  512. * 00506000
  513. CHKT TM DSCB1+84-44,T TRK OVFLW ? @V201101 00507000
  514. BZ CHKA NO..CHECK CONTROL CHAR. @V201101 00508000
  515. MVI 0(R10),C'T' MOVE T TO RECFM @V201101 00509000
  516. LA R10,1(,R10) UP RECFM POINTER @V201101 00510000
  517. * 00511000
  518. CHKA TM DSCB1+84-44,A+M CONTROL A OR M ? @V201101 00512000
  519. BZ CHKLREC NONE..PROCESS LRECL @V201101 00513000
  520. TM DSCB1+84-44,A IS IT A ? @V201101 00514000
  521. BZ CHKM NO..MUST BE MACHINE CODE @V201101 00515000
  522. MVI 0(R10),C'A' MOVE A TO RECFM @V201101 00516000
  523. B CHKLREC GO CHECK LRECL @V201101 00517000
  524. CHKM MVI 0(R10),C'M' MOVE M TO RECFM @V201101 00518000
  525. EJECT 1 00519000
  526. * 00520000
  527. CHKLREC LH R9,DSCB1+88-44 GET LRECL FROM DSCB @V201101 00521000
  528. LA R10,LVLRL GET LRECL POINTER @V201101 00522000
  529. BAL R14,CONVERT CONVERT LRECL @V201101 00523000
  530. * 00524000
  531. LH R9,DSCB1+86-44 GET BLKSIZE FROM DSCB @V201101 00525000
  532. LA R10,LVBLK GET BLKSIZE POINTER @V201101 00526000
  533. BAL R14,CONVERT CONVERT BLKSIZE @V201101 00527000
  534. * 00528000
  535. SR R9,R9 ... @V201101 00529000
  536. IC R9,DSCB1+53-44 GET YEAR FROM DSCB @V201101 00530000
  537. LA R10,LVYY GET YEAR POINTER @V201101 00531000
  538. BAL R14,CONVERT CONVERT YEAR @V201101 00532000
  539. * 00533000
  540. SR R8,R8 ... @V201101 00534000
  541. D R8,=F'4' DIVIDE YEAR BY 4 @V201101 00535000
  542. LTR R8,R8 IS IT LEAP YEAR ? @V201101 00536000
  543. BZ LEAPYR YES..BRANCH @V201101 00537000
  544. MVI FEB+1,X'1C' MAKE FEB 28 DAYS @V201101 00538000
  545. B CHKMMDD BRANCH.. @V201101 00539000
  546. LEAPYR MVI FEB+1,X'1D' MAKE FEB 29 DAYS @V201101 00540000
  547. CHKMMDD LA R8,1 GET FIRST MONTH @V201101 00541000
  548. LH R9,DSCB1+54-44 GET DAYS FROM DSCB @V201101 00542000
  549. LA R10,JAN GET FIRST MONTH ADDRESS @V201101 00543000
  550. * 00544000
  551. MMDDLUP CH R9,0(,R10) HIGHER THAN DAYS IN MO ? @V201101 00545000
  552. BNH DONE NO..ALL DONE WITH MMDD @V201101 00546000
  553. SH R9,0(,R10) SUB DAYS IN LAST MO. @V201101 00547000
  554. LA R8,1(,R8) UP TO NEXT MO. @V201101 00548000
  555. LA R10,2(,R10) ... @V201101 00549000
  556. B MMDDLUP @V201101 00550000
  557. * 00551000
  558. DONE LA R10,LVDD GET DAY POINTER @V201101 00552000
  559. BAL R14,CONVERT CONVERT DAYS @V201101 00553000
  560. LR R9,R8 GET MONTH NUMBER @V201101 00554000
  561. LA R10,LVMM GET MONTH POINTER @V201101 00555000
  562. BAL R14,CONVERT CONVERT MONTH @V201101 00556000
  563. MVI LVSL1,SLASH MOVE / TO BUFFER @V201101 00557000
  564. MVI LVSL2,SLASH .... @V201101 00558000
  565. * 00559000
  566. LA R9,LOOP7 @VA06395 00560100
  567. LA R10,DSORGS GET DSORG TABLE @V201101 00561000
  568. CHKDSORG CLC DSCB1+82-44(2),0(R10) FIND DSORG CODE @V305114 00562000
  569. BE MVDSORG IF FOUND..MOVE IT @V201101 00563000
  570. LA R10,6(,R10) POINT TO NEXT CODE @V305114 00564000
  571. BCT R9,CHKDSORG LOOP TILL FOUND @V201101 00565000
  572. B MVEMODE NO DSORG.. @V201101 00566000
  573. * 00567000
  574. MVDSORG MVC LVDSO(4),2(R10) MOVE DSORG TO BUFFER @V305114 00568000
  575. MVEMODE MVC LVMOD(1),ADTM MOVE FMODE TO BUFFER @V201101 00569000
  576. MVC LVLAB(6),ADTID MOVE LABEL TO BUFFER @V201101 00570000
  577. * 00571000
  578. EJECT 1 00572000
  579. * 00573000
  580. LINEOK LA R10,LVBUF(R6) GET LINE TO TYPE @V201101 00574000
  581. STCM R10,B'0111',LVBUFF+1 STORE IN TYPLIN LIST @V201101 00575000
  582. LH R7,LVLNTH+2 GET LENGTH OF LINE @VA04829 00575500
  583. LA R1,LVLINE GET TYPLIN LIST @V201101 00576000
  584. SVC 202 TYPE THE LINE @V201101 00577000
  585. DC AL4(*+4) ... @V201101 00578000
  586. * 00579000
  587. MVI 0(R10),C' ' PREPARE TO BLANK BUFFER @V201101 00580000
  588. SH R7,=H'2' LESS 2 FOR MVC @V201101 00581000
  589. EX R7,BLNKBUF ... @V201101 00582000
  590. AH R7,=H'2' RESET REG. @V201101 00583000
  591. TM LVSW,MEM USER WANTS MEMBERS LISTED ? @V201101 00584000
  592. BZ GETNXT NO..GET NEXT FORMAT 1 DSCB @V201101 00585000
  593. CLI DSCB1+82-44,PO IS DATA SET PARTITIONED ? @V201101 00586000
  594. BE MEMBERS YES - LIST MEMBERS @VA06395 00587100
  595. CLI DSCB1+82-44,POU IS DATA SET PARTITIONED? @VA06395 00587600
  596. BE MEMBERS YES - LIST MEMBERS @VA06395 00588100
  597. B GETNXT NO - GET NEXT FORMAT 1 DSCB @VA06395 00588600
  598. * 00589000
  599. BLNKBUF MVC 1(0,R10),0(R10) MVC TO BLANK BUFFER @V201101 00590000
  600. * 00591000
  601. CONVERT CVD R9,CVDWK CONVERT TO DECIMAL @V201101 00592000
  602. UNPK UNPKWK(5),CVDWK+3(5) MOVE TO WORK AREA @V201101 00593000
  603. OI UNPKWK+4,X'F0' FIX LAST BYTE @V201101 00594000
  604. LA R1,UNPKWK AREA ADDRESS @V201101 00595000
  605. LA R2,4 AREA LENGHT LESS 1 @V201101 00596000
  606. CHKZERO CLI 0(R1),X'F0' IS BYTE ZERO ? @V201101 00597000
  607. BNE MOVEIT NO..MOVE KEY WORD @V201101 00598000
  608. LA R1,1(0,R1) UP AREA BY ONE @V201101 00599000
  609. BCT R2,CHKZERO KEEP SEARCHING.. @V201101 00600000
  610. CLI 0(R1),X'F0' IS LAST BYTE ZERO ? @V201101 00601000
  611. BCR 8,R14 YES..RETURN @V201101 00602000
  612. BCTR R1,0 PRECEDE ONLY NON-ZERO @V201101 00603000
  613. LA R2,1(,R2) BYTE WITH A ZERO @V201101 00604000
  614. MOVEIT EX R2,KEYMOVE MOVE TO BUFFER @V201101 00605000
  615. BR R14 RETURN TO CALLER @V201101 00606000
  616. * 00607000
  617. KEYMOVE MVC 0(0,R10),0(R1) ... @V201101 00608000
  618. * 00609000
  619. EJECT 1 00610000
  620. *************************************************************** 00611000
  621. * 00612000
  622. * TO PROCESS MEMBERS WE LET 'FIND' ROUTINE IN 00613000
  623. * DMSROS DO THE WORK..UPON RETURN, THE MEMBER 00614000
  624. * NAME WILL BE IN THE FCBMEMBR FIELD OF THE FCB. 00615000
  625. * 00616000
  626. *************************************************************** 00617000
  627. SPACE 1 00618000
  628. MEMBERS LA R1,FINDFDF GET $LISTDS$ FILEDEF LIST @V201101 00619000
  629. IC R3,FMODE SAVE FMODE TEMPORARILY @V201122 00620000
  630. MVC FMODE(1),ADTM SET FMODE TO ADT MODE @V201101 00621000
  631. SVC 202 FILEDEF IT @V201101 00622000
  632. DC AL4(*+4) ... @V201101 00623000
  633. LPR R7,R0 GET FCB ADDRESS @V305114 00624000
  634. USING FCBSECT,R7 FCB ADDRESSABILITY @V305114 00625000
  635. OI FCBIOSW2,FCBMVPDS SET FLAG FOR MEMBER FIND @V201101 00626000
  636. XC FCBMEMBR(8),FCBMEMBR CLEAR MEMBER FIELD @V201101 00627000
  637. LA R1,DSNAME GET DSNAME ADDRESS @V201101 00628000
  638. ST R1,FCBOSDSN SAVE IF FCB @V201101 00629000
  639. MVC STTFM,FMODE SET FILEMODE IS STATE PLIST @V201101 00630000
  640. LA R1,FINDSTT GET STATE PLIST ADDR @V201101 00631000
  641. SVC 202 STATE WITH DSN @V201101 00632000
  642. DC AL4(*+4) ... @V201101 00633000
  643. STC R3,FMODE RESTORE FMODE @V201122 00634000
  644. LR R10,R5 SAVE ADT ADDR. @V201101 00635000
  645. MEMINT LA R2,MNAMES GET MEMBER NAMES BUFFER @V201101 00636000
  646. LA R3,8 GET NUMBER NAMES IN BUFF @V201101 00637000
  647. GETMEM L R15,ADMSROS GET DMSROS ADDRESS @V201101 00638000
  648. LA R9,FCBMEMBR PASS ADDR OF CURRENT MEMBR NA@V201101 00639000
  649. LR R1,R11 SAVE BASE REG FROM DMSROS @V305114 00640000
  650. LR R11,R7 GET FCBSECT ADDRESSABILITY @V305114 00641000
  651. BAL R14,12(,R15) GO TO FIND ROUTINE IN DMSROS @V201101 00642000
  652. LR R11,R1 RESTORE BASE @V305114 00643000
  653. LTR R14,R15 ANY ERRORS ? @V201101 00644000
  654. BNZ TYPELINE YES..GO PRINT BUFFER @V201101 00645000
  655. TM LVSW,MEMHDG MEMBER HEADING TYPED ? @V201101 00646000
  656. BO MEMOK YES..BRANCH @V201101 00647000
  657. LA R1,MEMBER GET MEMBER HEADING @V201101 00648000
  658. STCM R1,B'0111',MEMBUFF+1 SAVE ADDR IN TYPLIN LIST @V201101 00649000
  659. LA R1,L'MEMBER GET LENGTH MEMBER HEADING @V201101 00650000
  660. STCM R1,B'0111',MEMLNTH+1 SAVE LNTH IN TYPLIN LIST @V201101 00651000
  661. LA R1,MEMLINE GET TYPLIN LIST ADDR @V201101 00652000
  662. SVC 202 TYPE MEMBER HEADING @V201101 00653000
  663. DC AL4(*+4) ... @V201101 00654000
  664. OI LVSW,MEMHDG SET MEMBER HDNG TYPED @V201101 00655000
  665. MEMOK MVC 0(8,R2),FCBMEMBR MOVE MEMBER NAME TO BUFFER @V201101 00656000
  666. LA R2,9(,R2) UP BUFFER POINTER @V201101 00657000
  667. BCT R3,GETMEM KEEP SEARCHING @V201101 00658000
  668. EJECT 1 00659000
  669. TYPELINE LA R3,MNAMES GET BEGIN OF BUFFER @V201101 00660000
  670. SR R2,R3 GET LENGTH OF BUFFER @V201101 00661000
  671. LTR R2,R2 ANYTHING IN BUFFER ? @V201101 00662000
  672. BZ POSSEOF NO..DO NOT TYPE LINE @V201101 00663000
  673. STCM R2,B'0111',MEMLNTH+1 SAVE BUFF LNTH IN TYPLIN L@V201101 00664000
  674. STCM R3,B'0111',MEMBUFF+1 SAVE BUFF ADDR IN TYPLIN L@V201101 00665000
  675. LA R1,MEMLINE GET TYPLIN LIST ADDR @V201101 00666000
  676. SVC 202 TYPE MEMBER NAMES @V201101 00667000
  677. DC AL4(*+4) ... @V201101 00668000
  678. POSSEOF LTR R15,R14 ANY RETURN CODE FROM FIND ? @V201101 00669000
  679. BZ MEMINT NO..KEEP LOOKING FOR MEMBERS @V201101 00670000
  680. XC FCBOSDSN,FCBOSDSN CLEAR DSN POINTER IN FCB @V201101 00671000
  681. LR R5,R10 RESTORE ADT ADDR @V201122 00672000
  682. CH R15,H8 I/O ERROR IN FIND ROUTINE ? @V201101 00673000
  683. BE IOERROR YES..GIVE ERROR MSG @V201101 00674000
  684. TM LVSW,MEMHDG ANY MEMBERS FOUND @V201101 00675000
  685. BZ NOMEMS NO..TELL USER @V201101 00676000
  686. SRCHON XC MEMLNTH+1(3),MEMLNTH+1 ZERO LNTH IN TYPLIN LIST@V201122 00677000
  687. LA R1,MEMLINE GET TYPLIN LIST ADDRESS @V201101 00678000
  688. SVC 202 JUST TYPE A NULL LINE @V201101 00679000
  689. DC AL4(*+4) ... @V201101 00680000
  690. NI LVSW,255-DSHDNG TYPE MAIN HEADING FOR NEXT D.@V201101 00681000
  691. B GETNXT RETURN..IT IS EOF @V201101 00682000
  692. EJECT 00683000
  693. FREEREQ EQU * @V305114 00684000
  694. LA R9,DSCB ADDRESS DSCB READ @V305114 00685000
  695. MVC CCHHR(5),NEXTSEEK GET NEXT DSCB @V305114 00686000
  696. CLI DSCB+44,DSCBONE FORMAT 1 DSCB ? @V305066 00687000
  697. BNE FREEFM3 NO ... SEE IF FORMAT 3 @V305114 00688000
  698. SPACE 1 00689000
  699. USING FMT1,R9 @V305114 00690000
  700. LA R3,POSEXT EXTENTS POSSIBLE THIS DSCB @V305066 00691000
  701. MVC XTNUM(1),F1XNUM SAVE NUMBER OF EXTENTS @V305114 00692000
  702. SR R4,R4 CLEAR FOR ICM @V305114 00693000
  703. ICM R4,BIN0001,XTNUM EXTENT COUNT HERE TOO @V305066 00694000
  704. LA R1,X1TYP POINT TO EXTENT TYPE @V305114 00695000
  705. XLOOP CLI 0(R1),SPLITX SPLIT CYLINDERS ? @V305114 00696000
  706. BNE XLOOP1 NO ... BR @V305114 00697000
  707. OI FREEFLG,SPLIT TELL XCALC @V305114 00698000
  708. SPACE 1 00699000
  709. XLOOP1 BAL R14,XCALC SET EXTENT BITS IN TRKMAP @V305114 00700000
  710. CLI 0(R1),LABX LABEL EXTENTS NOT COUNTED @V305114 00701000
  711. BE MOREX IN EXTENT COUNT FIELD @V305114 00702000
  712. BCT R4,MOREX MORE EXTENTS ? @V305114 00703000
  713. B CHKXTNT1 NO ... GET NEXT DSCB @V305114 00704000
  714. MOREX BCT R3,NEXTX YES, GET ALL FROM THIS DSCB ? @V305114 00705000
  715. B CHKXTNT1 YES ... GET NEXT DSCB @V305114 00706000
  716. NEXTX LA R1,10(,R1) BUMP TO NEXT TYPE @V305114 00707000
  717. B XLOOP AND CONTINUE @V305114 00708000
  718. SPACE 1 00709000
  719. FREEFM3 EQU * @V305114 00710000
  720. CLI DSCB+44,FORM3 FORMAT 3 ? @V305066 00711000
  721. BNE CHKXTNT1 NO ... GET ANOTHER ONE @V305114 00712000
  722. SPACE 1 00713000
  723. USING FMT3,R9 @V305114 00714000
  724. LA R3,MAXEXT13 MAX EXTENTS THIS DSCB @V305066 00715000
  725. LA R1,X4TYP POINT TO 1ST FMT3 EXTENT @V305114 00716000
  726. SPACE 1 00717000
  727. F3LOOP CLI 0(R1),CHAR3 WE MUST SKIP OVER @V305066 00718000
  728. BNE NOSKIP THE FMTID BYTE @V305114 00719000
  729. LA R1,1(,R1) .... @V305114 00720000
  730. NOSKIP EQU * @VA09107 00720400
  731. CLI 0(R1),HEX00 NO EXTENT INDICATOR? @VA09107 00720800
  732. BE CHKXTNT1 GET NEXT DSCB @VA09107 00721200
  733. CLI 0(R1),SPLITCYL SPLIT CYLINDER EXTENT? @VA09107 00721600
  734. BNE NOSPLIT NO ... BR @V305114 00722000
  735. OI FREEFLG,SPLIT TELL XCALC @V305114 00723000
  736. SPACE 1 00724000
  737. NOSPLIT BAL R14,XCALC SET EXTENT BITS IN TRKMAP @V305114 00725000
  738. SPACE 1 00728000
  739. MORE3X BCT R3,NEXT3X GET ALL FROM THIS DSCB ? @V305114 00729000
  740. B CHKXTNT1 YES, GET NEXT DSCB @V305114 00730000
  741. NEXT3X LA R1,10(,R1) BUMP EXTENT POINTER @V305114 00731000
  742. B F3LOOP AND CONTINUE @V305114 00732000
  743. EJECT 00733000
  744. ************************************************************** 00734000
  745. * THE TYPFREE ROUTINE SEARCHES THE TRACK MAP FOR FREE SPACE 00735000
  746. * AND ASSEMBLES THE OUTPUT LINES CONTAINING THE FREESPACE 00736000
  747. * EXTENTS FOR THE TERMINAL. 00737000
  748. ************************************************************** 00738000
  749. TYPFREE EQU * @V305114 00739000
  750. ST R5,SAVADT SAVE CURRENT ADT ADDRESS @V305114 00740000
  751. LINEDIT TEXT='FREESPACE EXTENTS FOR ''..'' DISK:',DOT=NO,SUB=(X00741000
  752. CHARA,(ADTM,1)) @V305114 00742000
  753. LA R10,LVBUF ESTABLISH ADDRESSABILITY @V305114 00743000
  754. USING FDATA,R10 FOR DATA LINE BUFFER @V305114 00744000
  755. L R4,MAPAD POINT TO TRACK MAP @V305114 00745000
  756. SR R5,R5 CLEAR CYL NUMBER @V305114 00746000
  757. SR R6,R6 CLEAR HEAD NUMBER @V305114 00747000
  758. LH R8,TRKTOTAL AND NUMBER OF BITS IN TRKMAP @V305114 00748000
  759. INITBIT LA R7,EIGHT INITIALIZE BIT COUNTER @V305066 00749000
  760. LA R9,CON128 INITIALIZE BIT COMPARE REG @V305066 00750000
  761. SPACE 1 00751000
  762. FREELOOP EX R9,FREETM TEST FOR BIT ALLOCATED @V305114 00752000
  763. BO BITON BRANCH IF ALLOCATED @V305114 00753000
  764. OI FREEFLG,SPACE THERE IS SOME SPACE HERE @V305114 00754000
  765. SPACE 1 00755000
  766. TM FREEFLG,HDG HEADING TYPED YET ? @V305114 00756000
  767. BO HDTYPD YES ... BR @V305114 00757000
  768. OI FREEFLG,HDG OTHERWISE, SET THE FLAG.. @V305114 00758000
  769. LA R2,CON41 SET THE HEADING LINE LENGTH @V305066 00759000
  770. LA R3,FHEAD POINT TO THE HEADING @V305114 00760000
  771. BAL R14,TYPF AND TYPE IT @V305114 00761000
  772. SPACE 1 00762000
  773. HDTYPD TM FREEFLG,ON IF SWITCH IS OFF, THIS IS THE @V305114 00763000
  774. BO INFREE 1ST BIT OF A FREE SPACE @V305114 00764000
  775. SPACE 1 00765000
  776. OI FREEFLG,ON TURN SWITCH ON @V305114 00766000
  777. SR R3,R3 INITIALIZE TRACK COUNT @V305114 00767000
  778. LR R1,R5 GET CYL NUMBER @V305114 00768000
  779. STH R1,CYLTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00769000
  780. BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00770000
  781. MVC LCYL(3),2(R1) AND MOVE TO DATA LINE @V305114 00771000
  782. SPACE 1 00772000
  783. LR R1,R6 GET HEAD NUMBER @V305114 00773000
  784. STH R1,HDTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00774000
  785. BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00775000
  786. MVC LHD(2),3(R1) AND MOVE TO DATA LINE @V305114 00776000
  787. SPACE 1 00777000
  788. LH R1,TRKCYL NUMBER OF TRACKS PER CYL @V305114 00778000
  789. MH R1,CYLTEMP TIMES CYLINDER NUMBER @V305114 00779000
  790. AH R1,HDTEMP PLUS HEAD NUMBER @V305114 00780000
  791. BAL R14,EDCNT1 UNPACK AND EDIT @V305114 00781000
  792. MVC RELTRK1(5),UNPKWK+3 PLUG RELTRK INTO LINE @V305114 00782000
  793. SPACE 1 00783000
  794. INFREE LA R3,1(,R3) ADD 1 TO TRACK COUNT @V305114 00784000
  795. B NOTFUL GO ADVANCE POINTERS @V305114 00785000
  796. SPACE 1 00786000
  797. BITON EQU * TRACK IS ALLOCATED @V305114 00787000
  798. TM FREEFLG,ON START OF AN ALLOCATED EXTENT ? @V305114 00788000
  799. BNO NOTFUL NO ... BR @V305114 00789000
  800. NI FREEFLG,255-ON RESET THE SWITCH @V305114 00790000
  801. LTR R1,R6 GET HEAD NUMBER @V305114 00791000
  802. BNZ NOADJ IF CURRENTLY 0 ADJUST CYL @V305114 00792000
  803. SPACE 1 00793000
  804. LH R1,TRKCYL GET THE LARGEST HEAD VALUE @V305114 00794000
  805. BCTR R1,R0 ........ @V305114 00795000
  806. STH R1,HDTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00796000
  807. BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00797000
  808. MVC HHD(2),3(R1) AND MOVE TO DATA LINE @V305114 00798000
  809. LR R1,R5 GET CYLINDER NUMBER @V305114 00799000
  810. BCTR R1,R0 AND DECREMENT @V305114 00800000
  811. STH R1,CYLTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00801000
  812. BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00802000
  813. MVC HCYL(3),2(R1) AND MOVE TO DATA LINE @V305114 00803000
  814. B SETTRKS GO SET TRKS FIELD @V305114 00804000
  815. SPACE 1 00805000
  816. NOADJ BCTR R1,R0 DECREMENT HEAD NUMBER @V305114 00806000
  817. LASFIL2 STH R1,HDTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00807000
  818. BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00808000
  819. MVC HHD(2),3(R1) AND MOVE TO DATA LINE @V305114 00809000
  820. LR R1,R5 GET CYLINDER NUMBER @V305114 00810000
  821. STH R1,CYLTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00811000
  822. BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00812000
  823. MVC HCYL(3),2(R1) AND MOVE TO DATA LINE @V305114 00813000
  824. SPACE 1 00814000
  825. SETTRKS LH R1,TRKCYL TRACKS PER CYLINDER @V305114 00815000
  826. MH R1,CYLTEMP TIMES CYLINDER NUMBER @V305114 00816000
  827. AH R1,HDTEMP PLUS HEAD NUMBER @V305114 00817000
  828. BAL R14,EDCNT1 UNPACK AND EDIT @V305114 00818000
  829. MVC RELTRK2(5),UNPKWK+3 PLUG RELTRKS INTO LINE @V305114 00819000
  830. SPACE 1 00820000
  831. CVD R3,CVDWK MAKE NUMBER OF TRACKS @V305114 00821000
  832. BAL R14,EDCNT3 NOW GO EDIT @V305114 00822000
  833. MVC FTRKS(5),UNPKWK+3 MOVE TO DATA LINE @V305114 00823000
  834. SPACE 1 00824000
  835. LA R2,CON41 SET LINE LENGTH @V305066 00825000
  836. LA R3,LVBUF NOW POINT TO DATA LINE @V305114 00826000
  837. BAL R14,TYPF AND TYPE LINE @V305114 00827000
  838. SPACE 1 00828000
  839. NOTFUL BCTR R8,R0 DECREMENT MAP BIT COUNT @V305114 00829000
  840. LTR R8,R8 IF ZERO ... @V305114 00830000
  841. BZ LASFIL1 WE'RE DONE @V305114 00831000
  842. BM CHKANY MINUS IF END OF PACK FREE @V305114 00832000
  843. SPACE 1 00833000
  844. LA R6,1(,R6) BUMP HEAD NUMBER @V305114 00834000
  845. CH R6,TRKCYL WAS THAT LAST HEAD ON CYL ? @V305114 00835000
  846. BL BITDECR NO ... BR @V305114 00836000
  847. SR R6,R6 YES, ZERO HEAD NUMBER @V305114 00837000
  848. LA R5,1(,R5) AND BUMP THE CYLINDER NUMBER @V305114 00838000
  849. SPACE 1 00839000
  850. BITDECR BCT R7,INBYTE BR IF STILL IN BYTE BOUNDARY @V305114 00840000
  851. LA R4,1(,R4) BUMP MAP POINTER @V305114 00841000
  852. B INITBIT AND INITIALIZE BIT COMPARE REG @V305114 00842000
  853. SPACE 1 00843000
  854. INBYTE SRL R9,1 SHIFT BIT COMPARE REG @V305114 00844000
  855. B FREELOOP AND CHECK NEXT BIT @V305114 00845000
  856. SPACE 1 00846000
  857. LASFIL1 TM FREEFLG,ON LAST TRACK ALLOCATED ? @V305114 00847000
  858. BNO CHKANY YES ... BR @V305114 00848000
  859. LR R1,R6 NECESSARY FOR FREESPACE AT @V305114 00849000
  860. B LASFIL2 END OF PACK @V305114 00850000
  861. SPACE 1 00851000
  862. CHKANY L R5,SAVADT RESTORE ADT POINTER @V305114 00852000
  863. TM FREEFLG,SPACE ANY SPACE AVAILABLE @V305114 00853000
  864. BNO NOSPACE TELL USER ABOUT IT @V305114 00854000
  865. SPACE 1 00855000
  866. FEXIT L R7,MAPAD POINT TO FREE STOR ADDRESS @V305114 00856000
  867. LH R6,MAPNUM AND ITS' LENGTH @V305114 00857000
  868. FREEMAIN R,LV=(6),A=(7) @V305114 00858000
  869. NI FREEFLG,255-(SPACE+HDG+ON) RESET FLAG BITS @V305114 00859000
  870. TM LVSW,ALLOS MULTI-DISK REQUEST ? @V305114 00860000
  871. BO SRCHADTS YES, BR @V305114 00861000
  872. B EXIT NOW EXIT LISTDS @V305114 00862000
  873. SPACE 1 00863000
  874. FREETM TM 0(R4),HEX00 TEST FOR BIT ALLOCATED @V305066 00864000
  875. EJECT 00865000
  876. XTNTREQ EQU * @V305114 00866000
  877. TM XTNTFLG,FM3SW DON'T CHECK FOR END OF VTOC @V305114 00867000
  878. BO SKENDCK IF A FORMAT 3 DSCB IS EXPECTED @V305114 00868000
  879. CLC NEXTSEEK(4),OSADTVTB AT END OF VTOC ? @V305114 00869000
  880. BH PREEXIT YES ... BR @V305114 00870000
  881. SKENDCK LA R9,DSCB POINT TO DSCB READ IN AREA @V305114 00871000
  882. CLI DSCB+44,DSCBONE FORMAT 1 ? @V305066 00872000
  883. BNE CHKFM3X NO ... BR @V305114 00873000
  884. SPACE 1 00874000
  885. OI LVSW,DSFND FOUND A DATA SET @V305114 00875000
  886. USING FMT1,R9 ESTABLISH ADDRESSABILITY @V305114 00876000
  887. MVC TCCHHR(5),NEXTSEEK SAVE FOR NEXT FMT1 SEARCH @V305114 00877000
  888. MVC XTNUM(1),F1XNUM GET NUMBER OF EXTENTS @V305114 00878000
  889. VTOCENT SR R4,R4 ALSO SAVE THAT NUMBER @V305114 00879000
  890. ICM R4,BIN0001,XTNUM .... @V305066 00880000
  891. SPACE 1 00881000
  892. SR R2,R2 SPACE A LINE BETWEEN @V305114 00882000
  893. BAL R14,TYPF GROUPS OF EXTENTS @V305114 00883000
  894. SPACE 1 00884000
  895. LINEDIT SUB=(CHARA,DSNAME,CHARA,(ADTM,1)),TEXT='EXTENT INFORMAX00885000
  896. TION FOR ''............................................'X00886000
  897. ' ON ''..'' DISK:',DOT=NO,RENT=NO @V305114 00887000
  898. LA R2,CON51 SET LINE LENGTH PERMANENTLY @V305066 00888000
  899. LA R3,XHEAD POINT TO EXTENT HEADER @V305114 00889000
  900. BAL R14,TYPF AND TYPE @V305114 00890000
  901. SPACE 1 00891000
  902. LA R3,LVBUF POINT TO DATA AREA @V305114 00892000
  903. USING XDATA,R3 ESTABLISH DSECT ADDRESSABILITY @V305114 00893000
  904. LA R7,X1TYP POINT TO EXTENT TYPE @V305114 00894000
  905. LA R6,MAXEXT3 MAX EXTENTS THIS DSCB @V305066 00895000
  906. SPACE 1 00896000
  907. TYLOOP1 BAL R14,TYLOOP BUILD AND TYPE THE EXTENT DATA @V305114 00897000
  908. CLI 0(R7),LABX LABEL EXTENT NOT COUNTED @V305114 00898000
  909. BE MOREA IN EXTENT COUNT FIELD @V305114 00899000
  910. BCT R4,MOREA BRANCH IF MORE DS EXTENTS @V305114 00900000
  911. B EXEXIT OTHERWISE, WE MAY BE DONE @V305114 00901000
  912. SPACE 1 00902000
  913. MOREA LA R7,10(,R7) BUMP TO NEXT EXTENT @V305114 00903000
  914. BCT R6,TYLOOP1 LOOP IF MORE FMT1 EXTENTS @V305114 00904000
  915. SKIPF2 EQU * RESET AFTER FORMAT2 DSCB @VA09881 00904500
  916. LA R1,RDDSCB3 BETTER CHANGE THE CCW CHAIN @V305114 00905000
  917. ST R1,CHNPROG .... @V305114 00906000
  918. OI XTNTFLG,FM3SW DON'T IGNORE FORMAT 3 DSCB @V305114 00907000
  919. MVC CCHHR(5),F1PTR PLUG FMT3 CCHHR @V305114 00908000
  920. B GOTDSN AND GO GET FMT3 DSCB @V305114 00909000
  921. SPACE 1 00910000
  922. ************************************************************** 00911000
  923. * PROCESS FORMAT 3 DSCB EXTENTS. 00912000
  924. ************************************************************** 00913000
  925. CHKFM3X EQU * @V305114 00914000
  926. TM XTNTFLG,FM3SW EXPECTING A FORMAT 3 DSCB ? @V305114 00915000
  927. BNO EXEXIT NO, JUST LOOKING FOR FORMAT 1 @V305114 00916000
  928. CLI DSCB+44,FORM2 FORMAT 2 DSCB (ISAM)? @VA09881 00916300
  929. BE SKIPF2 YES, SKIP AND GET FORMAT 3 @VA09881 00916600
  930. CLI DSCB+44,FORM3 THIS HAS TO BE A FORMAT 3 DSCB @V305066 00917000
  931. BNE VTOCERR ELSE, ERROR @V305114 00918000
  932. USING FMT3,R9 ESTABLISH ADDRESSABILITY @V305114 00919000
  933. LA R6,MAXEXT13 MAX EXTENTS THIS DSCB @V305066 00920000
  934. LA R7,X4TYP POINT TO 1ST FMT3 EXTENT @V305114 00921000
  935. SPACE 1 00922000
  936. TYLOOP3 BAL R14,TYLOOP BUILD AND TYPE LINE @V305114 00923000
  937. LA R7,10(,R7) BUMP EXTENT POINTER @V305114 00924000
  938. CLI 0(R7),HEXF3 WE MUST SKIP OVER @V305066 00925000
  939. BNE SKFID THE FORMAT IDENTIFIER @V305114 00926000
  940. LA R7,1(,R7) ...... @V305114 00927000
  941. SPACE 1 00928000
  942. SKFID BCT R4,MORE3A ANY EXTENTS LEFT THIS DS ? @V305114 00929000
  943. B EXEXIT NO, WE'RE DONE @V305114 00930000
  944. MORE3A BCT R6,TYLOOP3 MORE THIS DSCB ? @V305114 00931000
  945. MVC CCHHR(5),F3PTR NO,POINT TO NEXT DSCB @V305114 00932000
  946. LA R1,RDDSCB3 POINT TO CCW CHAIN @V305114 00933000
  947. ST R1,CHNPROG FOR FORMAT 3 DSCB @V305114 00934000
  948. OI XTNTFLG,FM3SW FORMAT 3 EXPECTED @V305114 00935000
  949. B GOTDSN AND GET THE NEXT ONE @V305114 00936000
  950. SPACE 1 00937000
  951. EXEXIT TM XTNTFLG,VTOCFLG VTOC JUST LISTED ? @V305114 00938000
  952. BNO NOTVTOC NO ... BR @V305114 00939000
  953. NI XTNTFLG,255-VTOCFLG RESET INDICATOR @V305114 00940000
  954. B CHKXTNT1 AND START GETTING EXTENTS @V305114 00941000
  955. SPACE 1 00942000
  956. NOTVTOC TM LVSW,DSN DSN SPECIFIED ? @V305114 00943000
  957. BO PREEXIT YES ... WE'RE DONE @V305114 00944000
  958. TM XTNTFLG,FM3SW FORMAT 3 DSCB READ ? @V305114 00945000
  959. BNO RDNEXT NO ... BR @V305114 00946000
  960. MVC CCHHR(5),TCCHHR YES, FM3 MAY NOT BE IN @V305114 00947000
  961. B SETCCW SEQUENCE AFTER FM1 @V305114 00948000
  962. SPACE 1 00949000
  963. RDNEXT MVC CCHHR(5),NEXTSEEK POINT TO NEXT CCHHR @V305114 00950000
  964. SETCCW NI XTNTFLG,255-FM3SW RESET FM3 FLAG @V305114 00951000
  965. LA R1,RDDSCB1 SET UP FOR SEARCH FOR @V305114 00952000
  966. ST R1,CHNPROG NEXT FORMAT 1 DSCB @V305114 00953000
  967. B CHKXTNT1 NOW GET IT @V305114 00954000
  968. SPACE 1 00955000
  969. EJECT 00956000
  970. ************************************************************** 00957000
  971. * TYLOOP RECEIVES A POINTER TO A SET OF EXTENTS AND BUILDS 00958000
  972. * A DATA LINE FOR OUTPUT TO THE TERMINAL. IT THEN CALLS THE 00959000
  973. * TYPF ROUTINE TO TYPE TO THE TERMINAL. 00960000
  974. ************************************************************** 00961000
  975. TYLOOP EQU * @V305114 00962000
  976. ST R14,RETSAVE SAVE THE RETURN ADDRESS @VA07903 00962070
  977. USING EXTNT,R7 @VA06034 00962140
  978. CLI DSCB+44,DSCBONE IS THIS A FORMAT 1 LABEL? @VA06034 00962280
  979. BNE XTNTLOOP NO, DON'T LOOK FOR A MODEL DSCB @VA06034 00962420
  980. CLI TYPX,MODL IS THIS ONE A MODEL DSCB? @VA06034 00962560
  981. BNE XTNTLOOP NO, BUILD EXTENT DATA @VA06034 00962700
  982. MVI XDATA,BLANK MOVE BLANK TO FIRST BYTE @VA09250 00962790
  983. MVC XDATA+1(50),XDATA RESET FIELD TO BLANKS @VA09250 00962880
  984. MVC XTYPE(5),MCONST INDICATE MODEL DSCB WITH @VA06034 00962980
  985. MVI XTRKS+4,CHAR0 NO TRACKS USED @VA06034 00963120
  986. LA R4,EXT1 USE SAME COUNT AS SINGLE EXTENT @VA06034 00963260
  987. B SETYP TYPE OUTPUT LINE @VA06034 00963400
  988. SPACE 00963540
  989. XTNTLOOP EQU * @VA06034 00963680
  990. SR R1,R1 CLEAR FOR ICM @V305114 00965000
  991. ICM R1,BIN0001,SEQX GET SEQUENCE NUMBER @V305066 00966000
  992. BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00967000
  993. MVC XSEQ(3),2(R1) PLUG INTO DATA LINE @V305114 00968000
  994. SPACE 1 00969000
  995. SR R1,R1 CLEAR FOR ICM @V305114 00970000
  996. ICM R1,BIN0011,LCYLX GET LOW CYLINDER @V305066 00971000
  997. STH R1,CYLTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00972000
  998. BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00973000
  999. MVC XLCYL(3),2(R1) PLUG INTO DATA LINE @V305114 00974000
  1000. SPACE 1 00975000
  1001. SR R1,R1 CLEAR FOR ICM @V305114 00976000
  1002. ICM R1,BIN0011,LHDX GET LOW HEAD @V305066 00977000
  1003. STH R1,HDTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00978000
  1004. BAL R14,CNVRT CONVERT TO PRINTABE FORM @V305114 00979000
  1005. MVC XLHD(2),3(R1) PLUG INTO DATA LINE @V305114 00980000
  1006. SPACE 1 00981000
  1007. LH R1,TRKCYL TRACKS PER CYLINDER @V305114 00982000
  1008. MH R1,CYLTEMP TIMES TRACK NUMBER @V305114 00983000
  1009. AH R1,HDTEMP PLUS HEAD NUMBER @V305114 00984000
  1010. BAL R14,EDCNT1 CONVERT AND EDIT @V305114 00985000
  1011. MVC XRTRK1(5),UNPKWK+3 PLUG INTO LINE @V305114 00986000
  1012. SPACE 1 00987000
  1013. SR R1,R1 CLEAR FOR ICM @V305114 00988000
  1014. ICM R1,BIN0011,HCYLX GET HIGH CYLINDER @V305066 00989000
  1015. STH R1,CYLTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00990000
  1016. BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00991000
  1017. MVC XHCYL(3),2(R1) PLUG INTO DATA LINE @V305114 00992000
  1018. SPACE 1 00993000
  1019. SR R1,R1 CLEAR FOR ICM @V305114 00994000
  1020. ICM R1,BIN0011,HHDX GET HIGH HEAD @V305066 00995000
  1021. STH R1,HDTEMP SAVE FOR RELATIVE TRACK CALC @V305114 00996000
  1022. BAL R14,CNVRT CONVERT TO PRINTABLE FORM @V305114 00997000
  1023. MVC XHHD(2),3(R1) PLUG INTO DATA LINE @V305114 00998000
  1024. SPACE 1 00999000
  1025. LH R1,TRKCYL TRACKS PER CYLINDER @V305114 01000000
  1026. MH R1,CYLTEMP TIMES TRACK NUMBER @V305114 01001000
  1027. AH R1,HDTEMP PLUS HEAD NUMBER @V305114 01002000
  1028. BAL R14,EDCNT1 CONVERT AND EDIT @V305114 01003000
  1029. MVC XRTRK2(5),UNPKWK+3 PLUG INTO LINE @V305114 01004000
  1030. SPACE 1 01005000
  1031. CLI TYPX,SPLITX SPLIT CYLINDER EXTENT ? @V305114 01006000
  1032. BNE NOTSPLT NO ... BR @V305114 01007000
  1033. OI FREEFLG,SPLIT LET XCALC KNOW @V305114 01008000
  1034. NOTSPLT LR R1,R7 USE THE XCALC @V305114 01009000
  1035. BAL R14,XCALC ROUTINE TO GIVE US THE NUMBER @V305114 01010000
  1036. SPACE 1 01011000
  1037. LR R1,R8 TRANSFER NUMBER OF TRACKS @V305114 01012000
  1038. BAL R14,EDCNT1 CONVERT AND EDIT @V305114 01013000
  1039. MVC XTRKS(5),UNPKWK+3 PLUG INTO LINE @V305114 01014000
  1040. SPACE 1 01015000
  1041. MVC XTYPE(5),DCONST PLUG DATA TYPE @V305114 01016000
  1042. TM 0(R7),DATX DATA EXTENT ? @V305114 01017000
  1043. BO SETYP YES ... BR @V305114 01018000
  1044. MVC XTYPE(5),SCONST PLUG SPLIT CYL TYPE @V305114 01019000
  1045. CLI 0(R7),SPLITX SPLIT CYL EXTENT ? @V305114 01020000
  1046. BE SETYP YES ... BR @V305114 01021000
  1047. MVC XTYPE(5),LCONST PLUG LABEL CONSTANT @V305114 01022000
  1048. CLI 0(R7),LABX USER LABEL EXTENT ? @V305114 01023000
  1049. BE SETYP YES ... BR @V305114 01024000
  1050. MVC XTYPE(5),ICONST PLUG INDEX TYPE @V305114 01025000
  1051. CLI 0(R7),INDX INDEX EXTENT ? @V305114 01026000
  1052. BE SETYP YES ... BR @V305114 01027000
  1053. MVC XTYPE(5),VTOC PLUG VTOC TYPE @V305114 01028000
  1054. TM XTNTFLG,VTOCFLG VTOC EXTENT ? @V305114 01029000
  1055. BO SETYP YES ... BR @V305114 01030000
  1056. MVC XTYPE(5),OCONST MUST BE ISAM OVFLO @V305114 01031000
  1057. SPACE 1 01032000
  1058. SETYP LA R3,XDATA POINT TO DATA LINE @V305114 01033000
  1059. BAL R14,TYPF AND TYPE IT @V305114 01034000
  1060. L R14,RETSAVE RESTORE THE RETURN REG @V305114 01035000
  1061. BR R14 RETURN TO CALLER @V305114 01036000
  1062. DROP R7 @V305114 01037000
  1063. SPACE 1 01038000
  1064. ************************************************************** 01039000
  1065. * FILLMAP SETS BITS ON IN THE TRACK MAP ACCORDING TO THE 01040000
  1066. * FOLLOWING INPUT: 01041000
  1067. * R7 = DISPLACEMENT INTO TRKMAP OF THE 1ST BIT 01042000
  1068. * R8 = NUMBER OF TRACKS IN THE EXTENT 01043000
  1069. ************************************************************** 01044000
  1070. FILLMAP EQU * @V305114 01045000
  1071. LA R3,CON8 CONSTANT FOR DIVIDE + 1ST BYTE @V305066 01046000
  1072. SR R6,R6 CLEAR FOR DIVIDE @V305114 01047000
  1073. DR R6,R3 CALC TRKMAP BYTES + REMAINDER @V305114 01048000
  1074. SPACE 1 01049000
  1075. L R4,MAPAD POINT TO 1ST BYTE @V305114 01050000
  1076. AR R7,R4 AFFECTED BY THIS EXTENT @V305114 01051000
  1077. LA R4,CON128 SET SHIFT BIT @V305066 01052000
  1078. SRL R4,0(R6) TO 1ST TRACK BIT @V305114 01053000
  1079. SR R3,R6 CALC BITS SETTABLE IN 1ST BYTE @V305114 01054000
  1080. B GETBYT 1ST BIT IS ALREADY SET @V305114 01055000
  1081. SPACE 1 01056000
  1082. SHFTBIT SRL R4,1 SHIFT 'OR' BIT FOR NEXT TRACK @V305114 01057000
  1083. GETBYT ICM R1,BIN0001,0(R7) GET TRKMAP BYTE @V305066 01058000
  1084. OR R1,R4 TURN ON BIT @V305114 01059000
  1085. STCM R1,BIN0001,0(R7) SET TRKMAP BYTE @V305066 01060000
  1086. SPACE 1 01061000
  1087. BCT R8,CHKBIT GET OUT IF ALL BITS ARE SET @V305114 01062000
  1088. BR R14 ----- @V305114 01063000
  1089. CHKBIT BCT R3,SHFTBIT THROUGH WITH THIS BYTE ? @V305114 01064000
  1090. LA R4,CON128 YES, RESET 'OR' BIT @V305066 01065000
  1091. LA R7,1(,R7) UPDATE BYTE POINTER @V305114 01066000
  1092. LA R3,EIGHT AND RESET BIT COUNT @V305066 01067000
  1093. B GETBYT STAY IN LOOP @V305114 01068000
  1094. SPACE 1 01069000
  1095. ************************************************************** 01070000
  1096. * XCALC USES THE LOW AND HIGH EXTENTS OF A FORMAT 1 OR 01071000
  1097. * FORMAT 3 DSCB TO CALCULATE THE NUMBER OF TRACKS IN THE 01072000
  1098. * EXTENT AND THE BIT DISPLACEMENT OF THE 1ST ALLOCATED 01073000
  1099. * BIT INTO THE TRACK MAP. IT CALLS FILLMAP TO EXECUTE THE 01074000
  1100. * TRACK MAP ALLOCATION. 01075000
  1101. * UPON ENTRY REG1 POINTS TO THE 10 BYTE EXTENT FIELD. 01076000
  1102. ************************************************************** 01077000
  1103. XCALC EQU * @V305114 01078000
  1104. USING EXTNT,R1 @V305114 01079000
  1105. STM R9,R7,0(R13) SAVE CALLERS REGS @V305114 01080000
  1106. SR R2,R2 CLEAR .. @V305114 01081000
  1107. SR R3,R3 REGISTERS .. @V305114 01082000
  1108. SR R7,R7 FOR .. @V305114 01083000
  1109. SR R8,R8 ICM @V305114 01084000
  1110. ICM R7,BIN0011,LCYLX GET LOW CYLINDER @V305066 01085000
  1111. ICM R8,BIN0011,HCYLX AND HIGH CYLINDER @V305066 01086000
  1112. SR R8,R7 CALC POSSIBLE FULL CYLS @V305114 01087000
  1113. SPACE 1 01088000
  1114. SR R4,R4 CLEAR LOW EXTENT OVERLAP @V305114 01089000
  1115. ICM R2,BIN0011,LHDX GET LOW HEAD @V305066 01090000
  1116. ICM R3,BIN0011,HHDX AND HIGH HEAD @V305066 01091000
  1117. SPACE 1 01092000
  1118. LTR R8,R8 CHECK FOR VALID EXTENT @V305114 01093000
  1119. BM XTNTERR1 ...... @V305114 01094000
  1120. BP XTNTOK ...... @V305114 01095000
  1121. CR R2,R3 ...... @V305114 01096000
  1122. BH XTNTERR1 ...... @V305114 01097000
  1123. SPACE 1 01098000
  1124. XTNTOK LA R3,1(,R3) BUMP HIGH HH BY ONE @V305114 01099000
  1125. CR R2,R3 HIGH HH = OR > LOW HH ? @V305114 01100000
  1126. BH XCALC1 NO ... BR, CALC BOTH OVERLAPS @V305114 01101000
  1127. SR R3,R2 CALC TRKS OVER CYL BOUNDARY @V305114 01102000
  1128. B ADTRKS ......... @V305114 01103000
  1129. DROP R1 @V305114 01104000
  1130. SPACE 1 01105000
  1131. XCALC1 BCTR R8,R0 DECREMENT CYL COUNT @V305114 01106000
  1132. LH R4,TRKCYL TRKS PER CYL MINUS LOW HH @V305114 01107000
  1133. SR R4,R2 PLUS 1 = LOW EXTENT OVERLAP @V305114 01108000
  1134. SPACE 1 01110000
  1135. ADTRKS AR R4,R3 LOW + HIGH OVERLAP TRKS @V305114 01111000
  1136. TM FREEFLG,SPLIT SPLIT CYLINDERS ? @V305114 01112000
  1137. BO SCALC YES ...BR @V305114 01113000
  1138. MH R8,TRKCYL CALC TRACKS IN FULL CYLINDERS @V305114 01114000
  1139. AR R8,R4 ADD OVERLAP TRACKS @V305114 01115000
  1140. TM LVSW,XTNTSW EXTENT REQUEST ? @V305114 01116000
  1141. BO XEXIT YES ... BR @V305114 01117000
  1142. SPACE 1 01118000
  1143. MH R7,TRKCYL GET DISPL IN BITS OF @V305114 01119000
  1144. AR R7,R2 1ST ALLOCATED BIT @V305114 01120000
  1145. BAL R14,FILLMAP SET ALLOCATED TRACK BITS @V305114 01121000
  1146. XEXIT NI FREEFLG,255-SPLIT RESET SPLIT CYL INDICATOR @V305114 01122000
  1147. LM R9,R7,0(R13) RESTORE REGS @V305114 01123000
  1148. BR R14 RETURN TO CALLER @V305114 01124000
  1149. SPACE 1 01125000
  1150. SCALC EQU * FOR SPLIT CYLINDERS ONLY @V305114 01126000
  1151. LA R5,1(R8) BUMP FOR LOOP COUNT @V305114 01127000
  1152. STH R4,STRKCYL SAVE SPLIT TRKS PER CYL @V305114 01128000
  1153. LR R9,R7 SAVE FOR INCREMENT @V305114 01129000
  1154. TM LVSW,XTNTSW EXTENT REQUEST ? @V305114 01130000
  1155. BNO SLOOP NO ... BR @V305114 01131000
  1156. LA R8,1(,R8) BUMP CYL NUMBER FOR CALC @V305114 01132000
  1157. MH R8,STRKCYL CALC NUMBER OF TRACKS @V305114 01133000
  1158. B XEXIT AND RETURN @V305114 01134000
  1159. SPACE 1 01135000
  1160. SLOOP MH R7,TRKCYL CALC DISPLACEMENT IN BITS @V305114 01136000
  1161. AR R7,R2 OF 1ST ALLOCATED BIT @V305114 01137000
  1162. LH R8,STRKCYL SET TRKS PER CYL @V305114 01138000
  1163. BAL R14,FILLMAP SET A CYL WORTH OF BITS @V305114 01139000
  1164. LA R9,1(,R9) BUMP CYLINDER NUMBER @V305114 01140000
  1165. LR R7,R9 TRANSFER FOR FILLMAP @V305114 01141000
  1166. BCT R5,SLOOP DO FOR EACH SPLIT CYL @V305114 01142000
  1167. B XEXIT RETURN TO CALLER @V305114 01143000
  1168. EJECT 01144000
  1169. TYPF EQU * @V305114 01145000
  1170. STCM R2,BIN0111,LVLNTH+1 SET LENGTH @V305066 01146000
  1171. STCM R3,BIN0111,LVBUFF+1 AND ADDRESS OF LINE @V305066 01147000
  1172. LA R1,LVLINE POINT TO PLIST @V305114 01148000
  1173. SVC 202 AND TYPE @V305114 01149000
  1174. DC AL4(*+4) ...... @V305114 01150000
  1175. BR R14 RETURN TO CALLER @V305114 01151000
  1176. SPACE 1 01152000
  1177. CNVRT EQU * @V305114 01153000
  1178. CVD R1,CVDWK CONVERT @V305114 01154000
  1179. UNPK UNPKWK(5),CVDWK+3(5) TO PRINTABLE @V305114 01155000
  1180. OI UNPKWK+4,SIGN FORM ... @V305066 01156000
  1181. LA R1,UNPKWK POINT TO IT AND @V305114 01157000
  1182. BR R14 RETURN @V305114 01158000
  1183. SPACE 1 01159000
  1184. EDCNT1 EQU * @V305114 01160000
  1185. CVD R1,CVDWK CONVERT AND @V305114 01161000
  1186. EDCNT3 MVC UNPKWK(8),PATTERN EDIT LEADING @V305114 01162000
  1187. ED UNPKWK(8),HALF ZEROES @V305114 01163000
  1188. BR R14 RETURN TO CALLER @V305114 01164000
  1189. SPACE 1 01165000
  1190. *************************************************************** 01166000
  1191. * 01167000
  1192. * DISK I/O SUBROUTINE 01168000
  1193. * 01169000
  1194. *************************************************************** 01170000
  1195. SPACE 1 01171000
  1196. DISKIO L R1,CCHHR GET SEARCH INFO @V201101 01172000
  1197. ST R1,SEEK+2 AND USE IT FOR SEEKING AS WELL @V201101 01173000
  1198. ST R1,NEXTSEEK SAVE TRACK ADDRESS CURRENTLY IN V@V201101 01174000
  1199. LH R1,OSADTDSK GET DEVICE ADDRESS @V201101 01175000
  1200. XC CSW(8),CSW RESET CSW @V201101 01176000
  1201. DC X'83100020' DIAGNOSE READ TO CP @V201101 01177000
  1202. BC 8,8(,R14) NORMAL RETURN..ALL OK @V201101 01178000
  1203. BC 4,VTOCERR DISK NOT ATTACHED @V201101 01179000
  1204. BC 2,4(,R14) INCORR LENGTH OR UNIT EXEC @V201101 01180000
  1205. STH R0,SNSEDATA UNIT CHECK @V201101 01181000
  1206. BR R14 RETURN @V201101 01182000
  1207. SPACE 1 01183000
  1208. *************************************************************** 01184000
  1209. * 01185000
  1210. * TEST INFORMATION RETURNED BY SENSE FOR UNEXPECTED STAT 01186000
  1211. * 01187000
  1212. *************************************************************** 01188000
  1213. SPACE 1 01189000
  1214. CHKSENSE TM SNSEDATA,X'FD' ANYTHING BUT TRACK CONDITION @V201101 01190000
  1215. BNZ VTOCERR YES..VTOC I/O ERROR @V201101 01191000
  1216. TRKBYTE TM SNSEDATA+1,X'D6' ALLOW CYLEND, NOREC, OVERINC @V201101 01192000
  1217. BNZ VTOCERR VTOC I/O ERROR @V201101 01193000
  1218. MVC SNSEBYTE(1),SNSEDATA MAKE A COMPOUND BYTE @V201101 01194000
  1219. OC SNSEBYTE(1),SNSEDATA+1 OUT OF BOTH FOR EASY INSP@V201101 01195000
  1220. BR R14 NOW RETURN TO CALLER @V201101 01196000
  1221. SPACE 1 01197000
  1222. *************************************************************** 01198000
  1223. * 01199000
  1224. * INCREMENT DASD ADDRESS TO TRK 0, REC 0 OF NEXT CYL 01200000
  1225. * 01201000
  1226. *************************************************************** 01202000
  1227. SPACE 1 01203000
  1228. INCRCYL LH R1,CCHHR GET CYLINDER ADDRESS @V201101 01204000
  1229. LA R1,1(,R1) ADD ONE TO IT @V201101 01205000
  1230. SLL R1,16 CREATE CCHH WITH HEAD ZERO @V201101 01206000
  1231. ST R1,CCHHR PUT INTO SEARCH DATA AREA @V201101 01207000
  1232. STC R1,CCHHR+4 R0 ON TRK 0 BECOMES TARGET @V201101 01208000
  1233. BR R14 RETURN TO USER @V201101 01209000
  1234. EJECT 1 01210000
  1235. *************************************************************** 01211000
  1236. * 01212000
  1237. * CHANNEL PROGRAMS FOR DISK PACK FORMATTED FOR OS 01213000
  1238. * 01214000
  1239. *************************************************************** 01215000
  1240. SPACE 1 01216000
  1241. RDDSCB1 CCW 7,SEEK,CC,6 CONTROL - SEEK @V201101 01217000
  1242. CCW 31,MASK,CC,1 CONTROL - SET FILE MASK @V201101 01218000
  1243. CCW 49,CCHHR,CC,5 SEARCH - ID EQUAL @V201101 01219000
  1244. CCW 8,*-8,CC+SLI,1 CONTROL - T.I.C. @V201101 01220000
  1245. CCW 146,NEXTSEEK,CC,8 READ - COUNT (M-T ON) @V201101 01221000
  1246. CCW 14,DSNAME,0,140 READ - KEY AND DATA @V305114 01222000
  1247. SPACE 1 01223000
  1248. RDDSCB1K CCW 7,SEEK,CC,6 CONTROL - SEEK @V201101 01224000
  1249. CCW 31,MASK,CC,1 CONTROL - SET FILE MASK @V201101 01225000
  1250. CCW 49,CCHHR,CC,5 SEARCH - ID EQUAL @V201101 01226000
  1251. CCW 8,*-8,CC+SLI,1 CONTROL - T.I.C. @V201101 01227000
  1252. CCW 146,NEXTSEEK,CC,8 READ - COUNT (M-T ON) @V201101 01228000
  1253. CCW 41,DSNAME,CC,44 SEARCH - KEY EQUAL @V201101 01229000
  1254. CCW 8,*-16,CC+SLI,1 CONTROL - T.I.C. @V201101 01230000
  1255. CCW 6,DSCB1,0,96 READ - DATA @V305114 01231000
  1256. SPACE 1 01232000
  1257. RDDSCB3 CCW 7,SEEK,CC,6 SEEK FORMAT 3 DSCB @V305114 01233000
  1258. CCW 31,MASK,CC,1 SET FILE MASK @V305114 01234000
  1259. CCW 49,CCHHR,CC,5 SEARCH ID EQUAL @V305114 01235000
  1260. CCW 8,*-8,CC+SLI,1 TIC @V305114 01236000
  1261. CCW 14,DSNAME,0,140 READ KEY + DATA @V305114 01237000
  1262. EJECT 1 01238000
  1263. * 01239000
  1264. BADMODE LR R2,R1 GET MODE ADDRESS @V201101 01240000
  1265. DMSERR TEXT='INVALID MODE ''........''', @V201101*01241000
  1266. NUM=048,LET=E,SUB=(CHARA,(R2)) @V201101 01242000
  1267. B RET24 GO SET RETURN CODE @V305114 01243000
  1268. * 01244000
  1269. BADMODE2 TM ADTFLG1,ADTFRO+ADTFRW CMS DISK? @VA02610 01245000
  1270. BZ BADMODE3 NO @VA02610 01246000
  1271. LA R1,FMODE GET FILEMODE ADDRESS @VA02610 01247000
  1272. B BADMODE GIVE ERROR MSG @VA02610 01248000
  1273. BADMODE3 LA R2,FMODE GET FILEMODE @VA02610 01249000
  1274. DMSERR TEXT='DISK ''........'' NOT ACCESSED', @VA02610*01250000
  1275. NUM=069,LET=E,SUB=(CHARA,(R2)) @VA02610 01251000
  1276. LA R10,36 GET RETURN CODE @VA02610 01252000
  1277. B LEAVE EXIT @VA02610 01253000
  1278. * 01254000
  1279. BADDSN EQU * @V201101 01255000
  1280. DMSERR TEXT='INVALID DATA SET NAME',NUM=221,LET=E @V201101 01256000
  1281. B RET24 GO SET RETURN CODE @V305114 01257000
  1282. EJECT 1 01258000
  1283. * 01259000
  1284. NOFMODE EQU * @V201101 01260000
  1285. DMSERR TEXT='NO FILEMODE SPECIFIED',NUM=223,LET=E @V201101 01261000
  1286. B RET24 GO SET RETURN CODE @V305114 01262000
  1287. * 01263000
  1288. XTNTERR1 EQU * @V305114 01264000
  1289. DMSERR TEXT='INVALID EXTENT FOUND FOR ''......................X01265000
  1290. ......................'' ON ''..'' DISK',NUM=227,LET=W,SX01266000
  1291. UB=(CHARA,DSNAME,CHARA,(ADTM,1)),RENT=NO @V305114 01267000
  1292. LA R10,RCFOUR SAVE RETURN CODE FOR LATER @VM03219 01268000
  1293. ST R10,RCSAVE ..... @VM03219 01269000
  1294. B XEXIT AND CONTINUE @VM03219 01270000
  1295. SPACE 1 01271000
  1296. FREERR EQU * @V305114 01272000
  1297. DMSERR TEXT='NO DATA SET NAME ALLOWED WITH FREE OPTION',NUM=22X01273000
  1298. 6,LET=E @V305114 01274000
  1299. B RET24 GO SET RETURN CODE @V305114 01275000
  1300. SPACE 1 01276000
  1301. BADOPT LR R2,R1 GET OPTION ADDRESS @V201101 01277000
  1302. DMSERR TEXT='INVALID OPTION ''........''',NUM=003,LET=E, *01278000
  1303. SUB=(CHARA,(R2)) @V201101 01279000
  1304. SPACE 1 01280000
  1305. RET24 EQU * @V305114 01281000
  1306. LA R10,TWENTY4 SET RETURN CODE 24 @V305066 01282000
  1307. B LEAVE AND USE COMMON EXIT @V305114 01283000
  1308. NOMEMS EQU * @V201101 01284000
  1309. DMSERR TEXT='NO MEMBERS FOUND',LET=I,NUM=229 @V305114 01285000
  1310. B GETNXT RETURN.. @V201101 01286000
  1311. SPACE 1 01287000
  1312. NOSPACE EQU * @V305114 01288000
  1313. DMSERR TEXT='NO FREE SPACE AVAILABLE ON ''..'' DISK',NUM=233,LX01289000
  1314. ET=I,SUB=(CHARA,(ADTM,1)) @V305114 01290000
  1315. B FEXIT NOW FREE UP STORAGE @V305114 01291000
  1316. EJECT 1 01292000
  1317. * 01293000
  1318. IOERROR EQU * @V201101 01294000
  1319. DMSERR NUM=222,LET=E,SUB=(CHARA,DSNAME,CHARA,(ADTM,1)), X01295000
  1320. TEXT='I/O ERROR READING ''..............................*01296000
  1321. ..............'' FROM ''..'' DISK',RENT=NO @V305114 01297000
  1322. LA R10,28 GET RETURN CODE @VA13586 01298000
  1323. B LEAVE RETURN.. @VA13586 01298300
  1324. * 01299000
  1325. VTOCERR EQU * @V201101 01300000
  1326. DMSERR NUM=231,LET=E,SUB=(CHARA,FMODE), @V201101*01301000
  1327. TEXT='I/O ERROR READING VTOC FROM ''....'' DISK' 01302000
  1328. LA R10,28 GET RETURN CODE @V201101 01303000
  1329. B LEAVE RETURN.. @V201101 01304000
  1330. EJECT 1 01305000
  1331. * 01306000
  1332. DSNMSG EQU * @V201101 01307000
  1333. DMSERR TEXT='ENTER DATA SET NAME:',LET=R,NUM=220,DOT=NO 01308000
  1334. BR R14 @V201101 01309000
  1335. * 01310000
  1336. TSTDSNF TM LVSW,DSFND WAS ANY DATA SET FOUND ? @VA05780 01311000
  1337. BO EXIT YES, NOT AN ERROR, JUST EOF @VA04298 01316200
  1338. DMSERR TEXT='DATA SET NOT FOUND',NUM=002,LET=E @V201101 01317000
  1339. LA R10,28 GET RETURN CODE @V201101 01318000
  1340. B LEAVE RETURN.. @V201101 01319000
  1341. SPACE 1 01320000
  1342. PREEXIT TM LVSW,ALLOS ALL DISKS REQUESTED ? @V305114 01321000
  1343. BNO EXIT NO, WE'RE ALL THROUGH @V305614 01322000
  1344. TM LVSW,FREESW FREE SPECIFIED ? @V305614 01323000
  1345. BO SRCHADTS YES, BACK TO LOOP @V305614 01324000
  1346. TM LVSW,DSN DATA SET NAME SPECIFIED ? @V305614 01325000
  1347. BNO SRCHADTS NO, BACK TO LOOP @V305614 01326000
  1348. * 01327000
  1349. EXIT L R10,RCSAVE GET RETURN CODE @VM03219 01328000
  1350. * 01329000
  1351. LEAVE EQU * @V201101 01330000
  1352. MVC DOSFLAGS(1),SAVDOS RESTORE DOSFLAGS @V305114 01331000
  1353. DMSKEY RESET ENABLE NUCLEUS PROTECT @V201101 01332000
  1354. * 01333000
  1355. LA R1,FINDCLR GET FILEDEF CLEAR LIST ADDR @V201101 01334000
  1356. SVC 202 CLEAR $LISTDS$ FILEDEF @V201101 01335000
  1357. DC AL4(*+4) ... @V201101 01336000
  1358. LR R15,R10 GET RETURN CODE @V201101 01337000
  1359. L R14,SAVR14 GET RETURN ADDR @V201101 01338000
  1360. BR R14 RETURN TO CALLER @V201101 01339000
  1361. EJECT 1 01340000
  1362. *************************************************************** 01341000
  1363. * 01342000
  1364. * CONSTANTS AND STORAGE AREAS 01343000
  1365. * 01344000
  1366. *************************************************************** 01345000
  1367. SPACE 1 01346000
  1368. DS 0D @V305114 01347000
  1369. CVDWK DS 1F CONVERT TO DECIMAL WORK AREA @V305114 01348000
  1370. HALF DS 1F EDIT FROM HERE @V305114 01349000
  1371. UNPKWK DS 1D UNPACK WORK AREA @V201101 01350000
  1372. CCHHR DC 2H'0',X'02',X'00' DISK SEARCH ADDRESS @V201101 01351000
  1373. NEXTSEEK DS 2F DISK ADDRESS FOR NEXT SEEK @V201101 01352000
  1374. SNSEDATA DC 6X'00' SENSE INFO. FOR DISK ERRORS @V201101 01353000
  1375. H45 DC H'45' CONSTANT TO CONTROL DSNAME LE@V201101 01354000
  1376. H8 DC H'8' CONSTANT TO CONTROL I/O ERROR@V201101 01355000
  1377. SEEK DC H'0' DISK SEEK ADDRESS @V201101 01356000
  1378. DS 1F DITTO @V201101 01357000
  1379. SAVR14 DS 1F RETURN REGISTER SAVE AREA @V201101 01358000
  1380. SAVADT DS 1F ADDRESS OF CURRENT ADT @V305114 01359000
  1381. CHNPROG DS 1F ADDRESS OF CURRENT CHAN PROG @V201101 01360000
  1382. MAPAD DS 1F TRACK MAP ADDRESS @V305114 01361000
  1383. MAPNUM DS 1H TRACK MAP BYTE COUNT @V305114 01362000
  1384. TRKTOTAL DS 1H TOTAL TRACKS THIS DISK @V305114 01363000
  1385. TRKCYL DS 1H TRACKS PER CYLINDER @V305114 01364000
  1386. STRKCYL DS 1H SPLIT TRACKS PER CYLINDER @V305114 01365000
  1387. XTNUM DS 1X NUMBER OF EXTENTS FOR A DS @V305114 01366000
  1388. TCCHHR DS 5X SAVE AREA FOR NEXT FMT1 SEARCH @V305114 01367000
  1389. SAVDOS DS 1X SAVE AREA FOR DOSFLAGS @V305114 01368000
  1390. SPACE 1 01369000
  1391. T2314 EQU X'08' 2314 DEVICE TYPE @V305114 01370000
  1392. T3330 EQU X'09' 3330 DEVICE TYPE @V305114 01371000
  1393. T333B EQU X'05' 3330-11 DEVICE TYPE @V505098 01371500
  1394. T3380 EQU X'0E' 3380 DEVICE TYPE HRC004DS 01371700
  1395. DSCB DS 0D @V305114 01372000
  1396. DSNAME DC 44C' ' FORMAT 1 DSCB KEY @V201101 01373000
  1397. DSCB1 DS 24F REST OF DSCB @V201101 01374000
  1398. RETSAVE DC F'0' SAVE AREA FOR A RETURN ADDRESS @V305114 01375000
  1399. RCSAVE DC F'0' RETURN CODE SAVE AREA @VM03219 01376000
  1400. PATTERN DC X'4020202020202021' PATTERN FOR EDIT @V305114 01377000
  1401. MASK DC B'01010000' SET FILE MASK CONTROL @V201101 01378000
  1402. SNSEBYTE DC X'00' SENSE INFO. FOR DISK ERRORS @V201101 01379000
  1403. MEMBER DC CL13'MEMBER NAMES:' TYPED MSG FOR MEMBERS @V201101 01380000
  1404. FORMAT DC CL8'FORMAT' OPTION FOR EXTENDED INFO. @V201101 01381000
  1405. FO DC CL8'FO' ABBREV. OF ABOVE @V201101 01382000
  1406. PDS DC CL4'PDS' OPTION TO TYPE MEMBERS OF PO @V201101 01383000
  1407. FREE DC CL5'FREE' OPTION FOR FREE SPACE DISPLAY @V305114 01384000
  1408. XTNT DC CL7'EXTENT' OPTION FOR DSN EXTENT DISPLAY @V305114 01385000
  1409. EX DC CL4'EX' EXTENT ABBREVIATION @V305114 01386000
  1410. VTOC DC C'VTOC ' DSNAME FOR VTOC EXTENT @V305114 01387000
  1411. DCONST DC C'DATA ' FOR EXTENT DATA LINE @V305114 01388000
  1412. SCONST DC C'SPLIT' FOR EXTENT DATA LINE @V305114 01389000
  1413. LCONST DC C'LABEL' FOR EXTENT DATA LINE @V305114 01390000
  1414. ICONST DC C'INDEX' FOR EXTENT DATA LINE @V305114 01391000
  1415. OCONST DC C'OVFLO' FOR EXTENT DATA LINE @V305114 01392000
  1416. MCONST DC C'MODEL' FOR EXTENT DATA LINE @VA06034 01392500
  1417. SPACE 1 01393000
  1418. *************************************************************** 01394000
  1419. * 01395000
  1420. * SOME COMMONLY USED EQUATES 01396000
  1421. * 01397000
  1422. *************************************************************** 01398000
  1423. SPACE 1 01399000
  1424. ABLE EQU C'A' @V201101 01400000
  1425. ZEBRA EQU C'Z' @V201101 01401000
  1426. BLANK EQU C' ' @V201101 01402000
  1427. LPAR EQU C'(' @V201101 01403000
  1428. RPAR EQU C')' @V201101 01404000
  1429. DOT EQU C'.' @V201101 01405000
  1430. STAR EQU C'*' @V201101 01406000
  1431. SLASH EQU C'/' @V201101 01407000
  1432. FENCE EQU X'FF' @V201101 01408000
  1433. * 01409000
  1434. F EQU X'80' FIXED @V201101 01410000
  1435. V EQU X'40' VARIABLE @V201101 01411000
  1436. U EQU X'C0' UNDEFINED @V201101 01412000
  1437. B EQU X'10' BLOCKED @V201101 01413000
  1438. S EQU X'08' SPANNED @V201101 01414000
  1439. T EQU X'20' TRACK OVERFLOW @V201101 01415000
  1440. A EQU X'04' ASA CONTROL CHAR. @V201101 01416000
  1441. M EQU X'02' MACHINE CONTROL CHAR. @V201101 01417000
  1442. EJECT 1 01418000
  1443. * 01419000
  1444. DSORGS DC X'8000',CL4'IS' INDEX SEQUENTIAL @V305114 01420000
  1445. DC X'4000',CL4'PS' PHYSICAL SEQUENTIAL @V305114 01421000
  1446. DC X'2000',CL4'DA' DIRECT ACCESS @V305114 01422000
  1447. DC X'0300',CL4'POU' PARTITIONED UNMOVEABLE @VA06395 01422500
  1448. DC X'0200',CL4'PO' PARTITIONED ORGANIZATION @V305114 01423000
  1449. DC X'0100',CL4'U' UNMOVABLE @V305114 01424000
  1450. DC X'0008',CL4'VSAM' VSAM @V305114 01425000
  1451. * 01426000
  1452. LVHEAD DC C'RECFM LRECL BLKSI DSORG DATE LABEL FM ' @V201101 01427000
  1453. DC C'DATA SET NAME ' @V201101 01428000
  1454. * 01429000
  1455. LVBUF EQU * DATA SET INFO. TO BE TYPED @V201101 01430000
  1456. LVREC DC CL6' ' RECORD FORMAT @V201101 01431000
  1457. LVLRL DC CL6' ' RECORD LENGTH @V201101 01432000
  1458. LVBLK DC CL6' ' BLOCK SIZE @V201101 01433000
  1459. LVDSO DC CL6' ' DATA SET ORGANIZATION @V201101 01434000
  1460. LVMM DC CL2' ' DATE - MONTH @V201101 01435000
  1461. LVSL1 DC CL1' ' @V201101 01436000
  1462. LVDD DC CL2' ' DATE - DAY @V201101 01437000
  1463. LVSL2 DC CL1' ' @V201101 01438000
  1464. LVYY DC CL3' ' DATE - YEAR @V201101 01439000
  1465. LVLAB DC CL7' ' DISK LABEL @V201101 01440000
  1466. LVMOD DC CL3' ' DISK FILE MODE @V201101 01441000
  1467. LVDSN DC CL44' ' DATA SET NAME @V201101 01442000
  1468. LVEND EQU * END OF INFO. @V201101 01443000
  1469. * 01444000
  1470. JAN DC H'31' DAYS IN JANUARY @V201101 01445000
  1471. FEB DC H'29' DAYS IN FEBRARY @V201101 01446000
  1472. DC H'31',H'30',H'31',H'30',H'31' MARCH - JULY @V201101 01447000
  1473. DC H'31',H'30',H'31',H'30',H'31' AUGUST - DECEM@V201101 01448000
  1474. * 01449000
  1475. HDTEMP DC H'0' RELATIVE TRACK SAVE AREA @V305114 01450000
  1476. CYLTEMP DC H'0' RELATIVE TRACK SAVE AREA @V305114 01451000
  1477. FHEAD DC C'CYL-HD(RELTRK) TO CYL-HD(RELTRK) TRACKS' @V305114 01452000
  1478. XHEAD DC C'SEQ TYPE CYL-HD(RELTRK) TO CYL-HD(RELTRK) TRACKS' 01453000
  1479. LVSW DC X'00' LIST VTOC SWITCH @V201101 01454000
  1480. DSHDNG EQU X'80' DATA SET HEADING TYPED @V201101 01455000
  1481. DSN EQU X'40' SEARCH BY DSNAME KEY @V201101 01456000
  1482. ALLOS EQU X'20' SEARCH ALL ADTS @V201101 01457000
  1483. MEM EQU X'10' PDS OPTION SPECIFIED @V201101 01458000
  1484. MEMHDG EQU X'08' MEMBER HEADING TYPED @V201101 01459000
  1485. RTPAREN EQU C')' PARENTHESES @V305066 01460000
  1486. LTPAREN EQU C'(' LEFT PAREN @V305066 01461000
  1487. LEN70 EQU 70 OUTPUT LENGTH @V305066 01462000
  1488. LEN30 EQU 30 OUTPUT LENGTH @V305066 01463000
  1489. DSCBONE EQU C'1' FORMAT 1 DSCB @V305066 01464000
  1490. POSEXT EQU 3 POSSIBLE EXTENTS WITH DSCB @V305066 01465000
  1491. BIN0001 EQU B'0001' MASK @V305066 01466000
  1492. BIN0011 EQU B'0011' MASK @V305066 01467000
  1493. BIN0111 EQU B'0111' MASK @V305066 01468000
  1494. FORM3 EQU C'3' FORMAT 3 DSCB @V305066 01469000
  1495. FORM2 EQU C'2' FORMAT 2 DSCB NOT SUPPORTED @VA09881 01469500
  1496. MAXEXT3 EQU 3 MAX EXTENTS - 3 @V305066 01470000
  1497. MAXEXT13 EQU 13 MAX EXTENTS - 13 @V305066 01471000
  1498. CHAR3 EQU C'3' ... @V305066 01472000
  1499. SPLITCYL EQU X'80' SPLIT CYLINDER EXTENT @V305066 01473000
  1500. EIGHT EQU 8 INITIALIZE BIT COUNTER @V305066 01474000
  1501. RCFOUR EQU 4 WARNING RETURN CODE @VM03219 01475000
  1502. CON128 EQU 128 INITIALIZE BIT COMPARE REG @V305066 01476000
  1503. CON41 EQU 41 HEADING LINE LEN @V305066 01477000
  1504. HEX00 EQU X'00' ... @V305066 01478000
  1505. CON51 EQU 51 LINE LENGTH - PERMANENT @V305066 01479000
  1506. HEXF3 EQU X'F3' ... @V305066 01480000
  1507. CON8 EQU 8 CONSTANT FOR DIVIDE @V305066 01481000
  1508. SIGN EQU X'F0' PRINTABLE CHAR @V305066 01482000
  1509. TWENTY4 EQU 24 RETURN CODE @V305066 01483000
  1510. TWENTY8 EQU 28 RETURN CODE @V305066 01484000
  1511. CON20 EQU 20 TRKS/CYL - 2314 @V305066 01485000
  1512. CON19 EQU 19 TRKS/CYL - 3330 @V305066 01486000
  1513. CON15 EQU 15 TRKS/CYL - 3380 HRC004DS 01486500
  1514. CON12 EQU 12 TRKS/CYL - 3340 @V305066 01487000
  1515. CON30 EQU 30 3350 TRK/CYL @VA06168 01487300
  1516. T3350 EQU X'0B' 3350 DEVICE TYPE CODE @VA06168 01487400
  1517. SEQ0 EQU X'0' ZERO EXT SEQ NUMBER @V305066 01488000
  1518. EXT1 EQU X'1' ONE EXTENT @V305066 01489000
  1519. HEX80 EQU X'80' ... @V305066 01490000
  1520. LOOP7 EQU 7 LOOP COUNTER @VA06395 01491100
  1521. DSFND EQU X'04' DATA SET FOUND @V201101 01492000
  1522. XTNTSW EQU X'02' EXTENT OPTION SPECIFIED @V305114 01493000
  1523. FREESW EQU X'01' FREE SPACE OPTION SPECIFIED @V305114 01494000
  1524. CHAR0 EQU C'0' ZERO CHARACTER @VA06034 01494500
  1525. SPACE 1 01495000
  1526. FREEFLG DC X'00' FREE OPTION FLAGS @V305114 01496000
  1527. ON EQU X'80' LAST BIT TESTED WAS ALLOCATED @V305114 01497000
  1528. SPACE EQU X'40' FREE SPACE DETECTED THIS DISK @V305114 01498000
  1529. HDG EQU X'20' HEADING WAS TYPED @V305114 01499000
  1530. SPLIT EQU X'10' SPLIT CYLINDER ALLOCATION @V305114 01500000
  1531. ANY EQU X'08' SOME FREE SPACE AVAILABLE @V305114 01501000
  1532. SPACE 1 01502000
  1533. XTNTFLG DC X'00' EXTENT OPTION FLAGS @V305114 01503000
  1534. FM3SW EQU X'80' FORMAT 3 DSCB EXPECTED @V305114 01504000
  1535. VTOCFLG EQU X'40' VTOC EXTENT BEING TYPED @V305114 01505000
  1536. EJECT 1 01506000
  1537. * 01507000
  1538. DS 0D @V201101 01508000
  1539. LVLINE DC CL8'TYPLIN' TYPE DATA SET INFO. @V201101 01509000
  1540. LVBUFF DC AL1(1),AL3(0) @V201101 01510000
  1541. LVLNTH DC CL1'B',AL3(0) @V201101 01511000
  1542. * 01512000
  1543. DS 0D @V201101 01513000
  1544. MEMLINE DC CL8'TYPLIN' TYPE MEMBERS OF PO @V201101 01514000
  1545. MEMBUFF DC AL1(1),AL3(0) @V201101 01515000
  1546. MEMLNTH DC CL1'B',AL3(0) @V201101 01516000
  1547. * 01517000
  1548. DS 0D @V201101 01518000
  1549. CONRD DC CL8'CONREAD' READ DSNAME FROM CONSOLE @V201101 01519000
  1550. DC AL1(1),AL3(DSNAME) @V201101 01520000
  1551. CONCNT DC CL1'U',AL3(0) @V201101 01521000
  1552. * 01522000
  1553. DS 0D @V201101 01523000
  1554. FINDFDF DC CL8'FILEDEF' FILEDEF FOR MEMBERS @V201101 01524000
  1555. DC CL8'$LISTDS$' @V201101 01525000
  1556. DC CL8'DISK' @V201101 01526000
  1557. DC CL8'$LISTDS$' @V201101 01527000
  1558. DC CL8'CMSUT1' @V201101 01528000
  1559. FMODE DC CL8' ' @V201101 01529000
  1560. DC 8X'FF' @V201101 01530000
  1561. * 01531000
  1562. DS 0D @V201101 01532000
  1563. FINDCLR DC CL8'FILEDEF' FILEDEF CLEAR FOR ABOVE @V201101 01533000
  1564. DC CL8'$LISTDS$' @V201101 01534000
  1565. DC CL8'CLEAR' @V201101 01535000
  1566. DC 8X'FF' @V201101 01536000
  1567. * 01537000
  1568. DS 0D @V201101 01538000
  1569. FINDSTT DC CL8'STATE' STATE TO TIE UP FST @V201101 01539000
  1570. DC CL8'$LISTDS$' @V201101 01540000
  1571. DC CL8'CMSUT1' @V201101 01541000
  1572. STTFM DC CL4' ' @V201101 01542000
  1573. DC A(0) @V201101 01543000
  1574. * 01544000
  1575. MNAMES DC CL72' ' MEMBER NAMES BUFFER @V201101 01545000
  1576. EJECT 1 01546000
  1577. LTORG @V201101 01547000
  1578. SPACE 1 01548000
  1579. CD EQU X'80' CHAIN DATA @V201101 01549000
  1580. CC EQU X'40' CHAIN COMMAND @V201101 01550000
  1581. SLI EQU X'20' SUPPRESS LENGTH IND. @V201101 01551000
  1582. SKIP EQU X'10' SKIP COMMAND @V201101 01552000
  1583. SPACE 1 01553000
  1584. DATX EQU X'01' DATA FLAG IN EXTENT TYPE @V305114 01554000
  1585. SPLITX EQU X'80' SPLIT CYL FLAG IN EXTENT TYPE @V305114 01555000
  1586. LABX EQU X'40' LABEL FLAG IN EXTENT TYPE @V305114 01556000
  1587. INDX EQU X'04' INDEX FLAG IN EXTENT TYPE @V305114 01557000
  1588. MODL EQU X'00' MODEL DSCB FLAG @VA06034 01557500
  1589. SPACE 1 01558000
  1590. FMT1 DSECT @V305114 01559000
  1591. DS CL51 @V305114 01560000
  1592. VOLSEQ1 DS 2X NUMBER OF VOL IN MULTIVOL FILE @V305114 01561000
  1593. DS CL6 @V305114 01562000
  1594. F1XNUM DS X NUMBER OF EXTENTS FOR THIS FILE @V305114 01563000
  1595. DS CL45 @V305114 01564000
  1596. X1TYP DS X TYPE OF EXTENT @V305114 01565000
  1597. X1SEQ DS X EXTENT SEQUENCE NUMBER @V305114 01566000
  1598. X1LCC DS 2X LO CYL LIMIT @V305114 01567000
  1599. X1LHH DS 2X LO HEAD LIMIT @V305114 01568000
  1600. X1HCC DS 2X HI CYL LIMIT @V305114 01569000
  1601. X1HHH DS 2X HI HEAD LIMIT @V305114 01570000
  1602. X2TYP DS X TYPE OF EXTENT @V305114 01571000
  1603. X2SEQ DS X SEQUENCE NUMBER OF EXTENT @V305114 01572000
  1604. X2LCC DS 2X LO CYL LIMIT @V305114 01573000
  1605. X2LHH DS 2X LO HEAD LIMIT @V305114 01574000
  1606. X2HCC DS 2X HI CYL LIMIT @V305114 01575000
  1607. X2HHH DS 2X HI HEAD LIMIT @V305114 01576000
  1608. X3TYP DS X TYPE OF EXTENT @V305114 01577000
  1609. X3SEQ DS X SEQUENCE NUMBER OF EXTENT @V305114 01578000
  1610. X3LCC DS 2X LO CYL LIMIT @V305114 01579000
  1611. X3LHH DS 2X LO HEAD LIMIT @V305114 01580000
  1612. X3HCC DS 2X HI CYL LIMIT @V305114 01581000
  1613. X3HHH DS 2X HI HEAD LIMIT @V305114 01582000
  1614. F1PTR DS 5X CCHHR NEXT LABEL OF THIS FILE @V305114 01583000
  1615. SPACE 1 01584000
  1616. FMT3 DSECT @V305114 01585000
  1617. DS CL4 @V305114 01586000
  1618. X4TYP DS X TYPE OF EXTENT @V305114 01587000
  1619. X4SEQ DS X SEQUENCE NUMBER FO THIS EXTENT @V305114 01588000
  1620. X4LCC DS 2X LO CYL LIMIT @V305114 01589000
  1621. X4LHH DS 2X LO HEAD LIMIT @V305114 01590000
  1622. X4HCC DS 2X HI CYL LIMIT @V305114 01591000
  1623. X4HHH DS 2X HI HEAD LIMIT @V305114 01592000
  1624. DS CL121 @V305114 01593000
  1625. F3PTR DS 5X CCHHR OF FOLLOWING FMT 3 @V305114 01594000
  1626. SPACE 1 01595000
  1627. FDATA DSECT @V305114 01596000
  1628. LCYL DS 3C LOW CYLINDER NUMBER @V305114 01597000
  1629. DS 1C @V305114 01598000
  1630. LHD DS 2C LOW HEAD NUMBER @V305114 01599000
  1631. DS 2C @V305114 01600000
  1632. RELTRK1 DS 5C RELATIVE TRACK @V305114 01601000
  1633. DS 5C @V305114 01602000
  1634. HCYL DS 3C HIGH CYLINDER NUMBER @V305114 01603000
  1635. DS 1C @V305114 01604000
  1636. HHD DS 2C HIGH HEAD NUMBER @V305114 01605000
  1637. DS 2C @V305114 01606000
  1638. RELTRK2 DS 5C RELATIVE TRACKS @V305114 01607000
  1639. DS 5C @V305114 01608000
  1640. FTRKS DS 5C NUMBER OF EXTENT TRACKS @V305114 01609000
  1641. SPACE 1 01610000
  1642. XDATA DSECT @V305114 01611000
  1643. XSEQ DS 3C SEQUENCE NUMBER @V305114 01612000
  1644. DS 1C @V305114 01613000
  1645. XTYPE DS 4C EXTENT TYPE @V305114 01614000
  1646. DS 2C @V305114 01615000
  1647. XLCYL DS 3C LOW CYLINDER @V305114 01616000
  1648. DS 1C @V305114 01617000
  1649. XLHD DS 2C LOW HEAD @V305114 01618000
  1650. DS 2C @V305114 01619000
  1651. XRTRK1 DS 5C RELATIVE TRACK NUMBER @V305114 01620000
  1652. DS 5C @V305114 01621000
  1653. XHCYL DS 3C HIGH CYLINDER @V305114 01622000
  1654. DS 1C @V305114 01623000
  1655. XHHD DS 2C HIGH HEAD @V305114 01624000
  1656. DS 2C @V305114 01625000
  1657. XRTRK2 DS 5C RELATIVE TRACK NUMBER @V305114 01626000
  1658. DS 5C @V305114 01627000
  1659. XTRKS DS 5C NUMBER OF TRACKS @V305114 01628000
  1660. SPACE 1 01629000
  1661. EXTNT DSECT @V305114 01630000
  1662. TYPX DS X EXTENT TYPE @V305114 01631000
  1663. SEQX DS X EXTENT SEQUENCE NUMBER @V305114 01632000
  1664. LCYLX DS 2X LOW CYLINDER @V305114 01633000
  1665. LHDX DS 2X LOW HEAD @V305114 01634000
  1666. HCYLX DS 2X HIGH CYLINDER @V305114 01635000
  1667. HHDX DS 2X HIGH HEAD @V305114 01636000
  1668. EJECT 01637000
  1669. NUCON @V201101 01638000
  1670. ADT @V201101 01639000
  1671. CMSCB @V201101 01640000
  1672. REGEQU @V201101 01641000
  1673. END 01642000