OPR TITLE 'DMKOPR (CP) VM/370 - RELEASE 6' 00001000
ISEQ 73,80 VALIDATE SEQUENCING OF ASSEMBLE FILE 00002000
*. 00003000
* MODULE NAME - 00004000
* 00005000
* DMKOPR 00006000
* 00007000
* FUNCTION - 00008000
* 00009000
* PROVIDE THE NECCESSARY SUPPORT FOR FOR VM/370 CONSOLE. 00010000
* CERTAIN ROUTINES WITHIN THE CONTROL PROGRAM CAN NOT 00011000
* CALL DMKQCN TO ISSUE WRITES TO THE SYSTEM OPERATOR, 00012000
* THIS MODULE WILL DETERMINE THE SYSTEM'S PRIMARY CONSOLE ; 00013000
* (3210, 3215, 3066, 3270,3278), AND BUILD A CHANNEL PROGRAM 00014000
* TO HANDLE THE REQUESTED CALL. 00015000
* 00016000
* 00016100
* IF MESSAGE LENGTH IS GREATER THAN 160 BYTES AND MESSAGE 00016200
* IS FOR A GRAPHICS TYPE DEVICE IT WILL BE TRUNCATED TO 00016300
* 160 BYTES. 00016400
* 00016500
*. 00017000
EJECT 00018000
COPY OPTIONS 00019000
COPY LOCAL OPTIONS 00020000
EJECT 00021000
DMKOPR START 00022000
USING PSA,R0 00023000
USING RDEVBLOK,R8 REAL DEVICE BLOCK 00024000
SPACE 00025000
EXTRN DMKRIODV,DMKRIOCN @V200820 00026000
ENTRY DMKOPRWT @V200731 00027000
SPACE 00028000
*. 00029000
* SUBROUTINE NAME - 00030000
* 00031000
* DMKOPRWT - TO WRITE TO SYSTEMS CONSOLE 00032000
* 00033000
* FUNCTION - 00034000
* 00035000
* TO INITIATE WRITE TO THE PRIMARY SYSTEMS CONSOLE 00036000
* 00037000
* ATTRIBUTES - 00038000
* 00039000
* SERIALLY REUSABLE, CALLED BY BALR R14,R15 00040000
* 00041000
* ENTRY CONDITIONS - 00042000
* 00043000
* GPR0 = MAXIMUM NUMBER OF BYTES 00044000
* GPR1 = ADDRESS OF BUFFER 00045000
* GPR2 = PARAMETER REGISTER - 00046000
* NOAUTO - PREVENT AUTO-CARRIAGE RETURN 00047000
* ALARM - RING THE ALARM 00048000
* GPR14 = RETURN ADDRESS 00049000
* GPR15 = ADDRESS OF DMKOPRWT 00050000
* 00051000
* EXIT CONDITIONS - 00052000
* 00053000
* GPR0 - GPR15 = UNCHANGED 00054000
* CONDITION CODE = 0 (NO ERRORS DETECTED) 00055000
* CONDITION CODE = 1 (ERROR DETECTED - EXAMINE CSW) 00056000
* CONDITION CODE = 2 (MISUSE OF PARAMETERS) 00057000
* CONDITION CODE = 3 (DEVICE IS NON-EXISTANT) 00058000
* 00059000
* CALLS TO OTHER ROUTINES - NONE 00060000
* 00061000
* EXTERNAL REFERENCES - 00062000
* 00063000
* DMKRIODV - ADDRESS OF REAL DEVICE BLOCKS 00064000
* DMKRIOCN - ADDRESS OF POINTER TO SYSTEM PRIMARY CONSOLE 00065000
* 00066000
* TABLES / WORK AREAS - NONE 00067000
* 00068000
* REGISTER USAGE - 00069000
* GPR0 = MAXIMUM BYTE COUNT 00070000
* GPR1 = ADDRESS OF CALLERS BUFFER 00071000
* GPR3 - GPR12 = WORK REGISTERS 00072000
* GPR13 = UNUSED 00073000
* GPR14 = RETURN REGISTER 00074000
* GPR15 = MODULE BASE REGISTER 00075000
*. 00076000
EJECT 00077000
USING DMKOPRWT,R15 00078000
DMKOPRWT DS 0D ENTRY FOR SYSTEM CONSOLE OUTPUT 00079000
STM R0,R15,OPREGS SAVE REGISTERS AT INPUT @V200731 00080000
ST R2,PARM2 SAVE PARAMETER REGISTER 00081000
L R8,=A(DMKRIOCN) GET PRIMARY SYSTEMS CONSOLE POINTER 00082000
LH R3,2(,R8) PICK UP CONSOLE ADDRESS FOR 'SIO' 00083000
LH R8,0(,R8) GET DISPLACEMENT OF RDEVBLOK 00084000
SLL R8,3(0) CONVERT TO BYTE INDEX @V200820 00085000
AL R8,=A(DMKRIODV) FORM ABSOLUTE ADDR. OF CONSOLE RDEVBLOK 00086000
STIDP CPUID STORE CPU IDENTIFICATION @V200731 00087000
CLI CPUVERSN,X'FF' IS THIS A VIRTUAL MACHINE ? @V200731 00088000
BNE TESTCNS NO, GO TEST CONSOLE ADDRESS @V200731 00089000
L R3,FFS GET ALL FFS @V200731 00090000
DC X'83340024' GET CONSOLE ADDRESS (VIRTUAL) @V200731 00091000
BO SETCC3 CONSOLE ADDRESS DOESN'T EXIST @V200731 00092000
B CNS3210 @V200820 00093000
SPACE 00094000
TESTCNS EQU * CHECK FOR GRAPHIC CONSOLE @V200820 00095000
CLI RDEVTYPC,CLASGRAF IS SYSTEM CONSOLE A 3277/3066 @V200731 00096000
BE GRAPHID YES, GO TO GRAPHIC SUPPORT @V200731 00097000
CNS3210 EQU * 00098000
TM PARM,NOAUTO IS A CARRIAGE RETURN NECESSARY @V200731 00099000
BZ WRT10CR YES, GET CORRECT CCWS @V200731 00100000
STCM R1,B'0111',WRT3210+1 RESOLVE CCW DATA ADDRESS @V200731 00101000
STH R0,WRT3210+6 STORE CCW COUNT 00102000
LA R5,WRT3210 ADDRESS OF THE CHANNEL PROGRAM 00103000
B SETCAW DO I/O 00104000
WRT10CR EQU * @V200731 00105000
STCM R1,B'0111',WRT3210A+1 RESOLVE CCW DATA ADDRESS @V200731 00106000
STH R0,WRT3210A+6 STORE CCW COUNT 00107000
LA R5,WRT3210A ADDRESS OF THE CHANNEL PROGRAM 00108000
B SETCAW DO I/O 00109000
SPACE 00110000
GRAPHID EQU * @V200731 00111000
MVC CPXYSTAT(20),RUNLABEL ASSUME 'RUNNING' STATUS @V200731 00112000
CLI RDEVTYPE,TYP3066 IS THIS A 3066 CONSOLE @V200731 00113000
BNE CON3270 NO, GO TO 3277 SUPPORT @V200731 00114000
LA R4,RDEVCORD GET POINTER TO CURRENT LINE @V200731 00115000
STCM R4,B'0111',WRTCRTXY+1 SAVE CURRENT LINE POINTER @V200731 00116000
BAL R10,SETMSLEN PUT MSG IN 80 OR 160 BYTE BUFFER @VA11129 00116100
LA R5,WRTCRTXY GET ADDRESS OF CHANNEL PROGRAM @V200731 00117000
STCM R1,B'0111',WRT3066+1 RESOLVE CCW DATA ADDR @V200731 00118000
STH R0,WRT3066+6 STORE THE CCW COUNT @V200731 00119000
B SETCAW NOW DO SIO FOR WRITE @V200731 00120000
SPACE 00121000
CON3270 EQU * @V200731 00122000
SR R4,R4 CLEAR REGISTER 4 @V200731 00123000
IC R4,RDEVCORD GET THE CURRENT LINE (Y CO-ORD) @V200731 00124000
SLL R4,1 SETUP THE INDEX INTO THE TABLE @V200731 00125000
LH R4,TABLE70(R4) GET THE LINE ADDRESS @V200731 00126000
CLI RDEVGRTY,MODEL2A IS THIS 3278 MODEL 2A? @V60A6B6 00126100
BNE TRY3273 TRY MODEL 3 HRC101DK 00126250
MVC LAB3270A+2(2),ADDR2A1 CHANGE ADDR FOR 3278 HRC101DK 00126300
MVC LAB3270A+8(2),ADDR2A2 HRC101DK 00126350
MVC MAXLEN,LEN327A MAX LEN FOR 3278 MOD2A=1440 HRC101DK 00126400
B MOD3278 DON'T OVERLAY WITH 3270 @V60A6B6 00126510
SPACE , HRC101DK 00126610
TRY3273 EQU * HRC101DK 00126620
CLI RDEVGRTY,MODEL3 IS THIS 3278 MODEL 3 ? HRC101DK 00126630
BNE TRY3274 TRY MODEL 4 HRC101DK 00126640
MVC LAB3270A+2(2),ADDR031 CHANGE ADDR FOR 3278 HRC101DK 00126650
MVC LAB3270A+8(2),ADDR032 HRC101DK 00126660
MVC MAXLEN,LEN3273 MAX LEN FOR 3278 MOD3 =2400 HRC101DK 00126670
B MOD3278 DON'T OVERLAY WITH 3270 HRC101DK 00126680
SPACE , HRC101DK 00126690
TRY3274 EQU * HRC101DK 00126700
CLI RDEVGRTY,MODEL4 IS THIS 3278 MODEL 4 ? HRC101DK 00126710
BNE YES3270 ASSUME MODEL 2 HRC101DK 00126720
MVC LAB3270A+2(2),ADDR041 CHANGE ADDR FOR 3278 HRC101DK 00126730
MVC LAB3270A+8(2),ADDR042 HRC101DK 00126740
MVC MAXLEN,LEN3274 MAX LEN FOR 3278 MOD4 =3280 HRC101DK 00126750
B MOD3278 DON'T OVERLAY WITH 3270 HRC101DK 00126760
SPACE , HRC101DK 00126770
YES3270 EQU * HRC101DK 00126780
MVC MAXLEN,LEN3272 MAX LEN FOR 3272=1760 HRC101DK 00126790
MOD3278 EQU * @V60A6B6 00126800
STCM R4,3,LAB3270+2 SAVE THE CURRENT LINE POINTER @V200731 00127000
BAL R10,SETMSLEN PUT MSG IN 80 OR 160 BYTE BUFFER @VA11129 00127100
STCM R1,B'0111',WRTCR70+1 GET THE MESSAGE ADDRESS @V200731 00128000
STH R0,WRTCR70+6 SAVE THE BYTE COUNT IN THE CCW @V200731 00129000
MVI LAB3270,WC6 TURN OFF ALARM BIT BY DEFAULT @VA08218 00129510
LA R5,WRTCRT70 GET ADDRESS OF CHANNEL PROGRAM @V200731 00130000
EJECT 00131000
SETCAW EQU * HERE TO ISSUE 'SIO' 00132000
TM PARM,ALARM SHOULD WE RING THE ALARM 00133000
BZ DEVTIO NO - WAS NOT ASKED TO DO SO. 00134000
MVI LAB3270,WC56 TURN ON 3270 ALARM CONTROL BIT @VA07600 00134500
ICM R5,B'1000',ALRMTIC CHAIN CCW STRING FROM 00135000
ST R5,ALRMTIC THE ALARM CCW... 00136000
LA R5,ALRMCCW LOAD NEW CAW ADDRESS 00137000
DEVTIO EQU * @V200731 00138000
LA R10,TIOT1 GET THE ADDRESS OF TIO @V200731 00139000
L R4,XRIGHT16 GET THE TIMEOUT COUNT @V200731 00140000
TIOT1 EQU * @V200731 00141000
TIO 0(R3) CLEAR ANY OUTSTANDING STATUS @V200731 00142000
BO SETCC3 NOT OPERATIONAL - SET CC = 3 @V200731 00143000
BC 4+2,TESTLOOP GO DECREMENT COUNT @V200731 00144000
ST R5,CAW STORE CAW ADDRESS @V200731 00145000
XC CSW,CSW CLEAR CSW FIELD @V200731 00146000
LA R5,10 ERROR RETRY COUNT = 10 @V200731 00147000
SIORETR1 EQU * @V200731 00148000
SIO 0(R3) ISSUE SIO @V200731 00149000
LA R10,TIOT2 GET THE ADDRESS OF TIO @V200731 00150000
L R4,XRIGHT16 GET THE TIMEOUT COUNT @V200731 00151000
TIOT2 EQU * @V200731 00152000
TIO 0(R3) WAIT FOR DEVICE END STATUS @V200731 00153000
BO SETCC3 NOT OPERATIONAL - SET CC = 3 @V200731 00154000
BC 4+2,TESTLOOP GO DECREMENT COUNT @V200731 00155000
TM CSW+4,UC WAS THERE AN ERROR CONDITION @V200731 00156000
BO SIORETRY YES, GO DECREMENT RETRY COUNT @V200731 00157000
CLI CPUVERSN,X'FF' RUNNING VIRTUALLY ? @V200820 00158000
BE SETCC0 YES - ALL FINISHED @VM08535 00159000
CLI RDEVTYPC,CLASGRAF IS DEVICE TYPE GRAPHIC ? @V200731 00160000
BNE SETCC0 NO -- RETURN TO CALLER @VM08535 00161000
SLR R10,R10 CLEAR REG 00162000
IC R10,RDEVCORD INSERT 3066 CORRIDINATE 00163000
LA R10,1(,R10) BUMP IT BY 1 LINE 00164000
CH R0,=H'80' DID CCW REACH BEYOND 1 LINE 00165000
BNH *+8 NO 00166000
LA R10,1(,R10) YES - INCREASE IT BY 1 MORE LINE 00167000
STC R10,RDEVCORD SAVE THE CURRENT POINTER 00168000
MH R10,=H'80' GET THE BYTE LENGTH @V200731 00169000
L R4,=F'2640' GET THE MAX. LENGTH @V200731 00170000
CLI RDEVTYPE,TYP3066 IS THIS A 3066 GRAPHIC ? @V200731 00171000
BE TEST3066 YES, GO CHECK FOR MAX. @V200731 00172000
L R4,MAXLEN GET THE MAX.LENGTH FOR 3270 @V60A6B6 00173000
TEST3066 EQU * @V200731 00174000
CR R10,R4 IS Y COORDINATE AT END OF CRT @V200731 00175000
BL SETCC0 NO - RETURN TO CALLER @VA14139 00176100
MVI RDEVCORD,0 YES - RESET TO TOP OF THE SCREEN 00177000
B SETCC0 ALL DONE - RETURN @VM08535 00178000
SIORETRY EQU * @V200731 00179000
BCT R5,SIORETR1 DECREMENT RETRY COUNT @V200731 00180000
B SETCC1 GO SET CONDITION CODE 1 @V200731 00181000
TESTLOOP EQU * @V200731 00182000
BCTR R4,R10 DECREMENT TIO INSTRUCTION COUNT @V200731 00183000
B SETCC2 GO SET CONDITION CODE 2 @V200731 00184000
EJECT 00185000
SETCC0 CLI *+1,255 SET CONDITION CODE = 0 00186000
B RSTREGS RESTORE USERS REGISTERS 00187000
SETCC1 TM *,X'FF' SET CONDITION CODE = 1 00188000
B RSTREGS RESTORE USERS REGISTERS 00189000
SETCC2 CLI *,X'00' SET CONDITION CODE = 2 00190000
B RSTREGS RESTORE USERS REGISTERS 00191000
SETCC3 TM *+1,255 SET CONDITION CODE = 3 00192000
RSTREGS LM R0,R15,OPREGS RESTORE CALLERS REGISTERS @V200730 00193000
BR R14 RETURN TO CALLER 00194000
SETMSLEN DS 0H @VA11129 00194100
LR R5,R0 GET MESSAGE LENGTH @VA12247 00194125
CH R0,=H'80' WHAT IS MESSAGE LENGTH @VA11129 00194140
BL MSLEN80 LESS THAN SET TO 80 @VA11129 00194160
BER R10 IF EQUAL TO 80, CONTINUE @VA11129 00194180
CH R0,=H'160' IS IT MORE THAN 160 BYTES @VA11129 00194200
BNH MSLEN160 YES, SET IT FOR 160 BYTES @VA11129 00194220
LA R5,160 SET MOVE FOR MAXIMUM LENGTH @VA11129 00194240
MSLEN160 DS 0H @VA11129 00194260
LA R0,160 SET WRITE FOR MAXIMUM LENGTH @VA11129 00194280
B SETMS @VA11129 00194300
MSLEN80 DS 0H @VA11129 00194320
LA R0,80 SET WRITE FOR MINIMUM LENGTH @VA11129 00194340
SETMS DS 0H @VA11129 00194360
XC MSGBUF(160),MSGBUF CLEAR BUFFER @VA11129 00194380
BCTR R5,0 SUBTRACT ONE FOR EXECUTE @VA11129 00194400
EX R5,MSGMVC MOVE MESSAGE TO BUFFER @VA11129 00194420
LA R1,MSGBUF @VA11129 00194440
BR R10 RETURN TO MAINLINE @VA11129 00194460
SPACE 2 00194480
MSGMVC MVC MSGBUF(*-*),0(R1) EXECUTED INSTRUCTION - MSG @VA11129 00194500
EJECT 00195000
*---------------------------------------------------------------------* 00196000
* GRAPHIC SUPPORT CCWS * 00197000
*---------------------------------------------------------------------* 00198000
CRTWORD CCW X'27',SBACP,SILI+CC,2 SET BAR TO (STATUS WORD) @V200731 00199000
CCW X'01',CPXYSTAT,SILI+CC,20 WRITE 'RUNNING' @V200731 00200000
CCW X'27',SBAREAD,SILI+CC,2 SET BUFFER ADDR @V200731 00201000
CCW X'01',BLNKLINE,SILI+CC,140 CLEAR INPUT LINE @V200731 00202000
CURS3066 CCW X'0F',SBAREAD,SILI+CC,2 REPOSITION CURSOR @V200731 00203000
CCW X'03',*-*,SILI,3 END OF READ CCW STRING @V200731 00204000
SPACE 2 00205000
CRTWORD1 CCW X'01',LAB3270A,SILI,LEN THE CONTROL DATA @V200731 00206000
CCW X'03',*-*,SILI,2 @V200731 00207000
SPACE 2 00208000
WRTCRTXY CCW X'27',*-*,SILI+CC,2 SET CORRECT LINE IN BUFFER @V200731 00209000
WRT3066 CCW X'01',*-*,SILI+CC,140 WRITE OUT USER DATA @V200731 00210000
CCW X'08',CRTWORD,SILI,1 NOW DISPLAY STATUS @V200731 00211000
SPACE 2 00212000
WRTCRT70 CCW X'01',LAB3270,SILI+CD,4 THE CONTROL DATA @V200731 00213000
WRTCR70 CCW X'00',*-*,SILI+CD,0 THE WRITE CCW @V200731 00214000
CCW X'00',LAB3270A+1,SILI+CC,LEN-1 WRITE STATUS @V200731 00215000
CCW X'03',*-*,SILI,2 @V200731 00216000
SPACE 3 00217000
*---------------------------------------------------------------------* 00218000
* CCW'S FOR GRAPHICS AND CONSOLES SUPPORT * 00219000
*---------------------------------------------------------------------* 00220000
ALRMCCW CCW X'0B',*-*,SILI+CC,1 RING THE ALARM @V200731 00221000
ALRMTIC CCW X'08',*-*,SILI,0 NOP/TIC CCW @V200731 00222000
SPACE 2 00223000
*---------------------------------------------------------------------* 00224000
* CCW'S FOR 2310/2315 CONSOLE * 00225000
*---------------------------------------------------------------------* 00226000
WRT3210 CCW X'01',*-*,SILI+CC,140 WRITE WITH NO CARRAGE RETURN 00227000
CCW X'03',*-*,SILI,1 00228000
SPACE 00229000
WRT3210A CCW X'09',*-*,SILI+CC,140 WRITE WITH A CARRAGE RETURN 00230000
CCW X'03',*-*,SILI,1 00231000
SPACE 00232000
*---------------------------------------------------------------------* 00233000
* FIRST DC ARE ADDRESSES FOR LINES 1 -6 * 00234000
* SECOND DC ARE ADDRESSES FOR LINES 7 - 12 * 00235000
* THIRD DC ARE ADDRESSES FOR LINES 13 - 18 * 00236000
* FOURTH DC ARE ADDRESSES FOR LINES 19 - 24 * 00237000
* FIFTH DC ARE ADDRESSES FOR LINES 25 - 30 HRC101DK 00237200
* SIXTH DC ARE ADDRESSES FOR LINES 31 - 36 HRC101DK 00237400
* SEVENTHDC ARE ADDRESSES FOR LINES 37 - 42 HRC101DK 00237600
* EIGHT DC ARE ADDRESSES FOR LINES 43 HRC101DK 00237800
*---------------------------------------------------------------------* 00238000
SPACE 2 00239000
TABLE70 DS 0D @V200731 00240000
DC X'4040C150C260C3F0C540C650' @V200731 00241000
DC X'C760C8F04A404B504C604DF0' @V200731 00242000
DC X'4F405050D160D2F0D440D550' @V200731 00243000
DC X'D660D7F0D9405A505B605CF0' @V200731 00244000
DC X'5E405F50606061F0E340E450' HRC101DK 00244200
DC X'E560E6F0E840E9506A606BF0' HRC101DK 00244400
DC X'6D406E506F60F0F0F240F350' HRC101DK 00244600
DC X'F460' HRC101DK 00244800
* X'5B60' - LINE 23, COL. 1 00245000
* X'5D6A' - LINE 24, COL. 59 00246000
SPACE 2 00247000
WC56 EQU X'C6' WRITE CONTROL BITS 5 & 6 @VA07600 00247100
WC6 EQU X'C2' WRITE CONTROL BIT 6 @V200731 00248000
AT7 EQU X'C1' ATTRIBUTE BIT 7 @V200731 00249000
AT2 EQU X'E0' ATTRIBUTE BIT 2 @V200731 00250000
SF EQU X'1D' START OF FIELD CONTROL @V200731 00251000
SBA EQU X'11' SET BUFFER ADDRESS @V200731 00252000
IC EQU X'13' INSERT CURSOR @V200731 00253000
EUA EQU X'12' ERASE UNPROTECTED @V200731 00254000
ADDR2A1 DC X'D65F' LOCATION LINE 18 COL 80 HRC101DK 00254110
ADDR2A2 DC X'D86B' LOCATION LINE 20 COL 60 HRC101DK 00254120
ADDR031 DC X'E55F' LOCATION LINE 18 COL 80 HRC101DK 00254130
ADDR032 DC X'E76B' LOCATION LINE 20 COL 60 HRC101DK 00254140
ADDR041 DC X'F34F' LOCATION LINE 18 COL 80 HRC101DK 00254150
ADDR042 DC X'F55B' LOCATION LINE 20 COL 60 HRC101DK 00254160
MAXLEN DC F'0000' INITIALIZATION OF LEN FIELD @V60A6B6 00254300
LEN327A DC F'1440' SCREEN FOR 3278 MOD2A = 1440 HRC101DK 00254490
LEN3272 DC F'1760' SCREEN FOR 3272=1760 HRC101DK 00254580
LEN3273 DC F'2400' SCREEN FOR 3273=2400 HRC101DK 00254670
LEN3274 DC F'3280' SCREEN FOR 3274=3280 HRC101DK 00254760
SPACE 2 00255000
LAB3270A DC AL1(WC6),AL1(SBA),X'5B5F',AL1(SF),AL1(AT7) @VA03499 00256500
DC AL1(IC),AL1(EUA),X'5D6B',AL1(SF),AL1(AT2) @V200731 00257000
RUNLABEL DC CL20'RUNNING' @V200731 00258000
LEN EQU *-LAB3270A @V200731 00259000
LAB3270 DC AL1(WC6),AL1(SBA),X'0000' @V200731 00260000
SPACE 2 00261000
MSGBUF DS CL160 NEW MESSAGE BUFFER @VA11129 00261100
SPACE 3 00262000
OPREGS DC 16F'0' REGISTER SAVE AREA @V200730 00263000
SPACE 00264000
PARM2 DC F'0' PARMS PASSED 00265000
PARM EQU PARM2+3 00266000
WRTREQ EQU X'40' REQUEST TO 'WRITE' TO SYSTEMS CONSOLE 00267000
SBACP DC AL1(34,60) COORDINATES FOR SCREEN 'STATUS' WORD 00268000
SBAREAD DC AL1(33,0) COORDINATES FOR (READ/CURSOR) CCW 00269000
SPACE 00270000
CPXYSTAT DC CL20'40' SCREEN 'STATUS' WORD 00271000
BLNKLINE DC CL140'40' BLANKS FOR CLEARING 'READ AREA' @V200731 00272000
MODEL2A EQU X'0C' GIVES CORRECT VALUE TO DETERMINE @V60A6B6 00272100
MODEL2 EQU X'00' GIVES CORRECT VALUE TO DETERMINE HRC101DK 00272120
MODEL3 EQU X'04' GIVES CORRECT VALUE TO DETERMINE HRC101DK 00272140
MODEL4 EQU X'08' GIVES CORRECT VALUE TO DETERMINE HRC101DK 00272160
MODEL5 EQU X'10' GIVES CORRECT VALUE TO DETERMINE HRC101DK 00272180
* IF THE SCREEN SIZE IS 20 LINES 00272200
EJECT 00273000
LTORG 00274000
EJECT 00275000
COPY RBLOKS 00276000
COPY EQU 00277000
COPY DEVTYPES 00278000
PSA 00279000
END DMKOPR 00280000