Table of Contents

DMKRGA Source

References

Source Listing

DMKRGA.ASSEMBLE.txt
  1. RGA TITLE 'DMKRGA (CP) VM/370 - RELEASE 6' 00001000
  2. ISEQ 73,80 VALIDATE SEQUENCING OF INPUT 00002000
  3. COPY OPTIONS @V305731 00003000
  4. COPY LOCAL @V305731 00004000
  5. EJECT 00005000
  6. ************************************************************* 00006000
  7. * 00007000
  8. * MODULE NAME - 00008000
  9. * 00009000
  10. * DMKRGA 00010000
  11. * 00011000
  12. * CONTENTS - 00012000
  13. * 00013000
  14. * DMKRGAIN - SECOND LEVEL INTERRUPT HANDLER FOR 3270 STATIONS 00014000
  15. * 00015000
  16. * FUNCTION - 00016000
  17. * 00017000
  18. * THIS MODULE PROVIDES SUPPORT FOR THE 3270 REMOTE DISPLAY 00018000
  19. * AND PRINTER STATIONS. THE MODULE HANDLES INTERRUPTS AND CCW 00019000
  20. * PROCESSING FOR THE REMOTE STATIONS INCLUDING MESSAGE HANDLING 00020000
  21. * AND SCREEN MANAGEMENT. 00021000
  22. SPACE 2 00022000
  23. DMKRGA START , @V305731 00023000
  24. SPACE 1 00024000
  25. USING PSA,R0 @V305731 00025000
  26. USING TRQBLOK,R4 @V305731 00026000
  27. USING CONTASK,R6 @V305731 00027000
  28. USING BSCBLOK,R5 @V305731 00028000
  29. USING RDEVBLOK,R8 @V305731 00029000
  30. USING IOBLOK,R10 @V305731 00030000
  31. USING VMBLOK,R11 @V305731 00031000
  32. USING NICBLOK,R9 @V305731 00032000
  33. SPACE 1 00033000
  34. EXTRN DMKIOSQR,DMKSCNRU,DMKQCNCL,DMKCFMBK @V305731 00034000
  35. EXTRN DMKSTKMP,DMKCNSED,DMKSTKIO,DMKBLDVM @VA07391 00035100
  36. EXTRN DMKSCHRT,DMKSCHST,DMKCVTBD,DMKCVTDB @V305731 00036000
  37. EXTRN DMKCVTBH,DMKTBLUP,DMKTBLGR,DMKIOERN @V305731 00037000
  38. EXTRN DMKERMSG,DMKSCNRD,DMKSCNVU,DMKCVTHB @V305731 00038000
  39. EXTRN DMKCFMEN,DMKCFMAT,DMKQCNET,DMKQCNTO @V305731 00039000
  40. EXTRN DMKRGBSN,DMKRGBIC,DMKRGBMT,DMKRGBEN @V346931 00040000
  41. EXTRN DMKTBMTI,DMKTBMZI @V387398 00041000
  42. EXTRN DMKCVTAB @VA04301 00041100
  43. EXTRN DMKPTRAN,DMKQCNWT @V407511 00041110
  44. EXTRN DMKRGFEN @VA13123 00042000
  45. SPACE 1 @VA13123 00042500
  46. ENTRY DMKRGAIN @V305731 00043000
  47. ENTRY DMKRGACR @VA13123 00044000
  48. EJECT , @VA13123 00044500
  49. ************************************************************** 00045000
  50. * 00046000
  51. * SUBROUTINE NAME - 00047000
  52. * 00048000
  53. * DMKRGAIN 00049000
  54. * 00050000
  55. * FUNCTION - 00051000
  56. * 00052000
  57. * DMKRGAIN IS THE SECONDARY INTERRUPT HANDLER FOR THE 00053000
  58. * 3270 REMOTE SUPPORT. THE SUBROUTINE HANDLES INTERRUPTS 00054000
  59. * AND CCW PROCESSING FOR THE REMOTE DISPLAY AND PRINTER 00055000
  60. * STATIONS, INCLUDING MESSAGE HANDLING AND SCREEN 00056000
  61. * MANAGEMENT. 00057000
  62. * 00058000
  63. * ATTRIBUTES - 00059000
  64. * 00060000
  65. * RE-ENTRANT, RESIDENT, ENTERED VIA IOBLOK UNSTACK 00061000
  66. * 00062000
  67. * ENTRY CONDITIONS - 00063000
  68. * 00064000
  69. * GR12 = ADDRESS OF DMKRGAIN 00065000
  70. * GR11 = ADDRESS OF THE SYSTEM VMBLOK 00066000
  71. * GR10 = ADDRESS OF THE UNSTACKED IOBLOK 00067000
  72. * 00068000
  73. * EXIT CONDITIONS - 00069000
  74. * 00070000
  75. * EXIT IS MADE VIA GOTO DMKDSPCH 00071000
  76. * 00072000
  77. * CALLS TO OTHER ROUTINES - 00073000
  78. * 00074000
  79. * DMKIOSQR - TO START I/O ON LINE 00075000
  80. * DMKSCNRU - TO LOCATE LINE RDEVBLOK 00076000
  81. * DMKQCNCL - TO CLEAR CONTASK STACK AT LOGOUT 00077000
  82. * DMKCFMBK - TO ENTER CONSOLE FUNCTION MODE 00078000
  83. * DMKSTKMP - TO STACK CPEXBLOK 00079100
  84. * DMKCNSED - TO PERFORM EDITING AND TRANSLATION ON INPUT 00080000
  85. * DMKBLDVM - TO BUILD A VMBLOK FOR USER LOGON 00081000
  86. * DMKSCHRT - TO RESET A TIMER REQUEST 00082000
  87. * DMKSCHST - TO SET A TIMER REQUEST 00083000
  88. * DMKERMSG - TO WRITE AN ERROR MESSAGE 00084000
  89. * DMKSCNRD - TO GET REAL LINE ADDRESS 00085000
  90. * DMKQCNET - TO RETURN CONTASK AT COMPLETION 00086000
  91. * DMKQCNTO - TO SLEEP USER AFTER ERROR CONDITION 00087000
  92. * DMKIOERN - TO RECORD HARDWARE ERROR 00088000
  93. * DMKCFMEN - TO EXECUTE A CP CONSOLE FUNCTION 00089000
  94. * DMKCFMAT - TO POST AN ATTENTION INTERRUPT TO VM 00090000
  95. * DMKSCNVU - TO LOCATE THE VIRTUAL CONSOLE 00091000
  96. * DMKFREE - TO ALLOCATE FREE STORAGE FOR CONTASK'S 00092000
  97. * DMKFRET - TO RETURN ALLOCATED STORAGE 00093000
  98. * DMKCVTBH - TO CONVERT LINE ADDRESS FOR ERROR MESSAGE 00094000
  99. * DMKRGBSN - TO SCAN THE NICBLOKS FOR AN ACTIVE USER 00095000
  100. * DMKRGBMT - TO FORMAT THE DISPLAY SCREEN 00096000
  101. * DMKRGBIC - TO INITIALIZE CONTASK AND SCHEDULE I/O 00096100
  102. * DMKRGBEN - TO ENABLE/DISABLE BISYNC LINE 00096200
  103. * 00097000
  104. * EXTERNAL REFERENCES - 00098000
  105. * 00099000
  106. * DMKTBLUP - TRANSLATE TO UPPER CASE CHARACTERS 00100000
  107. * DMKTBLZI - APL 3270 COMPOUND CHARACTER TABLE 00100100
  108. * DMKTBLTI - TEXT 3270 COMPOUND CHARACTER TABLE 00100200
  109. * DMKRIOCN - SYSTEM CONSOLE ADDRESSES 00101000
  110. * DMKSYSVM - ADDRESS OF THE SYSTEM VMBLOK 00102000
  111. * 00103000
  112. * TABLES / WORK AREAS - 00104000
  113. * 00105000
  114. * TRQBLOK CONTROL BLOCK IS EXTENDED BY 1 DOUBLE WORD 00106000
  115. * TO CONTAIN EXTRA CONTROL DATA FOR THE RESOURCES. 00107000
  116. * THE TRQBLOK EXISTS FROM THE FIRST MORE STATUS ON THE 00108000
  117. * SCREEN TO LOGOUT. 00109000
  118. * 00110000
  119. * A BINARY SYNCHRONOUS COMMUNICATION CONTROL BLOCK (BSCBLOK) 00111000
  120. * WILL EXITS FOR EACH BISYNC LINE. THE BSCBLOK EXITS 00112000
  121. * FROM THE TIME THE BISYNC LINE IS ENABLED TO THE TIME IT'S 00113000
  122. * DIABLED OR AN ERROR OCCURRED ON THE BISYNC LINE. 00114000
  123. * 00115000
  124. * TBL3277 - A TABLE USED TO INDEX FOR THE BUFFER ADDRESSES 00116000
  125. * KEYBL - A TABLE USED TO FIND CONTROL KEYES 00117000
  126. * 00118000
  127. * NOTES - 00119000
  128. * 00120000
  129. * NONE 00121000
  130. * 00122000
  131. * REGISTER USAGE - 00123000
  132. * 00124000
  133. * GR14-15 LINKAGE REGISTERS 00125000
  134. * GR12,13 MODULE BASE REGISTERS 00126000
  135. * GR11 = ADDRESS OF THE SYSTEM VMBLOK 00127000
  136. * GR10 = ADDRESS OF ACTIVE IOBLOK 00128000
  137. * GR 9 = ADDRESS OF AFFECTED NICBLOK (IF ANY) 00129000
  138. * GR 8 = ADDRESS OF RDEVBLOK FOR LINE 00130000
  139. * GR 7 = INTERNAL LINKAGE REGISTER 00131000
  140. * GR 6 = ADDRESS OF CONTASK 00132000
  141. * GR 5 = BSCBLOK ADDRESSABILITY 00133000
  142. * GR 4 = TRQBLOK ADDRESSABILITY 00134000
  143. * G0-3 = WORK REGISTERS 00135000
  144. * 00136000
  145. * OPERATION - 00137000
  146. * 00138000
  147. * I. ANALYZE STATUS OF BISYNC LINE FOR 3270 REMOTE SUPPORT 00139000
  148. ** 00140000
  149. * 1. IF THE LINE RDEVBLOK INDICATES ANY OF THE FOLLOWING: 00141000
  150. * 00142000
  151. * . NON-BISYNC LINE RDEVBLOK 00143000
  152. * . A COPIED IOBLOK FOR THIS LINE 00144000
  153. * . UNSOLICITED INTERRUPT 00145000
  154. * . THE BISYNC LINE IS NOT IN USE 00146000
  155. * THEN, THROW AWAY THE LINE INTERRUPT AND RETURN 00147000
  156. * TO THE DISPATCHER. 00148000
  157. * 00149000
  158. * 2. IF THE LINE RDEVBLOK INDICATE A FATAL CONDITION OR 00150000
  159. * A NON-ZERO CONDITION CODE, DO ACTION 1. 00151000
  160. * 00152000
  161. * ACTION 1 00153000
  162. * ________ 00154000
  163. * 00155000
  164. * . RELEASE ALL CONTASKS FROM THE LINE RDEVBLOK 00156000
  165. * . FORCE ALL VIRTUAL MACHINE USERS OFF BISYNC LINE 00157000
  166. * . RELEASE STORAGE OBTAINED FOR THE BSCBLOK 00158000
  167. * . RESET THE POLL DELAY TIMER VALUE IF ONE EXIST 00159000
  168. * . IF THE LINE RDEVBLOK INDICATED A CONDITION CODE OF 3 AND 00160000
  169. * THE BISYNC LINE IS NOT OFFLINE, THEN SEND A 'NOT 00161000
  170. * OPERATIONAL ...' MESSAGE TO THE SYSTEM OPERATOR. 00162000
  171. * . SET THE OFFLINE AND DISABLE FLAG IN THE LINE RDEVBLOK 00163000
  172. * . SEND 'LINE ... DISABLED' MESSAGE TO SYSTEM OPERATOR 00164000
  173. * . RELEASE THE IOERBLOK AND IOBLOK; RETURN TO DISPATCHER 00165000
  174. * . IF THE BISYNC LINE IS A SWITCHED LINE, BYPASS GOING TO 00165250
  175. * DISPATCHER WHEN A PERMANENT IS INDICATED ON THE LINE. 00165500
  176. * CALL DMKRGBEN TO PUT AN ENABLE UP ON THE LINE. 00165750
  177. * 00166000
  178. * 3. GET THE ENDING CCW ADDRESS AND PICK UP THE TP-OP 00167000
  179. * CODE (BYTE 5) FROM THE CCW. GO BRANCH TO THE 00168000
  180. * APPORPRIATE FUNCTIONAL AREA. 00169000
  181. * 00170000
  182. * TP-OP CODE FUNCTION 00171000
  183. * __________ ________ 00172000
  184. * 00173000
  185. * 00 ERROR HANDLING CCW 00174000
  186. * 01 ENABLE/DISABLE FUNCTION 00175000
  187. * 02 WRITE EOT (SEQUENCE PRIOR TO POLLING 00176000
  188. * AND ADDRESSING) 00177000
  189. * 03 WRITE POLLING OR ADDRESSING CHARACTERS 00178000
  190. * 04 HANDLE STATION'S STATUS & SENSE MSG. 00179000
  191. * 05 READ RESPONSE TO ADDRESSING 00180000
  192. * 06 WRITE RESPONSE TO TEXT 00181000
  193. * 07 NO-OP FOLLOWING POLL COMMAND 00182000
  194. * 08 UNIT EXECPTION CONDITION (TIMEOUT) 00183000
  195. * 09 ALL RESET COMMANDS 00184000
  196. * 10 READ/WRITE TEXT 00185000
  197. * 11 READ RESPONSE TO TEXT 00186000
  198. * 12 READ REMAINING DATA FROM STATION 00187000
  199. * 13 STATUS BIDDING ON SWITCH LINE 00187100
  200. * 14 DISCONNECT STATION FROM LINE 00187200
  201. * 15 SEND ACK AFTER FSS WRITE 00187300
  202. * 16 WRITE TEXT CCW 00187400
  203. * 00188000
  204. * II. PROCESS THE TP-OP CODE FUNCTIONS 00189000
  205. * 00190000
  206. * 1. HANDLE THE WRITE OPERATION FUNCTION 00191000
  207. * A. HANDLE READ RESPONSE TO ADDRESSING (05) 00192000
  208. * . IF THE REPLY IS AN RVI, GO DO A SPECIFIC 00193000
  209. * POLL OPERATION FOR THE STATUS MESSAGE FROM 00194000
  210. * THE STATION. 00195000
  211. * . IF THE REPLY IS A WACK, CHECK FOR COPY FUNCTION 00196000
  212. * ACTIVE, IF NOT, GO RESTART AN I/O OPERATION 00197000
  213. * TO THE BISYNC LINE. IF COPY FUNCTION IS ACTIVE, 00198000
  214. * SEND 'NOT ACCEPTED' MESSAGE TO REQUESTOR. 00199000
  215. * . IF THE REPLY IS AN ACK, GET THE POINTER TO 00200000
  216. * THE WRITE CCW STRING AND WRITE THE DATA 00201000
  217. * TO THE STATION THAT WAS SELECTED. 00202000
  218. * . IF THE REPLY IS AN EOT (3275 DIAL ONLY), GO 00202200
  219. * GET THE PENDING STATUS MESSAGE. 00202400
  220. * . IF THE REPLY WAS A NAK (3275 DIAL ONLY) GO 00202600
  221. * RETRY THE OPERATION. 00202800
  222. * . IF NO REPLY WAS RECEIVED, SEND ENQ TO 00203000
  223. * CONTROL UNIT FOR RETRANSMISSION OF REPLY. 00204000
  224. * 00205000
  225. * B. HANDLE READ RESPONSE TO TEXT (11) 00206000
  226. * 00207000
  227. * . IF THE REPLY IS AN EOT AND IS NOT EXPECTED, 00208000
  228. * SEND A SPECIFIC POLL OPERATION TO THE STATION 00209000
  229. * FOR THE STATUS MESSAGE. IF THE EOT IS EXPECTED, 00210000
  230. * GET THE RETURN INDEX VALUE AND GO TO 00211000
  231. * FUNCTIONAL AREA. 00212000
  232. * . IF THE REPLY IS A NAK, RETRANSMIT LAST WRITE 00213000
  233. * OPERATION TO STATION. 00214000
  234. * . IF THE REPLY IS A WACK AND NOT A PRINTER, 00215000
  235. * RESET THE BISYNC LINE TO CONTROL MODE. IF THIS 00216000
  236. * STATION IS A PRINTER, GET THE RETURN INDEX 00217000
  237. * VALUE AND GO TO FUNCTIONAL AREA. 00218000
  238. * . IF THE REPLY IS AN ENQ, RETRANSMIT LAST WRITE 00219000
  239. * OPERATION TO STATION. 00220000
  240. * . IF THE REPLY IS AN ACK, GET THE RETURN INDEX 00221000
  241. * VALUE AND GO TO FUNCTIONAL AREA. 00222000
  242. * . IF THE REPLY IS A DISCONNECT SIGNAL (DLE EOT), 00222200
  243. * FORCE THE USER OFF THE SYSTEM AND PUT A READ 00222400
  244. * UP ON THE LINE. 00222600
  245. * . IF THE REPLY IS NOT RECEIVED, SEND AN ENQ 00223000
  246. * TO CONTROL UNIT FOR RETRANSMISSION OF REPLY. 00224000
  247. * 00225000
  248. * RETURN INDEX VALUES (CONLABEL) 00226000
  249. * INDEX FUNCTION 00227000
  250. * _____ ________ 00228000
  251. * 00 NEXT CONTASK FUNCTION 00229000
  252. * 04 READ STATE FUNCTION 00230000
  253. * 08 DETERMINE STATUS OF CONTASK 00231000
  254. * 0C CONSOLE PROCESSING FUNCTION 00232000
  255. * 10 MORE STATE FUNCTION 00233000
  256. * 14 REJECT FUNCTION 00234000
  257. * 18 WRITE STATUS FUNCTION 00235000
  258. * 1C LOGOFF USER FUNCTION 00236000
  259. * 20 BUILD VMBLOK FUNCTION 00237000
  260. * 24 FORMAT DISPLAY FUNCTION 00238000
  261. * 28 WRITE OPERATION FUNCTION 00239000
  262. * 2C RELEASE BUFFER FUNCTION 00240000
  263. * 30 RVI RESPONSE FUNCTION 00241000
  264. * 00242000
  265. * 2. HANDLE READ OPERATION (10) 00243000
  266. * 00244000
  267. * A. ANALYZE MESSAGE OR TEXT FROM THE REMOTE STATION 00245000
  268. * 00246000
  269. * . DETERMINE IF MESSAGE HAS ENDING CHARACTER (ETX) 00247000
  270. * AT THE END OF MESSAGE AND IF NOT, REQUEST 00248000
  271. * RETRANSMISSION OF MESSAGE FROM THE CONTROL 00249000
  272. * UNIT. 00250000
  273. * . IF TEXT IS FROM A 3275 DIAL, CHECK FOR 00250200
  274. * DISCONNECT SIGNAL AND IF DISCONNECT SIGNAL 00250400
  275. * (DLE EOT) IS PRESENTED, FORCE USER OFF SYSTEM. 00250600
  276. * . IF EOT IS IN TEXT GO GET PENDING STATUS MESSAGE. 00250800
  277. * 00251000
  278. * 1) HANDLE TEST REQUEST MESSAGE 00252000
  279. * 00253000
  280. * . VM IGNORE THE TEST REQUEST MESSAGE 00254000
  281. * 00255000
  282. * 2) HANDLE STATUS MESSAGE 00256000
  283. * 00257000
  284. * . IF THE STATUS MESSAGE IS A STANDALONE DEVICE 00258000
  285. * END, DETERMINE IF THE STATION SHOULD BE 00259000
  286. * FORMATTED. IF THE MESSAGE IS NOT A STANDALONE 00260000
  287. * DEVICE END, DETERIMINE IF THE STATION ERROR 00261000
  288. * IS RETRYABLE AND IF SO, RETRY THE FAILING 00262000
  289. * OPERATION FOR A MAXIMUM OF SEVEN TIMES . IF 00263000
  290. * STATION ERROR IS NOT RETRYABLE, DO ACTION 2. 00264000
  291. * 00265000
  292. * ACTION 2 00266000
  293. * ________ 00267000
  294. * 00268000
  295. * . SEND I/O ERROR MESSAGE (DMKRGA705I) FOR STATION 00269000
  296. * TO THE SYSTEM OPERATOR. 00270000
  297. * . RECORD MISCELLANEOUS DATA RECORD FOR STATION 00271000
  298. * ERROR. 00272000
  299. * . FORCE VIRTUAL MACHINE USER OFF BISYNC LINE 00273000
  300. * . GET ACTIVE RESOURCE AND START I/O OPERATION 00274000
  301. * TO BISYNC LINE. 00275000
  302. * 00276000
  303. * 3) HANDLE TEXT MESSAGE 00277000
  304. * 00278000
  305. * . PROCESS TAB FUNCTION 00279000
  306. * . PROCESS COPY FUNCTION 00280000
  307. * . CANCEL AND CLEAR KEY 00281000
  308. * RELEASE READ BUFFER 00282000
  309. * RESET ANY TIMER REQUEST 00283000
  310. * CLEAR OUTPUT SCREEN AREA 00284000
  311. * PROCESS NEXT CONTASK 00285000
  312. * . PA1 KEY 00286000
  313. * CANCEL FUNCTION BY RETURN CODE 4 OR 8 00287000
  314. * CLEAR SCREEN AREA 00288000
  315. * CLEAR THE STACK OF CONTASKS 00289000
  316. * . PF KEYS 00290000
  317. * GET THE USER'S FUNCTION TABLE VMPFUNC 00291000
  318. * GET AND VERIFY THE EXISTENCE OF A FUNCTION 00292000
  319. * WRITE UNDEFINED MESSAGE IF NOT FOUND 00293000
  320. * WRITE FUNCTION DATA IF FOUND AND DELAYED 00294000
  321. * PROCESS DATA IF IMMEDIATE 00295000
  322. * RETURN TO RELEASE BUFFER AT WRITE COMPLETION 00296000
  323. * . ENTER KEY 00297000
  324. * ANALYZE DATA IN BUFFER TO GET LENGTH 00298000
  325. * IF DATA ENTERED FROM READ STATE, CONTINUE 00299000
  326. * AT LABEL RDATA. 00300000
  327. * IF ENTERED FROM RUNNING, PROC. BY ENVIR. SET. 00301000
  328. * NULL DATA GIVE ATTN TO VM, OR ENTER CP MODE. 00302000
  329. * DATA ENTERED GO TO VM OR EXECUTE CONSOLE 00303000
  330. * FUNCTION. 00304000
  331. * DATA ENTERED IS RE-DISPLAYED UNLESS PRIVATE 00305000
  332. * DATA THAT IS ALREADY PENDING CAUSES 'NOT 00306000
  333. * ACCEPTED' MESSAGE. 00307000
  334. * IF VIRTUAL DATA IS #CP EXECUTE FUNCTION 00308000
  335. * RDATA ENTRY FOR RESPONSE TO READ REQUEST PASS 00309000
  336. * BUFFER DATA BACK TO CALLER WITH LENGTH 00310000
  337. * INDICATION. 00311000
  338. * 00312000
  339. * 4) TIMER INTERRUPT 00313000
  340. * 00314000
  341. * . STATUS TIMER INTERRUPT 00315000
  342. * REBUILD IOBLOK AND RESTORE STATUS IF NOT 00316000
  343. * ACCEPTED, CLEAR OUTPUT AREA, AND CONTINUE 00317000
  344. * TO NEXT CONTASK IF MORE. 00318000
  345. * . POLL DELAY TIMER INTERRUPT 00319000
  346. * RELEASE THE TIMER REQUEST BLOCK 00320000
  347. * GET NEXT ACTIVE RESOURCE AND START I/O 00321000
  348. * TO BISYNC LINE. 00322000
  349. * 00323000
  350. * 5) HANDLE DATA THAT ENDS WITH AN ETB 00324000
  351. * 00325000
  352. * . WHEN MORE THAN 256 BYTES ARE ENTERED, 00326000
  353. * A CHECK IS MAKE FOR AN ENDING CHAR. OF ETB. 00327000
  354. * ONCE DETECTING AN ETB, AN ACKNOWLEDGEMENT 00328000
  355. * IS SENTED REQUESTING MORE DATA. 00329000
  356. * AFTERWARD, CONTROL IS GIVEN TO THE TEXT MSG. 00330000
  357. * HANDLER (SEE FUNCTION ABOVED 'HANDLE TEXT 00331000
  358. * MESSAGE'). 00332000
  359. * 00333000
  360. * 3. HANDLE THE ENABLE/DISABLE FUNCTION (01) 00334000
  361. * 00335000
  362. * A. IN ORDER TO DISABLE THE BISYNC LINE DO ACTION 1. 00336000
  363. * B. ONCE THE BISYNC LINE IS ENABLED RETURN THE 00337000
  364. * CONTASK TO THE SYSTEM AND RESTART THE I/O 00338000
  365. * OPERATION TO THE BISYNC LINE. 00339000
  366. * 00340000
  367. * 4. HANDLE ALL RESET FUNCTIONS (09) 00341000
  368. * 00342000
  369. * . IF THERE ARE NO ERROR CONDITIONS OR STATUS 00343000
  370. * INDICATED, GET NEXT CONTASK ON THE STATION QUEUE. 00344000
  371. * . IF THIS IS A STATION ERROR, DO ACTION 2. 00345000
  372. * . IF THIS IS A CONDITION TO IGNORE INPUT DATA, THEN 00346000
  373. * GET NEXT CONTASK FROM STATION QUEUE. 00347000
  374. * . IF THIS IS A COPY FUNCTION, THEN REACTIVATE THE 00348000
  375. * REQUESTOR'S STATION. 00349000
  376. * . IF NONE OF THE ABOVE, ABEND SYSTEM. 00350000
  377. * 00351000
  378. * 5. HANDLE THE NO-OP COMMAND FUNCTION (07) 00352000
  379. * 00353000
  380. * . IF THE POLL DELAY INTERVAL IS ZERO, GO REACTIVATE 00354000
  381. * GENERAL POLL OPERATION IF THERE ARE NO OUTSTANDING 00355000
  382. * WRITE OPERATIONS. 00356000
  383. * . IF THE POLL DELAY INTERVAL IS NON-ZERO, SET UP 00357000
  384. * THE TIMER REQUEST BLOCK WITH THE DELAY POLL 00358000
  385. * TIMER INTERVAL AND WAIT UNTIL THE TIME HAS EXPIRED, 00359000
  386. * BEFORE DOING A GENERAL POLL OPERATION AGAIN. 00360000
  387. * 00361000
  388. * 6. HANDLE THE UNIT EXECPTION FUNCTION (08) 00362000
  389. * 00363000
  390. * . SET UP TO RESTART THE FAILING OPERATION THAT 00364000
  391. * THE TIMEOUT OCCURRED ON FROM THE REMOTE UNIT. 00365000
  392. * 00366000
  393. * 7. HANDLE UNKNOWN CCW OR ERROR HANDLER CCW (00) 00367000
  394. * 00368000
  395. * . DO ACTION 1 00369000
  396. * 00370000
  397. * 8. HANDLE STATION'S STATUS AND SENSE MESSAGE (04) 00371000
  398. * 00372000
  399. * 9. HANDLE BLOCK DATA FROM DISPLAY STATION (12) 00373000
  400. * 00373020
  401. * 10. HANDLE PENDING STATUS MESSAGE ON A SWITCHED LINE (13) 00373040
  402. * 00373060
  403. * . IF THE REPLY IS AN ENQ, WRITE AN ACK0 TO THE 00373080
  404. * STATION AND PUT A READ UP ON THE LINE TO RECEIVE 00373100
  405. * THE STATUS OR TEXT MESSAGE. 00373120
  406. * . IF THE REPLY IS THE DISCONNECT SIGNAL (DLE EOT), 00373140
  407. * GO FORCE THE USER OFF THE SYSTEM. 00373160
  408. * . IF THE REPLY IS UNKNOWN, RETRY THE I/O OPERATION 00373180
  409. * 00373200
  410. * 11. HANDLE DROP/DISCONNECT SWITCHED LINE (14) 00373220
  411. * 00373240
  412. * . IF THE STATION IS MARKED DISABLED ONLY ENABLE THE 00373260
  413. * SWITCHED LINE. IF THE STATION IS ENABLED, ENABLE 00373280
  414. * THE SWITCHED LINE AND WRITE THE VM LOGO TO THE 00373300
  415. * STATION. 00373320
  416. * 00373340
  417. * ERROR MESSAGES - 00374000
  418. * 00375000
  419. * DMKRGA454I LINE 'ADDR' DISABLED 00376000
  420. * DMKRGA455I LINE 'ADDR' CC=3 NOT OPERATIONAL 00377000
  421. * DMKRGA705I I/O ERROR RESID='RESOURCE ID' STATUS='STATUS' LINE='ADDR' 00378000
  422. SPACE 2 00379000
  423. ************************************************************* 00380000
  424. EJECT 00381000
  425. USING DMKRGAIN,R12 @V305731 00382000
  426. DMKRGAIN DS 0D @V305731 00383000
  427. LM R12,R13,RGABASE SET UP ADDRESSABILITY @V305731 00384000
  428. USING DMKRGA,R12,R13 @V305731 00385000
  429. LH R1,IOBRADD REAL DEVICE ADDRESS OF LINE @V305731 00386000
  430. CALL DMKSCNRU GET THE RDEVBLOK ADDRESS @V305731 00387000
  431. CLI RDEVTYPC,CLASTERM IS THIS A TERMINAL CLASS ? @V305731 00388000
  432. BNE RGIGNORE NO, THROW AWAY INTERRUPT @V305731 00389000
  433. CLI RDEVTYPE,TYPBSC IS THIS A BISYNC LINE @V305731 00390000
  434. BNE RGIGNORE NO, THROW AWAY INTERRUPT @V305731 00391000
  435. CL R10,IOBLINK IS THIS A COPIED IOBLOK @V305731 00392000
  436. BNE RGIGNORE YES, THROW AWAY INTERRUPT @V305731 00393000
  437. TM IOBSPEC,IOBUNSL IS THIS A UNSOLICITED INTERRUPT @V305731 00394000
  438. BO RGIGNORE YES, THROW AWAY INTERRUPT @V305731 00395000
  439. TM RDEVSTAT,RDEVRSVD IS THIS LINE IN USE ? @V305731 00396000
  440. BZ RGIGNORE NO, CLEAN UP AND EXIT @V305731 00397000
  441. SWITCH ENSURE WE ARE ON THE MAIN PROC @V407511 00397100
  442. L R5,RDEVBSC GET POINTER TO BSCBLOK @V305731 00398000
  443. L R9,BSCAUSER GET ADDR OF ACTIVE RESOURCE @V305731 00399000
  444. TM BSCFLAG1,BSCHALT HAS HALT I/O BEEN DONE YET? @V346931 00399300
  445. BO FATALER0 YES, DON'T DISABLE LINE @V346931 00399600
  446. TM IOBSTAT,IOBFATAL+IOBCC3 A FATAL CONDITION @V305731 00400000
  447. BNZ FATALER YES, FATAL CONDITION @V305731 00401000
  448. L R3,IOBCSW GET CCW ADDRESS FROM CSW @V305731 00402000
  449. LTR R3,R3 IS ADDRESS FROM CSW ZERO @VM03116 00403000
  450. BZ FATALER YES, FATAL CONDITION @VM03116 00404000
  451. SL R3,F8 BACK UP ONE CCW (KEY IS ZERO) @V305731 00405000
  452. SR R1,R1 CLEAR INDEX REGISTER @V305731 00406000
  453. IC R1,5(R3) GET BRANCH TABLE INDEX @V305731 00407000
  454. SLL R1,2 MULTIPLE BY 4 @V305731 00408000
  455. B TP0X(R1) BRANCH TO FUNCTIONAL SECTION @V305731 00409000
  456. TP0X EQU * BRANCH TABLE @V305731 00410000
  457. B FATALER1 ERROR HANDLER CCW OR UNKNOWN @V346931 00411100
  458. B TP01 ENABLE - DISABLE FUNCTION @V305731 00412000
  459. B TP02 WRITE EOT PRIOR POLL OR ADDR. @V305731 00413000
  460. B TP03 WRITE POLLING OR ADDRESSING CHARS@V305731 00414000
  461. B TP04 READ RESPONSE TO POLLING @V305731 00415000
  462. B TP05 READ RESPONSE TO ADDRESSING @V305731 00416000
  463. B TP06 POLL - WRITE RESPONSE TO TEXT @V305731 00417000
  464. B TP07 NO-OP FOLLOWING POLL COMMAND @V305731 00418000
  465. B TP08 UNIT EXECPTION CONDITION-TIMEOUT @V305731 00419000
  466. B TP09 ALL RESET COMMANDS @V305731 00420000
  467. B TP10 POLL/ADDR - READ-WRITE TEXT @V305731 00421000
  468. B TP11 ADDR - READ RESPONSE TO TEXT @V305731 00422000
  469. B TP12 READ REMAINING DATA FROM STATION @VM03043 00423000
  470. B TP13 GET PENDING STATUS MESSAGE @V346931 00424100
  471. B TP14 STATION DISCONNECT/DROP FROM LINE@V346931 00424200
  472. B TP16 WRITE TEXT CCW @VA13944 00424250
  473. SPACE 2 00424300
  474. TP02 EQU * WRITE EOT PRIOR TO POLL OR ADDR. @V305731 00425000
  475. TP03 EQU * WRITE POLLING OR ADDRESSING CHARS@V305731 00426000
  476. TP06 EQU * POLL - WRITE RESPONSE TO TEXT @V305731 00427000
  477. TP16 DS 0H WRITE TEXT CCW @VA13944 00427100
  478. SPACE 1 00428000
  479. UNITEXCP EQU * TEST FOR TIMEOUT CONDITION @V305731 00429000
  480. BAL R3,RTYCOUNT CHECK RETRY FIELD FOR MAXIMUM @VA13944 00430100
  481. TM IOBCSW+4,CE+DE+UE IS THIS A CE,DE, AND UE @VA13944 00430200
  482. BNO FATALER NO, FATAL SITUATION @VA13944 00430300
  483. MVC IOBMISC2+1(3),IOBCAW+1 SAVE CCW STRING ADDRESS @V305731 00438000
  484. LA R1,UNEPTCCW SET UP TO DO A READ SKIP @VA13944 00439100
  485. BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 00440000
  486. SPACE 2 00441000
  487. TP01 EQU * ENABLE - DISABLE FUNCTION @V305731 00442000
  488. L R6,NICQPNT GET ADDRESS OF ACTIVE CONTASK @V305731 00443000
  489. TM RDEVFLAG,RDEVDISB IS DISABLE LINE INDICATED? @V346931 00444000
  490. BO FATALER1 YES, FORCE ALL USERS OFF LINE @V346931 00445000
  491. BAL R3,CONRET GO RETURN CONTASK @V305731 00446000
  492. NI RDEVSTAT,X'FF'-RDEVWAII CLEAR BUSY FLAG FOR LINE@V305731 00447000
  493. BAL R7,RGSTART GET ACTIVE RESOURCE & START I/O @V305731 00448000
  494. SPACE 2 00449000
  495. TP05 EQU * ADDR-READ RESPONSE TO ADDRESSING @V305731 00450000
  496. TM RDEVFTR,FTRDIAL DIAL FEATURE INDICATED? @V346931 00450050
  497. BZ NODIAL2 NO, GO CHECK RESPONSE @V346931 00450100
  498. TM BSCFLAG1,BSCINBID INITIAL BIDDING SEQUENCE? @V346931 00450150
  499. BZ NODIAL2 NO, GO CHECK RESPONSE @V346931 00450200
  500. NI BSCFLAG1,X'FF'-BSCINBID CLEAR INITIAL BID FLAG @V346931 00450250
  501. CLC BSCRESP+LENADDR(L'BSCRCVD),BSCRCVD ACK RESPONSE?@V346931 00450300
  502. BE CORACK0 YES, WRITE MESSAGE TO STATION @V346931 00450350
  503. CLI BSCRESP+LENADDR,NAK NAK RESPONSE ? @V346931 00450400
  504. BE GETDUSNS YES, GO SET UP TO RETRY I/O @V346931 00450450
  505. NODIAL2 EQU * NOT DIAL OR NOT INIT BIDDING @V346931 00450500
  506. CLC BSCRESP(2),BSCRCVD IS THIS THE CORRECT RESPONSE @V305731 00451000
  507. BE CORACK0 YES, GET NEXT RESPONSE EXECPTED @V305731 00452000
  508. CLC BSCRESP(2),BSCSEND IS THIS THE SENDING RESPONSE @V305731 00453000
  509. BE CORACK0 YES, GET NEXT RESPONSE EXPECTED @V305731 00454000
  510. CLC BSCRESP(2),RGFWACK IS THIS A WACK RESPONSE @V305731 00457000
  511. BE ISWACK YES, GO SET WACK INDICATOR @V305731 00458000
  512. TM RDEVFTR,FTRDIAL IS DIAL UP FEATURE INDICATED?@V346931 00458050
  513. BNO CHKRVI NO, CHECK FOR RVI RESPONSE @V346931 00458100
  514. CLI BSCRESP,EOT EOT ? @V346931 00458150
  515. BE GETDUSNS YES, GET PENDING STATUS MESSAGE @V346931 00458200
  516. CLC BSCRESP,RGFDLEOT DISCONNECT SIGNAL? @V346931 00458250
  517. BE DLEEOT YES, GO FORCE USER OFF SYSTEM @V346931 00458300
  518. CLI BSCRESP,NAK NAK RESPONSE (NO TERMID)? @V346931 00458350
  519. BE GETDUSNS YES, GO SET UP TO RETRY I/O @V346931 00458400
  520. TM BSCFLAG,BSCRVI WAS EOT EXPECTED? @VA10521 00458410
  521. BO ISRVI YES, GO ISSUE SPECIFIC POLL @VA10521 00458420
  522. BAL R7,SENDENQ UNRECOGNIZED RESPONSE @V346931 00458450
  523. CHKRVI EQU * CHECK FOR PENDING STATUS @V346931 00458500
  524. CLC BSCRESP,RGFRVI IS THIS AN RVI RESPONSE? @V346931 00458550
  525. BE ISRVI YES, GO SET RVI INDICATOR @V346931 00458600
  526. CLI BSCRESP,EOT IS THIS AN EOT RESPONSE @V305731 00459000
  527. BE ISRVI YES, GO ISSUE SPECIFIC POLL @V305731 00460000
  528. TM BSCFLAG,BSCRVI WAS EOT EXPECTED? @VA11660 00460100
  529. BO ISRVI YES, GO ISSUE SPECIFIC POLL @VA11660 00460200
  530. BAL R3,RTYCOUNT CHECK RETRY COUNTER @VA13944 00461000
  531. B RESTARTA DO IT AGAIN, SAM @VA13944 00461050
  532. SPACE 2 00461100
  533. GETDUSNS EQU * SET UP TO HANDLE RETRY @V346931 00461200
  534. MVC BSCPCCW1(TWOCCW),S3275EOT WRITE EOT/READ CCW @V346931 00461300
  535. LA R1,BSCRESP ADDR OF RESPONSE BUFFER @V346931 00461400
  536. STCM R1,B'0111',BSCPCCW2+1 INTO CCW @V346931 00461500
  537. XC BSCRESP(RESPLEN),BSCRESP CLEAR RESPONSE BUFFER @V346931 00461600
  538. LA R1,BSCPCCW1 ADDRESS OF CHANNEL PROGRAM @V346931 00461700
  539. BAL R7,SETCAW GO START I/O TO BISYNC LINE @V346931 00461800
  540. SPACE 1 00462000
  541. CORACK0 EQU * CORRECT RESPONSE SECTION @V305731 00463000
  542. XI BSCRCVD+1,X'11' CHANGE ACK-0 TO ACK-1 @V305731 00464000
  543. XI BSCSEND+1,X'11' CHANGE ACK-1 TO ACK-0 @V305731 00465000
  544. MVI IOBMISC2,IBBWRITE FLAG AS WRITE CCW STRING @V305731 00466000
  545. L R1,BSCSPTR GET POINTER TO WRITE CCW STRING @V305731 00467000
  546. BAL R7,SETCAW GO RESTART I/O OPERATION @V305731 00468000
  547. SPACE 2 00469000
  548. ISWACK EQU * @V305731 00470000
  549. TM BSCFLAG,BSCCOPY IS COPY FUNCTION ACTIVE @V305731 00471000
  550. BO COPYERR YES, SEND MESSAGE TO REQUESTOR @V305731 00472000
  551. LA R1,BSCSCCW1 GET SELECT CCW @VA12356 00472100
  552. C R1,IOBCAW IS IT THE ONE? @VA12356 00472200
  553. BE OKCAW YES, RESTART AT THE SELECT @VA12356 00472300
  554. BAL R3,SELECTCW GO RESTART ADDRESSING SEQUENCE @VA11299 00473100
  555. OKCAW BAL R7,SETCAW ... @VA12356 00473300
  556. SPACE 1 00474000
  557. COPYERR EQU * SEND MESSAGE TO REQUESTOR @V305731 00475000
  558. NI BSCFLAG,X'FF'-BSCCOPY CLEAR COPY FUNCTION FLAG @V305731 00476000
  559. ICM R6,15,NICQPNT GET COPY FUNCTION CONTROL TASK @V305731 00477000
  560. BZ *+8 IF ZERO, BYPASS RETURN TASK @V305731 00478000
  561. BAL R3,CONRET RETURN CONTROL CONTASK @V305731 00479000
  562. L R9,BSCUCOPY GET COPY REQUESTOR NICBLOK ADDR @V305731 00480000
  563. BAL R3,NOTACPT GET CCWS FOR NOT ACCEPTED MESSAGE@V305731 00481000
  564. OI NICSTAT,NICCPNA+NICNTRL SET NOT ACPTED & CONTROL@V305731 00482000
  565. LA R1,CONCCW1 GET START OF CCW STRING @V305731 00483000
  566. ST R1,IOBCAW SAVE POINTER IN CAW FIELD @V305731 00484000
  567. BAL R3,SELECTCW GET ADDRESSING CHARACTERS @V305731 00485000
  568. BAL R7,RESTART GO RESTART I/O OPERATION TO LINE @V305731 00486000
  569. SPACE 2 00487000
  570. ISRVI EQU * @V305731 00488000
  571. BAL R3,SPOLLCW SET UP SPECIFIC POLLING CCWS @V305731 00489000
  572. BAL R7,SETCAW GO RESTART I/O OPERATION @V305731 00490000
  573. SPACE 2 00491000
  574. TP07 EQU * NOP FOLLOWING POLL COMMAND @V305731 00492000
  575. MVI BSCFLAG,X'00' CLEAR BISYNC INDICATORS @V305731 00493000
  576. BAL R7,FRETIOB RELEASE IOBLOK & IOERBLOK @V305731 00494000
  577. L R4,BSCTMRQ GET POINTER TO TIMER REQUEST @V305731 00495000
  578. LTR R1,R4 IS THERE A POINTER ? @V305731 00496000
  579. BZ POLLTMR YES, SET UP TIMER REQUEST BLOCK @V305731 00497000
  580. CALL DMKSCHRT GO RESET TIMER INTERRUPT @V305731 00498000
  581. BAL R7,DSCSTRQ GO SET UP TIMER REQUEST BLOCK @V305731 00499000
  582. SPACE 1 00500000
  583. POLLTMR EQU * GET STORAGE FOR TRQBLOK @V305731 00501000
  584. BAL R3,TRQSETUP GET STORAGE FOR TIMER REQUEST @V305731 00502000
  585. ST R4,BSCTMRQ SAVE POINTER TO TIMER REQUEST @V305731 00503000
  586. DSCSTRQ EQU * SCHEDULE TIMER REQUEST @V305731 00504000
  587. NI RDEVSTAT,X'FF'-RDEVWAII CLEAR LINE BUSY FLAG @V305731 00505000
  588. SLR R3,R3 CLEAR REGISTER 3 @V305731 00506000
  589. SLR R2,R2 CLEAR REGISTER 2 @V305731 00507000
  590. ICM R3,15,RDEVPDLY GET VALUE FOR TENTHS OF SECOND @V305731 00508000
  591. BZ TMREAD IF ZERO, CONTINUE POLLING @V305731 00509000
  592. M R2,=F'100000' PUT VALUE IN TIME OF DAY @V305731 00510000
  593. SLDL R2,12 (TOD) CLOCK VALUE @V305731 00511000
  594. STM R2,R3,TMRGPOLL SAVE TOD INTERVAL VALUE @V305731 00512000
  595. MVI TRQNAME,TRQBPOLL SET TIMER REQUEST FOR POLL @V305731 00513000
  596. LA R15,TMRINT GET RETURN ADDRESS ON INTERRUPT @V305731 00514000
  597. LA R1,TMRGPOLL GET ADDRESS OF TOD CLOCK INTERVAL@V305731 00515000
  598. BAL R7,SCHTIME SCHEDULE TIMER REQUEST @V305731 00516000
  599. OI BSCFLAG,BSCSCAN SET SECOND SCAN FLAG @V305731 00517000
  600. BAL R7,RGSTART CHECK FOR QUEUED WRITE REQUESTS @V305731 00518000
  601. SPACE 2 00519000
  602. TP10 EQU * POLL/ADDR - READ-WRITE TEXT @V305731 00520000
  603. CLI BSCREAD,EOT AN END OF TRANSMISSION RESPONSE @V305731 00521000
  604. BE ISRVI YES, DO A SPECFIC POLL OPERATION @V305731 00522000
  605. TM IOBCSW+4,UE DID WE GET AN EOT SOMEWHERE? @VA13944 00522100
  606. BO RESTARTA YES, START THE LINE AGAIN @VA13944 00522200
  607. LA R1,BSCSIZE1 GET SIZE OF INPUT BUFFER @V305731 00523000
  608. LA R2,BSCREAD GET ADDRESS OF BEGINNING OF DATA @V305731 00524000
  609. SR R3,R3 CLEAR REGISTER 3 @V305731 00525000
  610. ENQLIST EQU * CHECK FOR ENDING BISYNC CHARACTER@V305731 00526000
  611. CLI 0(R2),ENQ IS THIS AN ENQ BISYNC CHARARCTER @V305731 00527000
  612. BNE ENQDIAL NO, TEST FOR ENDING CHAR @V346931 00528000
  613. OI BSCFLAG,BSCENQ SET ENQ INDICATOR @V305731 00529000
  614. B DATAGOOD GO CHECK FOR BISYNC HEADER @V305731 00530000
  615. ENQDIAL TM RDEVFTR,FTRDIAL IS DIAL FEATURE INDICATED? @V346931 00530100
  616. BZ ENQETX NO, CHECK FOR ENDING CHARACTER @V346931 00530200
  617. CLC 0(DLEOTLN,R2),RGFDLEOT IS THIS DISCON SIGNAL? @V346931 00530300
  618. BE DLEEOT YES, FORCE USER OFF SYSTEM @V346931 00530400
  619. CLI 0(R2),EOT EOT? @V346931 00530500
  620. BE ISRVI YES, GET PENDING STATUS MESSAGE @V346931 00530600
  621. ENQETX EQU * CHECK FOR ENDING CHARACTER @VM03133 00531000
  622. CLI 0(R2),ETX IS THIS THE ENDING BISYNC CHARS. @V305731 00532000
  623. BE DATAGOOD YES, GO CHECK FOR BISYNC HEADER @V305731 00533000
  624. CLI 0(R2),ETB IS THIS END OF TEXT BLOCK CHARS. @V305731 00534000
  625. BE DATAGOOD YES, GO CHECK FOR BISYNC HEADER @V305731 00535000
  626. LA R2,1(R2) UPDATE INPUT DATA ADDRESS @V305731 00536000
  627. BCT R1,ENQLIST GO CHECK NEXT CHARACTER IN DATA @V305731 00537000
  628. BAL R7,SENDNAK REQUEST RETRANSMISSION OF INPUT @V305731 00538000
  629. SPACE 1 00539000
  630. DATAGOOD EQU * CHECK FOR BISYNC HEADER @V305731 00540000
  631. LR R1,R2 SAVE ENDING ADDRESS @V305731 00541000
  632. SR R0,R0 CLEAR REGISTER 0 @V305731 00542000
  633. LA R4,BSCREAD+1 GET POINTER TO STX CONTROL CHAR. @V305731 00543000
  634. CLI BSCREAD,X'05' IS THIS THE INDEX BYTE @V305731 00544000
  635. BE DATUPDAT YES, BYPASS GETTING ADDR. OF STX @VM03133 00545000
  636. S R4,F1 GET POINTER TO STX CONTROL CHAR. @V305731 00546000
  637. DATUPDAT EQU * GET CONTROL UNIT & DEVICE ADDRESS@VM03133 00547000
  638. ICM R0,3,1(R4) GET STATION ADDRESS (CU & DV) @V305731 00548000
  639. CLI 0(R4),STX IS THIS THE BEGINNING CHARACTER @V305731 00549000
  640. BE STATGOOD YES, GO FIND RESOURCE NICBLOK @V305731 00550000
  641. CLC 0(2,R4),RGFSONL IS THIS - SOH % - @V305731 00551000
  642. BNE SENDNAK NO, REQUEST RETRANSMIT INPUT DATA@V305731 00552000
  643. ICM R0,3,4(R4) GET STATION ADDRESS (CU & DV) @V305731 00553000
  644. CLC 2(2,R4),=X'D902' STATUS MESSAGE (R STX) @V305731 00554000
  645. BE STATGOOD YES, GO FIND RESOURCE NICBLOK @V305731 00555000
  646. CLC 2(2,R4),=X'6102' TEST REQUEST MSG. (/ STX) @V305731 00556000
  647. BE TESTREQ YES, GO IGNORE INPUT DATA @V305731 00557000
  648. BAL R7,SENDNAK REQUEST RETRANSMISSION OF INPUT @V305731 00558000
  649. SPACE 1 00559000
  650. STATGOOD EQU * FIND RESOURCE NICBLOK @V305731 00560000
  651. L R9,RDEVNICL GET ADDRESS OF NICBLOK LIST @V305731 00561000
  652. LA R2,NICSIZE*8 GET SIZE OF NICBLOK @V305731 00562000
  653. LH R3,RDEVMAX GET MAXIMUN NUMBER OF RESOURCES @V305731 00563000
  654. MH R3,=AL2(NICSIZE*8) GET ENDING ADDR. OF LIST @V305731 00564000
  655. ALR R3,R9 ... @V305731 00565000
  656. POLLIST EQU * FIND AFFECTED NICBLOK @V305731 00566000
  657. TM RDEVFTR,FTRDIAL DIAL FEATURE INDICATED @V346931 00566100
  658. BNO CKPLCHAR NO, GO EXAMINE POLLING CHARS @V346931 00566200
  659. TM NICTYPE,NICTERM DISPLAY/PRINTER ? @V346931 00566300
  660. BO FOUND YES, GO PROCESS INPUT TEXT @V346931 00566400
  661. CKPLCHAR EQU * NOT DIAL PRINTER @V346931 00566500
  662. CLM R0,B'0011',NICPOLL CORRECT POLLING CHARACTERS? @V305731 00567000
  663. BE FOUND YES, GO PROCESS INPUT DATA @V305731 00568000
  664. BXLE R9,R2,POLLIST GET NEXT NICBLOK AND LOOP @V305731 00569000
  665. L R9,RDEVNICL GET POINTER TO NICBLOK LIST @V305731 00570000
  666. BAL R7,TESTREQ RESOURCE NOT SYS-GEN. - IGNORE @V305731 00571000
  667. SPACE 2 00572000
  668. *********************************************************** 00573000
  669. * ENTRY WHEN TIMER REQUEST EXPIRES. 00574000
  670. *********************************************************** 00575000
  671. SPACE 1 00576000
  672. USING *,R12 ADDRESSABILITY FOR TIMER REQUEST @V305731 00577000
  673. TMRINT EQU * ENTRY TIMER REQUEST AT EXPIRATION@V305731 00578000
  674. SWITCH ENSURE WE ARE ON THE MAIN PROC @V407511 00578100
  675. LM R12,R13,RGABASE GET BASE ADDRESSES @V305731 00579000
  676. USING DMKRGA,R12,R13 .... @V305731 00580000
  677. LH R1,TRQBDEV-TRQBLOK(R10) GET LINE ADDRESS @V305731 00581000
  678. CALL DMKSCNRU LOCATE REAL DEVICE CONTROL BLOCKS@V305731 00582000
  679. L R5,RDEVBSC GET ADDRESS OF BSCBLOK @V305731 00583000
  680. L R9,TRQBCRT-TRQBLOK(R10) GET NICBLOK ADDR OF USER@V305731 00584000
  681. CLI TRQNAME-TRQBLOK(R10),TRQBPOLL A POLL REQUEST @V305731 00585000
  682. BE TMREAD YES, RELEASE TIMER REQUEST BLOCK @V305731 00586000
  683. TM RDEVSTAT,RDEVWAII IS THE LINE ACTIVE? @VA08733 00586050
  684. BNO TMRGO NO, GO ON @VA08733 00586100
  685. CL R9,BSCAUSER IS THIS USER ACTIVE? @VA08733 00586150
  686. BNE TMRGO NO, GO ON @VA08733 00586200
  687. * *** DANGEROUS SITUATION: ACTIVITY ALREADY ON-GOING FOR 00586250
  688. * *** THE SAME TUBE. SAFER TO WAIT ANOTHER SECOND BEFORE 00586300
  689. * *** TRYING ANYTHING. 00586350
  690. LA R1,=A(1,0) 1 SECOND TIMER DELAY @VA08733 00586400
  691. LA R15,TMRINT RETURN ADDRESS @VA08733 00586450
  692. LR R4,R10 TRQBLOK ADDRESS @VA08733 00586500
  693. BAL R7,SCHTIME SCHEDULE TIMER REQUEST @VA08733 00586550
  694. B GODSPCH AND GO WAIT AWHILE LONGER @VA08733 00586600
  695. TMRGO EQU * HERE IF NOT ACTIVE SAME TUBE @VA08733 00586650
  696. NI NICSTAT,X'FF'-NICTRQ RESET TIMER REQUEST @V305731 00587000
  697. TM NICSTAT,NICCPNA NOT ACCEPTED MESSAGE ON @V305731 00588000
  698. BO CPNATMR1 YES, GO DETERMINE CORRECT STATUS @V305731 00589000
  699. BAL R3,GRFCLRT SET UP CCWS TO CLEAR SCREEN @V305731 00590000
  700. MVI CONLABEL,RTNNOCTL SET RETURN TO NEXT CONTASK @V305731 00591000
  701. BAL R7,CKLINE CHECK STATUS OF BISYNC LINE @VA04651 00592100
  702. SPACE 1 00593000
  703. CPNATMR1 EQU * GET CORRECT SCREEN STATE @V305731 00594000
  704. BAL R4,STATUS DETERMINE SCREEN STATUS @V305731 00595000
  705. CKLINE EQU * DETERMINE STATUS OF LINE @VA04651 00595100
  706. OI NICFLAG,NICPROCN PROCESS CONTASK NOW ... @V305731 00607000
  707. NI NICSTAT,X'FF'-NICCPNA CLEAR NOT ACPTED MSG FLAG @V305731 00608000
  708. SR R10,R10 CLEAR IOBLOK ADDRESS REGISTER @V305731 00609000
  709. BAL R7,RGSTART GET ACTIVE RESOURCE & START I/O @V305731 00610000
  710. SPACE 2 00611000
  711. TMREAD EQU * HANDLE A POLL TIMER REQUEST @V305731 00612000
  712. LA R0,TRQBSIZE+CRTEXT GET SIZE OF TRQBLOK @VA13071 00613100
  713. L R1,BSCTMRQ GET ADDRESS OF TIMER REQUEST @V305731 00614000
  714. BAL R7,FRETSTG RELEASE STORAGE FOR TRQBLOK @V305731 00615000
  715. ST R0,BSCTMRQ CLEAR ADDRESS OF TIMER REQUEST @V305731 00616000
  716. SR R10,R10 CLEAR IOBLOK ADDRESS REGISTER @V305731 00617000
  717. BAL R7,RGSTART GET ACTIVE RESOURCE & START I/O @V305731 00618000
  718. SPACE 2 00619000
  719. RGABASE DS 0F REMOTE 3270 BASE REGISTER VALUES @V305731 00620000
  720. DC A(DMKRGA,DMKRGA+4096) @V305731 00621000
  721. SPACE 2 00622000
  722. FOUND EQU * PUT INPUT DATA INTO READ BUFFER @V305731 00623000
  723. TM BSCFLAG,BSCENQ IS ENQ IN TEXT FLAG SET ? @V305731 00624000
  724. BO SENDNAK YES, GO SEND NAK RESPONSE @V305731 00625000
  725. CLI 0(R4),STX IS THIS A TEXT MESSAGE ? @V305731 00626000
  726. BNE SENSTAT NO, GO TO STATUS MESSAGE SECTION @V305731 00627000
  727. LA R14,NDXRGFFN PASS ENTRY BRANCH TABLE OFFSET @VA13123 00627500
  728. GOTO DMKRGFEN GO HANDLE THE INPUT DATA @VA13123 00637500
  729. SPACE 1 @VA13123 00647500
  730. SECOND EQU * FIND COMPOUND CHARACTERS @VA13123 00657500
  731. LA R14,NDXRGF02 PASS ENTRY INDEX @VA13123 00667500
  732. GOTO DMKRGFEN GO HANDLE THE INPUT DATA @VA13123 00677500
  733. SPACE 1 @VA13123 00687500
  734. CHECKEY EQU * DETERMINE WHAT KEY WAS DEPRESSED @VM03043 00702000
  735. LA R14,NDXRGFCC PASS ENTRY INDEX @VA13123 00703000
  736. GOTO DMKRGFEN GO CHECK KEY @VA13123 00706000
  737. SPACE 1 @VA13123 00709000
  738. NOTKEY DS 0H @VA13123 00712000
  739. BAL R3,FRETRD RELEASE READ BUFFER @V305731 00715000
  740. TM BSCFLAG,BSCCOPY IS THIS A COPY FUNCTION ? @V305731 00716000
  741. BO RGFTSTRQ YES, RESET BISYNC LINE @V305731 00717000
  742. BAL R7,CPNATMR2 SET RETURN AND TEST FOR STATUS @V305731 00718000
  743. SPACE 1 00719000
  744. DATACNT EQU * SET UP COUNT IN BUFFER @V305731 00764000
  745. LA R14,NDXRGFDC PASS ENTRY INDEX @VA13123 00765000
  746. GOTO DMKRGFEN GO CHECK KEY @VA13123 00765800
  747. SPACE 1 @VA13123 00766600
  748. DMKRGACR DS 0H VALIDATE VECTOR OFFSET @VA13123 00767400
  749. LTR R14,R14 POSITIVE REGISTER? @VA13123 00768200
  750. BNM RGACRTN1 YES - GO COMPLETE VALIDATE @VA13123 00769000
  751. ABEND 3 GO DIE @VA13123 00769800
  752. RGACRTN1 DS 0H @VA13123 00770600
  753. CLM R14,B'1111',VECTBLST VALID OFFSET? @VA13123 00771400
  754. BL VECTBLGC(R14) YES - GO TO INDICATED ROUTINE @VA13123 00772200
  755. B RGA3 GO DIE @VA13123 00773000
  756. VECTBLGC DS 0H VECTOR TABLE USED ON RETURN FROM @VA13123*00773800
  757. DMKRGF @VA13123 00774600
  758. B EDNULL @VA13123 00775400
  759. B RVIRESP @VA13123 00776200
  760. B LOGUSER @VA13123 00777000
  761. B CLRKEY @VA13123 00777800
  762. B PA1KEY @VA13123 00778600
  763. B PA3KEY @VA13123 00779400
  764. B PFKEY @VA13123 00780200
  765. B CNCLKEY @VA13123 00781000
  766. B TESTREQ @VA13123 00781800
  767. B CRTMOR @VA13123 00782600
  768. B POSTINT @VA13123 00783400
  769. B SETHOLD1 @VA13123 00784200
  770. B NOTKEY @VA13123 00785000
  771. B RDRTN @VA13123 00785800
  772. B RDATA @VA13123 00786600
  773. B CFMBK @VA13123 00787400
  774. B VIRTBUFF @VA13123 00788200
  775. B TESTCF @VA13123 00789000
  776. VECTBLST DC AL4(*-VECTBLGC) VECTOR TABLE SIZE FOR COMPARE @VA13123 00789800
  777. SPACE 1 @VA13123 00790600
  778. EDNULL EQU * CLEAR INPUT AREA ON SCREEN @V305731 00793000
  779. BAL R3,FRETRD RELEASE THE READ BUFFER @V305731 00794000
  780. BAL R3,GRFCRD CCW STRING CLEAR INPUT AREA @V305731 00795000
  781. BAL R7,SETCAWA GO START I/O OPERATION TO LINE @V305731 00796000
  782. SPACE 1 00797000
  783. SETHOLD1 DS 0H @VA13123 00798000
  784. BAL R7,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V305731 00807000
  785. BAL R3,CRTHOLD SET UP CCW STRING FOR HOLD STATE @V305731 00808000
  786. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 00809000
  787. SPACE 1 00810000
  788. CRTMOR EQU * SET CCW STRING FOR MORE STATE @V305731 00811000
  789. BAL R7,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V305731 00812000
  790. BAL R3,CRTMORE SET UP CCW STRING FOR MORE STATE @V305731 00813000
  791. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 00814000
  792. SPACE 1 00815000
  793. POSTINT EQU * POST ATTENTION INTERRUPT @V305731 00816000
  794. BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 00817100
  795. TM VMMLEVEL,VMMCPENV CP ENVIRONMENT @V305731 00820000
  796. BO CFMBK YES, PUT IN CONSOLE FUNCTION MODE@V305731 00821000
  797. TM VMRSTAT,VMCFWAIT IS USER SLEEPING ? @V305731 00822000
  798. BO CFMBK YES, PUT IN CONSOLE FUNCTION MODE@V305731 00823000
  799. CALL DMKCFMAT POST ATTENTION INTERRUPT @V305731 00824000
  800. BZ SENDRESP IF ATTENTION INTERRUPT WAS POSTED@V305731 00825000
  801. CFMBK EQU * PLACE USER IN CONSOLE FUNCTION @V305731 00826000
  802. BAL R7,ROUTCFM PLACE IN CONSOLE FUNCTION MODE @V305731 00827000
  803. SENDRESP EQU * SEND RESPONSE TO REMOTE STATION @V305731 00828000
  804. BAL R7,RSWVMU SWITCH VMBLOK CHARGING @V4M0193 00829100
  805. BAL R7,RVIRESP SEND RVI RESPONSE - IGNORE INPUT @V305731 00832000
  806. SPACE 1 00833000
  807. VIRTBUFF EQU * HANDLE VIRTUAL BUFFER @V305731 00834000
  808. TM VMMLEVEL-VMBLOK(R1),VMMLINED VIRTUAL LINE EDIT @V305731 00835000
  809. BO VIRTBFRT YES, EDIT INPUT DATA @VA06260 00836100
  810. BAL R7,FRETCON NO, FRET DUMMY CONTASK @VA06260 00836200
  811. B SAVRDEV BYPASS EDITING INPUT @VA06260 00836300
  812. VIRTBFRT EQU * @VA06260 00836400
  813. MVI CONPARM,EDIT EDIT INPUT DATA @V305731 00837000
  814. BAL R7,ROUTCNS EDIT INPUT DATA & RELEASE CONTASK@V305731 00838000
  815. BAL R7,FRETCON RELEASE CONTASK ... @V305731 00839000
  816. LTR R3,R3 EDIT RESULT IN NULL DATA @V305731 00840000
  817. BNP EDNULL YES, RELEASE READ BUFFER @V305731 00841000
  818. L R7,0(R4) GET FIRST WORD OF DATA ENTERED @V305731 00842000
  819. O R7,=X'00404040' CONVERT TO UPPER CASE & BLANK @V305731 00843000
  820. CL R7,=X'15C3D740' IS IT CR-CP-BLANK ? @V305731 00844000
  821. BNE SAVRDEV NO, BYPASS HANDLING #CP @V305731 00845000
  822. CL R3,F3 IS IT JUST CR-CP ? @V305731 00846000
  823. BNE TRDATA NO, TRANSLATE TO UPPER CASE @V305731 00847000
  824. SR R0,R0 CLEAR REGISTER 0 @V305731 00848000
  825. ST R0,BUFCNT-BUFFER(R4) SET DATA COUNT TO ZERO @V305731 00849000
  826. TRDATA EQU * TRANSLATE CHARS. TO UPPER CASE @V305731 00850000
  827. L R1,=A(DMKTBLUP) GET UPPERCASE TABLE @V305731 00851000
  828. EX R3,TRANSLAT TRANSLATE CONSOLE FUNCTION @V305731 00852000
  829. TESTCF EQU * RE-DISPLAY DATA ON SCREEN @V305731 00853000
  830. L R1,NICUSER GET USER VMBLOK POINTER @V305731 00854000
  831. TM VMOSTAT-VMBLOK(R1),VMCF CONS. FUNCT. EXECUTE @V305731 00855000
  832. BO REJECT YES, CAN'T HANDLE DATA @V305731 00856000
  833. CLC BUFCNT-BUFFER(4,R4),F0 #CP ENTERED ? @V305731 00857000
  834. BE CPDISPLY YES, BYPASS SETTING CONS. FTN. @VM03133 00858000
  835. OI VMRSTAT-VMBLOK(R1),VMCFWAIT USER IN CONS. WAIT @V305731 00859000
  836. OI VMOSTAT-VMBLOK(R1),VMCF SET CONS. FTN. ACTIVE @V305731 00860000
  837. CPDISPLY EQU * DISPLAY INPUT DATA @VM03133 00861000
  838. BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 00861100
  839. LR R1,R4 GET DATA ADDRESS @V305731 00862000
  840. LR R0,R3 GET DATA COUNT @V305731 00863000
  841. LA R2,NORET SET UP PARM FOR DATA RE-DISPLAY @V305731 00864000
  842. BAL R7,ROUTQCN RE-DISPLAY INPUT DATA @V305731 00865000
  843. L R1,NICUSER GET USER VMBLOK POINTER @V305731 00866000
  844. BAL R3,GRFCRD SET UP CCWS TO CLEAR INPUT AREA @V305731 00867000
  845. MVI CONLABEL,RTNRFCFM RETURN TO CFM PROCESSING @V305731 00868000
  846. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 00869000
  847. SPACE 1 00870000
  848. SAVRDEV EQU * HANDLE VIRTUAL USER INPUT DATA @V305731 00871000
  849. L R1,NICUSER GET USER VMBLOK POINTER @V305731 00872000
  850. LH R7,VMVTERM-VMBLOK(R1) GET VIRTUAL TERM. DISPL. @V305731 00873000
  851. LTR R7,R7 IS VIRTUAL TERMINAL DEFINED @V305731 00874000
  852. BM REJECT YES, REJECT INPUT DATA @V305731 00875000
  853. AL R7,VMDVSTRT-VMBLOK(R1) GET THE VDEVBLOK ADDRESS @V305731 00876000
  854. L R2,VDEVCON-VDEVBLOK(R7) PTR TO VIRTUAL CONTASK @V305731 00877000
  855. USING VCONCTL,R2 ADDRESSABILITY FOR VIRTUAL BUFFER@V305731 00878000
  856. L R1,VCONRBUF GET ADDRESS OF READ DATA BUFFER @V305731 00879000
  857. LTR R1,R1 IS THERE A VIRTUAL BUFFER @V305731 00880000
  858. BNZ REJECT NO, REJECT INPUT DATA @V305731 00881000
  859. MVC VCONRBSZ,=AL2(BUFSIZE) SIZE OF VIRT BUFFER HRV101DK 00882490
  860. STH R3,VCONRCNT SAVE NO. OF BYTES IN READ BUFFER @V305731 00883000
  861. ST R4,VCONRBUF SAVE BUFFER ADDRESS @V305731 00884000
  862. DROP R2 DROP REGISTER FOR VIRTUAL BUFFER @V305731 00885000
  863. XC BSCRPTR,BSCRPTR FORGET ABOUT THE BUFFER @VA08730 00885050
  864. BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 00885100
  865. LR R1,R4 GET BUFFER ADDRESS FOR RE-DISPLAY@V305731 00886000
  866. LR R0,R3 GET SIZE OF BUFFER DATA @V305731 00887000
  867. LA R2,NORET+NOTIME SET UP PARM FOR DATA RE-DISPLAY @V305731 00888000
  868. TM NICFLAG,NICDIAG IS THIS A DIAGNOSE WRITE REQUEST@V305731 00889000
  869. BZ BYPHIBIT NO, BYPASS INHIBIT PRINTING @VM03133 00890000
  870. LA R2,INHIBIT(R2) ADD INHIBIT TO SPOOL NOT PRINT @V305731 00891000
  871. BYPHIBIT EQU * SETUP TO RE-DISPLAY INPUT @VM03133 00892000
  872. LR R4,R8 SAVE RDEVBLOK ADDRESS @V305731 00893000
  873. LR R8,R7 GET VIRTUAL DEVICE BLK (VDEVBLOK)@V305731 00894000
  874. BAL R7,ROUTQCN GO RE-DISPLAY INPUT DATA @V305731 00895000
  875. BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 00896100
  876. CALL DMKCFMAT POST ATTN INTERRUPT TO VIRT MACH @V305731 00899000
  877. LR R8,R4 RESTORE RDEVBLOK POINTER @V305731 00900000
  878. BAL R3,GRFCRD CCWS TO CLEAR INPUT AREA @V305731 00901000
  879. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 00902000
  880. SPACE 1 00903000
  881. RDATA EQU * HERE WHEN SCREEN IN READ STATE @V305731 00904000
  882. LTR R3,R3 ANY DATA READ ? @V305731 00905000
  883. BNP NOEDIT NO, BYPASS EDITING INPUT DATA @V305731 00906000
  884. CLI CONPARM,INHIBIT INHIBIT - NOEDIT CPREAD ? @V305731 00907000
  885. BE NOEDIT1 YES, BYPASS EDITING INPUT DATA @V305731 00908000
  886. TM NICFLAG,NICCARD DATA FROM CARD READER ? @V305731 00909000
  887. BO ZDATA YES, DON'T ACCEPT INPUT DATA @V305731 00910000
  888. MC MNCOERD,MNCLRESP RESPONSE CLASS, END READ @VA12636 00910100
  889. TM CONPARM,EDIT+UCASE ANY EDITING WANTED ? @V305731 00911000
  890. BZ NOEDIT NO, BYPASS EDITING @V305731 00912000
  891. L R1,NICUSER USER VMBLOK ADDRESS @VA09444 00912100
  892. TM VMOSTAT-VMBLOK(R1),VMCF IN CP READ?? @VA09444 00912200
  893. BO RDATA2 YES, EDIT THIS LINE @VA09444 00912300
  894. TM VMMLEVEL-VMBLOK(R1),VMMCPENV TERM MODE CP??? @VA09444 00912400
  895. BZ RDATA2 NO, MUST BE VMREAD @VA09444 00912500
  896. TM NICTMCD,NICAPL+NICTEXT TRANS INDICATED? @V387398 00913100
  897. BNZ NOEDIT YES, BYPASS EDIT FUNCTION @V387398 00913200
  898. RDATA2 DS 0H INSURE EDIT OF CP INPUT @VA09444 00913300
  899. L R2,CONADDR GET CALLERS BUFFER ADDRESS @V305731 00915000
  900. LH R0,CONCNT GET CALLERS BUFFER COUNT @V305731 00916000
  901. ST R4,CONADDR ADDRESS OF BUFFER FOR EDIT @V305731 00917000
  902. STH R3,CONCNT SAVE BUFFER COUNT @V305731 00918000
  903. BAL R7,ROUTCNS GO EDIT THE INPUT DATA @V305731 00919000
  904. ST R2,CONADDR RESTORE CALLERS BUFFER ADDRESS @V305731 00920000
  905. STH R0,CONCNT RESTORE CALLERS BUFFER COUNT @V305731 00921000
  906. SR R2,R2 SET ZERO RETURN CODE @V305731 00922000
  907. LTR R3,R3 ANY DATA AFTER EDITING ? @V305731 00923000
  908. BNP RDATA3 NO, RELEASE READ BUFFER @VA09444 00924100
  909. L R7,0(R4) GET FIRST WORD OF DATA ENTERED @VA09444 00924150
  910. O R7,=X'00404040' CONVERT TO UPPER CASE @VA09444 00924200
  911. CL R7,=X'15C3D740' IS THIS CR CP???? (#CP) @VA09444 00924250
  912. BNE RDRTN PASS DATA TO CALLER @VA09444 00924300
  913. CL R3,F3 IS IT JUST CR CP?? @VA09444 00924350
  914. BNE TRDATA1 NO TRANSLATE TO UPPER CASE @VA09444 00924400
  915. SR R0,R0 SET DATA COUNT TO ZERO @VA09444 00924450
  916. ST R0,BUFCNT-BUFFER(R4) *** @VA09444 00924500
  917. TRDATA1 DS 0H TRANSLATE CHARACTERS TO UP CASE @VA09444 00924550
  918. L R1,=A(DMKTBLUP) UPPERCASE XLATE TABLE @VA09444 00924600
  919. EX R3,TRANSLAT TRANSLATE CONSOLE FUNCTION @VA09444 00924650
  920. B RDRTN MOVE DATA TO USER BUFFER @VA09444 00924700
  921. RDATA3 DS 0H CONTINUE AS BEFORE @VA09444 00924750
  922. BAL R3,FRETRD RELEASE READ BUFFER @V305731 00925000
  923. BAL R3,GRFCRD SET UP CCWS TO CLEAR INPUT AREA @V305731 00926000
  924. MVI CONLABEL,RTNSRTRD SET RETURN TO READ SECTION @V305731 00927000
  925. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 00928000
  926. SPACE 1 00929000
  927. NOEDIT1 EQU * @V305731 00930000
  928. TM NICFLAG,NICCARD IS DATA FROM CARD READER @V305731 00931000
  929. BO NOEDIT YES, BYPASS CLEARING COUNT @V305731 00932000
  930. ZDATA EQU * CLEAR INPUT DATA COUNT @V305731 00933000
  931. SR R3,R3 CLEAR COUNT REGISTER @V305731 00934000
  932. NOEDIT EQU * @V305731 00935000
  933. SR R2,R2 SET RETURN CODE TO ZERO @V305731 00936000
  934. RDRTN EQU * MOVE DATA INTO CALLERS BUFFER @V305731 00937000
  935. LH R1,CONCNT GET CALLERS BUFFER COUNT @V305731 00938000
  936. CLR R1,R3 IS IT LESS THAN INPUT COUNT @V305731 00939000
  937. BNL BYPCOUNT NO, BYPASS CHANGING COUNT @VM03133 00940000
  938. LR R3,R1 SET DATA COUNT TO MAXIMUN @V305731 00941000
  939. BYPCOUNT EQU * SAVE ACTUAL DATA COUNT @VM03133 00942000
  940. STH R3,CONCNT SAVE DATA COUNT @V305731 00943000
  941. LTR R3,R3 ANY DATA RETURNED ? @V305731 00946000
  942. BNP NODATA NO, BYPASS MOVING DATA @V305731 00947000
  943. L R1,CONADDR GET CALLERS BUFFER ADDRESS @V305731 00948000
  944. BCTR R3,R0 SUBTRACT ONE - EX INSTRUCTION @V305731 00949000
  945. EX R3,MOVEDATA MOVE INPUT DATA TO CALLERS BUFFER@V305731 00950000
  946. NODATA EQU * SET UP TO RE-DISPLAY INPUT DATA @V305731 00951000
  947. BAL R3,SETRETN SET RETURN CODE @V305731 00952000
  948. BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 00952100
  949. LA R0,4 SIZE FOR BLANKS @V305731 00953000
  950. LA R1,BLANKS WRITE BLANKS FOR NULL/PROTECTED @V305731 00954000
  951. TM CONPARM,INHIBIT NON-DISPLAY INPUT DATA ? @V305731 00955000
  952. BO BLNKDSP YES, GO RE-DISPLAY BLANKS @V305731 00956000
  953. LH R3,CONCNT RESTORE BYTE COUNT @VA07438 00958100
  954. LTR R3,R3 IS BYTE COUNT ZERO ? @V305731 00959000
  955. BZ BLNKDSP YES, GO WRITE BLANKS @V305731 00960000
  956. LR R0,R3 GET BYTE COUNT @V305731 00961000
  957. LR R1,R4 GET BUFFER ADDRESS @V305731 00962000
  958. BLNKDSP EQU * @V305731 00963000
  959. LA R2,NORET SET UP PARM @V305731 00964000
  960. TM CONPARM,VMGENIO VIRTUAL MACHINE DATA @V305731 00965000
  961. BZ BYPPARM NO, BYPASS PARAMETERS @VM03133 00966000
  962. LA R2,NORET+NOTIME ... @V305731 00967000
  963. BYPPARM EQU * CHECK FOR DIAGNOSE WRITE (X'58') @VM03133 00968000
  964. TM NICFLAG,NICDIAG SCREEN WRITTEN WITH DIAGNOSE @V305731 00969000
  965. BZ BYPINH NO, BYPASS INHIBITING PRINT @VM03133 00970000
  966. LA R2,INHIBIT(R2) ADD INHIBIT TO SPOOL NOT PRINT @V305731 00971000
  967. ICM R2,B'0100',NOMC BYPASS MONITOR CALL IN QCN @VA04810 00971500
  968. BYPINH EQU * RE-DISPLAY INPUT AREA @VM03133 00972000
  969. BAL R7,ROUTQCN GO RE-DISPLAY INPUT DATA @V305731 00973000
  970. OI CONPARM,INHIBIT MAKE SURE NOT SPOOLED TWICE @VA05374 00973500
  971. OI CONSTAT,CONACTV REMEMBER TO RETURN THE READ @V305731 00975000
  972. BAL R3,FRETRD RELEASE READ BUFFER @V305731 00976000
  973. BAL R3,GRFCRD SET UP CCWS TO CLEAR INPUT AREA @V305731 00977000
  974. TM NICFLAG,NICDIAG IS THE DIAGNOSE INTERFACE ACTIVE@V305731 00978000
  975. BO DIAG IF SO, BRANCH @VA11787 00979350
  976. B BYPWRITS SET UP SCREEN STATUS @VA11787 00979550
  977. DIAG MVI CONLABEL,RTNCPNAT RET. TO RITE STAT SECTION @VA11787 00979750
  978. BYPWRITS EQU * SETUP SCREEN STATUS @VM03133 00981000
  979. MVI NICSTAT,NICRUNN+NICNTRL SET RUNNING & CONTROL @V305731 00982000
  980. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 00983000
  981. SPACE 1 00984000
  982. CNCLKEY EQU * HANDLE CANCEL KEY @V305731 00985000
  983. TM NICTMCD,NICAPL APL ON ? @V305798 00986000
  984. BZ CLRKEY NO, CONT @V305798 00987000
  985. L R1,NICUSER GET USER VMBLOK POINTER @VM03094 00988000
  986. TM VMQSTAT-VMBLOK(R1),VMPA2APL IS PA2 FLAG ENABLE @VM03116 00989000
  987. BZ CLRKEY NO, CONTINUE NORMAL PROCESSING @VM03094 00990000
  988. TM NICSTAT,NICHOLD+NICMORE IS THIS HOLD/MORE STATUS@VM03094 00991000
  989. BNZ XINCONT YES, REFLECT EXTERNAL INTERRUPT @VM03094 00992000
  990. TM NICSTAT,NICREAD IS READ STATUS INDICATED @VM03094 00993000
  991. BZ CLRKEY NO, DON'T REFLECT INTERRUPT @VM03094 00994000
  992. L R3,NICQPNT GET READ CONTASK FROM QUEUE @VM03094 00995000
  993. TM CONPARM-CONTASK(R3),VMGENIO IS THIS VM READ @VM03094 00996000
  994. BZ CLRKEY NO, BYPASS REFLECTING INTERRUPT @VM03094 00997000
  995. XINCONT EQU * REFLECT EXTERNAL INTRRUPT @VM03094 00998000
  996. SLR R3,R3 CLEAR THE INDEX @V305798 00999000
  997. STM R5,R6,BALRSAVE SAVE BASE REGS @VA07391 01000100
  998. L R4,=X'00400040' EXTERNAL INTERRUPT KEY @V305798 01001000
  999. LA R2,VMPXINT-VMBLOK(R1) START OF EXT INT BLOCKS @V305798 01002000
  1000. USING XINTBLOK,R2 @V305798 01003000
  1001. XINTLOOP LR R6,R2 @V305798 01004000
  1002. L R2,XINTNEXT-XINTBLOK(,R6) NEXT ? @V305798 01005000
  1003. LTR R2,R2 TEST IT @V305798 01006000
  1004. BZ XINTADD NOPE, ADD END OF CHAIN @V305798 01007000
  1005. C R3,XINTSORT CHECK FOR COLLATING SEQ @V305798 01008000
  1006. BH XINTLOOP KEEP LOOKING... @V305798 01009000
  1007. BL XINTADD THIS EES THE PLACE @V305798 01010000
  1008. O R4,XINTCODE MUST BE INDICATED TOGETHER @V305798 01011000
  1009. ST R4,XINTCODE OR ONE AT A TIME @V305798 01012000
  1010. B XINTEXIT GET OUT @V305798 01013000
  1011. XINTADD EQU * @V305798 01014000
  1012. LA R0,XINTSIZE NO. OF DOUBLE WORDS @V305798 01015000
  1013. CALL DMKFREE @V305798 01016000
  1014. ST R1,XINTNEXT-XINTBLOK(,R6) @V305798 01017000
  1015. SLR R5,R5 PARM IS MEANINGLESS HERE @V305798 01018000
  1016. STM R2,R5,XINTNEXT-XINTBLOK(R1) BUILD NEW INTRPT BLK@V305798 01019000
  1017. XINTEXIT EQU * RESTORE REGISTERS @V305798 01020000
  1018. LM R5,R6,BALRSAVE RESTORE BASE REGS @VA07391 01021100
  1019. DROP R2 DROP BASE REGISTER @V305798 01022000
  1020. SPACE 2 01023000
  1021. CLRKEY EQU * @V305798 01024000
  1022. BAL R3,FRETRD RELEASE READ BUFFER @V305731 01025000
  1023. CNCLDE EQU * CLEAR SCREEN ON DEVICE END STATUS@V305731 01026000
  1024. BAL R7,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V305731 01027000
  1025. TM NICSTAT,NICRUNN+NICMORE IS RUNNING OR MORE ON ? @V305731 01028000
  1026. BZ CNCLREAD NO, CHECK READ STATE @V305731 01029000
  1027. GRFCLR EQU * CLEAR SCREEN SECTION @V305731 01030000
  1028. BAL R3,GRFCLRT SET UP CLEAR SCREEN CCWS @V305731 01031000
  1029. MVI CONLABEL,RTNNOCTL SET RETURN TO NEXT CONTASK @V305731 01032000
  1030. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01033000
  1031. SPACE 1 01034000
  1032. CNCLREAD EQU * @V305731 01035000
  1033. TM NICSTAT,NICREAD IS THIS A READ STATE @V305731 01036000
  1034. BZ CNCLHOLD NO, CANCEL FROM HOLD STATE @V305731 01037000
  1035. BAL R3,GRFCLRT SET UP CLEAR SCREEN CCWS @V305731 01038000
  1036. MVI CONLABEL,RTNSRTRD SET RETURN TO READ SECTION @V305731 01039000
  1037. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01040000
  1038. SPACE 1 01041000
  1039. CNCLHOLD EQU * PROCESS HOLD STATE @V305731 01042000
  1040. LA R2,4 SINGLE ATTENTION RETURN CODE @V305731 01043000
  1041. L R1,NICUSER GET USER VMBLOK POINTER @V305731 01044000
  1042. TM VMMLEVEL-VMBLOK(R1),VMMCPENV CP ENVIRONMENT @V305731 01045000
  1043. BZ GRFCLR NO, GO CLEAR SCREEN @V305731 01046000
  1044. * CNCL(PA2) KEY WITH TERM MODE CP AND IN HOLDING STATUS 01046310
  1045. * CLEARS THE SCREEN AND GIVES RETURN CODE 8 01046320
  1046. SPACE 1 01046400
  1047. CLEARD EQU * CLEAR THE REMOTE DISPLAY SCREEN @V305731 01047000
  1048. LA R2,8 RETURN CODE FOR DOUBLE ATTENTION @VA04772 01048300
  1049. TM CONPARM,VMGENIO WAS OUTPUT FROM VIRTUAL SIO @VA04772 01048600
  1050. BO PA1CLR YES - DON'T GIVE DOUBLE ATTEN. @VA04772 01048900
  1051. * RETURN 01049200
  1052. BAL R3,SETRETN SET RETURN CODE FOR CALLER @VA04772 01049500
  1053. BAL R3,GRFCLRT CCW'S TO CLEAR THE SCREEN @VA04772 01049800
  1054. MVI CONLABEL,RTNLGTST CONTASK RETURN ADDRESS @VA04772 01050100
  1055. B SETCAWA NOW CLEAR THE SCREEN @VA04772 01050400
  1056. SPACE 1 01050700
  1057. PA1CLR BAL R3,GRFCLRT CCW'S TO CLEAR THE SCREEN @VA04772 01051000
  1058. MVI CONLABEL,RTNLGTST CONTASK RETURN ADDRESS @VA04772 01051300
  1059. OI BSCFLAG1,BSCPA1 FLAG TO PUT USER IN BREAK MODE @VA04772 01051600
  1060. B SETCAWA ISSUE SIO TO CLEAR THE SCREEN @VA04772 01051900
  1061. SPACE 1 01053000
  1062. PA1KEY EQU * HANDLE PA1 KEY @V305731 01054000
  1063. BAL R3,FRETRD RELEASE READ BUFFER @V305731 01055000
  1064. TM NICSTAT,NICRUNN IS RUNNING STATE INDICATED @V305731 01056000
  1065. BO CFMBK YES, PLACE IN CONSOLE FUNCTION @V305731 01057000
  1066. TM NICSTAT,NICMORE+NICHOLD IS MORE OR HOLD ON ? @V305731 01058000
  1067. BZ PA1READ NO, MUST BE READ STATE @V305731 01059000
  1068. BAL R7,RSTTMR RESET ACTIVE TIMER REQUEST @V305731 01060000
  1069. BAL R7,CLEARD GO CLEAR SCREEN @V305731 01061000
  1070. SPACE 1 01062000
  1071. PA1READ EQU * HANDLE READ STATE FOR PA1 KEY @V305731 01063000
  1072. LA R2,8 SET DOUBLE ATTENTION RETURN CODE @V305731 01064000
  1073. SR R3,R3 ZERO DATA COUNT @V305731 01065000
  1074. B RDRTN GO RE-DISPLAY BLANKS @V305731 01066000
  1075. SPACE 1 01067000
  1076. PA3KEY EQU * HANDLE THE FUNCTION KEYS @V305731 01068000
  1077. LA R1,PF6NDX SET TABLE INDEX @V305731 01069000
  1078. PFKEY EQU * PROCESS ALL FUNCTION KEYS @V305731 01070000
  1079. S R1,=A(PFNDX) ADJUST TO KEY INDEX NUMBER @V305731 01071000
  1080. SLL R1,2 TIMES 4 FOR INDEX @V305731 01072000
  1081. L R4,NICUSER GET USER VMBLOK POINTER @V305731 01073000
  1082. L R2,VMPFUNC-VMBLOK(,R4) GET USER FUNCTION TABLE @V305731 01074000
  1083. LTR R2,R2 ANY DEFINED ? @V305731 01075000
  1084. BZ PFREJ NO, REJECT FUNCTION @V305731 01076000
  1085. LA R2,0(R1,R2) INDEX FOR FUNCTION KEY @V305731 01077000
  1086. L R4,4(R2) GET PF DATA ADDRESS @V305731 01078000
  1087. LTR R4,R4 ANY DATA DEFINED ? @V305731 01079000
  1088. BZ PFREJ NO, REJECT FUNCTION KEY @V305731 01080000
  1089. CLC 0(4,R4),=C'TAB ' IS IT THE TAB FUNCTION ? @V305731 01081000
  1090. BE PFTAB YES, DO IT @V305731 01082000
  1091. LH R1,2(R2) GET PF DATA SIZE @V305731 01083000
  1092. CLC 0(4,R4),=C'COPY' IS IT THE COPY FUNCTION ? @V305731 01084000
  1093. BNE PFSIZ NO, MOVE DATA TO BUFFER @V305731 01085000
  1094. CLI 4(R4),X'40' IS THIS A BLANK CHARACTER @V305731 01086000
  1095. BE PFLENG YES, CHECK LENGTH OF MESSAGE @VM03133 01087000
  1096. C R1,F4 IS THIS JUST COPY ? @V305731 01088000
  1097. BNE PFSIZ NO, RE-DISPLAY DATA @V305731 01089000
  1098. PFLENG EQU * CHECK LENGTH OF MESSAGE @VM03133 01090000
  1099. C R1,F8 IS PF DATA LENGTH GREATER THAN 8 @V305731 01091000
  1100. BH PFSIZ YES, GO RE-DISPLAY PF DATA @V305731 01092000
  1101. BAL R7,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V305731 01093000
  1102. LH R1,2(R2) GET PF DATA SIZE @V305731 01094000
  1103. C R1,F5 IS JUST COPY INDICATED ? @V305731 01095000
  1104. BH RESDATA NO, GET RESOURCE ID. FROM PF DATA@V305731 01096000
  1105. LR R4,R9 SAVE USER NICBLOK POINTER @V305731 01097000
  1106. L R9,RDEVNICL GET START OF NICBLOK LIST @V305731 01098000
  1107. LA R2,NICSIZE*8 GET LENGTH OF NICBLOK @V305731 01099000
  1108. LH R3,RDEVMAX GET THE NUMBER OF NICBLOKS @V305731 01100000
  1109. MH R3,=AL2(NICSIZE*8) GET THE ENDING @V305731 01101000
  1110. ALR R3,R9 NICBLOK ADDRESS @V305731 01102000
  1111. TESTPRT EQU * DETEMINE IF A PRINTER IS OFFLINE @V305731 01103000
  1112. TM NICTYPE,NICRSPL IS THIS A REMOTE PRINTER ? @V305731 01104000
  1113. BO RESOURCE YES, COPY FROM DISPLAY TO PRINTER@V305731 01105000
  1114. BXLE R9,R2,TESTPRT GET NEXT NICBLOK ADDRESS @V305731 01106000
  1115. BAL R7,REJREQ GO RESTORE USER NICBLOK POINTER @V305731 01107000
  1116. SPACE 1 01108000
  1117. RESDATA EQU * DETERMINE IF RESOURCE IS VALID @V305731 01109000
  1118. LA R1,5(R4) GET RESOURCE ID. FROM PF DATA @V305731 01110000
  1119. LA R0,3 GET LENGTH OF DATA @V305731 01111000
  1120. CALL DMKCVTHB CONVERT RESOURCE ID. TO BINARY @V305731 01112000
  1121. BNZ REJECT INVALID RESOURCE ID. @VM03094 01113000
  1122. N R1,F4095 CLEAR THE LINE CODE @V305731 01114000
  1123. LR R4,R9 SAVE USER NICBLOK POINTER @V305731 01115000
  1124. L R9,RDEVNICL GET THE START OF NICBLOK LIST @V305731 01116000
  1125. LA R2,NICSIZE*8 GET LENGTH OF NICBLOK @V305731 01117000
  1126. LH R3,RDEVMAX GET NUMBER OF NICBLOKS @V305731 01118000
  1127. MH R3,=AL2(NICSIZE*8) GET THE ENDING @V305731 01119000
  1128. ALR R3,R9 NICBLOK ADDRESS @V305731 01120000
  1129. TESTPRT1 EQU * GET NICBLOK FOR REMOTE PRINTER @V305731 01121000
  1130. CH R1,NICNAME IS THIS THE PRINTER NICBLOK @V305731 01122000
  1131. BE PRTTEST YES, SEE IF THIS IS A PRINTER @VM03133 01123000
  1132. BXLE R9,R2,TESTPRT1 GET NEXT NICBLOK ADDRESS @V305731 01124000
  1133. B REJREQ GO RESTORE USER NICBLOK POINTER @V305731 01125000
  1134. PRTTEST EQU * CHECK FOR REMOTE PRINTER @VM03133 01126000
  1135. TM NICTYPE,NICRSPL IS THIS A REMOTE PRINTER ? @V305731 01127000
  1136. BO RESOURCE YES, GO COPY SCREEN TO PRINTER @V305731 01128000
  1137. REJREQ EQU * @V305731 01129000
  1138. LR R9,R4 GET USER NICBLOK POINTER @V305731 01130000
  1139. REJECT EQU * CCW STRING FOR NOT ACCEPTED STATE@V305731 01131000
  1140. BAL R3,FRETRD RELEASE STORAGE FOR READ BUFFER @V305731 01132000
  1141. BAL R3,NOTACPT CCW STRING FOR NOT ACCEPTED STATE@V305731 01133000
  1142. OI NICSTAT,NICCPNA+NICNTRL SET NOT ACPTED & CONTROL@V305731 01134000
  1143. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01135000
  1144. SPACE 1 01136000
  1145. RESOURCE EQU * SET UP TO COPY SCREEN TO PRINTER @V305731 01137000
  1146. BAL R3,FRETRD RELEASE READ BUFFER @V305731 01138000
  1147. TM NICSTAT,NICDISA IS THIS PRINTER OFFLINE ? @V305731 01139000
  1148. BO REJREQ YES, GO REJECT REQUEST @V305731 01140000
  1149. TM NICFLAG,NICENAB IS THIS PRINTER ENABLE ? @V305731 01141000
  1150. BZ REJREQ NO, GO REJECT REQUEST @V305731 01142000
  1151. ST R9,BSCUCOPY SAVE PRINTER NICBLOK ADDRESS @V305731 01143000
  1152. LR R9,R4 GET USER NICBLOK POINTER @V305731 01144000
  1153. OI BSCFLAG,BSCOPIED SET INITIATE COPY FUNCTION FLAG@V305731 01145000
  1154. BAL R7,RVIRESP SEND RVI RESPONSE TO STATION @V305731 01146000
  1155. SPACE 1 01147000
  1156. PFSIZ EQU * MOVE DATA FROM TABLE INTO BUFFER @V305731 01148000
  1157. USING BUFFER,R3 ADDRESSABILITY FOR READ BUFFER @VA13123 01148500
  1158. XC BUFFER(BUFINLTH+6),BUFFER CLEAR BUFFER AREA @V305731 01149000
  1159. BCTR R1,R0 SUBTRACT ONE - EX INSTRUCTION @V305731 01150000
  1160. EX R1,MVCRT MOVE FUNCTION DATA TO BUFFER @V305731 01151000
  1161. LR R4,R3 MOVE BUFFER ADDRESS IN REGISTER 4@V305731 01152000
  1162. LA R1,1(R1) UPDATE DATA COUNT @V305731 01153000
  1163. LR R3,R1 SAVE DATA COUNT @V305731 01154000
  1164. TM 0(R2),X'80' IMMED EXECUTION ? @V305731 01155000
  1165. BO DATACNT YES, PROCESS DATA NOW @V305731 01156000
  1166. LR R2,R4 GET BUFFER DATA ADDRESS @V305731 01157000
  1167. L R7,=A(DMKTBLGR) GET TRANSLATE TABLE @V305731 01158000
  1168. L R1,NICUSER GET USER VMBLOK POINTER @V305731 01159000
  1169. IC R0,VMTLEND-VMBLOK(R1) GET LOGICAL LINE END @V305731 01160000
  1170. STC R0,21(,R7) SAVE LCR CHAR IN TRANSLATE DATA @V305731 01161000
  1171. BCTR R3,R0 SUBTRACT ONE - EX INSTRUCTION @V305731 01162000
  1172. EX R3,TROPUT TRANSLATE OUTPUT DATA @V305731 01163000
  1173. MVI 21(R7),X'15' STORE LCR CHAR IN TRANSLATE DATA @V305731 01164000
  1174. LA R1,1(R3,R4) POINT PAST LAST BYTE @V305731 01165000
  1175. MVI 0(R1),X'13' PUT CURSOR AT END @V305731 01166000
  1176. MVI 1(R1),ETX PUT ENDING BISYNC CHARACTER @V305731 01167000
  1177. LA R3,3(R3) COUNT WITH CURSOR & ETX @V305731 01168000
  1178. BAL R7,BLD77IDS DISPLAY IN INPUT AREA @V305731 01169000
  1179. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01170000
  1180. SPACE 1 01171000
  1181. PFREJ EQU * SEND REJECT MESSAGE @V305731 01172000
  1182. XC BUFFER(BUFINLTH+6),BUFFER CLEAR READ BUFFER @V305731 01173000
  1183. MVC BUFFER(RJL),PFRJM SET UP REJECT MESSAGE @V305731 01174000
  1184. SRL R1,3 PF NUMBER BINARY @V305731 01175000
  1185. LA R1,1(R1) ... @V305731 01176000
  1186. CALL DMKCVTBD CONVERT TO DECIMAL @V305731 01177000
  1187. STH R1,BUFFER+4 SET PF NUMBER IN MESSAGE @V305731 01178000
  1188. LR R4,R3 GET BUFFER ADDRESS @V305731 01179000
  1189. LA R3,RJL SIZE OF MESSAGE FOR WRITE @V305731 01180000
  1190. BAL R7,BLD77IDS DISPLAY IN INPUT AREA @V305731 01181000
  1191. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01182000
  1192. SPACE 1 01183000
  1193. PFTAB EQU * HANDLE THE TAB FUNCTION @V305731 01184000
  1194. LA R14,TAB01 TAB TABLE START @V305731 01185000
  1195. LA R0,136 TAB TABLE SIZE @V305731 01186000
  1196. CLRNXT EQU * CLEAR TAB INDICATOR @V305731 01187000
  1197. NI 0(R14),X'7F' TAB BIT OFF @V305731 01188000
  1198. LA R14,2(R14) NEXT ENTRY @V305731 01189000
  1199. BCT R0,CLRNXT LOOP FOR ALL ENTRIES @V305731 01190000
  1200. LA R4,3(R4) POSITION TO TAB DATA @V305731 01191000
  1201. LH R2,2(R2) GET TAB DATA COUNT @V305731 01192000
  1202. S R2,F3 ADJUST TO FIRST ENTRY @V305731 01193000
  1203. FNDSTRT EQU * FIND START OF DATA FIELD @V305731 01194000
  1204. CLI 0(R4),X'40' START OF FIELD ?? @V305731 01195000
  1205. BNE FNDEND YES, GO FIND END OF DATA @VM03133 01196000
  1206. LA R4,1(R4) BUMP TO NEXT POSITION @V305731 01197000
  1207. BCT R2,FNDSTRT KEEP LOOKING FOR FIELD START @V305731 01198000
  1208. B TABEND WE DIDNT FIND ONE @V305731 01199000
  1209. FNDEND EQU * SETUP COUNTER FOR SCAN @VM03133 01200000
  1210. LR R1,R4 REMEMBER START OF FIELD @V305731 01201000
  1211. SR R0,R0 CLEAR COUNTER @V305731 01202000
  1212. FNDTAB EQU * FIND END OF DATA FIELD @V305731 01203000
  1213. A R0,F1 COUNT ONE @V305731 01204000
  1214. LA R4,1(R4) BUMP TO NEXT POSITION @V305731 01205000
  1215. CLI 0(R4),X'40' IS THIS THE END OF THE FIELD ? @V305731 01206000
  1216. BE BYPTABD YES, GOOD @VM03133 01207000
  1217. BCT R2,FNDTAB KEEP LOOKING FOR THE END @V305731 01208000
  1218. BYPTABD EQU * CONVERT TO A BINARY NUMBER @VM03133 01209000
  1219. CALL DMKCVTDB CONVERT TO BINARY NUMBER @V305731 01210000
  1220. BNZ NXTAB ERROR, IGNORE IT @V305731 01211000
  1221. CH R1,=H'136' IS IT TOO BIG ? @V305731 01212000
  1222. BH NXTAB YES, IGNORE ALSO @V305731 01213000
  1223. SLL R1,1 TIMES TWO FOR INDEX @V305731 01214000
  1224. LA R14,TABTBL(R1) POINT AT TAB TABLE ENTRY @V305731 01215000
  1225. OI 0(R14),X'80' TURN ON TAB BIT @V305731 01216000
  1226. NXTAB EQU * FIND END OF DATA FIELD @V305731 01217000
  1227. LTR R2,R2 TEST COUNT REMAINING @V305731 01218000
  1228. BNP TABEND NONE, END OF TABS @V305731 01219000
  1229. BCT R2,FNDSTRT LESS ONE AND FIND NEXT TAB @V305731 01220000
  1230. SPACE 01221000
  1231. TABEND EQU * GET CURSOR BUFFER ADDRESS @V305731 01222000
  1232. LA R14,TAB01 TAB POSITION TABLE @V305731 01223000
  1233. LA R0,136 MAX COUNT FOR SCAN @V305731 01224000
  1234. SR R1,R1 CLEAR COUNTER @V305731 01225000
  1235. FNDCUR EQU * SET UP CURSOR ADDRESS @V305731 01226000
  1236. LH R15,0(R14) GET CURSOR POSN ADDRESS @V305731 01227000
  1237. N R15,=XL4'00007FFF' AND OUT TAB BIT @V305731 01228000
  1238. CLM R15,3,BUFFER+1 COMPARE TO CURSOR POSN @V305731 01229000
  1239. BE CURTAB FOUND IT @V305731 01230000
  1240. LA R1,1(R1) COUNT PLUS ONE @V305731 01231000
  1241. LA R14,2(R14) NEXT TABLE ENTRY @V305731 01232000
  1242. BCT R0,FNDCUR KEEP LOOKING TILL END @V305731 01233000
  1243. SR R1,R1 DIDNT FIND IT, FORCE TO BEGINNING@V305731 01234000
  1244. LA R14,TAB01 FIRST ENTRY IN TABLE @V305731 01235000
  1245. OI TAB01,X'80' TAB AT POSN 1 @V305731 01236000
  1246. CURTAB EQU * @V305731 01237000
  1247. MVC BUFFER(3),SYNCP HEADER FOR BISYNC PROTOCOL @V305731 01238000
  1248. MVI BUFFER+3,WCC6 SET DATA TO WRITE IN BUFFER @V305731 01239000
  1249. MVI BUFFER+4,SBA SET BUFFER ADDRESS @V305731 01240000
  1250. LH R15,0(R14) GET TAB POSITION @V305731 01241000
  1251. N R15,=XL4'00007FFF' AND OUT TAB BIT @V305731 01242000
  1252. STCM R15,3,BUFFER+5 SET TAB POSITION @V305731 01243000
  1253. MVI BUFFER+7,IC IC ORDER IF NOT NULL @V305731 01244000
  1254. LA R2,BUFFER+9(R1) POINT AT CURSOR POSITION @V305731 01245000
  1255. CLI 0(R2),X'00' IS IT NULL ?? @V305731 01246000
  1256. BNE MOVCUR NO, JUST MOVE THE CURSOR @V305731 01247000
  1257. TM NICTMCD,NICTABF IS THIS SECOND SCAN OF INPUT @V305731 01248000
  1258. BO MOVCUR YES, BYPASS INSERTING TAB CHAR @V305731 01249000
  1259. MVI BUFFER+7,X'6A' INSERT A LOGICAL TAB CHAR @V305731 01250000
  1260. MOVCUR EQU * GET TAB POSITION FROM TABLE @V305731 01251000
  1261. LA R14,2(R14) NEXT TABLE POSITION @V305731 01252000
  1262. TM 0(R14),X'80' IS IT A TAB POSITION ?? @V305731 01253000
  1263. BO SETCUR YES, SET CURSOR ADDRESS @V305731 01254000
  1264. BCT R0,MOVCUR KEEP LOOKING FOR NEXT TAB @V305731 01255000
  1265. OI NICTMCD,NICTABF SET SECOND SCAN FLAG @V305731 01256000
  1266. SETCUR EQU * @V305731 01257000
  1267. MVI BUFFER+8,SBA TAB POSITIONING @V305731 01258000
  1268. LH R15,0(R14) GET BUFFER ADDRESS @V305731 01259000
  1269. N R15,=XL4'00007FFF' AND OUT TAB BIT @V305731 01260000
  1270. STCM R15,3,BUFFER+9 SET TAB ADDRESS @V305731 01261000
  1271. MVI BUFFER+11,IC IC ORDER @V305731 01262000
  1272. MVI BUFFER+12,ETX SET ENDING CHARACTER FOR BISYNC @V305731 01263000
  1273. LR R4,R3 BUFFER ADDRESS @V305731 01264000
  1274. BAL R3,BLD77TAB CCWS TO WRITE NEW CURSOR POSITION@V305731 01265000
  1275. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01266000
  1276. SPACE 2 01267000
  1277. TP08 EQU * UNIT EXECPTION FROM TIMEOUT @V305731 01268000
  1278. ICM R1,7,IOBMISC2+1 GET ADDR. OF RESTART CCW STRING @V305731 01269000
  1279. BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 01270000
  1280. SPACE 2 01271000
  1281. TP09 EQU * ALL RESET COMMANDS @V305731 01272000
  1282. CLI BSCFLAG,X'00' ARE THERE ANY FLAGS ON ? @V305731 01273000
  1283. BE NOCTL NO, GET NEXT CONTASK @V305731 01274000
  1284. TM BSCFLAG,BSCREGEN IS REGENERATION FLAG ON ? @V305731 01275000
  1285. BO REGENER YES, GO TO ERROR HANDLER @V305731 01276000
  1286. TM BSCFLAG,BSCTSTRQ IS THIS A TEST REQUEST FLAG @V305731 01277000
  1287. BO NOCTLNT YES, GO GET START I/O TO LINE @V305731 01278000
  1288. TM BSCFLAG,BSCCOPY IS THIS A COPY FUNCTION ? @V305731 01279000
  1289. BO RGFCOPY YES, GO HANDLE COPY FUNCTION @V305731 01280000
  1290. ABEND 2 SHOULD NOT OCCUR @V305731 01281000
  1291. SPACE 1 01282000
  1292. NOCTL EQU * GET NEXT CONTASK @V305731 01283000
  1293. NI NICSTAT,X'FF'-NICNTRL CLEAR CONTROL INDICATOR @V305731 01284000
  1294. L R6,NICQPNT GET NEXT CONTASK @V305731 01285000
  1295. LTR R6,R6 IS THERE A CONTASK ? @V305731 01286000
  1296. BZ NOCTLNT NO, GET RESOURCE & START I/O @V305731 01287000
  1297. TM CONSTAT,CONACTV HAS THIS CONTASK BEEN PROCESSED @V305731 01288000
  1298. BZ NOCTLNT NO, GET ACTIVE RESOURCE @V305731 01289000
  1299. BAL R3,CONRET RETURN CONTASK @V305731 01290000
  1300. BAL R7,NOCTL GET NEXT CONTASK @V305731 01291000
  1301. SPACE 1 01292000
  1302. NOCTLNT EQU * GET ACTIVE RESOURCE & START I/O @V305731 01293000
  1303. MVI BSCFLAG,X'00' CLEAR FLAG FIELD @V305731 01294000
  1304. XC BSCCNT(2),BSCCNT CLEAR RETRY COUNT FIELD @V305731 01295000
  1305. NI RDEVSTAT,X'FF'-RDEVWAII CLEAR BUSY INDICATOR @V305731 01296000
  1306. TM RDEVFTR,FTRDIAL IS DIAL FEATURE INDICATED? @V346931 01296100
  1307. BO RGSTART YES, GO SCAN FOR ACTIVE USER @V346931 01296200
  1308. SLR R9,R9 CLEAR NICBLOK REGISTER @V305731 01297000
  1309. CL R9,BSCTMRQ POLL DELAY EXPIRED ? @V305731 01298000
  1310. BNE RGSTART NO, FIND ANOTHER USER (MAYBE) @V305731 01299000
  1311. BAL R7,FRETIOB RELEASE IOBLOK @V305731 01300000
  1312. TM BSCFLAG,BSCSCAN IS THIS SECOND SCAN OF NICBLOK @V305731 01301000
  1313. BZ POLLIOB NO, GO DO POLL OPERATION @V305731 01302000
  1314. NI BSCFLAG,X'FF'-BSCSCAN CLEAR SECOND SCAN FLAG @V305731 01303000
  1315. GODSPCH EQU * EXIT TO DISPATCHER @V305731 01304000
  1316. GOTO DMKDSPCH @V305731 01305000
  1317. POLLIOB EQU * @V305731 01306000
  1318. BAL R3,BLDIOB GO GET STORAGE FOR IOBLOK @V305731 01307000
  1319. BAL R3,GPOLLCW SET UP GENERAL POLLING CCWS @V305731 01308000
  1320. BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 01309000
  1321. SPACE 2 01310000
  1322. REGENER EQU * FORCE USER OFF @V305731 01311000
  1323. NI BSCFLAG,X'FF'-BSCREGEN CLEAR REGENERATION FLAG @V305731 01312000
  1324. XC BSCCNT(2),BSCCNT CLEAR RETRY COUNT FIELD @V305731 01313000
  1325. ICM R1,3,BSCSENSE GET REMOTE STATION SENSE BYTES @V305731 01314000
  1326. BNZ CKSNS YES, GO CHECK SENSE @V346931 01315000
  1327. TM RDEVFTR,FTRDIAL DIAL-UP FEATURE INDICATED? @V346931 01315100
  1328. BZ FATALER NO, GO HANDLE FATAL LINE ERROR @V346931 01315200
  1329. OI IOBSTAT,IOBFATAL SET DISABLE-REENABLE OF LINE @V346931 01315300
  1330. B FATALER GO HANDLE FATAL LINE ERROR @V346931 01315400
  1331. CKSNS EQU * ENTRY IF SENSE WAS SUCCESSFUL @V346931 01315500
  1332. TM BSCSENSE+1,INVREQ IS INTERVENTION REQUIRED ? @V305731 01316000
  1333. BO FORUSOF YES, BYPASS ERROR RECORDING @V305731 01317000
  1334. LA R0,2 GET STORAGE FOR ERROR MESSAGE @V305731 01318000
  1335. CALL DMKFREE GET STORAGE FOR MESSAGE @V305731 01319000
  1336. LR R3,R1 SAVE ADDRESS OF STORAGE @V305731 01320000
  1337. XC 0(16,R3),0(R3) CLEAR MESSAGE AREA @V305731 01321000
  1338. LH R1,NICNAME GET RESOURCE ID @V305731 01322000
  1339. CALL DMKCVTBH CONVERT TO HEX @V305731 01323000
  1340. STCM R1,7,0(R3) SAVE RESOURCE ADDRESS IN MESSAGE @V305731 01324000
  1341. SR R1,R1 CLEAR REGISTER 1 @V305731 01325000
  1342. ICM R1,3,BSCSENSE GET SENSE BYTES @V305731 01326000
  1343. CALL DMKCVTBH CONVERT TO HEX @V305731 01327000
  1344. ST R1,4(R3) SAVE SENSE BYTES IN MESSAGE @V305731 01328000
  1345. LH R1,IOBRADD GET LINE ADDRESS FROM IOBLOK @V305731 01329000
  1346. CALL DMKCVTBH CONVERT TO HEX @V305731 01330000
  1347. ST R1,9(R3) SAVE LINE ADDRESS IN MESSAGE @V305731 01331000
  1348. LR R1,R3 GET ADDRESS OF MESSAGE STORAGE @V305731 01332000
  1349. ICM R3,8,F2+3 SAVE SIZE OF MESSAGE STORAGE @V305731 01333000
  1350. LA R2,705(0) GET MESSAGE NUMBER @V305731 01334000
  1351. O R2,MSGPARM1 SET UP PARM FIELD FOR MSG WRITER @V305731 01335000
  1352. LA R0,14 GET LENGTH OF MESSAGE @V305731 01336000
  1353. ICM R0,14,MSGHEAD GET HEADER FOR MESSAGE @V305731 01337000
  1354. CALL DMKERMSG,AFFINITY GO TO MESSAGE WRITER @V407511 01338100
  1355. LA R0,CONDATA-CONCCW3+16 GET SIZE OF SHORT CONTASK @V305731 01339000
  1356. SRL R0,3(0) CONVERT TO DOUBLEWORDS @V305731 01340000
  1357. CALL DMKFREE GET STORAGE FOR CONTASK @V305731 01341000
  1358. STH R0,0(0,R1) SAVE SIZE OF SHORT CONTASK @V305731 01342000
  1359. LR R6,R1 SAVE ADDRESS OF CONTASK @V305731 01343000
  1360. DROP R6 DROP CONTASK BASE REGISTER @V305731 01344000
  1361. USING CONCCW3,R6 ADDRESSABILITY FOR SHORT CONTASK @V305731 01345000
  1362. XC CONDATA(10),CONDATA CLEAR DEPENDENT AREA FOR MDR@V305731 01346000
  1363. MVC CONDATA(2),IOBRADD GET LINE ADDRESS @V305731 01347000
  1364. MVC CONDATA+2(2),NICSELT GET CU AND DV ADDRESS @V305731 01348000
  1365. MVC CONDATA+4(2),BSCSENSE GET SENSE BYTES @V305731 01349000
  1366. MVC CONDATA+6(2),NICNAME SAVE RESOURCE ID. @V305731 01350000
  1367. LA R0,10 SIZE OF DEPENDENT DATA FOR MDR @V305731 01351000
  1368. STH R0,CONDCNT SAVE COUNT @V305731 01352000
  1369. DROP R6 DROP SHORT CONTASK BASE REGISTER @V305731 01353000
  1370. USING CONTASK,R6 SET UP ADDRESABILITY FOR CONTASK @V305731 01354000
  1371. LA R4,CALLIOER GET RETURN ADDRESS @V305731 01355000
  1372. BAL R7,STKCPEX GO STACK A CPEXBLOK @V305731 01356000
  1373. FORUSOF EQU * @V305731 01357000
  1374. BAL R3,FORCEOFF FORCE USER OFF SYSTEM @V305731 01358000
  1375. XC BSCSENSE(2),BSCSENSE CLEAR SENSE AND STATUS DATA@V305731 01359000
  1376. TM BSCFLAG,BSCCOPY IS COPY FUNCTION ACTIVE @V305731 01360000
  1377. BO COPYERR YES, SEND NOT ACPTED MSG. TO USER@V305731 01361000
  1378. MVI BSCFLAG,X'00' CLEAR BISYNC LINE FLAGS @V305731 01362000
  1379. NI RDEVSTAT,X'FF'-RDEVWAII CLEAR LINE BUSY FLAG @V305731 01363000
  1380. TM RDEVFTR,FTRDIAL DIAL-UP FEATURE INDICATED? @V346931 01363200
  1381. BO TP14 YES, GO DISCONNECT THE LINE @V346931 01363400
  1382. BAL R7,RGSTART GET ACTIVE RESOURCE & START I/O @V305731 01364000
  1383. SPACE 1 01365000
  1384. CALLIOER EQU * ERROR RECORDING OF SENSE DATA @V305731 01366000
  1385. LR R1,R6 GET MDR RECORD FOR RECORDER @V305731 01367000
  1386. CALL DMKIOERN RECORD DATA FROM REMOTE STATION @V305731 01368000
  1387. GOTO DMKDSPCH EXIT TO THE DISPATCHER @V305731 01369000
  1388. SPACE 1 01370000
  1389. RGFCOPY EQU * CLEANUP AFTER COPY FUNCTION @V305731 01371000
  1390. NI BSCFLAG,X'FF'-BSCCOPY CLEAR COPY FUNCTION FLAG @V305731 01372000
  1391. L R9,BSCUCOPY GET COPY REQUESTOR NICBLOK ADDR @V305731 01373000
  1392. BAL R4,STATUS DETERMINE STATUS OF SCREEN @V305731 01374000
  1393. OI NICFLAG,NICPROCN SET PROCESS NOW FLAG @V305731 01375000
  1394. NI RDEVSTAT,X'FF'-RDEVWAII CLEAR LINE BUSY FLAG @V305731 01376000
  1395. BAL R7,RGSTART GET ACTIVE RESOURCE @V305731 01377000
  1396. SPACE 1 01378000
  1397. FATALER EQU * FATAL LINE ERROR CONDITION @V305731 01379000
  1398. CLI IOBMISC2,IBBWRITE TRYING TO DO A WRITE? @VA08732 01379010
  1399. BE LDITCH YES, GO TRY RESELECTING TUBE @VA08732 01379020
  1400. TM RDEVFTR,FTRDIAL IS DIAL UP FEATURE INDICATED?@V346931 01379040
  1401. BNO FATALER2 NO, BYPASS SWITCHED DISCONNECT @V346931 01379080
  1402. TM BSCFLAG1,BSCFORCE IS USER FORCE IN PROGRESS? @V346931 01379120
  1403. BO FATALERA YES, SEE IF CMD REJECT ON DISABLE@VA13518 01379160
  1404. OI BSCFLAG1,BSCFORCE SET USER FORCE IN PROGRESS @V346931 01379200
  1405. BAL R7,CTLTASKB GET A CONTROL CONTASK @V346931 01379240
  1406. MVC CONCCW1(TWOCCW),BKCONCCW CCW TO DISCON STATION @V346931 01379280
  1407. OI CONCCW1+4,CC CHAIN TO DISABLE CCW @V346931 01379320
  1408. MVI IOBMISC2+3,NONE CLEAR POTENTIAL CMD REJECT FLAG @VA13518 01379340
  1409. BAL R7,SETCAWA GO DISABLE LINE @V346931 01379360
  1410. SPACE 01379400
  1411. FATALERA EQU * SEE IF CMD REJECT ON DISABLE SEQ.@VA13518 01379403
  1412. TM IOBSTAT,IOBFATAL IS IOBFATAL ON? @VA13518 01379406
  1413. BZ FATALER1 NO, MUST BE CC3-HANDLE AS BEFORE @VA13518 01379409
  1414. * IOBMISC2+3 FILLED IN BY DMKBSC 01379412
  1415. TM IOBMISC2+3,COMRJ CMD REJECT INDICATED? @VA13518 01379415
  1416. BZ FATALER1 NO, HANDLE AS BEFORE @VA13518 01379418
  1417. OI RDEVSTAT,RDEVNRDY SET NOT AVAILABLE FLAG @VA13518 01379421
  1418. MVI IOBMISC2+2,COMRJ REMEMBER CMD REJECT FOR LATER @VA13518 01379424
  1419. B FATAL2A CONTINUE FATAL ERROR PROCESSING @VA13518 01379427
  1420. SPACE 01379430
  1421. FATALER0 EQU * HANDLE NETWORK SHUTDOWN @V346931 01379440
  1422. NI IOBSTAT,X'FF'-IOBFATAL CLEAR FATAL ERROR @V346931 01379480
  1423. NI BSCFLAG1,X'FF'-BSCHALT CLEAR HALT I/O INDICATOR @V346931 01379520
  1424. FATALER1 EQU * ERROR/UNKNOWN CCW @V346931 01379560
  1425. TM RDEVFTR,FTRDIAL IS DIAL-UP FEATURE INDICATED? @V346931 01379600
  1426. BZ FATALER2 NO, GO VARY DEVICE OFFLINE @V346931 01379640
  1427. NI BSCFLAG1,X'FF'-BSCFORCE RESET FORCE USER FLAG @V346931 01379680
  1428. TM IOBSTAT,IOBFATAL UNRECOVERABLE ERROR? @V346931 01379720
  1429. BO *+8 YES, FOR SWITCHED REENABLE @V346931 01379760
  1430. FATALER2 EQU * FOR VARY OFF LINE FUNCTION @V346931 01379800
  1431. OI RDEVSTAT,RDEVNRDY SET NOT AVAILABLE FLAG @V305731 01380000
  1432. MVI IOBMISC2+2,NONE CLEAR FLAG BYTE FOR LATER @VA13518 01380100
  1433. TM IOBSTAT,IOBFATAL UNRECOVERABLE ERROR? @VA13518 01380200
  1434. BO FATAL2A YES, IOBMISC2+2 CORRECT @VA13518 01380300
  1435. MVI IOBMISC2+2,DISA REMEMBER TO SET RDEVDISA @VA13518 01380400
  1436. FATAL2A EQU * @VA13518 01380500
  1437. L R9,RDEVNICL GET POINTER TO RESOURCE NICBLOKS @V305731 01381000
  1438. LH R7,RDEVMAX GET THE MAXIMUN RESOURCE ID @V305731 01382000
  1439. MH R7,=AL2(NICSIZE*8) GET THE ENDING @V305731 01383000
  1440. ALR R7,R9 ADDRESS @V305731 01384000
  1441. LA R6,NICSIZE*8 GET SIZE OF NICBLOK @V305731 01385000
  1442. CALL DMKQCNCL CANCEL ALL STACK CONTASKS @V305731 01386000
  1443. RGFNICB EQU * FORCE ALL RESOURCES OFF THIS LINE@V305731 01387000
  1444. TM RDEVFTR,FTRDIAL IS DIAL-UP FEATURE INDICATED? @V346931 01387100
  1445. BZ FATALER3 NO, GO VARY DEVICE OFFLINE @V346931 01387200
  1446. CLI IOBMISC2+2,NONE UNRECOVERABLE ERROR? @VA13518 01387300
  1447. BE *+8 YES, FOR SWITCHED REENABLE @VA13518 01387400
  1448. FATALER3 EQU * FOR VARY OFF LINE FUNCTION @V346931 01387500
  1449. OI NICFLAG,NICDISB FORCE THE STATION TO BE DISABLE @V305731 01388000
  1450. BAL R3,FORCEOFF FORCE RESOURCES OFF LINE @V305731 01389000
  1451. BXLE R9,R6,RGFNICB GET NEXT RESOURCE @V305731 01390000
  1452. L R1,BSCTMRQ GET ADDRESS OF POLL TIMER REQUEST@V305731 01393000
  1453. LTR R1,R1 IS THERE A TRQBLOK ? @V305731 01394000
  1454. BZ TRQBYP NO, BYPASS TIMER RESET @V305731 01395000
  1455. CALL DMKSCHRT RESET TIMER REQUEST FOR POLL @V305731 01396000
  1456. LA R0,TRQBSIZE+CRTEXT GET SIZE OF TRQBLOK @VA13071 01397100
  1457. BAL R7,FRETSTG RELEASE STORAGE FOR TRQBLOK @V305731 01398000
  1458. ST R0,BSCTMRQ CLEAR ADDRESS OF TIMER REQUEST @V346931 01398500
  1459. TRQBYP EQU * @V305731 01399000
  1460. XC BSCFLAG(FLAGLNS),BSCFLAG CLEAR STATUS CONDITIONS@V346931 01399100
  1461. TM RDEVFTR,FTRDIAL DIAL-UP FEATURE INDICATED? @V346931 01399200
  1462. BZ FATALER4 NO, GO PROCESS ERROR @V346931 01399300
  1463. CLI IOBMISC2+2,NONE UNRECOVERABLE ERROR? @VA13518 01399400
  1464. BE TP14 YES, GO DISABLE AND REENABLE LINE@VA13518 01399500
  1465. FATALER4 EQU * NOT UNRECOVERABLE DIAL ERROR @V346931 01399600
  1466. NI RDEVSTAT,X'FF'-(RDEVWAII+RDEVRSVD) RESET BUSY @V346931 01399700
  1467. NI RDEVFLAG,X'FF'-RDEVENAB CLEAR ENABLE FLAG @V346931 01399800
  1468. LA R0,BSCSIZE GET SIZE OF BSC CONTROL BLOCK @V305731 01400000
  1469. L R1,RDEVBSC GET ADDRESS OF BSC CONTROL BLOCK @V305731 01401000
  1470. BAL R7,FRETSTG RELEASE BSC CONTROL BLOCK @V305731 01402000
  1471. ST R0,RDEVBSC CLEAR POINTER TO CONTROL BLOCK @V305731 01403000
  1472. TM IOBSTAT,IOBCC3 IS THIS A CONDITION CODE 3 @V305731 01404000
  1473. BO FATAL4A YES, SEND MESSAGE 455 @VA13518 01405000
  1474. TM IOBMISC2+2,COMRJ WAS THIS A CMD REJECT? @VA13518 01405200
  1475. BZ DISASTA NO, SKIP MESSAGE 455 @VA13518 01405400
  1476. FATAL4A EQU * @VA13518 01405600
  1477. TM RDEVSTAT,RDEVDISA IS LINE OFFLINE @V305731 01406000
  1478. BO RGIGNORE YES, IGNORE SENDING MESSAGE @V305731 01407000
  1479. LA R0,2 GET STORAGE FOR ERROR MESSAGE @VA13518 01407100
  1480. CALL DMKFREE GET STORAGE @VA13518 01407200
  1481. LR R3,R1 SAVE ADDRESS OF STORAGE @VA13518 01407300
  1482. XC 0(16,R3),0(R3) CLEAR STORAGE @VA13518 01407400
  1483. MVC 5(L'CC3,R3),CC3 INITIALIZE MESSAGE @VA13518 01407500
  1484. TM IOBSTAT,IOBCC3 WAS IT A CC3? @VA13518 01407600
  1485. BO FATAL4B YES, MESSAGE O.K. @VA13518 01407700
  1486. MVC 5(L'CMDRJ,R3),CMDRJ MUST BE CMD REJECT @VA13518 01407800
  1487. FATAL4B EQU * @VA13518 01407900
  1488. LA R2,455(0) GET MSG (NOT OPERATIONAL...) @V305731 01408000
  1489. BAL R7,ERRMSGS GO WRITE ERROR MESSAGE @V305731 01409000
  1490. DISASTA EQU * WRITE LINE DISABLED MESSAGE @V305731 01410000
  1491. OI RDEVSTAT,RDEVDISA SET OFFLINE FLAG FOR THIS LINE@V305731 01411000
  1492. NI BSCFLAG1,X'FF'-BSCSHUT TURN OFF SHUTDOWN FLAG @VA11623 01411050
  1493. LA R2,454(0) GET MSG (LINE ... DISABLED) @V305731 01412000
  1494. SLR R3,R3 CLEAR R3 FOR ERRMSGS ROUTINE @VA13518 01412500
  1495. BAL R7,ERRMSGS GO WRITE ERROR MESSAGE @V305731 01413000
  1496. BAL R7,RGIGNORE GO CLEANUP 3270 SUPPORT @V305731 01414000
  1497. SPACE 2 01415000
  1498. TP11 EQU * ADDR - READ RESPONSE TO TEXT @V305731 01416000
  1499. CLC BSCRESP(2),BSCRCVD IS THIS THE EXPECTED RESPONSE@V305731 01417000
  1500. BE CORRACK YES, GO TO RETURN TABLE @V305731 01418000
  1501. CLC BSCRESP(2),BSCSEND IS THIS THE SENDING RESPONSE @V305731 01419000
  1502. BE CORRACK YES, GO TO RETURN INDEX TABLE @V305731 01420000
  1503. CLI BSCRESP,EOT IS THIS AN EOT RESPONSE @V305731 01421000
  1504. BE ISEOT YES, GO HANDLE EOT RESPONSE @V305731 01422000
  1505. CLI BSCRESP,NAK IS THIS A NAK RESPONSE @V305731 01423000
  1506. BE ISNAK YES, GO HANDLE NAK RESPONSE @V305731 01424000
  1507. TM RDEVFTR,FTRDIAL IS DIAL UP FEATURE INDICATED? @V346931 01424100
  1508. BZ TPWACK NO, CHECK FOR WACK RESPONSE @V346931 01424200
  1509. CLC BSCRESP(DLEOTLN),RGFDLEOT DISCONNECT SIGNAL? @V346931 01424300
  1510. BE DLEEOT YES, GO FORCE USER OFF SYSTEM @V346931 01424400
  1511. TPWACK EQU * CHECK THE WACK RESP @V346931 01424500
  1512. CLC BSCRESP(2),RGFWACK IS THIS A WACK RESPONSE @V305731 01425000
  1513. BNE TPENQ NO, CHECK FOR ENQ RESPONSE @VM03133 01426000
  1514. TM NICTYPE,NICRSPL IS THIS A REMOTE PRINTER @V305731 01427000
  1515. BO CORRACK YES, GO TO PROPER SECTION @V305731 01428000
  1516. BAL R7,RESEOT RESET BISYNC TO CONTROL MODE @VA10513 01429200
  1517. TPENQ EQU * CHECK FOR ENQ RESPONSE @VM03133 01430000
  1518. CLI BSCRESP,ENQ IS THIS AN ENQ RESPONSE @V305731 01431000
  1519. BE ISNAK YES, GO HANDLE ENQ RESPONSE @V305731 01432000
  1520. TM BSCFLAG,BSCRVI POSSIBLY GARBLED EOT ON RVI? @VA13084 01433000
  1521. BO CORRACK NORMAL PROCESSING IF RVI @VA13084 01433300
  1522. * OTHERWISE, RETRANSMIT REPLY 01433600
  1523. SPACE 1 01434000
  1524. SENDENQ EQU * CCWS TO REGENERATE RESPONSE @V305731 01435000
  1525. BAL R3,RTYCOUNT CHECK RETRY FIELD FOR MAXIMUN @V305731 01436000
  1526. BAL R3,ENQSUB SET UP CCWS TO SEND ENQ RESPONSE @V305731 01437000
  1527. LA R1,BSCECCW1 GET POINTER TO CCW STRING @V305731 01438000
  1528. BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 01439000
  1529. SPACE 1 01440000
  1530. ISEOT EQU * HANDLE END OF TRANSMISSION RESP. @V305731 01441000
  1531. TM BSCFLAG,BSCRVI WAS EOT EXPECTED ? @V305731 01442000
  1532. BO CORRACK YES, GO TO RETURN TABLE SECTION @V305731 01443000
  1533. BAL R3,SPOLLCW SET UP CCWS FOR SPECIFIC POLL @V305731 01444000
  1534. BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 01445000
  1535. SPACE 1 01446000
  1536. ISNAK EQU * SET UP TO RE-SEND DATA TO STATION@V305731 01447000
  1537. BAL R3,RTYCOUNT CHECK COUNT FOR MAXIMUN VALUE @V305731 01448000
  1538. L R1,IOBCAW GET RESTART ADDRESS OF CCW STRING@V305731 01449000
  1539. BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 01450000
  1540. SPACE 1 01451000
  1541. CORRACK EQU * GO TO PROPER RETURN SECTION @V305731 01452000
  1542. L R6,NICQPNT GET POINTER TO CONTASK @V305731 01453000
  1543. LTR R6,R6 IS THERE A CONTASK ? @V305731 01454000
  1544. BZ RGFTSTRQ NO, RESET LINE TO CONTROL MODE @V305731 01455000
  1545. SR R1,R1 CLEAR INDEX REGISTER @V305731 01456000
  1546. IC R1,CONLABEL GET RETURN INDEX VALUE @V305731 01457000
  1547. B RETURN(R1) GO TO RETURN SECTION @V305731 01458000
  1548. RETURN EQU * RETURN TABLE @V305731 01459000
  1549. B NOCTL1 00 - GO GET NEXT CONTASK @V305731 01460000
  1550. B STRTRED 04 - GO PROCESS READ STATE @V305731 01461000
  1551. B LOGTST 08 - DETERMINE STATUS OF CONTASK @V305731 01462000
  1552. B GRFCFM 0C - CONSOLE FUNCTION PROCESSING @V305731 01463000
  1553. B SETMOR 10 - PROCESS MORE STATE @V305731 01464000
  1554. B SETREJ 14 - PROCESS NOT ACCEPTED MESSAGE@V305731 01465000
  1555. B CPNATMR 18 - DETERMINE STATE OF SCREEN @V305731 01466000
  1556. B CONLOGOF 1C - FORCE USER LOGOFF @V305731 01467000
  1557. B BLDVMBLK 20 - GO BUILD VMBLOK FOR RESOURCE@V305731 01468000
  1558. B FMTDONE 24 - PROCESS SCREEN FORMATS DONE @V305731 01469000
  1559. B CONRETBF 28 - REMOVE WRITE CONTASKS @V305731 01470000
  1560. B RDEXIT1 2C - RELEASE BUF & PROCESS STATUS@V305731 01471000
  1561. B RVIEND 30 - HANDLE RVI RESPONSE @V305731 01472000
  1562. SPACE 1 01473000
  1563. NOCTL1 EQU * @V305731 01474000
  1564. BAL R3,CONRET RETURN CONTASK @V305731 01475000
  1565. RGFTSTRQ EQU * RESET BISYNC LINE TO CONTROL MODE@V305731 01476000
  1566. BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01477000
  1567. SPACE 1 01478000
  1568. STRTRED EQU * PROCESS READ STATE @V305731 01479000
  1569. BAL R3,CONRET RETURN CONTASK @V305731 01480000
  1570. L R6,NICQPNT GET CURRENT CONTASK POINTER @V305731 01481000
  1571. BAL R3,READSUB BUILD CCWS FOR READ STATE @V305731 01482000
  1572. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01483000
  1573. SPACE 1 01484000
  1574. LOGTST EQU * DETERMINE STATUS OF CONTASK @V305731 01485000
  1575. BAL R3,CONRET RETURN CONTASK @V305731 01486000
  1576. L R6,NICQPNT GET CURRENT CONTASK POINTER @V305731 01487000
  1577. TM CONPARM,LOGDROP+LOGHOLD LOGOUT MESSAGE @V305731 01488000
  1578. BNZ CONCLR1 YES, CLEAR REMAINING @V305731 01489000
  1579. TM BSCFLAG1,BSCPA1 RETURNING FROM MORE/HOLD PA1 @VA04772 01490100
  1580. * INT. 01490200
  1581. BO RETPA1 YES - DON'T RELEASE CONTASK @VA04772 01490300
  1582. BAL R3,CONRET RETURN FINISHED CONTASK @VA04772 01490400
  1583. B RESEOT RESET BISYNC LINE TO CONTROL MODE@VA04772 01490500
  1584. SPACE 1 01490600
  1585. RETPA1 NI BSCFLAG1,X'FF'-BSCPA1 RESET BREAK INDICATOR @VA04772 01490700
  1586. CALL DMKCFMBK,AFFINITY PUT USER IN CONSOLE FUNC MODE @V407511 01490810
  1587. B RESEOT RESET BISYNC LINE TO CONTROL MODE@VA04772 01490900
  1588. SPACE 1 01491000
  1589. CONCLR1 EQU * CANCEL ALL CONTASKS FROM STACK @V305731 01492000
  1590. OI BSCFLAG,BSCLOG BYPASS MESSAGE TO OPERATOR @V305731 01493000
  1591. TM CONPARM,LOGDROP SAVE CC ON DROP REQUEST @V346931 01493100
  1592. BAL R3,FORCEOFF FORCE USER OFF - LOGOFF @V305731 01494000
  1593. NI BSCFLAG,X'FF'-BSCLOG CLEAR BYPASS MESSAGE FLAG @V305731 01495000
  1594. TM RDEVFTR,FTRDIAL DIAL UP FEATURE INDICATED? @V346931 01496100
  1595. BNO RESEOT NO, RESET BISYNC LINE @V346931 01496200
  1596. TM NICFLAG,NICENAB IS USER STILL ENABLED ? @V346931 01496300
  1597. BZ LINEDROP NO, TERMINATE SWITCHED CONNECTIO @V346931 01496400
  1598. SPM R3 RESTORE CC (CHECK FOR LOGDROP) @V346931 01496500
  1599. BO LINEDROP YES, GO TERMINATE SWITCHED LINE @V346931 01496600
  1600. BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MOD @V346931 01496700
  1601. SPACE 1 01497000
  1602. GRFCFM EQU * CONSOLE FUNCTION PROCESSING @V305731 01498000
  1603. BAL R3,CONRET RETURN CONTASK @V305731 01499000
  1604. L R4,BSCRPTR GET POINTER TO READ BUFFER @VA08730 01500100
  1605. L R3,BUFCNT-BUFFER(R4) GET DATA COUNT @V305731 01501000
  1606. LTR R3,R3 IS THERE ANY DATA ? @V305731 01502000
  1607. BNP GRFBK NO, BYPASS GOING TO DMKCFM @V305731 01503000
  1608. BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 01503100
  1609. USING CPEXBLOK,R7 ADDRESSABILITY FOR CPEXBLOK @V305731 01504000
  1610. LA R0,CPEXSIZE GET SIZE OF CPEXBLOK @V305731 01505000
  1611. CALL DMKFREE GET STORAGE FOR CPEXBLOK @V305731 01506000
  1612. LR R7,R1 GET ADDRESS OF CPEXBLOK @V305731 01507000
  1613. LR R1,R4 GET ADDRESS OF READ BUFFER @V305731 01508000
  1614. LR R0,R3 GET DATA COUNT @V305731 01509000
  1615. STM R0,R15,CPEXR0 SAVE ALL REGISTERS @V305731 01513000
  1616. LA R15,CALLCFM GET RETURN ADDRESS @V305731 01514000
  1617. ST R15,CPEXADD SAVE RETURN ADDRESS @V305731 01515000
  1618. LR R1,R7 GET CPEXBLOK POINTER @V305731 01516000
  1619. CALL DMKSTKMP STACK CPEXBLOK @VA07391 01517100
  1620. BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01518000
  1621. DROP R7 DROP CPEXBLOK BASE REGISTER @VM03094 01519000
  1622. SPACE 1 01520000
  1623. CALLCFM EQU * GO TO CONSOLE FUNCTION SUPPORT @V305731 01521000
  1624. CALL DMKCFMEN GO TO CONSOLE FUNCTION @V305731 01522000
  1625. GOTO DMKDSPCH GO TO DISPATCHER @V305731 01523000
  1626. SPACE 1 01524000
  1627. GRFBK EQU * @V305731 01525000
  1628. LA R0,BUFSIZE GET SIZE OF READ BUFFER @V305731 01526000
  1629. LR R1,R4 GET READ BUFFER ADDRESS @V305731 01527000
  1630. CALL DMKFRET RELEASE STORAGE FOR READ BUFFER @V305731 01528000
  1631. BAL R7,ROUTCFM PLACE IN CONSOLE FUNCTION MODE @V305731 01529000
  1632. BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01530000
  1633. SPACE 1 01531000
  1634. SETMOR EQU * PROCESS MORE STATE @V305731 01532000
  1635. USING TRQBLOK,R4 SET UP ADDRESSABILITY FOR TRQBLOK@V305731 01533000
  1636. BAL R3,CONRET RETURN CONTASK @V305731 01534000
  1637. BAL R7,RSTTMR RESET TIMER REQUEST @V305731 01535000
  1638. BAL R7,BLDTRQ GET STORAGE FOR TRQBLOK @V305731 01536000
  1639. LA R1,TMR60VAL GET 60 SECONDS VALUE @V305731 01537000
  1640. B SETINT FINISH SETTING UP TRQBLOK @V305731 01538000
  1641. SPACE 1 01539000
  1642. SETREJ EQU * PROCESS NOT ACCEPTED STATE @V305731 01540000
  1643. BAL R3,CONRET RETURN CONTASK @V305731 01541000
  1644. BAL R7,RSTTMR RESET TIMER REQUEST @V305731 01542000
  1645. BAL R7,BLDTRQ GET STORAGE FOR TRQBLOK @V305731 01543000
  1646. LA R1,TMR03VAL GET 3 SECONDS VALUE @V305731 01544000
  1647. SETINT EQU * @V305731 01545000
  1648. LR R3,R1 SAVE TIMER VALUE @V4M0193 01546100
  1649. L R1,NICUSER GET ADDR OF VMBLOK @V4M0193 01546600
  1650. BAL R7,RSWVMU1 SWITCH VMBLOK CHARGING @V4M0193 01547100
  1651. LR R1,R3 RESTORE TIMER VALUE @V4M0193 01547600
  1652. LA R15,TMRINT RETURN ADDRESS WHEN TIME EXPIRES @V305731 01549000
  1653. OI NICSTAT,NICTRQ INDICATE TIMER REQUEST PENDING @V305731 01550000
  1654. BAL R7,SCHTIME GO SCHEDULE TIMER REQUEST @V305731 01551000
  1655. CHARGE SWITCH,ASYSVM SWITCH VMBLOK CHARGING @V407511 01552100
  1656. BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01555000
  1657. SPACE 1 01556000
  1658. CPNATMR EQU * DETERMINE STATUS OF SCREEN @V305731 01557000
  1659. BAL R3,CONRET RETURN CONTASK @V305731 01558000
  1660. CPNATMR2 EQU * DETERMINE SCREEN STATUS @V305731 01559000
  1661. BAL R4,STATUS DETERMINE STATUS OF SCREEN @V305731 01560000
  1662. NI NICSTAT,X'FF'-NICCPNA CLEAR NOT ACCEPTED FLAG @V305731 01561000
  1663. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01562000
  1664. SPACE 1 01563000
  1665. CONLOGOF EQU * FORCE USER OFF @V305731 01564000
  1666. BAL R3,CONRET RETURN CONTASK @V305731 01565000
  1667. DLEEOT EQU * DISCONNECT USER FROM SYSTEM @V346931 01565100
  1668. TM RDEVFTR,FTRDIAL DIAL FEATURE INDICATED? @V346931 01565200
  1669. BZ GOFORCE NO, USE THIS NICBLOK @V346931 01565300
  1670. TM NICTYPE,NICLGRP IS THIS NICBLOK FOR A CTL UNIT? @V346931 01565400
  1671. BZ GOFORCE NO, USE THIS NICBLOK @V346931 01565500
  1672. LA R9,NICSIZE*8(R9) POINT TO STATION NICBLOK @V346931 01565600
  1673. GOFORCE EQU * GO FORCE USER OF SYSTEM @V346931 01565700
  1674. BAL R3,FORCEOFF FORCE USER OFF - LOGOFF @V305731 01566000
  1675. TM RDEVFTR,FTRDIAL DIAL FEATURE INDICATED? @V346931 01566100
  1676. BO LINEDROP YES, DISCONNECT STATION @V346931 01566200
  1677. BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01567000
  1678. SPACE 1 01568000
  1679. BLDVMBLK EQU * BUILD VMBLOK FOR USER @V305731 01569000
  1680. BAL R3,CONRET RETURN CONTASK @V305731 01570000
  1681. CALL DMKBLDVM,AFFINITY BUILD A VMBLOK @V407511 01571100
  1682. CALL DMKCFMBK,AFFINITY PLACE USER IN CONSOLE FUNCTION@V407511 01571600
  1683. BAL R3,GRFCRD CCWS TO CLEAR INPUT AREA @V305731 01573000
  1684. BAL R7,SETCAWA GO RESTART I/O TO LINE @V305731 01574000
  1685. SPACE 1 01575000
  1686. FMTDONE EQU * SCREEN HAS BEEN FORMATTED @V305731 01576000
  1687. BAL R3,CONRET RETURN CONTASK @V305731 01577000
  1688. OI NICFLAG,NICFMT SET FORMAT COMPLETED INDICATOR @V305731 01578000
  1689. TM NICFLAG,NICDISB DID OPERATOR ISSUE DISABLE CMD @V305731 01579000
  1690. BZ BYPCLR NO, CONTINUE @VM03133 01580000
  1691. BAL R7,CLRTLOG CLEAR SCREEN & LOGOFF USER @V305731 01581000
  1692. BYPCLR EQU * RESET BISYNC LINE @VM03133 01582000
  1693. BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01583000
  1694. SPACE 1 01584000
  1695. RDEXIT1 EQU * RELEASE BUFFER & PROCESS STATUS @V305731 01585000
  1696. BAL R3,FRETRD RELEASE READ BUFFER AREA @V305731 01586000
  1697. B CPNATMR GO CHECK FOR SCREEN STATE @V305731 01587000
  1698. SPACE 1 01588000
  1699. RVIEND EQU * HANDLE RESPONSE FROM STATION @V305731 01589000
  1700. BAL R3,CONRET RETURN CONTASK @V305731 01590000
  1701. NI BSCFLAG,X'FF'-BSCRVI CLEAR EXPECTED FLAG @V305731 01591000
  1702. TM BSCFLAG,BSCOPIED IS THIS A COPY REQUEST @V305731 01592000
  1703. BZ TP09 NO, GO ANALYSE FLAG FIELD @V305731 01593000
  1704. COPYSECT EQU * SET UP TO DO COPY FUNCTION @V305731 01594000
  1705. XI BSCFLAG,BSCOPIED+BSCCOPY CLEAR INITIATE-SET COPY@V305731 01595000
  1706. LR R3,R9 SAVE USER NICBLOK POINTER @V305731 01596000
  1707. L R9,BSCUCOPY GET ADDRESS OF PRINTER NICBLOK @V305731 01597000
  1708. ST R3,BSCUCOPY SAVE COPY REQUESTOR NICBLOK ADDR @V305731 01598000
  1709. BAL R3,BLDCOPY GO SET UP CCW STRING FOR COPY @V305731 01599000
  1710. LA R1,CONCCW1 GET START OF CCW STRING @V305731 01600000
  1711. ST R1,IOBCAW SAVE POINTER TO CCW STRING @V305731 01601000
  1712. BAL R3,SELECTCW SET UP CCW TO SELECT PRINTER @V305731 01602000
  1713. BAL R7,RESTART GO RESTART I/O TO BISYNC LINE @V305731 01603000
  1714. SPACE 1 01604000
  1715. CONRETBF EQU * REMOVE WRITE CONTASKS FROM CHAIN @V305731 01605000
  1716. NI NICTMCD,X'FF'-(NICTABF+NICSIO) CLEAR FLAGS @VM03094 01606000
  1717. L R6,BSCSPTR GET PTR TO CCW STRING FOR WRITE @V305731 01607000
  1718. SH R6,=AL2(CONCCW1-CONTASK) GET PTR TO TASK CHAIN @V305731 01608000
  1719. L R0,IOBMISC GET PTR TO LAST TASK IN CHAIN @V305731 01609000
  1720. ST R0,BSCSPTR SAVE POINTER TO CONTASK CHAIN @V305731 01610000
  1721. SR R0,R0 CLEAR REGISTER 0 @V305731 01611000
  1722. ST R0,IOBMISC CLEAR POINTER FIELD @V305731 01612000
  1723. LA R7,IOBMISC-(CONPNT-CONTASK) PTR TO CHAIN ANCHOR @V305731 01613000
  1724. RGFRETBF EQU * PROCESS CONTASKS @V305731 01614000
  1725. SR R2,R2 SET RETURN CODE TO ZERO @V305731 01615000
  1726. BAL R3,SETRETN SET RETURN CODE FOR USER @V305731 01616000
  1727. L R1,CONPNT GET NEXT CONTASK @V305731 01617000
  1728. ST R1,NICQPNT MAKE CONTASK CURRENT @V305731 01618000
  1729. ST R0,CONPNT CLEAR CONTASK NEXT FIELD @V305731 01619000
  1730. ST R6,CONPNT-CONTASK(,R7) SAVE PTR TO TASK IN CHAIN@V305731 01620000
  1731. LR R7,R6 GET POINTER TO NEXT CONTASK @V305731 01621000
  1732. TM CONPARM,LOGDROP+LOGHOLD IS LOGOUT MSG INDICATED @V305731 01622000
  1733. BZ CHKLAST NO, CHECK FOR LAST CONTASK @V346931 01623100
  1734. TM CONPARM,LOGDROP TERMINATE SWITCHED CONN. ? @V346931 01623200
  1735. BAL R7,CONCLR SAVE CC, GO LOG USER OFF @V346931 01623300
  1736. CHKLAST EQU * CHECK FOR LAST CONTASK @V346931 01623400
  1737. CL R6,BSCSPTR IS THIS THE LAST CONTASK @V305731 01624000
  1738. BE RETCONK YES, GO RETURN CONTASKS @VM03133 01625000
  1739. L R6,NICQPNT GET NEXT CONTASK POINTER @V305731 01626000
  1740. B RGFRETBF GO SET RETURN CODE FOR USER @V305731 01627000
  1741. RETCONK EQU * RETURN CONTASKS TO SYSTEM @VM03133 01628000
  1742. L R6,IOBMISC GET START OF CONTASK CHAIN @V305731 01629000
  1743. CALL DMKQCNET RETURN CONTASK @V305731 01630000
  1744. BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01631000
  1745. **** NOTE: RESEOT DOES NOT RETURN 01631100
  1746. SPACE 1 01632000
  1747. CONCLR EQU * PROCESS LOGOFF FUNCTION @V305731 01633000
  1748. L R6,IOBMISC GET POINTER TO CONTASK CHAIN @V305731 01634000
  1749. CALL DMKQCNET RETURN CONTASKS @V305731 01635000
  1750. OI BSCFLAG,BSCLOG BYPASS SENDING FORCE MESSAGE @V305731 01636000
  1751. BAL R3,FORCEOFF LOG USER OFF SYSTEM @V305731 01637000
  1752. NI BSCFLAG,X'FF'-BSCLOG CLEAR FORCE FLAG @V305731 01638000
  1753. TM RDEVFTR,FTRDIAL DIAL FEATURE INDICATED? @V346931 01638100
  1754. BNO RESEOT NO, GO RESET THE LINE @V346931 01638200
  1755. TM NICFLAG,NICENAB IS LINE STILL ENABLED? @V346931 01638300
  1756. BNO LINEDROP NO, GO DISCONNECT THE STATION @V346931 01638400
  1757. SPM R7 RESTORE CC (LOGDROP ?) @V346931 01638500
  1758. BO LINEDROP GO TERMINATE SWITCHED CONN. @V346931 01638600
  1759. BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01639000
  1760. SPACE 2 01640000
  1761. TP12 EQU * READ REMAINING DATA FROM STATION @VM03043 01653000
  1762. L R6,NICQPNT GET POINTER TO CURRENT CONTASK @VM03043 01654000
  1763. CLI BSCRESP,NAK IS THIS A NAK RESPONSE? @VA05184 01654010
  1764. BNE ACKRESP NO, CONTINUE @VA05184 01654020
  1765. LH R1,BSCCNT CHECK RETRY HERE, THIS IS SPECIAL@VA05184 01654030
  1766. A R1,F1 UPDATE RETRY COUNT @VA05184 01654040
  1767. STH R1,BSCCNT SAVE THE COUNT @VA05184 01654050
  1768. CLC BSCCNT,F6+2 HAS COUNT REACHED MAX? @VA05184 01654060
  1769. BH REGENERR YES,SET PERMANENT STATION ERROR @VA05184 01654070
  1770. NI BSCFLAG,X'FF'-BSCENQ CLEAR ENQ IN TEXT FLAG @VA05184 01654080
  1771. B SENDNAK1 NO, RETRY THE READ @VA05184 01654090
  1772. ACKRESP XI BSCSEND+1,X'11' CHANGE TO ALTERED ACK @VA05184 01655000
  1773. XI BSCRCVD+1,X'11' CHANGE TO ALTERED ACK @VM03116 01656000
  1774. CLI BSCREAD,STX IS THIS THE START OF TEXT @VM03043 01657000
  1775. BNE SENDNAK NO, SEND NAK TO STATION @VM03043 01658000
  1776. LA R2,BSCSIZE1 GET LENGTH OF BUFFER AREA @VM03043 01659000
  1777. SH R2,IOBCSW+6 GET NUMBER OF BYTES IN BUFFER @VM03043 01660000
  1778. L R7,F2 GET COUNTER IN REG 7 @VA05897 01661100
  1779. BILLBCTR BCTR R2,0 EXCLUDE ENDING CHARACTER(S) @VA05897 01661200
  1780. LA R3,BSCREAD(R2) GET ENDING ADDRESS OF DATA @VM03043 01662000
  1781. CLI 0(R3),ETX IS ENDING CHARACTER INDICATED @VM03043 01663000
  1782. BE BLKDATA YES, HANDLE BLOCK RECORD @VM03043 01664000
  1783. CLI 0(R3),ETB IS ENDING CHARACTER INDICATED @VM03043 01665000
  1784. BE BILLGO YES, SET ETB INDICATOR @VA05897 01666400
  1785. BCT R7,BILLBCTR DECREMENT COUNT @VA05897 01666800
  1786. B SENDNAK NO ETB,ETX FOUND @VA05897 01667200
  1787. BILLGO OI BSCFLAG1,BSCETB SET ETB INDICATOR AND CONTINUE @VA06303 01667600
  1788. BLKDATA EQU * HANDLE BLOCK RECORD @VM03043 01668000
  1789. BCTR R2,R0 SUBSTRACT LENGTH OF HEADER CHARS.@VM03043 01669000
  1790. LA R3,BSCREAD+1 GET STARTING ADDRESS OF DATA @VM03043 01670000
  1791. TM BSCFLAG1,BSCIGN IS BUFFER IGNORE SWITCH ON @VM03043 01671000
  1792. BO CHECKEY YES, IGNORE DATA IN BUFFER @VM03043 01672000
  1793. BAL R7,SECOND GO HANDLE DATA IN BUFFER @VM03043 01673000
  1794. SPACE 2 01673020
  1795. TP13 EQU * STATUS BIDING ON A SWITCH LINE @V346931 01673040
  1796. CLI BSCRESP,ENQ ENQ RESPONSE ? @V346931 01673060
  1797. BE CHKENQ YES, GO RESPOND TO ENQ @V346931 01673080
  1798. CLC BSCRESP(DLEOTLN),RGFDLEOT IS THIS DISCON SIGNAL?@V346931 01673100
  1799. BE DLEEOT YES, GO FORCE USER OFF SYSTEM @V346931 01673120
  1800. NI RDEVSTAT,X'FF'-RDEVWAII RESET WAIT INDICATOR @V346931 01673140
  1801. BAL R7,RGSTART GO GET ACTIVE USER @V346931 01673160
  1802. SPACE 1 01673180
  1803. CHKENQ EQU * RESPOND TO ENQ FROM STATION @V346931 01673200
  1804. MVC BSCPCCW1(TWOCCW),SW3275RD WRITE ACK0 / READ @V346931 01673220
  1805. LA R1,BSCREAD ADDR OF RESPONSE @V346931 01673240
  1806. STCM R1,B'0111',BSCPCCW2+1 INTO CCW @V346931 01673260
  1807. BAL R7,RESTART RESTART I/O OPERATION TO LINE @V346931 01673280
  1808. SPACE 2 @V346931 01673300
  1809. TP14 EQU * DROP/DISCONNECT SWITCH LINE @V346931 01673320
  1810. BAL R7,FRETIOB RETURN IOBLOK @V346931 01673340
  1811. L R9,RDEVNICL POINT TO RESOURCE LIST @V346931 01673360
  1812. LA R9,NICSIZE*8(R9) POINT TO STATION NICBLOK @V346931 01673380
  1813. NI RDEVSTAT,X'FF'-RDEVWAII RESET BUSY @V346931 01673400
  1814. LA R0,255 PARM TO ENABLE/DISABLE LINE @V346931 01673420
  1815. LA R7,REINIT RETURN ADDRESS FROM ENABLE @V346931 01673440
  1816. TM NICFLAG,NICENAB DEVICE TO BE RE-ENABLED ? @V346931 01673460
  1817. BO REENABLE YES, ENABLE LINE @V346931 01673480
  1818. LA R7,GODSPCH RETURN ADDRESS FROM DISABLE @V346931 01673500
  1819. REENABLE EQU * ENABLE THE SWITCH LINE @V346931 01673520
  1820. CALL DMKRGBEN GO ENABLE THE SWITCHED LINE @V346931 01673540
  1821. BNZ GODSPCH EXIT TO THE DISPATCHER @V346931 01673560
  1822. BR R7 RETURN @V346931 01673580
  1823. SPACE 1 01673600
  1824. REINIT EQU * INITIALIZE THE DISPLAY (LOGO) @V346931 01673620
  1825. SR R0,R0 PARM TO INITIALIZE SCREEN @V346931 01673640
  1826. CALL DMKRGBEN GO ENABLE THE SWITCHED LINE @V346931 01673660
  1827. BAL R7,GODSPCH EXIT TO THE DISPATCHER @V346931 01673680
  1828. SPACE 2 01673700
  1829. SPACE 4 01674000
  1830. ************************************************************* 01675000
  1831. * ANALYZE THE STATUS MESSAGE FROM THE REMOTE STATION 01676000
  1832. ************************************************************* 01677000
  1833. SPACE 2 01678000
  1834. SENSTAT EQU * PROCESS THE STATUS MESSAGE @V305731 01679000
  1835. LA R4,LENADDR(,R4) ADR OF SS BYTES FOR SW 3275 @V346931 01680100
  1836. TM RDEVFTR,FTRDIAL DIAL UP FEATURE INDICATED? @V346931 01680200
  1837. BO STATSW YES, BYPASS SENSE HEADER @V346931 01680300
  1838. LA R4,2(,R4) ADDR OF SS BYTES (NON SW) @V346931 01680400
  1839. STATSW EQU * WE NOW POINT TO SENSE BYTES @V346931 01680500
  1840. MVC BSCSENSE,0(R4) MOVE SENSE BYTES INTO AREA @V346931 01680600
  1841. MVC BSCRSTRT(4),IOBCAW GET RESTART STRING ADDRESS @V305731 01681000
  1842. L R3,RDEVNICL GET POINTER TO NICBLOK LIST @V305731 01682000
  1843. TM NICTYPE-NICBLOK(R3),NIC3275 3275 DISPLAY @V305731 01683000
  1844. BZ TEST3271 NO, GO CHECK FOR PRINTER @V305731 01684000
  1845. TM BSCFLAG,BSCCOPY IS THIS A COPY FUNCTION @V305731 01685000
  1846. BO PRT3275 YES, GET REMOTE PRINTER ADDRESS @V305731 01686000
  1847. TM BSCSENSE,STATDE IS THIS DEVICE END @V305731 01687000
  1848. BZ TEST3271 NO, CHECK FOR REMOTE PRINTER @V305731 01688000
  1849. TM BSCSENSE+1,STATDC+INVREQ+STATEC PRINTER STATUS @V305731 01689000
  1850. BZ TEST3271 NO, HANDLE DISPLAY ERROR @V305731 01690000
  1851. PRT3275 EQU * GET ADDRESS OF REMOTE PRINTER @V305731 01691000
  1852. CLC RDEVMAX(2),F1+2 IS RDEVMAX=1 - NO PRINTER @VA05170 01691300
  1853. BE TEST3271 THEREFORE DO NOT BUMP REG9 @VA05170 01691700
  1854. AH R9,=AL2(NICSIZE*8) GET POINTER TO PRINTER BLOCK @V305731 01692000
  1855. TEST3271 EQU * SET UP TO SEND ACK RESPONSE @V305731 01693000
  1856. CLC BSCSENSE(2),=X'C240' STANDALONE DEVICE END @V305731 01694000
  1857. BE DEVSTAT YES, GO PROCESS DEVICE END STATUS@V305731 01695000
  1858. RVICCW MVC BSCSCCW1(8),RSRVICCW SETUP RVI CCW @VA08734 01696500
  1859. MVC BSCSCCW2(8),UNEPTCCW SET UP READ RESPONSE CCW @V305731 01697000
  1860. MVI BSCSCCW2+5,X'04' SET TP-OP CODE @V305731 01698000
  1861. LA R1,BSCRESP GET ADDRESS OF RESPONSE BUFFER @V305731 01699000
  1862. STCM R1,7,BSCSCCW2+1 SAVE ADDRESS IN CCW @V305731 01700000
  1863. LA R1,BSCSCCW1 GET START OF CCW STRING @V305731 01701000
  1864. MVC IOBMISC2+1(1),IOBMISC2 SAVE CURRENT FTN FLAGS @VA08730 01701500
  1865. BAL R7,SETCAW GO RESTART I/O TO LINE @V305731 01702000
  1866. SPACE 2 01703000
  1867. TP04 EQU * HANDLE STATION ERROR @V305731 01704000
  1868. TM BSCFLAG,BSCTSTRQ IGNORE FLAG ON ? @VA08734 01704150
  1869. BO NOCTL YES, GO GET NEXT CONTASK @VA08734 01704300
  1870. MVC IOBMISC2(1),IOBMISC2+1 RESTORE FTN FLAGS @VA08730 01704500
  1871. TM BSCSENSE+1,INVREQ IS IT INTERVENTION REQUIRED ? @VA08077 01705100
  1872. BNZ REGENERR YES, PERMANENT STATION ERROR @V305731 01706000
  1873. TM IOBMISC2,IBBSELA+IBBWRITE IS THIS A WRITE FTN. @V305731 01707000
  1874. BZ READERR NO, HANDLE READ REQUEST @V305731 01708000
  1875. BAL R3,RTYCOUNT CHECK COUNT FOR MAXIMUN VALUE @V305731 01709000
  1876. XC BSCSENSE(2),BSCSENSE CLEAR SENSE AND STATUS DATA@V305731 01710000
  1877. L R1,BSCSPTR GET ADDRESS OF WRITE CCW STRING @V305731 01711000
  1878. ST R1,IOBCAW SAVE ADDRESS OF RESTART STRING @V305731 01712000
  1879. BAL R3,SELECTCW SET UP CCWS FOR SELECTION @V305731 01713000
  1880. BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 01714000
  1881. SPACE 1 01715000
  1882. READERR EQU * HANDLE READ REQUEST @V305731 01716000
  1883. TM RDEVFTR,FTRDIAL DIAL-UP FEATURE INDICATED? @V346931 01716200
  1884. BO GETDUSNS YES, GO PUT READ UP ON LINE @V346931 01716400
  1885. L R1,BSCRSTRT GET RESTART ADDRESS @V305731 01717000
  1886. BAL R7,SETCAW RESTART I/O OPERATION TO LINE @V305731 01718000
  1887. SPACE 1 01719000
  1888. REGENERR EQU * SET UP CCW TO RESET LINE @V305731 01720000
  1889. NI BSCFLAG,X'FF'-BSCOPIED CLEAR INITIATE COPY FLAG @V305731 01721000
  1890. NI BSCFLAG1,X'FF'-(BSCIGN+BSCETB) CLEAR FLAGS @VM03043 01722000
  1891. OI BSCFLAG,BSCREGEN SET PERMANENT STATION ERROR @V305731 01723000
  1892. BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01724000
  1893. SPACE 2 01725000
  1894. DEVSTAT EQU * HANDLE DEVICE END STATUS @V305731 01726000
  1895. XC BSCSENSE(2),BSCSENSE CLEAR SENSE AND STATUS DATA@V305731 01727000
  1896. TM NICTYPE,NICRSPL REMOTE PRINTER ??? @VA05871 01728000
  1897. BO STATRST YES, GO SEND RVI TO RESET LINE @VA08734 01729200
  1898. L R1,ASYSVM GET SYSTEM VMBLOK POINTER @V305731 01730000
  1899. CL R1,NICUSER IS THIS USER LOGON @V305731 01731000
  1900. BNE CNCLDE YES, GO CLEAR SCREEN @V305731 01732000
  1901. NI NICFLAG,X'FF'-NICFMT CLEAR FORMAT COMPLETED FLAG@V305731 01733000
  1902. LOGUSER EQU * LOGON FUNCTION SECTION @V305731 01734000
  1903. NI BSCFLAG1,X'FF'-BSCINBID RESET INITIAL BID FLAG @V346931 01734500
  1904. TM NICTYPE,NICRSPL IS THIS A REMOTE PRINTER @V305731 01735000
  1905. BO STATRST YES, IGNORE REQUEST @VA08734 01736100
  1906. L R15,PREFIXA GET PREFIX VALUE TO ADDRESS PSA @V4M0132 01737100
  1907. * AT ABSOLUTE ZERO @V4M0132 01737200
  1908. CLI XTNDLOCK-PSA(R15),X'FF' IS SYSTEM EXTENDING? @V4M0132 01737300
  1909. BE STATRST YES, IGNORE INPUT DATA FROM USER @VA08734 01738100
  1910. TM NICFLAG,NICENAB IS THIS RESOURCE ENABLE @V305731 01739000
  1911. BZ STATRST NO, IGNORE REQUEST @VA08734 01740100
  1912. TM NICFLAG,NICDISB DID OPERATOR DISABLE RESOURCE @V305731 01741000
  1913. BZ TSTFMT NO, CHECK DISPLAY FOR FORMATTING @V305731 01742000
  1914. BAL R7,CLRTLOG CLEAR SCREEN & LOGOFF USER @V305731 01743000
  1915. SPACE 1 01744000
  1916. TSTFMT EQU * @V305731 01745000
  1917. TM NICFLAG,NICFMT IS THE SCREEN FORMATTED @V305731 01746000
  1918. BZ FMTRGF NO, GO FORMAT SCREEN @V305731 01747000
  1919. BAL R3,GRFCLRT SET UP CCWS TO CLEAR SCREEN @V305731 01748000
  1920. MVI CONLABEL,RTNBLDVM SET RETURN TO BUILD VMBLOK @V305731 01749000
  1921. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01750000
  1922. SPACE 1 01751000
  1923. FMTRGF EQU * @V305731 01752000
  1924. L R7,=A(DMKRGBIC) PUT BASE ADDR OF DMKRGB IN REG. @V305731 01753000
  1925. L R15,=A(DMKRGBMT) GO TO FORMAT SECTION @V305731 01754000
  1926. BR R15 GO FORMAT DISPLAY SCREEN @V305731 01755000
  1927. SPACE 1 01756000
  1928. TESTREQ EQU * IGNORE DATA FROM REMOTE STATION @V305731 01757000
  1929. NI BSCFLAG,X'FF'-BSCENQ CLEAR ENQ FLAG @V305731 01758000
  1930. OI BSCFLAG,BSCTSTRQ SET IGNORE DATA FLAG @V305731 01759000
  1931. BAL R7,RESEOT RESET BISYNC LINE TO CONTROL MODE@V305731 01760000
  1932. SPACE 1 01760100
  1933. STATRST EQU * IGNORE DATA FROM REMOTE STATION @VA08734 01760200
  1934. OI BSCFLAG,BSCTSTRQ SET IGNORE DATA FLAG @VA08734 01760300
  1935. B RVICCW GO SEND RVI TO RESET LINE @VA08734 01760400
  1936. SPACE 1 01761000
  1937. SENDNAK EQU * SEND NAK TO REMOTE STATION @V305731 01762000
  1938. NI BSCFLAG,X'FF'-BSCENQ CLEAR ENQ IN TEXT FLAG @V305731 01763000
  1939. BAL R3,RTYCOUNT RETRY COUNT REACH MAX. VALUE @V305731 01764000
  1940. SENDNAK1 BAL R3,NAKSUB SET UP CCWS TO SEND NAK RESPONSE @VA05184 01765000
  1941. LA R1,BSCECCW1 GET START OF CCW STRING @V305731 01766000
  1942. BAL R7,SETCAW GO RESTART I/O TO LINE @V305731 01767000
  1943. EJECT 01768000
  1944. ******************************************************************* 01769000
  1945. * SUBROUTINES FOR 3270 REMOTE SUPPORT 01770000
  1946. * 01771000
  1947. * THESE SUBROUTINES ARE DUPLICATES OF SOME IN DMKRGB. 01772000
  1948. * ANY CHANGES MADE TO THESE SUBROUTINES SHOULD ALSO BE MADE 01773000
  1949. * IN DMKRGB. 01774000
  1950. ******************************************************************* 01775000
  1951. SPACE 2 01776000
  1952. SETCAWA EQU * GET START OF CCW STRING @V305731 01777000
  1953. LA R1,CONCCW1 GET BEGINNING ADDR OF CCW STRING @V305731 01778000
  1954. SETCAW EQU * I/O RESTART SECTION @V305731 01779000
  1955. ST R1,IOBCAW SET UP CAW @V305731 01780000
  1956. XC BSCRESP(L'BSCRESP),BSCRESP CLEAR RESPONSE BUFFER@V305731 01781000
  1957. RESTART EQU * RESTART I/O OPERATION TO LINE @V305731 01782000
  1958. TM IOBMISC2,IBBSPOLL DOING A SPECIFIC POLL ? @VA08730 01782100
  1959. BO RESTARTA YES,DON'T TOUCH FLAGS @VA08730 01782200
  1960. NI IOBMISC2,X'FF'-IBBWRITE TURN OFF WRITE FLAG @VA08730 01782300
  1961. L R1,IOBCAW RE-LOAD CCW ADDRESS @VA09123 01782320
  1962. CLI 5(R1),X'10' IS THIS A WRITE TEXT CCW? @VA13944 01782450
  1963. BNE RESTARTA NO, GO RESTART THE LINE @VA08730 01782500
  1964. ST R1,BSCSPTR SAVE WRITE CCW ADDRESS @VA08730 01782600
  1965. MVI IOBMISC2,IBBWRITE INDICATE THIS IS A WRITE @VA08730 01782700
  1966. RESTARTA EQU * @VA08730 01782800
  1967. XC BSCRESP(L'BSCRESP),BSCRESP CLEAR RESPONSE FIELD @VA13944 01782900
  1968. NI BSCFLAG,X'FF'-BSCSCAN CLEAR SECOND SCAN FLAG @V305731 01783000
  1969. XC IOBRCNT(2),IOBRCNT CLEAR RETRY COUNT FOR I/O @V305731 01784000
  1970. BAL R3,FRETIOER RELEASE THE IOERBLOK @V305731 01785000
  1971. LA R2,DMKRGAIN INTERRUPT RETURN ADDRESS @V305731 01786000
  1972. ST R2,IOBIRA SAVE INTERRUPT RETURN ADDRESS @V305731 01787000
  1973. MVC IOBUSER,NICUSER ASSIGN VMBLOK FOR I/O @VA07391 01788150
  1974. ST R9,BSCAUSER SAVE ADDR OF ACTIVE RESOURCE @V305731 01792000
  1975. CL R9,RDEVNICL IS THIS THE FIRST NICBLOK @V305731 01793000
  1976. BE *+8 YES, SKIP SAVING NICBLOK @V305731 01794000
  1977. ST R9,BSCRROBN SAVE ACTIVE NICBLOK @V305731 01795000
  1978. NI IOBSTAT,IOBFATAL RESET ALL BUT IOB FATAL FLAG @V349331 01796100
  1979. MVI IOBSPEC,X'00' CLEAR SPECIAL REQUEST @V305731 01797000
  1980. NI IOBFLAG,IOBCP+IOBRSTRT LEAVE ON THESE FLAGS @V305731 01798000
  1981. OI RDEVSTAT,RDEVWAII LINE IS NOW ACTIVE @V305731 01799000
  1982. BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @VA07391 01799100
  1983. CALL DMKIOSQR QUEUE REAL I/O FOR SYSTEM @V305731 01800000
  1984. BAL R7,GODSPCH GO TO DISPATCHER @V305731 01801000
  1985. SPACE 1 01802000
  1986. RGSTART EQU * GO SCAN FOR ACTIVE NICBLOK @V305731 01803000
  1987. L R7,=A(DMKRGBIC) PUT BASE ADDR OF DMKRGB IN REG. @V305731 01804000
  1988. L R15,=A(DMKRGBSN) SCAN FOR ACTIVE USER @V305731 01805000
  1989. BR R15 GO TO SCAN SECTION @V305731 01806000
  1990. SPACE 1 01807000
  1991. RGIGNORE EQU * RELEASE IOBLOK & IOERBLOK @V305731 01808000
  1992. BAL R7,FRETIOB RELEASE STORAGE FOR IOBLOK @V305731 01809000
  1993. BAL R7,GODSPCH GO TO DISPATCHER @V305731 01810000
  1994. SPACE 1 01811000
  1995. RVIRESP EQU * SEND RVI RESPONSE TO A STATION @V305731 01812000
  1996. BAL R7,CTLTASKB GET STORAGE FOR CONTROL CONTASK @V305731 01813000
  1997. MVI CONLABEL,RTNRVIRP SET RETURN TO RVI RESPONSE @V305731 01814000
  1998. OI BSCFLAG,BSCRVI SET EOT EXPECTED FLAG @V305731 01815000
  1999. LA R1,RSRVICCW GET ADDR OF CCW FOR RVI RESPONSE @V305731 01816000
  2000. BAL R7,SETUPCCW SET UP CCW FOR RVI RESPONSE @V305731 01817000
  2001. MVC CONCCW1(8),RSRVICCW GET CCW FOR RVI RESPONSE @V305731 01818000
  2002. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01819000
  2003. SPACE 1 01820000
  2004. CTLTASKB EQU * SET UP BASIC SIZE FOR CONTASK @V305731 01821000
  2005. LA R0,CONTSIZE SIZE OF BASIC CONTASK @V305731 01822000
  2006. B CTLTASK1 GET STORAGE FOR CONTASK @V305731 01823000
  2007. CTLTASK EQU * ALLOCATE AND QUEUE CONTROL TASK @V305731 01824000
  2008. LA R0,CONTSIZE+6 ...SIZE OF CONTASKS @VA08129 01825100
  2009. CTLTASK1 EQU * @V305731 01826000
  2010. CALL DMKFREE GET STORAGE FOR CONTASK @V305731 01827000
  2011. XC 0(CONTSIZE*8,R1),0(R1) CLEAR THE HEADER @V305731 01828000
  2012. LR R6,R1 PUT CONTASK ADDRESS IN REGISTER 6@V305731 01829000
  2013. STH R0,CONTSKSZ SAVE THE CONTASK SIZE @V305731 01830000
  2014. L R1,NICUSER VMBLOK OF RESOURCE OWNER @V305731 01831000
  2015. ST R1,CONUSER SAVE VMBLOK PTR IN CONTASK @V305731 01832000
  2016. MVI CONSTAT,CONCNTL INDICATE CONTROL TASK @V305731 01833000
  2017. L R1,NICQPNT GET CURRENT CONTASK FROM CHAIN @V305731 01834000
  2018. ST R6,NICQPNT PUT THIS TASK FIRST ON CHAIN @V305731 01835000
  2019. ST R1,CONPNT PUT CURRENT TASK ON CHAIN @V305731 01836000
  2020. BR R7 RETURN @V305731 01837000
  2021. SPACE 1 01838000
  2022. STKCPEX EQU * @V305731 01839000
  2023. LA R0,CPEXSIZE GET SIZE OF CPEXBLOK @V305731 01840000
  2024. CALL DMKFREE GET STORAGE FOR CPEXBLOK @V305731 01841000
  2025. USING CPEXBLOK,R1 ADDRESSABILITY FOR CPEXBLOK @V305731 01842000
  2026. XC CPEXBLOK(16),CPEXBLOK CLEAR THE HEADER @V305731 01843000
  2027. LR R15,R4 GET THE EXECUTION ADDRESS @V305731 01844000
  2028. STM R15,R14,CPEXADD SAVE ALL REGISTERS @V305731 01845000
  2029. CALL DMKSTKMP STACK BLOCK FOR LATER PROCESSING @VA07391 01846100
  2030. DROP R1 DROP BASE REGISTER FOR CPEXBLOK @V305731 01847000
  2031. BR R7 RETURN @V305731 01848000
  2032. SPACE 1 01849000
  2033. DATAMOVE EQU * MOVE DATA INTO CONTASK @V305731 01850000
  2034. LA R14,CONCCW4+4 GET BEGINNING ADDRESS @V305731 01851000
  2035. AR R14,R1 UPDATE TO END OF DATA @V305731 01852000
  2036. MVI 0(R14),ETX PUT ENDING BISYNC CHAR IN BUFFER @V305731 01853000
  2037. DATMOVE EQU * MOVE DATA INTO CONTASK @V305731 01854000
  2038. MVC CONCCW4+1(3),SYNCP MOVE BISYNC HEADER INTO DATA @V305731 01855000
  2039. BCTR R1,R0 SUBTRACT - EX INSTRUCTION @V305731 01856000
  2040. EX R1,DATA MOVE DATA INTO BUFFER AREA @V305731 01857000
  2041. BR R7 RETURN @V305731 01858000
  2042. SPACE 1 01859000
  2043. GRFCLRT EQU * @V305731 01860000
  2044. BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 01861000
  2045. NI NICFLAG,X'FF'-(NICDIAG+NICALRM) CLEAR FLAGS @V305731 01862000
  2046. MVI NICCORD,X'00' SET COORDINATE Y TO ZERO @V305731 01863000
  2047. MVI NICSTAT,NICRUNN+NICNTRL SET STATUS IN NICBLOK @V305731 01864000
  2048. LA R1,WRT77CCW SET UP CCWS FOR CLEAR FUNCTION @V305731 01865000
  2049. BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 01866000
  2050. MVI CONCCW1+7,CLR77L+4 SET CCW COUNT FOR CLEAR FUNC.@V305731 01867000
  2051. LA R1,CLR77L GET THE LENGTH OF CLEAR DATA @V305731 01868000
  2052. LA R2,CLR3277 GET ADDRESS OF CLEAR DATA @V305731 01869000
  2053. BAL R7,DATAMOVE MOVE DATA INTO BUFFER AREA @V305731 01870000
  2054. BR R3 RETURN @V305731 01871000
  2055. SPACE 1 01872000
  2056. SETUPCCW EQU * SET UP CCWS FOR BISYNC RESPONSE @V305731 01873000
  2057. MVC CONCCW1(8),0(R1) MOVE CCW INTO CONTASK @V305731 01874000
  2058. MVI CONCCW1+4,SILI+CC MAKE SURE CMD CHAIN FLAG IS ON@V305731 01875000
  2059. LA R1,CONCCW4+1 GET BEGINNING ADDRESS OF DATA @V305731 01876000
  2060. STCM R1,7,CONCCW1+1 SAVE BEGINNING ADDRESS @V305731 01877000
  2061. MVC CONCCW2(8),READCCW1 GET READ RESPONSE CCW @V305731 01878000
  2062. LA R1,BSCRESP GET RESPONSE BUFFER @V305731 01879000
  2063. STCM R1,7,CONCCW2+1 SAVE RESPONSE BUFFER ADDRESS @V305731 01880000
  2064. BR R7 RETURN @V305731 01881000
  2065. SPACE 1 01882000
  2066. CLRTLOG EQU * CLEAR SCREEN & LOGOFF USER @V305731 01883000
  2067. BAL R3,GRFCLRT SET UP CCWS TO CLEAR SCREEN @V305731 01884000
  2068. MVI CONLABEL,RTNLOGOF SET RETURN TO LOGOFF PROCESS @V305731 01885000
  2069. BAL R7,SETCAWA GO RESTART I/O OPERATION TO LINE @V305731 01886000
  2070. SPACE 2 @VA13123 01887000
  2071. SETRETN EQU * @V305731 01907000
  2072. TM CONSTAT,CONRESP RESPONSE EXPECTED ? @V305731 01908000
  2073. BZR R3 NO, RETURN @V305731 01909000
  2074. L R1,CONRETN GET RETURN SAVEAREA ADDRESS @V305731 01910000
  2075. ST R2,SAVER2-SAVEAREA(R1) SET RETURN CODE @V305731 01911000
  2076. BR R3 RETURN TO IN LINE CODE @V305731 01912000
  2077. SPACE 1 01913000
  2078. CONRET EQU * RETURN CONTASK TO SYSTEM @V305731 01914000
  2079. L R0,CONPNT GET NEXT CONTASK (IF ANY) @V305731 01915000
  2080. ST R0,NICQPNT SET NEXT CONTASK FOR PROCESSING @V305731 01916000
  2081. SR R0,R0 CLEAR REGISTER 0 @V305731 01917000
  2082. ST R0,CONPNT CLEAR NEXT POINTER @V305731 01918000
  2083. CALL DMKQCNET RETURN CONTASK @V305731 01919000
  2084. BR R3 RETURN TO IN LINE CODE @V305731 01920000
  2085. SPACE 1 01921000
  2086. RTYCOUNT EQU * CHECK RETRY FOR MAXIMUN VALUE @V305731 01922000
  2087. LH R1,BSCCNT GET RETRY COUNT @V305731 01923000
  2088. A R1,F1 UPDATE RETRY COUNT BY ONE @V305731 01924000
  2089. STH R1,BSCCNT SAVE RETRY COUNT @V305731 01925000
  2090. CLC BSCCNT(2),F6+2 HAS MAXIMUM COUNT BEEN REACHED ? @VA08077 01926100
  2091. BH REGENERR YES, SET PERMANENT STATION ERROR @V305731 01927000
  2092. BR R3 RETURN TO IN LINE CODE @V305731 01928000
  2093. SPACE 1 01928100
  2094. LDITCH EQU * HERE FOR LAST DITCH RETRY @VA08732 01928200
  2095. MVC IOBCAW,BSCSPTR SET CCW ADDRESS @VA08732 01928300
  2096. MVI BSCFLAG,X'00' TURN OFF ERROR FLAGS @VA08732 01928400
  2097. MVI BSCFLAG1,X'00' DITTO @VA08732 01928500
  2098. NI IOBSTAT,X'FF'-IOBFATAL DITTO @VA08732 01928600
  2099. BAL R3,SELECTCW GO RESELECT TUBE @VA09031 01928710
  2100. B RESTART GO RESTART I/O TO LINE @VA09031 01928810
  2101. SPACE 1 01929000
  2102. RSTTMR EQU * RESET TIMER VALUE @V305731 01930000
  2103. TM NICSTAT,NICTRQ IS A TIMER REQUEST QUEUED @V305731 01931000
  2104. BZR R7 NO, RETURN TO IN LINE CODE @V305731 01932000
  2105. NI NICSTAT,X'FF'-NICTRQ RESET TIMER REQUEST FLAG @V305731 01933000
  2106. L R1,NICATRB GET ADDRESS OF TRQBLOK @V305731 01934000
  2107. CALL DMKSCHRT RESET ACTIVE TIMER REQUEST @V305731 01935000
  2108. BR R7 RETURN TO IN LINE CODE @V305731 01936000
  2109. SPACE 1 01937000
  2110. ROUTCNS EQU * EDIT AND TRANSLATE INPUT DATA @V305731 01938000
  2111. ST R7,TEMPR7 SAVE REGISTER 7 @V4M0193 01938100
  2112. ST R0,TEMPR0 SAVE REG 0-DESTROYED BY RSWVMU1 @VA07580 01938200
  2113. L R1,NICUSER LOAD ADDR NEW VMBLOK @V407511 01939100
  2114. BAL R7,RSWVMU1 SWITCH VMBLOK CHARGING @V4M0193 01939600
  2115. L R7,TEMPR7 RESTORE REGISTER 7 @V4M0193 01939700
  2116. L R0,TEMPR0 RESTORE REGISTER 0 @VA07580 01939800
  2117. CALL DMKCNSED EDIT INPUT DATA @V305731 01942000
  2118. CHARGE SWITCH,ASYSVM SWITCH VMBLOK CHARGING @V407511 01943100
  2119. BR R7 RETURN @V407511 01943200
  2120. SPACE 1 01944000
  2121. FRETCON EQU * RELEASE CONTASK AFTER EDITING @V305731 01945000
  2122. LR R1,R6 GET CONTASK POINTER @V305731 01946000
  2123. LA R0,CONTSIZE GET SIZE OF CONTASK @V305731 01947000
  2124. CALL DMKFRET RELEASE CONTASK @V305731 01948000
  2125. ST R3,BUFCNT-BUFFER(,R4) SAVE INPUT DATA COUNT @V305731 01949000
  2126. BR R7 RETURN TO IN LINE CODE @V305731 01950000
  2127. SPACE 1 01951000
  2128. ROUTQCN EQU * RE-DISPLAY DATA ON SCREEN @V305731 01952000
  2129. TM VMMLVL2-VMBLOK(R15),VMMHLITE HILIGHT REQUESTED? HRV101DK 01952700
  2130. BZ CALLQCN NO, CONTINUE HRV101DK 01953400
  2131. O R2,=A(HILIGHT) SET PARM ON HRV101DK 01954100
  2132. CALLQCN EQU * HRV101DK 01954800
  2133. O R2,=A(NOTRESP) SIGNAL NOT A COMMAND RESPONSE @V60C2B8 01955500
  2134. CALL DMKQCNWT,AFFINITY RE-DISPLAY INPUT DATA @V407511 01955600
  2135. B RSWVMU GO RESTORE SYSTEM TIMER VALUE @V4M0193 01957100
  2136. SPACE 1 01958000
  2137. ROUTCFM EQU * PUT USER IN CONSOLE FUNCTION MODE@V305731 01959000
  2138. LR R3,R7 SAVE RETURN ADDRESS @V4M0193 01960100
  2139. BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 01960200
  2140. LR R7,R3 RESTORE RETURN ADDRESS @V4M0193 01960300
  2141. CALL DMKCFMBK,AFFINITY PLACE IN CONSOLE FUNC MODE @V407511 01960600
  2142. B RSWVMU GO RESTORE SYSTEM TIMER VALUE @V4M0193 01965100
  2143. SPACE 1 01969000
  2144. BLDTRQ EQU * GET STORAGE FOR TRQBLOK @V305731 01970000
  2145. L R4,NICATRB GET TRQBLOK POINTER @V305731 01971000
  2146. LTR R4,R4 IS THE POINTER ZERO ? @V305731 01972000
  2147. BNZR R7 NO, RETURN @V305731 01973000
  2148. BAL R3,TRQSETUP GET STORAGE AND SETUP TRQBLOK @V305731 01974000
  2149. ST R4,NICATRB SAVE POINTER TO TRQBLOK @V305731 01975000
  2150. BR R7 RETURN @V305731 01976000
  2151. SPACE 1 01977000
  2152. TRQSETUP EQU * GET STORAGE AND SET UP TRQBLOK @V305731 01978000
  2153. LA R0,TRQBSIZE+CRTEXT GET SIZE OF TRQBLOK @VA13071 01979100
  2154. CALL DMKFREE GET STORAGE FOR TRQBLOK @V305731 01980000
  2155. LR R4,R1 GET TRQBLOK ADDRESS @V305731 01981000
  2156. XC TRQBLOK(TRQBSIZE*8+CRTEXTSZ),TRQBLOK CLR TRQ+EXT@VA13071 01982100
  2157. CALL DMKSCNRD GET BISYNC LINE ADDRESS @V305731 01983000
  2158. STH R1,TRQBDEV SAVE BISYNC LINE ADDRESS @V305731 01984000
  2159. ST R9,TRQBCRT SAVE NICBLOK ADDRESS OF USER @V305731 01985000
  2160. BR R3 RETURN TO IN LINE CODE @V305731 01986000
  2161. SPACE 1 01987000
  2162. SCHTIME EQU * SCHEDULE TIMER REQUEST @V305731 01988000
  2163. ST R15,TRQBIRA SAVE RETURN ADDRESS @V305731 01989000
  2164. ST R11,TRQBUSER SAVE USER VMBLOK ADDRESS @V305731 01990000
  2165. STCK TRQBVAL GET TOD CLOCK VALUE @V305731 01991000
  2166. BC 12,CLOCKOK IS CLOCK FUNCTIONING? @VA04301 01991250
  2167. GOTO DMKCVTAB CLOCK DAMAGED...ABEND CVT001 @VA04301 01991500
  2168. CLOCKOK EQU * @VA04301 01991750
  2169. LM R14,R15,TRQBVAL GET TOD VALUE @V305731 01992000
  2170. AL R15,4(R1) ADD TO THE TOD CLOCK THE @V305731 01993000
  2171. BC 12,BYPADJ TIME INTERVAL @VM03133 01994000
  2172. AL R14,F1 ADJUST FOR OVERFLOW @V305731 01995000
  2173. BYPADJ EQU * GET TIMER VALUE @VM03133 01996000
  2174. AL R14,0(R1) HI ODER OF CLOCK VALUE @V305731 01997000
  2175. STM R14,R15,TRQBVAL SAVE TIMER VALUE IN TRQBLOK @V305731 01998000
  2176. LR R1,R4 GET ADDRESS OF TRQBLOK @V305731 01999000
  2177. CALL DMKSCHST GO SCHEDULE TIMER REQUEST @V305731 02000000
  2178. BR R7 RETURN TO IN LINE CODE @V305731 02001000
  2179. SPACE 1 02002000
  2180. BLDIOB EQU * GET STORAGE FOR IOBLOK @V305731 02003000
  2181. LTR R10,R10 IS THERE AN IOBLOK POINTER ? @V305731 02004000
  2182. BNZR R3 YES, RETURN @V305731 02005000
  2183. LA R0,IOBSIZE GET IOBLOK SIZES @V305731 02006000
  2184. CALL DMKFREE GET STORAGE FOR IOBLOK @V305731 02007000
  2185. LR R10,R1 SET UP ADDRESSABILITY FOR IOBLOK @V305731 02008000
  2186. XC IOBLOK(IOBSIZE*8),IOBLOK CLEAR IOBLOK @V305731 02009000
  2187. BR R3 RETURN TO IN LINE CODE @V305731 02010000
  2188. SPACE 1 02011000
  2189. BLDCOPY EQU * CCWS TO COPY SCREEN TO PRINTER @V305731 02012000
  2190. LA R0,CONTSIZE+1 GET SIZE OF CONTROL CONTASK @V305731 02013000
  2191. BAL R7,CTLTASK1 GET STORAGE FOR CONTASK @V305731 02014000
  2192. MVI CONLABEL,RTNNOCTL SET INDICATOR FOR NEXT CONTASK@V305731 02015000
  2193. LA R1,WRT77CCW GET WRITE CCW ADDRESS @V305731 02016000
  2194. BAL R7,SETUPCCW SET UP CCWS FOR BISYNC OPERATION @V305731 02017000
  2195. MVI CONCCW1+7,COPY75L+4 SET LENGTH OF COPY DATA @V305731 02018000
  2196. LA R1,COPY75L GET LENGTH OF COPY DATA @V305731 02019000
  2197. LA R2,COPY3275 GET ADDRESS OF COPY DATA @V305731 02020000
  2198. BAL R7,DATAMOVE MOVE DATA INTO CONTASK @V305731 02021000
  2199. L R7,RDEVNICL GET START OF NICBLOK LIST @V305731 02022000
  2200. TM NICTYPE-NICBLOK(R7),NIC3275 A 3275 DISPLAY @V305731 02023000
  2201. BOR R3 YES, RETURN TO IN LINE CODE @V305731 02024000
  2202. MVI CONCCW1+7,COPY77L+4 SET LENGTH OF COPY DATA @V305731 02025000
  2203. LA R1,COPY77L GET LENGTH OF COPY DATA @V305731 02026000
  2204. LA R2,COPY3277 GET ADDRESS OF COPY DATA @V305731 02027000
  2205. BAL R7,DATAMOVE MOVE DATA INTO CONTASK @V305731 02028000
  2206. MVI CONCCW4+3,COPYCMD SET COPY COMMAND CODE @V305731 02029000
  2207. L R7,BSCUCOPY GET COPY REQUESTOR NICBLOK ADDR @V305731 02030000
  2208. IC R1,NICPOLL+1-NICBLOK(R7) GET DEVICE ADDRESS @V305731 02031000
  2209. STC R1,CONCCW4+5 PUT REQUESTOR DEVICE ADDR IN DATA@V305731 02032000
  2210. BR R3 RETURN @V305731 02033000
  2211. SPACE 1 02034000
  2212. ERRMSGS EQU * ERROR MESSAGE SUBROUTINE @V305731 02035000
  2213. LH R1,IOBRADD GET ADDRESS OF LINE @V305731 02036000
  2214. CALL DMKCVTBH CONVERT TO HEX. VALUE @V305731 02037000
  2215. ICM R1,8,BLANKS PUT BLANK IN HIGH ORDER BYTE @V305731 02038000
  2216. L R0,MSGHEAD GET HEADER FOR ERROR ROUTINE @V305731 02039000
  2217. O R2,MSGPARM SET UP PARM FIELD @V305731 02040000
  2218. LTR R3,R3 TEST FOR MESSAGE 455 @VA13518 02040100
  2219. BZ CALLERM IF 0, NOT 455, CALL ERM NOW @VA13518 02040200
  2220. ST R1,0(,R3) STORE LINE ADDRESS FOR MSG @VA13518 02040300
  2221. LR R1,R3 LOAD DATA ADDRESS FOR ERM @VA13518 02040400
  2222. ICM R3,8,F2+3 NO. OF DW IN REG FOR ERM @VA13518 02040500
  2223. ICM R0,1,F16+3 NO. OF BYTES IN REG FOR ERM @VA13518 02040600
  2224. CALLERM EQU * @VA13518 02040700
  2225. CALL DMKERMSG,AFFINITY WRITE ERROR MESSAGES @V407511 02041100
  2226. BR R7 RETURN TO IN LINE CODE @V305731 02042000
  2227. SPACE 1 02043000
  2228. FRETSTG EQU * RETURN STORAGE TO SYSTEM @V305731 02044000
  2229. LA R1,0(,R1) CLEAR HIGH ORDER BYTE @V305731 02045000
  2230. LTR R1,R1 IS ADDRESS ZERO ? @V305731 02046000
  2231. BZ CLREG0 YES, CLEAR REGISTER ZERO @V305731 02047000
  2232. CALL DMKFRET RELEASE STORAGE @V305731 02048000
  2233. CLREG0 EQU * @V305731 02049000
  2234. SR R0,R0 CLEAR REGISTER 0 @V305731 02050000
  2235. BR R7 RETURN TO IN LINE CODE @V305731 02051000
  2236. SPACE 1 02052000
  2237. FRETRD EQU * RELEASE READ BUFFER @V305731 02053000
  2238. LA R0,BUFSIZE GET SIZE OF READ BUFFER @V305731 02054000
  2239. L R1,BSCRPTR GET ADDRESS OF READ BUFFER @VA08730 02055100
  2240. BAL R7,FRETSTG RELEASE STORAGE FOR READ BUFFER @V305731 02056000
  2241. ST R0,BSCRPTR CLEAR POINTER FIELD @VA08730 02057100
  2242. BR R3 RETURN @V305731 02058000
  2243. SPACE 1 02059000
  2244. FRETIOB EQU * RELEASE IOBLOK & IOERBLOK @V305731 02060000
  2245. LTR R10,R10 IS THERE AN IOBLOK POINTER @V305731 02061000
  2246. BZR R7 NO, RETURN @V305731 02062000
  2247. BAL R3,FRETIOER RELEASE IOERBLOK @V305731 02063000
  2248. LR R1,R10 GET IOBLOK POINTER @V305731 02064000
  2249. LA R0,IOBSIZE GET SIZE OF IOBLOK @V305731 02065000
  2250. CALL DMKFRET RELEASE STORAGE FOR IOBLOK @V305731 02066000
  2251. SR R10,R10 CLEAR IOBLOK POINTER @V305731 02067000
  2252. BR R7 RETURN TO IN LINE CODE @V305731 02068000
  2253. SPACE 1 02069000
  2254. FRETIOER EQU * RELEASE IOERBLOK STORAGE @V305731 02070000
  2255. L R1,IOBIOER GET POINTER TO IOERBLOK @V305731 02071000
  2256. LTR R1,R1 IS POINTER ZERO ? @V305731 02072000
  2257. BZR R3 YES, RETURN @V305731 02073000
  2258. LA R0,IOERSIZE GET SIZE OF IOERBLOK @V305731 02074000
  2259. AH R0,IOEREXT-IOERBLOK(,R1) EXTENSION TO IOERBLOK @V305731 02075000
  2260. CALL DMKFRET RELEASE STORAGE FOR IOERBLOK @V305731 02076000
  2261. SR R0,R0 CLEAR REGISTER 0 @V305731 02077000
  2262. ST R0,IOBIOER CLEAR POINTER TO IOERBLOK @V305731 02078000
  2263. BR R3 RETURN @V305731 02079000
  2264. EJECT 02080100
  2265. **** NOTE: R7 MUST BE PRESERVED ACROSS THIS SUBROUTINE 02080200
  2266. FORCEOFF EQU * LOGOFF USER @V305731 02081000
  2267. LR R2,R7 SAVE R7 VALUE @V4M0193 02082100
  2268. BAL R7,RSWVMS SWITCH VMBLOK LOCKING & CHARGING @V4M0193 02082200
  2269. LR R7,R2 RESTORE R7 VALUE @V4M0193 02082300
  2270. L R4,RDEVCON GET ADDRESS OF STACK CONTASKS @V305731 02085000
  2271. L R2,NICQPNT GET POINTER TO CONTASK'S STACK @V305731 02086000
  2272. LTR R2,R2 ARE THERE ANY CONTASKS @V305731 02087000
  2273. BZ CHECKLST NO, RESTORE ADDRESS OF STACK @V305731 02088000
  2274. ST R2,RDEVCON SAVE CONTASK POINTER FOR QCN @V305731 02089000
  2275. CALL DMKQCNCL CANCEL EVERYTHING ON STACK @V305731 02090000
  2276. CHECKLST EQU * SAVE ORIGINAL CONTASK POINTER @V305731 02091000
  2277. ST R4,RDEVCON SAVE ORIGINAL CONTASK POINTER @V305731 02092000
  2278. SR R0,R0 CLEAR REGISTER 0 @V305731 02093000
  2279. ST R0,NICQPNT CLEAR POINTER TO CONTASK STACK @V305731 02094000
  2280. TM VMRSTAT,VMLOGOFF IS USER IN PROCESS OF LOGOFF @V305731 02095000
  2281. BO SIGNOFF YES, BYPASS SENDING MESSAGE @V305731 02096000
  2282. CL R11,ASYSVM IS THIS A SYSTEM VMBLOK ? @V305731 02097000
  2283. BE SIGNOFF YES, BYPASS @V305731 02098000
  2284. TM BSCFLAG,BSCLOG IS BYPASS FORCE MESSAGE SET ? @V305731 02099000
  2285. BO SIGNOFF YES, GO LOGOFF USER @V305731 02100000
  2286. TM NICTYPE,NICRSPL IS THIS A REMOTE PRINTER @V305731 02101000
  2287. BO SIGNOFF YES, BYPASS MESSAGE TO OPERATOR @V305731 02102000
  2288. TM VMRSTAT,VMLOGON STILL IN LOGON PROCESS ? @V305731 02103000
  2289. BZ BYPSLP NO, PUT USER TO SLEEP @VM03133 02104000
  2290. ST R0,VMTERM CLEAR TERMINAL RDEVBLOK PTR. @V305731 02105000
  2291. BYPSLP EQU * PUT USER TO SLEEP @VM03133 02106000
  2292. CALL DMKQCNTO,AFFINITY PUT USER TO SLEEP @V407511 02107100
  2293. SIGNOFF EQU * CLEANUP SECTION @V305731 02108000
  2294. LR R2,R7 SAVE R7 @VA07391 02109150
  2295. BAL R7,RSWVMU SWITCH VMBLOK CHARGING @V4M0193 02109200
  2296. ST R11,NICUSER THIS RESOURCE NOW AVAILABLE @V305731 02112000
  2297. BAL R7,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V305731 02114000
  2298. NI NICSTAT,X'FF'-X'DF' RESET RESOURCE STATUS @V305731 02115000
  2299. NI NICFLAG,X'FF'-X'D5' RESET RESOURCE FLAGS @V305731 02116000
  2300. NI NICTMCD,X'FF'-(NICAPL+NICSIO+NICTEXT) @V387398 02117100
  2301. L R1,NICATRB GET ADDRESS OF TRQBLOK @V305731 02118000
  2302. LA R0,TRQBSIZE+CRTEXT GET SIZE OF TRQBLOK @VA13071 02119100
  2303. BAL R7,FRETSTG RELEASE STORAGE FOR TRQBLOK @V305731 02120000
  2304. ST R0,NICATRB CLEAR TRQBLOK POINTER @V305731 02121000
  2305. LR R7,R2 RESTORE CALLERS R7 @VA07391 02122100
  2306. TM NICFLAG,NICDISB WAS RESOURCE DISABLED ? @V305731 02123000
  2307. BZR R3 NO, RETURN @V305731 02124000
  2308. NI NICFLAG,X'FF'-(NICDISB+NICENAB) @V305731 02125000
  2309. BR R3 RETURN @V305731 02126000
  2310. EJECT 02127100
  2311. RESEOT EQU * RESET SECTION @V305731 02128000
  2312. XC BSCCNT(2),BSCCNT CLEAR RETRY COUNT @V305731 02129000
  2313. LA R1,RESETEOT GET ADDRESS OF RESET CCW @V305731 02130000
  2314. BAL R7,SETCAW GO RESTART I/O OPERATION TO LINE @V305731 02131000
  2315. SPACE 1 02131100
  2316. LINEDROP EQU * DISCONNECT SWITCH LINE @V346931 02131200
  2317. XC BSCCNT,BSCCNT CLEAR RETRY COUNT @V346931 02131300
  2318. LA R1,BKCONCCW ADDR OF BREAK CONNECTION CCW @V346931 02131400
  2319. BAL R7,SETCAW GO START I/O OPERATION @V346931 02131500
  2320. SPACE 1 02132000
  2321. ENQSUB EQU * SEND ENQ TO RE-GENERATE RESPONSE @V305731 02133000
  2322. MVC BSCECCW1(8),RSENQCCW SET UP CCW TO SEND ENQ @V305731 02134000
  2323. MVC BSCECCW2(8),TICCCW GET TIC CCW @V305731 02135000
  2324. L R1,IOBCSW GET CCW ADDRESS @VA07166 02136100
  2325. LA R1,0(,R1) CLEAR HIGH-ORDER BYTE @VA07166 02136200
  2326. SH R1,F8+2 CALCULATE READ CCW ADDRESS @VA07166 02136300
  2327. STCM R1,7,BSCECCW2+1 SAVE ADDRESS IN CCW @V305731 02137000
  2328. BR R3 RETURN @V305731 02138000
  2329. SPACE 1 02139000
  2330. NAKSUB EQU * SEND RESPONSE TO RETRANSMIT TEXT @V305731 02140000
  2331. MVC BSCECCW1(8),RSNAKCCW GET CCW TO SEND NAK RESP. @V305731 02141000
  2332. MVC BSCECCW2(8),TICCCW SET UP TIC CCW @V305731 02142000
  2333. LA R1,BSCPCCW4 GET ADDRESS OF THE READ CCW @V305731 02143000
  2334. TM RDEVFTR,FTRDIAL DIAL FEATURE INDICATED? @V346931 02143200
  2335. BZ NOTDIAL2 NO, USE ESTABLISHED CCWS @V346931 02143400
  2336. LA R1,BSCPCCW2 POINT TO READ BUFFER CCWS @V346931 02143600
  2337. NOTDIAL2 EQU * PREPARE FOR I/O OPERATION @V346931 02143800
  2338. STCM R1,7,BSCECCW2+1 SAVE ADDRESS IN TIC CCW @V305731 02144000
  2339. XC BSCREAD(256),BSCREAD CLEAR READ BUFFER @V305798 02145000
  2340. XC BSCREAD+256(L'BSCREAD-256),BSCREAD+256 ... @V305798 02146000
  2341. BR R3 RETURN @V305731 02147000
  2342. SPACE 1 02148000
  2343. STATUS EQU * DETERMINE STATUS OF DISPLAY @V305731 02149000
  2344. TM NICSTAT,NICREAD IS SCREEN IN READ STATE @V305731 02150000
  2345. BO RGFREAD YES, GET CCWS FOR READ STATE @V305731 02151000
  2346. TM NICSTAT,NICRUNN IS SCREEN IN RUNNING STATE @V305731 02152000
  2347. BO RGFRUN YES, GET CCWS FOR RUNNING STATE @V305731 02153000
  2348. TM NICSTAT,NICHOLD IS SCREEN IN HOLD STATE @V305731 02154000
  2349. BO RGFHOLD YES, GET CCWS FOR HOLD STATE @V305731 02155000
  2350. BAL R7,RSTTMR GO RESET ACTIVE TIMER REQUEST @V305731 02156000
  2351. BAL R3,CRTMORE GET CCWS FOR MORE STATE @V305731 02157000
  2352. BR R4 RETURN @V305731 02158000
  2353. RGFREAD EQU * HANDLE READ STATUS @V305731 02159000
  2354. L R6,NICQPNT GET NEXT CONTASK @V305731 02160000
  2355. BAL R3,READSUB BUILD CCWS FOR READ STATE @V305731 02161000
  2356. BR R4 RETURN @V305731 02162000
  2357. RGFRUN EQU * HANDLE RUNNING STATUS @V305731 02163000
  2358. BAL R3,CRTRUN GET CCWS FOR RUNNING STATE @V305731 02164000
  2359. BR R4 RETURN @V305731 02165000
  2360. RGFHOLD EQU * HANDLE HOLD STATE @V305731 02166000
  2361. BAL R3,CRTHOLD GET CCWS FOR HOLD STATE @V305731 02167000
  2362. BR R4 RETURN @V305731 02168000
  2363. SPACE 1 02169000
  2364. CRTRUN EQU * SET UP CCWS FOR RUNNING STATE @V305731 02170000
  2365. BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 02171000
  2366. MVI NICSTAT,NICNTRL+NICRUNN SET RUNNING & CONTROL @V305731 02172000
  2367. MVI CONLABEL,RTNNOCTL SET RETURN TO NEXT CONTASK @V305731 02173000
  2368. LA R1,WRT77CCW GET ADDRESS OF RUNNING CCWS @V305731 02174000
  2369. BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 02175000
  2370. MVI CONCCW1+7,RUN77L+3 SET RUNNING CCW COUNT @V305731 02176000
  2371. LA R1,RUN77L-1 GET LENGTH OF RUNNING DATA @V305731 02177000
  2372. LA R2,RUN3277 GET ADDRESS OF RUNNING DATA @V305731 02178000
  2373. BAL R7,DATAMOVE MOVE DATA INTO CONTASK BUFFER @V305731 02179000
  2374. BR R3 RETURN @V305731 02180000
  2375. SPACE 1 02181000
  2376. CRTMORE EQU * SET UP CCWS FOR MORE STATE @V305731 02182000
  2377. BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 02183000
  2378. MVI NICSTAT,NICMORE+NICNTRL INDICATE MORE & CONTROL @V305731 02184000
  2379. MVI CONLABEL,RTNSTMOR SET RETURN TO MORE SECTION @V305731 02185000
  2380. LA R1,WRT77CCW GET ADDRESS OF MORE CCWS @V305731 02186000
  2381. BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 02187000
  2382. MVI CONCCW1+7,MOR77L+4 SET MORE CCW COUNT @V305731 02188000
  2383. LA R1,MOR77L GET LENGTH OF MORE DATA @V305731 02189000
  2384. LA R2,MOR3277 GET ADDRESS OF MORE DATA @V305731 02190000
  2385. BAL R7,DATAMOVE MOVE DATA INTO CONTASK BUFFER @V305731 02191000
  2386. BR R3 RETURN @V305731 02192000
  2387. SPACE 1 02193000
  2388. CRTHOLD EQU * SET UP CCWS FOR HOLD STATE @V305731 02194000
  2389. BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 02195000
  2390. MVI NICSTAT,NICHOLD+NICNTRL INDICATE HOLD & CONTROL @V305731 02196000
  2391. MVI CONLABEL,RTNNOCTL SET RETURN TO NEXT CONTASK @V305731 02197000
  2392. LA R1,WRT77CCW GET ADDRESS OF HOLD CCWS @V305731 02198000
  2393. BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 02199000
  2394. MVI CONCCW1+7,HLD77L+4 SET HOLD CCW COUNT @V305731 02200000
  2395. LA R1,HLD77L GET LENGTH OF HOLD DATA @V305731 02201000
  2396. LA R2,HLD3277 GET ADDRESS OF HOLD DATA @V305731 02202000
  2397. BAL R7,DATAMOVE MOVE DATA INTO CONTASK BUFFER @V305731 02203000
  2398. BR R3 RETURN @V305731 02204000
  2399. SPACE 1 02205000
  2400. NOTACPT EQU * CCWS FOR NOT ACCEPTED STATUS @V305731 02206000
  2401. BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 02207000
  2402. MVI CONLABEL,RTNSETRJ SET RETURN TO REJECT SECTION @V305731 02208000
  2403. LA R1,WRT77CCW GET ADDRESS OF NOT ACCEPTED CCWS @V305731 02209000
  2404. BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 02210000
  2405. MVI CONCCW1+7,NAC77L+4 SET NOT ACCEPTED CCW COUNT @V305731 02211000
  2406. LA R1,NAC77L GET LENGTH OF NOT ACCEPTED DATA @V305731 02212000
  2407. LA R2,NAC3277 GET ADDRESS OF NOT ACCEPTED DATA @V305731 02213000
  2408. BAL R7,DATAMOVE MOVE DATA INTO CONTASK'S BUFFER @V305731 02214000
  2409. BR R3 RETURN @V305731 02215000
  2410. SPACE 1 02216000
  2411. GRFCRD EQU * SET UP CCWS TO CLEAR INPUT AREA @V305731 02217000
  2412. BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 02218000
  2413. MVI CONLABEL,RTNNOCTL SET RETURN TO NEXT CONTASK @V305731 02219000
  2414. LA R1,WRT77CCW GET ADDRESS OF CLEAR INPUT CCWS @V305731 02220000
  2415. BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 02221000
  2416. MVI CONCCW1+7,CRD77L+4 SET CLEAR AREA CCW COUNT @V305731 02222000
  2417. LA R1,CRD77L GET LENGTH OF CLEAR AREA DATA @V305731 02223000
  2418. TM NICSTAT,NICMORE+NICHOLD MORE OR HOLD STATUS?? @VA05100 02224210
  2419. BZ GRFCRD1 NO, RESET STATUS TO RUNNING @VA04374 02224400
  2420. S R1,F20 ADJUST LENGTH TO LEAVE STAT AS IS@VA04374 02224600
  2421. GRFCRD1 LA R2,CRD3277 GET @ OF CLEAR AREA DATA @VA04374 02224800
  2422. BAL R7,DATAMOVE MOVE DATA INTO CONTASK'S BUFFER @V305731 02225000
  2423. BR R3 RETURN @V305731 02226000
  2424. SPACE 1 02227000
  2425. READSUB EQU * SET UP CCWS FOR READ STATE @V305731 02228000
  2426. LR R2,R6 SAVE CONTASK POINTER @V305731 02229000
  2427. BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 02230000
  2428. LA R1,WRT77CCW GET CCWS FOR READ STATE @V305731 02231000
  2429. BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 02232000
  2430. LR R15,R2 GET ORIGINAL CONTASK POINTER @V305731 02233000
  2431. MVI CONCCW1+7,CPR77L+4 SET READ CCW COUNT @V305731 02234000
  2432. LA R1,CPR77L GET LENGTH OF READ DATA @V305731 02235000
  2433. LA R2,CPR3277 GET ADDRESS OF READ DATA @V305731 02236000
  2434. BAL R7,DATAMOVE MOVE DATA INTO BUFFER AREA @V305731 02237000
  2435. TM CONPARM-CONTASK(R15),INHIBIT NON-DISPLAY DATA @V305731 02238000
  2436. BZ BYPATTR NO, BYPASS SETTING ATTRIBUTE BYTE@VM03133 02239000
  2437. MVI CONDATA+1,ATTR457 SET NON-DISPLAY ATTRIBUTE BYTE@V305731 02240000
  2438. BYPATTR EQU * CHECK FOR VIRTUAL MACHINE @VM03133 02241000
  2439. TM CONPARM-CONTASK(R15),VMGENIO A VIRTUAL MACH READ@V305731 02242000
  2440. BZ VMREADBF NO, BYPASS VM READ DATA @VM03133 02243000
  2441. MVC CONDATA+7(7),VMREADS MOVE VM READ INTO BUFFER @V305731 02244000
  2442. VMREADBF EQU * SETUP CONTROL INFORMATION @VM03133 02245000
  2443. MVI NICSTAT,NICREAD+NICNTRL INDICATE READ & CONTROL @V305731 02246000
  2444. OI CONSTAT-CONTASK(R15),CONESCP CONTASK PROCESSED @V305731 02247000
  2445. MVI CONLABEL,RTNNOCTL SET RETURN TO NEXT CONTASK @V305731 02248000
  2446. BR R3 RETURN @V305731 02249000
  2447. SPACE 1 02250000
  2448. SELECTCW EQU * SET UP CCWS TO SELECT A STATION @V305731 02251000
  2449. TM RDEVFTR,FTRDIAL DIAL UP FEATURE INDICATED? @V346931 02251100
  2450. BNO NONSW NO, SET UP ADDRESSING CCWS @V346931 02251200
  2451. MVC BSCSCCW1(THREECCW),BIDCCW LINE BID CCWS @VA05230 02251350
  2452. B JOINSEL SET UP BUFFER FOR RESPONSE @V346931 02251400
  2453. NONSW EQU * SET UP ADDRESSING CCSW @V346931 02251500
  2454. MVC BSCSCCW1(8*3),WRITSEL CCW STRING FOR ADDRESSING @V305731 02252000
  2455. LA R1,BSCSEL GET ADDRESS OF SELECTION ENTRY @V305731 02253000
  2456. STCM R1,7,BSCSCCW2+1 SAVE ADDRESS OF SELECT ENTRY @V305731 02254000
  2457. ICM R1,10,NICSELT GET ADDRESSING CHARACTERS @V305731 02255000
  2458. ICM R1,5,NICSELT SET UP DOUBLE ADDRESSING CHARS. @V305731 02256000
  2459. STCM R1,15,BSCSEL SAVE ADDRESS OF REMOTE STATION @V305731 02257000
  2460. MVI BSCSEL+4,ENQ SET UP ADDRESSING ENTRY @V305731 02258000
  2461. JOINSEL EQU * ENTRY POINT FOR SW LINE HANDLING @V346931 02258500
  2462. LA R1,BSCRESP GET RESPONSE BUFFER POINTER @V305731 02259000
  2463. STCM R1,7,BSCSCCW3+1 SAVE ADDRESS IN CCW @V305731 02260000
  2464. XC BSCRESP(2),BSCRESP CLEAR RESPONSE BUFFER @V305731 02261000
  2465. MVC BSCRCVD(4),RGFACK0 EXPECTED RECVD & SEND RESP. @V305731 02262000
  2466. MVC BSCSPTR(4),IOBCAW SAVE PTR. TO WRITE CCW STRING @V305731 02263000
  2467. MVI IOBMISC2,IBBSELA SET SELECTION INDICATOR @V305731 02264000
  2468. LA R1,BSCSCCW1 GET START OF SELECTION CCW STRING@V305731 02265000
  2469. ST R1,IOBCAW SET UP CAW FIELD @V305731 02266000
  2470. BR R3 RETURN @V305731 02267000
  2471. SPACE 1 02268000
  2472. SPOLLCW EQU * SET UP CCWS TO DO A SPECIFIC POLL@V305731 02269000
  2473. OI IOBMISC2,IBBSPOLL SET SPECIFIC POLL INDICATOR @V305731 02270000
  2474. B POLLBULD GO SET UP BSCBLOK FOR POLLING @V305731 02271000
  2475. SPACE 1 02272000
  2476. GPOLLCW EQU * SET UP CCWS FOR GENERAL POLLING @V305731 02273000
  2477. L R9,RDEVNICL GET ADDR OF CONTROL UNIT NICBLOK @V305731 02274000
  2478. MVI IOBMISC2,IBBREAD SET FLAG FOR GENERAL POLLING @V305731 02275000
  2479. POLLBULD EQU * SET UP THE BSCBLOK FOR POLLING @V305731 02276000
  2480. TM RDEVFTR,FTRDIAL DIAL UP FEATURE INDICATED? @V346931 02276100
  2481. BNO POLLCONT NO, SET UP POLLING CCWS @V346931 02276200
  2482. MVC BSCPCCW1(TWOCCW),S3275EOT WRITE EOT / READ @V346931 02276300
  2483. LA R1,BSCRESP ADDRESS OF RESPONSE BUFFER @V346931 02276400
  2484. STCM R1,B'0111',BSCPCCW2+1 INTO CCW @V346931 02276500
  2485. B JOINPOLL READ BUFFER @V346931 02276600
  2486. POLLCONT EQU * NON-DIAL POLL OPERATION CONTINUE @V346931 02276700
  2487. MVC BSCPCCW1(8*4),POLCCW GENERAL POLLING CCW STRING @V305731 02277000
  2488. LA R1,BSCREAD GET READ BUFFER ADDRESS @V305731 02278000
  2489. STCM R1,7,BSCPCCW4+1 SAVE ADDRESS OF READ BUFFER @V305731 02279000
  2490. LA R1,BSCSEL GET ADDRESS OF POLLING ENTRY @V305731 02280000
  2491. STCM R1,7,BSCPCCW2+1 SAVE ADDRESS OF POLL ENTRY @V305731 02281000
  2492. ICM R1,10,NICPOLL GET POLLING CHARACTERS @V305731 02282000
  2493. ICM R1,5,NICPOLL SET UP DOUBLE POLLING CHARACTERS @V305731 02283000
  2494. STCM R1,15,BSCSEL SAVE ADDRESS OF REMOTE STATION @V305731 02284000
  2495. MVC BSCSEL+4(3),RGFINDEQ SET UP ENQ, INDEX VAL & EOT@VA03474 02285100
  2496. JOINPOLL EQU * CLEAR READ BUFFER @V346931 02285150
  2497. XC BSCRESP(256),BSCRESP CLEAR READ BUFFER @V346931 02286100
  2498. XC BSCRESP+256(L'BSCREAD+L'BSCRESP-256),BSCRESP+256 X02286700
  2499. THIS SUPPORT CODE IS FOR THE ABOVE LINE @V346931 02287300
  2500. MVC BSCRCVD(4),RGFACK0 SET RECEIVING & SENDING RESP @V305731 02288000
  2501. LA R1,BSCPCCW1 GET START OF POLLING CCW STRING @V305731 02289000
  2502. BR R3 RETURN @V305731 02290000
  2503. SPACE 1 02291000
  2504. BLD77TAB EQU * SET UP CCWS FOR TAB FUNCTION @V305731 02292000
  2505. BAL R7,CTLTASKB GET STORAGE FOR CONTROL CONTASK @V305731 02293000
  2506. MVI CONLABEL,RTNRDEXT SET RETURN TO STATUS SECTION @V305731 02294000
  2507. LA R1,WRT77CCW GET ADDRESS OF TAB FUNCTION CCWS @V305731 02295000
  2508. BAL R7,SETUPCCW SET UP CCWS FOR BISYNC RESPONSE @V305731 02296000
  2509. MVI CONCCW1+7,X'13' SET TAB CCW COUNT @V305731 02297000
  2510. STCM R4,7,CONCCW1+1 SAVE DATA ADDRESS @V305731 02298000
  2511. BR R3 RETURN @V305731 02299000
  2512. SPACE 1 02300000
  2513. BLD77IDS EQU * CCWS TO SEND PFNN UNDEFINED MSG. @V305731 02301000
  2514. ST R7,BALRSAVE SAVE RETURN ADDRESS @VA07391 02302100
  2515. BAL R7,CTLTASK GET STORAGE FOR CONTROL CONTASK @V305731 02303000
  2516. MVI CONLABEL,RTNRDEXT SET RETURN TO STATUS SECTION @V305731 02304000
  2517. MVC CONCCW1(8*2),WIN77CCW GET CCWS TO WRITE MESSAGE @V305731 02305000
  2518. MVC CONCCW3(8),READCCW1 GET READ CCW FOR RESPONSE @V305731 02306000
  2519. LA R1,BSCRESP GET RESPONSE BUFFER ADDRESS @V305731 02307000
  2520. STCM R1,7,CONCCW3+1 SAVE RESPONSE BUFFER ADDR IN CCW @V305731 02308000
  2521. STCM R4,7,CONCCW2+1 SAVE DATA ADDRESS OF MESSAGE @V305731 02309000
  2522. STH R3,CONCCW2+6 SAVE DATA COUNT @V305731 02310000
  2523. LA R3,CONCCW4+1 GET START OF DATA & MESSAGE @V305731 02311000
  2524. STCM R3,7,CONCCW1+1 SAVE START OF DATA IN CCW @V305731 02312000
  2525. LA R1,WIN77DL GET LENGTH OF DATA DATA @V305731 02313000
  2526. LA R2,WIN77D GET ADDRESS OF DATA DATA @V305731 02314000
  2527. BAL R7,DATMOVE MOVE DATA INTO BUFFER AREA @V305731 02315000
  2528. L R7,BALRSAVE RESTORE RETURN ADDRESS @VA07391 02316100
  2529. BR R7 RETURN @V305731 02317000
  2530. SPACE 2 02317100
  2531. RSWVMS DS 0H @V407511 02317110
  2532. L R1,NICUSER LOAD ADDR NEW VMBLOK @V407511 02317120
  2533. RSWVMS1 DS 0H @V407511 02317130
  2534. SWTCHVM OPT=STAY SWITCH VMBLOK LOCKING & CHARGING @V4M0193 02317140
  2535. BR R7 RETURN TO CALLER @V4M0193 02317150
  2536. SPACE 2 @V407511 02317160
  2537. RSWVMU DS 0H @V407511 02317170
  2538. L R1,ASYSVM LOAD ADDR NEW VMBLOK @V407511 02317180
  2539. RSWVMU1 DS 0H @V407511 02317190
  2540. SWTCHVM OPT=UNLOCK SWITCH VMBLOK CHARGING @V4M0193 02317200
  2541. BR R7 RETURN TO CALLER @V4M0193 02317210
  2542. EJECT 02318000
  2543. * THE EXECUTE INSTRUCTION USED THE FOLLOWING INSTRUCTIONS 02319000
  2544. TRANSLAT TR 0(*-*,R4),0(R1) TRANSLATE TO UPPER CASE FOR CF @V305731 02320000
  2545. TROPUT TR 0(*-*,R2),0(R7) EXECUTED TRANSLATE OUTPUT @V305731 02321000
  2546. MOVEDATA MVC 0(*-*,R1),0(R4) MOVE DATA INTO BUFFER @V305731 02322000
  2547. MVCRT MVC BUFFER(*-*),0(R4) EXECUTED MOVE PF DATA @V305731 02324000
  2548. DATA MVC CONCCW4+4(*-*),0(R2) MOVE DATA INTO CONTASK @V305731 02325000
  2549. SPACE 1 02327000
  2550. * MESSAGE HANDLER INFORMATION 02328000
  2551. DS 0F @V305731 02329000
  2552. MSGHEAD DC C'RGA',X'00' SET UP HEADER FOR ERROR MESSAGE @V305731 02330000
  2553. MSGPARM DC X'B8C90000' PARM FIELD FOR BISYNC LINE MSG. @V305731 02331000
  2554. MSGPARM1 DC X'F8C90000' PARM FIELD FOR STATION MSG. @V305731 02332000
  2555. PFRJM DC C'* PFNN UNDEFINED',X'03' REJECT MESSAGE @V305731 02333000
  2556. RJL EQU *-PFRJM @V305731 02334000
  2557. CC3 DC C' CC=3' DATA FOR MSG 455 @VA13518 02334300
  2558. CMDRJ DC C' CMD REJECT' DATA FOR MSG 455 @VA13518 02334600
  2559. VM370 DC CL2'VM' CONSTANT FOR WRITING 'VM READ' @VA09707 02335100
  2560. SPACE 1 02336000
  2561. * STORAGE FOR DATA LINK CONTROL CHARACTERS 02337000
  2562. RGFEOT DC AL1(EOT) END OF TRANSMISSION CHARACTER @V305731 02338000
  2563. RGFNAK DC AL1(NAK) NEGATIVE RESPONSE CHARACTER @V305731 02339000
  2564. RGFENQ DC AL1(ENQ) INQUIRY CHARACTER @V305731 02340000
  2565. RGFSONL DC AL1(SOH,X'6C') HEADER FOR NON-TEXT MSG. (SOH %) @V305731 02341000
  2566. RGFWACK DC AL2(WACK) WAIT ACKNOWLEDGE CHARACTER @V305731 02342000
  2567. RGFRVI DC AL2(RVI) REVERSE INTERRUPT CHARACTER @V305731 02343000
  2568. RGFACK0 DC AL2(ACK0) POSITIVE ACKNOWLEDGE 0 CHARACTER @V305731 02344000
  2569. RGFACK1 DC AL2(ACK1) POSITIVE ACKNOWLEDGE 1 CHARACTER @V305731 02345000
  2570. RGFDLEOT DC AL1(DLE,EOT) BREAK SWITCHED CONNECTION @V346931 02345100
  2571. DLEOTLN EQU 2 LENGTH OF DLE EOT RESPONSE @V346931 02345200
  2572. SPACE 1 02346000
  2573. * TIME OF DAY CLOCK VALUES FOR STATUS AND GENERAL POLLING 02347000
  2574. DS 0D @V305731 02348000
  2575. TMRGPOLL DC X'0000000300000000' INTERVAL IN SECS FOR GPOLL @V305731 02349000
  2576. TMR60VAL DC X'0000003A00000000' 60 SECONDS TIMER FOR MORE @V305731 02350000
  2577. TMR03VAL DC X'0000000300000000' 3 SECS. TIMER FOR NOT ACPTED@V305731 02351000
  2578. SPACE 1 02352000
  2579. * CCWS FOR POLLING AND SELECTING REMOTE STATIONS 02353000
  2580. DS 0D @V305731 02354000
  2581. WRITSEL DC X'01',AL3(RGFEOT),AL1(SILI+CC,X'02'),AL2(1) @V305731 02355000
  2582. DC X'01',AL3(0),AL1(SILI+CC,X'03'),AL2(5) @V305731 02356000
  2583. DC X'02',AL3(0),AL1(SILI,X'05'),AL2(2) @V305731 02357000
  2584. SPACE 02358000
  2585. POLCCW DC X'01',AL3(RGFEOT),AL1(SILI+CC,X'02'),AL2(1) @V305731 02359000
  2586. DC X'09',AL3(0),AL1(SILI+CC,X'03'),AL2(7) @VA03474 02360100
  2587. DC X'03',AL3(0),AL1(SILI,X'07'),AL2(1) @V305731 02361000
  2588. ETBREAD DC X'02',AL3(0),AL1(SILI,X'0A'),AL2(BSCSIZE1) @VM03043 02362000
  2589. SPACE 02363000
  2590. SPACE 2 @V346931 02363050
  2591. * INITIAL BIDDING CCWS FOR SWITCHED LINE @V346931 02363100
  2592. BIDCCW DC X'01',AL3(RGFEOT),AL1(SILI+CC,X'02'),AL2(1) @V346931 02363150
  2593. DC X'01',AL3(RGFENQ),AL1(SILI+CC,X'03'),AL2(1) @V346931 02363200
  2594. DC X'02',AL3(0),AL1(SILI,X'05'),AL2(2) @V346931 02363250
  2595. THREECCW EQU (8*3) LENGTH OF THREE CCWS @VA05230 02363275
  2596. SPACE 1 @V346931 02363300
  2597. * SELECTION (PSUEDO POLLING) CCWS FOR SWITCHED LINE @V346931 02363350
  2598. S3275EOT DC X'01',AL3(RGFEOT),AL1(SILI+CC,X'02'),AL2(1) @V346931 02363400
  2599. DC X'02',AL3(0),AL1(SILI,X'0D'),AL2(2) @V346931 02363450
  2600. TWOCCW EQU (8*2) LENGTH OF TWO CCWS @V346931 02363500
  2601. SPACE 1 02363550
  2602. * READ CONTINUE CCW FOR SWITCHED LINE @V346931 02363600
  2603. SW3275RD DC X'01',AL3(RGFACK0),AL1(SILI+CC,X'09'),AL2(2) @V346931 02363650
  2604. DC X'02',AL3(0),AL1(SILI,X'0A'),AL2(BSCSIZE1) @V346931 02363700
  2605. SPACE 1 02363750
  2606. WRT77CCW DC X'01',AL3(0),AL1(SILI+CC,X'10'),AL2(0) @VA13944 02364100
  2607. READCCW1 DC X'02',AL3(0),AL1(SILI,X'0B'),AL2(2) @V305731 02365000
  2608. UNEPTCCW DC X'02',AL3(0),AL1(SILI+SKIP,X'08'),AL2(X'100') @VA13944 02366100
  2609. RESETEOT DC X'01',AL3(RGFEOT),AL1(SILI,X'09'),AL2(1) @V305731 02367000
  2610. * DISCONNECT STATION- DISABLE LINE CCWS FOR SWITCHED LINE @V346931 02367100
  2611. BKCONCCW DC X'01',AL3(RGFDLEOT),AL1(SILI,X'0E'),AL2(2) @V346931 02367200
  2612. DISABLE DC X'2F',AL3(0),AL1(SILI,X'00'),AL2(1) @V346931 02367300
  2613. SPACE 1 02367400
  2614. RSRVICCW DC X'01',AL3(RGFRVI),AL1(SILI+CC,X'06'),AL2(2) @V305731 02368000
  2615. RSNAKCCW DC X'01',AL3(RGFNAK),AL1(SILI+CC,X'06'),AL2(1) @V305731 02369000
  2616. RSENQCCW DC X'01',AL3(RGFENQ),AL1(SILI+CC,X'06'),AL2(1) @V305731 02370000
  2617. RSACKCCW DC X'01',AL3(RGFACK1),AL1(SILI+CC,X'06'),AL2(2) @V305731 02371000
  2618. TICCCW DC X'08',AL3(0),AL1(SILI,X'00'),AL2(1) @V305731 02372000
  2619. WIN77CCW DC X'01',AL3(0),AL1(SILI+CD,X'10'),AL2(WIN77DL+3) @VA13944 02373000
  2620. DC X'00',AL3(0),AL1(SILI+CC,X'10'),AL2(0) @VA13944 02374000
  2621. SPACE 1 02375000
  2622. * 3270 REMOTE DATA AND STATUS MESSAGES 02376000
  2623. COPY3277 DC AL1(X'7B',X'40') @VA08850 02377500
  2624. COPY77L EQU *-COPY3277 @V305731 02378000
  2625. SPACE 1 02379000
  2626. COPY3275 DC AL1(WCC8,SBA,X'40',X'40',IC) @V305731 02380000
  2627. COPY75L EQU *-COPY3275 @V305731 02381000
  2628. SPACE 1 02382000
  2629. WIN77D DC AL1(WCC6,SBA,X'5B',X'5F') @V305731 02383000
  2630. DC AL1(SF,ATTR7,IC,EUA,X'5D',X'6B') @V305731 02384000
  2631. DC AL1(SBA,X'5B',X'60') @V305731 02385000
  2632. WIN77DL EQU *-WIN77D @V305731 02386000
  2633. SPACE 02387000
  2634. HLD3277 DC AL1(WCC3,SBA,X'5D',X'6B',SF,ATTR2) @VA07171 02388100
  2635. HLDSTAT DC CL20'HOLDING' @V305731 02389000
  2636. HLD77L EQU *-HLD3277 @V305731 02390000
  2637. SPACE 02391000
  2638. MOR3277 DC AL1(WCC3,SBA,X'5D',X'6B',SF,ATTR2) @VA07171 02392100
  2639. MORSTAT DC CL20'MORE...' @V305731 02393000
  2640. MOR77L EQU *-MOR3277 @V305731 02394000
  2641. SPACE 02395000
  2642. NAC3277 DC AL1(WCC4,SBA,X'5D',X'6B',SF,ATTR2) @VA07171 02396100
  2643. NACSTAT DC CL20'NOT ACCEPTED' @V305731 02397000
  2644. NAC77L EQU *-NAC3277 @V305731 02398000
  2645. SPACE 02399000
  2646. CRD3277 DC AL1(WCC6,SBA,X'5B',X'5F') @V305731 02400000
  2647. DC AL1(SF,ATTR7,IC,RA,X'5D',X'6B',X'00') @V305731 02401000
  2648. DC AL1(SF,ATTR2) @V305731 02402000
  2649. DC CL20'RUNNING' @VA04374 02402500
  2650. CRD77L EQU *-CRD3277 @V305731 02403000
  2651. SPACE 02404000
  2652. RUN3277 DC AL1(WCC6,SBA,X'5B',X'5F',SF,ATTR7) @V305731 02405000
  2653. DC AL1(SBA,X'5D',X'6B',SF,ATTR2) @V305731 02406000
  2654. RUNSTAT DC CL20'RUNNING',AL1(ETX) @V305731 02407000
  2655. RUN77L EQU *-RUN3277 @V305731 02408000
  2656. SPACE 02409000
  2657. CPR3277 DC AL1(WCC6,SBA,X'5B',X'5F',SF,ATTR7) @V305731 02410000
  2658. DC AL1(SBA,X'5D',X'6B',SF,ATTR2) @V305731 02411000
  2659. DC CL20'CP READ' @V305731 02412000
  2660. CPR77L EQU *-CPR3277 @V305731 02413000
  2661. SPACE 02414000
  2662. VMREADS DC CL7'VM READ' @V305731 02415000
  2663. SPACE 1 02416000
  2664. CLR3277 DC AL1(WCC6,SBA,X'40',X'40') @V305731 02417000
  2665. DC AL1(RA,X'C7',X'5F',X'00') @VA08129 02418100
  2666. DC AL1(RA,X'4E',X'7F',X'00') @VA08129 02418200
  2667. DC AL1(RA,X'D6',X'5F',X'00') @VA08129 02418300
  2668. DC AL1(RA,X'5B',X'5F',X'00') @VA08129 02418400
  2669. DC AL1(SF,ATTR7,IC) @V305731 02419000
  2670. DC AL1(SBA,X'5D',X'6B',SF,ATTR2) @V305731 02420000
  2671. DC CL20'RUNNING' @V305731 02421000
  2672. CLR77L EQU *-CLR3277 @V305731 02422000
  2673. EJECT 02423000
  2674. SPACE 02424000
  2675. * RETURN INDEX VALUE FOR 3270 REMOTE SUPPORT 02425000
  2676. RTNNOCTL EQU X'00' RETURN TO GET NEXT CONTASK @V305731 02426000
  2677. RTNSRTRD EQU X'04' RETURN TO READ SECTION @V305731 02427000
  2678. RTNLGTST EQU X'08' RETURN TO LOGOFF USER @V305731 02428000
  2679. RTNRFCFM EQU X'0C' RETURN TO CONS. FUNCTION PROCESS @V305731 02429000
  2680. RTNSTMOR EQU X'10' RETURN TO MORE SECTION @V305731 02430000
  2681. RTNSETRJ EQU X'14' RETURN TO REJECT SECTION @V305731 02431000
  2682. RTNCPNAT EQU X'18' RETURN TO WRITE STATUS SECTION @V305731 02432000
  2683. RTNLOGOF EQU X'1C' RETURN TO LOGOFF USER SECTION @V305731 02433000
  2684. RTNBLDVM EQU X'20' RETURN TO BUILD VMBLOK SECTION @V305731 02434000
  2685. RTNFMTDN EQU X'24' RETURN TO FORMATS FINISH SECTION @V305731 02435000
  2686. RTNRETBF EQU X'28' RETURN TO WRITE COMPLETED SECTION@V305731 02436000
  2687. RTNRDEXT EQU X'2C' RETURN TO RELEASE READ BUFFER @V305731 02437000
  2688. RTNRVIRP EQU X'30' RETURN TO RVI RESPONSE SECTION @V305731 02438000
  2689. SPACE 1 02439000
  2690. * READ/WRITE OPERATION TYPES 02440000
  2691. IBBSELA EQU X'80' ADDRESSING/SELECTING A STATION @V305731 02441000
  2692. IBBWRITE EQU X'40' WRITE DATA TO A REMOTE STATION @V305731 02442000
  2693. IBBREAD EQU X'20' GENERAL POLLING OF STATIONS @V305731 02443000
  2694. IBBSPOLL EQU X'10' SPECIFIC POLLING TO A STATION @V305731 02444000
  2695. SPACE 1 02445000
  2696. * DATA-LINK CONTROL CHARACTERS FOR 3270 REMOTE SYSTEM 02446000
  2697. SOH EQU X'01' START OF HEADING @V305731 02447000
  2698. STX EQU X'02' START OF TEXT @V305731 02448000
  2699. ETX EQU X'03' END OF TEXT @V305731 02449000
  2700. DLE EQU X'10' DATA LINK ESCAPE @V346931 02449100
  2701. ETB EQU X'26' END OF BLOCK @V305731 02450000
  2702. ESC EQU X'27' ESCAPE @V305731 02451000
  2703. EOT EQU X'37' END OF TRANSMISSION @V305731 02452000
  2704. ENQ EQU X'2D' ENQUIRY @V305731 02453000
  2705. NAK EQU X'3D' NEGATIVE ACKNOWLEDGMENT @V305731 02454000
  2706. WACK EQU X'106B' WAIT BEFORE TRANSMIT @V305731 02455000
  2707. RVI EQU X'107C' REVERSE INTERRUPT @V305731 02456000
  2708. ACK0 EQU X'1070' EVEN ACKNOWLEDGE @V305731 02457000
  2709. ACK1 EQU X'1061' ODD ACKNOWLEDGE @V305731 02458000
  2710. SPACE 02459000
  2711. * 3270 REMOTE SYSTEM COMMAND CODES 02460000
  2712. WRTCMD EQU X'F1' WRITE COMMAND CODE @V305731 02461000
  2713. EWRTCMD EQU X'F5' ERASE/WRITE COMMAND CODE @V305731 02462000
  2714. COPYCMD EQU X'F7' COPY COMMAND CODE @V305731 02463000
  2715. SPACE 1 02464000
  2716. * 3270 DISPLAY STATION ORDERS 02465000
  2717. SF EQU X'1D' START OF FIELD CONTROL @V305731 02466000
  2718. SBA EQU X'11' SET BUFFER ADDRESS @V305731 02467000
  2719. IC EQU X'13' INSERT CURSOR @V305731 02468000
  2720. RA EQU X'3C' REPEAT TO ADDRESS (CHAR) @V305731 02469000
  2721. EUA EQU X'12' ERASE UNPROTECTED TO ADDRESS @V305731 02470000
  2722. SPACE 1 02471000
  2723. * 3270 WRITE CONTROL CHARACTERS 02472000
  2724. WCC3 EQU X'C2' RESTORE KEYBOARD @VA07171 02472400
  2725. WCC4 EQU X'C6' RESTORE KEYBOARD, ALARM @VA07171 02472800
  2726. WCC5 EQU X'C5' WRITE CONTROL CHAR TO SOUND ALARM@VM03116 02473000
  2727. WCC6 EQU X'C3' W.C.C. TO RESTORE KEYBOARD @VM03116 02474000
  2728. WCC56 EQU X'C7' W.C.C. TO SOUND ALARM & RES. KEY.@VM03116 02475000
  2729. WCC8 EQU X'F8' W.C.C. TO PRT FOR 80-CHAR LINE @VM03116 02476000
  2730. ATTR2 EQU X'60' PROTECTED ATTRIBUTE CHARACTER @VM03116 02477000
  2731. ATTR7 EQU X'C1' MODIFIED DATA TAG ATTRIBUTE CHAR @VM03116 02478000
  2732. ATTR457 EQU X'4D' PROTECTED, NONDISPLAY & MOD. DATA@VM03116 02479000
  2733. NOMC DC X'10' DON'T ALLOW MONITOR CALL @VA09459 02479500
  2734. SPACE 02480000
  2735. * TABLE OF 3270 FUNCTION KEYS WITH INDEX TO KEYTBLP 02481000
  2736. KEYTBL DC X'7D00' ENTER @V305731 02482000
  2737. DC X'6D04' CLEAR @V305731 02483000
  2738. DC X'6E18' PA2 (CNCL) @V305798 02484000
  2739. DC X'6C08' PA1 @V305731 02485000
  2740. DC X'6B0C' PA3 @V305731 02486000
  2741. DC X'E610' CARD READER @V305731 02487000
  2742. PFNDX DC X'F114' PF01 @V305731 02488000
  2743. DC X'F214' PF02 @V305731 02489000
  2744. DC X'F314' PF03 @V305731 02490000
  2745. DC X'F414' PF04 @V305731 02491000
  2746. DC X'F514' PF05 @V305731 02492000
  2747. PF6NDX DC X'F614' PF06 @V305731 02493000
  2748. DC X'F714' PF07 @V305731 02494000
  2749. DC X'F814' PF08 @V305731 02495000
  2750. DC X'F914' PF09 @V305731 02496000
  2751. DC X'7A14' PF10 @V305731 02497000
  2752. DC X'7B14' PF11 @V305731 02498000
  2753. DC X'7C14' PF12 @V305731 02499000
  2754. DC X'C114' PF13 HRC101DK 02499070
  2755. DC X'C214' PF14 HRC101DK 02499140
  2756. DC X'C314' PF15 HRC101DK 02499210
  2757. DC X'C414' PF16 HRC101DK 02499280
  2758. DC X'C514' PF17 HRC101DK 02499350
  2759. DC X'C614' PF18 HRC101DK 02499420
  2760. DC X'C714' PF19 HRC101DK 02499490
  2761. DC X'C814' PF20 HRC101DK 02499560
  2762. DC X'C914' PF21 HRC101DK 02499630
  2763. DC X'4A14' PF22 HRC101DK 02499700
  2764. DC X'4B14' PF23 HRC101DK 02499770
  2765. DC X'4C14' PF24 HRC101DK 02499840
  2766. KEYLENG EQU (*-KEYTBL)/2 @V305731 02500000
  2767. SPACE 02501000
  2768. KEYTBLP DC A(RGA3) 00 INPUT DATA INVALID @VA13123 02502000
  2769. DC A(CLRKEY) 04 @V305798 02503000
  2770. DC A(PA1KEY) 08 @V305731 02504000
  2771. DC A(PA3KEY) 0C @V305731 02505000
  2772. DC A(RGA3) 10 CARD READER INVALID @VA13123 02506000
  2773. DC A(PFKEY) 14 @V305731 02507000
  2774. DC A(CNCLKEY) 18 @V305798 02508000
  2775. DC A(TESTREQ) 1C @VA09168 02508500
  2776. SPACE 02509000
  2777. NDXRGFFN EQU X'00' PROCESS INPUT DATA @VA13123 02509100
  2778. NDXRGF02 EQU X'04' PROCESS DATA IN BUFFER @VA13123 02509200
  2779. NDXRGFCC EQU X'08' GO DETERMINE ENTRY KEY @VA13123 02509300
  2780. NDXRGFDC EQU X'0C' GO PROCESS INPUT DATA @VA13123 02509400
  2781. SPACE 1 @VA13123 02509500
  2782. * TABLE OF TAB POSITIONS FOR 3270 PF TAB CAPABILITY 02510000
  2783. SPACE 02511000
  2784. TABTBL DC X'5B5F' @V305731 02512000
  2785. TAB01 DC X'5B605B615BE25BE35BE45BE55BE65BE75BE8' @V305731 02513000
  2786. TAB10 DC X'5BE95B6A5B6B5B6C5B6D5B6E5B6F5BF05BF15BF2' @V305731 02514000
  2787. TAB20 DC X'5BF35BF45BF55BF65BF75BF85BF95B7A5B7B5B7C' @V305731 02515000
  2788. TAB30 DC X'5B7D5B7E5B7F5C405CC15CC25CC35CC45CC55CC6' @V305731 02516000
  2789. TAB40 DC X'5CC75CC85CC95C4A5C4B5C4C5C4D5C4E5C4F5C50' @V305731 02517000
  2790. TAB50 DC X'5CD15CD25CD35CD45CD55CD65CD75CD85CD95C5A' @V305731 02518000
  2791. TAB60 DC X'5C5B5C5C5C5D5C5E5C5F5C605C615CE25CE35CE4' @V305731 02519000
  2792. TAB70 DC X'5CE55CE65CE75CE85CE95C6A5C6B5C6C5C6D5C6E' @V305731 02520000
  2793. TAB80 DC X'5C6F5CF05CF15CF25CF35CF45CF55CF65CF75CF8' @V305731 02521000
  2794. TAB90 DC X'5CF95C7A5C7B5C7C5C7D5C7E5C7F5D405DC15DC2' @V305731 02522000
  2795. TAB100 DC X'5DC35DC45DC55DC65DC75DC85DC95D4A5D4B5D4C' @V305731 02523000
  2796. TAB110 DC X'5D4D5D4E5D4F5D505DD15DD25DD35DD45DD55DD6' @V305731 02524000
  2797. TAB120 DC X'5DD75DD85DD95D5A5D5B5D5C5D5D5D5E5D5F5D60' @V305731 02525000
  2798. TAB130 DC X'5D615DE25DE35DE45DE55DE65DE7' @V305731 02526000
  2799. TABLST DC X'5B60' END WRAPS TO BEGINNING @V305731 02527000
  2800. SPACE 1 02528000
  2801. * SENSE STATUS FOR THE 3270 REMOTE STATION 02529000
  2802. STATDC EQU X'04' DATA CHECK @V305731 02530000
  2803. STATCC EQU X'02' CONTROL CHECK (TIMEOUT) @V305731 02531000
  2804. STATOC EQU X'01' OPERATION CHECK @V305731 02532000
  2805. STATEC EQU X'08' EQUIPMENT CHECK @V305731 02533000
  2806. INVREQ EQU X'10' INTERVENTION REQUIRED FLAG @V305731 02534000
  2807. STATCR EQU X'20' COMMAND REJECT @V305731 02535000
  2808. STATDE EQU X'02' DEVICE END @V305731 02536000
  2809. STATTC EQU X'01' TRANSMISSION CHECK (ONLY 3275) @V305731 02537000
  2810. SPACE 02537100
  2811. * SETTINGS FOR IOBMISC2+2 @VA13518 02537200
  2812. SPACE 02537300
  2813. COMRJ EQU X'80' COMMAND REJECT IN SENSE DATA @VA13518 02537400
  2814. DISA EQU X'20' INDICATOR TO SET RDEVDISA @VA13518 02537500
  2815. NONE EQU X'00' @VA13518 02537600
  2816. SPACE 1 02538000
  2817. RGFINDEQ DC AL1(ENQ,X'05',EOT) ENQ, INDEX & EOT - POLL ENTRY@VA03474 02539100
  2818. SYNCP DC AL1(STX,ESC,WRTCMD) BISYNC HEADER @V305731 02540000
  2819. LENADDR EQU 4 LENGTH OF TERM ADDR CHARS @V346931 02540100
  2820. RESPLEN EQU 6 LENGTH OF REPLY TO ADDRESSING @V346931 02540200
  2821. HDRSW EQU 1 LENGTH OF SWITCHED HEADER @V346931 02540300
  2822. HDRNSW EQU 3 LENGTH OF NON-SWITCHED HEADER @V346931 02540400
  2823. FLAGLNS EQU 2 LENGTH OF FLAG AREA @V346931 02540500
  2824. EJECT 02544000
  2825. LTORG @V305731 02545000
  2826. EJECT 02546000
  2827. COPY NETWORK @V305731 02547000
  2828. EJECT 02548000
  2829. COPY BSCBLOKS @V305731 02549000
  2830. EJECT 02550000
  2831. COPY TIMER @V305731 02551000
  2832. SPACE 2 02552000
  2833. EJECT 02558000
  2834. COPY DEVTYPES @V305731 02559000
  2835. EJECT 02560000
  2836. COPY EQU @V305731 02561000
  2837. EJECT 02562000
  2838. COPY VBLOKS @V305731 02563000
  2839. EJECT 02564000
  2840. COPY RBLOKS @V305731 02565000
  2841. EJECT 02566000
  2842. COPY CONBUF @V305731 02567000
  2843. EJECT 02568000
  2844. COPY IOBLOKS @V305731 02569000
  2845. EJECT 02570000
  2846. COPY IOER @V305731 02571000
  2847. EJECT 02572000
  2848. COPY VMBLOK @V305731 02573000
  2849. EJECT 02574000
  2850. COPY SAVE @V305731 02575000
  2851. EJECT 02576000
  2852. PSA @V305731 02577000
  2853. EJECT 02578000
  2854. COPY XINTBLOK @V305798 02579000
  2855. EJECT 02580000
  2856. END 02581000