Table of Contents

DMKVDE Source

References

Source Listing

DMKVDE.ASSEMBLE.txt
  1. VDE TITLE 'DMKVDE (CP) VM/370 - RELEASE 6' 00001000
  2. ISEQ 73,80 VALIDATE SEQUENCING OF SYSIN @V407466 00002000
  3. *. 00003000
  4. * MODULE NAME - 00004000
  5. * 00005000
  6. * DMKVDE 00006000
  7. * 00007000
  8. * CONTENTS - 00008000
  9. * 00008500
  10. * DMKVDEDC - SUBROUTINE TO VERIFY DEVICE EXISTENCE FOR DEVICE 00009000
  11. * WHICH IS BEING ATTACHED. 00009500
  12. * 00010000
  13. * DMKVDERR - SUBROUTINE TO ISSUE ATTACH ERROR MESSAGES. 00010500
  14. *. 00011000
  15. EJECT 00012000
  16. PUNCH 'SPB' TELL LOADER TO START AT NEXT PAGE BOUNDRY 00013000
  17. DMKVDE START 00014000
  18. SPACE 00015000
  19. DC CL8'DMKVDE' MODULE IDENTIFICATION @V407466 00016000
  20. SPACE 00017000
  21. USING PSA,R0 @V407466 00018000
  22. USING SAVEAREA,R13 @V407466 00019000
  23. EXTRN DMKIOSQR @V407466 00020000
  24. EXTRN DMKSCNRU @V407466 00021000
  25. EXTRN DMKCVTBD @VA13651 00021100
  26. EXTRN DMKCVTBH @VA13651 00021200
  27. EXTRN DMKERMSG @VA13651 00021300
  28. EXTRN DMKLOCKD @VA13651 00021400
  29. EXTRN DMKSCNRD @VA13651 00021500
  30. EXTRN DMKSCNRN @VA13651 00021600
  31. SPACE 00022000
  32. *. 00022100
  33. * SUBROUTINE NAME - 00022200
  34. * DMKVDEDC - VERIFY DEVICE EXISTENCE 00022300
  35. * 00022400
  36. * FUNCTION - 00022500
  37. * TO VERIFY THE EXISTENCE OF A DEVICE WHICH IS BEING ATTACHED. 00022600
  38. * 00023000
  39. * ATTRIBUTES - 00024000
  40. * 00025000
  41. * REENTRANT, PAGEABLE, CALLED VIA SVC 00026000
  42. * 00027000
  43. * ENTRY CONDITIONS - 00028000
  44. * 00029000
  45. * GPR 6 = VADDR FOR DEVICE BEING ATTACHED 00030000
  46. * GPR 8 = ADDRESS OF RDEVBLOK 00031000
  47. * GPR 10 = ATTACHEE'S VMBLOK 00032000
  48. * GPR 11 = ATTACHER'S VMBLOK 00033000
  49. * GPR 12 = ADDRESS OF DMKVDEDC 00034000
  50. * GPR 13 = ADDRESS OF STANDARD SAVE AREA 00035000
  51. SPACE 00036000
  52. * PARM = 1 PASSED ON THE CALL MACRO INDICATES THAT 00037000
  53. * DEVICE IS DASD AND ALLOCATION DATA IS TO BE READ. 00038000
  54. SPACE 00039000
  55. * 00040000
  56. * EXIT CONDITIONS - 00041000
  57. * 00042000
  58. * 00043000
  59. * RETURN IS TO DMKVDA 00044000
  60. * 00045000
  61. * GPR 2 = 0 IF LABEL/ALLOC. RECORD HAS BEEN READ 00046000
  62. * SUCCESSFULLY. 00047000
  63. * GPR 2 = ERROR CODE IS LABEL/ALLOC READ UNSUCCESSFUL. 00048000
  64. * 00049000
  65. * CALLS TO OTHER ROUTINES - 00050000
  66. * 00051000
  67. * DMKIOSQR 00052000
  68. * DMKDSPCH 00053000
  69. * DMKSCNRU 00054000
  70. * DMKFREE 00055000
  71. * DMKFRET 00056000
  72. * 00057000
  73. * EXTERNAL REFERENCES - 00058000
  74. * 00059000
  75. * NONE 00060000
  76. * 00061000
  77. * TABLES / WORK AREAS - 00062000
  78. * 00063000
  79. * VMBLOK 00064000
  80. * 00065000
  81. * REGISTER USAGE - 00066000
  82. * 00067000
  83. * GPR 2 = RETURN CODE FOR DMKVDA 00068000
  84. * GPR 3 = WORK 00069000
  85. * GPR 4 = WORK 00070000
  86. * GPR 5 = WORK 00071000
  87. * GPR 6 = VADDR OF DEVICE BEING ATTACHED 00072000
  88. * GPR 7 = WORK 00073000
  89. * GPR 8 = ADDRESS OF RDEVBLOK 00074000
  90. * GPR 10 = ADDRESS OF VMBLOK FOR ATTACHED-TO USER 00075000
  91. * GPR 11 = ADDRESS OF CALLER'S OR USER'S VMBLOK 00076000
  92. * GPR 12 = BASE REGISTER 00077000
  93. * GPR 13 = ADDRESS OF STANDARD SAVE AREA 00078000
  94. * 00079000
  95. * 00080000
  96. * 00081000
  97. * OPERATION - 00082000
  98. * 00083000
  99. * DMKVDEDC - SUBROUTINE TO VERIFY DEVICE EXISTENCE. * 00084000
  100. * SETS UP AN I/O TASK (TIO) TO SEE IF DEVICE EXISTS. * 00085000
  101. * IF THE DEVICE DOES NOT EXIST, IT IS MARKED OFFLINE * 00086000
  102. * AND THE APPROPRIATE RETURN CODE IS PLACED IN SAVER2 * 00087000
  103. * TO BE PASSED BACK TO DMKVDA. A 'DOES NOT EXIST' MESSAGE * 00088000
  104. * WILL BE ISSUED BY DMKVDA. * 00089000
  105. * ------------------------------- * 00090000
  106. * IN ADDITION, FOR DASD DMKVDE * 00091000
  107. * SETS UP AND EXECUTES AN I/O TASK TO READ THE DASD VOLUME * 00092000
  108. * LABEL OF THE DEVICE BEING ATTACH'ED. IF SUCCESSFUL, THE * 00093000
  109. * VOLUME SERIAL IS INSERTED INTO THE 'RDEVSER' FIELD OF THE * 00094000
  110. * REAL DEVICE BLOCK. RETURN CODES ARE SET IN SAVER2 TO * 00095000
  111. * INDICATE FAILURE OF THE READ. IF A CP/370 OWNED VOLUME IS * 00096000
  112. * ENCOUNTERED, A FLAG IS SET IN THE DMKVDA SAVE AREA. * 00097000
  113. * IF DMKVDE HAS BEEN CALLED WITH PARM=1, MEANING ALLOCATION * 00098000
  114. * DATA IS PRESENT, DMKVDE WILL READ THE ALLOCATION RECORD * 00099000
  115. * INTO FREE STORAGE. * 00100000
  116. *---------------------------------------------------------------------* 00101000
  117. *. 00102000
  118. COPY OPTIONS @VA08059 00102300
  119. COPY LOCAL OPTIONS @VA08059 00102700
  120. EJECT 00103000
  121. DMKVDEDC RELOC ATTACH A REAL DEVICE OR CHANNEL TO @V407466 00104000
  122. * USER'S VM 00105000
  123. USING RDEVBLOK,R8 RDEVBLOK ADDRESSABILITY @V407466 00106000
  124. SLR R3,R3 CLEAR R3 @V407466 00107000
  125. LA R0,IOBSIZE SIZE OF IOBLOK IN DWDS. @V407466 00108000
  126. CLI RDEVTYPC,CLASDASD DASD DEVICE @V407466 00109000
  127. BNE RDLAIOB NO, IOBLOK IS RIGHT SIZE @V407466 00110000
  128. LA R0,ALLOLEN+IOBSIZE SIZE FOR ALLOC DATA BLOCK @V407466 00111000
  129. C R2,F1 READING ALLOCATION DATA ? @V407466 00112000
  130. BE RDLAIOB YES - ALL SET TO GO @V407466 00113000
  131. LA R0,VDELLEN SMALLER IOBLOK FOR LABEL READ @V407466 00114000
  132. RDLAIOB EQU * GET AN IOB + BUFFER FROM FREE STG@V407466 00115000
  133. CALL DMKFREE @V407466 00116000
  134. XC 0(IOBSIZE*8,R1),0(R1) CLEAR IOBLOK TO ZEROES @V407466 00117000
  135. ST R10,IOBMISC-IOBLOK(,R1) SAVE ATTACHEE'S VMBLOK @V407466 00118000
  136. LR R10,R1 @V407466 00119000
  137. USING IOBLOK,R10 STANDARD IOBLOK ADDRESSABILITY @V407466 00120000
  138. LA R7,X'100' LOAD TIO LOOP COUNT @VA09204 00120100
  139. RDLCPEX1 OI IOBSPEC,IOBTIO FLAG REQUEST FOR SPECIAL 'TIO' @VA07221 00121100
  140. SPACE 00122000
  141. RDLCPEX EQU * GET CPEXBLOK FOR REGISTERS @V407466 00123000
  142. LA R0,CPEXSIZE GET A CPEXBLOK... @V407466 00124000
  143. CALL DMKFREE ...TO USE AS A SAVE-AREA @V407466 00125000
  144. USING CPEXBLOK,R1 ...ACROSS THE CALL TO 'IOS' @V407466 00126000
  145. STM R0,R15,CPEXR0 SAVE ALL CURRENT REGISTERS @V407466 00127000
  146. ST R1,IOBMISC2 SAVE THE CPEXBLOK HERE @V407466 00128000
  147. DROP R1 @V407466 00129000
  148. SPACE 00130000
  149. ST R11,IOBUSER ATTACHER'S VMBLOK @V407466 00131000
  150. LA R1,RDLBIRA INTERRUPT RETURN ADDRESS @V407466 00132000
  151. ST R1,IOBIRA ... @V407466 00133000
  152. TM IOBSPEC,IOBTIO SPECIAL 'TIO' @V407466 00134000
  153. BO RDLIOSR YES, TEST THE DEVICE NOW @V407466 00135000
  154. LA R4,VDELCCW-VDELOK(,R10) CCW START @V407466 00136000
  155. ST R4,IOBCAW ... @V407466 00137000
  156. MVC 0(LABLSZ,R4),LABLCCW MOVE IN MODEL CCW'S @V407466 00138000
  157. XC VDELSNS-VDELOK(IOERSNSZ,R10),VDELSNS-VDELOK CLR @V407466 00139000
  158. C R2,F1 READING ALLOCATION RECORD ? @V407466 00140000
  159. BNE RDLACCW NO - RELOCATE CCW'S @V407466 00141000
  160. MVC VDELCNT-VDELOK(8,R10),ALLOCNT DIFF RECORD NO. @V407466 00142000
  161. OI 52(R4),SKIP PREVENT TRANSFER OF SENSE DATA @V407466 00143000
  162. LA R1,1024 ...ALSO LONGER RECORD @V407466 00144000
  163. STH R1,46(,R4) ...INTO 'READ DATA' CCW @V407466 00145000
  164. RDLACCW EQU * @V407466 00146000
  165. LR R5,R4 ...START ADDRESS @V407466 00147000
  166. LA R1,7 NUMBER TO BE RELOCATED @V407466 00148000
  167. RDLABL1 EQU * RELOCATE CCW ADDRESSES @V407466 00149000
  168. L R0,0(,R5) @V407466 00150000
  169. ALR R0,R4 ADD CCW BASE ADDRESS @V407466 00151000
  170. ST R0,0(,R5) @V407466 00152000
  171. LA R5,8(,R5) NEXT CCW @V407466 00153000
  172. BCT R1,RDLABL1 CONTINUE @V407466 00154000
  173. L R1,IOBMISC2 GET CPEXBLOK ADDRESS @V407466 00155000
  174. USING CPEXBLOK,R1 ADDRESSABILITY @V407466 00156000
  175. ST R5,CPEXR5 PTR TO LAST CCW + 8 @V407466 00157000
  176. DROP R1 @V407466 00158000
  177. RDLIOSR EQU * QUEUE IOBLOK FOR EXECUTION @V407466 00159000
  178. MVI IOBFLAG,IOBCP CP-GENERATED I/O @V407466 00160000
  179. CALL DMKIOSQR R8 = RDEVBLOK, R10 = IOBLOK @V407466 00161000
  180. GOTO DMKDSPCH WAIT FOR IT @V407466 00162000
  181. SPACE 4 00163000
  182. RDLBIRA EQU * INTERRUPT RETURN POINT @V407466 00164000
  183. USING *,R12 @V407466 00165000
  184. SL R12,=A(RDLBIRA-DMKVDE) ADJUST ADDRESSABILITY @V407466 00166000
  185. USING DMKVDE,R12 @V407466 00167000
  186. SPACE 00168000
  187. L R1,IOBMISC2 GET CPEXBLOK ADDRESS @V407466 00169000
  188. USING CPEXBLOK,R1 @V407466 00170000
  189. LM R0,R9,CPEXR0 RELOAD OUR REGISTERS @V407466 00171000
  190. L R13,CPEXR13 ... @V407466 00172000
  191. LA R0,CPEXSIZE RETURN TO FREE STORAGE @V407466 00173000
  192. CALL DMKFRET ... @V407466 00174000
  193. DROP R1 @V407466 00175000
  194. SPACE 00176000
  195. SWITCH CONTINUE ON THE I/O PROCESSOR @V407508 00177000
  196. TM IOBSPEC,IOBTIO WAS THIS A SPECIAL 'TIO' REQUEST?@V407466 00178000
  197. BO CKREADY YES - CHECK IF DASD DEV IS READY @V407466 00179000
  198. TM IOBSTAT,IOBFATAL FATAL DISK ERROR ? @V407466 00180000
  199. BZ RDLABL2 NO - O.K. @V407466 00181000
  200. DATMODER LA R3,BADLABL2 LABEL READ FAILED @V407466 00182000
  201. C R2,F1 IF THIS IS ALLOC RECORD... @V407466 00183000
  202. BE RDLFRET ... DON'T CLEAR THE SERIAL @V407466 00184000
  203. LA R3,BADLABL READING REGL LABEL, NOT ALLOC @V407466 00185000
  204. CYLFAULT MVC RDEVSER(6),BLANKS CLEAR VOLUME SERIAL @V407466 00186000
  205. B RDLFRET GO RELEASE THE IOBLOK @V407466 00187000
  206. SPACE 00188000
  207. CKREADY NI IOBSPEC,X'FF'-IOBTIO RESET TIO FLAG @V407466 00189000
  208. TM IOBSTAT,IOBCC3 IS DRIVE AVAILABLE? @V407466 00190000
  209. BZ VDECC0 YES, GO READ VOLUME LABEL IF DASD@V407466 00191000
  210. BO VDECC3 NO, DEVICE DOES NOT EXIST @V407466 00192000
  211. * CC = 1, MAYBE UC 00193000
  212. CLI RDEVTYPC,CLASDASD DASD DEVICE TYPE @V407466 00194000
  213. BNE CKTAP NO, SKIP CHECK FOR CC=1, UC @V407466 00195000
  214. TM IOBCSW+4,UC UNIT CHECK @V407466 00196000
  215. BO CKMORE YES-CONTINUE CHECK @VA09204 00197200
  216. BCT R7,RDLCPEX1 NO-RETRY TIO 256 TIMES @VA09204 00197300
  217. LA R3,BUSY151 BUSY CONDITION? @VA11952 00197320
  218. ST R10,SAVER8 SAVE POINTER TO IOBLOK @VA11952 00197340
  219. B EXIT GET RC BACK TO DMKVDA @VA11952 00197360
  220. CKMORE EQU * @VA09204 00197400
  221. TM RDEVFTR,FTRVIRT 3330V DEVICE? @V407466 00198000
  222. BZ NOTREADY NO, SKIP CHECK FOR CC=1, UC @V407466 00199000
  223. TM IOBSTAT,IOBCC1 CC = 1 - CYLINDER FAULT @V407466 00200000
  224. BZ NOTREADY NO, SOMETHING ELSE WENT WRONG @V407466 00201000
  225. TM IOBCSW+4,UC CC=1, UC - CYLINDER FAULT @V407466 00202000
  226. BO CYLFAULT YES, ATTACH ANYWAY @V407466 00203000
  227. NOTREADY LA R3,NOTREDY FLAG DEVICE AS NOT READY @V407466 00204000
  228. B RDLFRET GO TO EXIT @VA07700 00204500
  229. SPACE 00205000
  230. CKTAP CLI RDEVTYPC,CLASTAPE MIXED - CC=1,CSW STORED @V407466 00206000
  231. BNE VDECC0 NOT TAPE, ASSUME DEVICE THERE @V407466 00207000
  232. L R1,IOBIOER CHECK TO SEE IF IOERBLOK @V407466 00208000
  233. LTR R1,R1 IS THERE ONE? @V407466 00209000
  234. BZ RDLFRET NO, RETURN TO CALLER @V407466 00210000
  235. USING IOERBLOK,R1 @V407466 00211000
  236. TM IOERDATA,X'40' INTERVENTION REQUIRED @V407466 00212000
  237. BZ RDLFRET NO @V407466 00213000
  238. TM IOERDATA+1,X'60' STATUS A & B ON @V407466 00214000
  239. BNZ RDLFRET SOMETHING ON, DEVICE THERE @V407466 00215000
  240. OI IOBSTAT,IOBCC3 MAKE SURE BOTH BITS ARE ON @V407466 00216000
  241. VDECC3 LR R1,R6 GET CCU FORM OF ADDR @V407466 00217000
  242. * PASSED FROM DMKVDA 00218000
  243. LA R3,1 NO. OF EXPOSURES TO VARY @VA10201 00219100
  244. CLI RDEVTYPC,CLASDASD DASD DEVICE @V407466 00220000
  245. BNE VARYOFF NO @V407466 00221000
  246. CLI RDEVTYPE,TYP2305 DRUM @V407466 00222000
  247. BNE VARYOFF NO @V407466 00223000
  248. LA R3,8 NO. OF EXPOSURES FOR DRUM @VA10201 00224100
  249. LA R1,7(,R1) CONSTRUCT HIGHEST EXPOSURE ADDR @V407466 00225000
  250. VARYLOOP CALL DMKSCNRU GET BLOCKS @V407466 00226000
  251. BCTR R1,0 ... @V407466 00227000
  252. VARYOFF OI RDEVSTAT,RDEVDISA MARK DEVICE OFFLINE @V407466 00228000
  253. BCT R3,VARYLOOP CONTINUE @VA10201 00229100
  254. LA R3,UNKNOWN ISSUE MESSAGE @V407466 00230000
  255. B RDLFRET FRET BLOCKS FIRST @V407466 00231000
  256. SPACE 00232000
  257. VDECC0 CLI RDEVTYPC,CLASDASD DASD DEVICE @V407466 00233000
  258. BE RDLCPEX YES, GO READ LABEL @V407466 00234000
  259. CLI RDEVTYPC,CLASTERM TERMINAL DEVICE @V407466 00235000
  260. BNE RDLFRET NO RELEASE BLOCKS @V407466 00236000
  261. TM RDEVTYPE,TYPBSC IS THIS BISYNC LINE @V407466 00237000
  262. BZ RDLFRET NO @V407466 00238000
  263. NI RDEVSTAT,X'FF'-RDEVNRDY CLEAR NOT READY FLAG @V407466 00239000
  264. B RDLFRET RELEASE STORAGE @V407466 00240000
  265. SPACE 00241000
  266. RDLABL2 EQU * CHECK LABEL FORMAT @V407466 00242000
  267. TM RDEVFTR,FTRVIRT 3330V DEVICE ADDRESS @V407466 00243000
  268. BZ RDLABL2B NO, GO LOOK AT LABEL @V407466 00244000
  269. L R1,IOBCSW ADDR LAST CCW EXECUTED @V407466 00245000
  270. LA R1,0(,R1) CLEAR HI-ORDER GARBAGE @V407466 00246000
  271. CR R5,R1 DID WE CYL FAULT? @V407466 00247000
  272. BE RDLABL2B NO CYL FAULT SITUATION @V407466 00248000
  273. MVC RDEVSER(6),BLANKS BLANK VOLID IN RDEVBLOK @V407466 00249000
  274. B RDLFRET RELEASE BLOCKS @V407466 00250000
  275. RDLABL2B C R2,F1 READING ALLOCATION RECORD ? @V407466 00251000
  276. BE EXIT2 YES - JUST RETURN FOR NOW @V407466 00252000
  277. USING VDELOK,R10 SWITCH DSECTS @V407466 00253000
  278. CLI RDEVTYPE,TYP3340 3340 TYPE @V407466 00254000
  279. BNE RDLABL3 NO - BRANCH @V407466 00255000
  280. NI RDEVFTR,X'FF'-(FTRRPS+FTR35MB+FTR70MB) RESET @V407466 00256000
  281. TM VDELSNS+2,X'80' RPS FEATURE INSTALLED ? @V407466 00257000
  282. BZ *+8 NO - @V407466 00258000
  283. OI RDEVFTR,FTRRPS INDICATE RPS INSTALLED @V407466 00259000
  284. TM VDELSNS+2,X'03' 35MB OR 70MB MODULE MOUNTED? @V407466 00260000
  285. BNM DATMODER DATA MODULE TYPE ERROR @V407466 00261000
  286. TM VDELSNS+2,X'02' 3340 70MB PACK MOUNTED ? @V407466 00262000
  287. BZ SET35MB NO - MUST BE 35MB PACK @V407466 00263000
  288. OI RDEVFTR,FTR70MB INDICATE 70MB PACK MOUNTED @V407466 00264000
  289. B RDLABL3 .. @V407466 00265000
  290. SET35MB OI RDEVFTR,FTR35MB INDICATE 35MB PACK MOUNTED @V407466 00266000
  291. RDLABL3 EQU * INTERPRET LABEL RECORD @V407466 00267000
  292. LA R14,VDELBUF+4 POINT TO STD LABEL SERIAL START @V407466 00268000
  293. CLC VDELBUF(4),=C'VOL1' IS IT STANDARD FORMAT ? @V407466 00269000
  294. BNE RDLBCMS NO - CHECK FOR CMS LABEL @V407466 00270000
  295. CLC VDELBUF+46(5),=C'CP370' ALLOCATION DATA PRESENT?@V407466 00271000
  296. BNE RDLABSR NO - MOVE VOLID TO RDEVBLOK @V407466 00272000
  297. LR R7,R13 SAVE PTR TO VDE SAVEAREA @V407466 00273000
  298. L R13,SAVER13 PICK UP PTR TO VDA SAVEAREA @V407466 00274000
  299. OI SAVEWRK1+1,CPOWND CP/370 OWNED VOLUME FORMAT @V407466 00275000
  300. LR R13,R7 RESTORE VDE SAVEAREA ADDRESS @V407466 00276000
  301. B RDLABSR MOVE VOLID TO RDEVBLOK @V407466 00277000
  302. RDLBCMS EQU * SEE IF RECOGNIZABLE LABEL FORMAT @V407466 00278000
  303. CLC VDELBUF(4),=C'CMS=' CMS FORMAT ? @V407466 00279000
  304. BE RDLABSR YES @V407466 00280000
  305. LA R14,VDELBUF NON-STANDARD LABEL START @V407466 00281000
  306. SPACE 00282000
  307. RDLABSR EQU * FILL IN RDEVBLOK SERIAL FIELD @V407466 00283000
  308. MVC RDEVSER(6),0(R14) ... @V407466 00284000
  309. EJECT 00285000
  310. RDLFRET EQU * RELEASE IOBLOK @V407466 00286000
  311. USING IOBLOK,R10 @V407466 00287000
  312. L R1,IOBIOER SEE IF IOERBLOK TO RELEASE @V407466 00288000
  313. LTR R1,R1 IS THERE ONE? @V407466 00289000
  314. BZ IOBONLY NO, RELEASE IOBLOK ONLY @V407466 00290000
  315. LA R0,IOERSIZE SIZE OF IOERBLOK @V407466 00291000
  316. AH R0,IOEREXT ...PLUS EXTENSION SIZE @VA07361 00291100
  317. CALL DMKFRET RELEASE IOERBLOK @V407466 00292000
  318. IOBONLY LR R1,R10 IOBLOK ADDRESS TO R1 @V407466 00293000
  319. DROP R10 @V407466 00294000
  320. L R10,IOBMISC-IOBLOK(,R1) ATTACHEE'S VMBLOK @V407466 00295000
  321. LA R0,IOBSIZE SIZE OF REGL. IOBLOK @V407466 00296000
  322. CLI RDEVTYPC,CLASDASD DASD DEVICE @V407466 00297000
  323. BNE RDFRIOB NO, IOBSIZE IS OK @V407466 00298000
  324. LA R0,VDELLEN BLOCK SIZE @V407466 00299000
  325. C R2,F1 ...EXCEPT THAT THE ALLOCATION @V407466 00300000
  326. BNE RDFRIOB ...RECORD IS MUCH BIGGER @V407466 00301000
  327. LA R0,IOBSIZE+ALLOLEN @V407466 00302000
  328. RDFRIOB EQU * RELEASE THE IOBLOCK @V407466 00303000
  329. CALL DMKFRET RELEASE IT... @V407466 00304000
  330. EXIT ST R3,SAVER2 SAVE BAD RETURN CODE OR ZERO @V407466 00305000
  331. EXIT RETURN TO DMKVDA @V407466 00306000
  332. SPACE 00307000
  333. EXIT2 ST R10,SAVER10 SAVE IOBLOK ADDRESS @V407466 00308000
  334. * WHEN READING ALLOCATION RECORD @V407466 00309000
  335. B EXIT AND GO EXIT @V407466 00310000
  336. SPACE 2 00311000
  337. NOTREDY EQU 68 'NOTREADY' @V407466 00312000
  338. BADLABL EQU 72 READ FAILED FOR DASD LABEL @V407466 00313000
  339. BADLABL2 EQU 76 READ FAILED FOR ALLOC. RECORD @V407466 00314000
  340. UNKNOWN EQU 80 DEVICE DOES NOT EXIST @V407466 00315000
  341. BUSY151 EQU 120 @VA11952 00315100
  342. SPACE 00316000
  343. * BITS DEFINED IN VDABITS+1: 00317000
  344. CPOWND EQU X'20' ALLOCATION DATA PRESENT ON VOLUME@V407466 00318000
  345. SPACE 00319000
  346. LABLCCW CCW X'07',LABLCNT-LABLCCW,CC+SILI,6 SEEK @V407466 00320000
  347. CCW X'08',LABLSRCH-LABLCCW,CC+SILI,1 TIC @V407466 00321000
  348. CCW X'03',0,SILI,1 NOP @V407466 00322000
  349. LABLSRCH CCW X'31',LABLCNT-LABLCCW+2,CC+SILI,5 SEARCH @V407466 00323000
  350. CCW X'08',*-8-LABLCCW,CC,1 TIC @V407466 00324000
  351. CCW X'06',LABLBUF-LABLCCW,CC+SILI,80 RD DATA @V407466 00325000
  352. CCW X'04',LABLSNS-LABLCCW,SILI,IOERSNSZ SENSE @V407466 00326000
  353. LABLEND EQU * END OF CCWS @V407466 00327000
  354. LABLCNT DC AL2(0,0,0,3*256) BB,CC,HH,RX @V407466 00328000
  355. LABLSZ EQU *-LABLCCW SIZE OF EXTENSION @V407466 00329000
  356. LABLBUF DS 0D LABEL BUFFER LOCATION @V407466 00330000
  357. ORG *+80 @V407466 00331000
  358. LABLSNS EQU * @V407466 00332000
  359. ORG *-80 @V407466 00333000
  360. SPACE 3 00334000
  361. ALLOCNT DC AL2(0,0,0,4*256) BB,CC,HH,RX @V407466 00335000
  362. ALLOLEN EQU 1024/8+(LABLBUF-LABLCCW)/8 EXTRA SIZE FOR ALLOC @V407466 00336000
  363. SPACE 2 00337000
  364. EJECT 00338000
  365. *. 00339000
  366. * SUBROUTINE NAME - 00340000
  367. * 00341000
  368. * DMKVDERR - ISSUE ATTACH ERROR MESSAGES 00342000
  369. * 00343000
  370. * FUNCTION - 00344000
  371. * TO ISSUE ERROR MESSAGES FOR THE 'ATTACH' COMMAND 00345000
  372. * 00346000
  373. * ATTRIBUTES - 00347000
  374. * 00348000
  375. * REENTRANT, PAGEABLE, CALLED VIA SVC 00349000
  376. * 00350000
  377. * ENTRY CONDITIONS - 00351000
  378. * 00352000
  379. * GPR 2 - ERROR MESSAGE INDEX 00353000
  380. * GPR 7 - ADDRESS OF ERROR MESSAGE AREA 00354000
  381. * GPR 9 - ADDRESS OF UDEVBLOK 00355000
  382. * GPR 10 - ADDRESS OF VMBLOK FOR ATTACHED-TO USER 00356000
  383. * GPR 11 - ADDRESS OF CALLER'S VMBLOK 00357000
  384. * GPR 12 - BASE REGISTER 00358000
  385. * GPR 13 - ADDRESS OF STANDARD SAVE AREA 00359000
  386. * 00360000
  387. * EXIT CONDITIONS - 00361000
  388. * 00362000
  389. * GPR 2 = BRANCH TABLE INDEX FOR DMKVDA TO CONTINUE PROCESSING 00363000
  390. * 00364000
  391. * CALLS TO OTHER ROUTINES - 00365000
  392. * 00366000
  393. * DMKCVTBD 00367000
  394. * DMKCVTBH 00368000
  395. * DMKERMSG 00369000
  396. * DMKLOCKD 00370000
  397. * DMKSCNRD 00371000
  398. * DMKSCNRN 00372000
  399. * DMKSCNRU 00373000
  400. * 00374000
  401. * EXTERNAL REFERENCES - 00375000
  402. * 00376000
  403. * NONE 00377000
  404. * 00378000
  405. * TABLES / WORK AREAS - 00379000
  406. * 00380000
  407. * ERROR MESSAGE AREA 00381000
  408. * DMKVDA'S SAVEAREA 00382000
  409. * 00383000
  410. * REGISTER USAGE - 00384000
  411. * 00385000
  412. * GPR 2 - ERROR INDEX CODE 00386000
  413. * GPR 4 - ADDRESS OF SAVEAREA 00387000
  414. * GPR 7 - ADDRESS OF ERROR MESSAGE AREA 00388000
  415. * GPR 9 - UDEVBLOK ADDRESS 00389000
  416. * GPR 10 - ADDRESS OF VMBLOK FOR ATTACHED-TO USER 00390000
  417. * GPR 11 - ADDRESS OF CALLER'S OR USER'S VMBLOK 00391000
  418. * GPR 12 - BASE REGISTER 00392000
  419. * GPR 13 - ADDRESS OF DMKVDA'S SAVE AREA 00393000
  420. * 00394000
  421. * ALL OTHER REGISTERS ARE WORK REGISTERS 00395000
  422. * 00396000
  423. * NOTES - NONE 00397000
  424. * 00398000
  425. * OPERATION - 00399000
  426. * 00400000
  427. * 1. THE ERROR INDEX PASSED FROM DMKVDA IS USED AS AN INDEX 00401000
  428. * INTO A BRANCH TABLE TO BRANCH TO THE APPROPRIATE ERROR 00402000
  429. * MESSAGE PROCESSING. FOR EACH MESSAGE, THE VARIABLE DATA 00403000
  430. * (IF ANY) IS SUPPLIED, THE MESSAGE NUMBER IS SET, AND 00404000
  431. * DMKERMSG IS CALLED. IF DMKVDA DOES NOT NEED TO RECEIVE 00405000
  432. * CONTROL BACK AFTER THE ERROR MESSAGE IS WRITTEN, DMKVDERR 00406000
  433. * RELEASES ITS OWN SAVEAREA BEFORE CALLING DMKERMSG. 00407000
  434. * DMKERMSG WILL THEN RELEASE DMKVDA'S SAVEAREA BEFORE 00408000
  435. * RETURNING TO THE CALLER OF DMKVDA. 00409000
  436. * 00410000
  437. * RESPONSES - 00411000
  438. * NONE 00412000
  439. * 00413000
  440. * ERROR MESSAGES - 00414000
  441. * 00415000
  442. * DMKVDE003E INVALID OPTION - $OPTION$ 00416000
  443. * DMKVDE006E INVALID DEVICE TYPE - RADDR 00417000
  444. * DMKVDE020E USERID MISSING OR INVALID 00418000
  445. * DMKVDE021E RADDR MISSING OR INVALID 00419000
  446. * DMKVDE022E VADDR MISSING OR INVALID 00420000
  447. * DMKVDE023E VOLID MISSING OR INVALID 00421000
  448. * DMKVDE034E CHANNEL MISSING OR INVALID 00422000
  449. * DMKVDE040E DEV ADDR DOES NOT EXIST 00423000
  450. * DMKVDE045E $USERID$ NOT LOGGED ON 00424000
  451. * DMKVDE046E TYPE RADDR OFFLINE 00425000
  452. * DMKVDE120E TYPE RADDR NOT ATTACHED; USERID VADDR ALREADY 00426000
  453. * DEFINED 00427000
  454. * DMKVDE121E TYPE RADDR NOT ATTACHED TO $USERID$ 00428000
  455. * DMKVDE122E TYPE RADDR ALREADY ATTACHED TO $USERID$ 00429000
  456. * DMKVDE123E DASD RADDR CP OWNED 00430000
  457. * DMKVDE124E DASD RADDR IN USE BY NNN USERS 00431000
  458. * DMKVDE125E DASD RADDR VOLID $VOLID$ ALREADY ATTACHED 00432000
  459. * TO SYSTEM 00433000
  460. * DMKVDE126E DASD RADDR ERROR READING VOLID 00434000
  461. * DMKVDE127E DASD RADDR VOLID $VOLID$ DOES NOT MATCH 00435000
  462. * DMKVDE128E DASD RADDR ERROR READING ALLOCATION RECORD 00436000
  463. * DMKVDE131E INSUFFICIENT FREE STORAGE AVAILABLE FOR 00437000
  464. * ATTACH REQUEST 00438000
  465. * DMKVDE133E DASD RADDR NOT READY 00439000
  466. * DMKVDE134E TYPE RADDR NOT ATTACHED; CHAN XX DEDICATED 00440000
  467. * DMKVDE142E TYPE RADDR NOT DRAINED 00441000
  468. * DMKVDE143E TYPE RADDR IN USE BY SYSTEM 00442000
  469. * DMKVDE151I DASD RADDR NOT ATTACHED,BUSY PERSISTS, 00442100
  470. * IOBSTAT=XX, IOBCSW+4=YYYY 00442200
  471. * DMKVDE153E DEVICE RADDR EXCEEDS MAX NUM OF VIRTUAL DEVICES 00442300
  472. *. 00443000
  473. EJECT 00444000
  474. DMKVDERR RELOC @VA13651 00445000
  475. MVC SAVEWRK1,ZEROES CLEAR FOR FLAG BYTE 00445500
  476. LR R4,R13 SAVE R13 SAVEAREA ADDR FOR LATER @VA13651 00446000
  477. L R13,SAVER13 USE DMKVDA'S SAVEAREA @VA13651 00447000
  478. USING WRK2,R7 GET ADDRESSABILITY TO MSG AREA @VA13651 00448000
  479. USING VMBLOK,R11 GET ADDRESSABILITY TO VMBLOK @VA13651 00449000
  480. USING UDEVBLOK,R9 GET ADDRESSABILITY TO UDEVBLOK @VA13651 00450000
  481. B ERRTABL-8(R2) BRANCH TO PROPER ERROR ROUTINE; @VA13651 00451000
  482. * R2 IS ERROR INDEX SET BY DMKVDA 00452000
  483. SPACE 2 00453000
  484. *---------------------------------------------------------------------* 00454000
  485. * CVTRADD - CONVERT DEVICE ADDRESS TO HEXADECIMAL * 00455000
  486. * ZAPVOLD - REMOVE VOLUME SERIAL FROM REAL DEVICE BLOCK * 00456000
  487. *---------------------------------------------------------------------* 00457000
  488. SPACE 2 00458000
  489. CVTRADD EQU * CONVERT REAL DEVICE ADDRESS @V407466 00459000
  490. L R1,DEVADDR @V407466 00460000
  491. TM VDABITS,RANGE+MULTR RANGE/MULTIPLES BEING PROC @V407466 00461000
  492. BZ CONVERT NO, USE ADDR IN DEVADDR FIELD @V407466 00462000
  493. LH R1,UDEVADD DEVICE ADDRESS @V407466 00463000
  494. CONVERT CALL DMKCVTBH @V407466 00464000
  495. BR R5 @V407466 00465000
  496. SPACE 00466000
  497. ZAPVOLD EQU * REMOVE VOLID FROM RDEVBLOK @V407466 00467000
  498. L R1,SAVEWRK9 REAL DEVICE BLOCK POINTER - SAVED@V407466 00468000
  499. SWITCH CONTINUE PROCESSING ON I/O PROC @V407508 00469000
  500. USING RDEVBLOK,R1 @V407466 00470000
  501. MVC RDEVUSER(4),ASYSVM IN USE BY SYSTEM @V407466 00471000
  502. BR R5 @V407466 00472000
  503. DROP R1 @V407466 00473000
  504. EJECT 00474000
  505. *---------------------------------------------------------------------* 00475000
  506. * FREUSER AND SWPUSER - UNLOCK USERID AND SWAP VMBLOKS * 00476000
  507. *---------------------------------------------------------------------* 00477000
  508. SPACE 2 00478000
  509. FREUSER EQU * UNLOCK ATTACHEE'S USERID @V407466 00479000
  510. LA R1,VMUSER @V407466 00480000
  511. CALL DMKLOCKD DIRECTORY UNLOCK SUBROUTINE @V407466 00481000
  512. L R1,SAVER11 GET CALLER'S VMBLOK ADDRESS @V407508 00482000
  513. SWTCHVM SWITCH TO CALLER'S VMBLOK @V4M0193 00483000
  514. BR R5 ...RETURN TO CALLER @V407466 00484000
  515. SPACE 2 00485000
  516. SWPUSER EQU * SWAP TO TARGET USER'S VMBLOK @V407466 00486000
  517. LR R1,R10 GET USER'S VMBLOK ADDRESS @V407508 00487000
  518. SWTCHVM SWITCH TO SPECIFIED USER @V4M0193 00488000
  519. BR R5 @V407466 00489000
  520. EJECT 00490000
  521. *---------------------------------------------------------------------* 00491000
  522. * GETRDEV, GETRTYP - GET REAL DEVICE BLOCK + TYPE NAME * 00492000
  523. *---------------------------------------------------------------------* 00493000
  524. SPACE 2 00494000
  525. GETRDEV EQU * LOCATE REAL DEVICE BLOCK @V407466 00495000
  526. TM VDABITS,RANGE+MULTR RANGE OR MULTIPLES @V407466 00496000
  527. BM GETRDEV2 YES, R1 ALREADY SET UP @V407466 00497000
  528. L R1,DEVADDR REAL DEVICE ADDRESS @V407466 00498000
  529. GETRDEV2 CALL DMKSCNRU ...FIND THE RDEVBLOK @V407466 00499000
  530. BNZ UNKNOWN2 REAL DEVICE DOES NOT EXIST @VA13651 00500000
  531. ST R8,SAVEWRK9 SAVE THE RDEVBLOK POINTER @V407466 00501000
  532. BR R5 @V407466 00502000
  533. SPACE 00503000
  534. GETRTYP EQU * GET EBCDIC TYPE-NAME OF REAL DEV @V407466 00504000
  535. L R8,SAVEWRK9 RDEVBLOK ADDRESS @V407466 00505000
  536. CALL DMKSCNRN ...GET IT'S TYPE-NAME @V407466 00506000
  537. LR R3,R1 ...INTO R4 @V407466 00507000
  538. BR R5 @V407466 00508000
  539. EJECT 00509000
  540. * 00510000
  541. * ERROR INDEX = 28 00511000
  542. * 00512000
  543. INVOPTS EQU * INVALID OPTION - OPTION @V407466 00513000
  544. LA R2,EMSG003 MSG= DMKVDE003E @VA13651 00514000
  545. B MSGSEND3 (R0,R1 STILL SET FROM SCAN) @V407490 00515000
  546. * 00516000
  547. * ERROR INDEX = 88 00517000
  548. * 00518000
  549. INVOPTS2 EQU * @V407466 00519000
  550. LA R2,EMSG003 MSG= DMKVDE003E @VA13651 00520000
  551. ICM R2,B'1000',=X'80' RETURN TO DMKVDE AFTER MSG @VA13651 00521000
  552. B MSGSEND3 (R0,R1 STILL SET FROM SCAN) @VA13651 00522000
  553. * 00523000
  554. * ERROR INDEX = 92 00524000
  555. * 00525000
  556. INVTYPE EQU * INVALID DEVICE TYPE - RADDR @V407466 00526000
  557. BAL R5,CVTRADD GET REAL ADDRESS @V407466 00527000
  558. STCM R1,B'0111',ATTCUU ADDR @V407466 00528000
  559. LA R0,ATTSIZE1 DATA LENGTH @V407466 00529000
  560. LA R2,EMSG006 MSG= DMKVDE006E @VA13651 00530000
  561. B MSGSEND2 @V407466 00531000
  562. * 00532000
  563. * ERROR INDEX = 48 00533000
  564. * 00534000
  565. INVUSID EQU * USERID MISSING OR INVALID @V407466 00535000
  566. LA R2,EMSG020 MSG= DMKVDE020E @VA13651 00536000
  567. B MSGONLY @V407466 00537000
  568. * 00538000
  569. * ERROR INDEX = 52 00539000
  570. * 00540000
  571. INVADD1 EQU * FIRST ADDR MISSING OR INVALID @V407466 00541000
  572. TM VDABITS,CHANNEL MESSAGE FOR CAHNNEL COMMAND @V407466 00542000
  573. BZ VDA021 BRANCH IF NOT @V407466 00543000
  574. LA R2,EMSG034 LOAD CHANNEL ERROR CODE @V407490 00544000
  575. B MSGONLY . . . . @V407466 00545000
  576. VDA021 EQU * RADDR MISSING OR INVALID @V407490 00546000
  577. MVC 0(L'VMUSER,R7),CMDUSER MOVE IN INVALID PARM @V407490 00547000
  578. LA R0,L'VMUSER SET UP LENGTH @V407490 00548000
  579. LA R2,EMSG021 SET UP ERROR CODE @V407490 00549000
  580. B MSGSEND2 GO SEND MSG WITH NO RETURN @V407490 00550000
  581. * 00551000
  582. * ERROR INDEX = 96 00552000
  583. * 00553000
  584. VDE021A EQU * RADDR MISSING OR INVALID @VA13651 00554000
  585. TM VDABITS,RANGE RANGE ?? @V407490 00555000
  586. BZ VDA021B NO, BYPASS RANGE PROCESSING @V407490 00556000
  587. BAL R5,SWPUSER SET UP TO UNLOCK ATTACHEE @V407490 00557000
  588. BAL R5,FREUSER UNLOCK USERS CONTROL BLOCKS @V407490 00558000
  589. VDA021B LH R1,UDEVADD PICK UP DEVICE ADDRESS @V407490 00559000
  590. CALL DMKCVTBH CONVERT IT BACK @V407490 00560000
  591. STCM R1,B'0111',ATTCUU STORE ADDRESS @V407490 00561000
  592. LA R0,ATTSIZE1 SET UP SIZE OF ERROR MSG @V407490 00562000
  593. LA R2,EMSG021 LOAD ERROR CODE FOR DMKVDE021 @VA13651 00563000
  594. TM VDABITS,MULTR MULTIPLE DEVICES ????? @V407490 00564000
  595. BO MSGSEND YES, SEND MSG AND RETURN TO VDE @VA13651 00565000
  596. B MSGSEND2 GO SEND MSG, NO RETURN @V407490 00566000
  597. * 00567000
  598. * ERROR INDEX = 36 00568000
  599. * 00569000
  600. INVADD2 EQU * VADDR MISSING OR INVALID @V407466 00570000
  601. TM VDABITS,ATTSYST ATTACH TO SYSTEM ? @V407466 00571000
  602. BO INVOLID YES - ADD2 IS REALLY A VOLID @V407466 00572000
  603. VDA022 LA R2,EMSG022 VADDR MISSING OR INVALID @V407490 00573000
  604. B MSGONLY @V407466 00574000
  605. * 00575000
  606. * ERROR INDEX = 100 00576000
  607. * 00577000
  608. VDE022B EQU * @VA13651 00578000
  609. LA R2,EMSG022 VADDR MISSING OR INVALID @V407490 00579000
  610. ICM R2,B'1000',=X'80' RETURN TO DMKVDE AFTER MSG @VA13651 00580000
  611. B MSGONLY ISSUE MESSAGE @V407466 00581000
  612. * 00582000
  613. * ERROR INDEX = 40 00583000
  614. * 00584000
  615. INVOLID EQU * VOLID MISSING OR INVALID @V407466 00585000
  616. LA R2,EMSG023 MSG= DMKVDE023E @VA13651 00586000
  617. B MSGONLY @V407466 00587000
  618. * 00588000
  619. * ERROR INDEX = 80 00589000
  620. * 00590000
  621. UNKNOWN2 EQU * DEV ADDR DOES NOT EXIST @VA13651 00591000
  622. BAL R5,CVTRADD CONVERT ADDRESS TO HEX @V407466 00592000
  623. STCM R1,B'0111',ATTCUU @V407466 00593000
  624. LA R0,ATTSIZE1 DATA LENGTH @V407466 00594000
  625. LA R2,EMSG040 MSG= DMKVDE040E @VA13651 00595000
  626. B MSGSEND GO BUILD + TYPE MESSAGE @V407466 00596000
  627. * 00597000
  628. * ERROR INDEX = 44 00598000
  629. * 00599000
  630. NOTLOGD EQU * USERID NOT LOGGED ON @V407466 00600000
  631. MVC 0(L'VMUSER,R7),CMDUSER USERID @VA13651 00601000
  632. LA R0,L'VMUSER DATA LENGTH @V407466 00602000
  633. LA R2,EMSG045 MSG= DMKVDE045E @VA13651 00603000
  634. B MSGSEND2 @V407466 00604000
  635. * 00605000
  636. * ERROR INDEX = 12 00606000
  637. * 00607000
  638. DEVOFFL EQU * TYPE RADDR OFFLINE @V407466 00608000
  639. LA R2,EMSG046 MSG= DMKVDE046E @VA13651 00609000
  640. TM VDABITS,ATTSYST ATTACHING TO 'SYSTEM' @V407466 00610000
  641. BO TYPRADD YES, DO NOT WANT TO RETURN @V407490 00611000
  642. ICM R2,B'1000',=X'80' RETURN TO DMKVDE AFTER MSG @VA13651 00612000
  643. B TYPRADD GO BUILD VARIABLE STRING @V407490 00613000
  644. * 00614000
  645. * ERROR INDEX = 60 00615000
  646. * 00616000
  647. BAD05 EQU * @VA13651 00617000
  648. * 00618000
  649. * ERROR INDEX = 56 00619000
  650. * 00620000
  651. DALREDY EQU * TYPE RADDR NOT ATTACHED; USERID @V407466 00621000
  652. * VADDR ALREADY DEFINED 00622000
  653. BAL R5,FREUSER ONLOCK USER'S CONTROL BLOCKS @V407466 00623000
  654. BAL R6,USERDEV SET UP 'TYPE RADDR USERID' STRING@V407466 00624000
  655. LH R1,VIRTADD VIRTUAL ADDRESS @V407466 00625000
  656. TM VDABITS,RANGE+MULTR RANGE OR MULTIPLES @V407466 00626000
  657. BZ CVT NO, ADDRESS IN 'VIRTADD' @V407466 00627000
  658. LH R1,UDEVADD ADDRESS IN UDEVBLOK @V407466 00628000
  659. CVT CALL DMKCVTBH CONVERT FOR MESSAGE @V407466 00629000
  660. MVI ATTDEL2,BIN0 DELIMITER AFTER 'USERID' @V407466 00630000
  661. STCM R1,B'0111',ATTVADDR ...ADD 'VADDR' @V407466 00631000
  662. LA R0,ATTSIZE3 DATA LENGTH @V407466 00632000
  663. LA R2,EMSG120 MSG= DMKVDE120E @VA13651 00633000
  664. B MSGSEND @V407466 00634000
  665. * 00635000
  666. * ERROR INDEX = 20 00636000
  667. * 00637000
  668. DEVOWND EQU * DASD RADDR CP OWNED @V407466 00638000
  669. BAL R5,CVTRADD CONVERT ADDRESS @V407466 00639000
  670. STCM R1,B'0111',ATTCUU @V407466 00640000
  671. LA R0,ATTSIZE1 DATA LENGTH @V407466 00641000
  672. LA R2,EMSG123 MSG= DMKVDE123E @VA13651 00642000
  673. TM VDABITS,ATTSYST ATTACHING TO 'SYSTEM' @V407466 00643000
  674. BO MSGSEND2 YES, DO NOT RETURN TO DMKVDE @VA13651 00644000
  675. B MSGSEND @V407466 00645000
  676. * 00646000
  677. * ERROR INDEX = 16 00647000
  678. * 00648000
  679. SHRCHEK EQU * CHECK DIFF VARIETIES OF 'SHARED' @V407466 00649000
  680. L R8,SAVEWRK9 GET RDEVBLOK ADDRESS @V407466 00650000
  681. USING RDEVBLOK,R8 @V407466 00651000
  682. LA R2,EMSG143 MSG= DMKVDE143 @VA13651 00654000
  683. TM VDABITS,ATTSYST ATTACHING TO 'SYSTEM' @V407466 00655000
  684. BO TYPRADD YES, DO NOT RETURN AFTER MSG @V407466 00656000
  685. ICM R2,B'1000',=X'80' RETURN TO DMKVDE AFTER MSG @VA13651 00657000
  686. SHRCHEK2 B TYPRADD @V407466 00658000
  687. * 00659000
  688. * ERROR INDEX = 64 00660000
  689. * 00661000
  690. CHANDED EQU * ERROR FOR DEDICATED CHANNELS @V407490 00662000
  691. AIF (NOT &DEDCH).NOTDED3 **AIF** @V407466 00663000
  692. LR R6,R8 RESTORE R6 @V407466 00664000
  693. BAL R5,FREUSER UNLOCK USER'S CONTROL BLOCKS @V407466 00665000
  694. USING VCHBLOK,R6 @V407466 00666000
  695. LH R1,VCHADD GET ADDRESS OF VIRTUAL CHANNEL @V407466 00667000
  696. SRL R1,8(0) ... @V407466 00668000
  697. CALL DMKCVTBD CONVERT TO DECIMAL @V407466 00669000
  698. DROP R6 @V407466 00670000
  699. MVI ATTDEL1,BIN0 DELIMITER @V407466 00671000
  700. STCM R1,B'0011',ATTCHAN STORE CHANNEL NUMBER @V407466 00672000
  701. TM ATTCHAN,HEX0F CHANNEL NUMBER > 9 @V407466 00673000
  702. BNZ *+8 YES - LEAVE CHANNEL NUMBER ALONE @V407466 00674000
  703. MVI ATTCHAN,BIN0 CLEAR HI ORDER BYTE @V407466 00675000
  704. BAL R5,GETRDEV GET REAL DEVICE BOLCKS @V407466 00676000
  705. BAL R5,GETRTYP GO GET THE TYPE OF DEVICE @V407466 00677000
  706. BAL R5,CVTRADD ... @V407466 00678000
  707. ST R3,ATTCUU SAVE IT. @V407466 00679000
  708. ST R1,ATTNO STORE DEVICE ADDRESS @V407466 00680000
  709. MVI ATTNO,BIN0 DELIMITER @V407466 00681000
  710. LA R0,ATTSIZE4 MESSAGE LENGTH @V407466 00682000
  711. LA R2,EMSG134 MSG= DMKVDE134E @VA13651 00683000
  712. B MSGSEND @V407466 00684000
  713. .NOTDED3 ANOP 00685000
  714. * 00686000
  715. * ERROR INDEX = 8 00687000
  716. * 00688000
  717. NODRAIN EQU * TYPE RADDR NOT DRAINED @V407466 00689000
  718. LA R2,EMSG142 MSG= DMKVDE142E @VA13651 00690000
  719. TM VDABITS,ATTSYST ATTACHING TO 'SYSTEM' @V407466 00691000
  720. BO TYPRADD YES, DO NOT RETURN @V407466 00692000
  721. ICM R2,B'1000',=X'80' RETURN TO DMKVDE AFTER MSG @VA13651 00693000
  722. TYPRADD EQU * @V407466 00694000
  723. BAL R5,GETRTYP @V407466 00695000
  724. BAL R5,CVTRADD @V407466 00696000
  725. ST R3,ATTCUU @V407466 00697000
  726. ST R1,ATTNO @V407466 00698000
  727. MVI ATTNO,BIN0 DELIMITER @V407466 00699000
  728. LA R0,L'SAVEWRK2+L'SAVEWRK3 DATA LENGTH @V407466 00700000
  729. B MSGSEND2 GO SEND IT @V407490 00701000
  730. * 00702000
  731. * ERROR INDEX = 84 00703000
  732. * 00704000
  733. DEVSHRD EQU * DASD RADDR IN USE BY NNN USERS @V407466 00705000
  734. CLC RDEVSER(6),CMDUSER IS VOLID CORRECT? @VA11349 00706000
  735. BNE WRNGVOL YES, CONTINUE. @VA11139 00707000
  736. BAL R5,CVTRADD CONVERT ADDRESS @V407466 00708000
  737. STCM R1,B'0111',ATTCUU @V407466 00709000
  738. MVI ATTDEL4,BIN0 DELIMITER @V407466 00710000
  739. L R8,SAVEWRK9 SAVED RDEVBLOK ADDRESS @V407466 00711000
  740. LH R1,RDEVLNKS-RDEVBLOK(,R8) NO. OF USERS @V407466 00712000
  741. CALL DMKCVTBD CONVERT TO DECIMAL @V407466 00713000
  742. STCM R1,B'0111',ATTNO NUMBER OF USERS @V407466 00714000
  743. LA R0,ATTSIZE5 DATA LENGTH @V407466 00715000
  744. LA R2,EMSG124 MSG= DMKVDE124E @VA13651 00716000
  745. TM VDABITS,ATTSYST ATTACHING TO 'SYSTEM' @V407466 00717000
  746. BO MSGSEND2 DO NOT RETURN TO DMKVDE AFTER MSG@VA13651 00718000
  747. B MSGSEND @V407466 00719000
  748. * 00720000
  749. * ERROR INDEX = 104 00721000
  750. * 00722000
  751. DUPVOL EQU * DASD RADDR VOLID $VOL$ ALRDY ATT @V407466 00723000
  752. MSG125E CALL DMKSCNRD GET REAL DEVICE ADDRESS @V407466 00724000
  753. CALL DMKCVTBH CONVERT TO HEX @V407466 00725000
  754. STCM R1,B'0111',ATTCUU @V407466 00726000
  755. MVI ATTDEL4,BIN0 DELIMITER @V407466 00727000
  756. * VOLID IS IN 'CMDUSER' = SAVEWRK3,4 00728000
  757. MVC ATTNO(L'SAVEWRK3+L'SAVEWRK4),CMDUSER @V407466 00729000
  758. LA R0,L'SAVEWRK2+L'SAVEWRK3+L'SAVEWRK4 LENGTH @V407466 00730000
  759. LA R2,EMSG125 MSG= DMKVDE125 @VA13651 00731000
  760. B MSGSEND2 @V407466 00732000
  761. * 00733000
  762. * ERROR INDEX = 72 00734000
  763. * 00735000
  764. LABLERR EQU * DASD RADDR ERROR RDING VOL LABEL @V407466 00736000
  765. BAL R5,CVTRADD @V407466 00737000
  766. STCM R1,B'0111',ATTCUU @V407466 00738000
  767. LA R0,ATTSIZE1 DATA LENGTH @V407466 00739000
  768. LA R2,EMSG126 MSG= DMKVDE126 @VA13651 00740000
  769. B MSGSEND2 @V407466 00741000
  770. * 00742000
  771. * ERROR INDEX = 108 00743000
  772. * 00744000
  773. WRNGVOL EQU * DASD RADDR VOL1 VOL2 DON'T MATCH @V407466 00745000
  774. BAL R5,CVTRADD GET DEVICE ADDRESS @V407466 00746000
  775. STCM R1,B'0111',ATTCUU @V407466 00747000
  776. MVI ATTDEL4,BIN0 DELIMITER @V407466 00748000
  777. MVC ATTNO(6),RDEVSER-RDEVBLOK(R8) VOLID FROM DEV @V407466 00749000
  778. BAL R5,ZAPVOLD CLEAR VOLID FROM RDEVBLOK @V407466 00750000
  779. LA R0,L'SAVEWRK2+L'SAVEWRK3+L'SAVEWRK4-2 LENGTH @V407466 00751000
  780. LA R2,EMSG127 MSG= DMKVDE127E @VA13651 00752000
  781. B MSGSEND2 @V407466 00753000
  782. * 00754000
  783. * ERROR INDEX = 32 00755000
  784. * 00756000
  785. NOSTOR MVC ATTCUU(L'ATTACHED-2),ATTACHED INSUFFICIENT @V407466 00757000
  786. LA R2,EMSG131 FREE STORAGE AVAILABLE FOR @V407490 00758000
  787. LA R0,L'ATTACHED-2 ATTACH REQUEST @V407466 00759000
  788. B MSGSEND ISSUE MESSAGE @V407466 00760000
  789. * 00761000
  790. * ERROR INDEX = 68 00762000
  791. * 00763000
  792. INTREQD EQU * DASD RADDR NOT READY @V407466 00764000
  793. BAL R5,CVTRADD GET REAL DEVICE ADDRESS @V407466 00765000
  794. STCM R1,B'0111',ATTCUU DATA FOR DMKERMSG @V407466 00766000
  795. LA R0,ATTSIZE1 DATA LENGTH @V407466 00767000
  796. LA R2,EMSG133 MSG= DMKVDE133E @VA13651 00768000
  797. B MSGSEND @V407466 00769000
  798. * 00770000
  799. * ERROR INDEX = 76 00771000
  800. * 00772000
  801. NOALLOC EQU * DASD RADDR ERR READING ALLOC REC.@V407466 00773000
  802. BAL R5,CVTRADD @V407466 00774000
  803. STCM R1,B'0111',ATTUSER2+3 SAVE ADDR OUT OF THE WAY @V407466 00775000
  804. LA R0,ATTSIZE1 DATA LENGTH @V407466 00776000
  805. LA R2,EMSG128 MSG= DMKVDE128E @VA13651 00777000
  806. LA R1,ATTUSER2+3 DATA START @V407466 00778000
  807. ICM R2,B'1100',=X'80E6' RETURN HERE, 'W' ACTION CODE@V407466 00779000
  808. ICM R0,B'1110',DMKVDE+3 MODULE IDENTIFIER @VA13651 00780000
  809. CALL DMKERMSG GO DO IT @V407466 00781000
  810. B RESPATT ISSUE RESPONSES @V407466 00782000
  811. * 00783000
  812. * ERROR INDEX = 24 00784000
  813. * 00785000
  814. DEVDEDD EQU * TYPE RADDR ALREADY ATT TO USERID @V407466 00786000
  815. LA R2,EMSG122 MGS=DMKVDE122E @VA13651 00787000
  816. TM VDABITS,ATTSYST ATTACHING TO THE 'SYSTEM' @V407466 00788000
  817. BO DEVDEDD3 YES, DO NOT RETURN @V407466 00789000
  818. ICM R2,B'1000',=X'80' RETURN TO DMKVDE AFTER MSG @VA13651 00790000
  819. DEVDEDD3 DS 0H @V4M0236 00791000
  820. BAL R6,USERDEV SET UP DATA STRING FOR 'ERMSG' @V407466 00792000
  821. L R8,SAVEWRK9 GET RDEVBLOK ADDRESS @V4M0236 00793000
  822. L R8,RDEVUSER-RDEVBLOK(,R8) GET USERS VMBLOK ADDR @V4M0236 00794000
  823. MVC ATTUSE(L'VMUSER),VMUSER-VMBLOK(R8) MOVE IN @V4M0236 00795000
  824. * CORRECT USERID @V4M0236 00796000
  825. B MSGSEND2 @V407490 00797000
  826. * 00797300
  827. * ERROR INDEX=120 00797310
  828. * 00797320
  829. MSG151 EQU * BUSY CONDITION PERSISTS @VA11952 00797330
  830. USING IOBLOK,R8 @VA11952 00797340
  831. BAL R5,CVTRADD GET DEVICE ADDRESS @VA11952 00797350
  832. STCM R1,B'0111',ATTCUU STORE DEVICE ADDRESS @VA11952 00797360
  833. MVI ATTDEL4,BIN0 DELIMITER @VA11952 00797370
  834. SR R1,R1 ZERO OUT R1 @VA11952 00797380
  835. ICM R1,B'0001',IOBSTAT GET IOB STATUS @VA11952 00797390
  836. CALL DMKCVTBH CONVERT IOB STATUS @VA11952 00797400
  837. STH R1,ATTNO STORE IOB STATUS @VA11952 00797410
  838. MVI ATTNO+2,BIN0 DELIMITER @VA11952 00797420
  839. SR R1,R1 ZERO OUT R1 @VA11952 00797430
  840. ICM R1,B'0011',IOBCSW+4 GET IOB SENSE @VA11952 00797440
  841. CALL DMKCVTBH CONVERT IOB SENSE @VA11952 00797450
  842. STCM R1,B'1111',ATTNO+4 STORE IOB SENSE @VA11952 00797460
  843. LA R0,L'ATTCUU+L'ATTDEL4+8 MSG LENGTH @VA11952 00797470
  844. ICM R2,B'1111',IMSG SET UP FOR 151I MSG @VA11952 00797480
  845. LR R1,R7 ADDRESS OF MSG AREA @VA11952 00797490
  846. ICM R0,B'1110',DMKVDE+3 MODULE ID @VA11952 00797500
  847. LR R10,R8 R10 POINTS TO IOBLOK @VA11952 00797510
  848. DROP R8 @VA11952 00797520
  849. CALL DMKERMSG PRINT MSG @VA11952 00797530
  850. B RDLFRET CLEAN UP @VA11952 00797540
  851. SPACE 2 00798000
  852. MAXDEV DS 0H PROCESS MAX DEVICES EXCEEDED @VA13217 00798050
  853. MVC ATTCUU(3),=C'RNG' SETUP FOR POSSIBLE RANGE ERR @VA13217 00798150
  854. TM VDABITS,RANGE PROCESSING RANGE OF DEVICES? @VA13217 00798250
  855. BO MAXDEVR YES - SKIP ADDRESS CONVERT @VA13217 00798350
  856. LH R1,UDEVADD PICK UP DEVICE ADDRESS @VA13217 00798450
  857. CALL DMKCVTBH CONVERT TO HEXADECIMAL @VA13217 00798550
  858. STCM R1,7,ATTCUU DVC ADDR TO INSERT IN MSG @VA13217 00798650
  859. MAXDEVR LA R0,ATTSIZE1 SIZE OF DATA TO INSERT @VA13217 00798750
  860. LA R2,EMSG153 MESSAGE NUMBER @VA13217 00798850
  861. B MSGSEND2 SEND MSG AND EXIT @VA13217 00798950
  862. MSGONLY EQU * NO EXTRA DATA FOR MESSAGE @V407466 00799000
  863. SLR R1,R1 @V407466 00800000
  864. SLR R0,R0 @V407466 00801000
  865. B MSGSEND3 GO SEND MESSAGE @VA11361 00802000
  866. SPACE 2 00803000
  867. MSGSEND EQU * BUILD + TYPE ERROR MESSAGE @V407466 00804000
  868. ICM R2,B'1000',=X'80' RETURN TO DMKVDE AFTER MSG @VA13651 00805000
  869. MSGSEND2 LR R1,R7 GET ADDRESS OF ERROR MSG AREA @VA13651 00806000
  870. MSGSEND3 EQU * @V407490 00807000
  871. LTR R2,R2 CHECK TO SEE IF WE ARE RETURNING @V407490 00808000
  872. BM WILLRET YES, WE SHALL RETURN..... @V407490 00809000
  873. ICM R2,B'1000',=X'40' NOT RETURNING,SET UP FRET @V407490 00810000
  874. LA R3,MSGSIZE+MULTSIZE+VOLSIZE BUFFER SIZE @V60B6B8 00811000
  875. SLL R3,24 GET IT TO THE HI-ORDER @V407490 00812000
  876. ICM R3,B'0111',SAVEWRK5+1 GET THE ADDRESS TO FRET @V407490 00813000
  877. LR R13,R4 RESTORE DMKVDE SAVEAREA ADDR @VA13651 00814000
  878. SVC 16 RELEASE THIS SAVEAREA @VA13651 00815000
  879. WILLRET EQU * @V407490 00816000
  880. ICM R0,B'1110',DMKVDE+3 MODULE IDENTIFIER @VA13651 00817000
  881. CALL DMKERMSG GO DO IT @V407466 00818000
  882. ST R2,SAVER2 SAVE ERROR NUMBER @V407490 00819000
  883. * SAVED IN DMKVDA'S SAVEAREA 00820000
  884. CH R2,=H'131' INSUFFICIENT STORAGE MSG? @V407466 00822000
  885. BE CLEANXT YES, UNLOCK USER'S BLOCKS @V407466 00823000
  886. TM VDABITS,MULTR MULTIPLES BEING PROCESSED? @V407466 00824000
  887. BO MULTCONT YES, CONTINUE @V407466 00825000
  888. TM VDABITS,RANGE IS RANGE BEING PROCESSED @V407466 00826000
  889. BZ CLEANXT NO, EXIT @V407466 00827000
  890. LH R1,UDEVADD UDEVADD TO R1 @V407466 00828000
  891. LA R1,1(,R1) UP BY ONE @V407466 00829000
  892. CH R1,VDABITS+2 END OF RANGE @V407466 00830000
  893. BNH PROCESS NO, KEEP PROCESSING @V407466 00831000
  894. * B CLEANXT GET OUT @VA13651 00832000
  895. SPACE 2 00833000
  896. CLEANXT EQU * @VA13651 00834000
  897. LA R2,VDEXIT SET BRANCH INDEX FOR RETURN @VA13651 00835000
  898. B ERREXIT GO EXIT FROM DMKVDERR @VA13651 00836000
  899. PROCESS EQU * @VA13651 00837000
  900. LA R2,VDEPROC SET BRANCH INDEX FOR RETURN @VA13651 00838000
  901. LR R13,R4 RESTORE VDE'S SAVEAREA 00838100
  902. ST R1,SAVER1 SAVE NEW R1 VALUE FOR DMKVDA @VA13651 00839000
  903. B ERREXIT GO EXIT FROM DMKVDERR @VA13651 00840000
  904. MULTCONT EQU * @VA13651 00841000
  905. LA R2,VDEMULT SET BRANCH INDEX FOR RETURN @VA13651 00842000
  906. B ERREXIT GO EXIT FROM DMKVDERR @VA13651 00843000
  907. RESPATT EQU * @VA13651 00844000
  908. LA R2,VDERESP SET BRANCH INDEX FOR RETURN @VA13651 00845000
  909. L R4,SAVER13 RE-OBTAIN ADDR OF VDA'S SAVEAREA @VA13651 00846000
  910. L R4,SAVEWRK5-SAVEAREA(,R4) ADDR OF VDA MSG AREA @VA13651 00847000
  911. LA R4,0(,R4) CLEAR HIGH ORDER BYTE @VA13651 00848000
  912. ST R4,SAVER4 SET NEW R4 VALUE FOR DMKVDA @VA13651 00849000
  913. ERREXIT EQU * RETURN TO DMKVDA @VA13651 00850000
  914. LR R13,R4 RESTORE VDE SAVEAREA ADDRESS 00850500
  915. ST R2,SAVER2 SET BRANCH RETURN FOR DMKVDA @VA13651 00851000
  916. EXIT RETURN TO DMKVDA @VA13651 00852000
  917. * 00853000
  918. * BRANCH TABLE FOR ERROR INDEX CODES FROM DMKVDA 00854000
  919. * 00855000
  920. ERRTABL DS 0H ERROR NUMBERS 8,12,16,20,24 @V407466 00856000
  921. B NODRAIN 8 @V407466 00857000
  922. B DEVOFFL 12 @V407466 00858000
  923. B SHRCHEK 16 @V407466 00859000
  924. B DEVOWND 20 @V407466 00860000
  925. B DEVDEDD 24 @V407466 00861000
  926. B INVOPTS 28 @V407466 00862000
  927. B NOSTOR 32 @V407466 00863000
  928. B INVADD2 36 @V407466 00864000
  929. B INVOLID 40 @V407466 00865000
  930. B NOTLOGD 44 @V407466 00866000
  931. B INVUSID 48 @V407466 00867000
  932. B INVADD1 52 @V407466 00868000
  933. B DALREDY 56 @V407466 00869000
  934. B BAD05 60 @V407466 00870000
  935. B CHANDED 64 @V407466 00871000
  936. B INTREQD 68 DEVICE NOT READY @V407466 00872000
  937. B LABLERR 72 ERROR READING LABEL @V407466 00873000
  938. B NOALLOC 76 ERROR READING ALLOC. RECORD @V407466 00874000
  939. B UNKNOWN2 80 DEVICE DOES NOT EXIST @VA13651 00875000
  940. B DEVSHRD 84 @VA13651 00876000
  941. B INVOPTS2 88 @VA13651 00877000
  942. B INVTYPE 92 @VA13651 00878000
  943. B VDE021A 96 @VA13651 00879000
  944. B VDE022B 100 @VA13651 00880000
  945. B DUPVOL 104 @VA13651 00881000
  946. B WRNGVOL 108 @VA13651 00882000
  947. B MSG076 112 @VA13651 00883000
  948. B MSG151 120 BUSY CONDITION PERSISTS @VA11952 00883100
  949. B MAXDEV 124 @VA13217 00883200
  950. SPACE 2 00884000
  951. *---------------------------------------------------------------------* 00885000
  952. * USERDEV - BUILD STRING FOR DMKERMSG = "TYPE RADDR USERID" * 00886000
  953. *---------------------------------------------------------------------* 00887000
  954. SPACE 2 00888000
  955. USERDEV EQU * @V407466 00889000
  956. BAL R5,GETRTYP GET 'TYPE' IN GPR 3 @V407466 00890000
  957. BAL R5,CVTRADD GET 'RADD' IN GPR 1 @V407466 00891000
  958. MVC ATTUSE(L'VMUSER),CMDUSER USERID TO MESSAGE @V407466 00892000
  959. ST R3,ATTCUU DEVICE 'TYPE' TO MSG @V407466 00893000
  960. ST R1,ATTNO DEVICE 'CUU' TO MSG @V407466 00894000
  961. MVI ATTNO,BIN0 DELIMITER @V407490 00895000
  962. MVI ATTDEL1,BIN0 DELIMITER @V407466 00896000
  963. LA R0,ATTSIZE2 DATA LENGTH @V407466 00897000
  964. BR R6 RETURN @V407466 00898000
  965. SPACE 2 00899000
  966. MSG076 EQU * SET UP MSG DMKVDA076E @VMI2020 00900000
  967. L R2,OPTION76 DMKERMSG OPTIONS @VMI2020 00901000
  968. TM VDABITS,ATTSYST IS IT ATT TO SYSTEM @V60B6B8 00902000
  969. BO ADDCMDU YES, GET VOLID PTR @V60B6B8 00903000
  970. L R1,SAVEWRK5 WORKAREA ADDR @V60B6B8 00904000
  971. LA R1,0(,R1) CLEAR HIGH ORDER BYTE @VA13651 00905000
  972. LA R0,MSGSIZE+MULTSIZE OFFSET IN D-WORDS @V60B6B8 00906000
  973. SLL R0,3 INTO BYTES @V60B6B8 00907000
  974. AR R1,R0 POINT TO VOLID IN WORKAREA @V60B6B8 00908000
  975. B SETPL GET PARM LENGTH @V60B6B8 00909000
  976. ADDCMDU EQU * GET VOLID PTR @V60B6B8 00910000
  977. LA R1,CMDUSER VOLID IF ATT TO SYSTEM @V60B6B8 00911000
  978. SETPL EQU * PARM LENGTH @V60B6B8 00912000
  979. LA R0,VOLIDSIZ VOLSER 6 BYTES LONG @V60B6B8 00913000
  980. B WILLRET AND CALL DMKERMSG @V60B6B8 00914000
  981. DS 0F @V60B6B8 00915000
  982. OPTION76 EQU * @VMI2020 00916000
  983. DC X'80' RETURN FROM ERMSG TO VDA @V60B6B8 00917000
  984. DC C'E' ERROR MESSAGE @V60B6B8 00918000
  985. DC X'004C' MSG ID OF DEC. 76 @VMI2020 00919000
  986. ATTACHED DC CL8'ATTACHED' CONSTANT FOR MESSAGE @VA13651 00920000
  987. VOLSIZE EQU 1 @V60B6B8 00921000
  988. IMSG DC X'80C90097' @VA11952 00921500
  989. EJECT 00922000
  990. LTORG @V407466 00923000
  991. EJECT 00924000
  992. COPY SAVE @V407466 00925000
  993. EJECT 00926000
  994. COPY EQU @V407466 00927000
  995. COPY DEVTYPES @V407466 00928000
  996. PSA @V407466 00929000
  997. COPY RBLOKS @V407466 00930000
  998. COPY IOBLOKS @V407466 00931000
  999. COPY IOER @V407466 00932000
  1000. VDELOK DSECT , DSECT FOR EXPANDED IOBLOK @V407466 00933000
  1001. DS (IOBSIZE)D @V407466 00934000
  1002. VDELCCW DS 7D @V407466 00935000
  1003. * SEEK,TIC/NOP/SEARCH/TIC/READ/SENSE 00936000
  1004. VDELCNT DS 1D SEEK AND SEARCH ARGS @V407466 00937000
  1005. VDELBUF DS 10D 80-BYTE LABEL-RECORD BUFFER @V407466 00938000
  1006. VDELSNS DS CL(IOERSNSZ) SENSE AREA @V407466 00939000
  1007. VDELLEN EQU (*-VDELOK)/8 BLOCK LENGTH IN DBL-WDS @V407466 00940000
  1008. SPACE 00941000
  1009. *----------------------------* 00942000
  1010. * 00943000
  1011. WRK2 DSECT ERROR MESSAGE DSECT @V407466 00944000
  1012. ATTCUU DS CL3 CUU @V407466 00945000
  1013. ATTSIZE1 EQU *-ATTCUU DATA LENGTH @V407466 00946000
  1014. ATTDEL4 DS X DELIMITER @V407466 00947000
  1015. ATTNO DS CL3 NUMBER OF USERS @V407466 00948000
  1016. ATTSIZE5 EQU *-ATTCUU DATA LENGTH @V407466 00949000
  1017. DS X ... @V407466 00950000
  1018. ATTDEL1 DS X DELIMITER @V407466 00951000
  1019. ATTUSE DS CL3 USERID @V407466 00952000
  1020. ATTDEL5 DS X DELIMITER @V407466 00953000
  1021. ATTUSER2 DS CL4 USERID @V407466 00954000
  1022. ATTSIZE2 EQU *-ATTCUU DATA LENGTH @V407466 00955000
  1023. ATTDEL2 DS X DELIMITER @V407466 00956000
  1024. ATTVADDR DS CL3 VADDR @V407466 00957000
  1025. ATTSIZE3 EQU *-ATTCUU DATA LENGTH @V407466 00958000
  1026. MSGSIZE EQU (*-ATTCUU+7)/8 @V407466 00959000
  1027. ORG ATTDEL1 SAVEWRK4 @V407466 00960000
  1028. ATTDEL3 DS X DELIMITER @V407466 00961000
  1029. ATTCHAN DS CL2 CHANNEL @V407466 00962000
  1030. ATTSIZE4 EQU *-ATTCUU DATA LENGTH @V407466 00963000
  1031. ORG ATTCUU @V407466 00964000
  1032. DS CL4 @V407466 00965000
  1033. ATTCON DS CL8 CONSTANT 'ATTACHED' @V407466 00966000
  1034. *----------------------------* 00967000
  1035. * 00968000
  1036. VDABITS EQU SAVEWRK1 FLAGS USED WITHIN VDA @V407466 00969000
  1037. MULTCUU EQU SAVEWRK1+2 NO. MULT. ADDRS IN MSG @V407466 00970000
  1038. DEVADDR EQU SAVEWRK2 REAL/VIRTUAL DEVICE ADDRESS @V407466 00971000
  1039. CMDUSER EQU SAVEWRK3 AND SAVEWRK4 - USERID @V407466 00972000
  1040. VIRTADD EQU SAVEWRK1+2 VIRTUAL DEVICE ADDRESS @V407466 00973000
  1041. SPACE 00974000
  1042. * EQUATES 00975000
  1043. BIN0 EQU X'00' DELIMTER @V407466 00976000
  1044. HEX0F EQU X'0F' @V407466 00977000
  1045. EMSG003 EQU 3 @V407490 00978000
  1046. EMSG006 EQU 6 @V407490 00979000
  1047. EMSG020 EQU 20 @V407490 00980000
  1048. EMSG021 EQU 21 @V407490 00981000
  1049. EMSG022 EQU 22 @V407490 00982000
  1050. EMSG023 EQU 23 @V407490 00983000
  1051. EMSG034 EQU 34 @V407490 00984000
  1052. EMSG040 EQU 40 @V407490 00985000
  1053. EMSG045 EQU 45 @V407490 00986000
  1054. EMSG046 EQU 46 @V407490 00987000
  1055. EMSG120 EQU 120 @V407490 00988000
  1056. EMSG122 EQU 122 @V407490 00989000
  1057. EMSG123 EQU 123 @V407490 00990000
  1058. EMSG124 EQU 124 @V407490 00991000
  1059. EMSG125 EQU 125 @V407490 00992000
  1060. EMSG126 EQU 126 @V407490 00993000
  1061. EMSG127 EQU 127 @V407490 00994000
  1062. EMSG128 EQU 128 @V407490 00995000
  1063. EMSG131 EQU 131 @V407490 00996000
  1064. EMSG133 EQU 133 @V407490 00997000
  1065. EMSG134 EQU 134 @V407490 00998000
  1066. EMSG142 EQU 142 @V407490 00999000
  1067. EMSG143 EQU 143 @V407490 01000000
  1068. EMSG153 EQU 153 @VA13217 01000500
  1069. VOLIDSIZ EQU 6 @V407490 01001000
  1070. VDEXIT EQU 0 BRANCH INDEX FOR RETURN TO VDA @VA13651 01002000
  1071. VDEPROC EQU 4 BRANCH INDEX FOR RETURN TO VDA @VA13651 01003000
  1072. VDEMULT EQU 8 BRANCH INDEX FOR RETURN TO VDA @VA13651 01004000
  1073. VDERESP EQU 12 BRANCH INDEX FOR RETURN TO VDA @VA13651 01005000
  1074. SPACE 01006000
  1075. * 01007000
  1076. * FLAGS DEFINED IN "VDABITS" : 01008000
  1077. * 01009000
  1078. CHANNEL EQU X'80' "CHANNEL" OPTION SPECIFIED @V407466 01010000
  1079. NSYSOP EQU X'40' CALLER IS NOT SYSTEM OPERATOR @V407466 01011000
  1080. MULTR EQU X'20' MULTIPLE RADDR ON COMMAND LINE @V407466 01012000
  1081. ATTSYST EQU X'10' ATTACH/DETACH TO/FROM "SYSTEM" @V407466 01013000
  1082. ATTREAD EQU X'08' ATTACH "R/O" @V407466 01014000
  1083. ATTCTCA EQU X'02' ATTACH REAL CHAN-TO-CHAN ADAPTER @V407466 01015000
  1084. DED2305 EQU X'01' ATTACH/DEDICATE MULTI EXP DEVICE @V407466 01016000
  1085. RANGE EQU X'04' RANGE ON COMMAND LINE @V407466 01017000
  1086. SPACE 01018000
  1087. MDSECT DSECT @V407466 01019000
  1088. MULTADD DS F @V407466 01020000
  1089. DS 47F UP TO 48 CCU ON ONE COMMAND EXEC.@V407466 01021000
  1090. DS 4D @V407466 01022000
  1091. MULTSIZE EQU (*-MULTADD+7)/8 @V407466 01023000
  1092. MSGAREA EQU *-MULTADD @V407466 01024000
  1093. EJECT 01025000
  1094. COPY VMBLOK @V407466 01026000
  1095. COPY UDIRECT @V407466 01027000
  1096. COPY VBLOKS @VA13651 01028000
  1097. DMKVDE CSECT RE-ENTER MAIN CSECT @VA13651 01029000
  1098. END DMKVDE @VA13651 01030000