GRT TITLE 'DMKGRT (CP) VM/370 RELEASE 6' 00001000 ISEQ 73,80 VALIDATE SEQUENCING OF INPUT @V60A6B6 00002000 *. 00003000 * MODULE NAME - 00004000 * 00005000 * DMKGRT 00006000 * 00007000 * FUNCTION - 00008000 * 00009000 * COMMON DATA AREAS AND SUBROUTINES FOR 3270 DISPLAY SUPPORT 00010000 * 00011000 * CONTENTS - 00012000 * 00013000 * DMKGRTAB - COMPUTE THE NEXT TAB ADDRESS AND CREATE THE DATA 00016000 * STREAM TO POSITION THE CURSOR AND INSERT A LOGICAL 00017000 * TAB CHARACTER IF NECESSARY. 00018000 * DMKGRTID - Copy DKMSYSID into the 3270 status areas HRC108DK 00018100 * in DMKGRTB, DMKGRWTB. DMKGRUTB, DMKGRVTB HRC108DK 00018200 *. 00019000 EJECT 00020000 DMKGRT CSECT @V60A6B6 00021000 SPACE 2 00022000 ENTRY DMKGRTAB,DMKGRTAI,DMKGRTB,DMKGRTBL @V60A6B6 00023000 ENTRY DMKGRTAC HRC029DK 00023500 ENTRY DMKGRTCI,DMKGRTCS,DMKGRTDS,DMKGRTFD @V60A6B6 00024000 ENTRY DMKGRTCN HRC101DK 00025290 ENTRY DMKGRTFO,DMKGRTHL,DMKGRTIN HRC101DK 00025580 ENTRY DMKGRTCL,DMKGRTCF HRC073DK 00025600 ENTRY DMKGRTMR,DMKGRTNA,DMKGRTPF,DMKGRTP6 @V60A6B6 00026000 ENTRY DMKGRTRD,DMKGRTRU,DMKGRTWI,DMKGRTWT @V60A6B6 00027000 ENTRY DMKGRTID HRC108DK 00027100 ENTRY DMKGRTBF HRC101DK 00028990 SPACE 3 00030000 EXTRN DMKSYSID,DMKGRWTB,DMKGRUTB,DMKGRVTB HRC108DK 00030100 EXTRN DMKGRXTB 00030110 SPACE 3 HRC108DK 00030200 USING PSA,R0 @V60A6B6 00031000 USING BUFFER,R3 @V60A6B6 00032000 USING VMBLOK,R11 @V60A6B6 00033000 USING SAVEAREA,R13 @V60A6B6 00034000 *. 00154000 * SUBROUTINE NAME - 00155000 * 00156000 * DMKGRTAB 00157000 * 00158000 * FUNCTION - 00159000 * 00160000 * TO RETURN THE ADDRESS AND LENGTH OF THE DATA STREAM THAT 00161000 * WILL MOVE THE CURSOR TO THE NEXT TAB POSITION AND ADD A 00162000 * LOGICAL TAB CHARACTER IF NECESSARY. 00163000 * 00164000 * ATTRIBUTES - 00165000 * 00166000 * SERIALLY REUSABLE, RESIDENT, CALLED VIA BALR 00167000 * 00168000 * ENTRY POINT - 00169000 * 00170000 * DMKGRTAB 00171000 * 00172000 * ENTRY CONDITIONS - 00173000 * 00174000 * GPR 0 = DISPLAY ALTERNATE SCREEN SIZE INDEX VALUE 00175000 * GPR 1 = ADDRESS OF AREA IN WHICH TO BUILD TAB DATA STREAM 00176000 * GPR 2 = POINTER TO THE PF TABLE ENTRY FOR THE TAB FUNCTION 00177000 * GPR 3 = ADDRESS OF THE INPUT BUFFER CONTAINING DATA READ 00178000 * GPR 4 = POINTER TO THE PF TAB DATA FIELD 00179000 * GPR11 = DISPLAY TERMINAL USER'S VMBLOK ADDRESS 00180000 * GPR14 = CALLER'S RETURN ADDRESS 00181000 * GPR15 = ADDRESS OF DMKGRTAB 00182000 * 00183000 * EXIT CONDITIONS - 00184000 * 00185000 * GPR 2 = LENGTH OF THE DATA STREAM CREATED FOR TAB FUNCTION 00186000 * 00187000 * CALLS TO OTHER ROUTINES - 00188000 * 00189000 * NONE 00190000 * 00191000 * EXTERNAL REFERENCES - 00192000 * 00193000 * NONE 00194000 * 00195000 * TABLES / WORK AREAS - 00196000 * 00197000 * BALRSAVE 00198000 * TABTRTBL 00199000 EJECT 00200000 * REGISTER USAGE - 00201000 * 00202000 * GPR 0 = USED TO COMPUTE INPUT AREA OFFSET 00203000 * GPR 1 = USED TO ADDRESS TAB DATA STREAM 00204000 * GPR 2 = POINTER TO THE PF TABLE DATA 00205000 * GPR 3 = ADDRESS OF THE INPUT BUFFER 00206000 * GPR 4 = POINTER TO THE PF DATA FIELD 00207000 * GPR 5-7 = WORK REGISTERS 00208000 * GPR14 = RETURN ADDRESS 00209000 * GPR15 = BASE REGISTER 00210000 * 00211000 * ALL OTHER REGISTERS ARE NOT USED 00212000 * 00213000 * NOTES - 00214000 * 00215000 * NONE 00216000 * 00217000 * OPERATION - 00218000 * 00219000 * 1. THE CURSOR ADDRESS IS CONVERTED TO AN INPUT AREA OFFSET BY 00220000 * USING THE ADDRESS RETURNED FROM THE READ AND THE INPUT AREA 00221000 * DISPLACEMENT FROM THE BEGINNING OF THE DISPLAY SCREEN. 00222000 * 00223000 * 2. IF THIS OFFSET IS BEYOND THE LAST TAB POSITION, THE CURSOR 00224000 * WILL BE PUT AT THE BEGINNING OF THE INPUT AREA. OTHERWISE THE 00225000 * NEXT TAB POSITION IS USED TO POSITION THE CURSOR. 00226000 * 00227000 * 3. THE INPUT DATA IS THEN SCANNED FOR NULLS TO DETERMINE IF A 00228000 * LOGICAL TAB CHARACTER IS NEEDED. IF A LOGICAL TAB CHARACTER IS 00229000 * FOUND DURING THE SCAN, THE COUNT IS UPDATED TO THE CORRECT TAB 00230000 * POSITION. IF A NULL IS FOUND BEFORE THE BUFFER COUNT REACHES 00231000 * THE NEW TAB OFFSET, A LOGICAL TAB CHARACTER IS PUT IN THE DATA 00232000 * STREAM - TO BE WRITTEN AT THE END OF THE NON-NULL DATA OR AT 00233000 * THE TAB LOCATION PRECEDING THE ONE WHERE THE CURSOR WILL BE. 00234000 * 00235000 * 4. THE LENGTH OF THE DATA STREAM BUILT IS PUT INTO REGISTER 2, 00236000 * THE REGISTERS USED ARE RESTORED, AND THE SUBROUTINE IS EXITED. 00237000 *. 00238000 EJECT 00239000 *---------------------------------------------------------------------* 00240000 * DMKGRTAB - FIND NEXT TAB POSITION AND BUILD DATA STREAM * 00241000 *---------------------------------------------------------------------* 00242000 SPACE 00243000 DMKGRTAB DS 0H @V60A6B6 00244000 USING *,R15 ESTABLISH SUBROUTINE'S BASE ADDR @V60A6B6 00245000 STM R0,R7,BALRSAVE SAVE REGISTERS THAT WILL BE USED @V60A6B6 00246000 LR R7,R0 SET UP TO GET INPUT AREA OFFSET @V60A6B6 00247000 L R0,DMKGRTDS(R7) LOAD THE CORRECT DISPLACEMENT @V60A6B6 00248000 NC ADDRCURS(2),=X'3F3F' STRIP TO GET SIX BIT ADDR @V60A6B6 00249000 SLR R6,R6 CLEAR A COUPLE OF WORK REGISTERS @V60A6B6 00250000 LR R7,R6 ... @V60A6B6 00251000 IC R6,ADDRCURS GET HIGH ORDER SIX BITS OF ADDR. @V60A6B6 00252000 SLL R6,6 SHIFT THEM INTO THE RIGHT PLACE @V60A6B6 00253000 IC R7,ADDRCURS+1 GET LOW ORDER SIX BITS OF ADDR. @V60A6B6 00254000 ALR R6,R7 PUT THE PIECES OF ADDR TOGETHER @V60A6B6 00255000 SLR R6,R0 SUBTRACT OFF ADDR OF INPUT AREA @V60A6B6 00256000 MVI 0(R1),WCC6 SET WRITE CONTROL CHARACTER UP. @V60A6B6 00257000 LA R5,4(,R4) POINT TO BEGINNING OF TAB DATA. @V60A6B6 00258000 LH R4,2(,R2) GET THE COUNT OF TAB DATA FIELD @V60A6B6 00259000 S R4,F4 ADJUST FOR ACTUAL TAB DATA SIZE @V60A6B6 00260000 BNP TABEGIN IF NO TABS, PUT CURSOR AT START @V60A6B6 00261000 SPACE 00262000 TABSCAN CLM R6,B'0001',0(R5) IS THIS THE PLACE TO TAB TO? @V60A6B6 00263000 BL TABHIGH YES, IF CURRENT ADDR IS LOWER @V60A6B6 00264000 LA R5,1(,R5) BUMP TO NEXT TAB BYTE @V60A6B6 00265000 BCT R4,TABSCAN KEEP LOOKING IF ANY TABS LEFT @V60A6B6 00266000 TABEGIN SLR R7,R7 INDICATE TAB BACK TO BEGINNING @V60A6B6 00267000 SPACE 00268000 TABONE EQU * @V60A6B6 00269000 LA R2,5 SIZE OF DATA STREAM BEING BUILT @V60A6B6 00270000 TABTWO BAL R6,TABADDR GO CONVERT BUFFER ADDRESS BACK @V60A6B6 00271000 MVI 4(R1),IC ADD INSERT CURSOR ORDER TO DATA @V60A6B6 00272000 ST R2,BALR2 STORE SIZE OF DATA IN SAVE AREA @V60A6B6 00273000 LM R0,R7,BALRSAVE RESTORE WORK REGISTERS @V60A6B6 00274000 BR R14 AND RETURN TO CALLER @V60A6B6 00275000 SPACE 2 00276000 TABHIGH IC R7,0(,R5) GET ADDRESS OF WHERE TO TAB @V60A6B6 00277000 L R5,4(,R2) RESTORE POINTER TO PF DATA @V60A6B6 00278000 LA R5,4(,R5) POINT TO TAB DATA AGAIN @V60A6B6 00279000 LA R4,ADDRDATA ADDRESS THE INPUT DATA @V60A6B6 00280000 SLR R3,R3 INITIALIZE COUNT REGISTER @V60A6B6 00281000 IC R6,VMGRFTAB GET USER'S LOGICAL TAB CHAR. @V60A6B6 00282000 EJECT 00283000 TABLOOP CLI 0(R4),X00 HAVE WE HIT END OF DATA ? @V60A6B6 00284000 BE TABCHAR YES, THIS IS WHERE TO PUT TAB @V60A6B6 00285000 CLM R6,B'0001',0(R4) IS CHARACTER A LOGICAL TAB? @V60A6B6 00286000 BE TABUPDT YES, MUST UPDATE TAB REGISTER @V60A6B6 00287000 LA R3,1(,R3) BUMP BUFFER COUNT BY ONE @V60A6B6 00288000 TABNEXT CLM R3,B'0001',0(R5) IS THIS A TAB POSITION ? @V60A6B6 00289000 BL TABDATA IF NOT, THEN KEEP CHECKING @V60A6B6 00290000 LA R5,1(,R5) POINT TO NEXT TAB LOCATION @V60A6B6 00291000 TABDATA LA R4,1(,R4) ADDRESS NEXT CHARACTER IN BUFFER @V60A6B6 00292000 CR R3,R7 UP TO WHERE THE NEXT TAB IS ? @V60A6B6 00293000 BL TABLOOP NO, CONTINUE LOOKING AT INPUT @V60A6B6 00294000 B TABONE YES, NO NEED FOR A LOGICAL TAB @V60A6B6 00295000 TABUPDT IC R3,0(,R5) BUMP BUFFER COUNT BY TAB VALUE @V60A6B6 00296000 LA R5,1(,R5) POSITION TAB REGISTER TO NEXT @V60A6B6 00297000 B TABDATA AND KEEP CHECKING INPUT DATA @V60A6B6 00298000 SPACE 00299000 TABCHAR LR R5,R7 SAVE PLACE TO MOVE CURSOR @V60A6B6 00300000 LR R7,R3 GET WHERE TO PUT LOGICAL TAB @V60A6B6 00301000 STC R6,4(,R1) PUT IN LOGICAL TAB CHARACTER @V60A6B6 00302000 BAL R6,TABADDR CONVERT ADDR, PUT IN DATA STREAM @V60A6B6 00303000 LA R1,4(,R1) BUMP DATA STREAM POINTER @V60A6B6 00304000 LA R2,9 SET DATA COUNT REGISTER @V60A6B6 00305000 LR R7,R5 RESTORE ADDRESS TO MOVE CURSOR @V60A6B6 00306000 B TABTWO AND GO FINISH UP THE DATA STREAM @V60A6B6 00307000 SPACE 2 00308000 TABADDR AR R7,R0 ADD INPUT DISPLACEMENT BACK @V60A6B6 00309000 STC R7,3(,R1) STORE LOW ORDER ADDRESS BYTE @V60A6B6 00310000 NI 3(R1),X3F CLEAR TO JUST SIX BITS @V60A6B6 00311000 SRL R7,6 GET HIGH ORDER ADDRESS BYTE @V60A6B6 00312000 STC R7,2(,R1) STORE IT IN DATA STREAM @V60A6B6 00313000 TR 2(2,R1),TABTRTBL MAKE 6-BIT DATA VALID EBCDIC @V60A6B6 00314000 MVI 1(R1),SBA PUT IN SET BUFFER ADDRESS ORDER @V60A6B6 00315000 BR R6 RETURN TO MAIN ROUTINE @V60A6B6 00316000 DROP R15 @V60A6B6 00317000 SPACE 2 00318000 *. HRC108DK 00318100 * Subroutine name - HRC108DK 00318110 * HRC108DK 00318120 * DMKGRTID HRC108DK 00318130 * HRC108DK 00318140 * Function - HRC108DK 00318150 * To copy the system identification from DMKSYSID into HRC108DK 00318160 * the various 3270 status areas in the various GRTBLOKs HRC108DK 00318170 * HRC108DK 00318180 * Attributes - HRC108DK 00318190 * HRC108DK 00318200 * Serially reusable, resident, called via SVC HRC108DK 00318210 * HRC108DK 00318220 * Entry point - HRC108DK 00318230 * HRC108DK 00318240 * DMKGRTID HRC108DK 00318250 * HRC108DK 00318260 * Entry conditions - HRC108DK 00318270 * HRC108DK 00318280 * GPR12 = Address of DMKGRTID HRC108DK 00318290 * GPR13 = Address of the save area HRC108DK 00318300 * HRC108DK 00318310 * Exit conditions - HRC108DK 00318320 * HRC108DK 00318330 * None HRC108DK 00318340 * HRC108DK 00318350 * Calls to other routines - HRC108DK 00318360 * HRC108DK 00318370 * None HRC108DK 00318380 * HRC108DK 00318390 * External references - HRC108DK 00318400 * HRC108DK 00318410 * DMKGRWTB,DMKGRUTB,DMKGRVTB,DMKGRXTB GRTBLOK addresses HRC109DK 00318422 * HRC108DK 00318430 * Tables / work areas - HRC108DK 00318440 * HRC108DK 00318450 * SAVEAREA HRC108DK 00318460 * HRC108DK 00318470 * Register usage - HRC108DK 00318480 * HRC108DK 00318490 * GPR1 = Address of GRTBLOK HRC108DK 00318500 * GPR2 = Address DMKSYSID HRC108DK 00318510 * GPR3 = Return address from subroutine HRC108DK 00318520 * GPR12 = Base address HRC108DK 00318530 * GPR13 = Address of the save area HRC108DK 00318540 * HRC108DK 00318550 * Notes - HRC108DK 00318560 * HRC108DK 00318570 * None HRC108DK 00318580 * HRC108DK 00318590 * Operation - HRC108DK 00318600 * HRC108DK 00318610 * 1. Get address of DMKSYSID HRC108DK 00318620 * HRC108DK 00318630 * 2. Call subroutine GRTSYSID for each GRTBLOK to be HRC108DK 00318640 * updated with the address of the GRTBLOK in R2 HRC108DK 00318650 * to cause the SYSID to be copied into the various HRC108DK 00318660 * different status areas within that GRTBLOK. HRC108DK 00318670 * HRC108DK 00318680 * 3. Return to caller HRC108DK 00318690 *. HRC108DK 00318700 SPACE 1 HRC108DK 00318710 DMKGRTID DS 0H HRC108DK 00318720 USING DMKGRTID,R12 Establish base address HRC108DK 00318730 STM R0,R11,SAVEREGS Save registers HRC108DK 00318740 L R2,=A(DMKSYSID) Get address of SYSID HRC108DK 00318750 LA R1,DMKGRTB Get address of std GRTBLOK HRC108DK 00318760 BAL R3,GRTSYSID Copy SYSID to status areas HRC108DK 00318770 L R1,=A(DMKGRWTB) Get address of M2A GRTBLOK HRC108DK 00318780 BAL R3,GRTSYSID Copy SYSID to status areas HRC108DK 00318790 L R1,=A(DMKGRUTB) Get address of M3 GRTBLOK HRC108DK 00318800 BAL R3,GRTSYSID Copy SYSID to status areas HRC108DK 00318810 L R1,=A(DMKGRVTB) Get address of M4 GRTBLOK HRC108DK 00318820 BAL R3,GRTSYSID Copy SYSID to status areas HRC108DK 00318830 L R1,=A(DMKGRXTB) Get address of M5 GRTBLOK HRC109DK 00318834 BAL R3,GRTSYSID Copy SYSID to status areas HRC109DK 00318836 EXIT Return to caller HRC108DK 00318840 * HRC108DK 00318850 GRTSYSID DS 0H HRC108DK 00318860 MVC GRTRNST1-DMKGRTB(8,R1),0(R2) RUNNING status msg HRC108DK 00318870 MVC GRTRNST2-DMKGRTB(8,R1),0(R2) RUNNING status msg HRC108DK 00318880 MVC GRTCPRST-DMKGRTB(8,R1),0(R2) CP READ status msg HRC108DK 00318890 MVC GRTRNST3-DMKGRTB(8,R1),0(R2) RUNNING status msg HRC108DK 00318900 MVC GRTHLDST-DMKGRTB(8,R1),0(R2) HOLDING status msg HRC108DK 00318910 MVC GRTMORST-DMKGRTB(8,R1),0(R2) MORE... status msg HRC108DK 00318920 MVC GRTRNST4-DMKGRTB(8,R1),0(R2) RUNNING status msg HRC108DK 00318930 MVC GRTVMRST-DMKGRTB(8,R1),0(R2) VM READ status msg HRC108DK 00318940 BR R3 Return to caller HRC108DK 00318950 DROP R12 HRC108DK 00318960 * 0 1 2 3 4 5 6 7 8 9 A B C D E F 00319000 TABTRTBL DC X'40C1C2C3C4C5C6C7C8C94A4B4C4D4E4F' 0 @V60A6B6 00320000 DC X'50D1D2D3D4D5D6D7D8D95A5B5C5D5E5F' 1 @V60A6B6 00321000 DC X'60E1E2E3E4E5E6E7E8E96A6B6C6D6E6F' 2 @V60A6B6 00322000 DC X'F0F1F2F3F4F5F6F7F8F97A7B7C7D7E7F' 3 @V60A6B6 00323000 SPACE 00324000 X00 EQU X'00' @V60A6B6 00325000 X3F EQU X'3F' @V60A6B6 00326000 EJECT 00327000 * TABLE OF ATTENTION IDENTIFICATION CODES AND INDEX VALUES 00328000 * - REFERENCED BY DMKGRF 00329000 SPACE 00330000 DMKGRTAI DC X'7D00' ENTER @V60A6B6 00331000 DC X'6D04' CLEAR @V60A6B6 00332000 DC X'6E18' PA2 (CNCL) @V60A6B6 00333000 DC X'6C08' PA1 @V60A6B6 00334000 DC X'6B0C' PA3 @V60A6B6 00335000 DC X'E610' CARD READER @V60A6B6 00336000 DMKGRTPF DC X'F114' PF01 @V60A6B6 00337000 DC X'F214' PF02 @V60A6B6 00338000 DC X'F314' PF03 @V60A6B6 00339000 DC X'F414' PF04 @V60A6B6 00340000 DC X'F514' PF05 @V60A6B6 00341000 DMKGRTP6 DC X'F614' PF06 @V60A6B6 00342000 DC X'F714' PF07 @V60A6B6 00343000 DC X'F814' PF08 @V60A6B6 00344000 DC X'F914' PF09 @V60A6B6 00345000 DC X'7A14' PF10 @V60A6B6 00346000 DC X'7B14' PF11 @V60A6B6 00347000 DC X'7C14' PF12 @V60A6B6 00348000 DC X'C114' PF13 HRC029DK 00348070 DC X'C214' PF14 HRC029DK 00348140 DC X'C314' PF15 HRC029DK 00348210 DC X'C414' PF16 HRC029DK 00348280 DC X'C514' PF17 HRC029DK 00348350 DC X'C614' PF18 HRC029DK 00348420 DC X'C714' PF19 HRC029DK 00348490 DC X'C814' PF20 HRC029DK 00348560 DC X'C914' PF21 HRC029DK 00348630 DC X'4A14' PF22 HRC029DK 00348700 DC X'4B14' PF23 HRC029DK 00348770 DC X'4C14' PF24 HRC029DK 00348840 DC X'011C' TESTREQ @V60A6B6 00349000 DMKGRTAC DC AL2((*-DMKGRTAI)/2) TABLE ENTRY COUNT HRC029DK 00349500 SPACE 3 00350000 * TABLE OF EBCDIC FORMS OF LINE ADDRESSES 00351000 * - REFERENCED BY DMKGRF. 00352000 SPACE 00353000 DMKGRTBL DS 0H 00 - 01 - 02 - 03 - 04 - 05 - 06 - 07 @V60A6B6 00354000 DC X'4040,C150,C260,C3F0,C540,C650,C760,C8F0' +0 @V60A6B6 00355000 DC X'4A40,4B50,4C60,4DF0,4F40,5050,D160,D2F0' +8 @V60A6B6 00356000 DC X'D440,D550,D660,D7F0,D940,5A50,5B60,5CF0' +16 @V60A6B6 00357000 DC X'5E40,5F50,6060,61F0,E340,E450,E560,E6F0' +24 HRC101DK 00358070 DC X'E840,E950,6A60,6BF0,6D40,6E50,6F60,F0F0' +32 HRC101DK 00358140 DC X'F240,F350,F460' +40 HRC101DK 00358210 SPACE , HRC101DK 00358280 DMKGRTBF DS 0H 00 - 01 - 02 - 03 - 04 - 05 - 06 - 07 HRC101DK 00358350 DC X'C14F,C25F,C36F,C47F,C64F,C75F,C86F,C97F' +0 HRC101DK 00358420 DC X'4B4F,4C5F,4D6F,4E7F,504F,D15F,D26F,D37F' +8 HRC101DK 00358490 DC X'D54F,D65F,D76F,D87F,5A4F,5B5F,5C6F,5D7F' +16 HRC101DK 00358560 DC X'5F4F,605F,616F,E27F,E44F,E55F,E66F,E77F' +24 HRC101DK 00358630 DC X'E94F,6A5F,6B6F,6C7F,6E4F,6F5F,F06F,F17F' +32 HRC101DK 00358700 DC X'F34F,F45F,F56F' +40 HRC101DK 00358770 * 00358900 DMKGRTCL DS 0H 00 - 01 - 02 - 03 - 04 - 05 - 06 - 07 HRC073DK 00358905 DC X'4040,C204,C4C8,C64C,C850,4AD4,4CD8,4E5C' +0 HRC073DK 00358910 DC X'5060,D2E4,D4E8,D66C,D8F0,5AF4,5CF8,5E7C' +8 HRC073DK 00358915 DC X'6140,E3C4,E5C8,E74C,E950,6BD4,6DD8,6F5C' +16 HRC073DK 00358920 DC X'F160,F3E4,F5E8' +24 HRC073DK 00358925 * 00358930 DMKGRTCF DS 0H 00 - 01 - 02 - 03 - 04 - 05 - 06 - 07 HRC073DK 00358935 DC X'C2C3,C4C7,C64B,C84F,4AD3,4CD7,4E5B,505F' +0 HRC073DK 00358940 DC X'D2E3,D4E7,D66B,D86F,5AF3,5CF7,5E7B,607F' +8 HRC073DK 00358945 DC X'E3C3,E5C7,E74B,E94F,6BD3,6DD7,6F5B,F15F' +16 HRC073DK 00358950 DC X'F3E3,F5E7,F76B' +24 HRC073DK 00358955 EJECT 00359000 * FORMAT DATA STREAM - USED BY DMKGRF 00360000 SPACE 00361000 DMKGRTFD DC AL1(WCC56,SBA,X'40',X'40') PUT 'VM/370 ONLINE' @V60A6B6 00362000 DMKGRTFO DC CL20'VM/370 Online' AT TOP OF SCREEN HRC370DK 00363000 SPACE 2 00364000 DMKGRTDS DC F'1760,2400,3280,1440,3300' DSP INPUT OFFSETS HRC073DK 00365490 SPACE 2 00366000 * INPUT AREA COORDINATE TABLE 00367000 SPACE 00368000 DMKGRTIN DC AL1(22,23,0,0) 3277/3278 MOD 2 INPUT LINE HRC101DK 00369490 DC AL1(30,31,0,0) 3278 MOD 3 HRC101DK 00369980 DC AL1(41,42,0,0) 3278 MOD 4 HRC101DK 00370470 DC AL1(18,19,0,0) 3278 MOD 2A INPUT LINE ADDRS. @V60A6B6 00371000 DC AL1(25,26,0,0) 3278 MOD 5 HRC073DK 00371100 SPACE 2 00372000 LTORG @V60A6B6 00373000 EJECT 00374000 DMKGRTB GRTBLOK BLD,SCRSIZE=1920 00375000 * EQUATES FOR REMOTE 3270 DATA STREAMS 00376000 SPACE 00377000 DMKGRTCS EQU GRTCLRDS @V60A6B6 00378000 DMKGRTCN EQU GRTCNCDS PA2 CLEAR HRC101DK 00378500 DMKGRTRD EQU GRTCPRDS @V60A6B6 00379000 DMKGRTCI EQU GRTCRDDS @V60A6B6 00380000 DMKGRTHL EQU GRTHLDDS @V60A6B6 00381000 DMKGRTMR EQU GRTMORDS @V60A6B6 00382000 DMKGRTNA EQU GRTNACDS @V60A6B6 00383000 DMKGRTRU EQU GRTRUNDS @V60A6B6 00384000 DMKGRTWI EQU GRTWINDS @V60A6B6 00385000 DMKGRTWT EQU GRTWRTDS @V60A6B6 00386000 EJECT 00387000 COPY CONBUF @V60A6B6 00388000 ADDRCURS EQU BUFFER+1 @V60A6B6 00389000 ADDRDATA EQU BUFFER+6 @V60A6B6 00390000 SPACE 2 00391000 COPY EQU @V60A6B6 00392000 COPY SAVE @V60A6B6 00393000 COPY VMBLOK @V60A6B6 00394000 COPY RBLOKS @V60A6B6 00395000 PSA 00396000 END DMKGRT @V60A6B6 00397000