User Tools

Site Tools


ibm:vm370-lib:cp:dmkvsj.assemble_src

DMKVSJ Source

References

Source Listing

DMKVSJ.ASSEMBLE.txt
  1. VSJ TITLE 'DMKVSJ (CP) VM/370 - RELEASE 6' 00001000
  2. ISEQ 73,80 VALIDATE SERIALIZATION OF INPUT 00002000
  3. *. 00003000
  4. * MODULE NAME - 00004000
  5. * 00005000
  6. * DMKVSJ 00006000
  7. * 00007000
  8. * FUNCTION - 00008000
  9. * 00009000
  10. * TO SIMULATE THE OPERATION OF PRIVILEGED I/O INSTRUCTIONS 00010000
  11. * ISSUED BY VIRTUAL MACHINES (HIO, CLCH) 00011000
  12. * 00012000
  13. * ATTRIBUTES - 00013000
  14. * 00014000
  15. * REENTRANT, RESIDENT, ENTERED VIA GOTO FROM DMKPRVLG FOR THE 00015000
  16. * SIMULATION OF AN INSTRUCTION (HIO, CLCH) 00016000
  17. * 00017000
  18. * ENTRY POINTS - 00018000
  19. * 00019000
  20. * DMKVSJEX - SIMULATE A HIO, CLCH AND SUBROUTINES 00020000
  21. * 00021000
  22. * ENTRY CONDITIONS - 00022000
  23. * 00023000
  24. * FOR DMKVSJEX - 00024000
  25. * GPR11 = ADDRESS OF USER'S VMBLOK 00025000
  26. * GPR12 = DMKVSJEX BASE 00026000
  27. * GPR9 = RETURN SDDRESS IN DMKVSI IF THE ENTRY IS FOR THE 00027000
  28. * GETLOCK SUBROUTINE 00028000
  29. * 00029000
  30. * THE FIELD VMINST IN THE USER'S VMBLOK CONTAINS THE I/O 00030000
  31. * INSTRUCTION TO BE SIMULATED 00031000
  32. * 00032000
  33. * NOTE THAT GPR13 DOES NOT POINT TO A SAVEAREA 00033000
  34. * 00034000
  35. * EXIT CONDITIONS - 00035000
  36. * 00036000
  37. * FOR DMKVSJEX - NORMAL 00037000
  38. * THE CORRECT STATUS AND CONDITION CODES ARE REFLECTED TO THE 00038000
  39. * VIRTUAL MACHINE, AND, IF APPROPRIATE, THE I/O IS STARTED 00039000
  40. * 00040000
  41. EJECT 00041000
  42. * 00042000
  43. * CALLS TO OTHER ROUTINES - 00043000
  44. * 00044000
  45. * DMKFREE - TO OBTAIN FREE STORAGE FOR IOBLOKS 00045000
  46. * DMKIOSQV - TO SCHEDULE THE VIRTUAL OPERATION 00046000
  47. * DMKVCASH - TO SIMULATE A HALT I/O TO A VIRTUAL CTCA 00047000
  48. * DMKSTKIO - TO STACK AN INTERRUPT DUE TO THE COMPLETION OF A 00048000
  49. * VIRTUAL ENABLE CAUSED BY A HIO 00049000
  50. * DMKDSPCH - EXIT VIA GOTO AFTER I/O IS SCHEDULED BY DMKIOSQV 00050000
  51. * DMKTRDSI - TO TRACE AN I/O OPER. (SIO, TIO, HIO, TCH, CLCH) 00051000
  52. * DMKVSCVR - TO VERIFY THAT THE NOTRANS OPTION IS VALID 00052000
  53. * DMKVIOIN - IOB INTERRUPT RETURN ADDRESS (IOBIRA) 00053000
  54. * DMKCCHRF - CALLED TO REFLECT CHANNEL CHECK TO VIRTUAL MACHINE 00054000
  55. * 00055000
  56. * EXTERNAL REFERENCES - 00056000
  57. * 00057000
  58. * NONE 00058000
  59. * 00059000
  60. * TABLES / WORKAREAS - 00060000
  61. * 00061000
  62. * VCHBLOK,VCUBLOK, AND VDEVBLOK ARE REFERENCED AND UPDATED 00062000
  63. * 00063000
  64. * REGISTER USAGE - 00064000
  65. * 00065000
  66. * GPR0 = CONDITION CODE RETURNED FROM DMKSCNVU 00066000
  67. * GPR1 = SCRATCH - OR USED FOR DEDICATED CHANNEL SUPPORT 00067000
  68. * GPR2 = SCRATCH - OR USED FOR DEDICATED CHANNEL SUPPORT 00068000
  69. * GPR3 = ADDRESS OF VBLOK THAT CONTAINS SUBCHANNEL STATUS 00069000
  70. * GPR4 = CSW STATUS TO BE STORED 00070000
  71. * GPR5 = INTERNAL SUBROUTINE LINKAGE 00071000
  72. * GPR6 = VCHBLOK BASE 00072000
  73. * GPR7 = VCUBLOK BASE 00073000
  74. * GPR8 = VDEVBLOK BASE 00074000
  75. * GPR9 = VIRTUAL DEVICE ADDRESS 00075000
  76. * GPR10 = IOBLOK BASE 00076000
  77. * GPR11 = VMBLOK BASE 00077000
  78. * GPR12 = DMKVSJ BASE 00078000
  79. * GPR13 NOT USED 00079000
  80. * GPR14 = EXTERNAL LINKAGE 00080000
  81. * GPR15 = EXTERNAL LINKAGE 00081000
  82. EJECT 00082000
  83. * 00083000
  84. * NOTES - 00084000
  85. * 00085000
  86. * OPERATION - 00086000
  87. * 1. BRANCH TO HANDLE HIO AND CLCH AS DESCRIBED IN 00087000
  88. * SECTIONS A-B RESPECTIVELY. 00088000
  89. * 2. RETURN TO DMKVSI AS NEEDED. 00089000
  90. * . DMKVSICH 00090000
  91. * . R9 FROM GETLOCK SUBROUTINE 00091000
  92. *. 00092000
  93. EJECT 00093000
  94. COPY OPTIONS 00094000
  95. COPY LOCAL OPTIONS 00095000
  96. SPACE 2 00096000
  97. DMKVSJ CSECT 00097000
  98. ENTRY DMKVSJEX @VA12128 00098000
  99. ENTRY DMKVSJHI COUNT OF HIO (9EX0) INSTRUCTIONS @VA12128 00099000
  100. ENTRY DMKVSJHD COUNT OF HDV (9EX1) INSTRUCTIONS @VA12128 00100000
  101. EXTRN DMKVIOMK,DMKVIOXK 00101000
  102. EXTRN DMKVSICH HANDLE CLCH AS TCH @VA12128 00102000
  103. EXTRN DMKSTKDE @VA12128 00103000
  104. EXTRN DMKVIOIN,DMKVSIEX 00104000
  105. EXTRN DMKIOSQV 00105000
  106. EXTRN DMKSTKIO 00106000
  107. EXTRN DMKSCNVU 00107000
  108. EXTRN DMKVCASH @VA12128 00108000
  109. EXTRN DMKCCHRF @V508690 00109000
  110. EXTRN DMKSSSMQ,DMKDSPCH @V60B6B8 00110000
  111. AIF (NOT &TRACE(6)).TRA1 **AIF** 00111000
  112. EXTRN DMKTRDSI @V4M0240 00112000
  113. .TRA1 ANOP 00113000
  114. AIF (NOT &AP).LOKSY4 00114000
  115. EXTRN DMKLOKSY,DMKDSPRU @VA08305 00115000
  116. .LOKSY4 ANOP 00116000
  117. SPACE 2 00117000
  118. USING PSA,R0 00118000
  119. USING VCHBLOK,R6 00119000
  120. EXTRN DMKDSPA @V408246 00120000
  121. EXTRN DMKDSPRQ @V408246 00121000
  122. USING VCUBLOK,R7 00122000
  123. USING VDEVBLOK,R8 00123000
  124. USING IOBLOK,R10 00124000
  125. USING VMBLOK,R11 00125000
  126. USING DMKVSJEX,R12 00126000
  127. EJECT 00127000
  128. DMKVSJEX DS 0D @VA12128 00128000
  129. B VSJBRNCH(R14) GO TO PROPER ROUTINE AS INDEXED @VA12128 00129000
  130. * BY REGISTER 14. R14 WAS LOADED BY DMKVSI 00130000
  131. * WITH THE PROPER INDEX 00131000
  132. SPACE 00132000
  133. VSJBRNCH EQU * TABLE OF ROUTINES FOR DMKVSJ @VA12128 00133000
  134. B VIOCLCH CLCH SIMULATION @VA12128 00134000
  135. B VIOHIO HIO SIMULATION @VA12128 00135000
  136. B STTOTCSW STORE TOTAL CSW @VA12128 00136000
  137. B STORECSW STORE CSW @VA12128 00137000
  138. B VIOEXIT2 GENERAL EXITS @VA12128 00138000
  139. B VIOEXIT EXITS @VA12128 00139000
  140. B VIOEXITX EXITS @VA12128 00140000
  141. B VIOEXITY EXITS @VA12128 00141000
  142. B VIOGODSP GO TO THE DISPATCHER @VA12128 00142000
  143. B GETLOCK GET THE SYSTEM LOCK @VA12128 00143000
  144. B CTCAIOB BUILD IOBLOCK TO SCHEDULE TIO @VA12128 00144000
  145. EJECT 00145000
  146. * 00146000
  147. * A. VIRTUAL CLCH SIMULATION - 00147000
  148. * 00148000
  149. * 1. IF A NECESSARY CONTROL BLOCK WAS NOT FOUND, RETURN VIRTUAL 00149000
  150. * CONDITION CODE 3. 00150000
  151. * 00151000
  152. * 2. IF CHANNEL IS DEDICATED: 00152000
  153. * - ISSUE CLCH INSTRUCTION, 00153000
  154. * - RECORD THE CLCH INFORMATION IN THE NEXT TRACE TABLE 00154000
  155. * ENTRY, 00155000
  156. * - SET C.C. IN VIRTUAL PSW. 00156000
  157. * 00157000
  158. * 3. IF CHANNEL IS NOT DEDICATED, SIMULATE CLCH AS A TCH. 00158000
  159. * (SEE TCH SIMULATION DESCRIPTION ABOVE.) 00159000
  160. * 00160000
  161. VIOCLCH DS 0H @VMD0117 00161000
  162. AL R1,DMKVSJCC ADD CLCH COUNT TO INCREMENT @VA12128 00162000
  163. ST R1,DMKVSJCC STORE CLEAR CHANNEL COUNT @VA12128 00163000
  164. SPM R0 RESTORE COND. CODE FROM DMKSCNVU @VMD0117 00164000
  165. BC 4,VIOEXIT SET CC = 3. (DMKSCNVU RETURNS @VA07864 00165000
  166. * A CC OF 1 WHEN THE VCHBLOK WAS 00166000
  167. * NOT FOUND) 00167000
  168. TM VCHSTAT,VCHDED IS CHANNEL DEDICATED? @VA07864 00168000
  169. BNO CLCHEXIT NO, TREAT CLCH AS A TCH @VA12128 00169000
  170. SWITCH MAKE SURE WE ARE ON I/O PROC @VMV0003 00170000
  171. LH R1,VCHADD GET CHANNEL ADDR - REAL=VIRTUAL @VMV0003 00171000
  172. * CLRCH 0(R1) ISSUE REAL CLRCH INSTRUCTION @VMV0003 00172000
  173. DC X'9F01' ISSUE REAL CLRCH INSTRUCTION @VMV0003 00173000
  174. DC S(0(1)) FOR SPECIFIED CHANNEL @VMV0003 00174000
  175. AIF (NOT &TRACE(9)).NTCLCH1 **AIF** 00175000
  176. BALR R0,0 PRESERVE C.C. FROM CLRCH INSTR. @VMD0117 00176000
  177. CCTRACE DS 0H @VMD0117 00177000
  178. TM TRACFLG2,TRACBEF I/O TRACING ACTIVE? @VMV0003 00178000
  179. BZ CLRCHNOT NO -- RESTORE CC AND RETURN @VMV0003 00179000
  180. TRACE CODE=TRCCLCH,R14,R1,R2 GET A TRACE ENTRY @VMD0117 00180000
  181. STCM R0,8,1(R14) MOVE IN CONDITION CODE @VMD0117 00181000
  182. NI 1(R14),X'30' LEAVE ONLY THE CONDITION CODE @VMD0117 00182000
  183. STH R13,2(0,R14) STORE DEVICE ADDR IN TRACE ENTRY @VMD0117 00183000
  184. ST R11,4(,R14) STORE VMBLOK POINTER @VMD0117 00184000
  185. MVC 8(8,R14),VDEVCSW STORE VIRTUAL CSW @VMD0117 00185000
  186. CLRCHNOT EQU * RESTORE COND CODE, RETURN @VMV0003 00186000
  187. SPM R0 RESTORE COND. CODE FROM CLCH @VMD0117 00187000
  188. .NTCLCH1 ANOP 00188000
  189. BZ VIOEXITX CLCH WAS PERFORMED @VMD0117 00189000
  190. LA R2,X'10' INDICATE CC SHOULD BE SET TO 1 @VMD0117 00190000
  191. BC 4,VIOEXIT CC 1 IS MEANINGLESS FOR A CLCH @VMD0117 00191000
  192. LA R2,X'20' INDICATE CC SHOULD BE SET TO 2 @VMD0117 00192000
  193. BC 2,VIOEXIT CHANNEL IS BUSY @VMD0117 00193000
  194. LA R2,X'30' INDICATE CC SHOULD BE SET TO 3 @VMD0117 00194000
  195. B VIOEXIT CHANNEL IS NOT OPERATIONAL @VMD0117 00195000
  196. SPACE 00196000
  197. CLCHEXIT EQU * 00197000
  198. L R15,=A(DMKVSICH) ADDRESS IN DMKVSI TO GO TO @VA12128 00198000
  199. BR R15 GO TO DMKVSI @VA12128 00199000
  200. EJECT 00200000
  201. *. 00201000
  202. * B. VIRTUAL HIO SIMULATION - 00202000
  203. * 1. IF ALL VBLOKS WERE NOT FOUND, SET VIRTUAL CONDITION 00203000
  204. * CODE = 3 AND EXIT. 00204000
  205. * 3. IF A VIRTUAL CHANNEL END IS PENDING, EXIT WITH CC = 0 00205000
  206. * 4. IF THE CONTROL UNIT OR DEVICE IS BUSY, STORE CSW 00206000
  207. * STATUS OF ZERO, SET CC = 1, AND EXIT. 00207000
  208. * 5. IF THE VIRTUAL CU IS BUSY, STORE SM+BUSY, SET CC = 1, 00208000
  209. * AND EXIT. 00209000
  210. * 6. IF THE VIRTUAL SUBCHANNEL IS MARKED BUSY FOR A NON-TP 00210000
  211. * DEVICE, DO A REAL "HIO" AND RETURN THE CSW STATUS AND 00211000
  212. * COND. CODE TO THE USER; IF THE BUSY DEVICE IS A VIRTUAL 00212000
  213. * ENABLED 270X LINE THAT HAS NOT YET BEEN DIALED, UNCHAIN 00213000
  214. * THE IOBLOK,AND CALL DMKSTKIO TO REFLECT A CE-DE-UE TO 00214000
  215. * THE CALLER. 00215000
  216. * 7. IF THE DEVICE IS A VIRTUAL CTCA, CALL DMKVCASH TO 00216000
  217. * PERFORM THE NECESSARY SIMULATION OF THE HALT I/O. 00217000
  218. * 8. IF THE DEVICE IS A DEDICATED CTCA, BUILD AN IOBLOK 00218000
  219. * AND SCHEDULE A REAL HALT I/O VIA A CALL TO DMKIOSQV. 00219000
  220. * (A REAL HALT I/O MUST BE PERFORMED EVEN IF THE DEVICE IS IDLE 00220000
  221. * SINCE IT IS USED TO TERMINATE THE Y-SIDE CHANNEL PROGRAM.) 00221000
  222. *. 00222000
  223. SPACE 00223000
  224. VIOHIO EQU * 00224000
  225. BAL R9,GETLOCK GO GET THE SYSTEM LOCK @VA08305 00225000
  226. TM VMINST+1,X'01' IS IT HDV? @V2B2638 00226000
  227. BO VIOHDV YUP, BR @V2B2638 00227000
  228. AL R1,DMKVSJHI ADD HIO COUNT TO INCREMENT @VA12128 00228000
  229. ST R1,DMKVSJHI AND RE-STORE @VA12128 00229000
  230. B VIOHIO1 CONTINUE @V2B2638 00230000
  231. SPACE 00231000
  232. VIOHDV AL R1,DMKVSJHD ADD HDV COUNT TO INCREMENT @VA12128 00232000
  233. ST R1,DMKVSJHD AND RE-STORE @VA12128 00233000
  234. SPACE 00234000
  235. VIOHIO1 EQU * HERE WHEN COUNTS ARE BUMPED @V2B2638 00235000
  236. SPM R0 RESTORE COND. CODE FROM DMKSCNVU 00236000
  237. BNZ VIOEXIT EXIT CC = 3 -- DEVICE NOT FOUND @VA01527 00237000
  238. SPACE 00238000
  239. LR R3,R6 POINT TO VCHBLOK 00239000
  240. TM VCHTYPE,VCHSEL SELECTOR CHANNEL? @VA03072 00240000
  241. BNZ HIOCHAN YES --- @VA01771 00241000
  242. LR R3,R7 NO -- POINT TO VCUBLOK 00242000
  243. TM VCUTYPE,VCUSHRD+VCUCTCA SHARED SUB-CHANNEL ? 00243000
  244. BNZ HIOCHAN YES --- @VA01771 00244000
  245. LR R3,R8 NO -- POINT TO VDEVBLOK 00245000
  246. HIOCHAN EQU * TEST FOR SUB-CHANNEL BUSY @VA01771 00246000
  247. TM VCHSTAT-VCHBLOK(R3),VCHBUSY TEST STATUS OF SUBCHANNEL 00247000
  248. BO REALHIO CHANNEL IS BUSY - GO DO REAL HIO 00248000
  249. TM VCHSTAT-VCHBLOK(R3),VCHCEPND IS CHANNEL END PENDING? 00249000
  250. BO VIOEXITX CE PENDING -- EXIT WITH CC = 0 00250000
  251. TM VCUSTAT,VCUBUSY IS THE CU BUSY ?? 00251000
  252. BO VIRHIO YES -- GO DO VIRTUAL HIO 00252000
  253. TM VCUINTS,CUE IS A CUE PENDING ?? 00253000
  254. BO HIOCUE YES -- 00254000
  255. EJECT 00255000
  256. * 00256000
  257. * VIRTUAL HIO TO DEVICE 00257000
  258. * 00258000
  259. VIRHIO SR R5,R5 ZERO STATUS 00259000
  260. CLI VDEVTYPC,CLASSPEC SPECIAL CLASS DEVICE? @VA04040 00260000
  261. BNE STORECSW NOPE - STORE THE CSW @VA04040 00261000
  262. LA R3,IOBHIO IF DEDICATED ADAPTER, THIS IS A HALT I/O 00262000
  263. TM VDEVSTAT,VDEVDED DEDICATED CHANNEL-TO-CHANNEL ? 00263000
  264. BO CTCAIOB YES - BUILD IOBLOK TO SCHEDULE THE 'HIO' 00264000
  265. VCTCHIO EQU * SIMULATE HIO TO VIRTUAL CTCA 00265000
  266. LR R1,R13 CTCA ADDRESS TO R1 00266000
  267. CALL DMKVCASH ... 00267000
  268. BNZ STORECSW CC NON-ZERO => CSW STORED 00268000
  269. B VIOEXITX EXIT WITH CC = 0 00269000
  270. SPACE 00270000
  271. HIOCUE EQU * HERE IF CUE IS PENDING 00271000
  272. TM VDEVSTAT,VDEVCUE IS IT FOR THE ADDRESSED DEVICE 00272000
  273. BO VIRHIO YES -- DO VIRTUAL HIO 00273000
  274. L R5,=A(256*(SM+BUSY)) CAN'T DO HIO IF CU OCCUPIED 00274000
  275. B STORECSW STORE AND EXIT 00275000
  276. SPACE 00276000
  277. REALHIO EQU * HERE TO DO A REAL HIO 00277000
  278. TM VDEVTYPC,CLASTERM+CLASSPEC IS IT A LINE OR A CTCA ? 00278000
  279. BZ HIO NO -- DO REAL HIO 00279000
  280. TM VDEVSTAT,VDEVDED IS IT A DEDICATED LINE ?? 00280000
  281. BO HIO YES - DO HIO 00281000
  282. CLI VDEVTYPC,CLASTERM IS THIS A DIALED LINE ? 00282000
  283. BE DIALHIO YES - SIMULATE HIO 00283000
  284. CLI VDEVTYPE,TYPCTCA IS THIS VIRTUAL CTCA ? 00284000
  285. BE VCTCHIO YES -- SIMULATE HIO 00285000
  286. B HIO OTHERWISE, DO REAL HIO 00286000
  287. SPACE 00287000
  288. DIALHIO EQU * SIMULATE HIO FOR DIALED LINES 00288000
  289. SLR R5,R5 SET CSW STATUS ZERO @VA01527 00289000
  290. TM VDEVFLAG,VDEVENAB ENABLED NOW? @VA01527 00290000
  291. BZ STORECSW N0...GIVE CC=1 @VA01527 00291000
  292. TM VDEVFLAG,VDEVDIAL IN DIAL PROCESS NOW? @VA01527 00292000
  293. BO VIOEXITX YES....EXIT CC=0 @VA01527 00293000
  294. NI VDEVFLAG,255-VDEVENAB HAS BEEN HALTED @VA01527 00294000
  295. L R10,VDEVIOB R10 = ENABLE IOBLOK @VA01527 00295000
  296. L R1,IOBRCAW ADDRESS OF ENABLE CCW @VA01527 00296000
  297. MVC IOBCSW+6(2),6(R1) RESIDUAL COUNT @VA01527 00297000
  298. LA R1,8(0,R1) THE ONE THAT WAS ACTIVE @VA01527 00298000
  299. ICM R1,8,IOBRCAW RESTORE CAW KEY @VA01527 00299000
  300. ST R1,IOBCSW SET AS CSW ADDRESS @VA01527 00300000
  301. LA R1,(CE+DE+UE)*256 CSW STATUS @VA01527 00301000
  302. STH R1,IOBCSW+4 . . . @VA01527 00302000
  303. CALL DMKSTKIO @VA01527 00303000
  304. B STORECSW GIVE CC=1 TO HIO @VA01527 00304000
  305. EJECT 00305000
  306. HIO EQU * HERE TO DO REAL LIVE HIO 00306000
  307. SWITCH MAKE SURE WE ARE ON THE IO PROCESSOR @V4075A0 00307000
  308. L R3,VDEVREAL GET POINTER TO REAL DEVICE BLOK 00308000
  309. LTR R3,R3 ANY RDEVBLOK ? @VA13707 00308100
  310. BZ VIOEXITX EXIT, NO NEED TO PERFORM HDV @VA13707 00308200
  311. L R10,RDEVAIOB-RDEVBLOK(R3) GET POINTER TO ACTIVE IOBLOK 00309000
  312. LTR R10,R10 IS THERE ONE ?? 00310000
  313. BZ VIOEXITX NO -- 00311000
  314. CL R10,VDEVIOB IS IT THE CURRENT OPERATION? @VA03436 00312000
  315. BNE VIOEXITX NO--EXIT @VA03436 00313000
  316. LH R1,VCHADD GET CHANNEL ADDRESS 00314000
  317. SRL R1,7 TIMES 2 00315000
  318. L R15,=A(DMKVIOXK) ADDRESS THE MASK TABLE @VA05037 00316000
  319. LH R1,0(R1,R15) PICK UP "TURN-OFF" MASK @VA05037 00317000
  320. N R1,VMIOACTV-2 TURN OFF PREVIOUSLY ACTIVE CHANNEL 00318000
  321. STH R1,VMIOACTV ... 00319000
  322. TM VCHTYPE,VCHBMX BMX CHANNEL? @VA03150 00320000
  323. BNO *+8 NO, SKIP CALL TO SCAN @VA03150 00321000
  324. BAL R14,SCANALL ANYTHING ELSE GOING ON ? @VA03150 00322000
  325. LH R5,IOBRADD GET REAL DEVICE ADDRESS 00323000
  326. HDV 0(R5) HALT THE I/O @VA03436 00324000
  327. AIF (NOT &TRACE(9)).NTR1 @VA03431 00325000
  328. BAL R15,HIOTRACE TRACE HALT I/O @VA03431 00326000
  329. DC X'0F00' TRACE ENTRY FLAG @VA03431 00327000
  330. .NTR1 ANOP 00328000
  331. BZ VIOEXITX CC = 0, INTERRUPT PENDING 00329000
  332. BC 4,HIOSTCSW CC = 1, CSW STORED 00330000
  333. LA R2,X'20' SET CC = 2 00331000
  334. BC 2,VIOEXIT2 IT WAS CONDITION CODE 2 EXIT @VA10542 00332000
  335. LA R2,X'30' SET CC 3 00333000
  336. B VIOEXIT AND LEAVE 00334000
  337. SPACE 00335000
  338. HIOSTCSW EQU * HERE WHEN CSW IS STORED BY REAL HIO 00336000
  339. CLC CSW+4(2),ZEROES HALT DEVICE CC=1 STATUS=0 @VA10542 00337000
  340. BNE HIONZSTA NO BRANCH @VA10542 00338000
  341. NI VDEVSTAT,255-VDEVCHBS RESET CHANNEL BUSY @VA10542 00339000
  342. HIONZSTA EQU * @VA10542 00340000
  343. LH R5,CSW+4 GET STATUS FROM REAL CSW 00341000
  344. B STORECSW AND GO STORE IN VIRTUAL CSW 00342000
  345. EJECT 00343000
  346. CTCAIOB EQU * @VA08496 00344000
  347. OI VMRSTAT,VMIOWAIT PUT VIRTUAL MACHINE IN IOWAIT @VA08496 00345000
  348. LA R0,IOBSIZE GET FREE STORAGE FOR AN IOBLOK 00346000
  349. CALL DMKFREE ... 00347000
  350. LR R10,R1 ADDRESS VIA GR10 00348000
  351. USING IOBLOK,R10 00349000
  352. XC IOBLOK(IOBSIZE*8),IOBLOK CLEAR ENTIRE BLOCK 00350000
  353. * (NOTE: "IOBLINK" FILLED IN BY DMKIOSQV) 00351000
  354. STH R13,IOBVADD SET VIRTUAL DEVICE ADDRESS 00352000
  355. L R1,=A(DMKVIOIN) SET INTERRUPT RETURN 00353000
  356. ST R1,IOBIRA ... 00354000
  357. ST R10,VDEVIOB SAVE ACTIVE IOBLOK ADDRESS 00355000
  358. STC R3,IOBSPEC SET 'IOBTIO' OR 'IOBHIO' FLAG 00356000
  359. OI VDEVSTAT,VDEVBUSY MARK THE DEVICE TEMPORARILY BUSY 00357000
  360. CALL DMKIOSQV SCHEDULE THE TEST I/O OR HALT I/O 00358000
  361. B VIOEXITY EXIT - NO TRACING YET 00359000
  362. SPACE 1 00360000
  363. * CHECK FOR HALT I/O TRACE TABLE ENTRY 00361000
  364. AIF (NOT &TRACE(9)).NTR2 @VA03431 00362000
  365. HIOTRACE EQU * CP TRACE TABLE ENTRY FOR HIO @VA03431 00363000
  366. TM TRACFLG2,TRACBEF I/O TRACING ACTIVE? @VA03431 00364000
  367. BZ HIONOTRC NO -- RESTORE CC AND RETURN @VA03431 00365000
  368. TRACE CODE=TRCHALT,R14,R1,R2 @V4075A0 00366000
  369. STCM R15,8,1(R14) MOVE IN COND CODE @VA03431 00367000
  370. NI 1(R14),X'30' . . . AND ONLY THE COND CODE @VA03431 00368000
  371. STH R5,2(0,R14) SAVE THE REAL DEVICE ADDRESS @VA03431 00369000
  372. ST R10,4(0,R14) IOBLOK ADDRESS, IF ANY @VA03431 00370000
  373. MVC 8(4,R14),CAW CHANNEL ADDRESS WORD @VA03431 00371000
  374. XC 12(4,R14),12(R14) CLEAR LAST WORD @VA03431 00372000
  375. CLI 1(R14),X'10' CONDITION CODE ONE? @VA03431 00373000
  376. BNE *+10 NO -- DO NOT MOVE IN CSW @VA03431 00374000
  377. MVC 12(4,R14),CSW+4 MOVE IN CSW STATUS @VA03431 00375000
  378. HIONOTRC EQU * RESTORE COND CODE, RETURN @VA03431 00376000
  379. SPM R15 RESET COND CODE @VA03431 00377000
  380. B 2(0,R15) SKIP OVER TRACE FLAG ON RETURN @VA03431 00378000
  381. .NTR2 ANOP 00379000
  382. EJECT 00380000
  383. SCANALL STM R7,R8,TEMPSAVE SAVE THESE REGS @VA03150 00381000
  384. NI VCUSTAT,255-VCUACTV RESET CU ACTIVE FLAG @VA03150 00382000
  385. LA R4,2 LOAD INDEX INCREMENT @VA03150 00383000
  386. LA R5,30 LOAD INDEX COMPARAND VALUE @VA03150 00384000
  387. SR R3,R3 ZERO VCUDVTBL INDEX @VA03150 00385000
  388. RESNDV LH R8,VCUDVTBL(R3) LOAD NEXT VDEVBLOK INDEX @VA03150 00386000
  389. LTR R8,R8 DOES DEVICE EXIST ? @VA03150 00387000
  390. BM RESXDV NO, INDEX TO NEXT ONE @VA03150 00388000
  391. A R8,VMDVSTRT POINT TO VDEVBLOK @VA03150 00389000
  392. TM VDEVSTAT,VDEVBUSY IS DEVICE BUSY ? @VA03150 00390000
  393. BNO RESXDV NO, INDEX TO NEXT ONE @VA03150 00391000
  394. TM VDEVTYPC,CLASTERM IS THIS A TERMINAL? @VA03150 00392000
  395. BO RESXDV YES, SKIP IT AND CHECK NEXT DEV @VA03150 00393000
  396. OI VCUSTAT,VCUACTV C U STILL ACTIVE THEN @VA03150 00394000
  397. REACTIVE LH R1,VCHADD GET CHANNEL ADDRESS @VA03150 00395000
  398. SRL R1,7 TIMES 2 @VA03150 00396000
  399. L R15,=A(DMKVIOMK) ADDRESS THE MASK TABLE @VA05037 00397000
  400. LH R1,0(R1,R15) PICK UP "TURN-ON" MASK @VA05037 00398000
  401. O R1,VMIOACTV-2 ADD IT BACK @VA03150 00399000
  402. STH R1,VMIOACTV CHANNEL STILL ACTIVE @VA03150 00400000
  403. LM R7,R8,TEMPSAVE RESTORE REGS @VA03150 00401000
  404. SR R4,R4 CLEAR REG BEFORE RETURN @VA07336 00402000
  405. BR R14 RETURN @VA03150 00403000
  406. RESNCU LH R7,VCHCUTBL(R2) LOAD NEXT VCUBLOK INDEX @VA03150 00404000
  407. LTR R7,R7 DOES C U EXIST ? @VA03150 00405000
  408. BM RESXCU NO - GET NEXT ONE @VA03150 00406000
  409. A R7,VMCUSTRT POINT TO VCUBLOK @VA03150 00407000
  410. TM VCUSTAT,VCUACTV IS C U ACTIVE ? @VA03150 00408000
  411. BO REACTIVE RESET CHANNEL ACTIVE @VA03150 00409000
  412. B RESXCU CONTINUE WITH NEXT CU @VA03150 00410000
  413. RESXDV BXLE R3,R4,RESNDV BRANCH IF MORE DEVICES ON C U @VA03150 00411000
  414. SR R2,R2 ZERO VCHCUTBL INDEX @VA03150 00412000
  415. RESXCU BXLE R2,R4,RESNCU BRANCH IF MORE CONTROL UNITS @VA03150 00413000
  416. LM R7,R8,TEMPSAVE RESTORE REGS @VA03150 00414000
  417. SR R4,R4 CLEAR REG BEFORE RETURN @VA07336 00415000
  418. BR R14 RETURN @VA03150 00416000
  419. EJECT 00417000
  420. STTOTCSW EQU * HERE TO STORE CSW @VA05104 00418000
  421. LA R1,CSW GET VIRTUAL ADDRESS @VA05104 00419000
  422. SL R6,VMCHSTRT CHAN DISPOSITION @VA05104 00420000
  423. SL R7,VMCUSTRT CU DISPOSITION @VA05104 00421000
  424. SL R8,VMDVSTRT DEV DISPOSITION @VA05104 00422000
  425. TRANS 2,1,OPT=(BRING,DEFER) @VA05104 00423000
  426. AL R6,VMCHSTRT RESTORE CHAN ADDRESS @VA05104 00424000
  427. AL R7,VMCUSTRT RESTORE CU ADDRESS @VA05104 00425000
  428. AL R8,VMDVSTRT RESTORE DEV ADDRESS @VA05104 00426000
  429. SLL R5,16 MOVE CSW STATUS @VA05104 00427000
  430. B STCSW GO STORE TOTAL CSW @VA05104 00428000
  431. EJECT 00429000
  432. STORECSW EQU * HERE TO STORE THE CSW 00430000
  433. LA R1,CSW GET VIRTUAL ADDRESS 00431000
  434. SL R6,VMCHSTRT CHAN. DISP @VA01770 00432000
  435. SL R7,VMCUSTRT CU DISP @VA01770 00433000
  436. SL R8,VMDVSTRT DEV DISP @VA01770 00434000
  437. TRANS 2,1,OPT=(BRING,DEFER) GET USER PAGE 0 00435000
  438. AL R6,VMCHSTRT RESTORE CHAN ADDR @VA01770 00436000
  439. AL R7,VMCUSTRT RESTORE CU ADDR @VA01770 00437000
  440. AL R8,VMDVSTRT RESTORE DEV ADDR @VA01770 00438000
  441. STH R5,4(,R2) STORE STATUS -- 00439000
  442. LTR R4,R4 SAVE ENTIRE CSW ?? 00440000
  443. BZ *+8 NO -- 00441000
  444. STCSW STM R4,R5,0(R2) STORE THE WHOLE THING @VA05104 00442000
  445. TM 5(R2),CDC+CCC+IFCC ANY CHANNEL ERRORS ? @V508690 00443000
  446. BZ NOCHAN NO, CONTINUE NORMAL PROCESSING @V508690 00444000
  447. ICM R1,15,VDEVIOER GET ADDRESS OF IOERBLOK @V508690 00445000
  448. BZ NOCHAN NO IOERBLOK, FORGET IT @V508690 00446000
  449. CALL DMKCCHRF REFLECT CHANNEL ERROR TO VIRT. @V508690 00447000
  450. * MACH. 00448000
  451. NOCHAN EQU * @V508690 00449000
  452. AIF (NOT &TRACE(9)).TR1 **AIF** 00450000
  453. TM TRACFLG2,TRAC0D TRACING ACTIVE? 00451000
  454. BZ NOTRAC1 BRANCH IF NOT 00452000
  455. TRACE CODE=TRCCSW,R15,R14,R3 @V4075A0 00453000
  456. MVC 1(1,R15),VMINST SAVE OPCODE OF IO INST. 00454000
  457. STH R13,2(,R15) SAVE VIRTUAL DEVICE ADDRESS 00455000
  458. ST R11,4(,R15) SAVE VMBLOK ADDRESS 00456000
  459. MVC 8(8,R15),0(R2) SAVE CSW 00457000
  460. NOTRAC1 EQU * 00458000
  461. .TR1 ANOP 00459000
  462. LA R2,X'10' SET CONDITION CODE ONE 00460000
  463. SPACE 00461000
  464. CLM R2,B'1100',VDEVINTS LAST INTERRUPT CLEARED ? 00462000
  465. BNE VIOEXIT NO -- 00463000
  466. LH R3,VDEVADD GET DEVICE ADDRESS (0-F) 00464000
  467. AR R3,R3 MULTIPLY BY 2 00465000
  468. L R15,=A(DMKVIOXK) ADDRESS THE UNFLAG TABLE @VA05037 00466000
  469. LA R3,0(R3,R15) POINT TO UNFLAGGING MASK @VA05037 00467000
  470. NC VCUDVINT,0(R3) UNFLAG INTERRUPTING DEVICE @VA01232 00468000
  471. BNZ VIOEXIT MORE PENDING IN THE C.U. 00469000
  472. LH R3,VCUADD GET CONTROL UNIT ADDRESS (00-F0) 00470000
  473. SRL R3,3 TIMES 2 00471000
  474. LA R3,0(R3,R15) POINT TO UNFLAGGING MASK @VA05037 00472000
  475. NC VCHCUINT,0(R3) UNFLAG INTERRUPTING C.U. @VA01232 00473000
  476. BNZ VIOEXIT MORE PENDING IN THE CHANNEL 00474000
  477. LH R3,VCHADD GET CHANNEL ADDRESS (000-600) 00475000
  478. SRL R3,7 TIMES 2 00476000
  479. LA R3,0(R3,R15) POINT TO MASK ENTRY @VA05037 00477000
  480. NC VMIOINT,0(R3) UNFLAG PENDING CHANNEL @VA07503 00478000
  481. BNZ VIOEXIT MORE INTERRUPTS PENDING 00479000
  482. SPACE 00480000
  483. NI VMPEND,X'FF'-VMIOPND UNFLAG SUMMARY PENDING BIT 00481000
  484. B VIOEXIT @VA10542 00482000
  485. SPACE 3 00483000
  486. * 00484000
  487. * EXITS FROM DMKVSJEX 00485000
  488. * 00486000
  489. SPACE 3 00487000
  490. VIOEXIT2 NI VDEVSTAT,255-VDEVCHBS RESET CHANNEL BUSY @VA10542 00488000
  491. VIOEXIT EQU * 00489000
  492. * 00490000
  493. * TEST FOR A CONDITION CODE 3. IF FOUND, GO TO TEST 00491000
  494. * FOR THE SITUATION WHERE A VIRTUAL DEVICE IS 00492000
  495. * NOT YET DEFINED BECAUSE AN MSS MOUNT IS IN 00493000
  496. * PROCESS 00494000
  497. * 00495000
  498. LA R0,CC3 CONDITION CODE 3 @V60B6B8 00496000
  499. CR R0,R2 @V60B6B8 00497000
  500. BE CHKMOUNT VIRT DEV NOT AVAIL, TEST FOR @V60B6B8 00498000
  501. * MSS MOUNT 00499000
  502. TESTEC EQU * @V60B6B8 00500000
  503. TM VMESTAT,VMEXTCM EXTENDED CONTROL MACHINE ?? 00501000
  504. BZ VIOSETC NO -- 00502000
  505. EX R2,SETECC SET EC-MODE PSW CC 00503000
  506. B VIOEXITX AND LEAVE 00504000
  507. VIOSETC EQU * 00505000
  508. EX R2,SETCC SET CONDITION CODE 00506000
  509. SPACE 2 00507000
  510. VIOEXITX EQU * FINISHED WITH SIMULATION 00508000
  511. AIF (NOT &TRACE(6)).TRA3 **AIF** 00509000
  512. TM VMTRCTL,VMTRSIO V.M. SIO TRACING WANTED ? 00510000
  513. BZ VIOEXITY NOT TODAY. 00511000
  514. SLR R10,R10 YES - SIGNAL NO IOBLOK TO BE USED, 00512000
  515. LR R1,R13 VIRTUAL ADDRESS INTO R1 PLEASE 00513000
  516. BAL R9,GETLOCK GET THE SYSTEM LOCK @VA09727 00514000
  517. CALL DMKTRDSI CALL TRACE RTN SIO ENTRY POINT @V4M0240 00515000
  518. .TRA3 ANOP 00516000
  519. SPACE 00517000
  520. VIOEXITY EQU * CONTINUE: 00518000
  521. TM VMDSTAT,VMTIO VM IN TIO OR SIO BUSY LOOP ?? 00519000
  522. BNO VIONWAIT NO- LEAVE DISPATCHABLE 00520000
  523. CLI VDEVTYPC,CLASTERM SLOW SPEED TERMINAL DEVICE 00521000
  524. BNE VIOGODSP NO- LEAVE NON-DISPATCHABLE 00522000
  525. OI VMRSTAT,VMIDLE YES- DROP THE TERMINAL USER FROM Q 00523000
  526. B VIOGODSP AND LEAVE NON-DISPATCHABLE 00524000
  527. SPACE 00525000
  528. VIONWAIT NI VMRSTAT,X'FF'-VMEXWAIT TAKE OUT OF SIMULATION WAIT 00526000
  529. AIF (NOT &AP).APCHK5 00527000
  530. TM APSTAT1,APUOPER RUNNING AN AP SYSTEM? @VA08305 00528000
  531. BNO FASTDSP NO, FAST DISPATCH @VA08305 00529000
  532. L R15,=A(DMKLOKSY+2) POINT AT SYSTEM LOCK @VA08305 00530000
  533. CLC LPUADDR,0(R15) IS THE LOCK ALREADY HELD @VA08305 00531000
  534. BNE FASTDSP NO, CANNOT EXIT TO MAIN @VA08305 00532000
  535. L R15,PREFIXB ACCESS OTHER PSA @VA09257 00533000
  536. TM XCPEND-PSA(R15),XCDISP DISPATCH PENDING? @VA09257 00534000
  537. BZ CKRQ NO DISPATCH PENDING. @VA09257 00535000
  538. LOCK RELEASE,TYPE=SYS YES,RELEASE GLOBAL LOCK. @VA09257 00536000
  539. B FASTDSP FAST REDISPATCH @VA09257 00537000
  540. SPACE 00538000
  541. CKRQ DS 0H @VA09257 00539000
  542. L R15,=A(DMKDSPRQ) STACKED REQUEST BLOCK POINTER @V408246 00540000
  543. C R15,IOBFPNT-IOBLOK(,R15) ANY PRESENTS WAITING @V408246 00541000
  544. * FROM IOS? 00542000
  545. BNE VIOGODSP YES, BETTER CHECK ON THEM @V408246 00543000
  546. .APCHK5 ANOP 00544000
  547. SPACE 00545000
  548. FASTDSP GOTO DMKDSPA FAST RESTART @VA08305 00546000
  549. SPACE 00547000
  550. VIOGODSP EQU * 00548000
  551. GOTO DMKDSPCH AND TO TO DISPATCH 00549000
  552. EJECT 00550000
  553. * 00551000
  554. * SUBROUTINE USED BY DMKVSI AND DMKVSJ 00552000
  555. * EXIT FROM THE ROUTINE IS ON REG 9 00553000
  556. * 00554000
  557. GETLOCK EQU * TEST IF LOCK ALREADY HELD @VA08305 00555000
  558. AIF (NOT &AP).APCHK6 00556000
  559. TM APSTAT1,APUOPER IS THIS AN AP SYSTEM? @VA08305 00557000
  560. BNOR R9 NO, RETURN TO CALLER @VA08305 00558000
  561. L R15,=A(DMKLOKSY) GET ADDRESS OF SYSTEM LOCK @VA08305 00559000
  562. L R15,0(R15) PICK UP THE LOCK WORD @VA08305 00560000
  563. LH R14,LPUADDR AND PROCESSOR ID @VA08305 00561000
  564. CR R14,R15 IS THE SYSTEM LOCK HELD? @VA08305 00562000
  565. BCR 8,R9 YES,LOCK HELD @VA08305 00563000
  566. LTR R15,R15 IS THE LOCK AVAILABLE @VA08305 00564000
  567. BNZ DEFEREX NO, DON'T WASTE TIME TRYING @VA08305 00565000
  568. LOCK OBTAIN,TYPE=SYS,SPIN=NO,SAVE @VA08305 00566000
  569. BCR 8,R9 GOT THE LOCK, RETURN TO CALLER @VA08305 00567000
  570. DEFEREX L R15,VMDFTPNT LOCK NOT OBTAINABLE.... @VA08305 00568000
  571. USING CPEXBLOK,R15 GET DEFERRED EXECUTION-BLOCK, @VA08305 00569000
  572. STM R0,R14,CPEXREGS SAVE CALLERS REGS @VA08305 00570000
  573. LA R14,LOCKRTN GET ADDR OF EXECUTION RETURN PT @VA08305 00571000
  574. ST R14,CPEXADD AND EXECUTION RETURN POINT @VA08305 00572000
  575. DROP R15 IS IN REG 14 @VA08305 00573000
  576. LR R1,R15 AND DEFER EXECUTION OF @VA08305 00574000
  577. CALL DMKSTKDE @VA08305 00575000
  578. GOTO DMKDSPRU @VA08305 00576000
  579. LOCKRTN DS 0H DEFERRED EXECUTION RETURN POINT @VA08305 00577000
  580. LCTL C1,C1,VMSEG RELOAD CONTROL REG 1 AFTER DEFER @VA08305 00578000
  581. .APCHK6 ANOP 00579000
  582. BR R9 RETURN TO CALLER @VA08305 00580000
  583. SPACE 2 00581000
  584. SETCC OI VMPSW+4,0 EXECUTED TO SET CONDITION CODE 00582000
  585. SETECC OI VMPSW+2,0 EXECUTED TO SET CC IN EC-MODE PSW 00583000
  586. CC3 EQU X'30' CONDITION CODE 3 @V60B6B8 00584000
  587. EJECT 00585000
  588. CHKMOUNT EQU * @V60B6B8 00586000
  589. * 00587000
  590. * AT THIS POINT WE ARE ABOUT TO RETURN TO THE CALLER 00588000
  591. * WITH A CONDITION CODE 3 (DEVICE NOT AVAILABLE). 00589000
  592. * IF THE MSS IS IN THE SYSTEM, THE DEVICE MAY 00590000
  593. * BE "NOT AVAILABLE" BECAUSE AN MSS MOUNT IS IN 00591000
  594. * PROCESS. IF THAT IS THE CASE, STACK THIS VIRTUAL 00592000
  595. * REQUEST UNTIL THE MOUNT COMPLETES. 00593000
  596. * 00594000
  597. TM PSAMSS,MSSPRES IS THE MSS IN THIS SYSTEM @V60B6B8 00595000
  598. BZ TESTEC NO, STANDARD RETURN @V60B6B8 00596000
  599. L R3,=V(DMKSSSMQ) WAIT Q FOR MSS MOUNTS @V60B6B8 00597000
  600. L R3,0(R3) PICK UP ACTUAL QUEUE @V60B6B8 00598000
  601. USING OSVSCOM,R3 ASSEMBLER ADDRESSABILITY @V60B6B8 00599000
  602. TESTCOM EQU * IS THERE A MSSCOM BLOCK @V60B6B8 00600000
  603. LTR R3,R3 IS THE CHAIN PTR 0 @V60B6B8 00601000
  604. BZ TESTEC YES, WERE NOT WAITING ON MSS @V60B6B8 00602000
  605. CLC VMUSER(VMUSERL),MSSUSER ARE WE WAITING @V60B6B8 00603000
  606. BNE NXTCOM NOT ON THIS BLOCK @V60B6B8 00604000
  607. L R4,MSSTASK1 TASK THAT IS WAITING @V60B6B8 00605000
  608. CH R13,CPEXMISC-CPEXBLOK(R4) VIRT DEV WAITING @V60B6B8 00606000
  609. BNE NXTCOM THIS VIRT DEV NOT WAITING @V60B6B8 00607000
  610. LA R0,CPEXSIZE SIZE OF A CPEXBLOK @V60B6B8 00608000
  611. CALL DMKFREE GET DYNAMIC STORAGE @V60B6B8 00609000
  612. USING CPEXBLOK,R1 @V60B6B8 00610000
  613. ST R1,MSSTASK3 @VMI2006 00611000
  614. STM R0,R15,CPEXREGS SAVE REGS FOR LATER DISPATCH @V60B6B8 00612000
  615. L R0,=A(DMKVSIEX) REDISPATCH ADDRESS @VA12128 00613000
  616. ST R0,CPEXADD FIELD FOR DISPATCHER LATER @V60B6B8 00614000
  617. ST R0,CPEXR12 FIELD FOR DMKVSI BASE LATER @VA12128 00615000
  618. ST R13,CPEXMISC SAVE VADDR WHICH IS WAITING @V60B6B8 00616000
  619. GOTO DMKDSPCH WAIT FOR THE MSS @V60B6B8 00617000
  620. DROP R1 @V60B6B8 00618000
  621. NXTCOM EQU * GET NEXT MSSCOM BLOCK @V60B6B8 00619000
  622. L R3,MSSNEXT CHAIN PTR @V60B6B8 00620000
  623. B TESTCOM SEE IF THERE IS ONE @V60B6B8 00621000
  624. DROP R3 @V60B6B8 00622000
  625. VMUSERL EQU 8 LENGTH OF VMUSER FIELD @V60B6B8 00623000
  626. EJECT 00624000
  627. DMKVSJHI DC F'0' COUNT OF VIRT. HIO'S @VA12128 00625000
  628. DMKVSJHD DC F'0' COUNT OF VIRT. HDV'S @VA12128 00626000
  629. DMKVSJCC DC F'0' COUNT OF VIRTUAL CLCH'S @VA12128 00627000
  630. SPACE 00628000
  631. LTORG 00629000
  632. EJECT 00630000
  633. COPY VBLOKS @VA04320 00631000
  634. OSVSCOM MSSCOM @V60B6B8 00632000
  635. COPY VCTCA @VA04320 00633000
  636. COPY RBLOKS @VA04320 00634000
  637. COPY VMBLOK @VA04320 00635000
  638. COPY TREXT @VA04320 00636000
  639. COPY IOBLOKS @VA04320 00637000
  640. COPY IOER @VA04320 00638000
  641. PSA @VA04320 00639000
  642. COPY DEVTYPES @VA04320 00640000
  643. COPY EQU @VA04320 00641000
  644. COPY SAVE @VA08305 00642000
  645. END DMKVSJ @VA04320 00643000
ibm/vm370-lib/cp/dmkvsj.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator