Table of Contents

DMKOPR Source

References

Source Listing

DMKOPR.ASSEMBLE.txt
  1. OPR TITLE 'DMKOPR (CP) VM/370 - RELEASE 6' 00001000
  2. ISEQ 73,80 VALIDATE SEQUENCING OF ASSEMBLE FILE 00002000
  3. *. 00003000
  4. * MODULE NAME - 00004000
  5. * 00005000
  6. * DMKOPR 00006000
  7. * 00007000
  8. * FUNCTION - 00008000
  9. * 00009000
  10. * PROVIDE THE NECCESSARY SUPPORT FOR FOR VM/370 CONSOLE. 00010000
  11. * CERTAIN ROUTINES WITHIN THE CONTROL PROGRAM CAN NOT 00011000
  12. * CALL DMKQCN TO ISSUE WRITES TO THE SYSTEM OPERATOR, 00012000
  13. * THIS MODULE WILL DETERMINE THE SYSTEM'S PRIMARY CONSOLE ; 00013000
  14. * (3210, 3215, 3066, 3270,3278), AND BUILD A CHANNEL PROGRAM 00014000
  15. * TO HANDLE THE REQUESTED CALL. 00015000
  16. * 00016000
  17. * 00016100
  18. * IF MESSAGE LENGTH IS GREATER THAN 160 BYTES AND MESSAGE 00016200
  19. * IS FOR A GRAPHICS TYPE DEVICE IT WILL BE TRUNCATED TO 00016300
  20. * 160 BYTES. 00016400
  21. * 00016500
  22. *. 00017000
  23. EJECT 00018000
  24. COPY OPTIONS 00019000
  25. COPY LOCAL OPTIONS 00020000
  26. EJECT 00021000
  27. DMKOPR START 00022000
  28. USING PSA,R0 00023000
  29. USING RDEVBLOK,R8 REAL DEVICE BLOCK 00024000
  30. SPACE 00025000
  31. EXTRN DMKRIODV,DMKRIOCN @V200820 00026000
  32. ENTRY DMKOPRWT @V200731 00027000
  33. SPACE 00028000
  34. *. 00029000
  35. * SUBROUTINE NAME - 00030000
  36. * 00031000
  37. * DMKOPRWT - TO WRITE TO SYSTEMS CONSOLE 00032000
  38. * 00033000
  39. * FUNCTION - 00034000
  40. * 00035000
  41. * TO INITIATE WRITE TO THE PRIMARY SYSTEMS CONSOLE 00036000
  42. * 00037000
  43. * ATTRIBUTES - 00038000
  44. * 00039000
  45. * SERIALLY REUSABLE, CALLED BY BALR R14,R15 00040000
  46. * 00041000
  47. * ENTRY CONDITIONS - 00042000
  48. * 00043000
  49. * GPR0 = MAXIMUM NUMBER OF BYTES 00044000
  50. * GPR1 = ADDRESS OF BUFFER 00045000
  51. * GPR2 = PARAMETER REGISTER - 00046000
  52. * NOAUTO - PREVENT AUTO-CARRIAGE RETURN 00047000
  53. * ALARM - RING THE ALARM 00048000
  54. * GPR14 = RETURN ADDRESS 00049000
  55. * GPR15 = ADDRESS OF DMKOPRWT 00050000
  56. * 00051000
  57. * EXIT CONDITIONS - 00052000
  58. * 00053000
  59. * GPR0 - GPR15 = UNCHANGED 00054000
  60. * CONDITION CODE = 0 (NO ERRORS DETECTED) 00055000
  61. * CONDITION CODE = 1 (ERROR DETECTED - EXAMINE CSW) 00056000
  62. * CONDITION CODE = 2 (MISUSE OF PARAMETERS) 00057000
  63. * CONDITION CODE = 3 (DEVICE IS NON-EXISTANT) 00058000
  64. * 00059000
  65. * CALLS TO OTHER ROUTINES - NONE 00060000
  66. * 00061000
  67. * EXTERNAL REFERENCES - 00062000
  68. * 00063000
  69. * DMKRIODV - ADDRESS OF REAL DEVICE BLOCKS 00064000
  70. * DMKRIOCN - ADDRESS OF POINTER TO SYSTEM PRIMARY CONSOLE 00065000
  71. * 00066000
  72. * TABLES / WORK AREAS - NONE 00067000
  73. * 00068000
  74. * REGISTER USAGE - 00069000
  75. * GPR0 = MAXIMUM BYTE COUNT 00070000
  76. * GPR1 = ADDRESS OF CALLERS BUFFER 00071000
  77. * GPR3 - GPR12 = WORK REGISTERS 00072000
  78. * GPR13 = UNUSED 00073000
  79. * GPR14 = RETURN REGISTER 00074000
  80. * GPR15 = MODULE BASE REGISTER 00075000
  81. *. 00076000
  82. EJECT 00077000
  83. USING DMKOPRWT,R15 00078000
  84. DMKOPRWT DS 0D ENTRY FOR SYSTEM CONSOLE OUTPUT 00079000
  85. STM R0,R15,OPREGS SAVE REGISTERS AT INPUT @V200731 00080000
  86. ST R2,PARM2 SAVE PARAMETER REGISTER 00081000
  87. L R8,=A(DMKRIOCN) GET PRIMARY SYSTEMS CONSOLE POINTER 00082000
  88. LH R3,2(,R8) PICK UP CONSOLE ADDRESS FOR 'SIO' 00083000
  89. LH R8,0(,R8) GET DISPLACEMENT OF RDEVBLOK 00084000
  90. SLL R8,3(0) CONVERT TO BYTE INDEX @V200820 00085000
  91. AL R8,=A(DMKRIODV) FORM ABSOLUTE ADDR. OF CONSOLE RDEVBLOK 00086000
  92. STIDP CPUID STORE CPU IDENTIFICATION @V200731 00087000
  93. CLI CPUVERSN,X'FF' IS THIS A VIRTUAL MACHINE ? @V200731 00088000
  94. BNE TESTCNS NO, GO TEST CONSOLE ADDRESS @V200731 00089000
  95. L R3,FFS GET ALL FFS @V200731 00090000
  96. DC X'83340024' GET CONSOLE ADDRESS (VIRTUAL) @V200731 00091000
  97. BO SETCC3 CONSOLE ADDRESS DOESN'T EXIST @V200731 00092000
  98. B CNS3210 @V200820 00093000
  99. SPACE 00094000
  100. TESTCNS EQU * CHECK FOR GRAPHIC CONSOLE @V200820 00095000
  101. CLI RDEVTYPC,CLASGRAF IS SYSTEM CONSOLE A 3277/3066 @V200731 00096000
  102. BE GRAPHID YES, GO TO GRAPHIC SUPPORT @V200731 00097000
  103. CNS3210 EQU * 00098000
  104. TM PARM,NOAUTO IS A CARRIAGE RETURN NECESSARY @V200731 00099000
  105. BZ WRT10CR YES, GET CORRECT CCWS @V200731 00100000
  106. STCM R1,B'0111',WRT3210+1 RESOLVE CCW DATA ADDRESS @V200731 00101000
  107. STH R0,WRT3210+6 STORE CCW COUNT 00102000
  108. LA R5,WRT3210 ADDRESS OF THE CHANNEL PROGRAM 00103000
  109. B SETCAW DO I/O 00104000
  110. WRT10CR EQU * @V200731 00105000
  111. STCM R1,B'0111',WRT3210A+1 RESOLVE CCW DATA ADDRESS @V200731 00106000
  112. STH R0,WRT3210A+6 STORE CCW COUNT 00107000
  113. LA R5,WRT3210A ADDRESS OF THE CHANNEL PROGRAM 00108000
  114. B SETCAW DO I/O 00109000
  115. SPACE 00110000
  116. GRAPHID EQU * @V200731 00111000
  117. MVC CPXYSTAT(20),RUNLABEL ASSUME 'RUNNING' STATUS @V200731 00112000
  118. CLI RDEVTYPE,TYP3066 IS THIS A 3066 CONSOLE @V200731 00113000
  119. BNE CON3270 NO, GO TO 3277 SUPPORT @V200731 00114000
  120. LA R4,RDEVCORD GET POINTER TO CURRENT LINE @V200731 00115000
  121. STCM R4,B'0111',WRTCRTXY+1 SAVE CURRENT LINE POINTER @V200731 00116000
  122. BAL R10,SETMSLEN PUT MSG IN 80 OR 160 BYTE BUFFER @VA11129 00116100
  123. LA R5,WRTCRTXY GET ADDRESS OF CHANNEL PROGRAM @V200731 00117000
  124. STCM R1,B'0111',WRT3066+1 RESOLVE CCW DATA ADDR @V200731 00118000
  125. STH R0,WRT3066+6 STORE THE CCW COUNT @V200731 00119000
  126. B SETCAW NOW DO SIO FOR WRITE @V200731 00120000
  127. SPACE 00121000
  128. CON3270 EQU * @V200731 00122000
  129. SR R4,R4 CLEAR REGISTER 4 @V200731 00123000
  130. IC R4,RDEVCORD GET THE CURRENT LINE (Y CO-ORD) @V200731 00124000
  131. SLL R4,1 SETUP THE INDEX INTO THE TABLE @V200731 00125000
  132. LH R4,TABLE70(R4) GET THE LINE ADDRESS @V200731 00126000
  133. CLI RDEVGRTY,MODEL2A IS THIS 3278 MODEL 2A? @V60A6B6 00126100
  134. BNE TRY3273 TRY MODEL 3 HRC101DK 00126250
  135. MVC LAB3270A+2(2),ADDR2A1 CHANGE ADDR FOR 3278 HRC101DK 00126300
  136. MVC LAB3270A+8(2),ADDR2A2 HRC101DK 00126350
  137. MVC MAXLEN,LEN327A MAX LEN FOR 3278 MOD2A=1440 HRC101DK 00126400
  138. B MOD3278 DON'T OVERLAY WITH 3270 @V60A6B6 00126510
  139. SPACE , HRC101DK 00126610
  140. TRY3273 EQU * HRC101DK 00126620
  141. CLI RDEVGRTY,MODEL3 IS THIS 3278 MODEL 3 ? HRC101DK 00126630
  142. BNE TRY3274 TRY MODEL 4 HRC101DK 00126640
  143. MVC LAB3270A+2(2),ADDR031 CHANGE ADDR FOR 3278 HRC101DK 00126650
  144. MVC LAB3270A+8(2),ADDR032 HRC101DK 00126660
  145. MVC MAXLEN,LEN3273 MAX LEN FOR 3278 MOD3 =2400 HRC101DK 00126670
  146. B MOD3278 DON'T OVERLAY WITH 3270 HRC101DK 00126680
  147. SPACE , HRC101DK 00126690
  148. TRY3274 EQU * HRC101DK 00126700
  149. CLI RDEVGRTY,MODEL4 IS THIS 3278 MODEL 4 ? HRC101DK 00126710
  150. BNE YES3270 ASSUME MODEL 2 HRC101DK 00126720
  151. MVC LAB3270A+2(2),ADDR041 CHANGE ADDR FOR 3278 HRC101DK 00126730
  152. MVC LAB3270A+8(2),ADDR042 HRC101DK 00126740
  153. MVC MAXLEN,LEN3274 MAX LEN FOR 3278 MOD4 =3280 HRC101DK 00126750
  154. B MOD3278 DON'T OVERLAY WITH 3270 HRC101DK 00126760
  155. SPACE , HRC101DK 00126770
  156. YES3270 EQU * HRC101DK 00126780
  157. MVC MAXLEN,LEN3272 MAX LEN FOR 3272=1760 HRC101DK 00126790
  158. MOD3278 EQU * @V60A6B6 00126800
  159. STCM R4,3,LAB3270+2 SAVE THE CURRENT LINE POINTER @V200731 00127000
  160. BAL R10,SETMSLEN PUT MSG IN 80 OR 160 BYTE BUFFER @VA11129 00127100
  161. STCM R1,B'0111',WRTCR70+1 GET THE MESSAGE ADDRESS @V200731 00128000
  162. STH R0,WRTCR70+6 SAVE THE BYTE COUNT IN THE CCW @V200731 00129000
  163. MVI LAB3270,WC6 TURN OFF ALARM BIT BY DEFAULT @VA08218 00129510
  164. LA R5,WRTCRT70 GET ADDRESS OF CHANNEL PROGRAM @V200731 00130000
  165. EJECT 00131000
  166. SETCAW EQU * HERE TO ISSUE 'SIO' 00132000
  167. TM PARM,ALARM SHOULD WE RING THE ALARM 00133000
  168. BZ DEVTIO NO - WAS NOT ASKED TO DO SO. 00134000
  169. MVI LAB3270,WC56 TURN ON 3270 ALARM CONTROL BIT @VA07600 00134500
  170. ICM R5,B'1000',ALRMTIC CHAIN CCW STRING FROM 00135000
  171. ST R5,ALRMTIC THE ALARM CCW... 00136000
  172. LA R5,ALRMCCW LOAD NEW CAW ADDRESS 00137000
  173. DEVTIO EQU * @V200731 00138000
  174. LA R10,TIOT1 GET THE ADDRESS OF TIO @V200731 00139000
  175. L R4,XRIGHT16 GET THE TIMEOUT COUNT @V200731 00140000
  176. TIOT1 EQU * @V200731 00141000
  177. TIO 0(R3) CLEAR ANY OUTSTANDING STATUS @V200731 00142000
  178. BO SETCC3 NOT OPERATIONAL - SET CC = 3 @V200731 00143000
  179. BC 4+2,TESTLOOP GO DECREMENT COUNT @V200731 00144000
  180. ST R5,CAW STORE CAW ADDRESS @V200731 00145000
  181. XC CSW,CSW CLEAR CSW FIELD @V200731 00146000
  182. LA R5,10 ERROR RETRY COUNT = 10 @V200731 00147000
  183. SIORETR1 EQU * @V200731 00148000
  184. SIO 0(R3) ISSUE SIO @V200731 00149000
  185. LA R10,TIOT2 GET THE ADDRESS OF TIO @V200731 00150000
  186. L R4,XRIGHT16 GET THE TIMEOUT COUNT @V200731 00151000
  187. TIOT2 EQU * @V200731 00152000
  188. TIO 0(R3) WAIT FOR DEVICE END STATUS @V200731 00153000
  189. BO SETCC3 NOT OPERATIONAL - SET CC = 3 @V200731 00154000
  190. BC 4+2,TESTLOOP GO DECREMENT COUNT @V200731 00155000
  191. TM CSW+4,UC WAS THERE AN ERROR CONDITION @V200731 00156000
  192. BO SIORETRY YES, GO DECREMENT RETRY COUNT @V200731 00157000
  193. CLI CPUVERSN,X'FF' RUNNING VIRTUALLY ? @V200820 00158000
  194. BE SETCC0 YES - ALL FINISHED @VM08535 00159000
  195. CLI RDEVTYPC,CLASGRAF IS DEVICE TYPE GRAPHIC ? @V200731 00160000
  196. BNE SETCC0 NO -- RETURN TO CALLER @VM08535 00161000
  197. SLR R10,R10 CLEAR REG 00162000
  198. IC R10,RDEVCORD INSERT 3066 CORRIDINATE 00163000
  199. LA R10,1(,R10) BUMP IT BY 1 LINE 00164000
  200. CH R0,=H'80' DID CCW REACH BEYOND 1 LINE 00165000
  201. BNH *+8 NO 00166000
  202. LA R10,1(,R10) YES - INCREASE IT BY 1 MORE LINE 00167000
  203. STC R10,RDEVCORD SAVE THE CURRENT POINTER 00168000
  204. MH R10,=H'80' GET THE BYTE LENGTH @V200731 00169000
  205. L R4,=F'2640' GET THE MAX. LENGTH @V200731 00170000
  206. CLI RDEVTYPE,TYP3066 IS THIS A 3066 GRAPHIC ? @V200731 00171000
  207. BE TEST3066 YES, GO CHECK FOR MAX. @V200731 00172000
  208. L R4,MAXLEN GET THE MAX.LENGTH FOR 3270 @V60A6B6 00173000
  209. TEST3066 EQU * @V200731 00174000
  210. CR R10,R4 IS Y COORDINATE AT END OF CRT @V200731 00175000
  211. BL SETCC0 NO - RETURN TO CALLER @VA14139 00176100
  212. MVI RDEVCORD,0 YES - RESET TO TOP OF THE SCREEN 00177000
  213. B SETCC0 ALL DONE - RETURN @VM08535 00178000
  214. SIORETRY EQU * @V200731 00179000
  215. BCT R5,SIORETR1 DECREMENT RETRY COUNT @V200731 00180000
  216. B SETCC1 GO SET CONDITION CODE 1 @V200731 00181000
  217. TESTLOOP EQU * @V200731 00182000
  218. BCTR R4,R10 DECREMENT TIO INSTRUCTION COUNT @V200731 00183000
  219. B SETCC2 GO SET CONDITION CODE 2 @V200731 00184000
  220. EJECT 00185000
  221. SETCC0 CLI *+1,255 SET CONDITION CODE = 0 00186000
  222. B RSTREGS RESTORE USERS REGISTERS 00187000
  223. SETCC1 TM *,X'FF' SET CONDITION CODE = 1 00188000
  224. B RSTREGS RESTORE USERS REGISTERS 00189000
  225. SETCC2 CLI *,X'00' SET CONDITION CODE = 2 00190000
  226. B RSTREGS RESTORE USERS REGISTERS 00191000
  227. SETCC3 TM *+1,255 SET CONDITION CODE = 3 00192000
  228. RSTREGS LM R0,R15,OPREGS RESTORE CALLERS REGISTERS @V200730 00193000
  229. BR R14 RETURN TO CALLER 00194000
  230. SETMSLEN DS 0H @VA11129 00194100
  231. LR R5,R0 GET MESSAGE LENGTH @VA12247 00194125
  232. CH R0,=H'80' WHAT IS MESSAGE LENGTH @VA11129 00194140
  233. BL MSLEN80 LESS THAN SET TO 80 @VA11129 00194160
  234. BER R10 IF EQUAL TO 80, CONTINUE @VA11129 00194180
  235. CH R0,=H'160' IS IT MORE THAN 160 BYTES @VA11129 00194200
  236. BNH MSLEN160 YES, SET IT FOR 160 BYTES @VA11129 00194220
  237. LA R5,160 SET MOVE FOR MAXIMUM LENGTH @VA11129 00194240
  238. MSLEN160 DS 0H @VA11129 00194260
  239. LA R0,160 SET WRITE FOR MAXIMUM LENGTH @VA11129 00194280
  240. B SETMS @VA11129 00194300
  241. MSLEN80 DS 0H @VA11129 00194320
  242. LA R0,80 SET WRITE FOR MINIMUM LENGTH @VA11129 00194340
  243. SETMS DS 0H @VA11129 00194360
  244. XC MSGBUF(160),MSGBUF CLEAR BUFFER @VA11129 00194380
  245. BCTR R5,0 SUBTRACT ONE FOR EXECUTE @VA11129 00194400
  246. EX R5,MSGMVC MOVE MESSAGE TO BUFFER @VA11129 00194420
  247. LA R1,MSGBUF @VA11129 00194440
  248. BR R10 RETURN TO MAINLINE @VA11129 00194460
  249. SPACE 2 00194480
  250. MSGMVC MVC MSGBUF(*-*),0(R1) EXECUTED INSTRUCTION - MSG @VA11129 00194500
  251. EJECT 00195000
  252. *---------------------------------------------------------------------* 00196000
  253. * GRAPHIC SUPPORT CCWS * 00197000
  254. *---------------------------------------------------------------------* 00198000
  255. CRTWORD CCW X'27',SBACP,SILI+CC,2 SET BAR TO (STATUS WORD) @V200731 00199000
  256. CCW X'01',CPXYSTAT,SILI+CC,20 WRITE 'RUNNING' @V200731 00200000
  257. CCW X'27',SBAREAD,SILI+CC,2 SET BUFFER ADDR @V200731 00201000
  258. CCW X'01',BLNKLINE,SILI+CC,140 CLEAR INPUT LINE @V200731 00202000
  259. CURS3066 CCW X'0F',SBAREAD,SILI+CC,2 REPOSITION CURSOR @V200731 00203000
  260. CCW X'03',*-*,SILI,3 END OF READ CCW STRING @V200731 00204000
  261. SPACE 2 00205000
  262. CRTWORD1 CCW X'01',LAB3270A,SILI,LEN THE CONTROL DATA @V200731 00206000
  263. CCW X'03',*-*,SILI,2 @V200731 00207000
  264. SPACE 2 00208000
  265. WRTCRTXY CCW X'27',*-*,SILI+CC,2 SET CORRECT LINE IN BUFFER @V200731 00209000
  266. WRT3066 CCW X'01',*-*,SILI+CC,140 WRITE OUT USER DATA @V200731 00210000
  267. CCW X'08',CRTWORD,SILI,1 NOW DISPLAY STATUS @V200731 00211000
  268. SPACE 2 00212000
  269. WRTCRT70 CCW X'01',LAB3270,SILI+CD,4 THE CONTROL DATA @V200731 00213000
  270. WRTCR70 CCW X'00',*-*,SILI+CD,0 THE WRITE CCW @V200731 00214000
  271. CCW X'00',LAB3270A+1,SILI+CC,LEN-1 WRITE STATUS @V200731 00215000
  272. CCW X'03',*-*,SILI,2 @V200731 00216000
  273. SPACE 3 00217000
  274. *---------------------------------------------------------------------* 00218000
  275. * CCW'S FOR GRAPHICS AND CONSOLES SUPPORT * 00219000
  276. *---------------------------------------------------------------------* 00220000
  277. ALRMCCW CCW X'0B',*-*,SILI+CC,1 RING THE ALARM @V200731 00221000
  278. ALRMTIC CCW X'08',*-*,SILI,0 NOP/TIC CCW @V200731 00222000
  279. SPACE 2 00223000
  280. *---------------------------------------------------------------------* 00224000
  281. * CCW'S FOR 2310/2315 CONSOLE * 00225000
  282. *---------------------------------------------------------------------* 00226000
  283. WRT3210 CCW X'01',*-*,SILI+CC,140 WRITE WITH NO CARRAGE RETURN 00227000
  284. CCW X'03',*-*,SILI,1 00228000
  285. SPACE 00229000
  286. WRT3210A CCW X'09',*-*,SILI+CC,140 WRITE WITH A CARRAGE RETURN 00230000
  287. CCW X'03',*-*,SILI,1 00231000
  288. SPACE 00232000
  289. *---------------------------------------------------------------------* 00233000
  290. * FIRST DC ARE ADDRESSES FOR LINES 1 -6 * 00234000
  291. * SECOND DC ARE ADDRESSES FOR LINES 7 - 12 * 00235000
  292. * THIRD DC ARE ADDRESSES FOR LINES 13 - 18 * 00236000
  293. * FOURTH DC ARE ADDRESSES FOR LINES 19 - 24 * 00237000
  294. * FIFTH DC ARE ADDRESSES FOR LINES 25 - 30 HRC101DK 00237200
  295. * SIXTH DC ARE ADDRESSES FOR LINES 31 - 36 HRC101DK 00237400
  296. * SEVENTHDC ARE ADDRESSES FOR LINES 37 - 42 HRC101DK 00237600
  297. * EIGHT DC ARE ADDRESSES FOR LINES 43 HRC101DK 00237800
  298. *---------------------------------------------------------------------* 00238000
  299. SPACE 2 00239000
  300. TABLE70 DS 0D @V200731 00240000
  301. DC X'4040C150C260C3F0C540C650' @V200731 00241000
  302. DC X'C760C8F04A404B504C604DF0' @V200731 00242000
  303. DC X'4F405050D160D2F0D440D550' @V200731 00243000
  304. DC X'D660D7F0D9405A505B605CF0' @V200731 00244000
  305. DC X'5E405F50606061F0E340E450' HRC101DK 00244200
  306. DC X'E560E6F0E840E9506A606BF0' HRC101DK 00244400
  307. DC X'6D406E506F60F0F0F240F350' HRC101DK 00244600
  308. DC X'F460' HRC101DK 00244800
  309. * X'5B60' - LINE 23, COL. 1 00245000
  310. * X'5D6A' - LINE 24, COL. 59 00246000
  311. SPACE 2 00247000
  312. WC56 EQU X'C6' WRITE CONTROL BITS 5 & 6 @VA07600 00247100
  313. WC6 EQU X'C2' WRITE CONTROL BIT 6 @V200731 00248000
  314. AT7 EQU X'C1' ATTRIBUTE BIT 7 @V200731 00249000
  315. AT2 EQU X'E0' ATTRIBUTE BIT 2 @V200731 00250000
  316. SF EQU X'1D' START OF FIELD CONTROL @V200731 00251000
  317. SBA EQU X'11' SET BUFFER ADDRESS @V200731 00252000
  318. IC EQU X'13' INSERT CURSOR @V200731 00253000
  319. EUA EQU X'12' ERASE UNPROTECTED @V200731 00254000
  320. ADDR2A1 DC X'D65F' LOCATION LINE 18 COL 80 HRC101DK 00254110
  321. ADDR2A2 DC X'D86B' LOCATION LINE 20 COL 60 HRC101DK 00254120
  322. ADDR031 DC X'E55F' LOCATION LINE 18 COL 80 HRC101DK 00254130
  323. ADDR032 DC X'E76B' LOCATION LINE 20 COL 60 HRC101DK 00254140
  324. ADDR041 DC X'F34F' LOCATION LINE 18 COL 80 HRC101DK 00254150
  325. ADDR042 DC X'F55B' LOCATION LINE 20 COL 60 HRC101DK 00254160
  326. MAXLEN DC F'0000' INITIALIZATION OF LEN FIELD @V60A6B6 00254300
  327. LEN327A DC F'1440' SCREEN FOR 3278 MOD2A = 1440 HRC101DK 00254490
  328. LEN3272 DC F'1760' SCREEN FOR 3272=1760 HRC101DK 00254580
  329. LEN3273 DC F'2400' SCREEN FOR 3273=2400 HRC101DK 00254670
  330. LEN3274 DC F'3280' SCREEN FOR 3274=3280 HRC101DK 00254760
  331. SPACE 2 00255000
  332. LAB3270A DC AL1(WC6),AL1(SBA),X'5B5F',AL1(SF),AL1(AT7) @VA03499 00256500
  333. DC AL1(IC),AL1(EUA),X'5D6B',AL1(SF),AL1(AT2) @V200731 00257000
  334. RUNLABEL DC CL20'RUNNING' @V200731 00258000
  335. LEN EQU *-LAB3270A @V200731 00259000
  336. LAB3270 DC AL1(WC6),AL1(SBA),X'0000' @V200731 00260000
  337. SPACE 2 00261000
  338. MSGBUF DS CL160 NEW MESSAGE BUFFER @VA11129 00261100
  339. SPACE 3 00262000
  340. OPREGS DC 16F'0' REGISTER SAVE AREA @V200730 00263000
  341. SPACE 00264000
  342. PARM2 DC F'0' PARMS PASSED 00265000
  343. PARM EQU PARM2+3 00266000
  344. WRTREQ EQU X'40' REQUEST TO 'WRITE' TO SYSTEMS CONSOLE 00267000
  345. SBACP DC AL1(34,60) COORDINATES FOR SCREEN 'STATUS' WORD 00268000
  346. SBAREAD DC AL1(33,0) COORDINATES FOR (READ/CURSOR) CCW 00269000
  347. SPACE 00270000
  348. CPXYSTAT DC CL20'40' SCREEN 'STATUS' WORD 00271000
  349. BLNKLINE DC CL140'40' BLANKS FOR CLEARING 'READ AREA' @V200731 00272000
  350. MODEL2A EQU X'0C' GIVES CORRECT VALUE TO DETERMINE @V60A6B6 00272100
  351. MODEL2 EQU X'00' GIVES CORRECT VALUE TO DETERMINE HRC101DK 00272120
  352. MODEL3 EQU X'04' GIVES CORRECT VALUE TO DETERMINE HRC101DK 00272140
  353. MODEL4 EQU X'08' GIVES CORRECT VALUE TO DETERMINE HRC101DK 00272160
  354. MODEL5 EQU X'10' GIVES CORRECT VALUE TO DETERMINE HRC101DK 00272180
  355. * IF THE SCREEN SIZE IS 20 LINES 00272200
  356. EJECT 00273000
  357. LTORG 00274000
  358. EJECT 00275000
  359. COPY RBLOKS 00276000
  360. COPY EQU 00277000
  361. COPY DEVTYPES 00278000
  362. PSA 00279000
  363. END DMKOPR 00280000