Table of Contents

DMKSEV Source

References

Source Listing

DMKSEV.ASSEMBLE.txt
  1. SEV TITLE 'DMKSEV (CP) VM/370 - RELEASE 6' 00001000
  2. ISEQ 73,80 VALIDATE INPUT SEQUENCE FIELDS @V200820 00002000
  3. PUNCH 'SPB' FORCE PAGE-BOUNDARY ALIGNMENT @VM08727 00003000
  4. DMKSEV CSECT 00004000
  5. MODULEID DC CL8'DMKSEV' @VA01068 00005000
  6. ********************************************************************** 00006000
  7. * 00007000
  8. * MODULE NAME - DMKSEV 00008000
  9. * 00009000
  10. * FUNCTION 00010000
  11. * THIS ROUTINE WILL ANALYZE THE 2870 CHANNEL LOGOUT AND 00011000
  12. * SET APPROPRIATE BITS IN THE ECSW FIELD ACCORDING TO THE 00012000
  13. * RESULTS OF THIS ANALYSIS. IT WILL ALSO MOVE THE CHANNEL 00013000
  14. * LOGOUT TO THE CHANNEL CHECK RECORD. 00014000
  15. * 00015000
  16. * ENTRY POINTS 00016000
  17. * DMKSEV - FROM THE CHANNEL CONTROL ROUTINE 00017000
  18. * 00018000
  19. * INPUT 00019000
  20. * 1. CHANNEL LOGOUT DATA 00020000
  21. * 2. POINTER TO THE CHANNEL CHECK RECORD 00021000
  22. * 3. POINTER TO THE CCH SWITCH FIELD (ENTSW) 00022000
  23. * 00023000
  24. * OUTPUT 00024000
  25. * 1. APPROPRIATE BITS ARE SET IN THE CCH RECORD 00025000
  26. * FIELD (FAILECSW). 00026000
  27. * 2. THE CHANNEL LOGOUT IS MOVE TO THE CCH RECORD. 00027000
  28. * 00028000
  29. * EXTERNAL REFERENCES 00029000
  30. * CHANNEL LOGOUT (LOCATION X'130') 00030000
  31. * 00031000
  32. * EXIT - NORMAL 00032000
  33. * RETURN TO THE CCH CONTROL ROUTINE VIA REGISTER 14. 00033000
  34. * 00034000
  35. * EXIT - ERROR 00035000
  36. * NONE 00036000
  37. * 00037000
  38. * TABLES / WORK AREA 00038000
  39. * THE CHANNEL CHECK RECORD 00039000
  40. * 00040000
  41. * ATTRIBUTES 00041000
  42. * DMKSEV IS PRIVILEGED AND REUSABLE 00042000
  43. * 00043000
  44. * CHARACTER CODE DEPENDENCIES 00044000
  45. * NONE 00045000
  46. * 00046000
  47. * NOTE 00047000
  48. * NONE 00048000
  49. * 00049000
  50. ********************************************************************** 00050000
  51. EJECT 00051000
  52. ********************************************************************** 00052000
  53. ********************************************************************** 00053000
  54. LOGWD1A EQU 304 1ST HALF OF LOGOUT WORD 1 00054000
  55. LOGWD1B EQU 308 2ND HALF OF LOGOUT WORD 1 00055000
  56. LOGWD2A EQU 312 1ST HALF OF LOGOUT WORD 2 00056000
  57. LOGWD2B EQU 316 12ND HALF OF LOGOUT WORD 2 00057000
  58. LOGWD3A EQU 320 1ST HALF OF LOGOUT WORD 3 00058000
  59. LOGWD3B EQU 324 2ND HALF OF LOGOUT WORD 3 00059000
  60. ********************************************************************** 00060000
  61. EJECT 00061000
  62. ********************************************************************** 00062000
  63. ENTRY DMKSEV70 00063000
  64. DMKSEV70 EQU * 00064000
  65. USING PSA,R0 SETUP ADDRESSABILITY FOR LOWCORE 00065000
  66. USING SAVEAREA,R13 SETUP ADDRESSABILITY FOR SAVE AREA 00066000
  67. USING *,R12 SETUP ADDRESSABILITY FOR MODULE 00067000
  68. USING CCHREC,R9 SETUP ADDRESSABILITY FOR CCH RECORD 00068000
  69. USING IOERBLOK,R4 SETUP ADDRESSABILITY FO I/O ERROR 00069000
  70. * BLOCK 00070000
  71. LR R1,R12 SAVE THE BASE REG. TO AVIOD DESTROYING 00071000
  72. LR R12,R15 SETUP BASE ADDRESS 00072000
  73. STM R2,R0,CCHSAVE SAVE ALL REGS. EXECPT REGISTER 1 00073000
  74. ST R1,CCHSAVE+40 SAVE THE CONTENT OF REGISTER 12 00074000
  75. LA R2,6 SETUP COUNT VALUE FOR LOOP 00075000
  76. LA R1,X'130' GET THE ADDRESS OF THE I/O EXTENDED 00076000
  77. * LOGOUT 00077000
  78. CCHLOGU EQU * 00078000
  79. CLC 0(4,R1),FFS HAS CHANNEL LOGOUT ? 00079000
  80. BE CLEANUP NO, GO SET SYSTEM TERMINATION 00080000
  81. LA R1,4(R1) UPDATE THE I/O EXTENDED LOGOUT POINTER 00081000
  82. BCT R2,CCHLOGU GO TEST NEXT LOCATION 00082000
  83. TM LOGWD3B+1,X'40' CHECK INDICATOR IN WORD 2 00083000
  84. BZ CCH140 NO, GO SET COMMAND ADDR VALID 00084000
  85. TM LOGWD2B,X'70' ANY PARITY BITS ON ? 00085000
  86. BZ CCH140 NO, SET COMMAND ADDR VALID 00086000
  87. OI IGBLAME,CCHCHNL INDICATE CHANNEL IS SOURCE OF ERROR 00087000
  88. B CCH141 00088000
  89. CCH140 EQU * 00089000
  90. TM LOGWD3B+1,X'10' IS STORAGE CHECK SET ? 00090000
  91. BZ CCH140A NO, GO SET COMMAND ADDR VALID 00091000
  92. TM LOGWD3A,X'80' IS THIS CAW FETCH ? 00092000
  93. BO CCH141 YES, GO CHECK FOR CHANNEL CONTROL 00093000
  94. * CHECK 00094000
  95. CCH140A EQU * 00095000
  96. OI IGVALIDB,CCHCMDV SET COMMAND ADDRESS VALID FLAG 00096000
  97. CCH141 EQU * 00097000
  98. TM CSW+5,CCC IS CHANNEL CONTROL CHECK INDICATED ? 00098000
  99. BO CCH141B IF YES, CHECK LS ADDER 00099000
  100. CCH141H EQU * 00100000
  101. TM LOGWD3B+2,X'02' IS ADDR-IN CHECK UP ? 00101000
  102. BZ CCH141D NO, GO TEST FOR UA ADDRESS 00102000
  103. CCH141A EQU * 00103000
  104. OI IGBLAME,CCHINTFC THE INTERFACE IS THE SOURCE OF THE 00104000
  105. * ERROR 00105000
  106. B CCH141F GO TEST FOR STORAGE CHECK 00106000
  107. CCH141B EQU * 00107000
  108. TM LOGWD3B+1,X'20' IS LOCAL STORE ADDRESS CHECK UP ? 00108000
  109. BZ CCH141C NO, GO TEST FOR UNIT ADDRESS 00109000
  110. TM LOGWD3B,X'04' IS BIT 37 SET IN LOGOUT ? 00110000
  111. BZ CCH141E NO, GO INDICATE CHANNEL ERROR 00111000
  112. OI IGBLAME,CCHCPU INDICATE CPU ERROR 00112000
  113. B CCH141F GO TEST FOR STORAGE CHECK 00113000
  114. CCH141C EQU * 00114000
  115. TM LOGWD3B+2,X'80' IS UNIT ADDR CHECK SET ? 00115000
  116. BO CCH141E YES, GO INDICATE CHANNEL ERROR 00116000
  117. B CCH141H GO CHECK ADDR-IN CHECK IN LOGOUT 00117000
  118. CCH141D EQU * 00118000
  119. TM ENTSW,TIOCCH IS THIS AN ERROR ON A TIO ? 00119000
  120. BZ VALIDCCH NO, GO SET UA VALID FLAG 00120000
  121. CLC SIOADDR+1(1),LOGWD3A+3 IS THE UNIT ADDRESS EQUAL TO THE 00121000
  122. * UNIT ADDRESS IN THE LOGOUT 00122000
  123. BNE CCH141F NO, GO TEST FOR STORAGE CHECK 00123000
  124. VALIDCCH EQU * 00124000
  125. OI IGVALIDB,CCHDAV SET UNIT ADDRESS VALID FLAG 00125000
  126. B CCH141F GO CHECK FOR STORAGE CHECK 00126000
  127. CCH141E EQU * 00127000
  128. OI IGBLAME,CCHCHNL INDICATE CHANNEL IS SOURCE OF 00128000
  129. * ERROR 00129000
  130. CCH141F EQU * 00130000
  131. TM LOGWD3B+1,X'10' IS STORAGE CHECK INDICATED ? 00131000
  132. BZ CCH142 NO, GO CHECK PARITY FOR COUNT 00132000
  133. TM LOGWD3B,X'02' IS BIT 38 IN LOGOUT ON ? 00133000
  134. BZ CCH141G NO, GO INDICATE STORAGE ERROR 00134000
  135. OI IGBLAME,CCHCHNL INDICATE CHANNEL ERROR AS SOURCE 00135000
  136. TM LOGWD3A,X'40' CCW REQUIRED ON ? 00136000
  137. BZ CCH142 NO, GO CHECK PARITY FOR COUNT 00137000
  138. B CCH143A GO CHECK BIT 45 IN LOGOUT 00138000
  139. CCH141G EQU * 00139000
  140. OI IGBLAME,CCHSTG THE STORAGE IS THE SOURCE OF THE ERROR 00140000
  141. B CCH143A GO TEST LOGOUT BITS 00141000
  142. SPACE 2 00142000
  143. ********************************************************************** 00143000
  144. * CHECK FOR VALID COUNT 00144000
  145. ********************************************************************** 00145000
  146. SPACE 2 00146000
  147. CCH142 EQU * 00147000
  148. TM LOGWD3B+1,X'08' IS BYTE COUNT PARITY BAD 00148000
  149. BO CCH142A YES, INDICATE CHANNEL IS THE SOURCE 00149000
  150. * OF THE ERROR 00150000
  151. TM LOGWD3B+2,X'20' BYTE COUNT BAD (SSC ONLY) ? 00151000
  152. BO CCH142A YES, INDICATE CHANNEL IS SOURCE 00152000
  153. * OF THE ERROR 00153000
  154. TM LOGWD3B+1,X'80' UCW COUNT CHECK 00154000
  155. BZ CCH143 NO, GO SET VALID FLAG FOR COUNT 00155000
  156. TM LOGWD2B,X'03' ANY UCW PARITY BITS ? 00156000
  157. BNZ CCH142A YES, GO INDICATE CHANNEL ERROR AS THE 00157000
  158. * SOURCE OF THE ERROR 00158000
  159. CCH143 EQU * 00159000
  160. OI IGPRGFLG,CCHCNTB SET THE VALID FLAG FOR THE COUNT 00160000
  161. CCH143A EQU * 00161000
  162. TM LOGWD3B+1,X'06' IS BIT 45 OR 46 ON IN LOGOUT ? 00162000
  163. BZ CCH144 NO, GO CHECK STATUS-IN 00163000
  164. CCH142A EQU * 00164000
  165. OI IGBLAME,CCHCHNL INDICATE CHANNEL ERROR AS SOURCE 00165000
  166. CCH144 EQU * 00166000
  167. TM LOGWD3B+2,X'01' IS STATUS-IN CHECK UP ? 00167000
  168. BNO CCH145 GO CHECK FOR SYSTEM RESET 00168000
  169. CCH144A EQU * 00169000
  170. OI IGBLAME,CCHINTFC INTERFACE IS SOURCE OF ERROR 00170000
  171. B CCH145A GO CHECK FOR SYSTEM RESET 00171000
  172. CCH145 EQU * 00172000
  173. TM CSW+5,IFCC IS THIS AN INTERFACE CONTROL CHECK ? 00173000
  174. BO CCH145A NO, CHECK FOR SYSTEM RESET 00174000
  175. OI IGVALIDB,CCHUSV SET VALID FLAG FORUNIT STATUS 00175000
  176. CCH145A EQU * 00176000
  177. L R2,LOGWD3B GET CHANNEL CHECK INFORMATION 00177000
  178. N R2,SYSRESET CHECK FOR SYSTEM RESET 00178000
  179. BZ CCH146 NO, GO CHECK CSW 00179000
  180. TM LOGWD3A+2,X'10' IS EC INSTALLED ? 00180000
  181. BO CCH145B YES, SET SELECTIVE RESET 00181000
  182. OI IGTERMSQ,COMPSYS+RTCODE7 SET SYSTEM RESET COMP & RETRY 00182000
  183. B CCHRETRN GO INITIALIZE LOGOUT AREA 00183000
  184. CCH145B EQU * 00184000
  185. OI IGVALIDB,CCHDAV SET THE DEVICE ADDRESS VALID 00185000
  186. NI IGVALIDB,X'FF'-CCHCMDV SET THE COMMAND INVALID 00186000
  187. NI IGPRGFLG,X'FF'-CCHCNTB SET THE COUNT INVALID 00187000
  188. TM ENTSW,INTERCCH WAS THIS FROM AN I/O INTERRUPT ? 00188000
  189. BZ CCH146A NO, GO SET RETRY CODE 00189000
  190. TM LOGWD3B+2,X'82' IS THIS A UNIT ADDRESS OR ADDR-IN 00190000
  191. * CHECK ? 00191000
  192. BZ CCH146A NO, GO SET THE RETRY CODE 00192000
  193. NI IGVALIDB,X'FF'-CCHDAV SET DEVICE ADDRESS INVALID 00193000
  194. B CCH146A GO SET THE RETRY CODE 00194000
  195. CCH146 EQU * 00195000
  196. TM CSW+5,CCC+IFCC CHECK FOR BOTH CHANNEL CONTROL AND 00196000
  197. * INTERFACE CONTROL CHECK ? 00197000
  198. BM CCH147 YES, GO CHECK FOR INTERFACE CONTROL 00198000
  199. * CHECK ? 00199000
  200. TM LOGWD3B,X'01' IS SECOND CHECK SET ? 00200000
  201. BZ CCH146A NO, GO SET THE TERMINATION CODE 00201000
  202. OI IGBLAME,CCHCHNL INDICATE CHANNEL IS SOURCE OF 00202000
  203. * ERROR 00203000
  204. OI IGTERMSQ,COMPSYS+RTCODE7 SET SYSTEM RESET AND RETRY CODE 00204000
  205. B CCHRETRN GO INITIALIZE LOGOUT AREA 00205000
  206. CCH146A EQU * 00206000
  207. OI IGTERMSQ,COMPSEL+RTCODE7 SET SELECTIVE RESET 00207000
  208. * AND THE RETRY CODE 00208000
  209. B CCHRETRN GO INITIALIZE LOGOUT AREA 00209000
  210. CCH147 EQU * 00210000
  211. TM CSW+5,IFCC IS THIS AN INTERFACE CONTROL CHECK ? 00211000
  212. BO CCH148 YES, GO INDICATE INTERFACE AS SOURCE OF 00212000
  213. * ERROR 00213000
  214. OI IGTERMSQ,COMPFES SET COMP CODE TO SHOW FES 00214000
  215. TM ENTSW,TIOCCH+HIOCCH IS THIS ON A SIO INSTRUCTION ? 00215000
  216. BZ CCH150 YES, GO CHECK FOR CAW 00216000
  217. TM ENTSW,TIOCCH IS THIS ON A TIO INSTRUCTION ? 00217000
  218. BO CCH149 YES, CHECK THE TIO BIT 00218000
  219. CCH162 EQU * 00219000
  220. TM LOGWD3A,X'01' IS THIS A PSUEDO SIO ? 00220000
  221. BZ CCH151 NO, GO TEST FOR TMODE TRIGGER 00221000
  222. TM LOGWD3A,X'04' IS TTHE TIO FLAG ON ? 00222000
  223. BO CCH152 YES, GO SET TERMINATION CODE 00223000
  224. CCH151 EQU * 00224000
  225. TM LOGWD3A+1,X'04' IS MODE TRIGGER 6 ON ? 00225000
  226. BO CCH153 YES, GO CHECK COMMAND CHECK 00226000
  227. TM LOGWD3A+2,X'E0' IS MODE TRIGGER 9, 10, OR 11 ON ? 00227000
  228. BNZ CCH153 YES, GO CHECK COMMAND CHECK 00228000
  229. TM LOGWD3A+1,X'70' IS MODE TRIGGER 2, 3, OR 4 ON ? 00229000
  230. BZ CCH154 NO, GO CHECK COUNT 00230000
  231. B CCH157 GO SET THE RETRY CODE 00231000
  232. CCH153 EQU * 00232000
  233. TM LOGWD3B+2,X'40' IS COMMAND CHECK ON IN LOGOUT ? 00233000
  234. BO CCH165B YES, GO INDICATE SOURCE OF ERROR 00234000
  235. CCH154 EQU * 00235000
  236. TM IGPRGFLG,CCHCNTB IS THE VALIDITY FLAG ON FOR COUNT 00236000
  237. BO CCH155 YES, GO CHECK COMMAND ADDRESS 00237000
  238. CCH156 EQU * 00238000
  239. OI IGTERMSQ,RTCODE5 SET RETRY CODE TO (101) 00239000
  240. B CCHRETRN GO INITIALIZE LOGOUT AREA 00240000
  241. CCH156A EQU * 00241000
  242. OI IGTERMSQ,COMPSEL SET THE TERMINATION CODE 00242000
  243. B CCH156 GO SET SEQUENCE CODE 00243000
  244. CCH155 EQU * 00244000
  245. TM IGVALIDB,CCHCMDV IS THE COMMAND ADDRESS VALID ? 00245000
  246. BZ CCH156 NO, GO SET SEQUENCE CODE 00246000
  247. L R2,CSW GET THE CSW ADDRESS 00247000
  248. LA R2,0(R2) CLEAR THE HIGH ORDER BYTE 00248000
  249. S R2,F8 GET THE ADDRESS OF THE LAST CCW 00249000
  250. BM CCH156 NEGATIVE VALUE , GO INDICATE THAT 00250000
  251. * IT IS INVALID 00251000
  252. LH R3,6(R2) GET COUNT FROM CCW 00252000
  253. N R3,XRIGHT16 CLEAR LOW ORDER BITS 00253000
  254. LH R2,CSW+6 GET THE COUNT FROM THE CSW FIELD 00254000
  255. N R2,XRIGHT16 CLEARED UNWANTED BITS 00255000
  256. CR R2,R3 IS THE CSW COUNT GREATER THAN CCW 00256000
  257. * COUNT ? 00257000
  258. BH CCH155B YES, GO INDICATE UNIT ADDRESS VALID 00258000
  259. BNE CCH157 GO SET RETRY CODE 00259000
  260. CCH155A EQU * 00260000
  261. OI IGTERMSQ,RTCODE2 SET RETRY CODE TO (010) 00261000
  262. B CCHRETRN GO INITIALIZE THE LOGOUT AREA 00262000
  263. CCH155B EQU * 00263000
  264. TM IGVALIDB,CCHDAV IS THE UNIT ADDRESS VALID ? 00264000
  265. BZ CCH163 NO, GO SET RETRY CODE 00265000
  266. CCH155C EQU * 00266000
  267. CLI SIOADDR+1,X'C0' IS THIS A MPX CHANNEL ? 00267000
  268. BNL CCH156D NO, GO GET LOW ORDER DATA BYTE 00268000
  269. NI IGVALIDB,X'FF'-CCHCNTB SET COUNT INVALID 00269000
  270. B CCH156 GO SET RETRY CODE TO (101) 00270000
  271. CCH156D EQU * 00271000
  272. IC R2,3(R3) GET LOW DATA ADDRESS BITS 00272000
  273. N R2,F7 CLEAR UNWANTED BITS 00273000
  274. SR R1,R1 CLEAR REGISTER 1 00274000
  275. IC R1,LOGWD3B+3 GET LOGOUT BYTE COUNT BITS 00275000
  276. SRL R1,4 ISOLATE THE LOW ORDER BITS 00276000
  277. N R1,F7 CLEAR ANY UNWANTED BITS 00277000
  278. CR R2,R1 DOES CCW BITS EQUAL LOGOUT BITS ? 00278000
  279. BNE CCH157 NO, GO SET RETRY CODE TO (011) 00279000
  280. B CCH155A GO SET RETRY CODE TO (010) 00280000
  281. CCH148 EQU * 00281000
  282. OI IGBLAME,CCHINTFC INTERFACE IS THE SOURCE OF THE 00282000
  283. * ERROR 00283000
  284. TM LOGWD1A,X'03' ARE ANY BITS SET IN THE LOGOUT ? 00284000
  285. BNZ CCH148A YES, GO CHECK TAG SEQUENCE FLAG 00285000
  286. CCH148C EQU * 00286000
  287. TM LOGWD3A+1,X'08' IS BIT 12 ON IN THE LOGOUT ? 00287000
  288. BO CCH148A YES, GO CHECK TAG SEQUENCE FLAG 00288000
  289. CCH148B EQU * 00289000
  290. OI IGTERMSQ,COMPSEL+RTCODE3 SET THE SELECTIVE RESET AND 00290000
  291. * THE RETRY CODE 00291000
  292. B CCHRETRN GO INITIALIZE THE LOGOUT AREA 00292000
  293. CCH148A EQU * 00293000
  294. TM LOGWD3B+2,X'04' IS THE TAG SEQUENCE INCORRECT ? 00294000
  295. BZ CCH158 NO, GO TEST THE SELECTION FLAG 00295000
  296. TM LOGWD3A+1,X'08' IS BIT 12 ON IN THE LOGOUT ? 00296000
  297. BO CCH156A YES, GO SET THE TERMINATION CODE 00297000
  298. B CCH146A GO SET THE RETRY CODE AND SELECTIVE 00298000
  299. * RESET CODE 00299000
  300. CCH158 EQU * 00300000
  301. TM LOGWD3B+2,X'10' IS THIS SELECTION INCORRECT ? 00301000
  302. BZ CCH159 NO, GO TEST THE RESPONSE FLAG 00302000
  303. OI IGTERMSQ,COMPSEL+RTCODE4 SET THE TERMINATION AND RETRY 00303000
  304. * CODE TO (100) 00304000
  305. B CCHRETRN GO INITIALIZE THE LGOUT AREA 00305000
  306. CCH159 EQU * 00306000
  307. TM LOGWD3B+2,X'08' IS THE RESPONSE FLAG ON ? 00307000
  308. BZ CCH160 NO, GO TEST THE STATUS-IN FLAG 00308000
  309. OI IGTERMSQ,COMPFES+RTCODE4 SET THE TERMINATION CODE 00309000
  310. * AND RETRY CODE TO (100) 00310000
  311. OI IGVALIDB,CCHCMDV SET THE COMMAND ADDRESS VALID FLAG 00311000
  312. B CCHRETRN GO INITIALIZE THE LOGOUT 00312000
  313. CCH160 EQU * 00313000
  314. TM LOGWD3B+2,X'01' IS THE STATUS-IN CHECK ON ? 00314000
  315. BO CCH160A YES, GO TEST FOR CAUSES OF CHANNEL CHECK 00315000
  316. OI IGTERMSQ,COMPSEL+RTCODE2 SET SELECTIVE RESET AND THE 00316000
  317. * RETRY CODE (010) 00317000
  318. B CCHRETRN GO INITIALIZE THE LOGOUT AREA 00318000
  319. CCH160A EQU * 00319000
  320. TM ENTSW,TIOCCH+HIOCCH WAS ERROR CAUSED BY SIO ? 00320000
  321. BNZ CCH148B NO, GO SET RETRY CODE 00321000
  322. OI IGTERMSQ,COMPSEL+RTCODE1 SET THE SELECTIVE RESET AND 00322000
  323. * RETRY CODE (001) 00323000
  324. B CCHRETRN GO INITIALIZE THE LOGOUT AREA 00324000
  325. CCH149 EQU * 00325000
  326. TM LOGWD3A,X'04' IS THE TIO BIT ON IN LOGOUT ? 00326000
  327. BO CCH162 YES, GO CHECK FOR SIO 00327000
  328. TM IGVALIDB,CCHUSV IS UNIT STATUS VALID ? 00328000
  329. BZ CCH163 NO, GO SET RETRY CODE 00329000
  330. TM CSW+4,X'0C' IS CHANNEL END OR DEVICE END SET ? 00330000
  331. BNZ CCH162 YES, GO CHECK PSUEDO SIO 00331000
  332. CCH157 EQU * 00332000
  333. OI IGTERMSQ,RTCODE3 SET TERMINATION CODE TO (003) 00333000
  334. B CCHRETRN GO INITIALIZE LOGOUT 00334000
  335. CCH163 EQU * 00335000
  336. OI IGTERMSQ,RTCODE7 SET THE RETRY CODE TO (111) 00336000
  337. B CCHRETRN GO INITIALIZE LOGOUT 00337000
  338. CCH150 EQU * 00338000
  339. TM LOGWD3A,X'80' IS THE CAW INVALID ? 00339000
  340. BNZ CCH152 YES, GO SET RETRY CODE (TO (001) 00340000
  341. CCH164 EQU * 00341000
  342. TM IGVALIDB,CCHDAV WAS UNIT ADDRESS VALID ? 00342000
  343. BZ CCH152 NO, GO SET RETRY CODE 00343000
  344. CLI SIOADDR+1,X'C0' IS THIS A MPX CHANNEL ? 00344000
  345. BNL CCH165 NO, GO TEST FOR TIO 00345000
  346. TM LOGWD3A,X'40' IS CCW REQUIRED ON ? 00346000
  347. BO CCH152 YES, GO SET RETRY CODE 00347000
  348. CCH165 EQU * 00348000
  349. TM LOGWD3A,X'04' TIO BIT ON IN LOGOUT ? 00349000
  350. BO CCH152 YES, GO SET RETRY CODE 00350000
  351. CCH165A EQU * 00351000
  352. NI IGTERMSQ,X'FF'-COMPFES CLEAR TERMINATION CODE (01) 00352000
  353. * THAT WAS ALREADY SET 00353000
  354. OI IGTERMSQ,COMPSEL SET TERMINATION CODE (10) 00354000
  355. CCH165B EQU * 00355000
  356. OI IGBLAME,CCHCHNL THE CHANNEL IS THE SOURCE OF THE 00356000
  357. * ERROR 00357000
  358. CCH152 EQU * 00358000
  359. OI IGTERMSQ,RTCODE4 SET RETRY CODE TO (100) 00359000
  360. B CCHRETRN GO INITIALIZE THE LOGOUT AREA 00360000
  361. CLEANUP EQU * 00361000
  362. OI ENTSW,TERMSYS SET SYSTEM TERMINATION 00362000
  363. B CCHEXIT4 GO RESTORE REGISTERS 00363000
  364. CCHRETRN EQU * 00364000
  365. TM LOGWD3B,X'10' IS DISCONNECT IN ON ? 00365000
  366. BZ CCHRTRN NO, GET I/O EXTENDED LOGOUT POINTER 00366000
  367. OI IGTERMSQ,CCHDI SET DISCONNECT IN THE BUILDED 00367000
  368. * ECSW 00368000
  369. CCHRTRN EQU * 00369000
  370. LA R1,X'130' GET THE ADDRESS OF THE I/O EXTENDED 00370000
  371. * LOGOUT 00371000
  372. MVC CCHLOG70(24),0(R1) SAVE THE I/O EXTENDED LOGOUT 00372000
  373. MVI 0(R1),X'FF' INITIALIZE THE I/O EXTENDED LOGOUT 00373000
  374. MVC 1(23,R1),0(R1) TO ALL ONES 00374000
  375. MVI CCHSAVE+59,X'0D' CHANGE THE LENGTH OF THE CCH @VA00881 00375000
  376. * RECORD 00376000
  377. CCHEXIT4 EQU * 00377000
  378. LM R2,R0,CCHSAVE RESTORE THE REGISTERS 00378000
  379. BR R14 RETURN TO CCH CONTROL ROUTINE 00379000
  380. ********************************************************************** 00380000
  381. ********************************************************************** 00381000
  382. ********************************************************************** 00382000
  383. EJECT 00383000
  384. ********************************************************************** 00384000
  385. CCHSAVE DS 16F 00385000
  386. SYSRESET DC X'05268200' SYSTEM RESET CONSTANT 00386000
  387. ******************************************************************** 00387000
  388. ********************************************************************** 00388000
  389. ********************************************************************** 00389000
  390. EJECT 00390000
  391. ********************************************************************** 00391000
  392. PSA 00392000
  393. COPY EQU 00393000
  394. COPY DEVTYPES 00394000
  395. COPY SAVE 00395000
  396. ENTSW EQU SAVEWRK1 @VA01638 00396000
  397. SIOADDR EQU SAVEWRK9 00397000
  398. EJECT 00398000
  399. COPY IOER 00399000
  400. COPY CCHREC 00400000
  401. END 00401000