Table of Contents

DMKGRT Source

References

Source Listing

DMKGRT.ASSEMBLE.txt
  1. GRT TITLE 'DMKGRT (CP) VM/370 RELEASE 6' 00001000
  2. ISEQ 73,80 VALIDATE SEQUENCING OF INPUT @V60A6B6 00002000
  3. *. 00003000
  4. * MODULE NAME - 00004000
  5. * 00005000
  6. * DMKGRT 00006000
  7. * 00007000
  8. * FUNCTION - 00008000
  9. * 00009000
  10. * COMMON DATA AREAS AND SUBROUTINES FOR 3270 DISPLAY SUPPORT 00010000
  11. * 00011000
  12. * CONTENTS - 00012000
  13. * 00013000
  14. * DMKGRTAB - COMPUTE THE NEXT TAB ADDRESS AND CREATE THE DATA 00016000
  15. * STREAM TO POSITION THE CURSOR AND INSERT A LOGICAL 00017000
  16. * TAB CHARACTER IF NECESSARY. 00018000
  17. * DMKGRTID - Copy DKMSYSID into the 3270 status areas HRC108DK 00018100
  18. * in DMKGRTB, DMKGRWTB. DMKGRUTB, DMKGRVTB HRC108DK 00018200
  19. *. 00019000
  20. EJECT 00020000
  21. DMKGRT CSECT @V60A6B6 00021000
  22. SPACE 2 00022000
  23. ENTRY DMKGRTAB,DMKGRTAI,DMKGRTB,DMKGRTBL @V60A6B6 00023000
  24. ENTRY DMKGRTAC HRC029DK 00023500
  25. ENTRY DMKGRTCI,DMKGRTCS,DMKGRTDS,DMKGRTFD @V60A6B6 00024000
  26. ENTRY DMKGRTCN HRC101DK 00025290
  27. ENTRY DMKGRTFO,DMKGRTHL,DMKGRTIN HRC101DK 00025580
  28. ENTRY DMKGRTCL,DMKGRTCF HRC073DK 00025600
  29. ENTRY DMKGRTMR,DMKGRTNA,DMKGRTPF,DMKGRTP6 @V60A6B6 00026000
  30. ENTRY DMKGRTRD,DMKGRTRU,DMKGRTWI,DMKGRTWT @V60A6B6 00027000
  31. ENTRY DMKGRTID HRC108DK 00027100
  32. ENTRY DMKGRTBF HRC101DK 00028990
  33. SPACE 3 00030000
  34. EXTRN DMKSYSID,DMKGRWTB,DMKGRUTB,DMKGRVTB HRC108DK 00030100
  35. EXTRN DMKGRXTB 00030110
  36. SPACE 3 HRC108DK 00030200
  37. USING PSA,R0 @V60A6B6 00031000
  38. USING BUFFER,R3 @V60A6B6 00032000
  39. USING VMBLOK,R11 @V60A6B6 00033000
  40. USING SAVEAREA,R13 @V60A6B6 00034000
  41. *. 00154000
  42. * SUBROUTINE NAME - 00155000
  43. * 00156000
  44. * DMKGRTAB 00157000
  45. * 00158000
  46. * FUNCTION - 00159000
  47. * 00160000
  48. * TO RETURN THE ADDRESS AND LENGTH OF THE DATA STREAM THAT 00161000
  49. * WILL MOVE THE CURSOR TO THE NEXT TAB POSITION AND ADD A 00162000
  50. * LOGICAL TAB CHARACTER IF NECESSARY. 00163000
  51. * 00164000
  52. * ATTRIBUTES - 00165000
  53. * 00166000
  54. * SERIALLY REUSABLE, RESIDENT, CALLED VIA BALR 00167000
  55. * 00168000
  56. * ENTRY POINT - 00169000
  57. * 00170000
  58. * DMKGRTAB 00171000
  59. * 00172000
  60. * ENTRY CONDITIONS - 00173000
  61. * 00174000
  62. * GPR 0 = DISPLAY ALTERNATE SCREEN SIZE INDEX VALUE 00175000
  63. * GPR 1 = ADDRESS OF AREA IN WHICH TO BUILD TAB DATA STREAM 00176000
  64. * GPR 2 = POINTER TO THE PF TABLE ENTRY FOR THE TAB FUNCTION 00177000
  65. * GPR 3 = ADDRESS OF THE INPUT BUFFER CONTAINING DATA READ 00178000
  66. * GPR 4 = POINTER TO THE PF TAB DATA FIELD 00179000
  67. * GPR11 = DISPLAY TERMINAL USER'S VMBLOK ADDRESS 00180000
  68. * GPR14 = CALLER'S RETURN ADDRESS 00181000
  69. * GPR15 = ADDRESS OF DMKGRTAB 00182000
  70. * 00183000
  71. * EXIT CONDITIONS - 00184000
  72. * 00185000
  73. * GPR 2 = LENGTH OF THE DATA STREAM CREATED FOR TAB FUNCTION 00186000
  74. * 00187000
  75. * CALLS TO OTHER ROUTINES - 00188000
  76. * 00189000
  77. * NONE 00190000
  78. * 00191000
  79. * EXTERNAL REFERENCES - 00192000
  80. * 00193000
  81. * NONE 00194000
  82. * 00195000
  83. * TABLES / WORK AREAS - 00196000
  84. * 00197000
  85. * BALRSAVE 00198000
  86. * TABTRTBL 00199000
  87. EJECT 00200000
  88. * REGISTER USAGE - 00201000
  89. * 00202000
  90. * GPR 0 = USED TO COMPUTE INPUT AREA OFFSET 00203000
  91. * GPR 1 = USED TO ADDRESS TAB DATA STREAM 00204000
  92. * GPR 2 = POINTER TO THE PF TABLE DATA 00205000
  93. * GPR 3 = ADDRESS OF THE INPUT BUFFER 00206000
  94. * GPR 4 = POINTER TO THE PF DATA FIELD 00207000
  95. * GPR 5-7 = WORK REGISTERS 00208000
  96. * GPR14 = RETURN ADDRESS 00209000
  97. * GPR15 = BASE REGISTER 00210000
  98. * 00211000
  99. * ALL OTHER REGISTERS ARE NOT USED 00212000
  100. * 00213000
  101. * NOTES - 00214000
  102. * 00215000
  103. * NONE 00216000
  104. * 00217000
  105. * OPERATION - 00218000
  106. * 00219000
  107. * 1. THE CURSOR ADDRESS IS CONVERTED TO AN INPUT AREA OFFSET BY 00220000
  108. * USING THE ADDRESS RETURNED FROM THE READ AND THE INPUT AREA 00221000
  109. * DISPLACEMENT FROM THE BEGINNING OF THE DISPLAY SCREEN. 00222000
  110. * 00223000
  111. * 2. IF THIS OFFSET IS BEYOND THE LAST TAB POSITION, THE CURSOR 00224000
  112. * WILL BE PUT AT THE BEGINNING OF THE INPUT AREA. OTHERWISE THE 00225000
  113. * NEXT TAB POSITION IS USED TO POSITION THE CURSOR. 00226000
  114. * 00227000
  115. * 3. THE INPUT DATA IS THEN SCANNED FOR NULLS TO DETERMINE IF A 00228000
  116. * LOGICAL TAB CHARACTER IS NEEDED. IF A LOGICAL TAB CHARACTER IS 00229000
  117. * FOUND DURING THE SCAN, THE COUNT IS UPDATED TO THE CORRECT TAB 00230000
  118. * POSITION. IF A NULL IS FOUND BEFORE THE BUFFER COUNT REACHES 00231000
  119. * THE NEW TAB OFFSET, A LOGICAL TAB CHARACTER IS PUT IN THE DATA 00232000
  120. * STREAM - TO BE WRITTEN AT THE END OF THE NON-NULL DATA OR AT 00233000
  121. * THE TAB LOCATION PRECEDING THE ONE WHERE THE CURSOR WILL BE. 00234000
  122. * 00235000
  123. * 4. THE LENGTH OF THE DATA STREAM BUILT IS PUT INTO REGISTER 2, 00236000
  124. * THE REGISTERS USED ARE RESTORED, AND THE SUBROUTINE IS EXITED. 00237000
  125. *. 00238000
  126. EJECT 00239000
  127. *---------------------------------------------------------------------* 00240000
  128. * DMKGRTAB - FIND NEXT TAB POSITION AND BUILD DATA STREAM * 00241000
  129. *---------------------------------------------------------------------* 00242000
  130. SPACE 00243000
  131. DMKGRTAB DS 0H @V60A6B6 00244000
  132. USING *,R15 ESTABLISH SUBROUTINE'S BASE ADDR @V60A6B6 00245000
  133. STM R0,R7,BALRSAVE SAVE REGISTERS THAT WILL BE USED @V60A6B6 00246000
  134. LR R7,R0 SET UP TO GET INPUT AREA OFFSET @V60A6B6 00247000
  135. L R0,DMKGRTDS(R7) LOAD THE CORRECT DISPLACEMENT @V60A6B6 00248000
  136. NC ADDRCURS(2),=X'3F3F' STRIP TO GET SIX BIT ADDR @V60A6B6 00249000
  137. SLR R6,R6 CLEAR A COUPLE OF WORK REGISTERS @V60A6B6 00250000
  138. LR R7,R6 ... @V60A6B6 00251000
  139. IC R6,ADDRCURS GET HIGH ORDER SIX BITS OF ADDR. @V60A6B6 00252000
  140. SLL R6,6 SHIFT THEM INTO THE RIGHT PLACE @V60A6B6 00253000
  141. IC R7,ADDRCURS+1 GET LOW ORDER SIX BITS OF ADDR. @V60A6B6 00254000
  142. ALR R6,R7 PUT THE PIECES OF ADDR TOGETHER @V60A6B6 00255000
  143. SLR R6,R0 SUBTRACT OFF ADDR OF INPUT AREA @V60A6B6 00256000
  144. MVI 0(R1),WCC6 SET WRITE CONTROL CHARACTER UP. @V60A6B6 00257000
  145. LA R5,4(,R4) POINT TO BEGINNING OF TAB DATA. @V60A6B6 00258000
  146. LH R4,2(,R2) GET THE COUNT OF TAB DATA FIELD @V60A6B6 00259000
  147. S R4,F4 ADJUST FOR ACTUAL TAB DATA SIZE @V60A6B6 00260000
  148. BNP TABEGIN IF NO TABS, PUT CURSOR AT START @V60A6B6 00261000
  149. SPACE 00262000
  150. TABSCAN CLM R6,B'0001',0(R5) IS THIS THE PLACE TO TAB TO? @V60A6B6 00263000
  151. BL TABHIGH YES, IF CURRENT ADDR IS LOWER @V60A6B6 00264000
  152. LA R5,1(,R5) BUMP TO NEXT TAB BYTE @V60A6B6 00265000
  153. BCT R4,TABSCAN KEEP LOOKING IF ANY TABS LEFT @V60A6B6 00266000
  154. TABEGIN SLR R7,R7 INDICATE TAB BACK TO BEGINNING @V60A6B6 00267000
  155. SPACE 00268000
  156. TABONE EQU * @V60A6B6 00269000
  157. LA R2,5 SIZE OF DATA STREAM BEING BUILT @V60A6B6 00270000
  158. TABTWO BAL R6,TABADDR GO CONVERT BUFFER ADDRESS BACK @V60A6B6 00271000
  159. MVI 4(R1),IC ADD INSERT CURSOR ORDER TO DATA @V60A6B6 00272000
  160. ST R2,BALR2 STORE SIZE OF DATA IN SAVE AREA @V60A6B6 00273000
  161. LM R0,R7,BALRSAVE RESTORE WORK REGISTERS @V60A6B6 00274000
  162. BR R14 AND RETURN TO CALLER @V60A6B6 00275000
  163. SPACE 2 00276000
  164. TABHIGH IC R7,0(,R5) GET ADDRESS OF WHERE TO TAB @V60A6B6 00277000
  165. L R5,4(,R2) RESTORE POINTER TO PF DATA @V60A6B6 00278000
  166. LA R5,4(,R5) POINT TO TAB DATA AGAIN @V60A6B6 00279000
  167. LA R4,ADDRDATA ADDRESS THE INPUT DATA @V60A6B6 00280000
  168. SLR R3,R3 INITIALIZE COUNT REGISTER @V60A6B6 00281000
  169. IC R6,VMGRFTAB GET USER'S LOGICAL TAB CHAR. @V60A6B6 00282000
  170. EJECT 00283000
  171. TABLOOP CLI 0(R4),X00 HAVE WE HIT END OF DATA ? @V60A6B6 00284000
  172. BE TABCHAR YES, THIS IS WHERE TO PUT TAB @V60A6B6 00285000
  173. CLM R6,B'0001',0(R4) IS CHARACTER A LOGICAL TAB? @V60A6B6 00286000
  174. BE TABUPDT YES, MUST UPDATE TAB REGISTER @V60A6B6 00287000
  175. LA R3,1(,R3) BUMP BUFFER COUNT BY ONE @V60A6B6 00288000
  176. TABNEXT CLM R3,B'0001',0(R5) IS THIS A TAB POSITION ? @V60A6B6 00289000
  177. BL TABDATA IF NOT, THEN KEEP CHECKING @V60A6B6 00290000
  178. LA R5,1(,R5) POINT TO NEXT TAB LOCATION @V60A6B6 00291000
  179. TABDATA LA R4,1(,R4) ADDRESS NEXT CHARACTER IN BUFFER @V60A6B6 00292000
  180. CR R3,R7 UP TO WHERE THE NEXT TAB IS ? @V60A6B6 00293000
  181. BL TABLOOP NO, CONTINUE LOOKING AT INPUT @V60A6B6 00294000
  182. B TABONE YES, NO NEED FOR A LOGICAL TAB @V60A6B6 00295000
  183. TABUPDT IC R3,0(,R5) BUMP BUFFER COUNT BY TAB VALUE @V60A6B6 00296000
  184. LA R5,1(,R5) POSITION TAB REGISTER TO NEXT @V60A6B6 00297000
  185. B TABDATA AND KEEP CHECKING INPUT DATA @V60A6B6 00298000
  186. SPACE 00299000
  187. TABCHAR LR R5,R7 SAVE PLACE TO MOVE CURSOR @V60A6B6 00300000
  188. LR R7,R3 GET WHERE TO PUT LOGICAL TAB @V60A6B6 00301000
  189. STC R6,4(,R1) PUT IN LOGICAL TAB CHARACTER @V60A6B6 00302000
  190. BAL R6,TABADDR CONVERT ADDR, PUT IN DATA STREAM @V60A6B6 00303000
  191. LA R1,4(,R1) BUMP DATA STREAM POINTER @V60A6B6 00304000
  192. LA R2,9 SET DATA COUNT REGISTER @V60A6B6 00305000
  193. LR R7,R5 RESTORE ADDRESS TO MOVE CURSOR @V60A6B6 00306000
  194. B TABTWO AND GO FINISH UP THE DATA STREAM @V60A6B6 00307000
  195. SPACE 2 00308000
  196. TABADDR AR R7,R0 ADD INPUT DISPLACEMENT BACK @V60A6B6 00309000
  197. STC R7,3(,R1) STORE LOW ORDER ADDRESS BYTE @V60A6B6 00310000
  198. NI 3(R1),X3F CLEAR TO JUST SIX BITS @V60A6B6 00311000
  199. SRL R7,6 GET HIGH ORDER ADDRESS BYTE @V60A6B6 00312000
  200. STC R7,2(,R1) STORE IT IN DATA STREAM @V60A6B6 00313000
  201. TR 2(2,R1),TABTRTBL MAKE 6-BIT DATA VALID EBCDIC @V60A6B6 00314000
  202. MVI 1(R1),SBA PUT IN SET BUFFER ADDRESS ORDER @V60A6B6 00315000
  203. BR R6 RETURN TO MAIN ROUTINE @V60A6B6 00316000
  204. DROP R15 @V60A6B6 00317000
  205. SPACE 2 00318000
  206. *. HRC108DK 00318100
  207. * Subroutine name - HRC108DK 00318110
  208. * HRC108DK 00318120
  209. * DMKGRTID HRC108DK 00318130
  210. * HRC108DK 00318140
  211. * Function - HRC108DK 00318150
  212. * To copy the system identification from DMKSYSID into HRC108DK 00318160
  213. * the various 3270 status areas in the various GRTBLOKs HRC108DK 00318170
  214. * HRC108DK 00318180
  215. * Attributes - HRC108DK 00318190
  216. * HRC108DK 00318200
  217. * Serially reusable, resident, called via SVC HRC108DK 00318210
  218. * HRC108DK 00318220
  219. * Entry point - HRC108DK 00318230
  220. * HRC108DK 00318240
  221. * DMKGRTID HRC108DK 00318250
  222. * HRC108DK 00318260
  223. * Entry conditions - HRC108DK 00318270
  224. * HRC108DK 00318280
  225. * GPR12 = Address of DMKGRTID HRC108DK 00318290
  226. * GPR13 = Address of the save area HRC108DK 00318300
  227. * HRC108DK 00318310
  228. * Exit conditions - HRC108DK 00318320
  229. * HRC108DK 00318330
  230. * None HRC108DK 00318340
  231. * HRC108DK 00318350
  232. * Calls to other routines - HRC108DK 00318360
  233. * HRC108DK 00318370
  234. * None HRC108DK 00318380
  235. * HRC108DK 00318390
  236. * External references - HRC108DK 00318400
  237. * HRC108DK 00318410
  238. * DMKGRWTB,DMKGRUTB,DMKGRVTB,DMKGRXTB GRTBLOK addresses HRC109DK 00318422
  239. * HRC108DK 00318430
  240. * Tables / work areas - HRC108DK 00318440
  241. * HRC108DK 00318450
  242. * SAVEAREA HRC108DK 00318460
  243. * HRC108DK 00318470
  244. * Register usage - HRC108DK 00318480
  245. * HRC108DK 00318490
  246. * GPR1 = Address of GRTBLOK HRC108DK 00318500
  247. * GPR2 = Address DMKSYSID HRC108DK 00318510
  248. * GPR3 = Return address from subroutine HRC108DK 00318520
  249. * GPR12 = Base address HRC108DK 00318530
  250. * GPR13 = Address of the save area HRC108DK 00318540
  251. * HRC108DK 00318550
  252. * Notes - HRC108DK 00318560
  253. * HRC108DK 00318570
  254. * None HRC108DK 00318580
  255. * HRC108DK 00318590
  256. * Operation - HRC108DK 00318600
  257. * HRC108DK 00318610
  258. * 1. Get address of DMKSYSID HRC108DK 00318620
  259. * HRC108DK 00318630
  260. * 2. Call subroutine GRTSYSID for each GRTBLOK to be HRC108DK 00318640
  261. * updated with the address of the GRTBLOK in R2 HRC108DK 00318650
  262. * to cause the SYSID to be copied into the various HRC108DK 00318660
  263. * different status areas within that GRTBLOK. HRC108DK 00318670
  264. * HRC108DK 00318680
  265. * 3. Return to caller HRC108DK 00318690
  266. *. HRC108DK 00318700
  267. SPACE 1 HRC108DK 00318710
  268. DMKGRTID DS 0H HRC108DK 00318720
  269. USING DMKGRTID,R12 Establish base address HRC108DK 00318730
  270. STM R0,R11,SAVEREGS Save registers HRC108DK 00318740
  271. L R2,=A(DMKSYSID) Get address of SYSID HRC108DK 00318750
  272. LA R1,DMKGRTB Get address of std GRTBLOK HRC108DK 00318760
  273. BAL R3,GRTSYSID Copy SYSID to status areas HRC108DK 00318770
  274. L R1,=A(DMKGRWTB) Get address of M2A GRTBLOK HRC108DK 00318780
  275. BAL R3,GRTSYSID Copy SYSID to status areas HRC108DK 00318790
  276. L R1,=A(DMKGRUTB) Get address of M3 GRTBLOK HRC108DK 00318800
  277. BAL R3,GRTSYSID Copy SYSID to status areas HRC108DK 00318810
  278. L R1,=A(DMKGRVTB) Get address of M4 GRTBLOK HRC108DK 00318820
  279. BAL R3,GRTSYSID Copy SYSID to status areas HRC108DK 00318830
  280. L R1,=A(DMKGRXTB) Get address of M5 GRTBLOK HRC109DK 00318834
  281. BAL R3,GRTSYSID Copy SYSID to status areas HRC109DK 00318836
  282. EXIT Return to caller HRC108DK 00318840
  283. * HRC108DK 00318850
  284. GRTSYSID DS 0H HRC108DK 00318860
  285. MVC GRTRNST1-DMKGRTB(8,R1),0(R2) RUNNING status msg HRC108DK 00318870
  286. MVC GRTRNST2-DMKGRTB(8,R1),0(R2) RUNNING status msg HRC108DK 00318880
  287. MVC GRTCPRST-DMKGRTB(8,R1),0(R2) CP READ status msg HRC108DK 00318890
  288. MVC GRTRNST3-DMKGRTB(8,R1),0(R2) RUNNING status msg HRC108DK 00318900
  289. MVC GRTHLDST-DMKGRTB(8,R1),0(R2) HOLDING status msg HRC108DK 00318910
  290. MVC GRTMORST-DMKGRTB(8,R1),0(R2) MORE... status msg HRC108DK 00318920
  291. MVC GRTRNST4-DMKGRTB(8,R1),0(R2) RUNNING status msg HRC108DK 00318930
  292. MVC GRTVMRST-DMKGRTB(8,R1),0(R2) VM READ status msg HRC108DK 00318940
  293. BR R3 Return to caller HRC108DK 00318950
  294. DROP R12 HRC108DK 00318960
  295. * 0 1 2 3 4 5 6 7 8 9 A B C D E F 00319000
  296. TABTRTBL DC X'40C1C2C3C4C5C6C7C8C94A4B4C4D4E4F' 0 @V60A6B6 00320000
  297. DC X'50D1D2D3D4D5D6D7D8D95A5B5C5D5E5F' 1 @V60A6B6 00321000
  298. DC X'60E1E2E3E4E5E6E7E8E96A6B6C6D6E6F' 2 @V60A6B6 00322000
  299. DC X'F0F1F2F3F4F5F6F7F8F97A7B7C7D7E7F' 3 @V60A6B6 00323000
  300. SPACE 00324000
  301. X00 EQU X'00' @V60A6B6 00325000
  302. X3F EQU X'3F' @V60A6B6 00326000
  303. EJECT 00327000
  304. * TABLE OF ATTENTION IDENTIFICATION CODES AND INDEX VALUES 00328000
  305. * - REFERENCED BY DMKGRF 00329000
  306. SPACE 00330000
  307. DMKGRTAI DC X'7D00' ENTER @V60A6B6 00331000
  308. DC X'6D04' CLEAR @V60A6B6 00332000
  309. DC X'6E18' PA2 (CNCL) @V60A6B6 00333000
  310. DC X'6C08' PA1 @V60A6B6 00334000
  311. DC X'6B0C' PA3 @V60A6B6 00335000
  312. DC X'E610' CARD READER @V60A6B6 00336000
  313. DMKGRTPF DC X'F114' PF01 @V60A6B6 00337000
  314. DC X'F214' PF02 @V60A6B6 00338000
  315. DC X'F314' PF03 @V60A6B6 00339000
  316. DC X'F414' PF04 @V60A6B6 00340000
  317. DC X'F514' PF05 @V60A6B6 00341000
  318. DMKGRTP6 DC X'F614' PF06 @V60A6B6 00342000
  319. DC X'F714' PF07 @V60A6B6 00343000
  320. DC X'F814' PF08 @V60A6B6 00344000
  321. DC X'F914' PF09 @V60A6B6 00345000
  322. DC X'7A14' PF10 @V60A6B6 00346000
  323. DC X'7B14' PF11 @V60A6B6 00347000
  324. DC X'7C14' PF12 @V60A6B6 00348000
  325. DC X'C114' PF13 HRC029DK 00348070
  326. DC X'C214' PF14 HRC029DK 00348140
  327. DC X'C314' PF15 HRC029DK 00348210
  328. DC X'C414' PF16 HRC029DK 00348280
  329. DC X'C514' PF17 HRC029DK 00348350
  330. DC X'C614' PF18 HRC029DK 00348420
  331. DC X'C714' PF19 HRC029DK 00348490
  332. DC X'C814' PF20 HRC029DK 00348560
  333. DC X'C914' PF21 HRC029DK 00348630
  334. DC X'4A14' PF22 HRC029DK 00348700
  335. DC X'4B14' PF23 HRC029DK 00348770
  336. DC X'4C14' PF24 HRC029DK 00348840
  337. DC X'011C' TESTREQ @V60A6B6 00349000
  338. DMKGRTAC DC AL2((*-DMKGRTAI)/2) TABLE ENTRY COUNT HRC029DK 00349500
  339. SPACE 3 00350000
  340. * TABLE OF EBCDIC FORMS OF LINE ADDRESSES 00351000
  341. * - REFERENCED BY DMKGRF. 00352000
  342. SPACE 00353000
  343. DMKGRTBL DS 0H 00 - 01 - 02 - 03 - 04 - 05 - 06 - 07 @V60A6B6 00354000
  344. DC X'4040,C150,C260,C3F0,C540,C650,C760,C8F0' +0 @V60A6B6 00355000
  345. DC X'4A40,4B50,4C60,4DF0,4F40,5050,D160,D2F0' +8 @V60A6B6 00356000
  346. DC X'D440,D550,D660,D7F0,D940,5A50,5B60,5CF0' +16 @V60A6B6 00357000
  347. DC X'5E40,5F50,6060,61F0,E340,E450,E560,E6F0' +24 HRC101DK 00358070
  348. DC X'E840,E950,6A60,6BF0,6D40,6E50,6F60,F0F0' +32 HRC101DK 00358140
  349. DC X'F240,F350,F460' +40 HRC101DK 00358210
  350. SPACE , HRC101DK 00358280
  351. DMKGRTBF DS 0H 00 - 01 - 02 - 03 - 04 - 05 - 06 - 07 HRC101DK 00358350
  352. DC X'C14F,C25F,C36F,C47F,C64F,C75F,C86F,C97F' +0 HRC101DK 00358420
  353. DC X'4B4F,4C5F,4D6F,4E7F,504F,D15F,D26F,D37F' +8 HRC101DK 00358490
  354. DC X'D54F,D65F,D76F,D87F,5A4F,5B5F,5C6F,5D7F' +16 HRC101DK 00358560
  355. DC X'5F4F,605F,616F,E27F,E44F,E55F,E66F,E77F' +24 HRC101DK 00358630
  356. DC X'E94F,6A5F,6B6F,6C7F,6E4F,6F5F,F06F,F17F' +32 HRC101DK 00358700
  357. DC X'F34F,F45F,F56F' +40 HRC101DK 00358770
  358. * 00358900
  359. DMKGRTCL DS 0H 00 - 01 - 02 - 03 - 04 - 05 - 06 - 07 HRC073DK 00358905
  360. DC X'4040,C204,C4C8,C64C,C850,4AD4,4CD8,4E5C' +0 HRC073DK 00358910
  361. DC X'5060,D2E4,D4E8,D66C,D8F0,5AF4,5CF8,5E7C' +8 HRC073DK 00358915
  362. DC X'6140,E3C4,E5C8,E74C,E950,6BD4,6DD8,6F5C' +16 HRC073DK 00358920
  363. DC X'F160,F3E4,F5E8' +24 HRC073DK 00358925
  364. * 00358930
  365. DMKGRTCF DS 0H 00 - 01 - 02 - 03 - 04 - 05 - 06 - 07 HRC073DK 00358935
  366. DC X'C2C3,C4C7,C64B,C84F,4AD3,4CD7,4E5B,505F' +0 HRC073DK 00358940
  367. DC X'D2E3,D4E7,D66B,D86F,5AF3,5CF7,5E7B,607F' +8 HRC073DK 00358945
  368. DC X'E3C3,E5C7,E74B,E94F,6BD3,6DD7,6F5B,F15F' +16 HRC073DK 00358950
  369. DC X'F3E3,F5E7,F76B' +24 HRC073DK 00358955
  370. EJECT 00359000
  371. * FORMAT DATA STREAM - USED BY DMKGRF 00360000
  372. SPACE 00361000
  373. DMKGRTFD DC AL1(WCC56,SBA,X'40',X'40') PUT 'VM/370 ONLINE' @V60A6B6 00362000
  374. DMKGRTFO DC CL20'VM/370 Online' AT TOP OF SCREEN HRC370DK 00363000
  375. SPACE 2 00364000
  376. DMKGRTDS DC F'1760,2400,3280,1440,3300' DSP INPUT OFFSETS HRC073DK 00365490
  377. SPACE 2 00366000
  378. * INPUT AREA COORDINATE TABLE 00367000
  379. SPACE 00368000
  380. DMKGRTIN DC AL1(22,23,0,0) 3277/3278 MOD 2 INPUT LINE HRC101DK 00369490
  381. DC AL1(30,31,0,0) 3278 MOD 3 HRC101DK 00369980
  382. DC AL1(41,42,0,0) 3278 MOD 4 HRC101DK 00370470
  383. DC AL1(18,19,0,0) 3278 MOD 2A INPUT LINE ADDRS. @V60A6B6 00371000
  384. DC AL1(25,26,0,0) 3278 MOD 5 HRC073DK 00371100
  385. SPACE 2 00372000
  386. LTORG @V60A6B6 00373000
  387. EJECT 00374000
  388. DMKGRTB GRTBLOK BLD,SCRSIZE=1920 00375000
  389. * EQUATES FOR REMOTE 3270 DATA STREAMS 00376000
  390. SPACE 00377000
  391. DMKGRTCS EQU GRTCLRDS @V60A6B6 00378000
  392. DMKGRTCN EQU GRTCNCDS PA2 CLEAR HRC101DK 00378500
  393. DMKGRTRD EQU GRTCPRDS @V60A6B6 00379000
  394. DMKGRTCI EQU GRTCRDDS @V60A6B6 00380000
  395. DMKGRTHL EQU GRTHLDDS @V60A6B6 00381000
  396. DMKGRTMR EQU GRTMORDS @V60A6B6 00382000
  397. DMKGRTNA EQU GRTNACDS @V60A6B6 00383000
  398. DMKGRTRU EQU GRTRUNDS @V60A6B6 00384000
  399. DMKGRTWI EQU GRTWINDS @V60A6B6 00385000
  400. DMKGRTWT EQU GRTWRTDS @V60A6B6 00386000
  401. EJECT 00387000
  402. COPY CONBUF @V60A6B6 00388000
  403. ADDRCURS EQU BUFFER+1 @V60A6B6 00389000
  404. ADDRDATA EQU BUFFER+6 @V60A6B6 00390000
  405. SPACE 2 00391000
  406. COPY EQU @V60A6B6 00392000
  407. COPY SAVE @V60A6B6 00393000
  408. COPY VMBLOK @V60A6B6 00394000
  409. COPY RBLOKS @V60A6B6 00395000
  410. PSA 00396000
  411. END DMKGRT @V60A6B6 00397000