Table of Contents

DMSOPL Source

References

Source Listing

DMSOPL.ASSEMBLE.txt
  1. OPL TITLE 'DMSOPL (CMS) VM/370 - RELEASE 6' 00001000
  2. SPACE 2 00002000
  3. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00003000
  4. *. * 00004000
  5. * MODULE NAME: * 00005000
  6. * DMSOPL * 00006000
  7. * * 00007000
  8. * FUNCTION: * 00008000
  9. * DMSOPL READS THE APPROPRIATE SYSTEM DIRECTORY RECORDS * 00009000
  10. * AND DIRECTORY HEADER (S) AND CHECKS IF THE SPECIFIED * 00010000
  11. * LIBRARIES CONTAIN ANY ACTIVE MEMBERS. IT SUPPLIES * 00011000
  12. * THE CALLER WITH THE DISK ADDRESS OF THE SPECIFIED * 00012000
  13. * SYSTEM LIBRARY AND INDICATES WHETHER OR NOT THERE ARE * 00013000
  14. * ACTIVE MEMBERS IN THE LIBRARIES TO BE ACCESSED. IF * 00014000
  15. * A PRIVATE LIBRARY IS TO BE ACCESSED, IT MUST HAVE BEEN * 00015000
  16. * OPENED (USING DMSBOP) PRIOR TO CALLING THIS PHASE AND * 00016000
  17. * ITS DISK ADDRESS MUST BE AVAILABLE IN INTERFACE FIELD * 00017000
  18. * 'BUCK1'. * 00018000
  19. * * 00019000
  20. * ATTRIBUTES: * 00020000
  21. * DISCONTIGUOUS SHARED SEGMENT * 00021000
  22. * REENTRANT * 00022000
  23. * * 00023000
  24. * ENTRY POINTS: * 00024000
  25. * DMSOPL * 00025000
  26. * * 00026000
  27. * ENTRY CONDITIONS: * 00027000
  28. * DMSOPL IS INVOKED IN RESPONSE TO AN SVC 2 (FETCH) * 00028000
  29. * FROM A PROBLEM PROGRAM. AT ENTRY TO DMSOPL, R2 POINTS * 00029000
  30. * TO A TEN BYTE FIELD. THESE TEN BYTES HAVE THE * 00030000
  31. * FOLLOWING MEANING: * 00031000
  32. * * 00032000
  33. * BUCK1 DS XL4 DISK ADDR OF PRIVATE LIBRARY * 00033000
  34. * (C2C1H2R) (INPUT FROM CALLER) * 00034000
  35. * BUCK2 DS XL4 DISK ADDR OF SYSTEM LIBRARY * 00035000
  36. * (C2C1H2R) (OUTPUT TO CALLER) * 00036000
  37. * PRVSW DS X SWITCH BYTE: * 00037000
  38. * BIT0 = 0: OPEN SOURCE LIBRARY * 00038000
  39. * BIT0 = 1: OPEN PROCEDURE LIBRARY* 00039000
  40. * (IF BIT0 = 1 IS SPECIFIED CMS/DOS* 00040000
  41. * WILL ISSUE AN ERROR MESSAGE SINCE* 00041000
  42. * THERE IS NO SUPPORT FOR READING/ * 00042000
  43. * WRITING PROCEDURE LIBRARIES.) * 00043000
  44. * BYTE = X'01' - PRIVATE LIBRARY * 00044000
  45. * HAS BEEN OPENED. * 00045000
  46. * PRSSSW DS X SWITCHES (OUTPUT TO CALLER) * 00046000
  47. * BIT1 = 1 SYSTEM LIBRARY CONTAINS * 00047000
  48. * ACTIVE MEMBERS. * 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. * * 00057000
  58. * ABNORMAL EXITS: * 00058000
  59. * SVC 6 - CANCEL * 00059000
  60. * * 00060000
  61. * ERROR MESSAGES ISSUED BY THIS PROGRAM: * 00061000
  62. * * 00062000
  63. * DMSOPL158E NO CMS/DOS PROCEDURE LIBRARY SUPPORT * 00063000
  64. * * 00064000
  65. * EXPLANATION: CMS/DOS DOES NOT * 00065000
  66. * SUPPORT READING/WRITING DOS/VS * 00066000
  67. * PROCEDURE LIBRARIES. * 00067000
  68. * * 00068000
  69. * SYSTEM ACTION: RC = 100 * 00069000
  70. * THE SESSION IS CANCELLED VIA SVC 6. * 00070000
  71. * * 00071000
  72. * USER ACTION: CORRECT TEN BYTE FIELD * 00072000
  73. * PASSED TO DMSOPL TO INDICATE SOURCE * 00073000
  74. * LIBRARY PROCESSING. RERUN THE JOB. * 00074000
  75. * * 00075000
  76. * DMSOPL089E OPEN ERROR CODE 'CODE' ON SYSXXX * 00076000
  77. * * 00077000
  78. * EXPLANATION: THIS MESSAGE WILL BE * 00078000
  79. * ISSUED FOR MANY OF THE OPEN ERROR * 00079000
  80. * MESSAGES. A UNIQUE ERROR CODE IN * 00080000
  81. * THE MESSAGE WILL IDENTIFY THE ERROR * 00081000
  82. * SITUATION. * 00082000
  83. * * 00083000
  84. * SYSTEM ACTION: RC = 36 * 00084000
  85. * RC = 3 * 00085000
  86. * ATTEMPTING TO OPEN A SEQUENTIAL DISK * 00086000
  87. * FILE (PRIVATE SOURCE STATEMENT LIBRARY) * 00087000
  88. * BUT NO DOSCB EXISTS WITH THE DOSCB * 00088000
  89. * DDNAME EQUAL TO THE DTF FILENAME. * 00089000
  90. * OR, THE DDNAME MATCHES BUT THE * 00090000
  91. * LOGICAL UNIT IS NOT EQUAL 'SYSSLB'. * 00091000
  92. * CMS/DOS REQUIRES A USER ISSUED DLBL * 00092000
  93. * FOR ALL SEQUENTIAL DISK INPUT AND OUTPUT* 00093000
  94. * FILES. * 00094000
  95. * * 00095000
  96. * USER ACTION: ISSUE A DLBL FOR THE * 00096000
  97. * PRIVATE LIBRARY AND RESTART THE SESSION.* 00097000
  98. * * 00098000
  99. * * 00099000
  100. * CALLS TO OTHER ROUTINES: * 00100000
  101. * DMSXCP * 00101000
  102. * * 00102000
  103. * EXTERNAL REFERENCES: * 00103000
  104. * NUCON, BGCOM, REGEQU, AND DOSCB. * 00104000
  105. * * 00105000
  106. * CALLED BY: * 00106000
  107. * INVOKED IN RESPONSE TO SVC 2 (FETCH FOR DMSOPL). * 00107000
  108. * * 00108000
  109. * TABLES AND WORK AREAS: * 00109000
  110. * CCB - COMMAND CONTROL BLOCK CONTAINING AN ADDRESS * 00110000
  111. * OF A CHANNEL PROGRAM AND THE SYSTEM LOGICAL * 00111000
  112. * UNIT TO BE THE OBJECT OF THE I/O REQUEST. * 00112000
  113. * THE ADDRESS OF THE CCB IS PASSED TO DMSXCP FOR* 00113000
  114. * I/O PROCESSING. * 00114000
  115. * * 00115000
  116. * BUFFER - EIGHTY BYTE BUFFER USED BY I/O REQUESTS. * 00116000
  117. * * 00117000
  118. * OVLAYA - TEN BYTE FIELD PASSED TO DMSOPL AT ITS ENTRY. * 00118000
  119. * (THIS TEN BYTE FIELD IS DESCRIBED IN DETAIL * 00119000
  120. * ABOVE). * 00120000
  121. * * 00121000
  122. * REGISTER USAGE: * 00122000
  123. * * 00123000
  124. * R0 - NUCON ADDRESSABILITY * 00124000
  125. * R1 - POINTER TO CCB * 00125000
  126. * R2 - POINTER TO 10 BYTE CONTROL FIELD PASSED TO DMSOPL * 00126000
  127. * R3 - WORKING REGISTER * 00127000
  128. * R4 - BGCOM ADDRESSABILIY * 00128000
  129. * R5 - WORKING REGISTER * 00129000
  130. * R6 - BAL RETURN REGISTER * 00130000
  131. * R7 - NOT USED * 00131000
  132. * R8 - NOT USED * 00132000
  133. * R9 - NOT USED * 00133000
  134. * R10 - NOT USED * 00134000
  135. * R11 - NOT USED * 00135000
  136. * R13 - NOT USED * 00136000
  137. * R14 - NOT USED * 00137000
  138. * R15 - RETURN CODES * 00138000
  139. * * 00139000
  140. * * 00140000
  141. * OPERATION: * 00141000
  142. * THE FOLLOWING ACTIVITIES ARE PERFORMED BY DMSOPL IN THE* 00142000
  143. * SPECIFIED ORDER: * 00143000
  144. * * 00144000
  145. * 1. R2 IS RESTORED FROM THE LTA SAVEAREA* 00145000
  146. * R2 CONTAINS A POINTER TO THE TEN * 00146000
  147. * BYTE FIELD PASSED TO THE MODULE. * 00147000
  148. * * 00148000
  149. * 2. READ SYSTEM SOURCE STATEMENT * 00149000
  150. * LIBRARY DIRECTORY RECORD. * 00150000
  151. * * 00151000
  152. * 3. IF LIBRARY EXISTS, READ FIRST * 00152000
  153. * SYSTEM LIBRARY DIRECTORY BLOCK. * 00153000
  154. * * 00154000
  155. * 4. IF ACTIVE LIBRARY MEMBERS INDICATE * 00155000
  156. * IN FIELD TO BE PASSED BACK TO CALLER* 00156000
  157. * * 00157000
  158. * 5. IF NO SYSTEM SOURCE STATEMENT LIBE * 00158000
  159. * EXISTS OR AFTER THE SYSTEM SOURCE * 00159000
  160. * STATEMENT LIBRARY DIRECTORY RECORDS * 00160000
  161. * HAVE BEEN PROCESSED, PREPARE TO * 00161000
  162. * OPEN THE PRIVATE SOURCE STATEMENT * 00162000
  163. * LIBRARY. * 00163000
  164. * * 00164000
  165. * 6. IS THIS A PRIVATE LIBRARY OPEN ? * 00165000
  166. * (INDICATOR PASSED TO DMSOPL FROM * 00166000
  167. * CALLER) * 00167000
  168. * * 00168000
  169. * 7. LOCATE DOSCB FOR PRIVATE SOURCE * 00169000
  170. * STATEMENT LIBRARY. * 00170000
  171. * * 00171000
  172. * 8. READ FIRST DIRECTORY BLOCK FOR * 00172000
  173. * PRIVATE LIBRARY. * 00173000
  174. * * 00174000
  175. * 9. INDICATE ACTIVE MEMBERS IN THE * 00175000
  176. * FIELD TO BE PASSED BACK TO THE * 00176000
  177. * CALLER, IF THEY EXIST * 00177000
  178. * * 00178000
  179. * 10. RETURN TO CALLER VIA SVC 11 * 00179000
  180. * * 00180000
  181. * 11. WHEN ERRORS ARE ENCOUNTERED, * 00181000
  182. * AN APPROPRIATE ERROR MESSAGE IS * 00182000
  183. * ISSUED AND EXIT MADE VIA AN SVC 6. * 00183000
  184. * (CANCEL - ABNORMAL TERMINATION) * 00184000
  185. *. * 00185000
  186. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00186000
  187. SPACE 2 00187000
  188. DMSOPL CSECT @V305066 00188000
  189. USING NUCON,0 @V305066 00189000
  190. USING BGCOM,R4 @V305066 00190000
  191. USING FREE,R9 FREE STORAGE POINTER @V305066 00191000
  192. DC CL8'$$BOPNLB' CALLING ROUTS BR TO DMSOPL+8 @V305066 00192000
  193. BALR R12,0 ESTABLISH OWN ADDRESSABILITY @V305066 00193000
  194. USING *,R12 @V305066 00194000
  195. L R4,ASYSREF ADDRESS OF BGCOM @V305066 00195000
  196. LA R0,SEVTEEN 17 DOUBLEWORDS FREE STORAGE @V305066 00196000
  197. DMSFREE DWORDS=(0),TYPE=NUCLEUS,TYPCALL=BALR @V305066 00197000
  198. LR R9,R1 R9 - FREE STORAGE POINTER @V305066 00198000
  199. XC BUFFER(136),BUFFER PROPAGATE BINARY ZEROS @V305066 00199000
  200. LA R5,BUFFER BASE REGISTER FOR DSECTS @V305066 00200000
  201. MVC CHANPGM(32),CCW MOVE 4 CCWS TO FREE STORAGE @V305066 00201000
  202. LA R8,ADDRESS ADDRESS FOR CCW @V305066 00202000
  203. STCM R8,7,CHANPGM+1 STORE ADD 'ADDRESS' @V305066 00203000
  204. LA R8,ADDRESS1 ADDRESS FOR CCW @V305066 00204000
  205. STCM R8,7,SDSRCH+1 STORE ADD 'ADDRESS1' @V305066 00205000
  206. LA R8,SDSRCH ADDRESS FOR CCW @V305066 00206000
  207. STCM R8,7,SDTIC+1 STORE ADD 'SDSRCH' @V305066 00207000
  208. STCM R5,7,SDRD+1 STORE ADD 'BUFFER' @V305066 00208000
  209. LA R8,CHANPGM ADDRESS FOR CCB+9 @V305066 00209000
  210. STCM R8,7,CCB+9 STORE ADD 'CHANPGM' IN CCB @V305066 00210000
  211. EJECT 00211000
  212. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00212000
  213. * * 00213000
  214. * OPEN SYSTEM SOURCE STATEMENT LIBRARY * 00214000
  215. * * 00215000
  216. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00216000
  217. SPACE 2 00217000
  218. USING OVLAYA,R2 DSECT FOR PARMS PASSED BY CALLER @V305066 00218000
  219. LA R7,INDEX SYSRES LOG UNIT DOUBLED (6X2) @V305066 00219000
  220. AH R7,LUBPT ADD LUB ADDRESS @V305066 00220000
  221. CLI 0(R7),IGN IGNORE OR UNASSIGNED ? @V305066 00221000
  222. BNL C IND NO ENTRIES IN SSL @V305066 00222000
  223. CONTINUE MVI CCB+CCBLNO,RES SET UP CCB FOR SYSRES READ @V305066 00223000
  224. MVC ADDRESS1,REC3AD SYSTEM DIR REC ADDR (SYS LIB) @V305066 00224000
  225. TM PRVSW,PROCLIB ACCESSING PROCEDURE LIBRARY ? @V305066 00225000
  226. BO ERR158E YES, UNSUPPORTED FUNCTION @V305066 00226000
  227. LA R1,CCB READ SYS SO STMT DIR REC @V305066 00227000
  228. SVC EXCP PERFORM I/O @V305066 00228000
  229. CLI BUFFER,NOLIB DOES SYSTEM LIBRARY EXIST ? @V305066 00229000
  230. BE C NO, SIGNAL THIS TO CALLER @V305066 00230000
  231. USING REC3,R5 EST. BUFFER ADDRESSABILITY @V305066 00231000
  232. MVC ADDRESS1,SSLAD+2 SOURCE STMT DIRECTORY ADDR @V305066 00232000
  233. MVC BUCK2,ADDRESS1+1 SYS LIB ADDR TO CALLER'S AREA @V305066 00233000
  234. MVC BUCK2+1(1),ADDRESS1 @V305066 00234000
  235. LA R1,CCB READ 1ST DIR BLOCK (CONTAINS DIR HDR) @V305066 00235000
  236. SVC EXCP PERFORM I/O @V305066 00236000
  237. USING HDR,R5 EST HEADER ADDRESSABILITY @V305066 00237000
  238. OI PRSSSW,ACTIVE ASSUME ACTIVE MEMBERS IN LIBE @V305066 00238000
  239. OC AENTNO,AENTNO ARE THERE ACTIVE MEMBERS ? @V305066 00239000
  240. BNZ PRIVLIB YES @V305066 00240000
  241. C NI PRSSSW,255-ACTIVE NO, INDICATE NO SYS LIB @V305066 00241000
  242. EJECT 00242000
  243. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00243000
  244. * * 00244000
  245. * OPEN PRIVATE SOURCE STATEMENT LIBRARY 00245000
  246. * * 00246000
  247. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00247000
  248. SPACE 2 00248000
  249. PRIVLIB TM PRVSW,PRIV PRIVATE LIBRARY OPENED ? @V305066 00249000
  250. BZ E NO @V305066 00250000
  251. BAL R6,GETDOSCB GET DOSCB @V305066 00251000
  252. MVI CCB+CCBLNO,SLB CCB FOR PRIV SOURCE STMT LIB @V305066 00252000
  253. D MVC ADDRESS1+1(L'BUCK1),BUCK1 SET UP TO READ @V305066 00253000
  254. MVC ADDRESS1(1),BUCK1+1 1ST DIR BLOCK @V305066 00254000
  255. MVI ADDRESS1+2,HEX00 (CONTAINING THE HEADER ) @V305066 00255000
  256. LA R1,CCB READ 1ST DIRECTORY BLOCK @V305066 00256000
  257. SVC EXCP PERFORM IO @V305066 00257000
  258. OC AENTNO,AENTNO ARE THERE ACTIVE MEMBERS ? @V305066 00258000
  259. BNZ EXIT YES @V305066 00259000
  260. E NI PRVSW,255-PRIV NO - IND. NO PRIVATE LIB @V305066 00260000
  261. EXIT BAL R6,FREESTOR RELEASE ACQUIRED FREE STORAGE @V305066 00261000
  262. SVC SVC11 RETURN TO PROBLEM PROGRAM @V305066 00262000
  263. EJECT 00263000
  264. FREESTOR LR R1,R9 FREE STORAGE PTR IN R1 @V305066 00264000
  265. DMSFRET DWORDS=17,LOC=(1),TYPCALL=BALR @V305066 00265000
  266. BR R6 RETURN TO MAINLINE @V305066 00266000
  267. EJECT 00267000
  268. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00268000
  269. * ROUTINE TO LOCATE APPROPRIATE DOSCB, IF ONE EXITS, AND TO * 00269000
  270. * STORE THE DOSCB ADDRESS IN THE FIRST CCB IN THE DTF. IF * 00270000
  271. * NO MATCHING DOSCB IS FOUND, AN ERROR MESSAGE IS ISSUED AND * 00271000
  272. * THE OPEN ROUTINE TERMINATED. * 00272000
  273. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00273000
  274. SPACE 2 00274000
  275. USING DOSSECT,R3 @V305066 00275000
  276. GETDOSCB L R3,DOSFIRST LOCATE APPROPRIATE DOSCB @V305066 00276000
  277. TEST LTR R3,R3 ANY DOSCBS ON DOSCB CHAIN ? @V305066 00277000
  278. BNZ COMPDD YES, GO LOOK FOR RIGHT DOSCB @V305066 00278000
  279. NOMATCH MVC BUFFER+8(6),SYSSLB LOG UNIT TO ERROR MSG @V305066 00279000
  280. LA R15,THREE ERROR CODE @V305066 00280000
  281. B ERR89E NO DOSCB FOR PRIVATE LIBRARY @V305066 00281000
  282. COMPDD CLC DOSDD(7),IJSYSSL DOSCB DDNAME= DTF FN ? @V305066 00282000
  283. BE STOREAD GO TO STORE DOSCB ADD IN CCB @V305066 00283000
  284. NEXT L R3,DOSNEXT CONTINUE TO SCAN DOSCB CHAIN @V305066 00284000
  285. LA R3,0(,R3) ZERO HIGH ORDER BYTE @V305066 00285000
  286. B TEST BRANCH @V305066 00286000
  287. STOREAD CLC DOSSYS(2),SLBLU LOG UNIT = SYSSLB? @V305066 00287000
  288. BNE NOMATCH MUST BE MATCHING @V305066 00288000
  289. ST R3,CCB+12 STORE DOSCB ADDRESS @V305066 00289000
  290. BR R6 RETURN @V305066 00290000
  291. EJECT 00291000
  292. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00292000
  293. * * 00293000
  294. * ERROR MESSAGES * 00294000
  295. * * 00295000
  296. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00296000
  297. SPACE 2 00297000
  298. ERR158E DMSERR NUM=158,LET=E,TEXT='NO CMS/DOS PROCEDURE LIBRARY SUPPOR*00298000
  299. T' @V305066 00299000
  300. BAL R6,FREESTOR RELEASE ACQUIRED FREE STORAGE @V305066 00300000
  301. LA R15,HUNDRED RETURN CODE = 100 @V305066 00301000
  302. SVC SVC6 CANCEL @V305066 00302000
  303. SPACE 5 00303000
  304. ERR89E LA R4,BUFFER SCRATCH AREA @V305066 00304000
  305. CVD R15,0(R4) CVT ERROR CODE TO DECIMAL @V305066 00305000
  306. UNPK 0(2,R4),6(2,R4) UNPACK ERROR CODE @V305066 00306000
  307. MVC 2(6,R4),ERRMSG1 SET UP ERROR MESSAGE @V305066 00307000
  308. MVI BUFFER+14,QUOTE PLACE LAST QUOTE IN ERRMSG @V305066 00308000
  309. OI 1(R4),EBCDIC CVT ERROR CODE TO EBCDIC @V305066 00309000
  310. DMSERR NUM=89,LET=E,SUB=(CHARA,(R4)),MF=I,TEXT='OPEN ERROR COD*00310000
  311. E ''...............' @V305066 00311000
  312. BAL R6,FREESTOR RELEASE ACQUIRED FREE STORAGE @V305066 00312000
  313. LA R15,RC36 RETURN CODE = 36 @V305066 00313000
  314. SVC SVC6 CANCEL @V305066 00314000
  315. EJECT 00315000
  316. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00316000
  317. * * 00317000
  318. * CONSTANTS * 00318000
  319. * * 00319000
  320. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00320000
  321. SPACE 2 00321000
  322. * 00322000
  323. CCW CCW SEEK,*,CCSLI,6 SEEK @V305066 00323000
  324. CCW SRIDE,*,CCSLI,5 SEARCH ID EQUAL @V305066 00324000
  325. CCW TIC,*,0,1 TRANSFER IN CHANNEL @V305066 00325000
  326. CCW RDDTA,*,SLI,DATALEN READ DATA @V305066 00326000
  327. SPACE 2 00327000
  328. * 00328000
  329. REC3AD DC XL5'0000000103' SO STMT LIB SYS DIR @V305066 00329000
  330. ERRMSG1 DC C''' ON ''' @V305066 00330000
  331. SLBLU DC XL2'0007' LOGICAL UNIT FOR SYSSLB @V305066 00331000
  332. SYSSLB DC CL6'SYSSLB' SYSSLB LOGICAL UNIT CONSTANT @V305066 00332000
  333. IJSYSSL DC CL7'IJSYSSL' FILE NAME FOR SYSSLB @V305066 00333000
  334. EJECT 00334000
  335. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00335000
  336. * EQUATES * 00336000
  337. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00337000
  338. SPACE 2 00338000
  339. * SYSTEM DIRECTORY ENTRY IF NO LIBRARY IS PRESENT 00339000
  340. NOLIB EQU C' ' @V305066 00340000
  341. DATALEN EQU 80 LENGTH OF BUFFER @V305066 00341000
  342. SPACE 2 00342000
  343. * CHANNEL COMMAND CODES 00343000
  344. SPACE 2 00344000
  345. RDDTA EQU X'06' READ DATA @V305066 00345000
  346. SEEK EQU X'07' SEEK @V305066 00346000
  347. SRIDE EQU X'31' SEARCH ID EQUAL @V305066 00347000
  348. TIC EQU X'08' TRANSFER IN CHANNEL @V305066 00348000
  349. SPACE 2 00349000
  350. * CCW FLAGS 00350000
  351. SLI EQU X'20' SUPPRESS WRONG LENGTH INDICATOR @V305066 00351000
  352. CCSLI EQU X'60' CHAIN COMMAND/SUPP WRONG LEN IND @V305066 00352000
  353. SPACE 2 00353000
  354. CCBLNO EQU 7 LUB NUMBER WITHIN CLASS @V305066 00354000
  355. RES EQU X'06' SYSRES @V305066 00355000
  356. SLB EQU X'07' PRIV SO STMT LIB - SYSSLB @V305066 00356000
  357. SEVTEEN EQU 17 @V305066 00357000
  358. INDEX EQU 12 @V305066 00358000
  359. IGN EQU X'FE' DET. IF PUB IGN OR UNASSIGNED @V305066 00359000
  360. EXCP EQU 0 SVC 0 @V305066 00360000
  361. HEX00 EQU X'00' @V305066 00361000
  362. SVC11 EQU 11 SVC 11 @V305066 00362000
  363. THREE EQU 3 @V305066 00363000
  364. HUNDRED EQU 100 @V305066 00364000
  365. SVC6 EQU 6 SVC 6 @V305066 00365000
  366. QUOTE EQU X'7D' QUOTE FOR MESSAGE @V305066 00366000
  367. EBCDIC EQU X'F0' MAKE SURE PRINTABLE CHARACTER @V305066 00367000
  368. RC36 EQU 36 RETURN CODE = 36 @V305066 00368000
  369. EJECT 00369000
  370. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00370000
  371. * DSECTS * 00371000
  372. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00372000
  373. SPACE 2 00373000
  374. OVLAYA DSECT @V305066 00374000
  375. BUCK1 DS XL4 DISK ADD OF PRIV LIB C2C1H2R (IP FM CALLER) @V305066 00375000
  376. BUCK2 DS XL4 DISK ADD OF SYS LIB C2C1H2R (OP TO CALLER) @V305066 00376000
  377. PRVSW DS X SWITCH BYTE @V305066 00377000
  378. PROCLIB EQU X'80' BIT 0 = 0: OPEN SOURCE LIBRARY @V305066 00378000
  379. PRIV EQU X'01' 1: OPEN PROC LIB @V305066 00379000
  380. * BIT 7: PRIV LIB OPENED (IP FROM CALLER) 00380000
  381. * BIT 7 IS SET TO 0 IF A PRIVATE LIBRARY HAS NO ACTIVE MEMBERS, 00381000
  382. * ELSE UNCHANGED (OP TO CALLER) 00382000
  383. PRSSSW DS X SWITCHES (OP TO CALLER) @V305066 00383000
  384. ACTIVE EQU X'40' BIT 1: SYS LIB CONT ACT MEMBERS @V305066 00384000
  385. SPACE 5 00385000
  386. * SYSTEM DIRECTORY RECORD 3 00386000
  387. REC3 DSECT @V305066 00387000
  388. SSLAD DS XL7 START AD OF SO STMT LIB @V305066 00388000
  389. SPACE 2 00389000
  390. * DIRECTORY HEADER 00390000
  391. HDR DSECT @V305066 00391000
  392. DS XL44 UNUSED @V305066 00392000
  393. AENTNO DS XL4 NO OF ACTIVE ENTRIES IN DIRECTORY @V305066 00393000
  394. DS XL32 UNUSED @V305066 00394000
  395. SPACE 2 00395000
  396. * FREE STORAGE DSECT 00396000
  397. FREE DSECT @V305066 00397000
  398. BUFFER DS 10D @V305066 00398000
  399. CHANPGM DS D SEEK @V305066 00399000
  400. SDSRCH DS D SEARCH ID EQUAL @V305066 00400000
  401. SDTIC DS D TRANSFER IN CHANNEL @V305066 00401000
  402. SDRD DS D READ DATA @V305066 00402000
  403. CCB DS 2D @V305066 00403000
  404. ADDRESS DS XL2 BB @V305066 00404000
  405. ADDRESS1 DS XL5 CCHHR @V305066 00405000
  406. DS XL1 @V305066 00406000
  407. EJECT 00407000
  408. NUCON @V305066 00408000
  409. EJECT 00409000
  410. BGCOM @V305066 00410000
  411. REGEQU @V305066 00411000
  412. DOSCB @V305066 00412000
  413. DMSOPL CSECT @V305066 00413000
  414. LTORG @V305066 00414000
  415. END 00416000