User Tools

Site Tools


ibm:vm370-lib:macro:rctlunit.macro_src

RCTLUNIT Source

References

Source Listing

RCTLUNIT.MACRO.txt
  1. MACRO 00001000
  2. RCTLUNIT &ADDRESS=,&CUTYPE=,&FEATURE=,&ALTCH= 00002000
  3. .* THIS MACRO GENERATES A REAL CONTROL UNIT BLOCK 00003000
  4. GBLA &CHADDR,&CUADDR,&DVADDR,&DEC,&RCUCNT 00004000
  5. GBLA &RDVCNT,&RCHCNT 00005000
  6. GBLB &RCODE 00006000
  7. GBLC &HEX,&CUTBL(512),&DVTBL(8) 00007000
  8. LCLA &COUNT,&INDEXA,&INDEXB,&RCHNOA(4) 00008000
  9. LCLC &NAMEX,&RCUADD,&RCUTYPE,&RCUSUB,&PRIME,&DUMMY 00008500
  10. LCLC &RCUNAM(4),&RCHNAM(4),&RCHNOC(4) 00009000
  11. LCLA &DEVCNT,&SUBCNT 00010000
  12. AIF (&RDVCNT EQ 0 OR &RCHCNT NE 0).ERR15 00011000
  13. &RCUSUB SETC '0' 00012000
  14. &RCUTYPE SETC '0' @VA03583 00012500
  15. &RCUADD SETC '&ADDRESS'(2,1) 00013000
  16. &SUBCNT SETA 0 00014000
  17. AIF (K'&ADDRESS NE 3).ERR1 00015000
  18. &RCHNOC(1) SETC '&ADDRESS'(1,1) 00015500
  19. &HEX SETC '&ADDRESS'(1,1) 00016000
  20. HEXDEC 00017000
  21. AIF (&RCODE).ERR1 00017100
  22. &RCHNOA(1) SETA &DEC 00017200
  23. AIF (T'&ALTCH EQ 'O').NOALT 00017300
  24. AIF ('&CUTYPE' EQ '2314' OR '&CUTYPE' EQ '2403').ALTOK 00017400
  25. AIF ('&CUTYPE' EQ '2404' OR '&CUTYPE' EQ '2803').ALTOK 00017500
  26. AIF ('&CUTYPE' EQ '2804' OR '&CUTYPE' EQ '2835').ALTOK 00017600
  27. AIF ('&CUTYPE' EQ '2841' OR '&CUTYPE' EQ '3803').ALTOK 00017700
  28. AIF ('&CUTYPE' EQ '3830').ALTOK 00017800
  29. AIF ('&CUTYPE' EQ '3880').ALTOK HRC011DK 00017850
  30. AIF ('&CUTYPE' EQ 'ISC').ALTOK 00017900
  31. AGO .ERR2 00018000
  32. .ALTOK AIF (N'&ALTCH GT 3).ERR3 00018100
  33. &COUNT SETA 0 00018200
  34. .LOOPALT ANOP 00018300
  35. &COUNT SETA &COUNT+1 00018400
  36. AIF (K'&ALTCH(&COUNT) NE 1).ERR3 00018500
  37. &RCHNOC(&COUNT+1) SETC '&ALTCH(&COUNT)' 00018600
  38. &HEX SETC '&ALTCH(&COUNT)' 00018700
  39. HEXDEC 00018800
  40. AIF (&RCODE).ERR3 00018900
  41. &RCHNOA(&COUNT+1) SETA &DEC 00019000
  42. AIF (&COUNT LT N'&ALTCH).LOOPALT 00019100
  43. .NOALT ANOP 00019200
  44. &HEX SETC '&ADDRESS'(2,1) 00020000
  45. HEXDEC 00021000
  46. AIF (&RCODE).ERR1 00022000
  47. &CUADDR SETA &DEC 00023000
  48. &HEX SETC '&ADDRESS'(3,1) 00024000
  49. HEXDEC 00025000
  50. AIF (&RCODE).ERR1 00026000
  51. &DVADDR SETA &DEC 00027000
  52. AIF (&DVADDR NE 0 AND &DVADDR NE 8).ERR1 00028000
  53. AIF ('&FEATURE' EQ '').NO16D 00030000
  54. AIF ('&DVADDR' NE '0').ERR4 00031000
  55. AIF ('&FEATURE' EQ '16-DEVICE').OK16 00032000
  56. .TST32 AIF ('&FEATURE' NE '32-DEVICE').TST48 00033000
  57. &SUBCNT SETA 1 00034000
  58. .* TABLE OF SUPPORTED 32-DEVICE FEATURE DEVICES 00035000
  59. AIF ('&CUTYPE' EQ '3880').OK16 HRC011DK 00036190
  60. AIF ('&CUTYPE' EQ '3830').OK16 HRC011DK 00036380
  61. AIF ('&CUTYPE' EQ '3272').OK16 HRC011DK 00036570
  62. AIF ('&CUTYPE' EQ '3274').OK16 HRC101DK 00036670
  63. AIF ('&CUTYPE' EQ '3174').OK16 HRC101DK 00036770
  64. AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00037000
  65. AIF ('&CUTYPE' EQ '2702' OR '&CUTYPE' EQ 'ISC').OK16 @VA2050 00038100
  66. AIF ('&CUTYPE' EQ '2848' OR '&CUTYPE' EQ 'IFA').OK16 00038110
  67. AGO .ERR5 00039000
  68. .TST48 AIF ('&FEATURE' NE '48-DEVICE').TST64 00040000
  69. &SUBCNT SETA 2 00041000
  70. .* TABLE OF SUPPORTED 48-DEVICE FEATURE DEVICES 00042000
  71. AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00043000
  72. AIF ('&CUTYPE' EQ '3830').OK16 00043050
  73. AIF ('&CUTYPE' EQ 'ISC' OR '&CUTYPE' EQ 'IFA').OK16 00043100
  74. AGO .ERR5 00044000
  75. .TST64 AIF ('&FEATURE' NE '64-DEVICE').TST80 00045000
  76. &SUBCNT SETA 3 00046000
  77. .* TABLE OF SUPPORTED 64-DEVICE FEATURE DEVICES 00047000
  78. AIF ('&CUTYPE' EQ '3174').OK16 HRC101DK 00047200
  79. AIF ('&CUTYPE' EQ '3880').OK16 HRC011DK 00047500
  80. AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00048000
  81. AIF ('&CUTYPE' EQ '3830').OK16 00048050
  82. AIF ('&CUTYPE' EQ 'ISC').OK16 @VA02050 00048100
  83. AGO .ERR5 00049000
  84. .TST80 AIF ('&FEATURE' NE '80-DEVICE').TST96 00050000
  85. &SUBCNT SETA 4 00051000
  86. .* TABLE OF SUPPORTED 80-DEVICE FEATURE DEVICES 00052000
  87. AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00053000
  88. AGO .ERR5 00054000
  89. .TST96 AIF ('&FEATURE' NE '96-DEVICE').TST112 00055000
  90. &SUBCNT SETA 5 00056000
  91. .* TABLE OF SUPPORTED 96-DEVICE FEATURE DEVICES 00057000
  92. AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00058000
  93. AGO .ERR5 00059000
  94. .TST112 AIF ('&FEATURE' NE '112-DEVICE').TST128 00060000
  95. &SUBCNT SETA 6 00061000
  96. .* TABLE OF SUPPORTED 112-DEVICE FEATURE DEVICES 00062000
  97. AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00063000
  98. AGO .ERR5 00064000
  99. .TST128 AIF ('&FEATURE' NE '128-DEVICE').TST144 00065000
  100. &SUBCNT SETA 7 00066000
  101. .* TABLE OF SUPPORTED 128-DEVICE FEATURE DEVICES 00067000
  102. AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00068000
  103. AGO .ERR5 00069000
  104. .TST144 AIF ('&FEATURE' NE '144-DEVICE').TST160 00070000
  105. &SUBCNT SETA 8 00071000
  106. .* TABLE OF SUPPORTED 144-DEVICE FEATURE DEVICES 00072000
  107. AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00073000
  108. AGO .ERR5 00074000
  109. .TST160 AIF ('&FEATURE' NE '160-DEVICE').TST176 00075000
  110. &SUBCNT SETA 9 00076000
  111. .* TABLE OF SUPPORTED 160-DEVICE FEATURE DEVICES 00077000
  112. AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00078000
  113. AGO .ERR5 00079000
  114. .TST176 AIF ('&FEATURE' NE '176-DEVICE').TST192 00080000
  115. &SUBCNT SETA 10 00081000
  116. .* TABLE OF SUPPORTED 176-DEVICE FEATURE DEVICES 00082000
  117. AIF ('&CUTYPE' EQ '2703' OR '&CUTYPE' EQ '3705').OK16 00083000
  118. AGO .ERR5 00084000
  119. .TST192 AIF ('&FEATURE' NE '192-DEVICE').TST208 00085000
  120. &SUBCNT SETA 11 00086000
  121. .* TABLE OF SUPPORTED 192-DEVICE FEATURE DEVICES 00087000
  122. AIF ('&CUTYPE' EQ '3705').OK16 00088000
  123. AGO .ERR5 00089000
  124. .TST208 AIF ('&FEATURE' NE '208-DEVICE').TST224 00090000
  125. &SUBCNT SETA 12 00091000
  126. .* TABLE OF SUPPORTED 208-DEVICE FEATURE DEVICES 00092000
  127. AIF ('&CUTYPE' EQ '3705').OK16 00093000
  128. AGO .ERR5 00094000
  129. .TST224 AIF ('&FEATURE' NE '224-DEVICE').TST240 00095000
  130. &SUBCNT SETA 13 00096000
  131. .* TABLE OF SUPPORTED 224-DEVICE FEATURE DEVICES 00097000
  132. AIF ('&CUTYPE' EQ '3705').OK16 00098000
  133. AGO .ERR5 00099000
  134. .TST240 AIF ('&FEATURE' NE '240-DEVICE').TST256 00100000
  135. &SUBCNT SETA 14 00101000
  136. .* TABLE OF SUPPORTED 240-DEVICE FEATURE DEVICES 00102000
  137. AIF ('&CUTYPE' EQ '3705').OK16 00103000
  138. AGO .ERR5 00104000
  139. .TST256 AIF ('&FEATURE' NE '256-DEVICE').ERR6 00105000
  140. &SUBCNT SETA 15 00106000
  141. .* TABLE OF SUPPORTED 256-DEVICE FEATURE DEVICES 00107000
  142. AIF ('&CUTYPE' EQ '3705').OK16 00108000
  143. AGO .ERR5 00109000
  144. .OK16 ANOP 00110000
  145. &NAMEX SETC 'RCU'.'&ADDRESS'(1,1).'&RCUADD'.'8' 00111000
  146. .NO16D ANOP 00112000
  147. &COUNT SETA 1 00113000
  148. .CUTAB ANOP 00113100
  149. &RCUNAM(&COUNT) SETC 'RCU'.'&RCHNOC(&COUNT)'.'&RCUADD'.'&ADDRESS'(3,1) 00113200
  150. &RCHNAM(&COUNT) SETC 'RCHAN'.'&RCHNOC(&COUNT)' 00113300
  151. &INDEXA SETA &RCHNOA(&COUNT)*32+&CUADDR*2+&DVADDR/8+1 00113400
  152. &DUMMY SETC '&CUTBL(&INDEXA)' 00113410
  153. AIF ('&CUTBL(&INDEXA)' NE '').ERR8 00113420
  154. &CUTBL(&INDEXA) SETC '&RCUNAM(1)' 00113500
  155. .CUTBFIL ANOP 00113600
  156. &COUNT SETA &COUNT+1 00113700
  157. AIF (&COUNT LE N'&ALTCH+1).CUTAB 00113800
  158. AIF (&COUNT GT 4).CUTABND 00113900
  159. &RCHNAM(&COUNT) SETC '0' 00114000
  160. AGO .CUTBFIL 00114100
  161. .CUTABND ANOP 00114200
  162. AIF (&RCUCNT NE 0).N1ST 00116000
  163. ENTRY DMKRIOCU 00117000
  164. DMKRIOCU DS 0D 00118000
  165. .N1ST ANOP 00119000
  166. &RCUNAM(1) DS 0D 00120000
  167. AIF ('&FEATURE' EQ '').N16D 00121000
  168. &NAMEX EQU &RCUNAM(1) 00122000
  169. .N16D AIF ('&RCUSUB' NE '0').SUB 00123000
  170. &PRIME SETC '&RCUNAM(1)' 00124000
  171. .SUB ANOP 00125000
  172. &RCUADD SETC '&RCUADD'.'&ADDRESS'(3,1) 00126000
  173. DC XL2'0&RCUADD' -RCUADD 00127000
  174. DC H'0' - RCULOCK 00128000
  175. DC AL1(RCUDISA+RCUCHAOF+RCUCHBOF+RCUCHCOF+RCUCHDOF) RCUSTAT 00129000
  176. AIF ('&CUTYPE' EQ '2314' OR '&CUTYPE' EQ '2844').SSUB 00130000
  177. AIF ('&CUTYPE' EQ '2403' OR '&CUTYPE' EQ '2803').SSUB 00131000
  178. AIF ('&CUTYPE' EQ '2404' OR '&CUTYPE' EQ '2804').SSUB 00132000
  179. AIF ('&CUTYPE' EQ '2415' OR '&CUTYPE' EQ '3411').SSUB 00133000
  180. AIF ('&CUTYPE' EQ '3345').SSUB @VA05692 00134100
  181. AIF ('&CUTYPE' EQ '2820' OR '&CUTYPE' EQ '2841').SSUB 00135000
  182. AIF ('&CUTYPE' EQ '2840' OR '&CUTYPE' EQ '2848').SSUB 00136000
  183. AIF ('&CUTYPE' EQ '3272').SSUB 00137000
  184. AIF ('&CUTYPE' EQ '3274').SSUB HRC101DK 00137500
  185. AIF ('&CUTYPE' EQ '3803' OR '&CUTYPE' EQ '2319').SSUB 00138000
  186. AIF ('&CUTYPE' EQ 'CTCA').SSUB 00139000
  187. AIF ('&CUTYPE' EQ '3174').TYPE HRC101DK 00141000
  188. AIF ('&CUTYPE' NE '2701' AND '&CUTYPE' NE '2702' *00143000
  189. AND '&CUTYPE' NE '2703' *00144090
  190. AND '&CUTYPE' NE '3880').TYPE HRC011DK 00144180
  191. .* IF CUTYPE IS 3066, 3138, 3148, 3158, 3036, 3830, 3851, 00144500
  192. .* ISC OR IFA, THEN RCUTYPE HAS BEEN SET TO 0 AND WE NOW 00144700
  193. .* BRANCH TO LABEL .TYPE 00144800
  194. &RCUTYPE SETC 'RCU&CUTYPE' 2701, 2702, 2703 OR 3880 HRC011DK 00145490
  195. AGO .TYPE 00146000
  196. .SSUB ANOP 00147000
  197. &RCUTYPE SETC 'RCUSHRD' 00148000
  198. .TYPE ANOP 00149000
  199. DC AL1(&RCUTYPE+&RCUSUB) RCUTYPE 00150000
  200. DC H'0' - RESERVED 00151000
  201. DC A(&RCUNAM(1)) - RCUFIOB 00152000
  202. DC A(&RCUNAM(1)) - RCULIOB 00153000
  203. AIF ('&RCUSUB' EQ '0').PRIME 00154000
  204. DC A(&PRIME) - POINTER TO PRIMARY CONTROL UNIT 00155000
  205. DC 3A(0) - RESERVED 00156000
  206. AGO .NTPRIME 00157000
  207. .PRIME ANOP 00158000
  208. DC A(&RCHNAM(1)) - RCUCHA 00159000
  209. DC A(&RCHNAM(2)) - RCUCHB 00159500
  210. DC A(&RCHNAM(3)) - RCUCHC 00160000
  211. DC A(&RCHNAM(4)) - RCUCHD 00160500
  212. .NTPRIME ANOP 00162000
  213. DC A(&RCUNAM(1)) - RCURSTQ 00163000
  214. DC F'0' - RCUOPER 00164000
  215. DS 0D RCUDVTBL 00165000
  216. &COUNT SETA 1 00166000
  217. .ZERO1 ANOP 00167000
  218. &DVTBL(&COUNT) SETC '0' 00168000
  219. &COUNT SETA &COUNT+1 00169000
  220. AIF (&COUNT LE 8).ZERO1 00170000
  221. &CHADDR SETA &RCHNOA(1) 00171000
  222. RDVTBL GEN 00172000
  223. AIF (&DVADDR LT 8).LOWR 00173000
  224. DC 8H'-1' - 00174000
  225. .LOWR ANOP 00175000
  226. &DEVCNT SETA 0 00176000
  227. &COUNT SETA 1 00177000
  228. .LOOP1 ANOP 00178000
  229. AIF ('&DVTBL(&COUNT)' EQ '0').NDEV1 00179000
  230. DC AL2((&DVTBL(&COUNT)-DMKRIODV)/8) 00180000
  231. &DEVCNT SETA &DEVCNT+1 00181000
  232. AGO .CONT1 00182000
  233. .NDEV1 ANOP 00183000
  234. DC H'-1' - 00184000
  235. .CONT1 ANOP 00185000
  236. &COUNT SETA &COUNT+1 00186000
  237. AIF (&COUNT LE 8).LOOP1 00187000
  238. AIF (&DVADDR GE 8).END 00188000
  239. AIF ('&FEATURE' EQ '').HIGHR 00189000
  240. &COUNT SETA 1 00190000
  241. .ZERO2 ANOP 00191000
  242. &DVTBL(&COUNT) SETC '0' 00192000
  243. &COUNT SETA &COUNT+1 00193000
  244. AIF (&COUNT LE 8).ZERO2 00194000
  245. &DVADDR SETA 8 00195000
  246. &CHADDR SETA &RCHNOA(1) 00196000
  247. RDVTBL GEN 00197000
  248. &COUNT SETA 1 00198000
  249. .LOOP2 ANOP 00199000
  250. AIF ('&DVTBL(&COUNT)' EQ '0').NDEV2 00200000
  251. DC AL2((&DVTBL(&COUNT)-DMKRIODV)/8) 00201000
  252. AGO .CONT2 00202000
  253. .NDEV2 ANOP 00203000
  254. DC H'-1' - 00204000
  255. .CONT2 ANOP 00205000
  256. &COUNT SETA &COUNT+1 00206000
  257. AIF (&COUNT LE 8).LOOP2 00207000
  258. AGO .END 00208000
  259. .HIGHR ANOP 00209000
  260. DC 8H'-1' - 00210000
  261. .END ANOP 00211000
  262. AIF ('&CUTYPE' EQ 'CTCA' AND &DEVCNT NE 1).ERR7 00212000
  263. &RCUCNT SETA &RCUCNT+1 00213000
  264. SPACE 3 00214000
  265. AIF ('&SUBCNT' EQ '0').MEND 00215000
  266. &SUBCNT SETA &SUBCNT-1 00216000
  267. &RCUSUB SETC 'RCUSUB' 00217000
  268. &CUADDR SETA &CUADDR+1 00218000
  269. &DEC SETA &CUADDR 00219000
  270. DECHEX 00220000
  271. AIF (&RCODE).ERR1 00221000
  272. &RCUADD SETC '&HEX' 00222000
  273. &DVADDR SETA 0 00223000
  274. AGO .OK16 00224000
  275. .MEND MEXIT 00225000
  276. .ERR1 MNOTE 8,'INVALID CONTROL UNIT ADDRESS' 00226000
  277. MEXIT 00227000
  278. .ERR2 MNOTE 8,'''ALTCH'' IS INVALID FOR CUTYPE ''&CUTYPE''' 00227200
  279. MEXIT 00227400
  280. .ERR3 MNOTE 8,'INVALID ALTCH SPECIFICATION' 00227600
  281. MEXIT 00227800
  282. .ERR4 MNOTE 8,'INVALID CONTROL UNIT ADDRESS FOR SPECIFIED FEATURE' 00228000
  283. MEXIT 00229000
  284. .ERR5 MNOTE 8,'INVALID CONTROL UNIT TYPE FOR SPECIFIED FEATURE' 00230000
  285. MEXIT 00231000
  286. .ERR6 MNOTE 8,'INVALID FEATURE SPECIFIED' 00232000
  287. MEXIT 00233000
  288. .ERR7 MNOTE 8,'INVALID DEVICE CONFIGURATION' 00234000
  289. MEXIT 00235000
  290. .ERR8 MNOTE 8,'CHANNEL TABLE FOR &RCUNAM(1) IN USE BY &DUMMY' 00235100
  291. MEXIT 00235200
  292. .ERR15 MNOTE 12,'RCTLUNIT MACRO OUT OF SEQUENCE' 00236000
  293. MEND 00237000
ibm/vm370-lib/macro/rctlunit.macro_src.txt ยท Last modified: 2023/08/06 13:38 by Site Administrator