Table of Contents

DMKGRF Source

References

Source Listing

DMKGRF.ASSEMBLE.txt
  1. GRF TITLE 'DMKGRF (CP) VM/370 - RELEASE 6' 00001000
  2. ISEQ 73,80 VALIDATE INPUT SERIALIZATION @VM08590 00002000
  3. COPY OPTIONS @V200730 00003000
  4. COPY LOCAL @V200730 00004000
  5. EJECT 00005000
  6. DMKGRF CSECT @V200730 00006000
  7. *. 00007000
  8. * MODULE NAME - 00008000
  9. * 00009000
  10. * DMKGRF 00010000
  11. * 00011000
  12. * FUNCTION - 00012000
  13. * 00013000
  14. * TO PROVIDE SUPPORT FOR GRAPHIC DISPLAY DEVICES 00014000
  15. * THIS MODULE SUPPORTS THE LOCAL 3270 AND 3066 DEVICES 00015000
  16. * THE MODULE HANDLES INTERRUPTS AND CCW PROCESSING 00016000
  17. * FOR THE DEVICES INCLUDING MESSAGE HANDLING AND 00017000
  18. * SCREEN MANAGEMENT. 00018000
  19. * 00019000
  20. * ATTRIBUTES - 00020000
  21. * 00021000
  22. * RE-ENTERABLE, RESIDENT IF REAL MACHINE CONFIGURATION 00022000
  23. * INDICATES THAT 3270 OR 3066 DEVICES ARE AVAILABLE 00023000
  24. * 00024000
  25. * ENTRY POINTS - 00025000
  26. * 00026000
  27. * DMKGRFIN - TO HANDLE INTERUPT VIA IOBLOK 00027000
  28. * DMKGRFEN - TO ENABLE OR DISABLE DEVICE 00028000
  29. * DMKGRFIC - TO START CONTASK FROM DMKQCN 00029000
  30. * DMKGRFTI - PROCESS CLOCK COMPARATOR TIMER INTERRUPTS 00029500
  31. * 00030000
  32. * ENTRY CONDITIONS - 00031000
  33. * 00032000
  34. * R10 - ADDRESS OF IOBLOK 00033000
  35. * R12 - ADDRESS OF ENTRY POINT 00034000
  36. * 00035000
  37. * EXIT CONDITIONS - 00036000
  38. * 00037000
  39. * NORMAL RETURN IS TO DMKDSPCH AFTER STARTING ANY 00038000
  40. * QUEUED CONTASK REQUESTS FOR DEVICES AND PERFORMING 00039000
  41. * OTHER MESSAGE PROCESSING 00040000
  42. * 00041000
  43. * CALLS TO OTHER ROUTINES - 00042000
  44. * 00043000
  45. * DMKIOSQR - TO START IO ON DEVICES 00044000
  46. * DMKSCNRU - TO LOCATE REAL DEVICE BLOKS 00045000
  47. * DMKQCNCL - TO CLEAR CONTASK STACK AT LOGOUT 00046000
  48. * DMKCFMBK - TO ENTER CONSOLE FUNCTION MODE 00047000
  49. * DMKSTKCP - TO STACK CPEXBLOK 00048000
  50. * DMKSTKMP - TO STACK CPEXBLOKS FOR THE CURRENT PROCESSOR 00048100
  51. * DMKCNSED - TO EDIT AN INPUT LINE IF OPTION ON 00049000
  52. * DMKBLDVM - TO BUILD A VMBLOK FOR USER LOGON 00050000
  53. * DMKSCHRT - TO RESET A TIMER REQUEST 00051000
  54. * DMKSCHST - TO SET A TIMER REQUEST 00052000
  55. * DMKMSWR - TO WRITE AN ERROR MESSAGE 00053000
  56. * DMKSCNRD - TO GET REAL DEVICE ADDRESS 00054000
  57. * DMKQCNET - TO RETURN CONTASK AT COMPLETEION 00055000
  58. * DMKQCNTO - TO SLEEP USER AFTER GRAF ERROR 00056000
  59. * DMKIOERR - TO RECORD AN IO ERROR 00057000
  60. * DMKCFMEN - TO EXECUTE A CP CONSOLE FUNCTION 00058000
  61. * DMKCFMAT - TO POST AN ATTN INTERRUPT TO THE VM 00059000
  62. * DMKSCNVU - TO LOCATE THE VIRTUAL CONSOLE 00060000
  63. * DMKCPIEM - FOR EMERGENCY OPERATOR LOGON 00061000
  64. * DMKIOEST - TO CAUSE THE UPDATE OF STATISTICAL DATA COUNTERS 00061100
  65. * DMKLOKSW - SWITCH TO ANOTHER VMBLOK IF SYSTEM IS AP-MODE 00061200
  66. * DMKPTRAN - TO BRING IN THE TRANSLATE TABLE 00061300
  67. * DMKBOXMD - LIST OF LOGOS MDL 2, 3, 4, 2A HRC101DK 00061440
  68. * DMKGRTAB - TO BUILD DATA TO MOVE CURSOR AND PUT IN TAB CHAR 00061500
  69. * 00062000
  70. * EXTERNAL REFERENCES - 00063000
  71. * 00064000
  72. * DMKTBLUP - TRANLATE TO UPPER CASE TABLE 00065000
  73. * DMKTBMZI - APL 3270 COMPOUND CHARACTER TABLE 00065200
  74. * DMKTBMZO - APL 3270 COMPOUND CHARACTER TABLE 00065400
  75. * DMKTBMTI - TEXT 3270 COMPOUND CHARACTER TABLE 00065600
  76. * DMKTBMTO - TEXT 3270 COMPOUND CHARACTER TABLE 00065800
  77. * DMKRIOCN - SYSTEM CONSOLE ADDRESSES 00066000
  78. * DMKSYSNM - NUMBER OF USERS LOGGED ON 00067000
  79. * DMKGRTAI - TABLE OF ATTENTION IDENTIFICATION CODES 00067100
  80. * DMKGRTAC - COUNT OF ENTRIES IN DMKGRTAI HRC029DK 00067150
  81. * DMKGRTBL - TABLE OF 3270 STARTING BUFFER ADDRESSES 00067200
  82. * DMKGRTDS - DISPLAY OUTPUT AREA SIZES TABLE 00067300
  83. * DMKGRTFD - FORMAT DATA STREAM 00067400
  84. * DMKGRTFO - 'VM/370 ONLINE' DATA ADDRESS 00067500
  85. * DMKGRTIN - INPUT AREA COORDINATES TABLE 00067600
  86. * DMKGRTPF - START OF PF AID CODES IN DMKGRTAI TABLE 00067700
  87. * DMKGRTP6 - ADDRESS OF PF6 CODE IN DMKGRTAI TABLE 00067800
  88. * 00068000
  89. * TABLES AND WORK AREAS - 00069000
  90. * 00070000
  91. * TRQBLOK CONTROL BLOCK IS EXTENDED BY 1 DOUBLE WORD 00071000
  92. * TO CONTAIN EXTRA CONTROL DATA FOR THE DEVICES 00072000
  93. * THE BLOCK EXISTS FROM INITIAL ENABLE TO LOGOUT 00073000
  94. * 00074000
  95. * DMKGRTBL IS USED TO INDEX FOR THE SCREEN BUFFER ADDRESSES 00075000
  96. * 00076000
  97. * REGISTER USAGE - 00077000
  98. * 00078000
  99. * R5 - TRQBLOK ADDRESSING, INCLUDING EXTENSION 00079000
  100. * R6 - CONTASK BLOK ADDRESSING 00080000
  101. * R7 - CPEXBLOK ADDRESSING 00081000
  102. * R8 - RDEVBLOK ADDRESSING 00082000
  103. * R9 - EXTENDED BASE ADDRESSING 00082100
  104. * R10 - IOBLOK ADDRESSING 00083000
  105. * R11 - VMBLOK ADDRESSING 00084000
  106. * R12 - BASE ADDRESSING FOR MODULE 00085000
  107. * R13 - EXTENDED BASE ADDRESSING 00086000
  108. * OTHER REGISTERS USED FOR LINKAGE AND PARAMETERS 00087000
  109. * 00088000
  110. * NOTES - 00089000
  111. * 00090000
  112. * NONE 00091000
  113. * 00092000
  114. * OPERATION - 00093000
  115. * 00094000
  116. * EXECUTION FOR ALL ENTRIES MUST BE ON THE I/O PROCESSOR IF 00094100
  117. * THE SYSTEM IS IN AP-MODE. 00094200
  118. SPACE 00094300
  119. * CONTROL IS RECEIVED AT DMKGRFIN FROM DMKDSPCH 00095000
  120. * BY UNSTACKING AN IOBLOK. 00096000
  121. * CONTROL IS RECEIVED AT DMKGRFEN FROM DMKDSPCH 00097000
  122. * BY UNSTACKING A CPEXBLOK FROM DMKCPV 00098000
  123. * CONTROL IS RECEIVED AT DMKGRFIC FROM DMKDSPCH 00099000
  124. * BY UNSTACKING A CPEXBLOK FROM DMKQCN 00100000
  125. * 00101000
  126. * THE IOBLOK IS USED TO PERFORM THE PROCESSING OF ALL 00102000
  127. * IO REQUESTS TO THE DEVICE INCLUDING WRITES OF DATA, 00103000
  128. * READS OF INPUT DATA, AND THE WRITING OF STATUS WORDS. 00104000
  129. * 00105000
  130. * THE DIFFERENT PROCESSING ROUTINES ARE DETERMINED 00106000
  131. * BY THE AUXILIARY RETURN PROCESSING ADDRESS WHICH IS 00107000
  132. * SET IN THE TRQBLOK EXTENSION CALLED TRQBCRT. 00108000
  133. * 00109000
  134. * THE FOLLOWING SECTIONS STATE THE ACTION TAKEN FOR 00110000
  135. * VARIOUS DEVICE CONDITIONS. 00111000
  136. * 00112000
  137. * 1. ATTENTION INTERRUPT 00113000
  138. * GET A FREE STORAGE BLOCK FOR THE READ CCW AND A BUFFER 00114000
  139. * FOR THE READ DATA. CALL DMKIOS TO PERFORM A READ. 00115000
  140. * ANALYSE THE DATA UPON RETURN. 00116000
  141. * THE RETURN PROCESSING IS HANDLED BY RDMINT. 00117000
  142. * 00118000
  143. * 2. CE+DE INTERRUPT 00119000
  144. * PICKUP THE AUXILIARY PROCESSING ADDRESS AND CONTINUE. 00120000
  145. * THE PROCESSING ROUTINES FOR VARIOUS STATES ARE: 00121000
  146. * 00122000
  147. * CONRETBF - COMPLETION OF A WRITE CONTASK 00123000
  148. * RDMINT - COMPLETION OF A BUFFER READ 00124000
  149. * GRFCFM - TO EXECUTE CONSOLE FUNCTION 00125000
  150. * SETREJ - TO SET NOT ACCEPTED TIMER 00126000
  151. * SETMOR - TO SET MORE... TIMER DELAY 00127000
  152. * SETWNG - TO SET 10 SECOND CLEAR WARNING 00128000
  153. * RDEXIT _ TO CLEAR BUFFERS AFTER PF KEYS 00129000
  154. * STRTREAD - TO SET READ STATUS 00130000
  155. * NOCTL - TO PROCESS NEXT CONTASK OR GO IDLE 00131000
  156. * 00132000
  157. * 3. WRITE COMPLETE 00133000
  158. * FRET CONTASK AND BUFFERS. 00134000
  159. * SIGNOFF IF LOGOUT COMPLETE. 00135000
  160. * CONTINUE WITH NEXT CONTASK. 00136000
  161. * 00137000
  162. * 4. UNIT ERROR 00138000
  163. * RETRY OPERATION 10 TIMES. 00139000
  164. * LOGOUT USER AFTER RETRY FAILS. 00140000
  165. * 00141000
  166. * 5. CNCL (PA2) KEY, CLEAR KEY 00142000
  167. * FRET READ BUFFERS. 00143000
  168. * RESET ANY TIMER REQUESTS. 00144000
  169. * IF CLEAR KEY,SET ERASE/WRITE ALTERNATE FLAG 00144100
  170. * CLEAR OUTPUT SCREEN AREA. 00145000
  171. * CONTINUE WITH NEXT CONTASK. 00146000
  172. * 00147000
  173. * 6. PA1 KEY 00148000
  174. * CANCEL FUNCTION BY RETURN CODE 4 0R 8. 00149000
  175. * CLEAR SCREEN 00150000
  176. * CLEAR THE STACK OF CONTASKS. 00151000
  177. * 00152000
  178. * 6A. PF KEYS 00153000
  179. * GET THE USERS FUNCTION TABLE VMPFUNC 00154000
  180. * GET AND VERIFY THE EXISTENCE OF A FUNCTION 00155000
  181. * WRITE UNDEFINED MESSAGE IF NOT FOUND 00156000
  182. * WRITE FUNCTION DATA IF FOUND AND DELAYED 00157000
  183. * PROCESS DATA IF IMMEDIATE 00158000
  184. * CALL DMKGRTAB TO BUILD TAB DATA IF PF KEY IS TAB 00158100
  185. * SET RETURN TO FRET BUFFERS AT WRITE COMPLETE 00159000
  186. * 00160000
  187. * 6B. COPY COMMAND 00161000
  188. * CHECK FOR DEFAULT AND SEARCH FOR VALID 00162000
  189. * 3270 PRINTER 00163000
  190. * CHECK IF PRINTER BUSY 00164000
  191. * READ BUFFER FROM DISPLAY 00165000
  192. * WRITE BUFFER TO PRINTER 00166000
  193. * 00167000
  194. * 7. READ RETURN, ENTER KEY 00168000
  195. * ANALYSE DATA IN BUFFER TO GET LENGTH. 00169000
  196. * IF DATA ENTERED FROM READ STATE CONT AT RDATA. 00170000
  197. * IF ENTERED FROM RUNNING PROCESS BY ENVIR SETTING. 00171000
  198. * NULL DATA GIVES ATTN TO VM, OR ENTER CP MODE. 00172000
  199. * 00173000
  200. * DATA ENTERED GOES TO VM OR EXECUTES CONSOLE FUNCTION. 00174000
  201. * DATA ENTERED IS RE-DISPLAYED UNLESS PRIVATE. 00175000
  202. * DATA THAT IS ALREADY PENDING CAUSES 'NOT ACCEPTED'. 00176000
  203. * IF VIRT DATA IS #CP EXECUTE FUNCTION. 00177000
  204. * RDATA ENTRY FOR RESPONSE TO READ REQUEST PASSES 00178000
  205. * BUFFER DATA BACK TO CALLER WITH LENGTH INDICATION. 00179000
  206. * 00180000
  207. * 8. TIMER INTERRUPT 00181000
  208. * REBUILD IOBLOK AND RESTORE STATUS IF NOT ACCEPTED. 00182000
  209. * CLEAR OUTPUT AREA , CONTINUE TO NEXT CONTASK IF MORE. 00183000
  210. * 00184000
  211. * 9. BLDCCWS 00185000
  212. * ENTERED TO BUILD CCWS FOR A WRITE OR A READ CONTASK. 00186000
  213. * READ CONTASK CONTINUES AT STRTREAD. 00187000
  214. * WRITE CONTASK CHECKS FOR SCREEN FULL. 00188000
  215. * SCREEN FULL CAUSES A 'MORE...' STATUS. 00189000
  216. * 00190000
  217. *. 00191000
  218. EJECT 00192000
  219. SPACE 00193000
  220. USING PSA,R0 @V200730 00194000
  221. USING TRQBLOK,R5 @V200730 00195000
  222. USING CONTASK,R6 @V200730 00196000
  223. USING CPEXBLOK,R7 @V200730 00197000
  224. USING RDEVBLOK,R8 @V200730 00198000
  225. USING IOBLOK,R10 @V200730 00199000
  226. USING VMBLOK,R11 @V200730 00200000
  227. SPACE 00201000
  228. SPACE 00202000
  229. EXTRN DMKIOSQR,DMKSCNRU,DMKQCNCL,DMKCFMBK @V200730 00203000
  230. EXTRN DMKSTKCP,DMKCNSED,DMKSTKIO @V200730 00204000
  231. EXTRN DMKBLDVM,DMKRIOCN,DMKCPIEM,DMKSYSNM @V200730 00205000
  232. EXTRN DMKSCHRT,DMKSCHST,DMKCVTBD @V200730 00206000
  233. EXTRN DMKMSWR,DMKIOERR,DMKSCNRD,DMKCVTAB @V60A6B6 00207000
  234. EXTRN DMKQCNET,DMKQCNTO @V200830 00208000
  235. EXTRN DMKIOEST @VA03757 00208100
  236. EXTRN HDKD8CEN Issue READ PARTITION QRYHRC072DK 00208150
  237. EXTRN DMKGRTCL,DMKGRTCF HRC073DK 00208250
  238. EXTRN DMKCFMEN,DMKCFMAT,DMKSCNVU @V200730 00209000
  239. EXTRN DMKCVTBH,DMKCVTHB,DMKTBLUP,DMKCVTDB @V305798 00210000
  240. EXTRN DMKTBLGL,DMKTBMZI,DMKTBMZO @VA08002 00211050
  241. EXTRN DMKTBMTI,DMKTBMTO @V387398 00211100
  242. EXTRN DMKPTRAN,DMKSTKMP,DMKQCNWT @V407508 00211300
  243. EXTRN DMKGRTAB,DMKGRTAI,DMKGRTBL @V60A6B6 00211600
  244. EXTRN DMKGRTAC HRC029DK 00211650
  245. EXTRN DMKBOXMD HRC101DK 00211720
  246. EXTRN DMKGRTDS,DMKGRTFD,DMKGRTFO HRC101DK 00211740
  247. EXTRN DMKGRTIN,DMKGRTPF,DMKGRTP6 @V60A6B6 00211800
  248. EXTRN DMKGRTBF TABLE OF LAST CHARACTERS HRC310DK 00211850
  249. SPACE 2 00211900
  250. ENTRY DMKGRFIN,DMKGRFEN,DMKGRFIC,DMKGRFTI HRC101DK 00212490
  251. EJECT 00213000
  252. USING *,R12 @V200730 00214000
  253. DMKGRFIN DS 0H ENTRY FOR I/O INTERRUPTS @V200730 00215000
  254. L R9,MODBAS1 LOAD 3RD REG FOR ADDRESSABILITY @V407508 00215100
  255. LM R12,R13,MODBASE @V200730 00216000
  256. USING DMKGRF,R12,R13,R9 ESTABLISH ADDRESSABILITY @V407508 00217100
  257. SPACE 00218000
  258. SWITCH CONTINUE PROCESSING ON MAIN PROC @V407508 00218100
  259. TM IOBRADD,X'80' Is this a LDEV? HRC065DK 00218200
  260. BO LDEV000 Yes HRC065DK 00218300
  261. LH R1,IOBRADD ADDRESS OF INTERRUPTING DEVICE @V200730 00219000
  262. CALL DMKSCNRU LOCATE ALL REAL DEVICE BLOCKS @V200730 00220000
  263. B LDEV010 Skip over LDF support HRC065DK 00220100
  264. * 00220150
  265. LDEV000 EQU * HRC065DK 00220200
  266. L R8,INSTWRD1 -> LDEVCTL HRC065DK 00220250
  267. USING LDEVCTL,R8 HRC065DK 00220300
  268. ICM R1,3,IOBRADD Get LDEV number HRC065DK 00220350
  269. N R1,F4095 Keep only the LDEV num HRC065DK 00220400
  270. SLL R1,2 Make into LDEV slot idx HRC065DK 00220450
  271. L R8,LDEVIDX(R1) -> LDEVBLOK for LDEV HRC065DK 00220500
  272. USING RDEVBLOK,R8 Pseudo-RDEVBLOK for LDEVHRC065DK 00220550
  273. * begins at offset 0, HRC065DK 00220600
  274. * e.g., -> R8 HRC065DK 00220650
  275. LDEV010 EQU * HRC065DK 00220700
  276. CLI RDEVTYPE,TYP3066 IS IT A 3066 ?? @V200730 00221000
  277. BE GRFGO YES, CONT @V200730 00222000
  278. TM RDEVTYPE,TYP3277+TYP3278 3270 DISPLAY ?? @V60A6B6 00223000
  279. BNZ GRFGO YES, CONT @V60A6B6 00224000
  280. CLI RDEVTYPE,TYP3284 IS IT 3270 PRINTER ? @V305798 00225000
  281. BNE FRETIOB NO, IGNORE @V305798 00226000
  282. GRFGO L R6,RDEVCON GET CONTASK ADDRESS @V200730 00227000
  283. BAL R3,BLDTRQ BUILD A TIMER REQUEST BLOK @V200830 00228000
  284. TM RDEVFLAG,RDEVHIO INTERUPT FROM HIO @VA08085 00228300
  285. BO TESTHIO1 YES @VA08085 00228600
  286. TM IOBSPEC,IOBUNSL UNSOLICITED INTERRUPT? @VA13071 00228700
  287. BO TESTCSW YES, CONTINUE TESTING @VA13071 00228800
  288. CL R10,IOBLINK IS THIS THE FINAL INTERRUPT? @VA13071 00228900
  289. BNE TESTCSW NO, CONTINUE TESTING @VA13071 00229000
  290. TM TRQBFLG3,TRQBLOGP IS LOGOFF PENDING SET? @VA13071 00229100
  291. BO CONLOGOF YES, LOG USER OFF NOW @VA13071 00229200
  292. TESTCSW TM IOBSTAT,X'03' CC = 0 ?? @VA13071 00229300
  293. BNZ UNITER NO, CONSIDER A UNIT ERROR @V200730 00230000
  294. TM IOBCSW+5,CDC CHECK FOR CHANNEL DATA CHECK @VA03757 00230100
  295. BO CDCSETUP YES, HANDLE IT @VA03757 00230200
  296. TM IOBCSW+5,PRGC+PRTC+CHC+CCC+IFCC+CDC ANY @V200730 00231000
  297. BNZ CHANER YES - TROUBLED SYSTEM HERE. @V200730 00232000
  298. TM IOBCSW+4,UC+UE DEVICE ERRORS ?? @V200730 00233000
  299. BNZ UNITER YES - TROUBLE WITH DEVICE @V200730 00234000
  300. XC IOBRCNT,IOBRCNT ZERO OUT I/O ERROR COUNTER @V200730 00235000
  301. TM RDEVTFLG,RDEVCPNA NOT ACCEPTED ? @VA07690 00235100
  302. BNO OKCONT NO CONTINUE @VA07690 00235200
  303. L R4,RDEVAIOB GET ACTIVE IOBLOK @VA07690 00235300
  304. LTR R4,R4 IS THERE ONE ? @VA07690 00235400
  305. BNZ RELIOBLK YES GET RID OF THIS ONE @VA07690 00235500
  306. OKCONT EQU * @VA07690 00235600
  307. CLI IOBCSW+4,CE+DE CLEAN CE AND DE ?? @V200730 00238000
  308. BE RETPROC YES, DO RETURN PROCESSING @V200730 00239000
  309. TM IOBCSW+4,DE IS THIS A WRITE END ?? @V200730 00240000
  310. BO DEINT YES, MIGHT BE @V200730 00241000
  311. TM IOBCSW+4,ATTN OPERATOR RAPPING ON US @VA09948 00241100
  312. BNZ ATTNINT YES, SEE WHAT HE WANTS @VA09948 00241200
  313. B IDLEIOB1 NO, IGNORE AND WAIT FOR DE HRC101DK 00242490
  314. RETPROC EQU * @VA02040 00243000
  315. TM IOBSPEC,IOBUNSL UNSOL. INT.? @VA02040 00244000
  316. BNZ IDLEIOB GET RID OF THE IOB @VA02040 00245000
  317. L R1,TRQBCRT GET RETURN ADDRESS @VA02040 00246000
  318. BR R1 COMPLETE PROCESSING @V200730 00247000
  319. EJECT 00248000
  320. * HERE WHEN OUTPUT LINE FINISHED 00249000
  321. * UPDATE NEXT LINE CO-ORDINATE 00250000
  322. * FRET CONTASK COMPLETED, GET AND START NEXT ONE 00251000
  323. SPACE 00252000
  324. CONRETBF SR R2,R2 CLEAR RETURN CODE @V200830 00253000
  325. BAL R3,SETRETN SET RETURN CODE @V200830 00254000
  326. TM TRQBFLAG,CRTSIO WAS DIAGNOSE ISSUE TO INPUT AREA@VM03094 00255000
  327. BO LINBYPAS YES, BYPASS UPDATING COORDINATE @VM03094 00256000
  328. IC R2,RDEVCORD GET CURRENT LINE POSN @V200830 00257000
  329. SR R3,R3 CLEAR FOR IC @V200830 00258000
  330. IC R3,CONCCW1+5 GET NUMBER OF LINES WRITTEN @V200830 00259000
  331. ALR R2,R3 NEW LINE POSN @V200830 00260000
  332. STC R2,RDEVCORD SET NEXT LINE POSN @V200830 00261000
  333. LINBYPAS EQU * .... @VM03094 00262000
  334. NI TRQBFLAG,X'FF'-CRTSIO RESET DIAG TO INPUT FLAG @V60A6B6 00263000
  335. LOGTST TM CONPARM,LOGDROP+LOGHOLD LOGOUT MESSAGE ?? @V200830 00264000
  336. BNZ CONCLR YES, CLEAR REMAINING @V200830 00265000
  337. BAL R3,CONRET RETURN CONTASK TO QCN @V200830 00266000
  338. TM RDEVGRIC,GRAPHAT SHOULD WE GET AN ATTN? HRC101DK 00266300
  339. BO ATTNINT1 YUP - GOT SET IT UP HRC101DK 00266600
  340. B NOCTL CHECK FOR MORE TO DO @V200830 00267000
  341. CALLBRK TM CONPARM,LOGDROP+LOGHOLD LOGOUT TIME ? @VA04772 00267050
  342. BNZ CONCLR IF YES - FRET ALL CONTASKS @VA04772 00267100
  343. CL R10,IOBLINK IS THIS A COPIED BLOK @VA04772 00267150
  344. BNE RELIOBLK YES - RELEASE IT @VA04772 00267200
  345. CALL DMKCFMBK PUT USER IN CONSOLE FUNCTION MODE@VA04772 00267250
  346. B NOTCTL CHECK FOR MORE QUEUED REQUESTS @V407508 00267400
  347. CONCLR CALL DMKQCNCL CLEAR CONTASK STACK @V200830 00268000
  348. B SIGNOFF GET OUT @V200730 00269000
  349. SPACE 00270000
  350. DEINT TM RDEVTFLG,RDEVCTL RETURN FROM WRITE ?? 00271000
  351. BO WRTPROC YES, GO PROCESS 00272000
  352. OI TRQBFLAG,CRTUSEWA DO AN E/W OR E/W ALTERNATE @V60A6B6 00272100
  353. DISCUSR DS 0H HRC103DK 00272500
  354. L R1,ASYSVM SYSTEM VMBLOK ADDRESS 00273000
  355. CL R1,IOBUSER USER LOGGED ON YET ?? 00274000
  356. BNE CONLOGOF YES, FORCE A DISC FOR SECURITY HRC103DK 00275090
  357. TM IOBSPEC,IOBUNSL ? HRC103DK 00275180
  358. BO ONEIOBLK HRC103DK 00275270
  359. TM RDEVFLAG,RDEVACTV IS THERE ACTIVE I/O? HRC103DK 00275360
  360. BNZ IDLEIOB YES, THERE MUST BE MORE HRC103DK 00275450
  361. ONEIOBLK DS 0H HRC103DK 00275540
  362. NI TRQBFLAG,X'FF'-CRTFMT SCREEN NOT FORMATTED 00276000
  363. B LOGUSER GO LOGON A USER 00277000
  364. WRTPROC TM IOBSPEC,IOBUNSL UNSIL. INTERRUPT? @VA03472 00278000
  365. BZ TESTHIO NO, GO TEST FOR HIO REQUEST @VM03150 00279000
  366. CLI RDEVTYPE,TYP3284 IS THIS A PRINTER @VM03150 00280000
  367. BNE DISCUSR YES, THEN DISCONNECT THE USER HRC103DK 00281490
  368. B FRETIOB RELEASE IOBLOK @VM03150 00282000
  369. TESTHIO EQU * TEST FOR HIO REQUEST @VM03150 00283000
  370. TM RDEVFLAG,RDEVHIO INTERRUPT FROM HIO? @VA03675 00284000
  371. BZ GOPROCSS NO @VA04245 00285000
  372. TESTHIO1 EQU * @VA08085 00285200
  373. NI RDEVFLAG,X'FF'-RDEVHIO YES - TURN OFF FLAG @VA04245 00285500
  374. B SIGNOFF GO CLEAN UP AND EXIT @VA04245 00286000
  375. GOPROCSS L R1,TRQBCRT RETURN PROCESSING ADDR @VA04245 00286500
  376. BR R1 GO DO IT 00287000
  377. SPACE 00288000
  378. CHANER EQU * @VA13071 00289100
  379. TM IOBSPEC,IOBUNSL UNSOLICITED INTERRUPT? @VA13071 00289200
  380. BZ CONLOGOF NO, LOGOFF USER NOW @VA13071 00289300
  381. TM RDEVFLAG,RDEVACTV IS THERE ACTIVE I/O? @VA13071 00289400
  382. BZ CONLOGOF NO, LOGOFF USER NOW; ELSE WAIT @VA13071 00289500
  383. * UNTIL ACTIVE I/O COMPLETES 00289600
  384. OI TRQBFLG3,TRQBLOGP SET LOGOFF PENDING FLAG @VA13071 00289700
  385. B RELIOBLK RELEASE IOBLOK AND EXIT @VA13071 00289800
  386. EJECT 00290000
  387. UNITER L R1,IOBIOER GET POINTER TO IOERBLOK @VA14749 00291000
  388. USING IOERBLOK,R1 @V200730 00292000
  389. SLR R4,R4 CLEAR @V200730 00293000
  390. IC R4,IOBRCNT+1 LOAD VALUE IN ERROR COUNTER @V200730 00294000
  391. LA R4,1(,R4) INCREMENT BY 1 @V200730 00295000
  392. STC R4,IOBRCNT+1 STORE IT BACK @V200730 00296000
  393. CLI RDEVTYPE,TYP3284 IS THIS A 3270 PRINTER @VM03094 00297000
  394. BNE BYPPRT NO, BYPASS PRINTER COUNTER @VM03094 00298000
  395. CLI IOBRCNT+1,3 HAVE RETRY COUNT BEEN EXCEEDED @VM03094 00299000
  396. BH FATALIO YES, RELEASE BUFFER STORAGE @VM03094 00300000
  397. BYPPRT EQU * HANDLE ERROR FROM DISPLAY 00301000
  398. CLI IOBRCNT+1,10 HAVE WE EXCEEDED RETRY COUNT @V200730 00302000
  399. BH FATALIO YES - LOG OFF THIS USER @V200730 00303000
  400. TM IOBSTAT,X'03' CC=0 @VA03757 00303100
  401. BNZ GOFRET NO @VA03757 00303200
  402. CLI IOBRCNT+1,X'01' IS IT THE FIRST ERROR ?? @VA03757 00303300
  403. BNE GOFRET NO @VA03757 00303400
  404. BAL R3,SDRSETUP GO SET UP FOR COUNTER ROUTINE @VA03757 00303500
  405. GOFRET EQU * @VA03757 00303600
  406. CLI IOBRCNT+1,1 FIRST ERROR? HRC103DK 00303640
  407. BNE GOFRET1 NO, CONTINUE NORMALLY HRC103DK 00303680
  408. QRYERR01 DS 0H HRC103DK 00303720
  409. BAL R3,FRETIOER HRC103DK 00303760
  410. NI IOBSTAT,X'FF'-IOBFATAL CLEAR THE ERROR FLAG HRC103DK 00303800
  411. NI IOBSPEC,X'FF'-IOBSENS CLEAR THE SENSE FLAG HRC103DK 00303840
  412. B BLD77FMT GO SET A LOGO HRC103DK 00303880
  413. GOFRET1 EQU * HRC103DK 00303920
  414. BAL R3,FRETIOER FRET IOERBLOK @VA01632 00304000
  415. TSTCAW L R1,IOBCAW GET CCW ADDRESS IF ANY @V200730 00305000
  416. LTR R1,R1 IS THIS IOBLOK AN ACTIVE ONE ? @V200730 00306000
  417. BZ IDLEIOB IF NOT - FRET IT AND EXIT. @V200730 00307000
  418. B CALLIOS RETRY THE OPERATION. @V200730 00308000
  419. SPACE 00309000
  420. FATALIO EQU * HERE ON FATAL I/O ERROR CONDITION@V200730 00310000
  421. L R1,IOBCAW GET ADDRESS OF BUFFER @VM03094 00311000
  422. L R4,20(,R1) GET ADDRESS OF DISPLAY RDEVBLOK @V407508 00312100
  423. TM IOBSPEC,IOBCOPY WAS THIS A COPY REQUEST @VM03094 00313000
  424. BZ COPYBYP NO, DON'T FRET BUFFER @VM03094 00314000
  425. L R0,IOBMISC2 GET SIZE OF THE COPY BUFFER @V60A6B6 00315000
  426. CALL DMKFRET RELEASE STORAGE FOR BUFFER @VM03094 00316000
  427. NI IOBSPEC,X'FF'-IOBCOPY CLEAR COPY FLAG @VM03094 00317000
  428. COPYBYP EQU * ... @VM03094 00318000
  429. L R1,IOBIOER GET POINTER TO IOERBLOK @VM03094 00319000
  430. LTR R1,R1 ANY IOERBLOK ? @VM03152 00320000
  431. BZ FORCEOFF NO, LOGOUT USER @VM03152 00321000
  432. TM IOERDATA,INTREQ INTERVENTION REQUIRE ? @VM03152 00322000
  433. BNO BYPASS01 NO, CONTINUE @VA03757 00323000
  434. SETBALR EQU * @VA03757 00323050
  435. LA R3,FORCEOFF YES, SET UP FOR RETURN @VA03757 00323100
  436. B SDRSETUP GO SET UP FOR COUNTER ROUTINE @VA03757 00323150
  437. CDCSETUP EQU * @VA03757 00323200
  438. ICM R1,15,IOBIOER GET IOERBLOK ADDRESS @VA03757 00323250
  439. BZ FORCEOFF NO IOERBLOK, LOGOUT USER @VA03757 00323300
  440. MVI IOERNUM,20 SET UP FOR ERROR MSG @VA03757 00323350
  441. B SETUPMSG GO SEND IT @VA03757 00323400
  442. BYPASS01 EQU * @VA03757 00323450
  443. CLI RDEVTYPE,TYP3284 IS THIS A PRINTER @VM03244 00324000
  444. BE BYSYSOP YES, DON'T CHECK FOR SYSTEM @VM03244 00325000
  445. TM VMOSTAT,VMSYSOP IS THIS SYSTEM OPERATOR ? @VM03152 00326000
  446. BO OPSRECD YES, DON'T SEND ERROR MESSAGE @VM03152 00327000
  447. BYSYSOP EQU * WRITE MESSAGE TO OPERATOR @VM03244 00328000
  448. SLR R2,R2 CLEAR WORK REGISTER @VM03152 00329000
  449. ICM R2,B'1000',IOERDATA PICK UP FIRST SENSE BYTE @VM03152 00330000
  450. BZ FORCEOFF IF ZERO, BYPASS SENDING MESSAGE @VM03152 00331000
  451. SLR R3,R3 CLEAR @V200730 00332000
  452. SPACE 00333000
  453. SNSLOOP LTR R2,R2 TEST FOR HI-ORDER BIT @V200730 00334000
  454. BM SNSFOUND BRANCH IF ON . @V200730 00335000
  455. SLL R2,1 SHIFT 1 TO LEFT @V200730 00336000
  456. LA R3,1(,R3) INCREMENT MESSAGE NUMBER BY 1 @V200730 00337000
  457. B SNSLOOP KEEP LOOKING FOR THAT SENSE BIT @V200730 00338000
  458. EJECT 00339000
  459. SNSFOUND IC R2,MSGNUM(R3) GET MESSAGE NUMBER INDEX @V200730 00340000
  460. STC R2,IOERNUM STORE IN IOERBLOK FOR DMKMSW @V200730 00341000
  461. SETUPMSG EQU * @VA03757 00341100
  462. ST R1,RDEVIOER DMKMSW NEEDS POINTER IN RDEVBLOK @V200730 00342000
  463. ICM R0,B'1110',=C'GRF' MODULE IDENTIFER @VM03152 00343000
  464. CALL DMKMSWR,AFFINITY CALL MESSAGE WRITER TO PRINT @V407508 00344050
  465. TM IOERCSW+5,CDC IS IT A CHANNEL DATA CHECK ?? @VA03757 00344100
  466. BO SETBALR YES, GO SET UP FOR RETURN @VA03757 00344200
  467. OPSRECD EQU * CALL ERROR RECORDER @VM03152 00345000
  468. OI IOBSTAT,IOBFATAL SET PERMANENT ERROR FLAG @VM03152 00346000
  469. XC RDEVIOER,RDEVIOER CLEAR IOERBLOK POINTER @VM03152 00347000
  470. CALL DMKIOERR,AFFINITY CALL ERROR RECORDER TO RECORD @V407508 00348100
  471. NI IOBSTAT,X'FF'-IOBFATAL CLEAR FATAL FLAG @VM03152 00349000
  472. FORCEOFF EQU * FORCE USER OFF SYSTEM @VM03152 00350000
  473. TM IOBSPEC,IOBSENS WAS THE SENSE COMMAND ISSUED @VM03244 00351000
  474. BO FRETSEN YES, SEND MESSAGE TO USER @VM03244 00352000
  475. CLI RDEVTYPE,TYP3284 IS THIS A PRINTER @VM03152 00353000
  476. BNE CONLOGOF NO, LOG USER OFF SYSTEM @VM03152 00354000
  477. TM IOBSPEC,IOBUNSL UNSOL. INTERRUPT @VM03202 00355000
  478. BO SIGNOFF YES, GO RESET USER @VM03202 00356000
  479. FRETSEN EQU * SEND MESSAGE TO USER @VM03244 00357000
  480. NI IOBSPEC,X'FF'-IOBSENS CLEAR SENSE FLAG @VM03244 00358000
  481. BAL R3,RSTTMR RESET TIMER REQUEST @VA08898 00358500
  482. BAL R3,FRETTRQ RELEASE TRQBLOK @VM03152 00359000
  483. MVI RDEVTFLG,X'00' CLEAR FLAG FIELD @VM03152 00360000
  484. MVI IOBRCNT+1,X'00' CLEAR RETRY COUNT @VM03152 00361000
  485. LR R8,R4 GET RDEVBLOK ADDRESS FOR DISPLAY @V407508 00362100
  486. BAL R3,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V407508 00363100
  487. BAL R3,BLDTRQ GET TRQBLOK FOR DISPLAY @VM03152 00364000
  488. OI RDEVTFLG,RDEVCPNA+RDEVCTL NOT ACCEPTED & CTL @VM03152 00365000
  489. LA R1,SETREJ GET RETURN ADDRESS @VM03152 00366000
  490. ST R1,TRQBCRT SAVE RETURN ADDRESS @VM03152 00367000
  491. B BLD77NAC GO WRITE NOT ACCEPTED MSG @VM03152 00368000
  492. SPACE 00369000
  493. CONLOGOF DS 0H HRC103DK 00370190
  494. TM IOBCSW+5,PRGC PROGRAM CHECK HRC103DK 00370380
  495. BO QRYERR01 GO CLEANUP AND EXIT HRC103DK 00370570
  496. CALL DMKQCNCL CANCEL EVERYTHING ON CONSOLE HRC103DK 00370760
  497. TM VMRSTAT,VMLOGOFF IS THIS USER IN PROCESS OF @V200730 00371000
  498. BNZ SIGNOFF YES - @V200730 00372000
  499. CL R11,ASYSVM IS IOBLOK USER = SYSTEM @V200730 00373000
  500. BE SIGNOFF YES - FORGET IT @V200730 00374000
  501. TM RDEVSTA2,RDEVDROP USER WILL BE LOGOFF? @VA05110 00374300
  502. BO SIGNOFF YES--PREVENT DOUBLE FRET VMBLOK @VA05110 00374600
  503. CALL DMKQCNTO,AFFINITY PUT USER TO SLEEP @V407508 00375100
  504. SPACE 00376000
  505. SIGNOFF EQU * HRC001DK 00377090
  506. ICM R1,15,VMHRCALL RECALL LAST LINE HRC001DK 00377180
  507. BZ DCCSGNOF NOBODY HOME ? - VANILLA HRC001DK 00377270
  508. LA R0,(130*3+8)/8 SIZE OF RECALL BUFFER HRC001DK 00377360
  509. CALL DMKFRET RELEASE BUFFER HRC001DK 00377450
  510. XC VMHRCALL,VMHRCALL CLEAR POINTER HRC001DK 00377540
  511. CLI CPUID,X'FF' IS THIS A VIRTUAL MACHINE HRC029DK 00377543
  512. BNE CHKDISAG NO CONTINUE HRC029DK 00377546
  513. TM VMSVSTAT,VMLGHOLD WAS THIS A HOLD ? HRC029DK 00377549
  514. BO CHKDISAG YES, CONTINUE HRC029DK 00377552
  515. NI VMSVSTAT,X'FF'-VMLGHOLD CLEAR FLAG HRC029DK 00377555
  516. STM R0,R6,TEMPSAVE SAVE REGS TO BE USED HRC029DK 00377558
  517. LA R0,4 4 DOUBLE WORDS OF STOR HRC029DK 00377561
  518. CALL DMKFREE GO GET IT HRC029DK 00377564
  519. LR R3,R1 ADDRESS OF BUFFER HRC029DK 00377567
  520. CALL DMKSCNRD GET REAL ADDRESS HRC029DK 00377570
  521. CALL DMKCVTBH CONVERT TO HEX HRC029DK 00377573
  522. MVC 0(9,R3),=C'RESET CUU' FORMAT COMMAND HRC029DK 00377576
  523. STCM R1,B'0111',6(R3) ADD UNIT ADDRESS HRC029DK 00377579
  524. LA R4,16(R3) ADDRESS OF RESPONSE HRC029DK 00377582
  525. LA R5,9 LENGTH OF COMMAND HRC029DK 00377585
  526. LA R6,12 LENGTH OF RESPONSE HRC029DK 00377588
  527. ICM R5,B'1000',=X'40' TELL CP TO RETURN RESPONSE HRC029DK 00377591
  528. DC X'83350008' GO DO IT HRC029DK 00377594
  529. LR R1,R3 ADDRESS OF BUFFER HRC029DK 00377597
  530. LA R0,4 NUMBER OF DWORDS HRC029DK 00377600
  531. CALL DMKFRET RETURN STORAGE HRC029DK 00377603
  532. LM R0,R6,TEMPSAVE RESTORE REGS HRC029DK 00377606
  533. CHKDISAG EQU * HRC029DK 00377609
  534. DCCSGNOF EQU * HRC001DK 00377630
  535. L R1,ASYSVM GET ADDRESS OF SYSTEM'S VMBLOK HRC001DK 00377720
  536. ST R1,RDEVUSER THIS DEVICE NOW BELONGS TO SYSTEM@V200730 00378000
  537. MVI IOBRCNT+1,0 ZERO OUT RETRY COUNTER @V200730 00379000
  538. BAL R3,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V407508 00380100
  539. MVI RDEVTFLG,X'00' RESET TERMINAL FLAGS @V200830 00381000
  540. NI RDEVSTA2,255-RDEVDROP TRUN OFF THE LOGDROP FLAG @VA05110 00381500
  541. NI RDEVTMCD,255-RDEVAPLP-RDEVTEXT TRAN OFF @V387398 00382200
  542. BAL R3,FRETTRQ RELEASE TRQBLOK @VM03152 00383000
  543. TM RDEVFLAG,RDEVDISB DEVICE DISABLED ?? @V200730 00384000
  544. BZ FRETIOB NO, LEAVE DEVICE IDLE @V200730 00385000
  545. NI RDEVFLAG,X'FF'-RDEVENAB-RDEVDISB DEV DISABLED @V200730 00386000
  546. B FRETIOB NOW RELEASE THIS IOBLOK @V200730 00387000
  547. DROP R1 @V200730 00388000
  548. SDRSETUP EQU * @VA03757 00388010
  549. LTR R10,R10 IS THERE AN IOBLOK ? @VA05739 00388013
  550. BZR R3 NO, GET OUT @VA05739 00388016
  551. LTR R1,R1 IS THERE AN IOERBLOK? @VA07242 00388021
  552. BZR R3 NO RETURN @VA05873 00388026
  553. LR R2,R1 LOAD ADDRESS OF IOERBLOK @VA07242 00388031
  554. USING IOERBLOK,R2 SET ADDRESSABILITY @VA07242 00388032
  555. NI IOERFLG3,X'FF'-IOERREAD RESET FLAG @VA03757 00388040
  556. ST R2,RDEVIOER COUNTER UPDATE NEEDS THIS PTR @VA07242 00388051
  557. TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00388060
  558. BNZ DEVDEP YES,GO TO DEVICE DEPENDENT RTN @V60A6B6 00388070
  559. L R1,IOERCSW PICK UP CCW ADDRESS PLUS 8 @VA07242 00388081
  560. LA R1,0(,R1) CLEAR HI-ORDER BIT @VA07242 00388091
  561. S R1,F8 GET CCW ADDRESS @VA07242 00388101
  562. BM BYPASS02 NO CCW @VA03757 00388110
  563. TM 0(R1),X'01' IS IT A WRITE OR CONTROL CCW? @VA07242 00388121
  564. BO BYPASS02 YES, DONT TURN ON READ FLAG @VA03757 00388130
  565. TM 0(R1),X'02' IS IT A READ OP? @VA07242 00388141
  566. BZ BYPASS02 NO, FORGET READ FLAG @VA03757 00388150
  567. OI IOERFLG3,IOERREAD TURN ON READ FLAG FOR SDR @VA03757 00388160
  568. BYPASS02 SLR R1,R1 CLEAR PARMETER REG, FOR 3066 @VA03757 00388170
  569. SPACE 1 00388180
  570. GOCOUNT EQU * @VA03757 00388190
  571. CALL DMKIOEST,AFFINITY GOTO STATISTICAL CNTR UPDATE @V407508 00388205
  572. XC RDEVIOER,RDEVIOER CLEAR IOERBLOK POINTER @VA03757 00388210
  573. LTR R1,R1 WAS A PARAMETER LIST PASSED ?? @VA03757 00388220
  574. BZ NOPARM NO, MUST HAVE BEEN 3066 @VA03757 00388230
  575. LA R0,PARMLEN GET PARM LIST LENGTH @VA03757 00388240
  576. CALL DMKFRET RELEASE STORAGE USED BY PARM LIST@VA03757 00388250
  577. NOPARM BR R3 RETURN @VA03757 00388260
  578. SPACE 2 00388270
  579. DEVDEP EQU * @VA03757 00388280
  580. LA R0,PARMLEN GET LENGTH OF PARM LIST @VA03757 00388290
  581. CALL DMKFREE GET STORAGE FOR PARM LIST @VA03757 00388300
  582. SPACE 1 00388310
  583. MVC 0(16,R1),PARM3277 GET READY TO PASS PARM LIST @VA03757 00388320
  584. TM IOERDATA,US+DC UNIT SPECIFY & DATA CHECK @VA03757 00388330
  585. BNO TESTCT13 NO, CHECK NEXT COUNTER @VA03757 00388340
  586. MVI 11(R1),X'2F' TURN ON DEVICE DEPENDENT COUNTER @VA03757 00388350
  587. TESTCT13 TM IOERDATA,US+IR UNIT SPECIFY & INTERVENTION REQ @VA03757 00388360
  588. BNO TESTCT14 NO, CHECK NEXT COUNTER @VA03757 00388370
  589. MVI 12(R1),X'2F' TURN ON DEVICE DEPENDENT COUNTER @VA03757 00388380
  590. TESTCT14 TM IOERDATA,US+IR+EC UNIT SPECIFY & INTERVENTION @VA03757 00388390
  591. * REQUIRED & EQUIPMENT CHECK 00388400
  592. BNO TESTCT15 NO, CHECK NEXT COUNTER @VA03757 00388410
  593. MVI 13(R1),X'2F' TURN ON DEVICE DEPENDENT COUNTER @VA03757 00388420
  594. TESTCT15 TM IOERDATA,US+EC UNIT SPECIFY & EQUIPMENT CHECK @VA03757 00388430
  595. BNO GOCOUNT GO TO COUNTER UPDATE ROUTINE @VA03757 00388440
  596. MVI 14(R1),X'2F' TURN ON DEVICE DEPENDENT COUNTER @VA03757 00388450
  597. B GOCOUNT GO TO COUNTER UPDATE ROUTINE @VA03757 00388460
  598. DROP R2 DROP ADDRESSABILITY TO IOERBLOK @VA07242 00388471
  599. SPACE 00389000
  600. EJECT 00390000
  601. USING DMKGRFEN,R12 @V200830 00391000
  602. DMKGRFEN DS 0H @V200830 00392000
  603. L R9,MODBAS1 LOAD 3RD REG FOR ADDRESSABILITY @V407508 00392100
  604. LM R12,R13,MODBASE SET MODULE BASE REGS @V200830 00393000
  605. USING DMKGRF,R12,R13,R9 ESTABLISH ADDRESSABILITY @V407508 00394100
  606. TM RDEVFLAG,RDEVACTV I/O IN PROGRESS ? @VA01983 00395000
  607. BO GRFEXIT YES, SKIP IT @V200830 00396000
  608. L R1,RDEVUSER GET ADDR OF VMBLOK FOR NEW USER @V407508 00397100
  609. SWTCHVM SWITCH TO NEW VMBLOK @V407508 00398100
  610. SWITCH CONTINUE PROCESSING ON I/O PROC @V407508 00399100
  611. BAL R3,BLDIOB BUILD AN IOBLOK @V200830 00400000
  612. BAL R3,BLDTRQ BUILD A TIMER REQUEST BLOK @V200830 00401000
  613. B LOGUSER GO TRY TO LOGON A USER @V200830 00402000
  614. SPACE 2 00403000
  615. USING DMKGRFIC,R12 @V200830 00404000
  616. DMKGRFIC DS 0H @V200830 00405000
  617. L R9,MODBAS1 LOAD 3RD REG FOR ADDRESSABILITY @V407508 00405100
  618. LM R12,R13,MODBASE SET MODULE BASE REGS @V200830 00406000
  619. USING DMKGRF,R12,R13,R9 ESTABLISH ADDRESSABILITY @V407508 00407100
  620. L R6,RDEVCON GET CONTASK STACK @V200830 00408000
  621. LTR R6,R6 ARE THERE ANY ?? @V200830 00409000
  622. BNP GRFEXIT NO, STRANGE .... BUT CONT @V200830 00410000
  623. TM RDEVFLAG,RDEVACTV IS THERE AN ACTIVE IOBLOK ? @VM08871 00411000
  624. BO GRFEXIT YES - JUST EXIT NOW @VM08871 00412000
  625. SWITCH CONTINUE PROCESSING ON I/O PROC @V407508 00412100
  626. L R10,RDEVAIOB ACTIVE IOBLOK POINTER @VA03036 00413000
  627. LTR R10,R10 IS THERE ONE ALREADY? @VA03036 00414000
  628. BNZ GRFEXIT YES--EXIT NOW @VA03036 00415000
  629. BAL R3,BLDIOB BUILD AN IOBLOK @V200830 00416000
  630. BAL R3,BLDTRQ BUILD A TIMER REQUEST BLOK @V200830 00417000
  631. B BLDCCWS GO START CONTASK @V200830 00418000
  632. EJECT 00418025
  633. * 00418050
  634. * CLOCK COMPARATOR INTERRUPTS ARE PROCESSED HERE 00418075
  635. * 00418100
  636. SPACE 2 00418125
  637. USING DMKGRFTI,R12 ADDRESSABILITY @VA04772 00418150
  638. DMKGRFTI DS 0H HERE WHEN TIMER EXPIRES @VA04772 00418175
  639. L R9,MODBAS1 LOAD 3RD REG FOR ADDRESSABILITY @V407508 00418180
  640. LM R12,R13,MODBASE @VA04772 00418200
  641. USING DMKGRF,R12,R13,R9 ESTABLISH ADDRESSABILITY @V407508 00418210
  642. SWITCH CONTINUE PROCESSING ON I/O PROC @V407508 00418220
  643. TM TRQBDEV-TRQBLOK(R10),X'80' Is this an LDEV? HRC065DK 00418230
  644. BO LDEV100 Yes HRC065DK 00418235
  645. LH R1,TRQBDEV-TRQBLOK(R10) GET GRAF DEV ADDRESS @VA04772 00418250
  646. CALL DMKSCNRU LOCATE READ DEVICE CONTROL BLOKS @VA04772 00418275
  647. B LDEV110 Skip over LDF support HRC065DK 00418278
  648. LDEV100 EQU * HRC065DK 00418280
  649. L R8,INSTWRD1 -> LDEVCTL HRC065DK 00418282
  650. USING LDEVCTL,R8 HRC065DK 00418284
  651. ICM R1,3,TRQBDEV-TRQBLOK(R10) Get LDEV number HRC065DK 00418286
  652. N R1,F4095 Keep only the LDEV num HRC065DK 00418288
  653. SLL R1,2 Make into LDEV slot idx HRC065DK 00418290
  654. L R8,LDEVIDX(R1) -> LDEVBLOK for LDEV HRC065DK 00418292
  655. USING RDEVBLOK,R8 Pseudo-RDEVBLOK for LDEVHRC065DK 00418294
  656. LDEV110 EQU * HRC065DK 00418296
  657. NI RDEVTFLG,X'FF'-RDEVTRQ RESET TIMER PENDING @VA04772 00418300
  658. L R5,RDEVAIRA GET ADDRESS OF TRQBLOK @VA04772 00418325
  659. L R6,RDEVCON GET POINTER TO NEXT CONTASK @VA04772 00418350
  660. TM RDEVFLAG,RDEVACTV IS THERE IO ACTIVE? @VA04433 00418352
  661. BNO CONTINUE IF NOT, PROCEED NORMALLY @VA04433 00418354
  662. OI TRQBFLAG,CRTAIO FLAG FOR LATER TIMER INTERRUPT @VA04433 00418356
  663. MVC TMRVALUE,=X'0000000100000000' @VA04433 00418358
  664. B SETINT RESET INTERRUPT FOR LATER @VA04433 00418360
  665. * PROCESSING 00418362
  666. CONTINUE EQU * @VA04433 00418364
  667. BAL R3,BLDIOB BUILD AN IOBLOK @VA04772 00418375
  668. TM RDEVTFLG,RDEVCPNA NOT ACCEPTED TIME INT ?? @VA04772 00418400
  669. BO CPNATMR YES, HANDLE THAT @VA04772 00418425
  670. TM TRQBFLAG,CRTWNG 10 SECOND WARNING END ?? @VA04772 00418450
  671. BO GRFCLR YES, CLEAR SCREEN @VA04772 00418475
  672. OI TRQBFLAG,CRTWNG SET 10 SECOND WARNING @VA04772 00418500
  673. OI RDEVTFLG,RDEVCTL TERM IN CTL MODE @VA04772 00418525
  674. LA R1,SETWNG RETURN PROCESSING @VA04772 00418550
  675. ST R1,TRQBCRT SET RETURN @VA04772 00418575
  676. TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00418600
  677. BNZ BLD77WNG 3270 WARNING @V60A6B6 00418625
  678. B BLD66WNG 3066 WARNING @VA04772 00418650
  679. SPACE 1 00418675
  680. MODBASE DC A(DMKGRF,DMKGRF+4096) @VA04772 00418700
  681. MODBAS1 DC A(DMKGRF+8192) VALUE FOR 3RD BASE REGISTER @V407508 00418750
  682. EJECT 00419000
  683. ATTNINT1 NI RDEVGRIC,255-GRAPHAT TURN ATTN FLAG OFF HRC101DK 00419300
  684. NI RDEVTFLG,255-RDEVCTL TURN OFF CNTRL FLAG HRC101DK 00419600
  685. ATTNINT TM RDEVTFLG,RDEVCPNA+RDEVCTL NOT ACCEP OR CONTROL @V200730 00420000
  686. BNZ RELIOBLK YES,FRET THIS IOBLOK AND EXIT @VA09463 00421000
  687. TM RDEVSTA3,RDEVATSW ARE WE STILL IN RECONN? @VA10462 00421400
  688. BO RELIOBLK YES....BRANCH @VA10462 00421800
  689. L R1,ASYSVM GET SYSTEM VMBLOK ADDRESS @V200730 00422000
  690. CL R1,IOBUSER UNSOL. INTERRUPT ? @V200730 00423000
  691. BE LOGUSER YES - GO LOG ON USER @V200730 00424000
  692. TM RDEVSTAT,RDEVSCED+RDEVBUSY I/O SCHEDULED OR .00424001
  693. ACTIVE FOR THIS DEVICE @VA09930 00424003
  694. BNZ RELIOBLK YES, IGNORE THIS INTERRUPT @VA09930 00424005
  695. TM RDEVTFLG,RDEVMORE+RDEVHOLD MORE OR HOLDING @VA08015 00424021
  696. * STATUS? 00424041
  697. BNZ CTLACTV YES, DON'T FRET IOB @VA08015 00424061
  698. TM RDEVFLAG,RDEVACTV IS THERE AN ACTIVE IOBLOK? @VA05730 00424100
  699. BO RELIOBLK YES-FRET THIS IOBLOK & EXIT. @VA05730 00424200
  700. CTLACTV EQU * @VA07047 00425100
  701. TM RDEVSTA3,RDEVFULL In DIAG58 full screen? HRC062DK 00425110
  702. BO PASSATTN Yes pass attn to v.m. HRC061DK 00425120
  703. OI RDEVTFLG,RDEVCTL CRT NOW IN CTRL MODE @VA07047 00425200
  704. LA R0,6 SIZE FOR READ CCWS @V200730 00426000
  705. CALL DMKFREE GET STOREAGE @V200730 00427000
  706. ST R1,IOBCAW SET CCW ADDRESS @V200730 00428000
  707. LA R0,BUFSIZE READ BUFFER SIZE @V200730 00429000
  708. CLI RDEVTYPE,TYP3066 IS THIS A 3066 DEVICE @VM03043 00430000
  709. BE BYSIZE YES, BYPASS DOUBLING SIZES @VM03043 00431000
  710. LA R0,2*BUFSIZE DOUBLE SIZE OF READ BUFFER @VM03043 00432000
  711. OI TRQBFLAG,CRTAPL SET APL BUFFER ALLOCATED FLAG @VM03043 00433000
  712. BYSIZE EQU * GET STORAGE FOR READ BUFFER @VM03043 00434000
  713. CALL DMKFREE GET STORAGE @V200730 00435000
  714. ST R1,IOBMISC SAVE ADDRESS @V200730 00436000
  715. XC 0(BUFINLTH+6,R1),0(R1) CLEAR BUFFER @V200730 00437000
  716. CLI RDEVTYPE,TYP3066 IS THIS A 3066 DEVICE @VM03043 00438000
  717. BE BYCLEAR YES, BYPASS SECOND CLEAR @VM03043 00439000
  718. XC BUFNORM(BUFAPL-BUFNORM,R1),BUFNORM(R1) CLEAR @VM03043 00440000
  719. BYCLEAR EQU * READ DATA FROM DISPLAY @VM03043 00441000
  720. LA R1,RDMINT SPECIAL RETURN ADDRESS @V200730 00442000
  721. ST R1,TRQBCRT SET RETURN PROCESSING @V200730 00443000
  722. TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00444000
  723. BNZ BLD77RMI 3270 READ @V60A6B6 00445000
  724. B BLD66RMI 3066 READ @V200730 00446000
  725. SPACE 00447000
  726. USING BUFFER,R3 @V200730 00448000
  727. CNCLKEY BAL R3,FRETRD FRET BUFFERS @V407508 00449100
  728. TM RDEVTMCD,RDEVAPLP APL ON ? @V305798 00450000
  729. BZ CNCLDE NO, CONT @V305798 00451000
  730. TM VMQSTAT,VMPA2APL IS PA2 FLAG ON ? @VM03116 00452000
  731. BZ CNCLDE NO, CONTINUE NORMAL PROCESSING @VM03094 00453000
  732. TM RDEVTFLG,RDEVHOLD+RDEVMORE IS THIS MORE/HOLD @VM03094 00454000
  733. BNZ XINCONT YES, REFLECT EXTERNAL INTERRUPT @VM03094 00455000
  734. TM RDEVTFLG,RDEVREAD IS READ STATUS INDICATED @VM03094 00456000
  735. BZ CNCLDE NO, JUST CLEAR DISPLAY SCREEN @VM03094 00457000
  736. L R3,RDEVCON GET READ CONTASK POINTER @VM03094 00458000
  737. TM CONPARM-CONTASK(R3),VMGENIO IS THIS VM READ @VM03094 00459000
  738. BZ CNCLDE NO, BYPASS REFLECTING INTERRUPT @VM03094 00460000
  739. XINCONT EQU * REFLECT EXTERNAL INTERRUPT @VM03094 00461000
  740. SLR R3,R3 CLEAR INDEX REGISTER @VM03094 00462000
  741. STM R5,R6,TEMPSAVE SAVE REGISTERS @VM03094 00463000
  742. L R4,=X'00400040' EXTERNAL INTERRUPT KEY @VM03094 00464000
  743. LA R2,VMPXINT START OF EXT INT BLOCKS @V305798 00465000
  744. USING XINTBLOK,R2 @V305798 00466000
  745. XINTLOOP LR R6,R2 @V305798 00467000
  746. L R2,XINTNEXT-XINTBLOK(,R6) NEXT ? @V305798 00468000
  747. LTR R2,R2 TEST IT @V305798 00469000
  748. BZ XINTADD NOPE, ADD END OF CHAIN @V305798 00470000
  749. C R3,XINTSORT CHECK FOR COLLATING SEQ @V305798 00471000
  750. BH XINTLOOP KEEP LOOKING... @V305798 00472000
  751. BL XINTADD THIS EES THE PLACE @V305798 00473000
  752. O R4,XINTCODE MUST BE INDICATED TOGETHER @V305798 00474000
  753. ST R4,XINTCODE OR ONE AT A TIME @V305798 00475000
  754. B XINTEXIT GET OUT @V305798 00476000
  755. XINTADD EQU * @V305798 00477000
  756. LA R0,XINTSIZE NO. OF DOUBLE WORDS @V305798 00478000
  757. CALL DMKFREE @V305798 00479000
  758. ST R1,XINTNEXT-XINTBLOK(,R6) @V305798 00480000
  759. SLR R5,R5 PARM IS MEANINGLESS HERE @V305798 00481000
  760. STM R2,R5,XINTNEXT-XINTBLOK(R1) BUILD NEW INTRPT BLK@V305798 00482000
  761. XINTEXIT EQU * RESTORE REGISTERS @V305798 00483000
  762. LM R5,R6,TEMPSAVE RESTORE BASE REGS @V305798 00484000
  763. DROP R2 DROP BASE REGISTER @V305798 00485000
  764. CNCLDE BAL R3,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V407508 00486100
  765. TM RDEVTFLG,RDEVRUN+RDEVMORE IN RUN OR MORE @V200730 00487000
  766. BZ CNCLREAD NO - CHECK FOR READ STATE @V200730 00488000
  767. GRFCLR LA R1,NOCTL RETURN PROCESSING @V200730 00489000
  768. ST R1,TRQBCRT SET RETURN PROCESSING @V200730 00490000
  769. GRFCLRT EQU * @VA08898 00491100
  770. BAL R3,RSTTMR RESET TIMER REQUEST @VA08898 00491300
  771. MVI RDEVTFLG,RDEVRUN+RDEVCTL RUN & CNTRL @VA08898 00491500
  772. MVC RDEVCORD,ZEROES NEXT LINE AT TOP OF SCREEN @V200730 00492000
  773. NI TRQBFLAG,X'FF'-CRTDIAG-CRTALRM-CRTWNG RESET @V200730 00493000
  774. TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00494000
  775. BNZ BLD77CLR 3270 CLEAR SCREEN @V60A6B6 00495000
  776. B BLD66CLR 3066 CLEAR SCREEN @V200730 00496000
  777. CLD58FUL EQU * HRC058DK 00496100
  778. NI RDEVSTA3,255-RDEVFULL Exit full screen mode HRC062DK 00496110
  779. OI TRQBFLAG,CRTUSEWA USE ERASE/WRITE CCW HRC058DK 00496120
  780. B GRFCLR AND GO BUILD DISPLAY HRC058DK 00496130
  781. CLD58PA1 EQU * HRC058DK 00496140
  782. NI RDEVSTA3,255-RDEVFULL Exit full screen mode HRC062DK 00496150
  783. OI TRQBFLAG,CRTUSEWA USE ERASE/WRITE CCW HRC058DK 00496160
  784. LA R1,PA1KEY58 SET RETURN ADDR AFTER CLRHRC058DK 00496170
  785. ST R1,TRQBCRT SET IT IN TRQB HRC058DK 00496180
  786. B GRFCLRT AND GO BUILD CP DISPLAY HRC058DK 00496190
  787. SPACE 00497000
  788. CNCLREAD TM RDEVTFLG,RDEVREAD IS USER CANCELING A READ @V200730 00498000
  789. BZ CNCLHOLD NO, CANCEL FROM HOLDING STATE @V200730 00499000
  790. LA R1,STRTREAD RETURN PROCESSING @V200730 00500000
  791. ST R1,TRQBCRT SET RETURN @V200730 00501000
  792. B GRFCLRT CLEAR SCREEN @V200730 00502000
  793. SPACE 00503000
  794. CNCLHOLD LA R2,4 SINGLE ATTN RETURN CODE @V200730 00504000
  795. TM VMMLEVEL,VMMCPENV CP ENVIRONMENT ?? @V200730 00505000
  796. BZ CLRTST NO, TEST DEVICE TYPE @V200730 00506000
  797. LA R2,8 DOUBLE ATTN RETURN CODE @V200730 00507000
  798. B PA1CNCL HANDLE AS PA1 CANCEL FUNCTION @V200730 00508000
  799. CLRTST TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00509000
  800. BNZ GRFCLR YES, CLEAR SCREEN ONLY @V60A6B6 00510000
  801. PA1CNCL BAL R3,SETRETN SET RETURN CODE @VM08599 00511000
  802. LA R1,LOGTST RETURN ADDRESS @VM08599 00512000
  803. ST R1,TRQBCRT SET IT IN TIMER BLOK @VM08599 00513000
  804. B GRFCLRT NOW CLEAR SCREEN. @VM08599 00514000
  805. SPACE 2 00515000
  806. CLRKEY EQU * @V305798 00516000
  807. OI TRQBFLAG,CRTUSEWA INDICATE E/WA OP-CODE NEEDED @V60A6B6 00517000
  808. BAL R3,FRETRD FRET BUFFERS @V407508 00517100
  809. BAL R3,RSTTMR RESET ANY ACTIVE TIMER REQUESTS @VA08689 00518010
  810. TM RDEVTFLG,RDEVREAD IS USER CANCELING A READ? @VA08689 00518020
  811. BZ GRFCLR NO... BACK TO MAINLINE @VA08689 00518030
  812. LA R1,STRTREAD SET UP RETURN ADDRESS @VA08689 00518040
  813. ST R1,TRQBCRT AND STUFF IT IN TRQBCRT @VA08689 00518050
  814. B GRFCLRT BACK TO MAINLINE @VA08689 00518060
  815. EJECT 00519000
  816. PA1KEY BAL R3,FRETRD FRET BUFFERS @V407508 00520100
  817. TM RDEVSTA3,RDEVFULL In DIAG58 full screen? HRC062DK 00520110
  818. BO CLD58PA1 YES, RESET DISPLAY FIRST HRC058DK 00520120
  819. * HRC058DK 00520130
  820. PA1KEY58 EQU * HRC058DK 00520140
  821. TM RDEVTFLG,RDEVRUN RUNNING ?? @V200730 00521000
  822. BO CFMBK YES, GO TO CP MODE @V200730 00522000
  823. TM RDEVTFLG,RDEVMORE+RDEVHOLD MORE OR HOLD ?? @V200730 00523000
  824. BZ PA1READ NO, MUST BE READ @V200730 00524000
  825. BAL R3,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V407508 00525100
  826. LA R2,8 DOUBLE ATTENTION RETURN CODE @VA04772 00526250
  827. LA R1,LOGTST SET UP RETURN ADDRESS @VA04772 00526500
  828. ST R1,TRQBCRT SAVE IT FOR LATER @VA04772 00526750
  829. TM CONPARM,VMGENIO WAS OUTPUT FROM VIRTUAL SIO @VA04772 00527000
  830. BO SETBRK YES - CONDITION FOR CP BREAK @VA04772 00527250
  831. BAL R3,SETRETN SET UP RETURN CODE @VA04772 00527500
  832. B GRFCLRT NOW GO CLEAR THE SCREEN @VA04772 00527750
  833. SETBRK LA R1,CALLBRK RETURN ADDRESS FOR BREAK @VA04772 00528000
  834. ST R1,TRQBCRT SET UP CRT IRA @VA04772 00528250
  835. B GRFCLRT NOW CLEAR THE SCREEN @VA04772 00528500
  836. SPACE 00531000
  837. PA1READ LA R2,8 SET 2 ATTN RETURN @V200830 00532000
  838. LA R3,0 ZERO DATA ENTERED @V200730 00533000
  839. B RDRTN RETURN STATUS @V200730 00534000
  840. SPACE 00535000
  841. PA3KEY EQU * @V60A6B6 00536100
  842. L R1,=A(DMKGRTP6) HANDLE AS IF PF KEY 6 HIT. @V60A6B6 00536200
  843. PFKEY S R1,=A(DMKGRTPF) ADJUST TO KEY INDEX NUMBER @V60A6B6 00536300
  844. SLL R1,2 TIMES 4 FOR INDEX @V200730 00538000
  845. L R2,VMPFUNC GET USER FUNCTION TABLE @V200730 00539000
  846. LTR R2,R2 ANY DEFINED ?? @V200730 00540000
  847. BZ PFREJ NO, REJECT FUNCTION @V200730 00541000
  848. LA R2,0(R1,R2) INDEX FOR FUNCTION @V200730 00542000
  849. L R4,4(R2) GET PF DATA ADDRESS @V200730 00543000
  850. LTR R4,R4 ANY DATA DEFINED ?? @V200730 00544000
  851. BZ PFREJ NO, REJECT FUNCTION @V200730 00545000
  852. CLC 0(4,R4),=CL4'TAB ' IS IT THE TAB FUNCTION ?? @V200730 00546000
  853. BE PFTAB YES, DO IT @V200730 00547000
  854. CLC 0(4,R4),=CL4'COPY' IS IT COPY FUNCTION ? @V305798 00548000
  855. BNE PFSIZ NO, GET PF FUNCTION @V305798 00549000
  856. LH R1,2(,R2) SET PF SIZE @V305798 00550000
  857. CLI 4(R4),X'40' IS THIS A BLANK ? @V305798 00551000
  858. BE *+12 YES, CHECK LENGTH @V305798 00552000
  859. C R1,F4 JUST COPY SPECIFIED ? @V305798 00553000
  860. BNE PFSIZ NO, RE-DISPLAY DATA @V305798 00554000
  861. C R1,F8 LENGTH OF EIGHT ? @V305798 00555000
  862. BH PFSIZ NO, RE-DISPLAY DATA @V305798 00556000
  863. BAL R3,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V407508 00557100
  864. LR R14,R8 SAVE ADDRESS OF DISPLAY RDEVBLOK @V407508 00558100
  865. LH R1,2(,R2) GET PF DATA LENGTH @V305798 00559000
  866. C R1,F5 IS COPY ONLY INDICATED @V305798 00560000
  867. BH PFCOPY YES, COPY FUNC(COPY CUU) @V305798 00561000
  868. L R7,RDEVCUA GET ADDR OF RCUBLOK @V305798 00562000
  869. USING RCUBLOK,R7 @V305798 00563000
  870. TM RCUTYPE,RCUSUB IS THIS A SUBORDINATE CU? @V3M5015 00563100
  871. BZ SCNCU NO, GET RCU TABLE @V3M5015 00563200
  872. SPACE 1 00563300
  873. L R7,RCUPRIME GET PRIMARY CU ADDRESS @V3M5015 00563400
  874. SPACE 1 00563500
  875. SCNCU EQU * SCAN THRU OFFSETS IN THIS CUB @V3M5015 00563600
  876. LA R7,RCUDVTBL GET RCU TABLE @V305798 00564000
  877. LA R3,30(,R7) END OF BXLE @V3M5015 00565000
  878. LA R2,2 INCREMENT @V305798 00567000
  879. LR R4,R7 SAVE ADDRESS OF CONTROL UNIT @V3M5015 00567500
  880. PRTRNDV EQU * @V305798 00568000
  881. LH R8,0(,R7) OFFSET TO RDEVBLOK @V305798 00569000
  882. LTR R8,R8 IS THERE AN OFFSET VALUE @VM03116 00570000
  883. BM PRTRDVI NO, GET NEXT OFFSET VALUE @VM03116 00571000
  884. SLL R8,3 OFFSET IN BYTES @V305798 00572000
  885. A R8,ARIODV GET ACTUAL ADDR @V305798 00573000
  886. CLI RDEVTYPC,CLASGRAF IN 3270 FAMILY ? @V305798 00574000
  887. BNE PRTRDVI NO, KEEP LOOKING @V305798 00575000
  888. CLI RDEVTYPE,TYP3284 IS IT A PRINTER ? @V305798 00576000
  889. BNE PRTRDVI NO, PRESS ON @V305798 00577000
  890. TM RDEVSTAT,RDEVDED+RDEVDISA AVAILABLE ? @V305798 00578000
  891. BNZ PRTRDVI NO, LETS FIND ANOTHER @V305798 00579000
  892. TM RDEVFLAG,RDEVENAB IS IT ENABLED ? @V305798 00580000
  893. BZ PRTRDVI NOPE, GOT TO FIND ONE @V305798 00581000
  894. TM RDEVTFLG,RDEVCTL BOOKED UP ? @V305798 00582000
  895. BZ PFCOPYDF NO, TIME TO MOVE IN @V305798 00583000
  896. PRTRDVI EQU * @V305798 00584000
  897. BXLE R7,R2,PRTRNDV LOOP THRU RDEVBLOKS @V305798 00585000
  898. CL R4,ARIOCH END OF CONTROL BLOCKS ? @V3M5015 00585100
  899. BNL REJECTV YES, NONE AVAILABLE @V3M5015 00585200
  900. TM RCUTYPE-RCUBLOK(R4),RCUSUB SUB CONTRL UNIT? @V3M5015 00585300
  901. BO REJECTV YES, ALREADY PROCESSED @V3M5015 00585400
  902. LR R4,R7 SAVE ADDRESS OF NEW CONTROL UNIT @V3M5015 00585500
  903. TM RCUTYPE-RCUBLOK(R4),RCUSUB NEW SUB CNTRL UNIT? @V3M5015 00585600
  904. BO SCNCU YES, MUST SCAN THIS ONE @V3M5015 00585700
  905. DROP R7 @V3M5015 00585800
  906. B REJECTV NONE AVAILABLE @V305798 00586000
  907. PFSIZ LH R1,2(R2) GET PF DATA SIZE @V200730 00587000
  908. C R1,F8 HRC001DK 00587040
  909. BNE CHKRECAL HRC001DK 00587080
  910. CLC =C'RETRIEVE',0(R4) IS IT RETRIEVE HRC001DK 00587120
  911. BE DORECAL HRC001DK 00587160
  912. CHKRECAL EQU * HRC001DK 00587200
  913. C R1,F6 IS IT 'RECALL' ? HRC001DK 00587240
  914. BNE DCC002 IMPOSSIBLE ... HRC001DK 00587280
  915. CLC =C'RECALL',0(R4) PERHAPS ... HRC001DK 00587320
  916. BNE DCC002 DEFINITELY NOT HRC001DK 00587360
  917. DORECAL EQU * HRC001DK 00587400
  918. XC BUFFER(BUFINLTH+6),BUFFER CLEAR BUFFER DATA HRC001DK 00587440
  919. ICM R14,15,VMHRCALL RECALL LAST LINE HRC001DK 00587480
  920. BZ DCC002 NOBODY HOME ? - VANILLA HRC001DK 00587520
  921. MVC BUFFER(130),1(R14) MOVE LAST LINE TO BUFFERHRC001DK 00587560
  922. MVC 1(130,R14),130+1(R14) AND HERE WE GO ROUNHRC001DK 00587600
  923. MVC 130+1(130,R14),130+130+1(R14) THE HRC001DK 00587640
  924. MVC 130+130+1(130,R14),BUFFER MULBERRY BUSHHRC001DK 00587680
  925. LR R4,R3 BUFFER ADDRESS TO R4 HRC001DK 00587720
  926. L R3,=F'130' SIZE OF MSG FOR WRITE HRC001DK 00587760
  927. OI VMMLVL2,X'01' INDICATE RECALL FUNCTIONHRC001DK 00587800
  928. B BLD77IDS WRITE TO INPUT AREA HRC001DK 00587840
  929. DCC002 EQU * VANILLA ESCAPE HATCH HRC001DK 00587880
  930. XC BUFFER(BUFINLTH+6),BUFFER CLEAR BUFFER DATA @V200730 00588000
  931. BCTR R1,R0 LESS 1 FOR EXECUTE @V200730 00589000
  932. EX R1,MVCRT MOVE FUNCTION DATA TO BUFFER @V200730 00590000
  933. LA R1,1(R1) RESTORE COUNT @V200730 00591000
  934. LR R4,R3 BUFFER ADDRESS TO R4 @V200730 00592000
  935. LR R3,R1 DATA COUNT TO R3 @V200730 00593000
  936. TM 0(R2),X'80' IMMED EXECUTION ?? @V200730 00594000
  937. BO DATACNT YES, CONT @V200730 00595000
  938. LR R2,R4 BUFFER DATA START @V200730 00596000
  939. NXTIDS CLI 0(R2),X'15' IS IT A CR ?? @V200730 00597000
  940. BNE NOTLCR NO, CONT @V200730 00598000
  941. IC R0,VMTLEND GET LINEND CHARACTER @V200830 00599000
  942. STC R0,0(R2) SET FOR DISPLAY @V200730 00600000
  943. NOTLCR LA R2,1(R2) NEXT POSITION @V200730 00601000
  944. BCT R1,NXTIDS LOOP FOR ALL DATA @V200730 00602000
  945. L R14,=A(DMKTBLGL) ADDR OF GRAF TRANS TABLE @VA08002 00603200
  946. MVC X'05'(1,R14),VMGRFTAB SET LOGICAL TAB @V60A6B6 00603300
  947. BCTR R3,R0 MINUS 1 FOR EXECUTE @V200730 00604000
  948. EX R3,TRIDS TRANSLATE DATA @V200730 00605000
  949. MVI X'05'(R14),X6A RESTORE TAB CHARACTER @V60A6B6 00605100
  950. LA R1,1(R3,R4) POINT PAST LAST BYTE @V200730 00606000
  951. MVI 0(R1),X'13' PUT CURSOR AT END @V200730 00607000
  952. LA R3,2(R3) COUNT WITH CURSOR @V200730 00608000
  953. B BLD77IDS DISPLAY IN INPUT AREA @V200730 00609000
  954. SPACE 00610000
  955. PFREJ XC BUFFER(BUFINLTH+6),BUFFER CLEAR BUFFER @V200730 00611000
  956. MVC BUFFER(RJL),PFRJM REJECT MESSAGE @V200730 00612000
  957. SRL R1,3 PF NUMBER BINARY @V200730 00613000
  958. LA R1,1(R1) .. @V200730 00614000
  959. CALL DMKCVTBD CONVERT @V200730 00615000
  960. STH R1,BUFFER+4 SET PF NUMBER @V200730 00616000
  961. LR R4,R3 BUFFER ADDRESS TO R4 @V200730 00617000
  962. LA R3,RJL SIZE OF MSG FOR WRITE @V200730 00618000
  963. B BLD77IDS WRITE IN INPUT AREA @V200730 00619000
  964. SPACE 00620000
  965. PFRJM DC C'* PFNN UNDEFINED' REJECT MESSAGE @V200730 00621000
  966. RJL EQU *-PFRJM @V200730 00622000
  967. SPACE 00623000
  968. PFTAB SLR R0,R0 CLEAR THE PARAMETER REGISTER @V60A6B6 00624000
  969. IC R0,RDEVGRTY LOAD DISPLAY SCREEN INDEX @V60A6B6 00625000
  970. LR R1,R3 SET ADDRESS OF OUTPUT AREA @V60A6B6 00626000
  971. CALL DMKGRTAB GO FIGURE OUT WHAT TO DO. 00627000
  972. L R1,IOBCAW LOAD ADDRESS OF CCW BUFFER @V60A6B6 00628000
  973. LA R4,TAB77CCW GET ADDRESS OF MODEL CCWS @V60A6B6 00629000
  974. MVC 0(16,R1),0(R4) MOVE THEM INTO THE BUFFER @V60A6B6 00630000
  975. STH R2,14(,R1) AND PUT IN DATA COUNT @V60A6B6 00631000
  976. STCM R3,7,9(R1) SET DATA ADDRESS INTO THE CCW @V60A6B6 00632000
  977. B BLDRDEX GO SET RETURN ADDR AND START I/O @V60A6B6 00633000
  978. SPACE 2 00634000
  979. MVCRT MVC BUFFER(*-*),0(R4) EXECUTED MOVE PF DATA @V200730 00693000
  980. TRIDS TR 0(0,R4),0(R14) EXECUTED TRANSLATE @V407508 00694100
  981. SPACE 00695000
  982. EJECT 00696000
  983. PFCOPY EQU * @V305798 00697000
  984. LR R3,R14 SAVE RDEVBLOK ADDR ACROSS CALLS @V407508 00697100
  985. LA R0,3 SIZE TO CONVERT @V305798 00698000
  986. LA R1,5(,R4) DATA TO CONVERT @V305798 00699000
  987. CALL DMKCVTHB CONVERT DEVICE ADDR @V305798 00700000
  988. BNZ REJECT BAD ADDRESS @V305798 00701000
  989. CALL DMKSCNRU GET RDEVBLOK ADDR @V305798 00702000
  990. BNZ REJECTR BAD ADDR @V407508 00703100
  991. CLI RDEVTYPC,CLASGRAF 3270 DEVICE ? @V305798 00704000
  992. BNE REJECTR NO, REJECT @V407508 00705100
  993. CLI RDEVTYPE,TYP3284 3284 PRINTER ? @V305798 00706000
  994. BNE REJECTR NO, REJECT @V407508 00707100
  995. TM RDEVSTAT,RDEVDED+RDEVDISA AVAILABLE ? @V305798 00708000
  996. BNZ REJECTR NO, REJECT @V407508 00709100
  997. TM RDEVFLAG,RDEVENAB DEVICE MUST BE ENABLED @V305798 00710000
  998. BZ REJECTR NO, REJECT @V407508 00711100
  999. TM RDEVTFLG,RDEVCTL IS IT BUSY NOW ?? @V305798 00712000
  1000. BO REJECTR YES, REJECT @V407508 00713100
  1001. LR R14,R3 RESTORE RDEVBLOK ADDR AFTER CALLS@V407508 00713200
  1002. PFCOPYDF EQU * @V305798 00714000
  1003. OI IOBSPEC,IOBSENS SET SENSE COMMAND FLAG @VM03244 00715000
  1004. L R1,IOBCAW GET CCW ADDRESS @VM03244 00716000
  1005. MVC 0(8,R1),SNSCCW GET SENSE CCW @VM03244 00717000
  1006. LA R2,8(,R1) GET ADDRESS OF DATA AREA @VM03244 00718000
  1007. STCM R2,7,1(R1) SAVE SENSE DATA AREA ADDRESS @VM03244 00719000
  1008. ST R14,20(,R1) SAVE ADDRESS OF DISPLAY RDEVBLOK @V407508 00720100
  1009. LA R2,COPYSNS GET RETURN ADDRESS @VM03244 00721000
  1010. OI RDEVTFLG,RDEVCTL MARK PRINTER BUSY @VM03244 00722000
  1011. BAL R3,BLDTRQ GET A TRQBLOK (IF NECESSARY) @VM03244 00723000
  1012. ST R2,TRQBCRT SAVE RETURN ADDRESS @VM03244 00724000
  1013. L R1,IOBCAW GET ADDRESS OF CCW STRING @VM03244 00725000
  1014. B CALLIOS GO DO SENSE OPERATION @VM03244 00726000
  1015. SPACE 2 00727000
  1016. COPYSNS EQU * RETURN HERE FROM SENSE OPERATION @VM03244 00728000
  1017. NI RDEVTFLG,X'FF'-RDEVCTL CLEAR BUSY FLAG @VM03244 00729000
  1018. NI IOBSPEC,X'FF'-IOBSENS CLEAR SENSE COMMAND FLAG @VM03244 00730000
  1019. L R1,IOBCAW GET ADDRESS OF CCW STRING @VM03244 00731000
  1020. LR R4,R8 GET ADDRESS OF PRINTER'S RDEVBLOK@VM03244 00732000
  1021. L R8,20(,R1) GET DISPLAY'S RDEVBLOK ADDRESS @VM03244 00733000
  1022. BAL R3,BLDTRQ GET TRQBLOK FOR DISPLAY @VM03244 00734000
  1023. TM 8(R1),INTREQ IS PRNTER READY @VM03244 00735000
  1024. BO REJECT NO, WRITE 'NOT ACCEPTED' MSG @VM03244 00736000
  1025. OI RDEVTFLG-RDEVBLOK(R4),RDEVCTL MAKE PRINTER BUSY @VM03244 00737000
  1026. BAL R3,FRETRD GET RID OF READ BUFFER @V407508 00738100
  1027. SLR R2,R2 CLEAR INDEX REGISTER @V60A6B6 00739100
  1028. IC R2,RDEVGRTY GET DISPLAY SCREEN INDEX VALUE @V60A6B6 00739200
  1029. L R0,COPYDWSZ(R2) AND APPROPRIATE BUFFER SIZE. @V60A6B6 00739300
  1030. ST R0,IOBMISC2 SAVE THE SIZE OF COPY BUFFER @V60A6B6 00739400
  1031. CALL DMKFREE @V305798 00740000
  1032. MVC 0(2*8,R1),RDCOPY SET READ CCWS @V305798 00741000
  1033. OI IOBSPEC,IOBCOPY SET COPY REQUEST FLAG @VM03094 00742000
  1034. ST R8,20(,R1) SAVE DISPLAY'S RDEVBLOK ADDRESS @VM03094 00743000
  1035. LA R2,28(,R1) ADDRESS OF DATA AREA FOR READ @VM03116 00744000
  1036. STCM R2,7,9(R1) SET CCW ADDR @V305798 00745000
  1037. ST R4,16(,R1) SAVE PRINTER RDEVBLOK @V305798 00746000
  1038. LA R2,COPYRD RETURN ADDR @V305798 00747000
  1039. ST R2,TRQBCRT SET RETURN ADDR @V305798 00748000
  1040. B CALLIOS READ FROM 3277 SCREEN @V305798 00749000
  1041. SPACE 2 00750000
  1042. COPYRD L R4,IOBCAW GET BUFFER ADDR @V305798 00751000
  1043. L R3,16(,R4) GET PRINTER'S RDEVBLOK ADDRESS @V407508 00752100
  1044. LA R7,3848 MAXIMUM LENGTH OF READ DATA @VM03244 00753000
  1045. SH R7,IOBCSW+6 GET ACTUAL LENGTH OF DATA @VM03244 00754000
  1046. STH R7,24(,R4) SAVE LENGTH OF READ DATA @VM03244 00755000
  1047. NI IOBSPEC,X'FF'-IOBCOPY CLEAR COPY REQUEST FLAG @VM03244 00756000
  1048. USING CPEXBLOK,R7 SETUP ADDRESSABILITY FOR CPEXBLOK@VM03244 00757000
  1049. LA R0,CPEXSIZE CPEXBLOK SIZE @VM03244 00758000
  1050. CALL DMKFREE GET STORAGE FOR BLOCK @VM03244 00759000
  1051. L R2,IOBMISC2 KEEP COPY BUFFER SIZE HERE @V60A6B6 00759100
  1052. LR R7,R1 ADDRESSING @VM03244 00760000
  1053. STM R0,R15,CPEXR0 SAVE REQISTERS IN CPEXBLOK @VM03244 00761000
  1054. LA R15,COPYWT GET RETURN ADDRESS @VM03244 00762000
  1055. ST R15,CPEXADD SAVE RETURN ADDRESS @VM03244 00763000
  1056. CALL DMKSTKMP STACK CPEXBLOK FOR CURRENT PROC @V407508 00764100
  1057. B CPNATMR RESET USER'S STATUS @VM03244 00765000
  1058. SPACE 2 00766000
  1059. COPYWT EQU * WRITE READ DATA TO PRINTER @VM03244 00767000
  1060. * ENTERED FROM CPEXBLOK UNSTACKED ON THE I/O PROCESSOR 00767100
  1061. LR R8,R3 GET ADDR OF PRINTER'S RDEVBLOK @V407508 00768100
  1062. BAL R3,BLDIOB GET AN IOBLOK @VM03244 00769000
  1063. BAL R3,BLDTRQ GET PRINTER'S TRQBLOK @VM03244 00770000
  1064. MVC 0(2*8,R4),WTCOPY SET UP WRITE CCWS @VM03244 00771000
  1065. OI IOBSPEC,IOBCOPY SET COPY REQUEST INDICATOR @VM03244 00772000
  1066. ST R2,IOBMISC2 SAVE SIZE OF COPY BUFFER @V60A6B6 00772100
  1067. LA R2,27(,R4) GET ADDRESS OF DATA AREA @VM03244 00773000
  1068. STCM R2,7,9(R4) SET CCW ADDRESS @VM03244 00774000
  1069. LH R3,24(,R4) GET LENGTH OF READ DATA @VM03244 00775000
  1070. S R3,=F'22' SUBSTRACT LENGTH OF STATUS AREA @VM03116 00776000
  1071. STH R3,14(,R4) CHANGE LENGTH OF WRITE CCW @VM03116 00781000
  1072. MVC 0(4,R2),CPY77D COPY CONTROL CHARS @V305798 00782000
  1073. LR R1,R4 CCW ADDRESS @V305798 00783000
  1074. LA R2,COPYEND RETURN ADDR @V305798 00784000
  1075. ST R2,TRQBCRT SAVE IN TRQBLOK @V305798 00785000
  1076. B CALLIOS START YOUR PRINTERS... @V305798 00786000
  1077. SPACE 2 00787000
  1078. COPYEND L R0,IOBMISC2 GET THE SIZE OF THE COPY BUFFER @V60A6B6 00788000
  1079. L R1,IOBCAW BUFFER ADDR @V305798 00790000
  1080. CALL DMKFRET GET RID OF IT @V305798 00791000
  1081. NI IOBSPEC,X'FF'-IOBCOPY CLEAR COPY REQUEST FLAG @VM03094 00792000
  1082. BAL R3,FRETTRQ RELEASE TRQBLOK @VM03152 00793000
  1083. B NOCTL ALL DONE WITH PRINTER @VM03244 00794000
  1084. EJECT 00795000
  1085. TESTREQ LA R3,BUFFER+7 DATA START @V200730 00796000
  1086. LR R4,R3 SAVE START ADDRESS @V200730 00797000
  1087. LA R1,BUFINLTH SET MAX COUNT @V200730 00798000
  1088. TREQ0 CLI 0(R3),X'00' AT END OF BUFFER ?? @V200730 00799000
  1089. BE FREQ0 YES, CONT @V200730 00800000
  1090. LA R3,1(R3) BUMP TO NEXT POSITION @V200730 00801000
  1091. BCT R1,TREQ0 LOOP SEARCH FOR END @V200730 00802000
  1092. FREQ0 SR R3,R4 FORM COUNT OF DATA @V200730 00803000
  1093. LTR R0,R3 ANY READ ?? @V200730 00804000
  1094. BZ RDEXIT NO, GET OUT @V200730 00805000
  1095. LR R1,R4 DATA ADDRESS @V200730 00806000
  1096. SLR R2,R2 CLEAR PARM REG HRC101DK 00807122
  1097. TM VMMLVL2,VMMHLITE HILIGHT REQUESTED? HRC101DK 00807124
  1098. BZ CALLQCN1 NO, CONTINUE CALL HRC101DK 00807126
  1099. L R2,=A(HILIGHT) SET HILIGHT PARM HRC101DK 00807128
  1100. CALLQCN1 EQU * HRC101DK 00807130
  1101. O R2,=A(NOTRESP) SIGNAL NOT A COMMAND RESPONSE HRC101DK 00807132
  1102. CALL DMKQCNWT,PARM=NORET(,R2),AFFINITY @V60C2B8 00807140
  1103. B RDEXIT FINISHED @V200730 00808000
  1104. EJECT 00809000
  1105. RDMINT L R3,IOBMISC GET BUFFER ADDRESS @V200730 00810000
  1106. TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00811000
  1107. BNZ RD3277 YES @V60A6B6 00812000
  1108. TM BUFFER+2,CANCEL 3066 CANCEL ?? @V200730 00813000
  1109. BO CNCLKEY YES @V200730 00814000
  1110. CLC BUFFER(2),=AL1(33,00) DID CURSOR MOVE ?? @V200730 00815000
  1111. BNE SETBUF YES, SET DATA ADDRESS @V200730 00816000
  1112. MVI BUFFER+6,X'00' MARK BUFFER NULL DATA @V200730 00817000
  1113. B SETBUF SET BUFFER ADDRESS @V200730 00818000
  1114. SPACE 00819000
  1115. RD3277 EQU * REMOVE COMP. CHARS. FROM BUFFER @VM03043 00820000
  1116. LA R0,BUFAPL GET SIZE OF APL BUFFER @VM03094 00821000
  1117. L R1,=A(DMKTBMZI) TRANSLATE COMPOUND CHARACTERS @VM03172 00822000
  1118. TM RDEVTMCD,RDEVTEXT 3270 TEXT CHARACTER SET? @V387398 00822200
  1119. BZ RDTRANS NO -> TRANSLATE TABLE ALL SET @V387398 00822400
  1120. L R1,=A(DMKTBMTI) TRANSLATE TEXT COMPOUND CHAR. @V387398 00822600
  1121. RDTRANS EQU * @V387398 00822800
  1122. TRANS 7,1,OPT=(BRING,DEFER,SYSTEM),AFFINITY GET TABLE @V407508 00823100
  1123. LR R2,R3 RESTORE START OF BUFFER POINTER @VM03172 00824000
  1124. LR R1,R3 SAVE START OF BUFFER PTR @V387398 00825000
  1125. BAL R14,FAKESUB REMOVE THE FAKE ATTRIBUTE CHAR. @VM03094 00829000
  1126. SR R2,R1 GET NUMBER OF CHARS. IN BUFFER @V387398 00830000
  1127. LA R0,BUFSIZE GET NORMAL READ BUFFER @VM03043 00839000
  1128. CALL DMKFREE GET STORAGE FOR BUFFER @VM03043 00840000
  1129. XC 0(BUFNORM,R1),0(R1) CLEAR READ BUFFER @VM03043 00841000
  1130. LR R3,R1 SAVE NORMAL BUFFER ADDRESS @VM03043 00842000
  1131. L R1,IOBMISC GET APL BUFFER ADDRESS @VM03043 00843000
  1132. LA R14,BUFNORM GET MAX LENGTH OF DATA @VM03110 00844000
  1133. CLR R14,R2 IS LENGTH GREATER THAN MAX. @VM03110 00845000
  1134. BNL NOTMAX NO, BYPASS GETTING MAX. @VA05459 00846000
  1135. LR R2,R14 @VA05976 00846100
  1136. NOTMAX LTR R2,R2 TEST FOR ZERO LENGTH @VA05976 00846200
  1137. BZ ZEROLNG @VA05976 00846300
  1138. BCTR R2,R0 DECREMENT BY ONE @VA05976 00846400
  1139. EX R2,READBUF MOVE DATA INTO NORMAL BUFFER @VM03043 00849000
  1140. ZEROLNG DS 0H NO NEED TO MOVE DATA IF LENGTH=0 @VM13277 00849500
  1141. ST R3,IOBMISC SAVE NORMAL BUFFER ADDRESS @VM03043 00850000
  1142. LA R0,2*BUFSIZE GET SIZE OF APL BUFFER @VM03043 00851000
  1143. CALL DMKFRET RELEASE APL BUFFER STORAGE @VM03043 00852000
  1144. NI TRQBFLAG,X'FF'-(CRTAPL+CRTCARD) RESET CARD INPUT@VM03094 00854000
  1145. L R1,=A(DMKGRTAC) LOAD TABLE ENTRY COUNT ADDRESS HRC029DK 00855120
  1146. LH R0,0(R1) COUNT OF ENTRIES IN AID TABLE HRC029DK 00855140
  1147. L R1,=A(DMKGRTAI) ADDRESS OF AID DECODE TABLE @V60A6B6 00855200
  1148. TM RDEVSTA3,RDEVFULL In DIAG58 full screen? HRC062DK 00855210
  1149. BZ KEYCLC NO HRC058DK 00855220
  1150. TM VMRSTAT,VMLOGON USER NOT YET LOGGED ON? HRC059DK 00855224
  1151. BO KEYCLCFS Y, LET DMKGRF HANDLE HRC059DK 00855226
  1152. CLI BUFFER,X'6C' PA1 KEY? HRC058DK 00855230
  1153. BE CLD58PA1 Y, SET UP FOR IT HRC058DK 00855240
  1154. BAL R3,FRETRD FRET BUFFERS HRC058DK 00855250
  1155. PASSATTN EQU * HRC061DK 00855253
  1156. CALL DMKCFMAT POST ATTN INTRPT TO V.M. HRC059DK 00855260
  1157. BZ NOCTL EXIT IF ATTN IS SET OK HRC059DK 00855280
  1158. NI RDEVSTA3,255-RDEVFULL Else exit full screen HRC062DK 00855285
  1159. B CTLACTV And let CP handle attn HRC061DK 00855290
  1160. SPACE 00855300
  1161. KEYCLCFS EQU * NO ATTN SET, OR RECONNECTHRC059DK 00855500
  1162. NI RDEVSTA3,255-RDEVFULL Exit full screen mode HRC062DK 00855510
  1163. KEYCLC CLC BUFFER,0(R1) THIS KEY MATCH ?? @V200730 00856000
  1164. BE KEYPROC YES, OK @V200730 00857000
  1165. LA R1,2(R1) INDEX TO NEXT ENTRY @V200730 00858000
  1166. BCT R0,KEYCLC LOOP THROUGH TABLE 00859000
  1167. RDEXIT BAL R3,FRETRD FRET READ BUFFERS @V407508 00860100
  1168. B CPNATMR SET RETURN AND TEST FOR STATE @V200730 00861000
  1169. SPACE 00862000
  1170. KEYPROC SR R2,R2 CLEAR @V200730 00863000
  1171. IC R2,1(R1) GET ADCON INDEX @V200730 00864000
  1172. L R2,KEYTBLP(R2) GET PROCESSING ADDRESS @V200730 00865000
  1173. BR R2 GO DO IT @V200730 00866000
  1174. SPACE 00867000
  1175. CRDREAD OI TRQBFLAG,CRTCARD DATA FROM CARD READER 00868000
  1176. DATA77 ICM R1,15,VMHRCALL GET A(RECALL BUFFER) HRC001DK 00869030
  1177. BNZ DCC001 GOTTEN ? - GOOD HRC001DK 00869060
  1178. TM VMRSTAT,VMLOGOFF IS HE LOGGING OFF ? HRC001DK 00869090
  1179. BO DCC013 YES - FORGET IT HRC001DK 00869120
  1180. LA R0,(130*3+8)/8 SIZE OF RECALL BUFFER HRC001DK 00869150
  1181. CALL DMKFREE GET HIM A RECALL BUFFER HRC001DK 00869180
  1182. ST R1,VMHRCALL AND REMEMBER WHERE IT IS HRC001DK 00869210
  1183. MVI 0(R1),0 CLEAR OPTION BYTE HRC001DK 00869240
  1184. MVC 1(130,R1),0(R1) CLEAR HRC001DK 00869270
  1185. MVC 130+1(130,R1),0(R1) THE HRC001DK 00869300
  1186. MVC 130+130+1(130,R1),0(R1) RECALL BUFFER HRC001DK 00869330
  1187. DCC001 TM 0(R1),INHIBIT IS INHIBIT ON ? HRC001DK 00869360
  1188. BO DCC012 YES, WE DONT KEEP PASSWOHRC001DK 00869390
  1189. CLI BUFFER+6,0 NULL LINE ENTERED ? HRC001DK 00869420
  1190. BE DCC012 WE DONT KEEP THOSE EITHEHRC001DK 00869450
  1191. MVC 130+130+1(130,R1),130+1(R1) SHUFFLE LAST 2 LINEHRC001DK 00869480
  1192. MVC 130+1(130,R1),1(R1) BACK A BIT HRC001DK 00869510
  1193. MVC 1(130,R1),BUFFER+6 AND REMEMBER THE NEW ONEHRC001DK 00869540
  1194. DCC012 MVI 0(R1),0 CLEAR OLD OPTION BYTE HRC001DK 00869570
  1195. DCC013 CLI BUFFER+6,X'00' ANY DATA ? @V200730 HRC001DK 00869600
  1196. BNE SETBUF YES, CONT @V200730 00870000
  1197. TM RDEVTFLG,RDEVREAD DATA FROM READ @V200730 00873000
  1198. BZ SETBUF NO, CONT @V200730 00874000
  1199. L R1,RDEVGRTB GET ADDRESS OF GRTBLOK @V60A6B6 00874100
  1200. CLC BUFFER+1(2),GRTCLRIA-GRTBLOK(R1) CURSOR BACK 1? @V60A6B6 00874200
  1201. BNE SETBUF NO, CONT @V60A6B6 00874300
  1202. LA R2,4 SINGLE ATTN RETURN WITH NULL DATA@V200730 00875000
  1203. LA R3,0 NO DATA @V200730 00876000
  1204. B RDRTN RETURN DATA @V200730 00877000
  1205. SETBUF LA R3,BUFFER+6 DATA ADDRESS @V200730 00878000
  1206. LR R4,R3 SAVE START ADDRESS @V200730 00879000
  1207. LA R1,BUFINLTH MAX BUFFER INPUT ALLOWED @V200730 00880000
  1208. IC R2,VMGRFTAB LOAD LOGICAL TAB CHARACTER @V60A6B6 00880100
  1209. ZEROCHAR CLI 0(R3),X'00' LOOK FOR END CHAR @V200730 00881000
  1210. BE ZEROFND BRANCH IF FOUND (X'00') @V200730 00882000
  1211. CLM R2,B'0001',0(R3) IS THIS A LOGICAL TAB ? @V60A6B6 00883000
  1212. BNE *+8 NO, CONT 00884000
  1213. MVI 0(R3),X'05' REPLACE WITH REAL TAB 00885000
  1214. CLI 0(R3),X'11' SBA FROM CARD READER ?? 00886000
  1215. BNE NXTBUF NO, CONT 00887000
  1216. EX R1,SHFTBUF SHIFT OUT THE BUFFER ADDRESS 00888000
  1217. S R1,F3 SUBSTRACT THREE FROM BUFFER COUNT@VM03040 00889000
  1218. BNP ZEROFND IF ZERO, GET OUT @VM03040 00890000
  1219. B ZEROCHAR CHECK THIS POSN AGAIN 00891000
  1220. NXTBUF LA R3,1(R3) NEXT BUFFERPOSN 00892000
  1221. BCT R1,ZEROCHAR KEEP LOOKING FOR THAT ZERO @V200730 00893000
  1222. ZEROFND SLR R3,R4 GET BYTE COUNT @V200730 00894000
  1223. L R1,IOBMISC GET BUFFER ADDRESS @V200730 00895000
  1224. EX R3,MOVEDATA SHIFT DATA IN BUFFER @V200730 00896000
  1225. LR R4,R1 SET R4 TO BUFFER DATA @V200730 00897000
  1226. DATACNT ST R3,BUFCNT-BUFFER(R4) SET COUNT IN BUFFER @V200730 00898000
  1227. TM RDEVTFLG,RDEVREAD WAS IT A READ STATE ?? @V200730 00899000
  1228. BO RDATA YES @V200730 00900000
  1229. TM TRQBFLAG,CRTCARD DATA FROM CARD READER ?? 00901000
  1230. BO EDNULL YES, DONT ACCEPT IT !! 00902000
  1231. LTR R3,R3 ANY DATA ENTERED ?? @V200730 00903000
  1232. BNP NULLDATA NO @V200730 00904000
  1233. LA R0,CONTSIZE SMALL CONTASK SIZE @V200830 00905000
  1234. CALL DMKFREE GET ONE FOR EDIT FUNCTION @V200830 00906000
  1235. LR R6,R1 CONTASK ADDRESSING @V200830 00907000
  1236. XC CONTASK(CONTSIZE*8),CONTASK CLEAR BLOK @V200830 00908000
  1237. MVI CONPARM,EDIT+UCASE SET PARMS FOR EDIT @V200830 00909000
  1238. ST R4,CONADDR DATA ADDRESS FOR EDIT @V200830 00910000
  1239. STH R3,CONCNT DATA COUNT FOR EDIT @V200830 00911000
  1240. TM VMRSTAT,VMLOGON+VMCFWAIT LOGON OR SLEEPING ?? @V200730 00912000
  1241. BNZ EDATA YES, EDIT DATA @V200730 00913000
  1242. TM VMMLEVEL,VMMCPENV CP ENVIR ?? @V200730 00914000
  1243. BZ VIRTBUFF NO, VIRTUAL BUFFER @V200730 00915000
  1244. EDATA EQU * EDIT FUNCTION @V305798 00916000
  1245. TM RDEVTMCD,RDEVAPLP+RDEVTEXT TRANS INDICATED? @V387398 00917000
  1246. BNZ EDTAPL YES, BYPASS EDIT FUNCTION @V387398 00918000
  1247. CALL DMKCNSED EDIT INPUT DATA @V305798 00919000
  1248. EDTAPL EQU * BYPASS EDIT FUNCTION @V305798 00920000
  1249. LR R1,R6 CONTASK ADDRESS @V200830 00921000
  1250. LA R0,CONTSIZE SMALL CONTASK SIZE @V200830 00922000
  1251. CALL DMKFRET ALL DONE WITH DUMMY CONTASK @V200830 00923000
  1252. ST R3,BUFCNT-BUFFER(,R4) SAVE EDITED COUNT @VM08588 00924000
  1253. LTR R3,R3 DID EDIT RESULT IN ZERO LENGTH ? @V200730 00925000
  1254. BP TESTCF TEST FOR CONSOLE FUNCTION @V200830 00926000
  1255. EDNULL BAL R3,FRETRD YES, FRET BUFFERS @V407508 00927100
  1256. LA R1,NOCTL RETURN PROCESSING @V200730 00928000
  1257. ST R1,TRQBCRT SET RETURN @V200730 00929000
  1258. B GRFCRD CLEAR DATA @V200730 00930000
  1259. SPACE 00931000
  1260. TESTCF TM VMOSTAT,VMCF EXECUTING CONS FUNC NOW ?? @V200730 00932000
  1261. BO REJECT YES, CANT HANDLE THAT @V200730 00933000
  1262. CLC BUFCNT-BUFFER(4,R4),F0 CR CP ENTERED? @VA02350 00934000
  1263. BE CALLQCN YES, VMCF AND VMCFWAIT OFF @VA02992 00935000
  1264. OI VMOSTAT,VMCF INDICATE CONSOLE FUNCTION @VA02350 00936000
  1265. OI VMRSTAT,VMCFWAIT MAKE USER NON-DISPATCHABLE @VA02992 00937000
  1266. CALLQCN LR R1,R4 SET DATA ADDRESS @VA02992 00938000
  1267. LR R0,R3 SET DATA COUNT @V200730 00939000
  1268. SLR R2,R2 CLEAR PARM REG HRC101DK 00940122
  1269. TM VMMLVL2,VMMHLITE HILIGHT REQUEST? HRC101DK 00940124
  1270. BZ CALLQCN2 NO, CONTINUE HRC101DK 00940126
  1271. L R2,=A(HILIGHT) SET PARM HRC101DK 00940128
  1272. CALLQCN2 EQU * HRC101DK 00940130
  1273. O R2,=A(NOTRESP) SIGNAL NOT A COMMAND RESPONSE HRC101DK 00940132
  1274. CALL DMKQCNWT,PARM=NORET(,R2),AFFINITY @V60C2B8 00940140
  1275. LA R1,GRFCFM RETURN PROCESSING @V200730 00941000
  1276. ST R1,TRQBCRT SET RETURN @V200730 00942000
  1277. SETCLR BAL R3,FRETCCW FRET READ CCWS @V407508 00943100
  1278. GRFCRD TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00944000
  1279. BNZ BLD77CRD CLEAR READ AREA @V60A6B6 00945000
  1280. B BLD66CRD 3066 CLEAR READ AREA @V200730 00946000
  1281. SPACE 2 00947000
  1282. NULLDATA BAL R3,FRETRD FRET BUFFERS @V407508 00948100
  1283. TM VMRSTAT,VMLOGON LOGGING ON NOW ?? @V200730 00949000
  1284. BO CFMBK YES @V200730 00950000
  1285. TM RDEVTFLG,RDEVRUN IN A RUNNING STATE ?? @V200730 00951000
  1286. BO POSTINT YES, SET INT @V200730 00952000
  1287. TM RDEVTFLG,RDEVMORE IS CRT IN A 'MORE' STATE @V200730 00953000
  1288. BZ CRTMORE NO, HOLDING GOING TO MORE @V200730 00954000
  1289. CRTHOLD EQU * @VA08898 00954400
  1290. BAL R3,RSTTMR RESET TIMER REQUEST @VA08898 00954800
  1291. MVI RDEVTFLG,RDEVHOLD+RDEVCTL HOLD & CTL @VA08898 00955200
  1292. LA R1,NOCTL RETURN PROCESSING @V200730 00957000
  1293. ST R1,TRQBCRT SET RETURN PROCESSING @V200730 00958000
  1294. TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00959000
  1295. BNZ BLD77HLD 3270 HOLDING @V60A6B6 00960000
  1296. B BLD66HLD 3066 HOLDING @V200730 00961000
  1297. SPACE 2 00962000
  1298. CRTMORE BAL R3,RSTTMR RESET ANY ACTIVE TIMER REQUEST @V407508 00963100
  1299. MVI RDEVTFLG,RDEVMORE+RDEVCTL MORE... AND CTL @V200730 00964000
  1300. LA R1,SETMOR RETURN PROCESSING ADDRESS @V200730 00965000
  1301. ST R1,TRQBCRT SET RETRUN PROCESSING @V200730 00966000
  1302. TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 00967000
  1303. BNZ BLD77MOR 3270 MORE @V60A6B6 00968000
  1304. B BLD66MOR 3066 MORE @V200730 00969000
  1305. SPACE 2 00970000
  1306. GRFCFM L R4,IOBMISC GET DATA BUFFER @V200730 00971000
  1307. L R3,BUFCNT-BUFFER(R4) GET DATA COUNT @V200730 00972000
  1308. LTR R3,R3 TEST FOR COMMAND OR CP READ @V200730 00973000
  1309. BNP GRFBK ZERO, DO CP READ @V200730 00974000
  1310. LA R0,CPEXSIZE GET A CPEXBLOK @V200730 00975000
  1311. CALL DMKFREE .. @V200730 00976000
  1312. USING CPEXBLOK,R7 SETUP ADDRESSABILITY FOR CPEXBLOK@VM03152 00977000
  1313. LR R7,R1 CPEXBLOK ADDRESSING @V200730 00978000
  1314. LR R1,R4 BUFFER ADDRESS IN R1 @V200730 00979000
  1315. LR R0,R3 BUFFER DATA COUNT IN R0 @V200730 00980000
  1316. STM R0,R15,CPEXR0 SAVE REGS @V200730 00981000
  1317. LA R15,CALLCFM CPEXBLOK EXECUTE ADDRESS @V200730 00982000
  1318. ST R15,CPEXADD SET ADDRESS @V200730 00983000
  1319. LR R1,R7 CPEXBLOK ADDRESS @V200730 00984000
  1320. CALL DMKSTKCP STACK CPEXBLOK @V200730 00985000
  1321. B NOCTL RETURN @V200730 00986000
  1322. SPACE 00987000
  1323. CALLCFM CALL DMKCFMEN EXECUTE CONSOLE FUNCTION @V200730 00988000
  1324. GOTO DMKDSPCH RETURN TO DISPATCH @V200730 00989000
  1325. EJECT 00990000
  1326. GRFBK LA R0,BUFSIZE SIZE OF DATA BUFFER @V200730 00991000
  1327. LR R1,R4 BUFFER ADDRESS @V200730 00992000
  1328. CALL DMKFRET FRET IT @V200730 00993000
  1329. CALL DMKCFMBK TO CP READ @V200730 00994000
  1330. B NOTCTL RETURN @V407508 00995100
  1331. SPACE 00996000
  1332. POSTINT TM VMMLEVEL,VMMCPENV CP ENVIR ?? @V200730 00997000
  1333. BO CFMBK CALL FOR CONSOLE FUNC MODE @V200730 00998000
  1334. TM VMRSTAT,VMCFWAIT SLEEPING ?? @V200730 00999000
  1335. BO CFMBK YES, WAKE UP @V200730 01000000
  1336. CALL DMKCFMAT CALL TO POST ATTN INT FOR MACH @V200730 01001000
  1337. BZ NOCTL ATTN POSTED, CONT @V200730 01002000
  1338. CFMBK CALL DMKCFMBK CALL TO PLACE IN CONS FUNC MODE @V200730 01003000
  1339. B NOTCTL CONTINUE @V407508 01004100
  1340. SPACE 01005000
  1341. FRETRD LA R0,BUFSIZE DATA BUFFER SIZE @V200730 01006000
  1342. TM TRQBFLAG,CRTAPL IS APL BUFFER ALLOCATED FLAG ON @VM03043 01007000
  1343. BZ NOAPLBUF NO, BYPASS UPDATING SIZE OF BUF. @VM03043 01008000
  1344. LA R0,2*BUFSIZE GET APL READ BUFFER SIZE @VM03153 01009000
  1345. NOAPLBUF EQU * ... @VM03043 01010000
  1346. L R1,IOBMISC DATA BUFFER ADDRESS @V200730 01011000
  1347. LTR R1,R1 ANY BUFFER ?? @V200730 01012000
  1348. BNP FRETCCW NO, CONT @V200730 01013000
  1349. CALL DMKFRET FRET IT @V200730 01014000
  1350. SR R0,R0 ZERO REG @V200730 01015000
  1351. ST R0,IOBMISC CLEAR BUFFER ADDRESS @V200730 01016000
  1352. FRETCCW LA R0,6 CCW PACKAGE SIZE @V200730 01017000
  1353. L R1,IOBCAW CCW OACKAGE ADDRESS @V200730 01018000
  1354. LTR R1,R1 TSET FOR CCW PACKAGE @V200730 01019000
  1355. BCR 8,R3 NO, EXIT @V407508 01020100
  1356. CALL DMKFRET FRET IT @V200730 01021000
  1357. SR R0,R0 ZERO REG @V200730 01022000
  1358. ST R0,IOBCAW CLEAR ADDRESS @V200730 01023000
  1359. BR R3 RETURN @V407508 01024100
  1360. SPACE 2 01025000
  1361. EJECT 01026000
  1362. VIRTBUFF TM VMMLEVEL,VMMLINED VIRTUAL LINE EDIT ON ?? @V200730 01027000
  1363. BO VIRTBFRT YES, EDIT INPUT DATA @VA06260 01028100
  1364. LR R1,R6 GET CONTASK ADDRESS @VA06260 01028200
  1365. LA R0,CONTSIZE GET CONTASK SIZE @VA06260 01028300
  1366. CALL DMKFRET ALL DONE WITH DUMMY CONTASK @VA06260 01028400
  1367. B SAVRDEV BYPASS EDITING INPUT DATA @VA06260 01028500
  1368. VIRTBFRT EQU * @VA06260 01028600
  1369. MVI CONPARM,EDIT EDIT ONLY @V200830 01029000
  1370. CALL DMKCNSED YES, EDIT INPUT DATA @V200730 01030000
  1371. LR R1,R6 CONTASK ADDRESS @V200830 01031000
  1372. LA R0,CONTSIZE SMALL CONTASK SIZE @V200830 01032000
  1373. CALL DMKFRET ALL DONE WITH DUMMY CONTASK @V200830 01033000
  1374. LTR R3,R3 EDIT RESULT IN NULL DATA ?? @V200730 01034000
  1375. BZ EDNULL CLEAR AND IGNORE @V200730 01035000
  1376. ST R3,BUFCNT-BUFFER(,R4) SAVE EDITED COUNT @VM08588 01036000
  1377. L R14,0(R4) GET 1ST 4 BYTES OF DATA ENTERED @V407508 01037100
  1378. O R14,=X'00404040' UPPER CASE AND BLANK @V407508 01038100
  1379. CL R14,=X'15C3D740' IS IT CR CP BLANK ?? @V407508 01039100
  1380. BNE SAVRDEV NO, CONT @V200730 01040000
  1381. CL R3,F3 IS IT JUST CR CP @V200730 01041000
  1382. BNE TRDATA NO, TRANS TO UCASE AND CONT @V200730 01042000
  1383. SR R0,R0 CLEAR @V200730 01043000
  1384. ST R0,BUFCNT-BUFFER(R4) SET ZERO DATA @V200730 01044000
  1385. TRDATA L R1,=A(DMKTBLUP) UCASE TRANSLATE TABLE @V200830 01045000
  1386. EX R3,TRANSLAT TRANSLATE TO UCASE FOR CF @V200830 01046000
  1387. B TESTCF TEST FOR CONSOLE FUNCTION @V200830 01047000
  1388. EJECT 01048000
  1389. SAVRDEV LR R14,R8 SAVE RDEVBLOK ADDRESS @V407508 01049100
  1390. LH R8,VMVTERM GET VIRT TERM DISP @V200830 01050000
  1391. LTR R8,R8 TEST FOR TERM DEFINED @V200830 01051000
  1392. BM REJECTV NO, REJECT DATA @V200830 01052000
  1393. AL R8,VMDVSTRT SET R8 TO VDEVBLOK @V200830 01053000
  1394. USING VDEVBLOK,R8 @V200730 01054000
  1395. L R2,VDEVCON GET POINTER TO VIRTUAL CONTASK @V200730 01055000
  1396. USING VCONCTL,R2 @V200730 01056000
  1397. L R1,VCONRBUF SEE IF VIRTUAL BUFFER IS ALREADY @V200730 01057000
  1398. LTR R1,R1 STACK... @V200730 01058000
  1399. BNZ REJECTV ERROR IF ONE THERE @V200730 01059000
  1400. MVC VCONRBSZ,=AL2(BUFSIZE) SIZE OF VIRTUAL BUFFER HRC101DK 01060490
  1401. STH R3,VCONRCNT SAVE NUMBER OF BYTES READ @V200730 01061000
  1402. ST R4,VCONRBUF BUFFER ADDRESS @V200730 01062000
  1403. DROP R2 @V200730 01063000
  1404. LA R2,NORET+NOTIME PARMS FOR QCNWT 01064000
  1405. TM TRQBFLAG,CRTDIAG SCREEN WRITTEN WITH DIAG ?? 01065000
  1406. BZ TSTHLITE NO, CONT HRC101DK 01066490
  1407. LA R2,INHIBIT(R2) ADD INHIBIT TO SPOOL NOT PRINT 01067000
  1408. B SETDATAD HRC101DK 01067100
  1409. TSTHLITE DS 0H HRC101DK 01067200
  1410. TM VMMLVL2,VMMHLITE HILIGHT REQUESTED ? HRC101DK 01067300
  1411. BZ SETDATAD NO, CONTINUE HRC101DK 01067400
  1412. O R2,=A(HILIGHT) SET PARM HRC101DK 01067500
  1413. SETDATAD DS 0H HRC101DK 01067600
  1414. LR R1,R4 SET DATA ADDRESS @V200730 01068000
  1415. LR R0,R3 SIZE OF DATA @V200730 01069000
  1416. MC MNCOERD,MNCLRESP RESPONSE CLASS, END READ @VA05418 01069500
  1417. LR R3,R14 SAVE RDEVBLOK ADDR ACROSS CALL @V407508 01070100
  1418. O R2,=A(NOTRESP) SIGNAL NOT A COMMAND RESPONSE @V60C2B8 01070120
  1419. CALL DMKQCNWT,AFFINITY PARMS IN R2 @V407508 01070200
  1420. CALL DMKCFMAT POST ATTN TO VIRT MACHINE @VA11787 01071000
  1421. LR R8,R3 RESTORE RDEVBLOK ADDRESS @V407508 01072100
  1422. USING RDEVBLOK,R8 @V200730 01073000
  1423. LA R1,NOCTL RETURN PROCESSING @V200730 01074000
  1424. ST R1,TRQBCRT SET RETURN @V200730 01075000
  1425. B SETCLR CLEAR READ DATA @V200730 01076000
  1426. SPACE 01077000
  1427. REJECTR LR R8,R3 RESTORE RDEVBLOK ADDRESS @V407508 01078100
  1428. B REJECT CONTINUE @V407508 01078200
  1429. REJECTV LR R8,R14 RESTORE RDEVBLOK ADDRESS @V407508 01078300
  1430. REJECT BAL R3,FRETRD FRET BUFFERS @V407508 01078400
  1431. OI RDEVTFLG,RDEVCPNA+RDEVCTL NOT ACCEPTED AND CTL @V200730 01080000
  1432. LA R1,SETREJ RETURN PROCESSING @V200730 01081000
  1433. ST R1,TRQBCRT SET RETURN PROCESSING @V200730 01082000
  1434. TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 01083000
  1435. BNZ BLD77NAC 3270 NOT ACCEPTED @V60A6B6 01084000
  1436. B BLD66NAC 3066 NOT ACCEPTED @V200730 01085000
  1437. SPACE 01086000
  1438. EJECT 01087000
  1439. RDATA LTR R3,R3 ANY DATA READ ?? @V200830 01088000
  1440. BNP NOEDIT NO - THEN NO EDIT REQUIRED @V200730 01089000
  1441. CLI CONPARM,INHIBIT INHIBIT, NOEDIT CPREAD ?? 01090000
  1442. BNE RDATA1 NO, TEST FOR CARD DATA 01091000
  1443. TM TRQBFLAG,CRTCARD DATA MUST COME FROM CARD RDR 01092000
  1444. BO NOEDIT YES, OK, CONT 01093000
  1445. ZDATA SR R3,R3 NO DATA MUST BE GIVEN 01094000
  1446. B NOEDIT CONT WILL NULL DATA 01095000
  1447. RDATA1 TM TRQBFLAG,CRTCARD DATA FROM CARD READER ?? 01096000
  1448. BO ZDATA YES, DONT ACCEPT IT !! 01097000
  1449. TM CONPARM,EDIT+UCASE ANY EDITING WANTED ?? @V200830 01098000
  1450. BZ NOEDIT NO, SKIP IT @V200830 01099000
  1451. TM VMOSTAT,VMCF IN CP READ? @VA09444 01099100
  1452. BO RDATA2 YES, EDIT THIS LINE @VA09444 01099200
  1453. TM VMMLEVEL,VMMCPENV TERM MODE CP??? @VA09444 01099300
  1454. BZ RDATA2 NO, MUST BE VMREAD @VA09444 01099400
  1455. TM RDEVTMCD,RDEVAPLP+RDEVTEXT TRANS INDICATED? @V387398 01100000
  1456. BNZ NOEDIT YES, BYPASS EDIT FUNCTION @V387398 01101000
  1457. RDATA2 DS 0H INSURE EDIT OF CP INPUT @VA09444 01101100
  1458. L R2,CONADDR GET CALLERS BUFFER ADDRESS @V407508 01102100
  1459. LH R0,CONCNT GET CALLERS BUFFER COUNT @V200830 01103000
  1460. ST R4,CONADDR ADDRESS OF BUFFER FOR EDIT @V200830 01104000
  1461. STH R3,CONCNT COUNT FOR EDIT @V200830 01105000
  1462. CALL DMKCNSED EDIT THE INPUT LINE @V200730 01106000
  1463. ST R2,CONADDR RESTORE CALLERS BUFFER ADDRESS @V407508 01107100
  1464. STH R0,CONCNT RESTORE CALLERS COUNT @V200830 01108000
  1465. SR R2,R2 SET ZERO RETURN CODE @V200730 01109000
  1466. LTR R3,R3 ANY DATA AFTER EDIT ?? @V200730 01110000
  1467. BNP RDATA3 NO, RELEASE READ BUFFER @VA09444 01111100
  1468. L R7,0(R4) GET FIRST WORD OF DATA ENTERED @VA09444 01111150
  1469. O R7,=X'00404040' CONVERT TO UPPER CASE @VA09444 01111200
  1470. CL R7,=X'15C3D740' IS THIS CR CP???? (#CP) @VA09444 01111250
  1471. BNE RDRTN PASS DATA TO CALLER @VA09444 01111300
  1472. CL R3,F3 IS IT JUST CR CP?? @VA09444 01111350
  1473. BNE TRDATA1 NO TRANSLATE TO UPPER CASE @VA09444 01111400
  1474. SR R0,R0 SET DATA COUNT TO ZERO @VA09444 01111450
  1475. ST R0,BUFCNT-BUFFER(R4) *** @VA09444 01111500
  1476. TRDATA1 DS 0H TRANSLATE CHARACTERS TO UP CASE @VA09444 01111550
  1477. L R1,=A(DMKTBLUP) UPPERCASE XLATE TABLE @VA09444 01111600
  1478. EX R3,TRANSLAT TRANSLATE CONSOLE FUNCTION @VA09444 01111650
  1479. B RDRTN MOVE DATA TO USER BUFFER @VA09444 01111700
  1480. RDATA3 DS 0H CONTINUE AS BEFORE @VA09444 01111750
  1481. BAL R3,FRETRD FRET BUFFERS @V407508 01112100
  1482. LA R1,STRTREAD RETURN PROCESSING, REPEAT READ @V200730 01113000
  1483. ST R1,TRQBCRT SET RETURN @V200730 01114000
  1484. B GRFCRD CLEAR READ DATA AND REPEAT @V200730 01115000
  1485. SPACE 01116000
  1486. NOEDIT SR R2,R2 SET ZERO RETURN CODE @V200730 01117000
  1487. RDRTN LH R1,CONCNT GET COUNT ASKED FOR @V200730 01118000
  1488. CLR R1,R3 IS IT LESS THAN WE HAVE ?? @V200730 01119000
  1489. BNL *+6 NO, CONT @V200730 01120000
  1490. LR R3,R1 SET DATA COUNT TO MAX EXPECTED @V200730 01121000
  1491. STH R3,CONCNT SET DATA COUNT @V200830 01122000
  1492. L R1,CONRETN GET RETURN SAVEAREA ADDRESS @V200830 01123000
  1493. ST R3,SAVER0-SAVEAREA(R1) SET RETURN BYTE COUNT @V200830 01124000
  1494. LTR R3,R3 ANY DATA RETURNED ?? @V200830 01125000
  1495. BZ NODATA NO, DONT MOVE ANYTHING @V200830 01126000
  1496. B BUFMOVE MOVE DATA TO CALLERS BUFFER @V200830 01127000
  1497. SPACE 01128000
  1498. TRANSLAT TR 0(*-*,R4),0(R1) EXECUTE TRANSLATE @V200730 01129000
  1499. MOVEDATA MVC 0(0,R1),0(R4) MOVE DATA @V200730 01130000
  1500. TROPUT TR 0(*-*,R2),0(R7) EXECUTED TRANSLATE OUTPUT @V200830 01131000
  1501. SHFTBUF MVC 0(*-*,R3),3(R3) SHIFT OUT BUFFER ADDRESS 01132000
  1502. TRTTST TRT 0(*-*,R4),0(R7) @V305798 01133000
  1503. MOVEAPL MVC 0(*-*,R5),0(R4) @V305798 01134000
  1504. TXTTRAN TR 0(*-*,R1),SNGLCHAR(R2) TRANSLATE TEXT OUTPUT @V387398 01135000
  1505. READBUF MVC 0(*-*,R3),0(R1) MOVE DATA INTO NORMAL BUFFER @VM03043 01136000
  1506. EJECT 01137000
  1507. BUFMOVE L R1,CONADDR GET CALLERS BUFFER ADDRESS @V200830 01138000
  1508. BCTR R3,0 LENGTH MINUS 1 FOR MOVE. @VA05754 01138100
  1509. EX R3,MOVEDATA MOVE DATA TO BUFFER @V200730 01139000
  1510. NODATA BAL R3,SETRETN SET RETURN CODE @V200830 01140000
  1511. SETSZ LA R0,4 SIZE FOR BLANKS @V200730 01141000
  1512. LA R1,BLANKS WRITE BLANKS FOR NULL/PROTECTED @V200730 01142000
  1513. TM CONPARM,INHIBIT NON-DISPLAY DATA ?? @V200830 01143000
  1514. BO BLNKDSP YES, DISPLAY BLANKS @V200730 01144000
  1515. L R2,CONRETN GET BYTE COUNT FROM SAVEAREA @V200830 01145000
  1516. L R3,SAVER0-SAVEAREA(R2) BYTE COUNT .. @V200830 01146000
  1517. LTR R3,R3 IS IT ZERO ?? @V200730 01147000
  1518. BZ BLNKDSP YES, DISPLAY BLANKS @V200730 01148000
  1519. LR R0,R3 SET DATA COUNT @V200730 01149000
  1520. LR R1,R4 DATA ADDERSS @V200730 01150000
  1521. BLNKDSP LA R2,NORET DMKQCNWT PARM 01151000
  1522. TM CONPARM,VMGENIO VIRT MACH DATA ?? @V200830 01152000
  1523. BZ *+8 NO, CONT 01153000
  1524. LA R2,NORET+NOTIME DMKQCNWT PARM 01154000
  1525. TM TRQBFLAG,CRTDIAG SCREEN WRITTEN WITH DIAG ?? 01155000
  1526. BZ REDSPLY NO...CONTINUE @VA04810 01156000
  1527. LA R2,INHIBIT(R2) ADD INHIBIT TO SPOOL NOT PRINT 01157000
  1528. ICM R2,B'0100',NOMC BYPASS THE MONITOR CALL IN QCN @VA04810 01158000
  1529. REDSPLY EQU * @V4M0107 01158650
  1530. TM VMMLVL2,VMMHLITE HILIGHT REQUESTED ? HRC101DK 01158720
  1531. BZ MCENDRD HRC101DK 01158790
  1532. O R2,=A(HILIGHT) SET PARM HRC101DK 01158860
  1533. MCENDRD EQU * HRC101DK 01158930
  1534. MC MNCOERD,MNCLRESP RESPONSE CLASS, END READ @VA05418 01159000
  1535. O R2,=A(NOTRESP) SIGNAL NOT A COMMAND RESPONSE @V60C2B8 01159100
  1536. CALL DMKQCNWT,AFFINITY RE-DISPLAY THE DATA @V4M0107 01159550
  1537. LA R1,NOCTL RETURN FROM CLEARING INPUT AREA @V60A6B6 01162200
  1538. ST R1,TRQBCRT SET RETURN PROCESSING 01163000
  1539. NODSP BAL R3,FRETRD FRET READ BUFFERS @V407508 01164100
  1540. OI CONPARM,INHIBIT QCNET WILL NOT SPOOL IT @VA05374 01164500
  1541. OI CONSTAT,CONACTV REMEMBER TO RETURN THE READ @VM08587 01166000
  1542. BAL R3,RSTTMR RESET TIMER REQUEST @VA08898 01166500
  1543. MVI RDEVTFLG,RDEVRUN+RDEVCTL RUNNING AND CTL @V200730 01167000
  1544. B GRFCRD CLEAR READ DATA INPUT AREA @VM08590 01168000
  1545. EJECT 01169000
  1546. SETCCWS L R2,RDEVGRTB GET ADDRESS OF GRTBLOK @V60A6B6 01169100
  1547. ALR R1,R2 ADD OFFSET TO THE CCWS @V60A6B6 01169200
  1548. SPACE 01169300
  1549. CALLIOS ST R1,IOBCAW SET CCW ADDRESS @V200730 01170000
  1550. L R1,RDEVUSER GET CORRECT VMBLOK ADDRESS @V407508 01171100
  1551. SWTCHVM OPT=STAY SWITCH TO THIS VMBLOK @V407508 01172100
  1552. ST R11,IOBUSER SET USER FOR IO @V200730 01174000
  1553. NI IOBSPEC,X'FF'-IOBUNSL TURN OFF UNSOL. INT. FLAG @VA02040 01175000
  1554. OI RDEVFLAG,RDEVACTV MARK DEVICE ACTIVE @VA03036 01176000
  1555. BAL R3,FRETIOER FRET IOERBLOK @VA01632 01177000
  1556. CALLQR CALL DMKIOSQR CALL IOS TO SCHEDULE IO REQUEST @V200730 01178000
  1557. GOTO DMKDSPCH WAIT FOR INTERRUPT. @V200730 01179000
  1558. EJECT 01180000
  1559. LOGUSER EQU * HERE TO LOGON A USER @V200730 01181000
  1560. CLI RDEVTYPE,TYP3284 IS THIS A 3270 PRINTER @VM03094 01182000
  1561. BE FRETIOB YES, IGNORE REQUEST @VM03094 01183000
  1562. L R15,PREFIXA GET PREFIX VALUE TO ADDRESS PSA @V4M0132 01184100
  1563. * AT ABSOLUTE ZERO @V4M0132 01184200
  1564. CLI XTNDLOCK-PSA(R15),X'FF' IS SYSTEM EXTENDING? @V4M0132 01184300
  1565. BE IDLEIOB YES - WAIT TILL EXTEND FINISHES. @VM08952 01185000
  1566. TM RDEVTFLG,RDEVLOG IS LOGON IN PROGRESS? @VA02316 01186000
  1567. BO IDLEIOB IF YES,EXIT @VA02316 01187000
  1568. TM RDEVTFLG,RDEVTRQ TIMER REQUEST QUEUED ?? @VA05176 01187100
  1569. BNO NOTIMER NO, PROCEED NORMALLY @VA05176 01187200
  1570. BAL R3,RSTTMR YES, RESET TRQ BLOKS @V407508 01187350
  1571. LR R10,R1 GET ADRESS OF TRQBLOK @VA05176 01187400
  1572. LA R12,DMKGRFTI ADDRESS TRQ HANDLER @VA05176 01187500
  1573. BR R12 AND GO THERE @VA05176 01187600
  1574. NOTIMER EQU * @VA05176 01187700
  1575. L R4,=A(DMKSYSNM) ADDRESS OF TOTAL USER'S LOGGED @V200730 01188000
  1576. L R4,0(,R4) GET COUNT OF LOGGED ON USER'S @V200730 01189000
  1577. LTR R4,R4 ANY LOGGED ON YET ? @V200730 01190000
  1578. BNZ TSTENAB TEST FOR ENABLE @V200730 01191000
  1579. CLC CPID(4),=CL4'CPCP' ARE WE THROUGH THE IPL @V200730 01192000
  1580. BNE ALTCONS NO - MUST BE ALTERNATE CONSOLE @V200730 01193000
  1581. TSTENAB TM RDEVFLAG,RDEVENAB IS IT ENABLED ?? @V200730 01194000
  1582. BZ FRETIOB NO, IGNORE DEVICE @V200730 01195000
  1583. TM RDEVFLAG,RDEVDISB DID OPERATOR 'DISABLE' DEVICE @V200730 01196000
  1584. BZ TSTFMT NO, TEST FOR SCREEN FORMATTED @V200730 01197000
  1585. DISABLE EQU * DISABLE DEV -- NO USER LOGGED ON @VA01983 01198000
  1586. LA R1,CONLOGOF RETURN PROCESSING 01199000
  1587. ST R1,TRQBCRT SET RETURN ADDRESS 01200000
  1588. B GRFCLRT CLEAR SCREEN FOR DISABLE 01201000
  1589. TSTFMT EQU * CHECK FOR VM LOGO ON SCREEN @V60A6B6 01202100
  1590. TM RDEVGRIC,RDEVERPQ Device eligible for RPQ?HRC072DK 01202130
  1591. BZ NORPQ No HRC072DK 01202140
  1592. CALL HDKD8CEN Go issue RPQ sequence HRC072DK 01202150
  1593. NORPQ EQU * HRC072DK 01202160
  1594. LA R1,BLDVMBLK ASSUME IT HAS BEEN WRITTEN @V60A6B6 01202200
  1595. TM TRQBFLAG,CRTFMT IS SCREEN FORMATTED ?? @V60A6B6 01202300
  1596. BO FMTOK YES, THEN IT IS TIME TO CLEAR IT @V60A6B6 01202400
  1597. LA R1,FMTGRF RETURN ADDRESS TO WRITE VM LOGO @V60A6B6 01204000
  1598. OI TRQBFLAG,CRTUSEWA NEED E/W E/W ALT FIRST... @V60A6B6 01205100
  1599. FMTOK ST R1,TRQBCRT SET RETURN PROCESSING @V60A6B6 01205200
  1600. B GRFCLRT CLEAR VM LOGO FROM SCREEN @V60A6B6 01205300
  1601. BLDVMBLK TM RDEVTFLG,RDEVLOG IS LOGON IN PROGRESS? @VA02316 01207000
  1602. BO IDLEIOB IF YES, EXIT @VA02316 01208000
  1603. OI RDEVTFLG,RDEVLOG LOGON IN PROGRESS @VA02316 01209000
  1604. CALL DMKBLDVM,AFFINITY BUILD VMBLOK FOR THIS USER @V407508 01210100
  1605. ST R11,IOBUSER GIVE HIM THIS IOBLOK @V200730 01211000
  1606. NI RDEVTFLG,255-RDEVLOG RESET LOGON FLAG @VA02316 01214000
  1607. B CFMBK CALL DMKCFMBK FOR A CP READ @V60A6B6 01215000
  1608. EJECT 01216000
  1609. FMTGRF LA R1,FMTDONE RETURN PROCESSING @V200730 01217000
  1610. ST R1,TRQBCRT SET RETURN PROCESSING @V200730 01218000
  1611. BAL R3,RSTTMR RESET TIMER REQUEST @VA08898 01218100
  1612. MVI RDEVTFLG,RDEVRUN+RDEVCTL RUNNING AND CTL @V200730 01219000
  1613. MVI RDEVCORD,X'01' NEXT LOGICAL LINE IS LINE 2 @V200730 01220000
  1614. OI TRQBFLAG,CRTUSEWA SET E/W A FLAG FOR CLEAR @V60A6B6 01220100
  1615. TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 01221000
  1616. BNZ BLD77FMT 3270 FORMAT @V60A6B6 01222000
  1617. B BLD66FMT 3066 FORMAT @V200730 01223000
  1618. SPACE 01224000
  1619. FMTDONE OI TRQBFLAG,CRTFMT SCREEN FORMATTED @V200730 01225000
  1620. TM RDEVFLAG,RDEVDISB DID OPER ISSUE DISABLE WHILE @VA01983 01226000
  1621. * SCREEN WAS BEING FORMATTED ? 01227000
  1622. BNZ DISABLE YES -- GO DISABLE @VA01983 01228000
  1623. B NOCTL ALL DONE @V200730 01229000
  1624. EJECT 01230000
  1625. ALTCONS L R2,=A(DMKRIOCN) GET POINTER TO ALTERNATE CONSOLE@V200730 01231000
  1626. LH R3,2(R2) GET CONS ADDRESS @V200730 01232000
  1627. CH R3,IOBRADD IS THIS A CONSOLE ?? @V200730 01233000
  1628. BE GOCPI YES, GO TO CPINIT @V200730 01234000
  1629. LA R2,4(R2) POINT TO COUNT OF ALT. CONSOLES @V60BCAA 01234200
  1630. L R1,0(R2) ACCESS COUNT OF ALT CONSOLES @V60BCAA 01234400
  1631. ALTLOOP LTR R1,R1 ANY MORE ALTERNATE CONSOLES? @V60BCAA 01234600
  1632. BZ FRETIOB NO, IGNORE @V60BCAA 01234800
  1633. BCTR R1,0 DECREMENT COUNT FOR NEXT TIME @V60BCAA 01235000
  1634. * THROUGH LOOP 01235200
  1635. LA R2,4(R2) POINT TO NEXT ALT CONSOLE DATA @V60BCAA 01235400
  1636. LH R3,2(R2) GET ALT CONSOLE ADDRESS @V60BCAA 01235600
  1637. CH R3,IOBRADD IS THIS AN ALTERNATE CONSOLE? @V60BCAA 01235800
  1638. BNE ALTLOOP NOT THIS ONE @V60BCAA 01236000
  1639. GOCPI TM RDEVFLAG,RDEVENAB DEVICE ENABLED? @V60BCAA 01236200
  1640. BZ FRETIOB NO -- IGNORE @V60BCAA 01236400
  1641. LA R0,IOBSIZE GET IOBSIZE @VA04217 01238600
  1642. LR R1,R10 IOBLOK ADDRESS @V200830 01239000
  1643. CALL DMKFRET ALL DONE WITH BLOK @V200830 01240000
  1644. GOTO DMKCPIEM ALT CONSOLE IPL @V200830 01241000
  1645. SPACE 01242000
  1646. SETWNG DS 0H HRC101DK 01243190
  1647. ICM R15,1,VMMORECL LENGTH OF MORE TIME HRC101DK 01243380
  1648. BNZ SETINT LEAVE 10 SECONDS IF NOT THERE HRC101DK 01243570
  1649. LA R15,10 HRC101DK 01243760
  1650. B SETINT SET TIMER INT @V200730 01244000
  1651. SETREJ LA R15,3 3 SECOND HOLD HRC101DK 01245490
  1652. B SETINT SET TIMER INT @V200730 01246000
  1653. SETMOR DS 0H HRC101DK 01247190
  1654. ICM R15,1,VMMOREBP LENGTH OF MORE TIME HRC101DK 01247380
  1655. BNZ SETINT LEAVE 50 SECONDS IF NOT THERE HRC101DK 01247570
  1656. LA R15,50 HRC101DK 01247760
  1657. SETINT DS 0H HRC101DK 01247950
  1658. XC TMRVALUE,TMRVALUE CLEARA TMRVALUE HRC101DK 01248140
  1659. STC R15,TMRVALUE+3 STORE TIME HRC101DK 01248330
  1660. LA R15,DMKGRFTI TIMER INTERRUPT RETURN ADDRESS HRC101DK 01248520
  1661. ST R15,TRQBIRA SET TIMER RETURN @V200730 01249000
  1662. ST R11,TRQBUSER SET USER FOR TIMER @V200730 01250000
  1663. BAL R3,RSTTMR RESET ANY ACTIVE TRQ REQUEST @V407508 01251100
  1664. STCK TRQBVAL GET CLOCK VALUE @V200730 01252000
  1665. BC 12,CLOCKOK IS CLOCK FUNCTIONING? @VA04301 01252250
  1666. GOTO DMKCVTAB CLOCK DAMAGED...ABEND CVT001 @VA04301 01252500
  1667. CLOCKOK EQU * @VA04301 01252750
  1668. LM R14,R15,TRQBVAL GET CLOCK VALUE @V200730 01253000
  1669. AL R15,TMRVALUE+4 ADD TO THE (TOD) CLOCK THE @V200730 01254000
  1670. BC 12,*+8 TIME INTERVAL @V200730 01255000
  1671. AL R14,F1 ADJUST FOR OVERFLOW @V200730 01256000
  1672. AL R14,TMRVALUE HI ORDER OF CLOCK VALUE @V200730 01257000
  1673. STM R14,R15,TRQBVAL SET CLOCK COMP VALUE @V200730 01258000
  1674. OI RDEVTFLG,RDEVTRQ TIMER REQ PENDING @V200730 01259000
  1675. LR R1,R5 R1 FOR TIMER SET @V200730 01260000
  1676. CALL DMKSCHST QUEUE UP THIS TIMER REQUEST @V200730 01261000
  1677. TM TRQBFLAG,CRTAIO IS TIMER INTERRUPT PENDING? @VA04433 01262100
  1678. BNO NOCTL IF NOT, PROCEED NORMALLY @VA04433 01262200
  1679. NI TRQBFLAG,X'FF'-CRTAIO RESET INTERRUPT FLAG @VA04433 01262300
  1680. B GRFEXIT EXIT AND WAIT UNTIL IO COMPLETES @VA04433 01262400
  1681. EJECT 01263000
  1682. RSTTMR EQU * HERE TO RESET TIMER REQUEST BLOKS@V200730 01264000
  1683. TM RDEVTFLG,RDEVTRQ IS A TIMER REQUEST QUEUED @V200730 01265000
  1684. BCR 8,R3 NONE, RETURN TO CALLER @V407508 01266100
  1685. NI RDEVTFLG,X'FF'-RDEVTRQ RESET FLAG BIT @V200730 01267000
  1686. L R1,RDEVAIRA GET ADDRESS OF TRQBLOK @V200730 01268000
  1687. CALL DMKSCHRT RESET ACTIVE TIMER REQUEST @V200730 01269000
  1688. BR R3 RETURN, ALL DONE @V407508 01270100
  1689. SPACE 01271000
  1690. CPNATMR LA R1,NOCTL RETURN PROCESSING @V200730 01296000
  1691. ST R1,TRQBCRT SET RETURN PROCESSING @V200730 01297000
  1692. NI RDEVTFLG,X'FF'-RDEVCPNA RESET NOT ACCEPTED @V200730 01298000
  1693. OI RDEVTFLG,RDEVCTL CTL MODE FOR STATUS WRITE @V200730 01299000
  1694. TM RDEVTFLG,RDEVRUN RUNNING ?? @V200730 01300000
  1695. BO GRFRUN YES @V200730 01301000
  1696. TM RDEVTFLG,RDEVHOLD HOLDING ?? @V200730 01302000
  1697. BO CRTHOLD YES, RESET HOLDING @V200730 01303000
  1698. TM RDEVTFLG,RDEVREAD IN READ STATE ? @V305798 01304000
  1699. BO STRTREAD YES, SET READ STATUS @V305798 01305000
  1700. B CRTMORE RESET MORE... STATE @V200730 01306000
  1701. GRFRUN TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 01307000
  1702. BNZ BLD77RUN 3270 RUNNING @V60A6B6 01308000
  1703. B BLD66RUN 3066 RUNNING @V200730 01309000
  1704. SPACE 01310000
  1705. SETRETN TM CONSTAT,CONRESP RESPONSE EXPECTED ?? @V200830 01311000
  1706. BCR 8,R3 NO, RETURN @V200830 01312000
  1707. L R1,CONRETN GET RETURN SAVEAREA ADDRESS @V200830 01313000
  1708. ST R2,SAVER2-SAVEAREA(R1) SET RETURN CODE @V200830 01314000
  1709. BR R3 RETURN @V200830 01315000
  1710. SPACE 01316000
  1711. CONRET L R14,CONPNT GET NEXT CONTASK, IF ANY @V407508 01317100
  1712. ST R14,RDEVCON SET NEXT CONTASK TO DO @V407508 01318100
  1713. SR R0,R0 CLEAR @V200830 01319000
  1714. ST R0,CONPNT CLEAR CONTASK POINTER @V200830 01320000
  1715. CALL DMKQCNET RETURN CONTASK @V200830 01321000
  1716. BR R3 RETURN @V200830 01322000
  1717. SPACE 01323000
  1718. WRTSCN L R2,CONADDR GET DATA ADDRESS @V200730 01324000
  1719. LH R3,CONCNT GET DATA COUNT @V200830 01325000
  1720. LTR R3,R3 ZERO COUNT??? @VA01603 01326000
  1721. BZR R14 YES - RETURN @V407508 01327100
  1722. BCTR R3,R0 DECREMENT FOR EXECUTE @V200830 01328000
  1723. L R7,=A(DMKTBLGL) GRAF DEVICE TRANS TABLE @VA08002 01329100
  1724. IC R0,VMTLEND GET LOGICAL LINE END CHAR @VA02554 01330000
  1725. STC R0,X'15'(0,R7) ** MODIFY TRANS TABLE ***** @VA02554 01331000
  1726. MVC X'05'(1,R7),VMGRFTAB SET LOGICAL TAB CHAR @V60A6B6 01331100
  1727. TM TRQBFLAG,CRTSIO WAS DIAGNOSE ISSUE TO INPUT AREA@VM03094 01332000
  1728. BZ *+8 NO, BYPASS PUTTING CHAR. IN TABLE@VM03094 01333000
  1729. MVI X'13'(R7),IC PUT INSERT CURSOR CHAR IN TABLE @VM03094 01334000
  1730. TRTST CL R3,F256 LESS THAN 256 ?? @V200830 01335000
  1731. BL TRLST YES, DO LAST PART @V200830 01336000
  1732. TR 0(256,R2),0(R7) TRANSLATE DATA @V200830 01337000
  1733. LA R2,256(R2) NEXT DATA POSITION @V200830 01338000
  1734. S R3,F256 DECREMENT COUNT @V200830 01339000
  1735. B TRTST TEST FOR MORE TO DO @V200830 01340000
  1736. TRLST EX R3,TROPUT TRANSLATE LAST PART OF OUTPUT @V200830 01341000
  1737. MVI X'15'(R7),X'15' RESTORE TRANS TABLE @VA02554 01342000
  1738. MVI X'13'(R7),X'40' PUT BLANK BACK IN TABLE @VM03094 01343000
  1739. MVI X'05'(R7),X6A SET DEFAULT LOGICAL TAB CHAR @V60A6B6 01344000
  1740. BR R14 ALL DONE, RETURN @V407508 01344100
  1741. EJECT 01345000
  1742. BLDTRQ L R5,RDEVAIRA GET ADDRESS OF TRQBLOK @V200830 01346000
  1743. LTR R5,R5 IS THERE ONE NOW ?? @V200830 01347000
  1744. BCR 7,R3 YES, RETURN @V200830 01348000
  1745. LA R0,TRQBSIZE+CRTEXT GET TRQBLOK SIZE + EXTENSION @VA13071 01349100
  1746. CALL DMKFREE GET A TRQBLOK @V200830 01350000
  1747. ST R1,RDEVAIRA SAVE ADDRESS @V200830 01351000
  1748. LR R5,R1 TRQBLOK ADDRESSING @V200830 01352000
  1749. XC TRQBLOK(TRQBSIZE*8+CRTEXTSZ),TRQBLOK CLR TRQ+EXT@VA13071 01353100
  1750. LA R1,IDLEIOB SET RETURN ADDRESS @VM03152 01354000
  1751. ST R1,TRQBCRT SAVE RETURN ADDRESS @VM03152 01355000
  1752. TM RDEVADD,RDEVLDEV Is this an LDEV? HRC065DK 01355100
  1753. BO LDEV200 Yes HRC065DK 01355200
  1754. CALL DMKSCNRD GET DEVICE ADDRESS @V200830 01356000
  1755. STH R1,TRQBDEV SAVE DEV ADDRESS @V200830 01357000
  1756. BR R3 RETURN @V200830 01358000
  1757. LDEV200 EQU * HRC065DK 01358100
  1758. MVC TRQBDEV,RDEVADD Put LDEV addr in TRQBLOKHRC065DK 01358200
  1759. BR R3 Return HRC065DK 01358300
  1760. SPACE 01359000
  1761. FRETTRQ EQU * RELEASE TRQBLOK @VM03152 01360000
  1762. L R1,RDEVAIRA GET POINTER TO TRQBLOK @VM03152 01361000
  1763. LTR R1,R1 IS THERE A TRQBLOK POINTER @VM03152 01362000
  1764. BNPR R3 RETURN TO IN LINE CODE @VM03152 01363000
  1765. LA R0,TRQBSIZE+CRTEXT SIZE OF TRQBLOK + EXTENSION @VA13071 01364100
  1766. CALL DMKFRET RELEASE STORAGE @VM03152 01365000
  1767. SR R0,R0 CLEAR REGISTER @VM03152 01366000
  1768. ST R0,RDEVAIRA CLEAR TRQBLOK POINTER FIELD @VM03152 01367000
  1769. BR R3 RETURN TO IN LINE CODE @VM03152 01368000
  1770. SPACE 2 01369000
  1771. BLDIOB LA R0,IOBSIZE IOBLOK SIZE @V200830 01370000
  1772. CALL DMKFREE GET A BLOK @V200830 01371000
  1773. LR R10,R1 IOBLOK ADDRESSING @V200830 01372000
  1774. XC IOBLOK(IOBSIZE*8),IOBLOK CLEAR BLOK @V200830 01373000
  1775. ST R11,IOBUSER USER OF IOBLOK @V200830 01374000
  1776. LA R1,DMKGRFIN INTERRUPT RETURN ADDRESS @V200830 01375000
  1777. ST R1,IOBIRA SET RETURN ADDRESS @V200830 01376000
  1778. MVC IOBRADD,RDEVADD Device address to IOB HRC065DK 01376100
  1779. BR R3 RETURN @V200830 01378000
  1780. SPACE 1 01379000
  1781. FRETIOER EQU * @VA01632 01380000
  1782. L R1,IOBIOER PICK UP IOERBLOK @VA01632 01381000
  1783. LTR R1,R1 IS THERE AN IOERBLOK @VA01632 01382000
  1784. BCR 8,R3 NO, RETURN TO IN LINE CODE @VA01632 01383000
  1785. LA R0,IOERSIZE @VA01632 01384000
  1786. AH R0,IOEREXT-IOERBLOK(,R1) EXTENSION, IF ANY @VA01632 01385000
  1787. CALL DMKFRET @VA01632 01386000
  1788. SLR R1,R1 @VA01632 01387000
  1789. ST R1,IOBIOER CLEAR OUT THE IOBLOK FIELD @VA01632 01388000
  1790. NI IOBFLAG,X'FF'-IOBERP IND ERP NOT IN CTL @VA03381 01389000
  1791. BR R3 RETURN @VA01632 01390000
  1792. SPACE 01391000
  1793. EJECT 01392000
  1794. * THESE ROUTINES BUILD VARIOUS CHANNEL PROGRAMS FOR GRAF 01393000
  1795. * 01394000
  1796. * R6 = ADDRESS OF CONTASK 01395000
  1797. * R8 = ADDRESS OF RDEVBLOK 01396000
  1798. * R10= ADDRESS OF IOBLOK 01397000
  1799. * FIELDS DEFINED IN CONCCW HAVE THE FOLLOWING MEANING 01398000
  1800. * CONADDR = ADDRESS OF INPUT/OUTPUT AREA 01399000
  1801. * CONFLAG = (F1 FOR WRITE; F6 FOR READ) 01400000
  1802. * CONCNT = NUMBER OF BYTES IN CHANNEL PROGRAM 01401000
  1803. * 01402000
  1804. * 01403000
  1805. SPACE 2 01404000
  1806. BLDCCWS EQU * HRC071DK 01405000
  1807. TM RDEVSTA3,RDEVEWRT Erase/write required? HRC071DK 01405100
  1808. BO NOFMT Y, skip logo redraw HRC071DK 01405200
  1809. TM TRQBFLAG,CRTFMT Screen formatted? HRC071DK 01405300
  1810. BZ FMTGRF NO, DO IT NOW 01406000
  1811. NOFMT EQU * HRC071DK 01406500
  1812. CLI RDEVTFLG,RDEVRUN RUNNING STATE ?? 01407000
  1813. BE BLDCONT YES - START UP THIS TASK @VM08871 01408000
  1814. TM RDEVTFLG,RDEVREAD IS THERE A READ ACTIVE ? @VM01089 01409000
  1815. BO READPRI YES, CHECK FOR PRIORITY WRITE @VM01089 01410000
  1816. TM RDEVTFLG,RDEVHOLD IS SCREEN IN HOLD STATUS @VM01089 01411000
  1817. BZ IDLEIOB NO, DON'T INTERRUPT @VM01089 01412000
  1818. L R1,RDEVUSER GET USER VMBLOK POINTER @VM01089 01413000
  1819. TM VMRSTAT-VMBLOK(R1),VMLOGOFF IS LOGOFF ACTIVE @VM01089 01414000
  1820. BZ IDLEIOB NO, DON'T INTERRUPT @VM01089 01415000
  1821. B GRFCLR CLEAR SCREEN @VM01089 01416000
  1822. SPACE 2 01417000
  1823. READPRI EQU * @VM01089 01418000
  1824. L R1,CONPNT POINTER TO NEXT TASK, IF ANY @VM08871 01419000
  1825. LTR R1,R1 MAKE SURE THERE IS ONE @VM08871 01420000
  1826. BNP IDLEIOB NOPE -- JUST EXIT @VM08871 01421000
  1827. TM CONPARM-CONTASK(R1),PRIORITY BREAK-IN SITUATION@VM08871 01422000
  1828. BZ IDLEIOB NO -- CONTINUE @VM08871 01423000
  1829. ST R1,RDEVCON REMOVE THE READ TASK FROM CHAIN @VM08871 01424000
  1830. NI CONSTAT,255-CONESCP TASK IS NOT ACTIVE @VM08871 01425000
  1831. READBRK EQU * RE-INSERT THE READ CONTASK @VM08871 01426000
  1832. L R2,CONPNT-CONTASK(,R1) ADDRESS OF NEXT TASK @VM08871 01427000
  1833. LTR R2,R2 IS THERE ANOTHER ONE ? @VM08871 01428000
  1834. BNP READINS NO -- INSERT THE READ HERE @VM08871 01429000
  1835. TM CONPARM-CONTASK(R2),PRIORITY MORE PRIORITY ? @VM08871 01430000
  1836. BZ READINS NO -- INSERT HERE @VM08871 01431000
  1837. LR R1,R2 SAVE A BACK POINTER @VM08871 01432000
  1838. B READBRK . . .AND KEEP LOOKING @VM08871 01433000
  1839. READINS EQU * RE-CHAIN THE READ CONTASK @VM08871 01434000
  1840. ST R2,CONPNT POINTER TO NEXT TASK @VM08871 01435000
  1841. ST R6,CONPNT-CONTASK(,R1) PATCH THE FORWARD CHAIN@VM08871 01436000
  1842. L R6,RDEVCON SET GR6 = ADDRESS OF TOP TASK @VM08871 01437000
  1843. * B BLDCONT START UP PRIORITY TASK @VM08871 01438000
  1844. EJECT 01439000
  1845. BLDCONT EQU * START UP A CONSOLE REQUEST @VM08871 01440000
  1846. TM CONSTAT,CONOUTPT IS THIS AN OUTPUT REQUEST ?? @V200730 01441000
  1847. BZ STRTREAD NO, DO A READ CONTASK @V200730 01442000
  1848. TM CONDWC,X'40' DIAG. CONSOLE WRITE ?? @VA07542 01443100
  1849. BZ CORD NO, CONT NORMALLY @V200730 01444000
  1850. TM VMMLVL2,VMMNHOLD ALLOWED TO HOLD SCREEN? HRC101DK 01444300
  1851. BO TSTWRITE NO, NEVER HOLD HRC101DK 01444600
  1852. TM TRQBFLAG,CRTALRM SCREEN HAVE ALARM MESSAGE ?? 01445000
  1853. BO CRTHOLD YES, FORCE TO HOLDING FIRST 01446000
  1854. TSTWRITE DS 0H HRC101DK 01446500
  1855. TM CONDWC,X'80' ERASE BEFORE WRITE ?? @VA07542 01447100
  1856. BO DIAGCLR YES, CHECK IT OUT 01448000
  1857. DIAGRUN NI CONDWC,X'3F' TURN OFF DIAGNOSE FLAG @VA07542 01449100
  1858. IC R0,CONDWC GET LINE COORDINATOR @VA07542 01450100
  1859. SLR R2,R2 CLEAR INDEX REGISTER @V60A6B6 01451100
  1860. IC R2,RDEVGRTY GET DISPLAY SCREEN INDEX VALUE @V60A6B6 01451200
  1861. L R3,=A(DMKGRTIN) ADDRESS THE INPUT LINE NOS. @V60A6B6 01451300
  1862. L R3,0(R2,R3) INDEX TO CORRECT SET OF ADDR @V60A6B6 01451400
  1863. CLM R3,B'1000',CONDWC IS LINE NUMBER STARTING @V60A6B6 01451500
  1864. BE DIAGSIO AT THE INPUT AREA ? @VM03094 01452000
  1865. CLM R3,B'0100',CONDWC OR IS IT BOTTOM LINE ? @V60A6B6 01453200
  1866. BE DIAGSIO IF YES, TAKE SPECIAL PATH @VM03094 01454000
  1867. STC R0,RDEVCORD SET LINE CO-ORDINATE @V200730 01455000
  1868. OI TRQBFLAG,CRTDIAG FLAG DIAG WRITE @V200730 01456000
  1869. LH R1,CONCNT GET BYTE COUNT @VA08261 01456100
  1870. B SETCORD SET NEW CO-ORDINATE @V200830 01457000
  1871. DIAGSIO EQU * HANDLE WRITING TO INPUT AREA @VM03094 01458000
  1872. OI TRQBFLAG,CRTSIO SET WRITING TO INPUT AREA FLAG @VM03094 01459000
  1873. STC R0,TRQBLINE SAVE LINE COORDINATE @VM03094 01460000
  1874. LA R0,BUFINLTH GET BUFFER SIZE @VM03116 01461000
  1875. CH R0,CONCNT IS THIS GREATER THAN COUNT @VM03116 01462000
  1876. BNL *+8 YES, BYPASS SAVING VALUE @VM03116 01463000
  1877. STH R0,CONCNT SAVE MAX. SIZE OF BUFFER @VM03116 01464000
  1878. B SETCORD SET NEW CO-ORDINATE @VM03094 01465000
  1879. SPACE 01466000
  1880. DIAGCLR CLI CONDWC,X'FF' ERASE CLEAR DIAGNOSE ?? @VA07542 01467100
  1881. BE CNCLDIAG YES, NO OUTPUT TO DO 01468000
  1882. NI CONDWC,X'7F' TURN OFF ERASE BIT @VA07542 01469100
  1883. CLI RDEVCORD,X'00' AT TOP NOW ?? @V200730 01470000
  1884. BE DIAGRUN YES, CONT @V200730 01471000
  1885. B CRTMORE NO, FORCE TO MORE... 01472000
  1886. SPACE 01473000
  1887. CNCLDIAG SR R2,R2 SET RETURN CODE 01474000
  1888. BAL R3,SETRETN SET RETURN CODE @V200830 01475000
  1889. BAL R3,CONRET RETURN CONTASK @V200830 01476000
  1890. B GRFCLR CLEAR SCREEN 01477000
  1891. SPACE 01478000
  1892. CORD TM TRQBFLAG,CRTDIAG WRITTEN WITH DIAG BEFORE ?? @V200730 01479000
  1893. BO CRTFULL YES, FORCE TO MORE... @V200730 01480000
  1894. TM RDEVSTA3,RDEVFULL In DIAG58 full screen? HRC062DK 01480100
  1895. BO CLD58FUL Y, CLEAR AFTER FULL SCR HRC058DK 01480110
  1896. LH R1,CONCNT GET BYTE COUNT @V200830 01481000
  1897. SLR R15,R15 GET CURRENT OUTPUT LINE HRC073DK 01482000
  1898. IC R15,RDEVCORD PICK UP CURRENT LINE.... HRC073DK 01482200
  1899. SR R14,R14 CLEAR HRC073DK 01482400
  1900. SR R4,R4 CLEAR HRC073DK 01482600
  1901. IC R4,RDEVLLEN GET LINE LENGTH HRC073DK 01482800
  1902. MR R14,R4 CONVERT TO BYTE COORDINATES HRC073DK 01483000
  1903. LR R4,R15 COORDINATES TO R4 HRC073DK 01483200
  1904. ALR R4,R1 TOTAL BYTES ON SCREEN @V200830 01485000
  1905. LA R3,2640 SIZE FOR 3066 @V60A6B6 01486100
  1906. CLI RDEVTYPE,TYP3066 GOING TO WRITE TO A 3066 ? @V60A6B6 01486200
  1907. BE TESTSIZE YES, SIZE IN REGISTER 3 IS OK @V60A6B6 01486300
  1908. SLR R2,R2 CLEAR INDEX REGISTER @V60A6B6 01486400
  1909. IC R2,RDEVGRTY DISPLAY ALT. SCREEN SIZE INDEX @V60A6B6 01488000
  1910. L R3,=A(DMKGRTDS) ADDRESS THE SCREEN SIZE TABLE @V60A6B6 01489100
  1911. L R3,0(R2,R3) LOAD APPROPRIATE DISPLAY SIZE @V60A6B6 01489200
  1912. TESTSIZE CLR R4,R3 WILL THE DATA FIT THE SCREEN ? @V60A6B6 01489300
  1913. BH CRTFULL NO, SCREEN FULL @V200730 01491000
  1914. SETCORD SR R0,R0 CLEAR FOR DIVIDE @V200830 01492000
  1915. SLR R15,R15 CLEAR FOR IC HRC073DK 01492200
  1916. IC R15,RDEVLLEN GET LINE LENGTH HRC073DK 01492400
  1917. LR R14,R15 COPY HRC073DK 01492600
  1918. BCTR R14,0 LINE LEN LESS 1 FOR ROUND UP HRC073DK 01492800
  1919. ALR R1,R14 ROUND UP TO NEXT LINE HRC073DK 01493000
  1920. DR R0,R15 DIVIDE TO GET NUMBER OF LINES HRC073DK 01494000
  1921. LR R4,R1 REMEMBER NUMBER OF LINES @V200830 01495000
  1922. BAL R3,RSTTMR RESET TIMER REQUEST @VA08898 01495500
  1923. MVI RDEVTFLG,RDEVRUN+RDEVCTL RUN & CTL @VA08898 01496000
  1924. BAL R14,WRTSCN SCAN FOR LOGICAL CHARS. @V407508 01497100
  1925. TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 01498000
  1926. BZ NOAPLW NO, BYPASS APL FUNCTION @V60A6B6 01499000
  1927. LH R3,CONCNT LOAD DATA COUNT @V305798 01500000
  1928. LTR R3,R3 IS COUNT VALUE ZERO @V305798 01501000
  1929. BZ NOAPLW YES, BYPASS APL TRANSLATION @V305798 01502000
  1930. TM RDEVTMCD,RDEVAPLP+RDEVTEXT TRANS INDICATED? @V387398 01503000
  1931. BZ NOAPLW NO, BYPASS TRANSLATION @V387398 01504000
  1932. LH R0,CONTSKSZ GET SIZE OF CURRENT CONTASK @V305798 01505000
  1933. AR R0,R0 DOUBLE CONTASK SIZE @V305798 01506000
  1934. CALL DMKFREE GET STORAGE FOR NEW CONTASK @V305798 01507000
  1935. MVC 0(CONDATA-CONTASK,R1),0(R6) GET HEADER DATA @V305798 01508000
  1936. ST R1,RDEVCON SAVE POINTER TO NEW CONTASK @V305798 01509000
  1937. L R1,=A(DMKTBMZO) COMPOUND TRANSLATE TABLE @VM03172 01510000
  1938. TM RDEVTMCD,RDEVTEXT 3270 TEXT CHARACTER SET? @V387398 01510200
  1939. BZ WRTRANS NO -> TRANSLATE TABLE ALL SET @V387398 01510400
  1940. L R1,=A(DMKTBMTO) TEXT COMPOUND TRANSLATE TABLE @V387398 01510600
  1941. WRTRANS EQU * @V387398 01510800
  1942. TRANS 2,1,OPT=(BRING,DEFER,SYSTEM),AFFINITY GET TABLE @V407508 01511100
  1943. STM R1,R10,TEMPSAVE SAVE CURRENT REGISTERS @VM03172 01512000
  1944. LR R7,R2 REAL ADDRESS FOR TRANSLATE TABLE @VM03172 01513000
  1945. L R1,RDEVCON RESTORE ADDRESS OF NEW CONTASK @VM03172 01514000
  1946. LA R5,CONDATA-CONTASK(,R1) GET POINTER TO DATA AREA@V305798 01515000
  1947. L R4,CONADDR POINTER TO CURRENT DATA AREA @V305798 01516000
  1948. ST R5,CONADDR-CONTASK(,R1) SAVE DATA AREA POINTER @VM03040 01517000
  1949. STH R0,CONTSKSZ-CONTASK(,R1) SAVE SIZE OF CONTASK @VM03040 01518000
  1950. SR R14,R14 CLEAR COUNT REGISTER @V407508 01519100
  1951. BAL R10,TRANSTST TRANSLATE & TEST FOR COMP. CHAR. @V305798 01520000
  1952. B FRETNEW RELEASE NEW CONTASK STORAGE @V305798 01521000
  1953. APLCOMP EQU * PUT FAKE CHAR. BEFORE COMP. CHAR @V305798 01522000
  1954. MVI 0(R5),X'1D' PUT FAKE ATTRIBUTE IN AREA @V305798 01523000
  1955. STC R2,1(,R5) PUT COMPOUND CHAR. INTO BUFFER @V305798 01524000
  1956. LA R5,2(,R5) UPDATE PASS COMPOUND CHARACTER @V305798 01525000
  1957. LA R4,1(,R4) UPDATE PASS COMPOUND CHARACTER @V305798 01526000
  1958. LA R14,1(,R14) KEEP COUNT OF FAKE ATTR. CHARS. @V407508 01527100
  1959. SR R3,R1 DECREMENT BYTE COUNT @V305798 01528000
  1960. S R3,F1 SUBSTRACT ONE - COMPOUND CHAR. @V305798 01529000
  1961. BNP FRETOLD GET OUT - FINISH @V305798 01530000
  1962. BAL R10,TRANSTST TRANSLATE & TEST FOR COMP. CHAR. @V305798 01531000
  1963. B FRETOLD RELEASE OLD CONTASK STORAGE @V305798 01532000
  1964. B APLCOMP PUT FAKE ATTR. CHAR IN BUFFER @V305798 01533000
  1965. FRETNEW EQU * RELEASE NEW CONTASK STORAGE @V305798 01534000
  1966. L R1,RDEVCON GET POINTER TO NEW CONTASK @V305798 01535000
  1967. ST R6,RDEVCON SAVE CURRENT/OLD CONTASK PTR. @V305798 01536000
  1968. B FRETCONT RELEASE NEW CONTASK @V305798 01537000
  1969. FRETOLD EQU * RELEASE CURRENT CONTASK STORAGE @V305798 01538000
  1970. LR R1,R6 GET CURRENT CONTASK POINTER @V305798 01539000
  1971. LH R0,CONTSKSZ GET SIZE OF OLD CONTASK @V305798 01540000
  1972. AH R14,CONCNT ADD NUMBER OF FAKE CHAR TO COUNT @V407508 01541100
  1973. L R6,RDEVCON GET POINTER TO NEW CONTASK @V305798 01542000
  1974. STH R14,CONCNT UPDATE DATA COUNT @V407508 01543100
  1975. FRETCONT EQU * RELEASE CONTASK @V305798 01544000
  1976. CALL DMKFRET RELEASE CONTASK @V305798 01545000
  1977. LM R1,R10,TEMPSAVE RESTORE REGISTERS @V305798 01546000
  1978. L R6,RDEVCON GET CONTASK POINTER @V305798 01547000
  1979. TM RDEVTMCD,RDEVTEXT 3270 TEXT? @V387398 01547070
  1980. BZ NOAPLW BR IF NOT @V387398 01547140
  1981. LH R0,CONCNT DATA LENGTH @V387398 01547210
  1982. LA R1,CONDATA POINT TO DATA @V387398 01547280
  1983. TXTLP LR R3,R0 REMAINING BYTE COUNT @V387398 01547350
  1984. BCTR R3,0 - 1 FOR EXECUTE @V387398 01547420
  1985. N R3,F255 MASK @V387398 01547490
  1986. EX R3,TXTTRAN TRANSLATE TEXT OUTPUT @V387398 01547560
  1987. LA R3,1(,R3) BYTE COUNT JUST TRANSLATED @V387398 01547630
  1988. AR R1,R3 POINT TO NEXT BYTE TO TRANSLATE @V387398 01547700
  1989. SR R0,R3 BYTES REMAINING @V387398 01547770
  1990. BP TXTLP LOOP IF MORE TO TRANSLATE @V387398 01547840
  1991. NOAPLW EQU * @V305798 01548000
  1992. OI CONSTAT,CONESCP CONTASK PROCESSED @V200830 01549000
  1993. LA R1,CONRETBF FRET AFTER WRITE DONE @V200730 01550000
  1994. ST R1,TRQBCRT SET RETURN PROCESSING @V200730 01551000
  1995. LA R1,CONCCW1 CCW START ADDRESS @V200830 01552000
  1996. TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 01554000
  1997. BNZ BLD77WRT WRITE DATA @V60A6B6 01555000
  1998. B BLD66WRT 3066 WRITE DATA @V200730 01556000
  1999. EJECT 01557000
  2000. CRTFULL EQU * @VM01089 01558000
  2001. TM CONPARM,LOGDROP+LOGHOLD IS THIS A LOGOFF REQ. @VM01089 01559000
  2002. BNZ CRTMORE YES, PUT SCREEN IN MORE STATUS @VM01089 01560000
  2003. TM VMMLVL2,VMMNHOLD ALLOWED TO HOLD? HRC101DK 01560300
  2004. BO CRTMORE NOPE, NEVER HOLD HRC101DK 01560600
  2005. TM TRQBFLAG,CRTALRM ALARM MESSAGE DISPLAYED ? @VM01089 01561000
  2006. BO CRTHOLD YES, HOLD SCREEN @V200730 01562000
  2007. B CRTMORE SCREEN TO MORE... @V200730 01563000
  2008. SPACE 2 01564000
  2009. STRTREAD EQU * READ OR CONTROL CONTASK @V200830 01565000
  2010. TM CONSTAT,CONSYNC SYNCHRONIZATION TASK ? @V200830 01566000
  2011. BZ STRTREDY NO -- MUST BE A READ @V200830 01567000
  2012. BAL R3,CONRET RETURN CONTASK TO DMKQCN @V200830 01568000
  2013. B NOCTL CHECK FOR MORE CONTASK'S @V200830 01569000
  2014. STRTREDY EQU * BUILD CCW'S FOR READ @V200830 01570000
  2015. MVI RDEVTFLG,RDEVREAD+RDEVCTL READ AND CONTROL @V200830 01571000
  2016. OI CONSTAT,CONESCP CONTASK PROCESSED @V200830 01572000
  2017. LA R1,NOCTL RETURN PROCESSING @V200730 01573000
  2018. ST R1,TRQBCRT SET RETURN PROCESSING @V200730 01574000
  2019. TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270? @V60A6B6 01575000
  2020. BZ TST66CP NO, TEST FOR 3066 @V60A6B6 01576000
  2021. TM CONPARM,INHIBIT NON-DISPLAY DATA ?? @V200830 01577000
  2022. BO SETPRO YES @V200730 01578000
  2023. TM CONPARM,VMGENIO VIRT MACH READ DATA ?? @V200830 01579000
  2024. BO BLD77VMR YES @V200730 01580000
  2025. B BLD77CPR CP READ @V200730 01581000
  2026. SETPRO TM CONPARM,VMGENIO VIRT MACH READ DATA ?? @V200830 01582000
  2027. TM CONPARM,INHIBIT NON-DISPLAY DATA ?? HRC001DK 01582100
  2028. BNO DCC014 HRC001DK 01582200
  2029. ICM R1,15,VMHRCALL GET A(RECALL BUFFER) HRC001DK 01582300
  2030. BZ *+4+4 NONE, FORGET IT HRC001DK 01582400
  2031. OI 0(R1),INHIBIT DON'T KEEP THIS ONE ... HRC001DK 01582500
  2032. DCC014 TM CONPARM,VMGENIO V.MACH READ ? @V200830 HRC001DK 01582600
  2033. BO BLD77VMP YES @V200730 01583000
  2034. B BLD77CPP CP READ @V200730 01584000
  2035. SPACE 01585000
  2036. TST66CP TM CONPARM,VMGENIO VIRT MACH READ DATA ?? @V200830 01586000
  2037. BO BLD66VMR YES @V200730 01587000
  2038. B BLD66CPR CP READ @VM03094 01588000
  2039. SPACE 2 01589000
  2040. FAKESUB EQU * REMOVE FAKE ATTRIBUTE CHARACTER @VM03094 01590000
  2041. CLI 0(R3),X'00' LOOKING FOR ENDING CHARACTER @VM03094 01591000
  2042. BER R14 YES, RETURN TO IN LINE CODE @VM03094 01592000
  2043. CLI 0(R3),X'1D' IS FAKE ATTRIBUTE CHAR. INDICATED@VM03094 01593000
  2044. BNE NOFAKE NO, BYPASS TRANSLATION @VM03094 01594000
  2045. BCT R0,XLATE2 TRANSLATE THE CMPD CHAR IF ANY @VM13277 01594100
  2046. BR R14 RETURN IF NO MORE CHARS @VM13277 01594200
  2047. XLATE2 DS 0H @VM13277 01594300
  2048. TR 1(1,R3),0(R7) TRANSLATE THE COMPOUND CHAR. @V387398 01594450
  2049. LA R3,1(,R3) SKIP X'1D' CHAR @V387398 01594900
  2050. B NOTEXT CONTINUE WITH NEXT CHARACTER @VM13277 01595350
  2051. SPACE 1 @V387398 01596250
  2052. SNGLCHAR EQU 256 OFFSET TO SINGLE CHARACTER XLATE TABLE @V387398 01596700
  2053. SPACE 1 @V387398 01597150
  2054. NOFAKE TM RDEVTMCD,RDEVTEXT 3270 TEXT? @V387398 01597600
  2055. BZ NOTEXT NO, DON'T DO EXTRA TRANSLATE @V387398 01598050
  2056. C R3,IOBMISC IS THIS FIRST LOOK AT BUFFER? @VA09496 01598100
  2057. BNE XLATE NO, TRANSLATE AS USUAL @VA09496 01598150
  2058. CLC 0(4,R3),TSTRQMSG IS IT TEST REQ MESSAGE? @VA09496 01598200
  2059. BE NOTEXT YES, NO XLATE FOR AID X'01' @VA09496 01598250
  2060. XLATE DS 0H @VA09496 01598300
  2061. TR 0(1,R3),SNGLCHAR(R7) TRANSLATE NON-CMPD. TEXT @V387398 01598500
  2062. NOTEXT MVC 0(1,R2),0(R3) SQUEEZE OUT X'1D' CHARS. @V387398 01598950
  2063. LA R2,1(,R2) POINT TO NEXT CHAR. POS. @V387398 01599400
  2064. LA R3,1(,R3) UPDATE BUFFER POINTER BY ONE @VM03094 01600000
  2065. BCT R0,FAKESUB LOOP IF ANOTHER CHARACTER @V387398 01601000
  2066. BR R14 RETURN TO IN LINE CODE @VM03094 01602000
  2067. TSTRQMSG DC XL4'016C6102' SOH % / STX -TEST REQ MSG FORMAT @VA09496 01602050
  2068. SPACE 2 01603000
  2069. TRANSTST EQU * TRANSLATE & TEST FOR COMP. CHAR. @V305798 01604000
  2070. CL R3,F256 LESS THAN 256 ? @V305798 01605000
  2071. BNH APLTST YES, ONLY TRANSLATE & TEST ONCE @V305798 01606000
  2072. TRT 0(256,R4),0(R7) TRANSLATE & TEST DATA @V305798 01607000
  2073. BNZ APLMOVE FOUND COMP. CHAR. - MOVE DATA @VM03094 01608000
  2074. MVC 0(256,R5),0(R4) MOVE DATA TO NEW BUFFER @V305798 01609000
  2075. LA R4,256(,R4) UPDATE CURRENT CONTASK BUFFER PTR@V305798 01610000
  2076. LA R5,256(,R5) UPDATE NEW CONTASK BUFFER PTR @V305798 01611000
  2077. S R3,F256 DECREMENT DATA COUNT @V305798 01612000
  2078. BNPR R10 IF ZERO, RETURN TO IN LINE CODE @VM03040 01613000
  2079. B TRANSTST CONTINUE TRANSLATING DATA @V305798 01614000
  2080. APLMOVE EQU * MOVE DATA INTO NEW CONTASK BUFFER@V305798 01615000
  2081. SR R1,R4 GET LENGTH OF DATA @V305798 01616000
  2082. EX R1,MOVEAPL MOVE DATA INTO NEW BUFFER @VM03040 01617000
  2083. AR R5,R1 UPDATE NEW BUFFER POINTER @V305798 01618000
  2084. AR R4,R1 UPDATE CURRENT BUFFER POINTER @V305798 01619000
  2085. B 4(R10) MOVE FAKE ATTR CHAR. INTO BUFFER @V305798 01620000
  2086. SPACE 01621000
  2087. APLTST EQU * TRANSLATE & TEST FOR COMP. CHAR. @V305798 01622000
  2088. BCTR R3,R0 SUBSTRACT ONE - EX INSTR. @VM03040 01623000
  2089. EX R3,TRTTST TRANSLATE & TEST DATA @VM03040 01624000
  2090. LA R3,1(,R3) UPDATE COUNTER - EX INSTR. @VM03040 01625000
  2091. BNZ APLMOVE FOUND COMPOUND CHARACTER @VM03094 01626000
  2092. BCTR R3,0 SUBTRACT ONE FOR EXECUTE @VA09182 01627100
  2093. EX R3,MOVEAPL MOVE DATA TO BUFFER @VA09182 01627200
  2094. LA R3,1(,R3) RESET BYTE COUNT @VA09182 01627300
  2095. BR R10 RETURN TO IN LINE CODE @V305798 01628000
  2096. EJECT 01629000
  2097. NOTCTL DS 0H @V407508 01630100
  2098. SWITCH CONTINUE PROCESSING ON I/O PROC @V407508 01630200
  2099. NOCTL DS 0H @V407508 01630300
  2100. NI RDEVTFLG,X'FF'-RDEVCTL RESET CTL FLAG @V407508 01630400
  2101. L R6,RDEVCON GET CONTASK STACK @V200730 01631000
  2102. LTR R6,R6 ANY TO DO ?? @V200730 01632000
  2103. BZ FRETIOB NO -- CLEAN UP AND EXIT @VM08587 01633000
  2104. TM CONSTAT,CONACTV FINISHED INPUT CONTASK ? @VM08587 01634000
  2105. BZ BLDCCWS NO -- TRY TO START IT UP @VM08587 01635000
  2106. BAL R3,CONRET RETURN THE FINISHED TASK @VM08587 01636000
  2107. B NOCTL TAKE ANOTHER LOOK @VM08587 01637000
  2108. FRETIOB EQU * @VA01632 01638000
  2109. CLRCTL NI RDEVTFLG,X'FF'-RDEVCTL NO CTL MODE @V200730 01640000
  2110. IDLEIOB EQU * FRET IOBLOK AND SIT IDLE UNLESS @VA02361 01641000
  2111. * COPIED IOBLOK 01642000
  2112. TM RDEVGRIC,GRAPHAT ATTN PENDING? HRC101DK 01642200
  2113. BO ATTNINT1 YES - GO TAKE CARE OF IT HRC101DK 01642400
  2114. IDLEIOB1 EQU * HRC101DK 01642600
  2115. C R10,IOBLINK COPIED IOBLOK ? @VA02361 01643000
  2116. BNE *+8 YES -- SOME IOBLOK STILL ACTIVE @VA02361 01644000
  2117. NI RDEVFLAG,X'FF'-RDEVACTV NO -- NO ACTIVE IOBLOK @VA02361 01645000
  2118. RELIOBLK BAL R3,FRETIOER FRET ANY IOERBLOK @VA04772 01645500
  2119. LR R1,R10 ADDRESS OF IOBLOK TO FRET @VA02361 01646000
  2120. LA R0,IOBSIZE AND SIZE OF IT. @VA02361 01647000
  2121. CALL DMKFRET @VA02361 01648000
  2122. GRFEXIT GOTO DMKDSPCH DISPATCH @V200830 01649000
  2123. SPACE 3 01650000
  2124. SPACE 1 01651000
  2125. SPACE 2 01652000
  2126. EJECT 01653000
  2127. BLD77WRT EQU * BUILD WRITE CCWS @V305798 01654000
  2128. LA R0,4 WRITE CCW CONTROL CHARS. SIZE @V60A6B6 01655100
  2129. AH R0,CONCNT ADD IN THE CONTASK DATA COUNT @V60A6B6 01655200
  2130. SLR R2,R2 CLEAR THE INDEX REGISTER @V60A6B6 01655300
  2131. L R2,RDEVGRTB LOAD GRTBLOK START ADDRESS... @V60A6B6 01655400
  2132. MVC CONCCW1(24),GRTWRTCP-GRTBLOK(R2) GET MODELS @V60A6B6 01655500
  2133. MVI CONCCW4+4,WCC0 SET UP WRITE CONTROL CHARACTER HRC310DK 01655660
  2134. MVI CONCCW4+5,SBA ADD A SET BUFFER ADDRESS ORDER @V60A6B6 01655700
  2135. TM RDEVSTA3,RDEVEWRT Erase/write required? HRC071DK 01655710
  2136. BZ NOEWA No HRC071DK 01655720
  2137. NI RDEVSTA3,255-RDEVEWRT Turn off flag HRC071DK 01655730
  2138. MVI CONCCW4+4,WCC6 Use unlock WCC HRC071DK 01655740
  2139. MVI CONCCW2,EWR Set CCW to Erase Write HRC071DK 01655750
  2140. CLI RDEVMDL,X'02' Model num > 2 ? HRC071DK 01655760
  2141. BNH NOEWA No, its 2 or less HRC071DK 01655770
  2142. MVI CONCCW2,EWA CCW to Erase Write Alt HRC071DK 01655780
  2143. NOEWA EQU * HRC071DK 01655790
  2144. STH R0,CONCCW2+6 SET TOTAL DATA COUNT INTO CCW. @V60A6B6 01655800
  2145. STC R4,CONCCW1+5 SAVE NUMBER OF LINES @V200830 01657000
  2146. LA R3,CONCCW4+4 DATA START @V200830 01661000
  2147. STCM R3,7,CONCCW2+1 SET CCW ADDRESS @V200830 01662000
  2148. SR R3,R3 CLEAR @V200830 01663000
  2149. IC R3,RDEVCORD GET LINE POSN @V200730 01664000
  2150. TM TRQBFLAG,CRTSIO IS USER WRITING TO INPUT AREA @VM03094 01665000
  2151. BZ *+8 NO,BYPASS GETTING LINE COORDINATE@VM03094 01666000
  2152. IC R3,TRQBLINE GET INPUT AREA LINE COORDINATE @VM03094 01667000
  2153. SLL R3,1 TIMES 2 @V200730 01668000
  2154. LH R2,CONCCW4+8 GET SBA FROM DATA HRC301DK 01669105
  2155. CH R2,=X'1DE8' IS THIS A HIGHLIGHT SBA HRC301DK 01669110
  2156. BNE BLD77REG NO, CONTINUE HRC301DK 01669115
  2157. LTR R3,R3 ON FIRST LINE? HRC310DK 01669120
  2158. BZ BLD77LST YUP, PUT ON LAST LINE HRC310DK 01669125
  2159. L R2,=A(DMKGRTBF) TABLE OF LAST CHARS HRC310DK 01669130
  2160. S R3,F2 BACK UP ONE HRC310DK 01669135
  2161. B BLD77SBA AND INSERT SBA HRC310DK 01669140
  2162. BLD77LST L R2,RDEVGRTB GET THE RIGHT GRT BLOCK HRC310DK 01669145
  2163. LA R3,GRTLAST-GRTBLOK POINT AT THE ADDR'S HRC310DK 01669150
  2164. B BLD77SBA HRC301DK 01669155
  2165. BLD77REG EQU * HRC310DK 01669160
  2166. L R2,=A(DMKGRTBL) HRC301DK 01669165
  2167. BLD77SBA EQU * HRC301DK 01669170
  2168. * The following code thru label NOTMD5 allows this update to HRC073DK 01669200
  2169. * be applied and operate correctly with or without the HRC073DK 01669250
  2170. * presence of modification HRC310DK. HRC073DK 01669300
  2171. CLI RDEVMDL,X'05' IS THIS A 3278-5? HRC073DK 01669350
  2172. BNE NOTMD5 NO; NO SPECIAL PROCESSING HRC073DK 01669400
  2173. C R2,=V(DMKGRTBF) USING 'LAST CHAR' TABLE? HRC073DK 01669450
  2174. BE MD5LAST YES, SWITCH IT TO MOD 5 VERSION HRC073DK 01669500
  2175. C R2,=A(DMKGRTBL) USING NORMAL SBA TABLE? HRC073DK 01669550
  2176. BNE NOTMD5 NO; NO FURTHER ACTION REQUIRED HRC073DK 01669600
  2177. L R2,=A(DMKGRTCL) USE MODEL 5 'NORMAL' SBA TABLE HRC073DK 01669650
  2178. B NOTMD5 REJOIN ORIGINAL CODE HRC073DK 01669700
  2179. MD5LAST EQU * HRC073DK 01669750
  2180. L R2,=A(DMKGRTCF) USE MODEL 5 'LAST CHAR' TABLE HRC073DK 01669800
  2181. NOTMD5 EQU * HRC073DK 01669850
  2182. LH R3,0(R2,R3) LOAD CORRECT EBCDIC DATA @VA60A6B6 HRC073DK 01669900
  2183. STH R3,CONCCW4+6 SET BUFFER ADDRESS @V200830 01670000
  2184. TM CONPARM,ALARM ALARM WITH MESSAGE ?? @V200830 01671000
  2185. BZ CALLIOS NO, CONT @V200730 01672000
  2186. OI TRQBFLAG,CRTALRM FLAG SCREEN ALARM @V200730 01673000
  2187. OI CONCCW4+4,WCC5 SET ALARM BIT @V200830 01674000
  2188. B CALLIOS CONT @V200730 01675000
  2189. SPACE 01676000
  2190. BLD77IDS L R1,IOBCAW GET CCW ADDRESS FOR BUILD @V200730 01677000
  2191. SLR R2,R2 CLEAR THE INDEX REGISTER @V60A6B6 01678100
  2192. L R2,RDEVGRTB GET GRTBLOK START ADDRESS... @V60A6B6 01678200
  2193. MVC 0(24,R1),GRTWINCP-GRTBLOK(R2) MOVE IN CCWS @V60A6B6 01678300
  2194. STCM R4,7,17(R1) SET DATA ADDRESS @V200730 01680000
  2195. STH R3,22(R1) SET DATA COUNT @V200730 01681000
  2196. BLDRDEX LA R1,RDEXIT RETURN PROCESSING 01684000
  2197. ST R1,TRQBCRT SET RETURN ADDRESS @V200730 01685000
  2198. L R1,IOBCAW GET CCW START @V200730 01686000
  2199. B CALLIOS DO IO @V200730 01687000
  2200. SPACE 01693000
  2201. BLD77RMI L R1,IOBCAW GET CCW ADDRESS @V200730 01694000
  2202. L R2,RDEVGRTB GET GRTBLOK START ADDRESS... @V60A6B6 01695100
  2203. MVC 0(24,R1),GRTRMICP-GRTBLOK(R2) MOVE IN CCWS @V60A6B6 01695200
  2204. L R3,IOBMISC GET BUFFER ADDRESS @V200730 01696000
  2205. STCM R3,7,17(R1) SET DATA ADDRESS @V200730 01697000
  2206. B CALLIOS CONT @V200730 01698000
  2207. EJECT 01699000
  2208. BLD77FMT EQU * @V60A6B6 01701000
  2209. SR R3,R3 HRC101DK 01702990
  2210. IC R3,RDEVGRTY GET THE INDEXED VALUE HRC101DK 01703980
  2211. L R1,=A(DMKBOXMD) HRC101DK 01704970
  2212. L R1,0(R3,R1) GET ADDRESS OF LOGO HRC101DK 01705960
  2213. SLL R3,2 Multiply index by 4 HRC071DK 01705963
  2214. LA R3,FMT77M2(R3) -> CCW for this model # HRC071DK 01705965
  2215. * If we are running on Hercules-380, then update the "VM/370 HRC370DK 01705970
  2216. * Online" message to say "VM/380 Online". HRC370DK 01705980
  2217. MVC 748(R1,1),INSTWRD1 zap with 7 or 8 from PSA HRC370DK 01705990
  2218. MVC 14(2,R3),0(R1) Move logo size to CCW HRC071DK 01706951
  2219. LA R1,2(,R1) HRC101DK 01707940
  2220. STCM R1,7,9(R3) Move logo addr to CCW HRC071DK 01708931
  2221. * We update the "VM/370" message on the logo screen as well. HRC370DK 01708940
  2222. L R1,FMT77CCW get address of big logo screen HRC370DK 01708950
  2223. MVC 8(1,R1),INSTWRD1 zap with 7 or 8 from PSA HRC370DK 01708960
  2224. LR R1,R3 R1 -> Final CCW for IOS HRC071DK 01714100
  2225. TM VMOSTAT,VMSYSOP IS USER SYSTEM OPERATOR @VM08601 01717100
  2226. BZ CALLIOS NO - FORMAT CCW'S OK @VM08601 01717200
  2227. B GRFCLRT YES - CLEAR THE SCREEN @V60A6B6 01718000
  2228. SPACE 2 01719000
  2229. * OF THE OPERATIONS BELOW, THOSE WHICH BRANCH TO 'SETCCWS' 01720000
  2230. * HAVE AN OFFSET FROM THE START OF THE GRTBLOK RATHER THAN 01721000
  2231. * AN ADDRESS OF A CCW STRING LOADED INTO REGISTER 1. 01722000
  2232. SPACE 01723000
  2233. BLD77HLD LA R1,HLD77CCW CCW ADDRESS @V200730 01724000
  2234. B SETCCWS @V60A6B6 01725000
  2235. BLD77MOR LA R1,MOR77CCW CCW ADDRESS @V200730 01726000
  2236. B SETCCWS @V60A6B6 01727000
  2237. BLD77WNG LA R1,WNG77CCW CCW ADDRESS @V200730 01728000
  2238. B CALLIOS @V200730 01729000
  2239. BLD77NAC LA R1,NAC77CCW CCW ADDRESS @V200730 01730000
  2240. B SETCCWS @V60A6B6 01731000
  2241. BLD77CRD LA R1,CRD77CCW CCW ADDRESS @VA04374 01732200
  2242. TM RDEVTFLG,RDEVMORE+RDEVHOLD IN MORE OR HOLD @VA05100 01732410
  2243. BZ SETCCWS @V60A6B6 01732700
  2244. LA R1,MRD77CCW ELSE, LEAVE STATUS AS IS ... @VA04374 01732800
  2245. B SETCCWS @V60A6B6 01733100
  2246. BLD77RUN LA R1,RUN77CCW CCW ADDRESS @V200730 01734000
  2247. B SETCCWS @V60A6B6 01735100
  2248. BLD77CLR EQU * 01735200
  2249. TM TRQBFLAG,CRTUSEWA DO WE NEED A E/W? 01735300
  2250. BZ BLD77CLS 01735400
  2251. NI TRQBFLAG,X'FF'-CRTUSEWA RESET THE E/W FLAG 01735500
  2252. LA R1,EWR77CCW CCW ADDRESS 01735600
  2253. B SETCCWS 01735700
  2254. BLD77CLS EQU * 01735800
  2255. LA R1,CLR77CCW CCW ADDRESS @V60A6B6 01735900
  2256. MVI RDEVKEYC,0 CLEAR LAST INTERRUPT KEY HRC310DK 01735950
  2257. B SETCCWS @V60A6B6 01736000
  2258. BLD77VMR LA R1,VMR77CCW CCW ADDRESS @V200730 01738000
  2259. B SETCCWS @V60A6B6 01739000
  2260. BLD77CPR LA R1,CPR77CCW CCW ADDRESS @V200730 01740000
  2261. B SETCCWS @V60A6B6 01741000
  2262. BLD77CPP LA R1,CPP77CCW CCW ADDRESS @V200730 01742000
  2263. B SETCCWS @V60A6B6 01743000
  2264. BLD77VMP LA R1,VMP77CCW CCW ADDRESS @V200730 01744000
  2265. B SETCCWS @V60A6B6 01745000
  2266. BLD77RST LA R1,RST77CCW CCW ADDRESS HRC310DK 01745100
  2267. B SETCCWS HRC310DK 01745200
  2268. EJECT 01746000
  2269. * LOCAL 3270 CHANNEL PROGRAMS FOR ALL DISPLAY SIZES 01747000
  2270. SPACE 01748000
  2271. TAB77CCW CCW X'0B',0,SILI+CC,1 01763000
  2272. CCW X'01',*-*,SILI,9 01764000
  2273. SPACE 01765000
  2274. SNSCCW CCW X'04',*-*,SILI,1 SENSE FOR PRINTER @V305798 01766000
  2275. RDCOPY CCW X'0B',0,SILI+CC,1 SELECT CCW @V305798 01767000
  2276. CCW X'02',*-*,SILI,3848 READ SCREEN DATA @VM03116 01768000
  2277. WTCOPY CCW X'0B',0,SILI+CC,1 SELECT CCW @V305798 01769000
  2278. CCW X'05',*-*,SILI,*-* WRITE TO PRINTER @VA09763 01770000
  2279. SPACE 01776000
  2280. FMT77M2 CCW X'01',DMKGRTFD,SILI+CD,24 Model 2 HRC071DK 01777000
  2281. CCW X'00',*-*,SILI,792 HRC071DK 01777200
  2282. FMT77M3 CCW X'01',DMKGRTFD,SILI+CD,24 Model 3 HRC071DK 01777400
  2283. CCW X'00',*-*,SILI,792 HRC071DK 01777600
  2284. FMT77M4 CCW X'01',DMKGRTFD,SILI+CD,24 Model 4 HRC071DK 01777800
  2285. CCW X'00',*-*,SILI,792 HRC071DK 01778000
  2286. FMT77M2A CCW X'01',DMKGRTFD,SILI+CD,24 Model 2A HRC071DK 01778200
  2287. CCW X'00',*-*,SILI,792 HRC071DK 01778400
  2288. FMT77M5 CCW X'01',DMKGRTFD,SILI+CD,24 Model 5 HRC073DK 01778500
  2289. CCW X'00',*-*,SILI,792 HRC073DK 01778510
  2290. FMT77CCW EQU FMT77M2 HRC071DK 01778600
  2291. MODEL2 EQU X'00' SCREEN DISP FOR 3278 MOD 2 IS 00 HRC101DK 01780030
  2292. MODEL3 EQU X'04' SCREEN DISP FOR 3278 MOD 3 IS 04 HRC101DK 01780040
  2293. MODEL4 EQU X'08' SCREEN DISP FOR 3278 MOD 4 IS 08 HRC101DK 01780050
  2294. MODEL2A EQU X'0C' SCREEN DISP FOR 3278 MOD 2A IS 12 @V60A6B6 01780100
  2295. SPACE 01781000
  2296. WNG77CCW CCW X'0B',0,SILI+CC,1 @V200730 01805000
  2297. CCW X'01',WNG3277,SILI,1 @V200730 01806000
  2298. EJECT 01816000
  2299. COPYDWSZ DC A(3848/8,5120/8,6880/8,3200/8) HRC101DK 01830990
  2300. SPACE 2 01836000
  2301. KEYTBLP DC A(DATA77) 00 @V200730 01911000
  2302. DC A(CLRKEY) 04 @V305798 01912000
  2303. DC A(PA1KEY) 08 @V200730 01913000
  2304. DC A(PA3KEY) 0C @V200730 01914000
  2305. DC A(CRDREAD) 10 @V60A6B6 01915000
  2306. DC A(PFKEY) 14 @V200730 01916000
  2307. DC A(CNCLKEY) 18 @V60A6B6 01917000
  2308. DC A(TESTREQ) 1C @V60A6B6 01918000
  2309. SPACE 2 01919000
  2310. CPY77D DC AL1(WCCP,SBA,X'40',X'40') COPY CONTROL CHARS. @V60A6B6 01920000
  2311. WNG3277 DC AL1(WCC4) @VA07171 01921000
  2312. WCCP EQU X'F8' FOR STARTING PRINTER OPERATION @V60A6B6 01922000
  2313. NOMC DC X'10' DON'T ALLOW MONITOR CALL @VA09459 01925000
  2314. DS 0H @V60A6B6 01926000
  2315. EJECT 01939000
  2316. BLD66WRT EQU * BUILD 3066 WRITE CCW STRING @V305798 01940000
  2317. LH R3,CONCNT DATA COUNT @V200830 01941000
  2318. MVC CONCCW1(3*8),WRT66CCW SET CCWS @V200830 01942000
  2319. STC R4,CONCCW1+5 SAVE NUMBER OF LINES @V200830 01943000
  2320. STH R3,CONCCW2+6 SET DATA COUNT @V200830 01944000
  2321. LA R3,CONDATA DATA START @V200830 01945000
  2322. STCM R3,7,CONCCW2+1 SET CCW ADDRESS @V200830 01946000
  2323. MVC CONCCW4(2),RDEVCORD SET BUFFER ADDRESS @V200830 01947000
  2324. LA R3,CONCCW4 DATA ADDRESS @V200830 01948000
  2325. STCM R3,7,CONCCW1+1 SET CCW ADDESS @V200830 01949000
  2326. MVI WRT66ALM,X'03' ASSUME NO ALARM @V200830 01950000
  2327. TM CONPARM,ALARM ALARM WITH THIS MESSAGE @V200830 01951000
  2328. BZ CALLIOS NO, CONT @V200730 01952000
  2329. OI TRQBFLAG,CRTALRM FLAG SCREEN ALARM @V200730 01953000
  2330. MVI WRT66ALM,X'0B' SOUND ALARM @V200830 01954000
  2331. B CALLIOS CONT @V200730 01955000
  2332. SPACE 01956000
  2333. BLD66RMI L R1,IOBCAW GET CCW ADDRESS @V200730 01957000
  2334. MVC 0(32,R1),RMI66CCW GET MODEL CCWS @V200730 01958000
  2335. L R3,IOBMISC GET BUFFER ADDRESS @V200730 01959000
  2336. STCM R3,7,1(R1) SET CURSOR DATA ADDRESS @V200730 01960000
  2337. LA R3,6(R3) DATA ADDRESS @V200730 01961000
  2338. STCM R3,7,17(R1) SET ADAT CCW ADDRESS @V200730 01962000
  2339. B CALLIOS @V200730 01963000
  2340. SPACE 01964000
  2341. BLD66FMT LA R1,FMT66CCW CCW ADDRESS @V200730 01965000
  2342. B CALLIOS @V200730 01966000
  2343. BLD66HLD LA R1,HLD66CCW CCW ADDRESS @V200730 01967000
  2344. B CALLIOS @V200730 01968000
  2345. BLD66MOR LA R1,MOR66CCW CCW ADDRESS @V200730 01969000
  2346. B CALLIOS @V200730 01970000
  2347. BLD66WNG LA R1,WNG66CCW CCW ADDRESS @V200730 01971000
  2348. B CALLIOS @V200730 01972000
  2349. BLD66NAC LA R1,NAC66CCW CCW ADDRESS @V200730 01973000
  2350. B CALLIOS @V200730 01974000
  2351. BLD66CRD MVI CLRDATA,C' ' BLANK AN AREA @V200730 01975000
  2352. MVC CLRDATA+1(159),CLRDATA CLEAR TO BLANKS @V200730 01976000
  2353. LA R1,CRD66CCW POINT TO RUN MSG CCW @VA04374 01976200
  2354. TM RDEVTFLG,RDEVMORE+RDEVHOLD IN MORE OR HOLD ?? @VA05100 01976410
  2355. BZ CALLIOS NO, SET STATUS TO RUNNING @VA04374 01976600
  2356. LA R1,MRD66CCW ELSE, LEAVE SCREEN STAT AS IS @VA04374 01976800
  2357. B CALLIOS @V200730 01978000
  2358. BLD66RUN LA R1,RUN66CCW CCW ADDRESS @V200730 01979000
  2359. MVI WRT66ALM,X'03' SET END TO NOP @V200830 01980000
  2360. B CALLIOS @V200730 01981000
  2361. BLD66CLR LA R1,CLR66CCW CCW ADDRESS @V200730 01982000
  2362. B CALLIOS @V200730 01983000
  2363. BLD66VMR LA R1,VMR66CCW CCW ADDRESS @V200730 01984000
  2364. B CALLIOS @V200730 01985000
  2365. BLD66CPR LA R1,CPR66CCW CCW ADDRESS @V200730 01986000
  2366. B CALLIOS @V200730 01987000
  2367. EJECT 01988000
  2368. * 3066 CCW PACKAGES 01989000
  2369. SPACE 01990000
  2370. WRT66CCW CCW X'27',*-*,SILI+CC,2 @V200730 01991000
  2371. CCW X'01',*-*,SILI+CC,*-* @V200730 01992000
  2372. CCW X'08',RUN66CCW,0,0 TIC TO WRITE RUNNING @V200830 01993000
  2373. SPACE 01994000
  2374. RMI66CCW CCW X'0E',*-*,SILI+CC,3 @V200730 01995000
  2375. CCW X'27',SBA3300,SILI+CC,2 @V200730 01996000
  2376. CCW X'06',*-*,SILI+CC,BUFINLTH @V200730 01997000
  2377. CCW X'03',0,SILI,1 @V200730 01998000
  2378. SPACE 01999000
  2379. FMT66CCW CCW X'07',0,SILI+CC,1 @V200730 02000000
  2380. CCW X'27',SBA0000,SILI+CC,2 @V200730 02001000
  2381. CCW X'01',DMKGRTFO,SILI+CC,20 @V60A6B6 02002000
  2382. CCW X'27',SBA3460,SILI+CC,2 @V200730 02003000
  2383. CCW X'01',RUNNING,SILI+CC,20 @V60A6B6 02004000
  2384. CCW X'0F',SBA3300,SILI+CC,2 @V200730 02005000
  2385. CCW X'03',0,SILI,1 @V200730 02006000
  2386. SPACE 02007000
  2387. HLD66CCW CCW X'27',SBA3460,SILI+CC,2 @V200730 02008000
  2388. CCW X'01',HOLDING,SILI+CC,20 @V60A6B6 02009000
  2389. CCW X'03',0,SILI,1 @V200730 02010000
  2390. SPACE 02011000
  2391. MOR66CCW CCW X'27',SBA3460,SILI+CC,2 @V200730 02012000
  2392. CCW X'01',MOREMSG,SILI+CC,20 @V60A6B6 02013000
  2393. CCW X'03',0,SILI,1 @V200730 02014000
  2394. SPACE 02015000
  2395. NAC66CCW CCW X'27',SBA3460,SILI+CC,2 @V200730 02016000
  2396. CCW X'01',NOTACCPT,SILI+CC,20 @V60A6B6 02017000
  2397. WNG66CCW CCW X'0B',0,SILI+CC,1 02018000
  2398. CCW X'03',0,SILI,1 02019000
  2399. SPACE 02020000
  2400. CRD66CCW CCW X'27',SBA3300,SILI+CC,2 02021000
  2401. CCW X'01',CLRDATA,SILI+CC,140 @V200730 02022000
  2402. CCW X'27',SBA3460,SILI+CC,2 @VA04374 02023200
  2403. CCW X'01',RUNNING,SILI+CC,20 @V60A6B6 02023400
  2404. CCW X'0F',SBA3300,SILI+CC,2 @VA04374 02023600
  2405. CCW X'03',0,SILI,1 @V200730 02024000
  2406. SPACE 2 02024100
  2407. MRD66CCW CCW X'27',SBA3300,SILI+CC,2 @VA04374 02024200
  2408. CCW X'01',CLRDATA,SILI+CC,140 @VA04374 02024300
  2409. CCW X'0F',SBA3300,SILI+CC,2 @VA04374 02024400
  2410. CCW X'03',0,SILI,1 @VA04374 02024500
  2411. SPACE 02025000
  2412. RUN66CCW CCW X'27',SBA3460,SILI+CC,2 @V200730 02026000
  2413. CCW X'01',RUNNING,SILI+CC,20 @V60A6B6 02027000
  2414. WRT66ALM CCW X'03',0,SILI,1 @V200830 02028000
  2415. SPACE 02029000
  2416. CLR66CCW CCW X'0E',CLRMI,SILI+CC,3 @V200730 02030000
  2417. CCW X'0F',SBA0000,SILI+CC,2 @V200730 02031000
  2418. CCW X'27',SBA3300,SILI+CC,2 @V200730 02032000
  2419. CCW X'06',CLRDATA,SILI+CC,160 @V200730 02033000
  2420. CCW X'07',0,SILI+CC,1 @V200730 02034000
  2421. CCW X'27',SBA3300,SILI+CC,2 @V200730 02035000
  2422. CCW X'01',CLRDATA,SILI+CC,160 @V200730 02036000
  2423. CCW X'0F',CLRMI,SILI+CC,2 @V200730 02037000
  2424. CCW X'03',0,SILI,1 @V200730 02038000
  2425. CLRMI DC CL3' ' @V200730 02039000
  2426. CLRDATA DC CL160' ' @V200730 02040000
  2427. SPACE 02041000
  2428. VMR66CCW CCW X'27',SBA3460,SILI+CC,2 @V200730 02042000
  2429. CCW X'01',VMREAD,SILI+CC,20 @V60A6B6 02043000
  2430. CCW X'03',0,SILI,1 @V200730 02044000
  2431. SPACE 02045000
  2432. CPR66CCW CCW X'27',SBA3460,SILI+CC,2 @V200730 02046000
  2433. CCW X'01',CPREAD,SILI+CC,20 @V60A6B6 02047000
  2434. CCW X'03',0,SILI,1 @V200730 02048000
  2435. SPACE 3 02049000
  2436. * CONSTANTS 02050000
  2437. RUNNING DC CL20'RUNNING' @V60A6B6 02050010
  2438. HOLDING DC CL20'HOLDING' @V60A6B6 02050020
  2439. MOREMSG DC CL20'MORE...' @V60A6B6 02050030
  2440. NOTACCPT DC CL20'NOT ACCEPTED' @V60A6B6 02050040
  2441. CPREAD DC CL20'CP READ' @V60A6B6 02050050
  2442. VMREAD DC CL20'VM READ' @V60A6B6 02050060
  2443. SPACE 02050070
  2444. ENTER EQU X'80' 3066 ENTER MASK @V60A6B6 02050080
  2445. CANCEL EQU X'40' 3066 CANCEL MASK @V60A6B6 02050090
  2446. SPACE 02050100
  2447. SBA0000 DC AL1(00,00) CORDINATES FOR TOP OF CRT @V200730 02051000
  2448. SBA3300 DC AL1(33,00) COORDINATES FOR READ INPUT DATA @V200730 02052000
  2449. SBA3460 DC AL1(34,60) COORDINATES FOR SYSTEM STATUS @V200730 02053000
  2450. SPACE 02054000
  2451. MSGNUM DC AL1(0,1,2,3,4,30,31,32) ...DMKMSWR MSG NUMBERS @VA08135 02055100
  2452. SPACE 02056000
  2453. DS 0D ALIGN TO DOUBLE WORD BOUNDARY @V200730 02057000
  2454. RDEVKEYC DS 0X Dummy field to accommodate whether HRC101DK HRC072DK 02057500
  2455. * is present or not. HRC072DK 02057510
  2456. TMRVALUE DC D'0' TIME INTERVAL VALUE @V200730 02058000
  2457. PARM3277 DC X'04040102030F060F0F0F0F0F0F0F0F3F' @VA10802 02058110
  2458. PARMLEN EQU 2 LENGTH IN DOUBLEWORDS OF PARM LST@VA03757 02058200
  2459. SPACE 1 02058300
  2460. * BITS DEFINED IN 3277 SENSE BYTE 02058400
  2461. IR EQU X'40' INTERVENTION REQUIRED @VA03757 02058600
  2462. EC EQU X'10' EQUIPEMENT CHECK @VA03757 02058700
  2463. DC EQU X'08' DATA CHECK @VA03757 02058800
  2464. US EQU X'04' UNIT SPECIFY @VA03757 02058900
  2465. SPACE 02059100
  2466. X6A EQU X'6A' @V60A6B6 02059200
  2467. H784 DC H'0784' @V60A6B6 02059300
  2468. H792 DC H'0792' @V60A6B6 02059400
  2469. EJECT 02061000
  2470. LTORG @V200730 02062000
  2471. EJECT 02063000
  2472. GRTBLOK 02063010
  2473. * 3270 CCW OFFSETS INTO THE GRTBLOK 02063020
  2474. SPACE 02063030
  2475. CLR77CCW EQU GRTCLRCP-GRTBLOK @V60A6B6 02063040
  2476. CNC77CCW EQU GRTCNCCP-GRTBLOK HRC310DK 02063045
  2477. CPP77CCW EQU GRTCPPCP-GRTBLOK @V60A6B6 02063050
  2478. CPR77CCW EQU GRTCPRCP-GRTBLOK @V60A6B6 02063060
  2479. CRD77CCW EQU GRTCRDCP-GRTBLOK @V60A6B6 02063070
  2480. EWR77CCW EQU GRTEWRCP-GRTBLOK 02063080
  2481. HLD77CCW EQU GRTHLDCP-GRTBLOK @V60A6B6 02063090
  2482. MOR77CCW EQU GRTMORCP-GRTBLOK @V60A6B6 02063100
  2483. MRD77CCW EQU GRTMRDCP-GRTBLOK @V60A6B6 02063110
  2484. NAC77CCW EQU GRTNACCP-GRTBLOK @V60A6B6 02063120
  2485. RUN77CCW EQU GRTRUNCP-GRTBLOK @V60A6B6 02063130
  2486. RST77CCW EQU GRTRSTCP-GRTBLOK HRC310DK 02063135
  2487. VMP77CCW EQU GRTVMPCP-GRTBLOK @V60A6B6 02063140
  2488. VMR77CCW EQU GRTVMRCP-GRTBLOK @V60A6B6 02063150
  2489. SPACE 3 02063160
  2490. COPY TIMER @V200730 02064000
  2491. SPACE 2 02065000
  2492. EJECT 02081000
  2493. COPY DEVTYPES @V200730 02082000
  2494. COPY EQU @V200730 02083000
  2495. COPY VBLOKS @V200730 02084000
  2496. COPY RBLOKS @V200730 02085000
  2497. COPY CONBUF @V200730 02086000
  2498. BUFNORM EQU BUFINLTH+6 SIZE OF NORMAL READ BUFFER @VM03043 02087000
  2499. COPY IOBLOKS @V200730 02089000
  2500. COPY IOER @V200730 02090000
  2501. COPY VMBLOK @V200730 02091000
  2502. COPY SAVE @V200730 02092000
  2503. PSA @V200730 02093000
  2504. COPY XINTBLOK @V305798 02094000
  2505. END 02095000