Table of Contents

DMMIOB Source

References

Source Listing

DMMIOB.ASSEMBLE.txt
  1. IOB TITLE 'DMMIOB (IPCS) VM/370 - RELEASE 6' 00001000
  2. * 00002000
  3. * 00003000
  4. * MODULE NAME: 00004000
  5. * DMMIOB SUBROUTINE OF DUMPSCAN 00005000
  6. * 00006000
  7. * FUNCTION: 00007000
  8. * DISPLAYS IO BLOCKS 00008000
  9. * 00009000
  10. * ATTRIBUTES: 00010000
  11. * REUSABLE 00011000
  12. * NON-REENTRANT 00012000
  13. * 00013000
  14. * ENTRY POINTS: 00014000
  15. * DMMIOB 00015000
  16. * 00016000
  17. * ENTRY CONDITIONS: 00017000
  18. * R2 POINTS TO THE PLIST WITH THE TOKENIZED INPUT 00018000
  19. * 00019000
  20. * EXIT CONDITIONS: 00020000
  21. * RETURN CODE IN R15 0 - GOOD 00021000
  22. * 4 - WARNING 00022000
  23. * 8 - FATAL 00023000
  24. * 00024000
  25. * CALLS TO OTHER ROUTINES: 00025000
  26. * DMMGET TO FETCH DATA INTO CORE 00026000
  27. * DMMHEX TO CONVERT EBCDIC TO HEX 00027000
  28. * 00028000
  29. * EXTERNAL REFERENCES: 00029000
  30. * 00030000
  31. * TABLES/WORKAREAS: 00031000
  32. * 00032000
  33. * REGISTER USAGE: 00033000
  34. * R15 ADDRESSES OF EXTERNAL ROUTINES 00034000
  35. * R14 RETURNS FROM EXTERNAL ROUTINES 00035000
  36. * R13 SAVE AREA ADDRESS 00036000
  37. * R12 BASE 00037000
  38. * R11 VMBLOK ADDRESS FOR EXTRACT 00038000
  39. * R10 INTERNAL LINKS 00039000
  40. * R9-R2 WORK REGISTERS 00040000
  41. * 00041000
  42. * OPERATION: 00042000
  43. * THE PLIST ADDRESS IS PASSED IN R2. THE PLIST 00043000
  44. * CONTAINS THE SUBCOMMAND, ONE OF :- 00044000
  45. * RIO CUU 00045000
  46. * VIO CUU USERID 00046000
  47. * VIO CUU 00047000
  48. * THE CHANNEL, CONTROL UNIT AND DEVICE BLOKS 00048000
  49. * ARE SCANNED, AND THE CONTENST OF THE APPROPRIATE 00049000
  50. * BLOCKS ARE DISPLAYED. IF NO USERID IS ENTERED 00050000
  51. * FOR A VIRTUAL DEVICE, THE DEFAULT IS 'OPERATOR', 00051000
  52. * OR THE LAST USERID ENTERED. 00052000
  53. * 00053000
  54. * ERROR MESSAGES: 00054000
  55. * DMMIOB712I 'CUU' ADDRESS NOT FOUND 00055000
  56. * DMMIOB713I USER 'USERID' VMBLOK NOT FOUND 00056000
  57. * 00057000
  58. * * * * * * * *------- -------- -------- -------- ------* 00058000
  59. DMMIOB CSECT @VA04250 00059000
  60. EXTRN DMMGET BRING DATA INTO CORE @VA04250 00060000
  61. EXTRN DMMINT HEX TO EBCDIC @VA04250 00061000
  62. EXTRN DMMHEX EBCDIC TO HEX @VA04250 00062000
  63. STM R14,R12,SAVEDISP(R13) SAVE CALLERS REGS @VA04250 00063000
  64. LR R12,R15 ADDRESSABILITY @VA04250 00064000
  65. USING DMMIOB,R12 USE IT @VA04250 00065000
  66. ST R13,SAVEBACK CALLERS SAVE AREA @VA04250 00066000
  67. B EYECATCH BYPASS EYECATCHER @VA04250 00067000
  68. DS 0D ALIGN @VA04250 00068000
  69. DC CL8'DMMIOB' EYECATCHER @VA04250 00069000
  70. RELLEV DC C'REL4LEV0' RELEASE AND LEVEL @V4075A1 00070000
  71. EYECATCH LA R13,SAVEAREA IOB SAVEAREA @VA04250 00071000
  72. XC RETCODE(WORKL),RETCODE CLEAR RETURN CODE @VA04250 00072000
  73. MVC SUBCUMSG,BLANKOUT CLEAR SUBORD CU MSG @VA04830 00073500
  74. * * * * * * * * ------- -------- -------- ------- * 00074000
  75. * * * * * * * * R2 POINTS TO THE PLIST. 00075000
  76. * * * * * * * * COMMAND HAS 'CUU' AS SECOND PARM, 00076000
  77. * * * * * * * * WHICH IS AT 8 INTO THE PLIST 00077000
  78. * * * * * * * * IN EBCDIC, FIRST RIGHT JUSTIFY THE 00078000
  79. * * * * * * * * ADDRESS, THEN CHECK CHARACTERS ARE 00079000
  80. * * * * * * * * VALID HEX, THEN TRANSLATE TO HEX 00080000
  81. * * * * * * * * AND PUT THE HEX VALUE INTO 00081000
  82. * * * * * * * * R3 FOR THE BLOK EXTRACTION ROUTINE 00082000
  83. * * * * * * * * ------- -------- -------- ------- * 00083000
  84. MVC PLISTCMD(PLISTL),0(R2) MOVE PLIST IN. @VA04250 00084000
  85. MVC HEADER(CMDL),PLISTCMD PLUG CMD INTO HEADER @VA04250 00085000
  86. MVC HEADER+CUU(CUUL),PLISTCUU PLUG ADDRESS INTO HDR @VA04250 00086000
  87. LA R4,PLISTCUU GET ADDRESS OF ADDRESS @VA04250 00087000
  88. ST R4,ADDPOINT SAVE ADDRESS OF ADDRESS @VA04250 00088000
  89. L R15,HEXADD ADDRESS OF HEX ROUTINE @VA04250 00089000
  90. BALR R14,R15 LINK TO HEX @VA04250 00090000
  91. LTR R15,R15 TEST RETURN @VA04250 00091000
  92. BNZ CODECHEK FIND HOW BAD @VA04250 00092000
  93. ST R5,CUUHEX SAVE THE HEX ADDRESS @VA04250 00093000
  94. CLC PLISTCMD(L'V),V IS IT A VIO REQUEST? @VA04250 00094000
  95. BE VIO YES @VA04250 00095000
  96. * * * * * * * * ------- -------- -------- ------- * 00096000
  97. * * * * * * * * THIS MUST BE A REAL DEVICE REQUEST. 00097000
  98. * * * * * * * * THIS ROUTINE ACCEPTS A DEVICE ADDRESS 00098000
  99. * * * * * * * * IN R3, AND LOCATES THE CHANNEL, CONTROL 00099000
  100. * * * * * * * * UNIT, AND DEVICE BLOCKS, AND PLUGS THE 00100000
  101. * * * * * * * * ADDRESSES IN R6, R7 AND R8. 00101000
  102. * * * * * * * * ------- -------- -------- ------- * 00102000
  103. MVC CHRCH(L'R),R PLUG 'R' INTO OUTPUT AREA HDRS @VA04250 00103000
  104. MVC CURCU(L'R),R FOR THE CHANNEL, CONTROL UNIT, @VA04250 00104000
  105. MVC DVRDV(L'R),R AND DEVICE BLOCKS @VA04250 00105000
  106. LR R3,R5 GET THE HEX ADDRESS FOR EXTRACT @VA04250 00106000
  107. LA R6,CHMASK ISOLATE CHAN ADDRESS @VA04250 00107000
  108. NR R6,R3 FROM CUU @VA04250 00108000
  109. SRL R6,7 CHAN ADD * 2 @VA04250 00109000
  110. LA R2,ARIOCT-PSA DISP TO CHANN TABLE ADDRESS @VA04250 00110000
  111. BAL R10,GOGET FETCH IT INTO CORE @VA04250 00111000
  112. A R6,0(R2) ADD CHAN TABLE ADDRESS @VA04250 00112000
  113. LR R2,R6 SET UP FOR GET @VA04250 00113000
  114. BAL R10,GOGET GET THAT INTO CORE @VA04250 00114000
  115. LH R6,0(R2) GET RCHBLOK INDEX @VA04250 00115000
  116. LTR R7,R6 DOES CHAN EXIST? @VA04250 00116000
  117. BM NOCHAN NO @VA04250 00117000
  118. LA R2,ARIOCH-PSA DISP TO REAL CH BLOK ADD @VA04250 00118000
  119. BAL R10,GOGET GET IT INTO CORE @VA04250 00119000
  120. A R6,0(R2) NOW R6 HAS REAL CHAN BLOCK @VA04250 00120000
  121. * * * * * * * * ------- -------- -------- ------- * 00121000
  122. LA R7,CUMASK1 ISOLATE CU BITS @VA04250 00122000
  123. NR R7,R3 FROM CUU @VA04250 00123000
  124. SRL R7,2 CU ADD * 2 @VA04250 00124000
  125. LA R7,RCHCUTBL-RCHBLOK(R7) IN TO INDEX TABLE @V4075A2 00125500
  126. AR R7,R6 PLUS RCH BLOK @VA04250 00126000
  127. LR R2,R7 SET UP FOR GET @VA04250 00127000
  128. BAL R10,GOGET FETCH INTO CORE @VA04250 00128000
  129. LH R7,0(R2) GET THE INDEX @VA04250 00129000
  130. LTR R7,R7 CU EXIST? @VA04250 00130000
  131. BNM COMPRCUB YES @VA04250 00131000
  132. LA R7,CUMASK2 ISOLAT CU @VA04250 00132000
  133. NR R7,R3 FROM CUU @VA04250 00133000
  134. SRL R7,R2 ALTERNATE CU ADDRESS @VA04250 00134000
  135. LA R7,RCHCUTBL-RCHBLOK(R7) IN TO INDEX TABLE @V4075A2 00135500
  136. AR R7,R6 PLUS RCH BLOK @VA04250 00136000
  137. LR R2,R7 SET UP FOR GET @VA04250 00137000
  138. BAL R10,GOGET FETCH INTO CORE @VA04250 00138000
  139. LH R7,0(R2) LOAD CONTROL UNIT INDEX @VA04250 00139000
  140. LTR R8,R7 CU EXIST? @VA04250 00140000
  141. BM NOCU NO @VA04250 00141000
  142. COMPRCUB LA R2,ARIOCU-PSA GET DISP TO CU BLOCK @VA04250 00142000
  143. BAL R10,GOGET INTO CORE @VA04250 00143000
  144. A R7,0(R2) NOW R7 HAS RCUBLOK ADDRESS @VA04250 00144000
  145. * * * * * * * * ------- -------- -------- ------- * 00145000
  146. LA R8,DVMASK GET DEV @VA04250 00146000
  147. NR R8,R3 FROM CUU @VA04250 00147000
  148. AR R8,R8 DEV ADD * 2 @VA04250 00148000
  149. LA R8,RCUDVTBL-RCUBLOK(R8) DEVBLOK INDEX @VA04250 00149000
  150. AR R8,R7 ADD DEVBLOK ADDRESS @VA04250 00150000
  151. LR R2,R8 SET FOR GET @VA04250 00151000
  152. BAL R10,GOGET GET INTO CORE @VA04250 00152000
  153. LH R8,0(R2) AND GET THE INDEX @VA04250 00153000
  154. LR R2,R7 GET CU BLOCK @VA04250 00154000
  155. LA R2,RCUTYPE-RCUBLOK(R2) ADD 5, POINT TO SUB BIT @VA04250 00155000
  156. BAL R10,GOGET GETIT IN COR @VA04250 00156000
  157. TM 0(R2),RCUSUB SUBORDINATE CUBLOK? @VA04250 00157000
  158. BZ TESTDEV NO - BRANCH @VA04250 00158000
  159. MVI SUBCUSW,SUB YES - SET SUB-CU SWITCH @VA04250 00159000
  160. ST R7,SUBCUADX SAVE HEX ADDRESS TO TRANSLATE @VA04250 00160000
  161. MVC SUBCUMSG,SUBCUM PLUB SUBCU MESSAGE @VA04250 00161000
  162. LR R2,R7 GET CUBLOK ADDRESS @VA04250 00162000
  163. LA R2,RCUCHA-RCUBLOK(R2) IN TO SUB CU ADDRESS @VA04250 00163000
  164. BAL R10,GOGET GET IT IN CORE @VA04250 00164000
  165. L R7,0(R2) GET IT IN R7 @VA04250 00165000
  166. TESTDEV LTR R8,R8 DEVICE EXIST? @VA04250 00166000
  167. BM NODEV NO @VA04250 00167000
  168. SLL R8,3 CONVERT TO BYTES @VA04250 00168000
  169. LA R2,ARIODV-PSA GET DISP TO DEV TABLE ADDRESS @VA04250 00169000
  170. BAL R10,GOGET INTO CORE @VA04250 00170000
  171. A R8,0(R2) ADD OFFSET - R8 NOW HAS DEV BLK @VA04250 00171000
  172. MVC HEADER+UID(UID),BLANKER BLANK ANY USERID @VA04250 00172000
  173. B DISPLAY NOW GO TO DISPLAY THEM @VA04250 00173000
  174. * * * * * * * * ------- -------- -------- ------- * 00174000
  175. * * * * * * * * IN ORDER TO FIND VIRTUAL DEVICE BLOCKS 00175000
  176. * * * * * * * * WE NEED THE ADDRESS OF THE USERS VMBLOK 00176000
  177. * * * * * * * * AND THE DEVICE ADDRESS. 00177000
  178. * * * * * * * * FIRST GET THE ADDRESS OF THE USER VMBLOK 00178000
  179. * * * * * * * * GO TO GETREC TO GET THE SYSTEM 00179000
  180. * * * * * * * * VMBLOCK ADDRESS 00180000
  181. * * * * * * * *------- -------- -------- -------- ------* 00181000
  182. VIO CLC PLISTUSR,FENCE USER IN THE PLIST? @VA04250 00182000
  183. BE PLUGUSER NO GO PLUG ONE @VA04250 00183000
  184. CLC PLISTUSR,BLANKER USER IN THE PLIST? @VA04250 00184000
  185. BNE GETSYSVM YES - CONTINUE @VA04250 00185000
  186. PLUGUSER MVC PLISTUSR,USERSAVE USE LAST USERID @VA04250 00186000
  187. GETSYSVM MVC USERSAVE,PLISTUSR SAVE THE CURRENT USERID @VA04250 00187000
  188. MVC CHRCH(L'V),V PLUG 'V' IN MESSAGE HEADERS @VA04250 00188000
  189. MVC CURCU(L'V),V FOR CHAN, CU, AND @VA04250 00189000
  190. MVC DVRDV(L'V),V DEVICE BLOCKS @VA04250 00190000
  191. LA R2,ASYSVM-PSA DISP TO SYSVMBLOCK ADDRESS @VA04250 00191000
  192. BAL R10,GOGET GO FETCH @VA04250 00192000
  193. L R2,0(R2) GET TRUE VMBLOCK ADDRESS @VA04250 00193000
  194. ST R2,BLOCKADD VMB ADDRESS FOR TRANS @VA04250 00194000
  195. LA R2,VMUSER-VMBLOK(R2) @VA04834 00194500
  196. BAL R10,GOGET GO FETCH @VA04250 00195000
  197. CLC PLISTUSR,0(R2) DOES THIS VMBLOK MATCH THE INPUT?@VA04834 00196100
  198. BE GOTUSER YES - GO GET ADDRESS @VA04250 00198000
  199. L R2,BLOCKADD NO - GO AFTER NEXT BLOK IN CHAIN @VA04834 00199100
  200. LA R2,NEXTBLK(R2) IN 8 BYTES TO NEXT BLOK PTR @VA04834 00199300
  201. BAL R10,GOGET AND FETCH IT INTO CORE @VA04834 00199500
  202. L R2,0(R2) PICK IT UP @VA04834 00199700
  203. LTR R2,R2 IS IT ZEROS @VA04250 00200000
  204. BNZ SAVEOC NO - KEEP ON @VA04250 00201000
  205. B NOUSER YES - END OF VMBLOKS @VA04250 00202000
  206. SAVEOC ST R2,OPVMADD SAVE 'END-OF-CHAIN' ADDRESS @VA04250 00203000
  207. ST R2,BLOCKADD VMB ADDRESS FOR TRANS @VA04250 00204000
  208. * * * * * * * *------- -------- -------- -------- ------* 00205000
  209. * * * * * * * * NOW PROCESS THE REMAINING VMBLOCKS 00206000
  210. * * * * * * * *------- -------- -------- -------- ------* 00207000
  211. LA R6,MAXUSERS MAX OF 500 USERS @VA04250 00208000
  212. BALGET LA R2,VMUSER-VMBLOK(R2) INCREMENT TO USER ID @VA04834 00209100
  213. BAL R10,GOGET GET THE USERID INTO CORE @VA04834 00209800
  214. CLC PLISTUSR,0(R2) IS THIS THE REQUESTED VMBLOK? @VA04834 00210500
  215. BE GOTUSER YES - GO PROCESS HIM @VA04250 00211000
  216. L R2,BLOCKADD NO - GO FOR NEXT BLOK @VA04834 00212100
  217. LA R2,NEXTBLK(R2) GET CYCLIC POINTER @VA04834 00212300
  218. BAL R10,GOGET FETCH IT INTO CORE @VA04834 00212500
  219. L R2,0(R2) PICK IT UP @VA04834 00212700
  220. ST R2,BLOCKADD VMB ADDRESS FOR TRANS @VA04250 00213000
  221. C R2,OPVMADD POINT TO END OF CHAIN? @VA04250 00214000
  222. BE NOUSER YES - WRITE 'NOT FOUND' LINE @VA04250 00215000
  223. BCT R6,BALGET GET NEXT VMBLOCK @VA04250 00216000
  224. NOUSER MVC ERUSER(L'PLISTUSR),PLISTUSR USERID INTO ERR MSG @VA04250 00217000
  225. LA R8,ERMSG713 USER NOT FOUND MSG @VA04250 00218000
  226. LA R9,E713L LENGTH @VA04250 00219000
  227. BAL R10,WRTERM WRITE ONE ENTRY @VA04250 00220000
  228. MVC RETCODE,CODE4 WARNING RETURN @VA04250 00221000
  229. B RETURN QUIT @VA04250 00222000
  230. * * * * * * * * ------- -------- -------- ------- * 00223000
  231. * * * * * * * * NOW WE HAVE A MATCH ON THE USERID. 00224000
  232. * * * * * * * * THE VMBLOK ADDRESS IS IN 'BLOCKADD' 00225000
  233. * * * * * * * * THE VIRTUAL 'CUU' IS IN 'CUUHEX' 00226000
  234. * * * * * * * * PASS THESE TO THE VIRTBLOK 00227000
  235. * * * * * * * * ROUTINE FOR VIRTUAL BLOKS. 00228000
  236. * * * * * * * * ------- -------- -------- ------- * 00229000
  237. GOTUSER LA R2,VMCHTBL-VMBLOK DISP OF CHAN TBL INTO VMBLOK @VA04837 00231100
  238. A R2,BLOCKADD PLUS BASE ADDRESS OF VMBLOK @VA04837 00231800
  239. L R3,CUUHEX GET THE HEX DEVICE ADDRESS @VA04837 00232500
  240. L R6,CHANMASK MASK OUT THE NON CHANNEL BITS @VA04837 00233200
  241. NR R6,R3 STRIP THEM OFF @VA04837 00233900
  242. SRL R6,7 AND SLIDE IT TO LOW ORDER @VA04837 00234600
  243. AR R2,R6 ADD THIS TO TABLE START ADDRESS @VA04837 00235300
  244. BAL R10,GOGET FETCH THE CHAN ENTRY INTO CORE @VA04837 00236000
  245. LH R6,0(R2) LOAD IT @VA04837 00236700
  246. LTR R7,R6 DOES THIS CHANNEL EXIST ? @VA04837 00237400
  247. BM NOVCHAN NO - STOP SEARCHING @VA04837 00238100
  248. LA R2,VMCHSTRT-VMBLOK DISP TO VCHAN BLOK @VA04837 00238800
  249. A R2,BLOCKADD PLUS BASE GIVES CH START ADDRESS @VA04837 00239500
  250. BAL R10,GOGET GO GET IT INTO CORE @VA04837 00240200
  251. A R6,0(R2) ADD TO CHANNEL ADDRESS @VA04837 00240900
  252. ST R6,VCHSAVE STORE IT FOR LATER @VA04837 00241600
  253. * * * * * * * * ------- -------- -------- ------- * 00244000
  254. * * * * * * * * SINCE WE ARE GOING TO READ IN THE 00245000
  255. * * * * * * * * VCHBLOK AND THE VDEVBLOK WE MUST 00246000
  256. * * * * * * * * SAVE THE VMCUSTRT AND VMDVSTRT FIELDS 00247000
  257. * * * * * * * * ------- -------- -------- ------- * 00248000
  258. LA R2,VMCUSTRT-VMBLOK DISP TO CUSTRT @VA04837 00249100
  259. A R2,BLOCKADD PLUS BASE ADDRESS @VA04837 00249700
  260. BAL R10,GOGET FETCH INTO CORE @VA04837 00250300
  261. MVC VMCUSAVE,0(R2) SAVE THE FIELD @VA04837 00250900
  262. LA R2,VMDVSTRT-VMBLOK AND THE SAME FOR VMDVSTRT @VA04837 00251500
  263. A R2,BLOCKADD POINT TO VMDVSTRT @VA04837 00252100
  264. BAL R10,GOGET FETCH IT IN @VA04837 00252700
  265. MVC VMDVSAVE,0(R2) AND SAVE IT @VA04837 00253300
  266. LA R2,VCHCUTBL-VCHBLOK DISPLACEMENT @VA04837 00253900
  267. AR R2,R6 PLUS THE OFFSET @VA04837 00254500
  268. BAL R10,GOGET FETCH IT @VA04837 00255100
  269. L R7,CUMASK MASK OUT THE NON - CU BITS @VA04837 00255700
  270. NR R7,R3 STRIP THEM OUT @VA04837 00256300
  271. SRL R7,3 PUT CTL UNIT ADDRESS INT R7 @VA04837 00256900
  272. AR R2,R7 ADD TO START OF TABLE @VA04837 00257500
  273. LH R7,0(R2) LOAD THE ENTRY @VA04837 00258100
  274. LTR R8,R7 IS THERE AN ENTRY @VA04837 00258700
  275. BM NOVCU NO - QUIT @VA04837 00259300
  276. A R7,VMCUSAVE ADD THE SAVED VALUE @VA04837 00259900
  277. ST R7,VCUSAVE AND SAVE THAT @VA04837 00260500
  278. ********** NOW THE CONTROL UNIT ************* @VA04837 00261100
  279. LA R2,VCUDVTBL-VCUBLOK DEVICE TABLE DISP @VA04837 00261700
  280. AR R2,R7 PLUS ADDRESS OF TABLE @VA04837 00262300
  281. L R8,DEVMASK MASK OUT NON DEVICE BITS @VA04837 00262900
  282. NR R8,R3 STRIP OUT @VA04837 00263500
  283. AR R8,R8 DOUBLE IT FOR HALFWORD TABLE @VA04837 00264100
  284. AR R2,R8 POINT TO DEVICE ENTRY @VA04837 00264700
  285. BAL R10,GOGET FETCH IT @VA04837 00265300
  286. LH R8,0(R2) PICK IT UP @VA04837 00265900
  287. LTR R8,R8 DEV EXIST? @VA04250 00271000
  288. BM NOVDEV NO @VA04250 00272000
  289. A R8,VMDVSAVE GET VDEVBLOK ADDRESS @VA04250 00273000
  290. LM R6,R7,VCHSAVE GET BACK THE ADDRESSES @VA04250 00274000
  291. MVC HEADER+UID(L'USERSAVE),USERSAVE PLUG USERID @VA04250 00275000
  292. B DISPLAY GO SHOW EM @VA04250 00276000
  293. * * * * * * * * ------- -------- -------- ------- * 00277000
  294. * * * * * * * * IF WE DIDNT FIND THE VIRTUAL DEVICE 00278000
  295. * * * * * * * * ------- -------- -------- ------- * 00279000
  296. NOVCHAN SR R6,R6 SET R6 @VA04250 00280000
  297. BCTR R6,R0 NEGATIVE @VA04250 00281000
  298. NOVCU SR R7,R7 MAKE R7 @VA04250 00282000
  299. BCTR R7,R0 NEGATIVE @VA04250 00283000
  300. NOVDEV SR R8,R8 MAKE R8 @VA04250 00284000
  301. BCTR R8,R0 NEGATIVE @VA04250 00285000
  302. MVC RETCODE,CODE4 SET RETURN @VA04250 00286000
  303. B WRITERR GO WRITE THE ERROR @VA04250 00287000
  304. * * * * * * * * ------- -------- -------- ------- * 00289000
  305. * * * * * * * * NOW CHBLOK ADDRESS IS IN R6, 00290000
  306. * * * * * * * * THE CUBLOK ADDRESS IS IN R7, 00291000
  307. * * * * * * * * AND DVBLOK ADDRESS IS IN R8. 00292000
  308. * * * * * * * * FORMAT AND DISPLAY THEM. 00293000
  309. * * * * * * * * ------- -------- -------- ------- * 00294000
  310. DISPLAY STM R6,R8,CHADSTOR PUT ADDRESSES IN CORE @VA04250 00295000
  311. LA R4,CHADSTOR GET ADDRESS FOR INT @VA04250 00296000
  312. LA R3,TRANL AND LENGTH - 16 @VA04250 00297000
  313. BAL R10,GOINT GO TRANSLATE @VA04250 00298000
  314. MVC CHBLKADD(TRADL),CHB(R5) PLUG CHAN BLK ADDRESS @VA04250 00299000
  315. MVC CUBLKADD(TRADL),CUB(R5) CU BLOK ADDRESS @VA04250 00300000
  316. MVC DVBLKADD(TRADL),DVB(R5) DEV BLK ADDRESS @VA04250 00301000
  317. CLI SUBCUSW,SUB IS IT A SUBORD CU? @VA04250 00302000
  318. BNE CHANTRAN NO -- DONT PLUG ADDRESS IN MSG @VA04250 00303000
  319. MVC SUBCUADD(TRADL),SUBDISP(R5) YES - PLUG IT @VA04250 00304000
  320. MVI SUBCUSW,PRIME TURN OFF SUBCUSW @VA04250 00305000
  321. * * * * * * * * ------- -------- -------- ------- * 00306000
  322. * * * * * * * * NOW TRANSLATE LINES FROM THE 00307000
  323. * * * * * * * * VARIOUS BLOCKS AND FORMAT THEM 00308000
  324. * * * * * * * * INTO THE OUTPUT AREA 00309000
  325. * * * * * * * * FIRST THE CHANNEL BLOK 00310000
  326. * * * * * * * * ------- -------- -------- ------- * 00311000
  327. CHANTRAN LA R6,CHLINES 3 CH LINES @VA04250 00312000
  328. CLC PLISTCMD(L'V),V ARE THESE 'VIRTUAL' BLOCKS? @VA04250 00313000
  329. BNE PLUGCH NO - LEAVE IT AT 3 LINES @VA04250 00314000
  330. BCTR R6,R0 YES - MUST ONLY FETCH 2 LINES @VA04250 00315000
  331. PLUGCH MVC ADSTOR,CHADSTOR PLUG CH BLOK ADDRESS @VA04250 00316000
  332. LA R2,CHLINE1 GET CHAN LINE 1 ADDRESS @VA04250 00317000
  333. ST R2,LINE1ADD PLUG IT FOR TRANSLATE/FORMAT @VA04250 00318000
  334. BAL R11,GETLINE GO FORMAT IT @VA04250 00319000
  335. * * * * * * * * ------- -------- -------- ------- * 00320000
  336. * * * * * * * * NOW THE CU BLOCK 00321000
  337. * * * * * * * * ------- -------- -------- ------- * 00322000
  338. LA R6,CULINES TWO CU LINES @VA04250 00323000
  339. MVC ADSTOR,CUADSTOR CU BLOK ADDRESS @VA04250 00324000
  340. LA R2,CULINE1 CU BLOK @VA04250 00325000
  341. ST R2,LINE1ADD PLUG FOR FORMAT @VA04250 00326000
  342. BAL R11,GETLINE GO FORMAT @VA04250 00327000
  343. * * * * * * * * ------- -------- -------- ------- * 00328000
  344. * * * * * * * * NOW THE DEV BLOCK 00329000
  345. * * * * * * * * ------- -------- -------- ------- * 00330000
  346. LA R6,DVLINES 3 DEV LINES @VA04250 00331000
  347. CLC PLISTCMD(L'V),V ARE THESE VIRTUAL BLOCKS? @VA04250 00332000
  348. BNE PLUGDV NO - LEAVE IT AT 3 LINES @VA04250 00333000
  349. BCTR R6,R0 YES - MUST REDUCE TO 2 LINES @VA04250 00334000
  350. PLUGDV MVC ADSTOR,DVADSTOR DEV BLOK ADDRESS @VA04250 00335000
  351. LA R2,DVLINE1 DEV BLOK OUTPUT AREA @VA04250 00336000
  352. ST R2,LINE1ADD PLUG IT @VA04250 00337000
  353. BAL R11,GETLINE GO DO DEVICE @VA04250 00338000
  354. * * * * * * * * ------- -------- -------- ------- * 00339000
  355. * * * * * * * * NOW PLUG THE ADDRESS OF THE SOUGHT DEVICE 00340000
  356. * * * * * * * * ------- -------- -------- ------- * 00341000
  357. MVC CHCHANAD(ADL),CHLINE1+ONE PLUG CHAN INTO CHBLOK @VA04250 00342000
  358. MVC CUUNITAD(ADL),CHLINE1+ONE AND INT CUBLOK @VA04250 00343000
  359. MVC CUUNITAD+ONE(ADL),CULINE1+TWO CU ADD INTO CUBLOK@VA04250 00344000
  360. MVC DVDEVAD(CUUL),PLISTCUU PLUG DEV ADD IN DEVBLK @VA04250 00345000
  361. * * * * * * * * ------- -------- -------- ------- * 00346000
  362. * * * * * * * * NOW ALL THE LINES ARE BUILT - GO WRITE THEM 00347000
  363. * * * * * * * * ------- -------- -------- ------- * 00348000
  364. B WRITE WRITE THE LINES @VA04250 00349000
  365. * * * * * * * * ------- -------- -------- ------- * 00350000
  366. * * * * * * * * THIS GETS THE TEXT OF THE VARIOUS CONTROL 00351000
  367. * * * * * * * * BLOCKS INTO CORE, TRANSLATES AND FORMATS 00352000
  368. * * * * * * * * THEM INTO EIGHT BYTE BLOCKS. THE DATA IS 00353000
  369. * * * * * * * * FETCHED 8 BYTES AT A TIME, AS THERE IS 00354000
  370. * * * * * * * * THE POSSIBILITY THAT A REAL IO BLOCK 00355000
  371. * * * * * * * * MAY CROSS A PAGE BOUNDARY AND SUFFER 00356000
  372. * * * * * * * * GARBAGE. R6 HAS THE NUMBER OF LINES TO 00357000
  373. * * * * * * * * BE PRINTED. THE REST SHOULD BE OBLIVIOUS. 00358000
  374. * * * * * * * * ------- -------- -------- ------- * 00359000
  375. GETLINE L R7,LINE1ADD ADDRESS OF FIRST LINE @VA04250 00360000
  376. LA R8,BLOX 4 BLOCKS OF 16 BYTES @VA04250 00361000
  377. L R2,ADSTOR GET ADDRESS OF BLOCK @VA04250 00362000
  378. GOGOGET BAL R10,GOGET GET IT INTO CORE @VA04250 00363000
  379. LR R4,R2 GET THE ADDRESS TO TRANSLATE @VA04250 00364000
  380. LA R3,WORDL AND THE LENGTH - 8 @VA04250 00365000
  381. BAL R10,GOINT GO TRANSLATE IT @VA04250 00366000
  382. MVC 0(WORDL,R7),0(R5) MOVE IN AN 8 BYTE BLOCK @VA04250 00367000
  383. LA R7,WORDL+ONE(R7) BUMP OUTPUT PLUS A SPACE @VA04250 00368000
  384. LA R5,WORDL(R5) BUMP INPUT @VA04250 00369000
  385. MVC 0(WORDL,R7),0(R5) MOVE THE SECOND 8 BYTE BLOCK @VA04250 00370000
  386. LA R7,WORDL+ONE(R7) NEXT OUTPUT SLOT @VA04250 00371000
  387. L R2,ADSTOR GET CURRENT INPUT PTR @VA04250 00372000
  388. LA R2,WORDL(R2) BUMP IT BY 8 INPUT BYTES @VA04250 00373000
  389. ST R2,ADSTOR AND RE-STORE IT @VA04250 00374000
  390. BCT R8,GOGOGET GO FINISH THE LINE @VA04250 00375000
  391. L R7,LINE1ADD WEVE DONE THE FIRST LINE. NOW @VA04250 00376000
  392. LA R7,LINEL(R7) UPDATE TO POINT TO THE NEXT LINE @VA04250 00377000
  393. ST R7,LINE1ADD AND RESTORE IT @VA04250 00378000
  394. BCT R6,GETLINE NOW GET THE NEXT LINE @VA04250 00379000
  395. BR R11 DONE ALL LINES - RETURN @VA04250 00380000
  396. * * * * * * * * ------- -------- -------- ------- * 00381000
  397. * * * * * * * * NOW WRITE THE LINES. WRITE THREE, THEN CHECK 00382000
  398. * * * * * * * * IF IT IS A VIRTUAL DISPLAY. IF SO SKIP A 00383000
  399. * * * * * * * * LINE IN THE FORMATTED AREA, SINCE THE VCHBLOK 00384000
  400. * * * * * * * * IS A LINE SHORTER THAN THE RCHBLOK. 00385000
  401. * * * * * * * * ------- -------- -------- ------- * 00386000
  402. WRITE MVC DVLINE3+SEC(L'DVLINE3-SEC),BLANKOUT CLR 2ND @VA04830 00387500
  403. CLC PLISTCMD(L'V),V ARE THESE VIRTUAL BLOKS? @VA04250 00388000
  404. BNE REAL NO - PROCESS AS IS @VA04250 00389000
  405. MVI CHLINE2+NUCH,BLANK SET @VA04830 00390100
  406. MVI CULINE2+NUCU,BLANK UP @VA04830 00390400
  407. MVI DVLINE2+NUDV,BLANK TO @VA04830 00390700
  408. MVC CHLINE2+NUCH+1(NUCHL-1),CHLINE2+NUCH CLEAR @VA04830 00391000
  409. MVC CULINE2+NUCU+1(NUCUL-1),CULINE2+NUCU CTL @VA04830 00391300
  410. MVC DVLINE2+NUDV+1(NUDVL-1),DVLINE2+NUDV BLOCKS @VA04830 00391600
  411. REAL LA R8,HEADER ADDRESS OF HEADER @VA04250 00393000
  412. LA R9,L'HEADER AND LENGTH @VA04250 00394000
  413. BAL R10,WRTERM WRITE HEADER @VA04250 00395000
  414. LA R2,FIRSTSET 3 DISPLAY LINES @VA04250 00396000
  415. LA R8,CHRCH OUTPUT AREA @VA04250 00397000
  416. LA R9,EIGHTY LINE LENGTH @VA04250 00398000
  417. GOWRITE BAL R10,WRTERM GO WRITE A LINE @VA04250 00399000
  418. LA R8,LINEL(R8) NEXT OUTPUT LINE @VA04250 00400000
  419. BCT R2,GOWRITE WRITE ANOTHER LINE @VA04250 00401000
  420. LA R2,NEXTSET GET 10 FOR LAST SET OF LINES @VA04250 00402000
  421. CLC V,PLISTCMD ARE THESE VIRT BLOKS? @VA04250 00403000
  422. BNE LASTSET NO - WRITE AS IS @VA04250 00404000
  423. LA R8,LINEL(R8) YES - SKIP A LINE @VA04250 00405000
  424. BCTR R2,R0 AND DECREMENT THE LINE COUNT @VA04250 00406000
  425. LASTSET BAL R10,WRTERM WRITE ONE OF THE LAST GROUP @VA04250 00407000
  426. LA R8,LINEL(R8) BUMP A LINE @VA04250 00408000
  427. BCT R2,LASTSET GO WRITE IT @VA04250 00409000
  428. B RETURN GET OUT @VA04250 00410000
  429. * * * * * * * * ------- -------- -------- ------- * 00411000
  430. * * * * * * * * COMMON WRTERM 00412000
  431. * * * * * * * * ------- -------- -------- ------- * 00413000
  432. WRTERM ST R8,PARMLIS1 SAVE MSG TEXT PTR IN PARM LIST @V4075A2 00414100
  433. ST R9,PARMLIS2 AND TEXT LENGTH @V4075A2 00414200
  434. LA R1,PARMLIS1 POINTER TO PASS @V4075A2 00414300
  435. L R15,FEDLNADD ADDRESS OF DMMFEDLN - LINE WRITER@V4075A2 00414400
  436. BALR R14,R15 GO WRITE THE LINE @V4075A2 00414500
  437. BR R10 AND RETURN @V4075A2 00414600
  438. PARMLIS1 DS F PARM1 @V4075A2 00414700
  439. PARMLIS2 DS F PARM2 @V4075A2 00414800
  440. FEDLNADD DC V(DMMFEDLN) LINE WRITER ROUTINE @V4075A2 00414900
  441. * * * * * * * * ------- -------- -------- ------- * 00416000
  442. * * * * * * * * GOINT - COMMON BALR TO INTERPRET 00417000
  443. * * * * * * * * ------- -------- -------- ------- * 00418000
  444. GOINT L R15,INTADD INT ROUTINE @VA04250 00419000
  445. BALR R14,R15 LINK @VA04250 00420000
  446. LTR R15,R15 TEST RETURN @VA04250 00421000
  447. BNZ CODECHEK TEST NON-ZERO RET @VA04250 00422000
  448. BR R10 BACK TO CALLER @VA04250 00423000
  449. * * * * * * * * ------- -------- -------- ------- * 00424000
  450. * * * * * * * * COMMON BAL TO DMMGET 00425000
  451. * * * * * * * * ------- -------- -------- ------- * 00426000
  452. GOGET L R15,GETADD ADDRESS OF DMMGET @VA04250 00427000
  453. BALR R14,R15 LINK @VA04250 00428000
  454. LTR R15,R15 TEST RETURN @VA04250 00429000
  455. BNZ CODECHEK GO TEST A NON ZERO RETURN @VA04250 00430000
  456. BR R10 RETURN TO GO GETTER @VA04250 00431000
  457. * * * * * * * * ------- -------- -------- ------- * 00432000
  458. * * * * * * * * ERROR ROUTINES 00433000
  459. * * * * * * * * ------- -------- -------- ------- * 00434000
  460. NOCHAN SR R6,R6 ZERO R6 @VA04250 00435000
  461. BCTR R6,R0 MAKE IT MINUS @VA04250 00436000
  462. NOCU SR R7,R7 ZERO IT @VA04250 00437000
  463. BCTR R7,R0 MAKE IT MINUS @VA04250 00438000
  464. NODEV SR R8,R8 ZERO DEV REG @VA04250 00439000
  465. BCTR R8,R0 MAKE IT MINUS @VA04250 00440000
  466. B WRITERR GO WRITE THE ERROR MSG @VA04250 00441000
  467. * * * * * * * * ------- -------- -------- ------- * 00442000
  468. * * * * * * * * WRITE THE ERROR MSG 00443000
  469. * * * * * * * * ------- -------- -------- ------- * 00444000
  470. WRITERR MVC ERRORADD,PLISTCUU PLUG ADDRESS IN ERROR MSG @VA04250 00445000
  471. LA R8,ERMSG712 GET ADDRESS OF ER MSG @VA04250 00446000
  472. LA R9,E712L LENGTH OF ERROR @VA04250 00447000
  473. BAL R10,WRTERM WRITE ERROR MSG @VA04250 00448000
  474. MVC RETCODE,CODE4 SET WARNING RETCODE @VA04250 00449000
  475. B RETURN @VA04250 00450000
  476. * * * * * * * * ------- -------- -------- ------- * 00451000
  477. * * * * * * * * CODECHECK 00452000
  478. * * * * * * * * ------- -------- -------- ------- * 00453000
  479. CODECHEK C R15,CODE4 IS IT A WARNING? @VA04250 00454000
  480. BE WARNING PLUG A 4 @VA04250 00455000
  481. MVC RETCODE,CODE8 PLUG 8 @VA04250 00456000
  482. B RETURN FATAL RETURN @VA04250 00457000
  483. WARNING MVC RETCODE,CODE4 PLUG A 4 @VA04250 00458000
  484. B RETURN @VA04250 00459000
  485. * * * * * * * * ------- -------- -------- ------- * 00460000
  486. * * * * * * * * CLOSE 00461000
  487. * * * * * * * * ------- -------- -------- ------- * 00462000
  488. RETURN L R13,SAVEBACK RESTORE CALLER SAVE PTR @VA04250 00463000
  489. MVC SAVREG15(L'RETCODE,R13),RETCODE PLUG RETCODE @VA04250 00464000
  490. LM R14,R12,SAVEDISP(R13) RESTORE CALLERS REGS @VA04250 00465000
  491. BR R14 RETURN @VA04250 00466000
  492. * * * * * * * * ------- -------- -------- ------- * 00467000
  493. * * * * * * * * CONSTANTS 00468000
  494. * * * * * * * * ------- -------- -------- ------- * 00469000
  495. * * * * * * * * SAVEAREA 00470000
  496. * * * * * * * * ------- -------- -------- ------- * 00471000
  497. SAVEAREA DS 0F THIS PROGRAM'S SAVE AREA @VA04250 00472000
  498. SAVEUSR DS F USER WORD @VA04250 00473000
  499. SAVEFWD DS F FORWARD POINTER @VA04250 00474000
  500. SAVEBACK DS F BACKWARD POINTER @VA04250 00475000
  501. SAVER14 DS F SAVE AREA FOR CALLER'S R14 @VA04250 00476000
  502. SAVER15 DS F SAVE AREA FOR CALLER'S R15 @VA04250 00477000
  503. SAVER0 DS F SAVE AREA FOR CALLER'S R0 @VA04250 00478000
  504. SAVER1 DS F SAVE AREA FOR CALLER'S R1 @VA04250 00479000
  505. SAVER2 DS F SAVE AREA FOR CALLER'S R2 @VA04250 00480000
  506. SAVER3 DS F SAVE AREA FOR CALLER'S R3 @VA04250 00481000
  507. SAVER4 DS F SAVE AREA FOR CALLER'S R4 @VA04250 00482000
  508. SAVER5 DS F SAVE AREA FOR CALLER'S R5 @VA04250 00483000
  509. SAVER6 DS F SAVE AREA FOR CALLER'S R6 @VA04250 00484000
  510. SAVER7 DS F SAVE AREA FOR CALLER'S R7 @VA04250 00485000
  511. SAVER8 DS F SAVE AREA FOR CALLER'S R8 @VA04250 00486000
  512. SAVER9 DS F SAVE AREA FOR CALLER'S R9 @VA04250 00487000
  513. SAVER10 DS F SAVE AREA FOR CALLER'S R10 @VA04250 00488000
  514. SAVER11 DS F SAVE AREA FOR CALLER'S R11 @VA04250 00489000
  515. SAVER12 DS F SAVE AREA FOR CALLER'S R12 @VA04250 00490000
  516. * * * * * * * * ------- -------- -------- ------- * 00491000
  517. DUM DS 4F @VA04250 00492000
  518. CODE4 DC F'4' WARNING @VA04250 00493000
  519. CODE8 DC F'8' FATAL @VA04250 00494000
  520. GETADD DC AL4(DMMGET) DMMGET @VA04250 00495000
  521. HEXADD DC AL4(DMMHEX) EBC TO HEX TRANS @VA04250 00496000
  522. INTADD DC AL4(DMMINT) HEX TO EBC TRANS @VA04250 00497000
  523. ADDPOINT DS F POINTER TO 'CUU' ADDRESS @VA04250 00498000
  524. RETCODE DS F RETURN CODE @VA04250 00499000
  525. CHADSTOR DS F STORE CH BLOK ADDRESS @VA04250 00500000
  526. CUADSTOR DS F STORE CUBLOK ADDRESS @VA04250 00501000
  527. DVADSTOR DS F STORE DVBLOK ADDRESS @VA04250 00502000
  528. SUBCUADX DS F HEX ADDRESS OF ANY SUBORD CU @VA04250 00503000
  529. WORKL EQU 20 LENGTH OF WORK AREAS @VA04250 00504000
  530. LINE1ADD DS F ADDRESS OF FIRST LINE OF OUTPUT @VA04250 00505000
  531. ADSTOR DS F CURRENT FORMAT ADDRESS @VA04250 00506000
  532. VMCUSAVE DS F SAVE FOR VMCUSTRT @VA04250 00507000
  533. VMDVSAVE DS F SAVE FOR VMDVSTRT @VA04250 00508000
  534. VCHSAVE DS F VCHBLOK ADDRESS @VA04250 00509000
  535. VCUSAVE DS F VCUBLOK @VA04250 00510000
  536. CUUHEX DS F CUU IN HEX @VA04250 00511000
  537. BLOCKADD DS F ADDRESS OF CURRENT VMBLOK @VA04250 00512000
  538. OPVMADD DS F ADDRESS OF OPERATORS VMBLOK @VA04250 00513000
  539. * * * * * * * * ------- -------- -------- ------- * 00514000
  540. * * * * * * * * FORMATTING AREAS TO DISPLAY THE 00515000
  541. * * * * * * * * BLOCK CHAINS 00516000
  542. * * * * * * * * ------- -------- -------- ------- * 00517000
  543. CHRCH DC CL12'RCHBLOK' HEADER @VA04250 00518000
  544. CHCHAN DC CL5'CHAN' HDR @VA04250 00519000
  545. CHCHANAD DC CL8'XXX' CHANNEL ADDRESS @VA04250 00520000
  546. CHADD DC CL8'ADDRESS' HDR @VA04250 00521000
  547. CHBLKADD DC CL47' ' ADDRESS OF CHBLOK @VA04250 00522000
  548. CHL1HDR DC CL4'000' ADDRESS LINE 1 @VA04250 00523000
  549. CHLINE1 DC CL76' ' LINE 1 @VA04250 00524000
  550. CHL2HDR DC CL4'020' ADD L2 @VA04250 00525000
  551. CHLINE2 DC CL76' ' LINE2 @VA04250 00526000
  552. CHL3HDR DC CL4'040' ADLINE3 @VA04250 00527000
  553. CHLINE3 DC CL76' ' LINE 3 @VA04250 00528000
  554. SPACE1 DC CL80' ' SPACE @VA04250 00529000
  555. CURCU DC CL12'RCUBLOK' HEADER @VA04250 00530000
  556. CUUNIT DC CL5'UNIT' HDR @VA04250 00531000
  557. CUUNITAD DC CL8'0XX' CONTROL UNIT ADDRESS @VA04250 00532000
  558. CUADD DC CL8'ADDRESS' HDR @VA04250 00533000
  559. CUBLKADD DC CL7' ' ADDRESS OF CUBLOK @VA04250 00534000
  560. SUBCUMSG DC CL40' ' MESSAGE RE SUBORDINATE CU @VA04250 00535000
  561. ORG SUBCUMSG+29 @VA04250 00536000
  562. SUBCUADD DC CL11' ' ADDRESS OF ABOVE @VA04250 00537000
  563. CUL1HDR DC CL4'000' ADDRESS LINE 1 @VA04250 00538000
  564. CULINE1 DC CL76' ' LINE 1 @VA04250 00539000
  565. CUL2HDR DC CL4'020' ADD L2 @VA04250 00540000
  566. CULINE2 DC CL76' ' LINE2 @VA04250 00541000
  567. SPACE2 DC CL80' ' SPACE @VA04250 00542000
  568. DVRDV DC CL12'RDEVBLOK' HEADER @VA04250 00543000
  569. DVDEV DC CL5'DEV' HDR @VA04250 00544000
  570. DVDEVAD DC CL8'00X' DEV ADDRESS @VA04250 00545000
  571. DVADD DC CL8'ADDRESS' HDR @VA04250 00546000
  572. DVBLKADD DC CL47' ' ADDRESS OF DVBLOK @VA04250 00547000
  573. DVL1HDR DC CL4'000' ADDRESS LINE 1 @VA04250 00548000
  574. DVLINE1 DC CL76' ' LINE 1 @VA04250 00549000
  575. DVL2HDR DC CL4'020' ADD L2 @VA04250 00550000
  576. DVLINE2 DC CL76' ' LINE2 @VA04250 00551000
  577. DVL3HDR DC CL4'040' ADLINE3 @VA04250 00552000
  578. DVLINE3 DC CL80' ' LINE 3 @VA04250 00553000
  579. * * * * * * * * ------- -------- -------- ------- * 00554000
  580. V DC C'V' V TO PLUG IN MESSAGE HEADER @VA04250 00555000
  581. R DC C'R' R DITTO @VA04250 00556000
  582. TRANL EQU 16 LENGTH OF LINE TO TRANSLATE @VA04250 00557000
  583. TLINEL EQU 32 LENGTH AFTER TRANS @VA04250 00558000
  584. LINEL EQU 80 LINE LENGTH @VA04250 00559000
  585. MAXUSERS EQU 500 MAXUSERS ALLOWED - LOOP ASSUMED @VA04250 00560000
  586. CHLINES EQU 3 THREE CHANNEL LINES @VA04250 00561000
  587. CULINES EQU 2 CU BLOK LINES @VA04250 00562000
  588. DVLINES EQU 3 DEVICE LINES @VA04250 00563000
  589. EIGHTY EQU 80 LINE LENGTH @VA04250 00564000
  590. FIRSTSET EQU 3 SOME OF LINES IN OUTPUT DISPLAY @VA04250 00565000
  591. NEXTSET EQU 10 REST OF THE LINES @VA04250 00566000
  592. * * * * * * * * ------- -------- -------- ------- * 00567000
  593. ADL EQU 1 LENGTH OF EACH SEG OF 'CUU' @VA04250 00568000
  594. ONE EQU 1 BUMP COUNTER @VA04250 00569000
  595. TWO EQU 2 INDEX @VA04250 00570000
  596. CHB EQU 2 CHANNEL BLOCK @VA04250 00571000
  597. CMDL EQU 3 LENGTH OF CMD @VA04250 00572000
  598. CUUL EQU 3 LENGTH OF 'CUU' @VA04250 00573000
  599. CUU EQU 4 ADDRESS DISP @VA04250 00574000
  600. BLOX EQU 4 4 X 16 BYTE BLOCKS ON OUT_LINE @VA04250 00575000
  601. TRADL EQU 6 LENGTH OF TRANSLATED ADDRESS @VA04250 00576000
  602. UID EQU 8 USERID DISP @VA04250 00577000
  603. NEXTBLK EQU 8 ADDRESS OF NEXT BLOK @VA04250 00578000
  604. WORDL EQU 8 LENGTH OF A TRANSLATED WORD @VA04250 00579000
  605. CUB EQU 10 CU BLOCK @VA04250 00580000
  606. SAVEDISP EQU 12 REGS IN SAVE AREA @VA04250 00581000
  607. SAVREG15 EQU 16 REG 15 IN SAVE AREA @VA04250 00582000
  608. DVB EQU 18 DEVICE BLOK @VA04250 00583000
  609. NUCH EQU 18 NOT USED PART OF CHBLOK @VA04250 00584000
  610. NUCU EQU 18 NOT USED PART OF CU BLOK @VA04250 00585000
  611. SUBDISP EQU 26 DISP TO SUB CU ADDR @VA04250 00586000
  612. SEC EQU 54 DISP TO SEC HALF OF LINE @VA08869 00587100
  613. BLANK EQU X'40' FILL FOR CLEAR @VA04830 00587500
  614. NUDV EQU 71 UNUSED PORTION OF VDEVBLOK @V4075A2 00588000
  615. NUCHL EQU X'DA' LENGTH TO CLEAR @VA04250 00589000
  616. NUCUL EQU X'8A' LENGTH TO CLEAR @VA04250 00590000
  617. NUDVL EQU X'59' LENGTH TO CLEAR @V4075A2 00591000
  618. CHMASK EQU X'F00' CHANNEL MASK @VA04250 00592000
  619. CUMASK1 EQU X'0F8' MASK FOR CU PORTION OF 'CUU' @VA04250 00593000
  620. CUMASK2 EQU X'0F0' SAME @VA04250 00594000
  621. DVMASK EQU X'00F' SAME - FOR DEVICE @VA04250 00595000
  622. * * * * * * * * ------- -------- -------- ------- * 00596000
  623. PLISTCMD DC CL8' ' COMMAND @VA04250 00597000
  624. PLISTCUU DC CL8' ' CUU @VA04250 00598000
  625. PLISTUSR DC CL8' ' USERID @VA04250 00599000
  626. PLISTFNC DC 8X'FF' FENCE @VA04250 00600000
  627. PLISTL EQU *-PLISTCMD LENGTH OF PLIST @VA04250 00601000
  628. * * * * * * * * ------- -------- -------- ------- * 00602000
  629. FENCE DC 8X'FF' FENCE @VA04250 00603000
  630. BLANKER DC CL8' ' BLANKS X '40' @VA04250 00604000
  631. USERSAVE DC CL8'OPERATOR' DEFAULT USERID @VA04250 00605000
  632. * * * * * * * * ------- -------- -------- ------- * 00606000
  633. ERMSG712 DC C'DMMIOB712I DEVICE ''' MSG NUMBER @VA04250 00607000
  634. ERRORADD DC CL3' ' BAD ADDRESS @VA04250 00608000
  635. RESTERR DC C''' NOT FOUND' BALANCE OF THE MESSAGE @VA04250 00609000
  636. E712L EQU *-ERMSG712 LENGTH @VA04250 00610000
  637. * * * * * * * * ------- -------- -------- ------- * 00611000
  638. ERMSG713 DC C'DMMIOB713I USER ''' MESSAGE NUMBER @VA04250 00612000
  639. ERUSER DC CL8' ' USER @VA04250 00613000
  640. EREST DC C''' VMBLOK NOT FOUND' @VA04428 00614000
  641. E713L EQU *-ERMSG713 LENGTH @VA04250 00615000
  642. * * * * * * * * ------- -------- -------- ------- * 00616000
  643. HEADER DC CL16' ' HEADER @VA04250 00617000
  644. SUBCUM DC CL40'REPLACES SUBORDINATE CUBLOK- ' @V4075A2 00618500
  645. * * * * * * * * ------- -------- -------- ------- * 00619000
  646. SUBCUSW DC X'00' SUBORDINATE CU BLOCK SWITCH @VA04250 00620000
  647. SUB EQU X'FF' SUBORDINATE @VA04250 00621000
  648. PRIME EQU X'00' PRIME CU @VA04250 00622000
  649. * * * * * * * * ------- -------- -------- ------- * 00623000
  650. DS 0F @VA04250 00624000
  651. CHANMASK DC XL4'F00' MASK TO SEPARATE CHAN FROM CUU @VA04250 00625000
  652. CUMASK DC XL4'0F0' CONTROL UNIT @VA04250 00626000
  653. DEVMASK DC XL4'00F' DEVICE @VA04250 00627000
  654. BLANKOUT DC CL80' ' BLANKS FOR FILL @VA04830 00627500
  655. PATCH DC 50F'0' PATCH @VA04250 00628000
  656. LTORG @VA04250 00629000
  657. COPY VMBLOK @VA04250 00630000
  658. COPY VBLOKS @VA04250 00631000
  659. PSA PSA DSECT @VA04250 00632000
  660. COPY RBLOKS REAL IO BLOCKS @VA04250 00633000
  661. R0 EQU 0 R0 EQUALS REGISTER 0 @VA04250 00634000
  662. R1 EQU 1 R1 EQUALS REGISTER 1 @VA04250 00635000
  663. R2 EQU 2 R2 EQUALS REGISTER 2 @VA04250 00636000
  664. R3 EQU 3 R3 EQUALS REGISTER 3 @VA04250 00637000
  665. R4 EQU 4 R4 EQUALS REGISTER 4 @VA04250 00638000
  666. R5 EQU 5 R5 EQUALS REGISTER 5 @VA04250 00639000
  667. R6 EQU 6 R6 EQUALS REGISTER 6 @VA04250 00640000
  668. R7 EQU 7 R7 EQUALS REGISTER 7 @VA04250 00641000
  669. R8 EQU 8 R8 EQUALS REGISTER 8 @VA04250 00642000
  670. R9 EQU 9 R9 EQUALS REGISTER 9 @VA04250 00643000
  671. R10 EQU 10 R10 EQUALS REGISTER 10 @VA04250 00644000
  672. R11 EQU 11 R11 EQUALS REGISTER 11 @VA04250 00645000
  673. R12 EQU 12 R12 EQUALS REGISTER 12 @VA04250 00646000
  674. R13 EQU 13 R13 EQUALS REGISTER 13 @VA04250 00647000
  675. R14 EQU 14 R14 EQUALS REGISTER 14 @VA04250 00648000
  676. R15 EQU 15 R15 EQUALS REGISTER 15 @VA04250 00649000
  677. END 00650000