CFT TITLE 'DMKCFT (CP) VM/370 - RELEASE 6' 00001000
ISEQ 73,80 VALIDATE INPUT SERIALIZATION 00002000
*. 00003000
* 00004000
* MODULE NAME - 00005000
* DMKCFT 00006000
* 00007000
* FUNCTION - 00008000
* TO ALLOW THE USER TO SPECIFY OPTIONS FOR 00009000
* HIS TERMINAL. 00010000
* 00011000
* ATTRIBUTES - 00012000
* REENTRANT, PAGEABLE, CALLED VIA SVC 00013000
* 00014000
* ENTRY POINTS - 00015000
* DMKCFTRM - THIS THE ONLY ENTRY POINT IN THIS MODULE 00016000
* 00017000
* ENTRY CONDITIONS - 00018000
* GPR 9 - ADDRESS OF THE COMMAND LINE BUFFER 00019000
* GPR 11- ADDRESS OF VMBLOK 00020000
* GPR 13- ADDRESS OF SAVE AREA 00021000
* 00022000
* EXIT CONDITIONS - 00023000
* NORMAL 00024000
* GPR 2 = 0 00025000
* 00026000
* ERROR 00027000
* GPR 2 = ERROR MESSAGE CODE 00028000
* 00029000
* CALLS TO OTHER ROUTINES - 00030000
* DMKSCNFD - TO LOCATE THE NEXT ARGUMENT 00031000
* DMKQCNWT - TO SEND RESPONSE MESSAGE TO TERMINAL 00032000
* DMKERMSG - TO SEND ERROR MESSAGES TO TERMINAL 00033000
* 00034000
* TABLES/WORKAREAS - 00035000
* VMBLOK, RDEVBLOK 00036000
* 00037000
* REGISTER USAGE - 00038000
* GPR 0 - LENGTH OF ARGUMENT IN COMMAND LINE BUFFER 00039000
* GPR 1 - ADDRESS OF ARGUMENT IN COMMAND LINE BUFFER 00040000
* GPR 2 - PARAMETER REGISTER FOR CALLED ROUTINES 00041000
* GPR 3 - ADDRESS OF THE FIRST ARGUMENT OF A PAIR 00042000
* GPR 4 - LENGTH OF SECOND ARGUMENT OF A PAIR 00043000
* GPR 5 - ADDRESS OF THE SECOND ARGUMENT OF A PAIR 00044000
* GPR 6 - RETURN ADDRESS IF 'ON' SPECIFIED 00045000
* GPR 7 - RETURN ADDRESS IF 'OFF' SPECIFIED 00046000
* GPR 8 - ADDRESS OF TERMINAL RDEVBLOK 00047000
* GPR 9 - ADDRESS OF THE COMMAND LINE BUFFER 00048000
* GPR 10-ADDRESS OF SYSLOCS 00049000
* GPR 11- ADDRESS OF VMBLOK 00050000
* GPR 12- BASE REGISTER FOR THE MODULE 00051000
* GPR 13- ADDRESS OF SAVEAREA 00052000
* GPR 14- LINKAGE REGISTER 00053000
* GPR 15- LINKAGE REGISTER 00054000
* 00055000
* NOTES - 00056000
* NONE 00057000
* 00058000
* 00059000
* COMMAND FORMAT - 00060000
* 00061000
* +------------+-------------------------------+ 00062000
* | TERMINAL | CHARDEL ON | 00063000
* | TERM | LINEDEL OFF | 00064000
* | | LINEND (CHAR) | 00065000
* | | ESCAPE | 00066000
* | | TABCHAR | 00066500
* | | | 00067000
* | | APL | 00068000
* | | ATTN | HRC101DK 00069090
* | | AUTOCR | HRC101DK 00069180
* | | HILIGHT ON | HRC101DK 00069270
* | | HOLD OFF | HRC101DK 00069360
* | | MASK | HRC101DK 00069450
* | | TEXT | 00070100
* | | | HRC101DK 00071190
* | | TIMESTMP ON|OFF | HRC101DK 00071380
* | | TIMESTAMP ON|OFF | HRC101DK 00071570
* | | | 00072000
* | | LINESIZE NNN | 00073000
* | | | 00074000
* | | MORE NNN NNN | HRC101DK 00074300
* | | | HRC101DK 00074600
* | | MODE CP | 00075000
* | | VM | 00076000
* +------------+-------------------------------+ 00077000
* 00078000
* 00079000
* OPERATION - 00080000
* 00081000
* 1. CALL DMKSCNFD TO LOCATE THE NEXT ARGUMENT IN THE COMMAND 00082000
* LINE. IF NONE FOUND AND NO PREVIOUS SET OF ARGUMENTS 00083000
* HAVE BEEN PROCESSED, CALL DMKERMSG TO SEND DMKCFT026E 00084000
* ERROR MESSAGE. IF NO ARGUMENT FOUND AND PREVIOUS PROCESS- 00085000
* ING HAS BEEN DONE, CALL DMKQCNWT TO OUTPUT 'COMMAND 00086000
* COMPLETE' MESSAGE AND EXIT. 00087000
* 2. SAVE THE LENGTH AND ADDRESS OF THE FIRST ARGUMENT OF THE 00088000
* SET, SET A FLAG TO INDICATE THIS, AND CALL DMKSCNFD TO 00089000
* LOCATE THE SECOND ARGUMENT OF THE SET. IF NONE FOUND, CALL 00090000
* DMKERMSG TO SEND DMKCFT026E ERROR MESSAGE. 00091000
* 3. COMPARE THE FIRST ARGUMENT AGAINST A LIST OF VALID 00092000
* ARGUMENTS. IF GET NO MATCHES, CALL DMKERMSG TO SEND 00093000
* DMKCFT002E ERROR MESSAGE. 00094000
* 4. IF MATCH IS FOUND, CHECK THE ARGUMENT FOR VALID ABREV- 00095000
* IATION. IF NOT THE PROPER ABREVIATION, GO BACK TO STEP 3 00096000
* TO CONTINUE SCAN OF THE LIST. IF GOOD ,GO TO THE PROPER 00097000
* SUBROUTINE TO HANDLE THE REQUEST. 00098000
* 5. APL - TEST IF THE TERMINAL IS A TTY. IF SO, CALL DMKERMSG 00099000
* TO SEND ERROR MESSAGE DMKCFT006E. IF TERMINAL IS OTHER THAN 00100000
* A TTY, GO TO STEP 12 TO INTERROGATE THE SECOND ARGUMENT. 00101000
* IF ARGUMENT IS 'ON', RETURN TO STEP 5B. IF 'OFF' RETURN 00102000
* TO STEP 5C. IF NEITHER, RETURN TO STEP 5A. 00103000
* 5A. CALL DMKERMSG TO SEND DMKCFT002E ERROR MESSAGE. 00104000
* 5B. CHECK IF 'APL' ALREADY ON. IF IT IS, GO TO STEP 1. IF 00105000
* NOT, TURN THE 'APL' BIT IN THE RDEVTMCD FIELD OF 00106100
* THE TERMINAL RDEVBLOK ON AND THE 'TEXT' BIT OFF. 00106200
* GO TO STEP 1. 00106300
* 5C. CHECK IF 'APL' ALREADY OFF. IF SO, GO TO STEP 1. IF NOT, 00108000
* SUBTRACT '8' FROM THE RDEVTMCD FIELD AND GO TO STEP 1. 00109000
* 5D. TEXT - TEST IF THE TERMINAL IS A 3277. IF NOT, 00109010
* CALL DMKERMSG TO SEND ERROR MESSAGE DMKCFT006E. 00109020
* IF TERMINAL IS A 3277, GO TO STEP 12 TO 00109030
* THE SECOND ARGUMENT. IF ARGUMENT IS 'ON', RETURN 00109040
* TO STEP 5E. IF 'OFF', RETURN TO STEP 5F. IF 00109050
* NEITHER, GO TO STEP 5A. 00109060
* 5E. CHECK IF 'TEXT' ALREADY ON. IF IT IS, GO TO 00109070
* STEP 1. IF NOT, TURN TO 'TEXT' BIT IN THE 00109080
* RDEVTMCD FIELD OF THE TERMINAL RDEVBLOK ON AND 00109090
* THE 'APL' BIT OFF. GO TO STEP 1. 00109100
* 5F. CHECK IF 'TEXT' ALREADY OFF. IF SO, GO TO STEP 1. 00109110
* IF NOT, TURN OFF THE 'TEXT' BIT IN THE RDEVTMCD 00109120
* FIELD AND GO TO STEP 1. 00109130
* 6. CHARDEL - GO TO STEP 12 TO INTERROGATE SECOND ARGUMENT. 00110000
* IF 'ON', RETURN TO STEP 6B. IF 'OFF', RETURN TO STEP 6C. 00111000
* IF 'CHAR', RETURN TO STEP 6A. 00112000
* 6A. MOVE THE SPECIFIED CHARACTER INTO THE RDEVCDEL FIELD OF 00113000
* THE TERMINAL RDEVBLOK AND GO TO STEP 1. 00114000
* 6B. MOVE THE SYSTEM DEFAULT CHARDEL CHARACTER FROM 00115000
* DMKSYSCD IN SYSLOCS TO THE RDEVCDEL FIELD AND GO TO 00116000
* STEP 1. 00117000
* 6C. ZERO OUT THE RDEVCDEL FIELD AND GO TO STEP 1. 00118000
* 7. LINEDEL - GO TO STEP 12 TO INTERROGATE THE SECOND 00119000
* ARGUMENT.IF 'ON' RETURN TO STEP 7B--IF 'OFF' RETURN TO 00120000
* STEP 7C--IF A CHARACTER ,RETURN TO STEP 7A. 00121000
* 7A. MOVE THE ENTERED CHARACTER INTO THE RDEVLDEL FIELD OF 00122000
* THE RDEVBLOK AND GO TO STEP 1. 00123000
* 7B. MOVE THE SYSTEM DEFAULT LINE DELETE CHARACTER FROM THE 00124000
* DMKSYSLD FIELD IN SYSLOCS TO RDEVLDEL AND GO TO STEP 1. 00125000
* 7C. ZERO OUT THE RDEVLDEL FIELD AND GO TO STEP 1. 00126000
* 8. LINEND - GO TO STEP 12 TO INTERROGATE THE SECOND ARGUMENT. 00127000
* IF 'ON' RETURN TO STEP 8B -- IF 'OFF', RETURN TO STEP 8C 00128000
* AND IF CHARACTER, RETURN TO STEP 8A. 00129000
* 8A. MOVE THE SPECIFIED CHARACTER INTO THE RDEVLEND FIELD OF 00130000
* THE TERMINAL RDEVBLOK AND GO TO STEP 1. 00131000
* 8B. MOVE THE SYSTEM DEFAULT LINE END CHARACTER FROM THE 00132000
* DMKSYSLE FIELD OF SYSLOCS AND GO TO STEP 1. 00133000
* 8C. ZERO OUT THE RDEVLEND FIELD AND GO TO STEP 1. 00134000
* 9. ESCAPE - GO TO STEP 12 TO INTERROGATE THE SECOND ARGUMENT. 00135000
* IF 'ON', RETURN TO STEP 9B-- IF 'OFF' RETURN TO STEP 9C 00136000
* AND IF A CHARACTER, RETURN TO STEP 9A. 00137000
* 9A. MOVE THE SPECIFIED CHARACTER INTO THE RDEVESCP FIELD OF 00138000
* RDEVBLOK FOR THE TERMINAL AND GO TO STEP 1. 00139000
* 9B. MOVE THE SYSTEM DEFAULT ESCAPE CHARACTER FROM THE 00140000
* DMKSYSES FIELD OF SYSLOCS TO THE RDEVESCP FIELD OF THE 00141000
* TERMINAL RDEVBLOK AND GO TO STEP 1. 00142000
* 9C. ZERO OUT THE RDEVESCP FIELD IN THE RDEVBLOK AND GO TO 00143000
* STEP 1. 00144000
* 9.1. TABCHAR - INVOKE STEP 12 TO DETERMINE WHETHER 'ON', 'OFF', 00144070
* OR 'CHAR' WAS SPECIFIED AS THE ARGUMENT FOR THE TABCHAR. 00144140
* IF 'ON' RETURN TO STEP 9.1B, IF 'OFF' RETURN TO STEP 9.1C, 00144210
* OR IF A CHARACTER RETURN TO STEP 9.1A. 00144280
* 9.1A. CHECK THAT THE SPECIFIED CHARACTER IS NOT ALPHABETIC, 00144350
* NUMERIC, OR A 3270 CONTROL CHARACTER; IF SO, MOVE IT INTO 00144420
* THE VMGRFTAB FIELD OF THE USER'S VMBLOK, OTHERWISE, DON'T 00144490
* CHANGE VMGRFTAB AND SEND AN INVALID OPERAND MESSAGE. 00144560
* 9.1B. MOVE THE SYSTEM DEFAULT TAB CHAR (X'6A') INTO THE USER'S 00144630
* VMGRFTAB AND GO TO STEP 1. 00144700
* 9.1C. ZERO OUT THE USER'S VMGRFTAB FIELD OF THE VMBLOK AND THEN 00144770
* GO TO STEP 1. 00144840
* 10. LINESIZE - CALL DMKCVTDB TO CONVERT THE SECOND ARGUMENT 00145000
* TO BINARY. IF THE CONVERT FAILS, CALL DMKERMSG TO SEND 00146000
* DMKCFT002E ERROR MESSAGE.THEN CHECK IF A LINESIZE OF ZERO 00147000
* WAS SPECIFIED. IF SO , CALL DMKERMSG TO SEND DMKCFT002E 00148000
* ERROR MESSAGE. IF NUMBER IS OK, STORE THE NEW 00149000
* LINESIZE INTO THE RDEVLLEN FIELD OF THE TERMINAL 00150000
* RDEVBLOK AND GO TO STEP 1. 00151000
* 11. MASK - GO TO STEP 12 TO INTERROGATE THE SECOND ARGUMENT. 00152000
* IF 'ON' RETURN TO STEP 11B -- IF 'OFF' , RETURN TO 00153000
* STEP 11C -- AND IF NEITHER, RETURN TO STEP 11A. 00154000
* 11A. CALL DMKERMSG TO SEND ERROR MESSAGE DMKCFT002E. 00155000
* 11B. TURN OFF THE RDEVPSUP FLAG IN THE RDEVFLAG FIELD 00156000
* OF THE TERMINAL RDEVBLOK AND GO TO STEP 1. 00157000
* 11C. TURN ON THE RDEVPSUP FLAG IN THE RDEVFLAG FIELD 00158000
* OF THE TERMINAL RDEVBLOK AND GO TO STEP 1. 00159000
* 12. THIS IS A SUBROUTINE TO CHECK SECOND ARGUMENT OF A SET. 00160000
* CHECK IF 'OFF'. IF IT IS RETURN ON REGISTER 7. IF NOT 00161000
* CHECK FOR 'ON'. IF IT IS, RETURN ON REGISTER 6. IF 00162000
* NEITHER OF THESE, RETURN ON REGISTER 14. 00163000
* 13. MODE OPTION, CHECK FOR VALID ARG, CP OR VM. 00164000
* SET THE APPROPRIATE VMBLOK STATUS OR ISSUE ERROR MSG 00165000
* 00166000
* 00167000
* RESPONSES - 00168000
* NONE 00169000
* 00170000
* ERROR MESAGES - 00171000
* DMKCFT002E INVALID OPERAND - (OPERAND) 00172000
* DMKCFT006E INVALID DEVICE TYPE - (ADDR) 00173000
* DMKCFT026E OPERAND MISSING OR INVALID 00174000
* 00175000
*. 00176000
COPY OPTIONS @V407510 00176100
EJECT 00176200
SPACE 3 00177000
DMKCFT CSECT 00178000
SPACE 2 00179000
MODID DC CL8'DMKCFT' 00180000
SPACE 2 00181000
EXTRN DMKSCNFD 00182000
EXTRN DMKCVTDB 00183000
EXTRN DMKCVTBH 00184000
EXTRN DMKSCNVD @V200820 00185000
EXTRN DMKERMSG 00186000
EXTRN DMKTBLGR @V60A6B6 00186500
SPACE 2 00187000
USING PSA,R0 00188000
USING VMBLOK,R11 00189000
USING SAVEAREA,R13 00190000
SPACE 2 00191000
FIRSTARG EQU X'80' INDICATE THAT A FIRST ARGUMENT WAS SPEC. 00192000
SECNDARG EQU X'40' INDICATE THAT A SECOND ARG. WAS SPEC. 00193000
TERMDONE EQU X'20' AT LEAST ONE TERM. COMM. PROCESSED 00194000
ZIP EQU X'00' USED TO ZERO FIELDS 00195000
EJECT 00196000
DMKCFTRM RELOC 00197000
MVC SAVEWRK1(4),ZEROES ZERO FLAG AREA 00198000
CFTARG1 CALL DMKSCNFD LOCATE FIRST ARGUMENT 00199000
BZ CFTSAV1 HAVE ARGUMENT - GO PROCESS 00200000
TM SAVEWRK1,TERMDONE ANY PROCESSING DONE ? 00201000
BO TERMEXIT YES - TAKE BRANCH 00202000
B CFT026 NO ARGUMENTS FOUND 00203000
CFTSAV1 LR R2,R0 SAVE LENGTH OF FIRST ARG. 00204000
LR R3,R1 SAVE ADDRESS OF FIRST ARG. 00205000
OI SAVEWRK1,FIRSTARG INDICATE FIRST ARG RECIEVED 00206000
CALL DMKSCNFD LOCATE SECOND ARGUMENT 00207000
BNZ CFT026 NOT A PAIR OF ARGUMENTS 00208000
LR R4,R2 LENGTH OF FIRST ARGUMENT TO R4 00209000
BCTR R4,0 MINUS ONE FOR 'EX' 00210000
LA R5,TERMBGN INITIALIZE BXLE REGS FOR SCAN 00211000
LA R6,TERMLEN LENGTH OF ONE ENTRY @V200820 00212000
LA R7,TERMEND . . . 00213000
SPACE 00214000
SCANLOOP EX R4,TERMCLC COMPARE ARGUMENT TO LIST 00215000
BE TERMABRV IF GET A HIT, GO CHECK ABREVIATION 00216000
SPACE 00217000
TERMBXLE BXLE R5,R6,SCANLOOP GO BACK IF HAVE MORE IN LIST 00218000
B CFT002 SEND ERROR MESSAGE IF CAN'T FIND 00219000
SPACE 00220000
TERMABRV EQU * HRC101DK 00221190
SR R8,R8 HRC101DK 00221380
IC R8,9(,R5) GET MINIMUM LENGTH HRC101DK 00221570
BCTR R8,0 SET UP FOR 'EX' 00222000
EX R8,TERMCLC MAKE SURE HAVE ENOUGH CHARACTERS 00223000
BNE TERMBXLE GO SCAN SOME MORE IF NOT CORRECT 00224000
LR R6,R5 ADDRESS OF LIST ENTRY TO R6 00225000
LR R5,R1 ADDRESS OF SECOND ARGUMENT TO R5 00226000
LR R4,R0 LENGTH OF SECOND ARGUMENT 00227000
L R8,VMTERM LOAD TERMINAL RDEVBLOK ADDRESS 00228000
USING RDEVBLOK,R8 00229000
L R10,ASYSLC ADDRESS OF SYSLOCS 00230000
USING SYSLOCS,R10 00231000
LH R15,10(0,R6) PICK UP DISPLACEMENT TO SUBROUTIN@V200820 00232000
B DMKCFT(R15) GO TO IT @V200820 00233000
EJECT 00234000
TERMBGN DS 0F START OF DECODING TABLE @V200820 00235000
DC C'AUTOCR ',H'2',AL2(AUTOCR-DMKCFT) HRC101DK 00236090
DC C'HOLD ',H'2',AL2(HOLD-DMKCFT) HRC101DK 00236180
DC C'MORE ',H'4',AL2(MORE-DMKCFT) HRC101DK 00236270
DC C'TIMESTAMP',AL1(4),AL2(STAMP-DMKCFT) HRC101DK 00236360
DC C'HILIGHT ',H'4',AL2(HIGHLITE-DMKCFT) HRC101DK 00236450
DC C'CHARDEL ',H'2',AL2(CHARDEL-DMKCFT) HRC101DK 00236540
DC C'LINEDEL ',H'5',AL2(LINEDEL-DMKCFT) @V200820 00237000
DC C'LINEND ',H'5',AL2(LINEND-DMKCFT) @V200820 00238000
DC C'ESCAPE ',H'2',AL2(ESCAPE-DMKCFT) @V200820 00239000
DC C'TABCHAR ',H'3',AL2(TABCHAR-DMKCFT) @V60A6B6 00239500
DC C'MASK ',H'1',AL2(MASK-DMKCFT) @VM08722 00240000
DC C'ATTN ',H'2',AL2(TERMATTN-DMKCFT) @V200820 00241000
DC C'APL ',H'3',AL2(APL-DMKCFT) @V200820 00242000
DC C'TEXT ',H'4',AL2(TEXT-DMKCFT) @V387398 00242100
DC C'LINESIZE',H'5',AL2(LINESIZE-DMKCFT) @V200820 00243000
DC C'MODE ',H'3',AL2(MODE-DMKCFT) HRC101DK 00244590
TERMEND DC C'TIMESTMP',H'6',AL2(STAMP-DMKCFT) HRC101DK 00245180
TERMLEN EQU *-TERMEND LENGTH OF ONE ENTRY @V200820 00246000
TERMCLC CLC 0(0,R3),0(R5) EXECUTED COMPARE 00247000
EJECT 00248000
APL EQU * 00249000
LTR R8,R8 IS THERE A REAL DEVICE BLOCK ? @V200820 00250000
BNP TONDONE NO -- DON'T DO ANYTHING @V200820 00251000
CLI RDEVTYPC,CLASTERM IS THIS A LOCAL TERMINAL ? @V200820 00252000
BNE TSTGRAF NO,TEST FOR GRAF DEVICE @V305798 00253000
CLI RDEVTYPE,TYPBSC IS IT A REMOTE 3270 ? @V305798 00254000
BNE BSCEND NO,ERROR @V305798 00255000
BAL R3,GETNICB FIND NICBLOK @V305798 00256000
USING NICBLOK,R2 @V305798 00257000
LA R6,APLRON LOAD TURN ON @V305798 00258000
LA R7,APLROFF LOAD TURN OFF @V305798 00259000
B APLRCHK @V305798 00260000
BSCEND EQU * @V305798 00261000
CLI RDEVTYPE,TYPTTY TELEGRAPH TERMINAL ? @V200820 00262000
BNL CFT006 YES - APL NOT VALID HERE @V200820 00263000
B SETAPL SET ON RETURN @V305798 00264000
TSTGRAF CLI RDEVTYPC,CLASGRAF IS IT A GRAF TYPE ? @V305798 00265000
BNE CFT006 NO, ERROR @V305798 00266000
TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270 TYPE? @V60A6B6 00267000
BZ CFT006 NO, ERROR @V60A6B6 00268000
SETAPL LA R6,APLON SET RETURN FOR ON @V305798 00269000
LA R7,APLOFF RETURN FOR 'OFF' 00270000
APLRCHK EQU * @V305798 00271000
BAL R14,TSTONOFF GO DO TEST FOR ON/OFF 00272000
B LOADARG2 IF RETURN HERE = BAD ARGUMENT 00273000
SPACE 00274000
APLON OI RDEVTMCD,RDEVAPLP SET THE APL BIT - X'08' @V200820 00275000
NI RDEVTMCD,255-RDEVTEXT TURN OFF TEXT BIT @V387398 00275100
B TONDONE . . . 00276000
SPACE 00277000
APLOFF NI RDEVTMCD,255-RDEVAPLP TURN OFF APL BIT @V200820 00278000
B TONDONE . . . 00279000
APLRON OI NICTMCD,NICAPL @V305798 00280000
NI NICTMCD,255-NICTEXT TURN OFF TEXT BIT @V387398 00280100
B TONDONE TURN APL ON @V305798 00281000
APLROFF NI NICTMCD,255-NICAPL TURN APL OFF @V305798 00282000
B TONDONE @V305798 00283000
EJECT 00284000
TEXT EQU * @V387398 00284010
LTR R8,R8 IS THERE A REAL DEVICE BLOCK ? @V387398 00284020
BNP TONDONE NO -- DON'T DO ANYTHING @V387398 00284030
CLI RDEVTYPC,CLASTERM IS THIS A LOCAL TERMINAL ? @V387398 00284040
BNE TTSTGRAF NO,TEST FOR GRAF DEVICE @V387398 00284050
CLI RDEVTYPE,TYPBSC IS IT A REMOTE 3270 ? @V387398 00284060
BNE CFT006 NO,ERROR @V387398 00284070
BAL R3,GETNICB FIND NICBLOK @V387398 00284080
USING NICBLOK,R2 @V387398 00284090
LA R6,TEXTRON LOAD TURN ON @V387398 00284100
LA R7,TEXTROFF LOAD TURN OFF @V387398 00284110
B TEXTRCHK @V387398 00284120
TTSTGRAF CLI RDEVTYPC,CLASGRAF IS IT A GRAF TYPE ? @V387398 00284130
BNE CFT006 NO, ERROR @V387398 00284140
TM RDEVTYPE,TYP3277+TYP3278 IS IT A 3270 TYPE ? @V60A6B6 00284150
BZ CFT006 NO, ERROR @V60A6B6 00284160
LA R6,TEXTON SET RETURN FOR ON @V387398 00284170
LA R7,TEXTOFF RETURN FOR 'OFF' @V387398 00284180
TEXTRCHK EQU * @V387398 00284190
BAL R14,TSTONOFF GO DO TEST FOR ON/OFF @V387398 00284200
B LOADARG2 IF RETURN HERE = BAD ARGUMENT @V387398 00284210
SPACE 00284220
TEXTON OI RDEVTMCD,RDEVTEXT SET THE TEXT BIT - X'20' @V387398 00284230
NI RDEVTMCD,255-RDEVAPLP TURN OFF APL BIT @V387398 00284240
B TONDONE . . . @V387398 00284250
SPACE 00284260
TEXTOFF NI RDEVTMCD,255-RDEVTEXT TURN OFF TEXT BIT @V387398 00284270
B TONDONE . . . @V387398 00284280
TEXTRON OI NICTMCD,NICTEXT TURN TEXT ON @V387398 00284290
NI NICTMCD,255-NICAPL TURN APL OFF @V387398 00284300
B TONDONE @V387398 00284310
TEXTROFF NI NICTMCD,255-NICTEXT TURN TEXT OFF @V387398 00284320
B TONDONE @V387398 00284330
EJECT 00284340
CHARDEL LA R6,CHARON RETURN FOR ON 00285000
LA R7,CHAROFF RETURN FOR OFF 00286000
BAL R14,TSTCHAR GO TEST FOR ON/OFF/CHAR @VA04451 00287500
* 00288000
* RETURN HERE IF CHAR WAS SPECIFIED 00289000
* 00290000
MVC VMTCDEL(1),0(R5) MOVE IN SPECIFIED CHARACTER @V200820 00291000
B TONDONE . . 00292000
SPACE 00293000
CHARON MVC VMTCDEL(1),DMKSYSCD MOVE IN SYSTEM DEFAULT CHAR @V200820 00294000
B TONDONE 00295000
SPACE 00296000
CHAROFF MVI VMTCDEL,X'00' DO NOT USE CHARACTER DELETE @V200820 00297000
B TONDONE 00298000
EJECT 00299000
LINEDEL LA R6,LINDON RETURN FOR ON 00300000
LA R7,LINDOFF RETURN FOR OFF 00301000
BAL R14,TSTCHAR GO TEST FOR ON/OFF/CHAR @VA04451 00302500
* 00303000
* RETURN HERE IF CHAR SPECIFIED 00304000
* 00305000
MVC VMTLDEL(1),0(R5) MOVE IN SPECIFIED CHARACTER @V200820 00306000
B TONDONE . . 00307000
LINDON DS 0H @VA09934 00307100
TM RDEVTMCD,RDEVUSC8 IS IT ASCII TYPE ??? @VA09934 00307200
BZ NOTASC NO...BRANCH @VA09934 00307300
MVI VMTLDEL,BRACKET SET LINE DEL TO LEFT BRACKET @VA09934 00307400
B TONDONE @VA09934 00307500
SPACE 00308000
NOTASC DS 0H @VA09934 00309100
MVC VMTLDEL(1),DMKSYSLD MOVE IN SYSTEM DEFAULT CHAR @VA09934 00309200
B TONDONE . . 00310000
SPACE 00311000
LINDOFF MVI VMTLDEL,X'00' DO NOT USE LINE DELETE @V200820 00312000
B TONDONE 00313000
EJECT 00314000
LINEND LA R6,LINENDON RETURN FOR ON 00315000
LA R7,LINENOFF RETURN FOR OFF 00316000
BAL R14,TSTCHAR GO TEST FOR ON/OFF/CHAR @VA04451 00317500
* 00318000
* RETURN HERE FOR CHAR 00319000
* 00320000
MVC VMTLEND(1),0(R5) MOVE IN SPECIFIED CHARACTER @V200820 00321000
B TONDONE . . 00322000
SPACE 00323000
LINENDON MVC VMTLEND(1),DMKSYSLE MOVE IN SYSTEM DEFAULT CHAR @V200820 00324000
B TONDONE . . 00325000
SPACE 00326000
LINENOFF MVI VMTLEND,X'00' DO NOT USE LOGICAL LINE END @V200820 00327000
B TONDONE 00328000
EJECT 00329000
ESCAPE LA R6,ESCPON RETURN IF 'ON' 00330000
LA R7,ESCPOFF RETURN IF 'OFF' 00331000
BAL R14,TSTCHAR GO TEST FOR ON/OFF/CHAR @VA04451 00332500
MVC VMTESCP(1),0(R5) MOVE IN SPECIFIED CHARACTER @V200820 00333000
B TONDONE 00334000
SPACE 00335000
ESCPON MVC VMTESCP(1),DMKSYSES MOVE IN SYSTEM DEFAULT CHAR @V200820 00336000
B TONDONE 00337000
SPACE 00338000
ESCPOFF MVI VMTESCP,X'00' DO NOT USE ESCAPE CHARACTER @V200820 00339000
B TONDONE 00340000
EJECT 00341000
TABCHAR LA R6,TABCHON RETURN IF 'ON' @V60A6B6 00341040
LA R7,TABCHOFF RETURN IF 'OFF' @V60A6B6 00341080
BAL R14,TSTCHAR GO TEST FOR ON/OFF/CHAR @V60A6B6 00341120
L R7,=A(DMKTBLGR) MUST TRANSLATE 3270 @V60A6B6 00341160
TR 0(1,R5),0(R7) ORDERS TO BLANKS @V60A6B6 00341200
CLI 0(R5),X40 IS CHARACTER A BLANK ? @V60A6B6 00341240
BE LOADARG2 IF YES, THEN THIS IS AN ERROR @V60A6B6 00341280
MVC VMGRFTAB(1),0(5) MOVE IN SPECIFIED CHARACTER @V60A6B6 00341320
B TONDONE @V60A6B6 00341360
SPACE 00341400
TABCHON MVI VMGRFTAB,X6A MOVE IN SYSTEM DEFAULT CHAR @V60A6B6 00341440
B TONDONE @V60A6B6 00341480
SPACE 00341520
TABCHOFF MVI VMGRFTAB,X00 ZERO THE LOGICAL TAB CHARACTER @V60A6B6 00341560
B TONDONE @V60A6B6 00341600
SPACE 00341640
X00 EQU X'00' @V60A6B6 00341680
X40 EQU X'40' @V60A6B6 00341720
X6A EQU X'6A' @V60A6B6 00341760
EJECT HRC101DK 00341762
HIGHLITE EQU * HRC101DK 00341764
LA R6,HILION RETURN FOR ON HRC101DK 00341766
LA R7,HILIOFF SET UP FOR 'OFF' HRC101DK 00341768
BAL R14,TSTONOFF GO CHECK ARGUMENT HRC101DK 00341770
* HRC101DK 00341772
* IF RETURN HERE - HAVE BAD ARGUMENT HRC101DK 00341774
* HRC101DK 00341776
B LOADARG2 G0 SEND ERROR MESSAGE HRC101DK 00341778
SPACE , HRC101DK 00341780
HILIOFF NI VMMLVL2,X'FF'-VMMHLITE SET FLAG OFF HRC101DK 00341782
B TONDONE CONTINUE HRC101DK 00341784
SPACE , HRC101DK 00341786
HILION OI VMMLVL2,VMMHLITE FLAG FOR HILIGHT ON HRC101DK 00341788
B TONDONE CONTINUE HRC101DK 00341790
EJECT 00341800
LINESIZE LR R0,R4 LENGTH TO REG 0 00342000
LR R1,R5 ADDRESS TO REG 1 00343000
CALL DMKCVTDB GO CONVERT TO BINARY 00344000
BNZ LOADARG2 BAD CONVERT 00345000
CL R1,F255 ANYTHING OVER 255 IS ERROR 00346000
BH LOADARG2 .......... 00347000
N R1,F255 SAVE ONLY LOW ORDER BYTE 00348000
LTR R1,R1 IS LINESIZE ZERO ? 00349000
BZ LOADARG2 YES - NO CAN DO 00350000
LTR R8,R8 IS THERE A TERMINAL RDEVBLOK ? @V200820 00351000
BNP TONDONE NO -- DON'T DO ANYTHING @V200820 00352000
CLI RDEVTYPC,CLASTERM IS THIS A LOCAL TERMINAL @V2D3931 00353000
BNE *+12 NO, BYPASS TEST FOR 3270 REMOTE @V2D3931 00354000
CLI RDEVTYPE,TYPBSC IS THIS A 3270 BISYNC LINE @V2D3931 00355000
BE *+12 YES, GET POINTER TO NICBLOK @V2D3931 00356000
CLI RDEVTYPC,CLASSPEC IS THIS A LOCAL TERMINAL ? @V200820 00357000
BNE SETRLEN YES -- SET LINE LENGTH @V200820 00358000
BAL R3,GETNICB GET THE NICBLOK ADDRESS @V200820 00359000
USING NICBLOK,R2 @V200820 00360000
STC R1,NICLLEN SET THE TERMINAL LINE LENGTH @V200820 00361000
B TONDONE ALL DONE HERE @V200820 00362000
SETRLEN EQU * SET LINE LENGTH FOR LOCAL TERM @V200820 00363000
STC R1,RDEVLLEN STORE NEW LINE LENGTH 00364000
B TONDONE . . 00365000
EJECT , HRC101DK 00366020
MORE DS 0H HRC101DK 00366040
ICM R2,B'0011',VMMORETM GET CURRENT VALUES HRC101DK 00366060
CLI RDEVTYPC,CLASTERM ? HRC101DK 00366080
BE CFT006 YES, ERROR HRC101DK 00366100
LR R0,R4 HRC101DK 00366120
LR R1,R5 HRC101DK 00366140
CALL DMKCVTDB CONVERT TO BINARY HRC101DK 00366160
BNZ LOADARG2 ....... HRC101DK 00366180
CL R1,F255 <= 255 HRC101DK 00366200
BH LOADARG2 ....... HRC101DK 00366220
N R2,=X'000000FF' ZERO OUT OLD HRC101DK 00366240
SLL R1,8 SHIFT INTO CORRECT POSITION HRC101DK 00366260
OR R2,R1 INSERT IT HRC101DK 00366280
CALL DMKSCNFD GET SECOND TIME VALUE HRC101DK 00366300
LR R4,R0 HRC101DK 00366320
LR R5,R1 HRC101DK 00366340
CALL DMKCVTDB CONVERT TO BINARY HRC101DK 00366360
BNZ LOADARG2 ....... HRC101DK 00366380
CL R1,F255 <= 255 HRC101DK 00366400
BH LOADARG2 ....... HRC101DK 00366420
N R2,=X'0000FF00' ZERO OUT OLD HRC101DK 00366440
OR R2,R1 INSERT IT HRC101DK 00366460
STCM R2,B'0011',VMMORETM SAVE CURRENT VALUES HRC101DK 00366480
B TONDONE HRC101DK 00366500
EJECT , HRC101DK 00366520
MASK EQU * TERMINAL MASK ON / OFF @V200820 00367000
LTR R8,R8 IS THERE A TERMINAL RDEVBLOK ? @V200820 00368000
BNP TONDONE NO -- DO NOTHING @V200820 00369000
CLI RDEVTYPC,CLASGRAF GRAPHICS TERMINAL ? @V200820 00370000
BE CFT006 YES - INVALID DEVICE TYPE @V200820 00371000
CLI RDEVTYPC,CLASTERM IS THIS A LOCAL TERMINAL @V2D3931 00372000
BNE *+12 NO, BYPASS TEST FOR 3270 REMOTE @V2D3931 00373000
CLI RDEVTYPE,TYPBSC IS THIS A 3270 REMOTE LINE @V2D3931 00374000
BE CFT006 YES, INVALID DEVICE TYPE @V2D3931 00375000
CLI RDEVTYPC,CLASSPEC 3705-BASED TERMINAL ? @V200820 00376000
BNE MASKTRM NO -- PROCESS NORMALLY @V200820 00377000
BAL R3,GETNICB GET THE NICBLOK ADDRESS @V200820 00378000
LA R6,MASKSON RETURN FOR 'ON' @V200820 00379000
LA R7,MASKSOFF RETURN FOR 'OFF' @V200820 00380000
B MASKS GO CHECK FOR ON OR OFF @V200820 00381000
MASKTRM EQU * @V200820 00382000
SWITCH SWITCH TO MAIN PROCESSOR @V407510 00382100
LA R6,MASKON RETURN FOR ON @V200820 00383000
LA R7,MASKOFF RETURN FOR OFF 00384000
MASKS EQU * @V200820 00385000
BAL R14,TSTONOFF GO - TEST FOR ON/OFF 00386000
* 00387000
* IF RETURN HERE - MEANS BAD ARGUMENT 00388000
* 00389000
B LOADARG2 GO -SEND ERROR MESSAGE 00390000
SPACE 00391000
MASKON NI RDEVFLAG,255-RDEVPSUP TURN OFF PRINT SUPPRESS FEATURE 00392000
B TONDONE . . 00393000
SPACE 00394000
MASKOFF OI RDEVFLAG,RDEVPSUP INDICAT THAT PRINT SUPP. AVAILABLE 00395000
B TONDONE ... 00396000
SPACE 00397000
MASKSON NI NICFLAG,255-NICPSUP TURN ON MASK @V200820 00398000
B TONDONE @V200820 00399000
SPACE 00400000
MASKSOFF OI NICFLAG,NICPSUP TURN OFF MASK @V200820 00401000
B TONDONE @V200820 00402000
EJECT 00403000
TERMATTN LTR R8,R8 IS THERE A TERMINAL RDEVBLOK ? @V200820 00404000
BNP TONDONE NO -- DO NOTHING @V200820 00405000
CLI RDEVTYPC,CLASGRAF GRAPHICS TERMINAL ? @V200820 00406000
BE CFT006 YES - INVALID DEVICE TYPE @V200820 00407000
CLI RDEVTYPC,CLASTERM IS THIS A LOCAL TERMINAL @V2D3931 00408000
BNE *+12 NO, BYPASS TEST FOR 3270 REMOTE @V2D3931 00409000
CLI RDEVTYPE,TYPBSC IS THIS A 3270 REMOTE LINE @V2D3931 00410000
BE CFT006 YES, INVALID DEVICE TYPE @V2D3931 00411000
CLI RDEVTYPC,CLASSPEC 3705-BASED TERMINAL ? @V200820 00412000
BNE TERMATT NO -- PROCESS NORMALLY @V200820 00413000
BAL R3,GETNICB GET THE NICBLOK ADDRESS @V200820 00414000
LA R6,ATTNSON RETURN FOR 'ON' @V200820 00415000
LA R7,ATTNSOFF RETURN FOR 'OFF' @V200820 00416000
B TERMATS GO FIND OUT WHICH IT IS @V200820 00417000
TERMATT LA R6,ATTNON RETURN FOR ON @V200820 00418000
LA R7,ATTNOFF SET UP FOR 'OFF' 00419000
TERMATS EQU * @V200820 00420000
BAL R14,TSTONOFF GO CHECK ARGUMENT 00421000
* 00422000
* IF RETURN HERE - HAVE BAD ARGUMENT 00423000
* 00424000
B LOADARG2 G0 SEND ERROR MESSAGE 00425000
SPACE 00426000
ATTNON NI RDEVTFLG,X'FF'-RDEVATOF RESET OFF FLAG FOR TERMINAL 00427000
B TONDONE CONTINUE 00428000
SPACE 00429000
ATTNOFF OI RDEVTFLG,RDEVATOF SET FLAG FOR ATTN OFF 00430000
B TONDONE CONTINUE 00431000
SPACE 00432000
ATTNSON NI NICFLAG,255-NICATOF TURN ATTN CHAR ON @V200820 00433000
B TONDONE @V200820 00434000
SPACE 00435000
ATTNSOFF OI NICFLAG,NICATOF TURN ATTN CHAR OFF @V200820 00436000
B TONDONE @V200820 00437000
EJECT HRC101DK 00438040
AUTOCR EQU * HRC101DK 00438080
LA R6,AUTOON RETURN FOR ON HRC101DK 00438120
LA R7,AUTOOFF SET UP FOR 'OFF' HRC101DK 00438160
BAL R14,TSTONOFF GO CHECK ARGUMENT HRC101DK 00438200
* HRC101DK 00438240
* IF RETURN HERE - HAVE BAD ARGUMENT HRC101DK 00438280
* HRC101DK 00438320
B LOADARG2 G0 SEND ERROR MESSAGE HRC101DK 00438360
SPACE , HRC101DK 00438400
AUTOOFF NI VMMLVL2,X'FF'-VMMAUTCR SET FLAG OFF HRC101DK 00438440
B TONDONE CONTINUE HRC101DK 00438480
SPACE , HRC101DK 00438520
AUTOON OI VMMLVL2,VMMAUTCR FLAG FOR AUTOCR ON HRC101DK 00438560
B TONDONE CONTINUE HRC101DK 00438600
EJECT HRC101DK 00438640
HOLD EQU * HRC101DK 00438680
LA R6,HOLDON RETURN FOR ON HRC101DK 00438720
LA R7,HOLDOFF SET UP FOR 'OFF' HRC101DK 00438760
BAL R14,TSTONOFF GO CHECK ARGUMENT HRC101DK 00438800
* HRC101DK 00438840
* IF RETURN HERE - HAVE BAD ARGUMENT HRC101DK 00438880
* HRC101DK 00438920
B LOADARG2 G0 SEND ERROR MESSAGE HRC101DK 00438960
SPACE , HRC101DK 00439000
HOLDON NI VMMLVL2,X'FF'-VMMNHOLD SET FLAG OFF HRC101DK 00439040
B TONDONE CONTINUE HRC101DK 00439080
SPACE , HRC101DK 00439120
HOLDOFF OI VMMLVL2,VMMNHOLD FLAG FOR NO HOLD HRC101DK 00439160
B TONDONE CONTINUE HRC101DK 00439200
EJECT , HRC101DK 00439240
STAMP EQU * HRC101DK 00439280
LA R6,STMPON RETURN FOR ON HRC101DK 00439320
LA R7,STMPOFF RETURN FOR OFF @V200820 00440000
BAL R14,TSTONOFF CHECK FOR ON OR OFF @V200820 00441000
* HRC101DK 00442190
* IF RETURN HERE - HAVE BAD ARGUMENT HRC101DK 00442380
* HRC101DK 00442570
B LOADARG2 G0 SEND ERROR MESSAGE HRC101DK 00442760
SPACE 00443000
STMPON OI VMMLEVEL,VMMSTMP TURN ON TIME STAMP @V200820 00444000
B TONDONE @V200820 00445000
SPACE 00446000
STMPOFF NI VMMLEVEL,255-VMMSTMP TURN OFF TIME STAMP @V200820 00447000
B TONDONE @V200820 00448000
SPACE 3 00449000
GETNICB EQU * SUBROUTINE TO GET NICBLOK ADDRESS@V200820 00450000
LH R2,VMTRMID 370X NCP RESOURCE REFERENCE @V200820 00451000
N R2,F4095 STRIP OFF DEVICE CODE @V200820 00452000
MH R2,=AL2(NICSIZE*8) CONVERT TO NICLIST INDEX @V200820 00453000
AL R2,RDEVNICL @V200820 00454000
BR R3 RETURN - NICBLOK IN GR2 @V200820 00455000
EJECT 00456000
SPACE 3 00457000
MODE CL R4,F2 MUST BE ONLY 2 CHARS @V200930 00458000
BNE LOADARG2 NO, ERROR @V200930 00459000
CLC 0(2,R5),=C'CP' IS IT CP ?? @V200930 00460000
BE MODCP YES, SET IT @V200930 00461000
CLC 0(2,R5),=C'VM' IS IT VM ?? @V200930 00462000
BNE LOADARG2 NO, ERROR @V200930 00463000
NI VMMLEVEL,X'FF'-VMMCPENV CPMOD FLAG OFF @V200930 00464000
B TONDONE DONE, GET NEXT @V200930 00465000
MODCP OI VMMLEVEL,VMMCPENV SET CP MODE @V200930 00466000
B TONDONE DONE, GET NEXT @V200930 00467000
SPACE 3 00468000
TONDONE OI SAVEWRK1,TERMDONE IND. THAT AT LEAST ONE ARG. PROCESS 00469000
NI SAVEWRK1,255-(FIRSTARG+SECNDARG) TURN OFF 1ST AND 2ND 00470000
B CFTARG1 GO SEE IF ANY MORE ARGUMENTS 00471000
SPACE 2 00471100
TSTCHAR EQU * @VA04451 00471300
CL R4,F1 ONE CHAR IN ARGUMENT? @VA04451 00471500
BNE TSTONOFF NO, TEST FOR ON/OFF @VA04451 00471700
CLC 0(0,R5),=X'C1' POSSIBLY ALPHANUMERIC? @VA04451 00471900
BL RETNR14 NO, VALID CHARACTER @VA04451 00472100
CLC 0(0,R5),=X'D0' IS THIS SPECIAL CHARACTER? @V60A6B6 00472140
BE RETNR14 YES, THEN VALID @V60A6B6 00472180
CLC 0(0,R5),=X'E0' OTHER SPECIAL CHARACTER? @V60A6B6 00472220
BE RETNR14 YES, VALID @V60A6B6 00472260
CLC 0(0,R5),=X'F9' IS IT ALPHANUMERIC? @VA04451 00472300
BH RETNR14 NO, VALID CHARACTER @VA04451 00472500
B LOADARG2 SEND ERROR MSG @VA04451 00472700
SPACE 2 00472900
TSTONOFF EQU * 00473000
CL R4,F1 LESS THAN 2 CHARACTERS @VA11392 00473050
BNH LOADARG2 YES, GO SEND ERROR MESSAGE @VA11392 00473100
BCTR R4,0 MINUS ONE FOR 'EX' 00476000
EX R4,COMPOFF 'OFF' ???? 00477000
BE RETOFF YES --- 00478000
EX R4,COMPON 'ON' ???? 00479000
BE RETON YES --- 00480000
LA R4,1(,R4) RESTORE BYTE COUNT FOR ERROR MESSAGE 00481000
B LOADARG2 GO SEND ERROR MESSAGE 00482000
SPACE 00483000
RETNR14 BR R14 RETURN FOR CHARACTER 00484000
RETOFF BR R7 RETURN FOR 'OFF' 00485000
RETON BR R6 RETURN FOR 'ON' 00486000
SPACE 00487000
COMPOFF CLC 0(0,R5),=C'OFF ' EXECUTED COMPARE 00488000
COMPON CLC 0(0,R5),=C'ON ' 00489000
EJECT 00490000
TERMEXIT EXIT 00491000
SPACE 4 00492000
LOADARG2 LR R2,R4 LOAD LENGTH INTO R2 00493000
LR R3,R5 LOAD ADDRESS OF BAD ARGUMENT 00494000
SPACE 00495000
CFT002 LR R0,R2 LENGTH 00496000
LR R1,R3 ADDRESS 00497000
LA R2,2 ERROR CODE 00498000
B CALLERM . . . 00499000
SPACE 00500000
CFT006 EQU * DMKCFT006E INVALID DEVICE TYPE - @V200820 00501000
SLR R1,R1 CLEAR PARM REGISTER @V200820 00502000
LA R2,006(0) MESSAGE NUMBER TO GR2 @V200820 00503000
SLR R0,R0 IF ANY DATA, WILL BE IN GR1 @V200820 00504000
LH R8,VMVTERM DISP TO VIRTUAL CONSOLE VDEVBLOK @V200820 00505000
LTR R8,R8 IS THERE ONE ? @V200820 00506000
BM CALLERM NO -- MESSAGE WITH NO DATA @V200820 00507000
AL R8,VMDVSTRT GET THE VDEVBLOK ADDRESS @V200820 00508000
CALL DMKSCNVD COMPUTE 'CCU' FORM OF VADDR @V200820 00509000
CALL DMKCVTBH CONVERT THE ADDRESS TO HEX 00510000
ICM R1,8,X40FFS BLANK THE HIGH BYTE 00511000
SLR R0,R0 ZIP GPR 0 00512000
B CALLERM GO SEND THE ERROR MESSAGE 00513000
SPACE 00514000
CFT026 LA R2,26 ERROR CODE 00515000
SR R1,R1 ZERO PARM REG 00516000
SPACE 00517000
CALLERM ICM R0,14,MODID+3 LOAD MODULE ID 00518000
CALL DMKERMSG . . . 00519000
* 00520000
* DMKERM WILL RETURN DIRECTLY TO DMKCFM - NOT HERE -- 00521000
* 00522000
BRACKET EQU X'AD' LINE DEL CHARACTER FOR ASCII @VA09934 00522100
EJECT 00523000
LTORG 00524000
EJECT 00525000
PSA , @V306638 00526000
COPY DEVTYPES @V306638 00527000
COPY EQU @V306638 00528000
COPY NETWORK @V306638 00529000
COPY RBLOKS @V306638 00530000
COPY SAVE @V306638 00531000
SYSLOCS , @V306638 00532000
COPY VMBLOK @V306638 00533000
END 00534000