OPT TITLE 'DMSOPT (CMS) VM/370 - RELEASE 6' 00001000
SPACE 2 00002000
*. 00003000
* MODULE NAME 00004000
* 00005000
* DMSOPT ( OPTION ) 00006000
* 00007000
* FUNCTION 00008000
* 00009000
* PROVIDE THE FACILITY TO SET DOS/VS DEFAULT OPTIONS 00010000
* IN THE COMMUNICATION REGION FOR USE BY ANY DOS/VS 00011000
* PROGRAM. ALSO, IF NO OPTIONS ARE SPECIFIED IN THE 00012000
* COMMAND LINE, ANY PREVIOUS USER MODIFIED DEFAULT 00013000
* OPTIONS ARE SET TO THEIR ORIGINAL DEFAULT VALUE. 00014000
* 00015000
* ATTRIBUTES 00016000
* 00017000
* DISK RESIDENT MODULE 00018000
* REENTRANT 00019000
* EXECUTES IN TRANSIENT AREA 00020000
* 00021000
* ENTRY POINTS 00022000
* 00023000
* DMSOPT 00024000
* 00025000
* ENTRY CONDITIONS 00026000
* 00027000
* R1 = PARAMETER LIST 00028000
* 00029000
* DC CL8'OPTION' COMMAND 00030000
* 00031000
* .. THE FOLLOWING OPTIONS ARE 00032000
* .. OPTIONAL, IF NONE SPECIFIED, 00033000
* .. ALL DEFAULT OPTIONS ARE RESET 00034000
* .. TO THEIR ORIGINAL VALUE. 00035000
* 00036000
* DC CL8'48C'|'60C' DOS/VS OPTION 00037000
* DC CL8'SYM'|'NOSYM' DOS/VS OPTION 00038000
* DC CL8'DECK'|'NODECK' DOS/VS OPTION 00039000
* DC CL8'LIST'|'NOLIST' DOS/VS OPTION 00040000
* DC CL8'XREF'|'NOXREF' DOS/VS OPTION 00041000
* DC CL8'ERRS'|'NOERRS' DOS/VS OPTION 00042000
* DC CL8'DUMP'|'NODUMP' DOS/VS OPTION 00043000
* DC CL8'LISTX'|'NOLISTX' DOS/VS OPTION 00044000
* 00045000
* EXIT CONDITIONS 00046000
* 00047000
* RETURN TO CALLER WITH RETURN CODE IN R15 00048000
* 00049000
* RETURN CODES AND MESSAGES: 00050000
* 00051000
* 24 - INVALID PARAMETER SPECIFIED 00052000
* 32 - CMS/DOS ENVIRONMENT NOT ACTIVE 00053000
* 00054000
* CALLS TO OTHER ROUTINES 00055000
* 00056000
* NONE 00057000
* 00058000
* EXTERNAL REFERENCES 00059000
* 00060000
* BGCOM 00061000
* 00062000
* TABLES/WORK AREAS 00063000
* 00064000
* NONE 00065000
* 00066000
* REGISTER USAGE 00067000
* 00068000
* R0 NOT USED 00069000
* R1 BGCOM ADDRESSABILITY 00070000
* R2 COMMAND LINE POINTER 00071000
* R3 NOT USED 00072000
* R4 NOT USED 00073000
* R5 NOT USED 00074000
* R6 NOT USED 00075000
* R7 NOT USED 00076000
* R8 NOT USED 00077000
* R9 NOT USED 00078000
* R10 TEMPORARY SAVE FOR REGISTERS 00079000
* R11 SAVE FOR R14 (RETURN REGISTER) 00080000
* R12 DMSOPT ADDRESSABILITY 00081000
* R13 NOT USED 00082000
* R14 RETURN REGISTER 00083000
* R15 RETURN CODE 00084000
* 00085000
* OPERATION 00086000
* 00087000
* 1. SET UP NECESSARY ADDRESSABILITIES AND SAVE 00088000
* THE RETURN REGISTER. ACQUIRE SUPERVISOR KEY 00089000
* AND INITIALIZE SOME REGISTERS. VERIFY IF IN 00090000
* CMS/DOS ENVIRONMENT. 00091000
* 00092000
* 2. CHECK THE COMMAND LINE FOR VALID PARAMETERS 00093000
* (DOS/VS OPTIONS) AND SET THE PROPER OPTION 00094000
* FALGS IN THE COMMUNICATIONS REGION FOR EACH 00095000
* VALID OPTION SPECIFIED. 00096000
* 00097000
* 3. IF NO PARAMETERS WHERE SPECIFIED AFTER THE 00098000
* COMMAND NAME IN THE COMMAND LINE, THE NON- 00099000
* STANDARD OPTION BYTES IN THE COMMUNICATIONS 00100000
* ARE RESET WITH THE STANDARD DEFAULT OPTIONS 00101000
* FOR THE CMS/DOS ENVIRONMENT. 00102000
* 00103000
* 4. WHEN ALL PROCESSING HAS BEEN DONE, A SWITCH 00104000
* TO PROBLEM PROGRAM KEY IS DONE, AND A RETURN 00105000
* TO THE CALLER IS MADE PASSING IN REG. 15 THE 00106000
* RETURN CODE OF THE COMMAND. 00107000
*. 00108000
EJECT 00109000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00110000
* * 00111000
* INITIALIZATION - SAVE REG14, CHECK CMS/DOS ENVIRONMENT * 00112000
* AND INITIALIZE SOME REGISTERS. * 00113000
* * 00114000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00115000
SPACE 2 00116000
DMSOPT CSECT @V305001 00117000
USING NUCON,R0 @V305001 00118000
USING DMSOPT,R12 @V305001 00119000
LR R11,R14 SAVE RETURN REGISTER @V305001 00120000
LR R12,R15 ESTABLISH BASE @V305001 00121000
TM DOSFLAGS,DOSMODE CMS/DOS MODE ACTIVE ? @V305001 00122000
BZ ERR099 NO, ERROR @V305001 00123000
SR R15,R15 ZERO RETURN CODE @V305001 00124000
LA R2,8(,R1) POINT TO FIRST OPTION @V305001 00125000
L R1,ABGCOM GET BGCOM ADDRESS @V305001 00126000
USING BGCOM,R1 @V305001 00127000
CLI 0(R2),FENCE ANY OPTIONS ? @V305001 00128000
BE RESET NO, RESET TO STD. @V305001 00129000
EJECT 00130000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00131000
* * 00132000
* SCAN COMMAND LINE AND CHECK ALL PARAMETERS SPECIFIED * 00133000
* FOR VALIDITY AS DOS OPTIONS. SET PROPER FLAGS ON. * 00134000
* * 00135000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00136000
SPACE 2 00137000
OPTLUP CLC CDECK,0(R2) IS IT DECK ? @V305001 00138000
BNE CKNODECK NO, BRANCH @V305001 00139000
OI JCSW3,DECK SET DECK FLAG @V305001 00140000
B NXTOPT GO SEE IF MORE @V305001 00141000
CKNODECK CLC CNODECK(8),0(R2) IS IT NODECK ? @V305001 00142000
BNE CKLIST NO, BRANCH @V305001 00143000
NI JCSW3,255-DECK CLEAR DECK IF ANY @V305001 00144000
B NXTOPT GO SEE IF MORE @V305001 00145000
CKLIST CLC CLIST,0(R2) IS IT LIST ? @V305001 00146000
BNE CKNOLIST NO, BRANCH @V305001 00147000
OI JCSW3,LIST SET LIST FLAG @V305001 00148000
B NXTOPT GO SEE IF MORE @V305001 00149000
CKNOLIST CLC CNOLIST(8),0(R2) IS IT NOLIST ? @V305001 00150000
BNE CKLISTX NO, BRANCH @V305001 00151000
NI JCSW3,255-LIST CLEAR LIST IF ANY @V305001 00152000
B NXTOPT GO SEE IF MORE @V305001 00153000
CKLISTX CLC CLISTX,0(R2) IS IT LISTX ? @V305001 00154000
BNE CKNOLSTX NO, BRANCH @V305001 00155000
OI JCSW3,LISTX SET LISTX FLAG @V305001 00156000
B NXTOPT GO SEE IF MORE @V305001 00157000
CKNOLSTX CLC CNOLISTX(8),0(R2) IS IT NOLISTX ? @V305001 00158000
BNE CKSYM NO, BRANCH @V305001 00159000
NI JCSW3,255-LISTX CLEAR LISTX IF ANY @V305001 00160000
B NXTOPT GO SEE IF MORE @V305001 00161000
CKSYM CLC CSYM,0(R2) IS IT SYM ? @V305001 00162000
BNE CKNOSYM NO, BRANCH @V305001 00163000
OI JCSW3,SYM SET SYM FLAG @V305001 00164000
B NXTOPT GO SEE IF MORE @V305001 00165000
CKNOSYM CLC CNOSYM(8),0(R2) IS IT NOSYM ? @V305001 00166000
BNE CKXREF NO, BRANCH @V305001 00167000
NI JCSW3,255-SYM CLEAR SYM IF ANY @V305001 00168000
B NXTOPT GO SEE IF MORE @V305001 00169000
EJECT 00170000
CKXREF CLC CXREF,0(R2) IS IT XREF ? @V305001 00171000
BNE CKNOXREF NO, BRANCH @V305001 00172000
OI JCSW3,XREF SET XREF FLAG @V305001 00173000
B NXTOPT GO SEE IF MORE @V305001 00174000
CKNOXREF CLC CNOXREF(8),0(R2) IS IT NOXREF ? @V305001 00175000
BNE CKERRS NO, BRANCH @V305001 00176000
NI JCSW3,255-XREF CLEAR XREF IF ANY @V305001 00177000
B NXTOPT GO SEE IF MORE @V305001 00178000
CKERRS CLC CERRS,0(R2) IS IT ERRS ? @V305001 00179000
BNE CKNOERRS NO, BRANCH @V305001 00180000
OI JCSW3,ERRS SET ERRS FLAG @V305001 00181000
B NXTOPT GO SEE IF MORE @V305001 00182000
CKNOERRS CLC CNOERRS(8),0(R2) IS IT NOERRS ? @V305001 00183000
BNE CK48C NO, BRANCH @V305001 00184000
NI JCSW3,255-ERRS CLEAR ERRS IF ANY @V305001 00185000
B NXTOPT GO SEE IF MORE @V305001 00186000
CK48C CLC C48C,0(R2) IS IT 48C ? @V305001 00187000
BNE CK60C NO, BRANCH @V305001 00188000
OI JCSW3,F48C SET 48C FLAG @V305001 00189000
B NXTOPT GO SEE IF MORE @V305001 00190000
CK60C CLC C60C,0(R2) IS IT 60C ? @V305001 00191000
BNE CKDUMP NO, BRANCH @V305001 00192000
NI JCSW3,255-F48C CLEAR 48C IF ANY @V305001 00193000
B NXTOPT GO SEE IF MORE @V305001 00194000
CKDUMP CLC CDUMP,0(R2) IS IT DUMP ? @V305001 00195000
BNE CKNODUMP NO, BRANCH @V305001 00196000
OI JCSW4,DUMP SET DUMP FLAG @V305001 00197000
B NXTOPT GO SEE IF MORE @V305001 00198000
CKNODUMP CLC CNODUMP(8),0(R2) IS IT NODUMP ? @V305001 00199000
BNE ERR070 NO, ERROR @V305001 00200000
NI JCSW4,255-DUMP CLEAR DUMP IF ANY @V305001 00201000
EJECT 00202000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00203000
* * 00204000
* CHECK IF MORE OPTIONS. IF MORE, START FROM TOP AGAIN. * 00205000
* IF NO MORE, EXIT WITH ANY RETURN CODE POSTED. * 00206000
* * 00207000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00208000
SPACE 2 00209000
NXTOPT LA R2,8(,R2) BUMP TO NEXT OPTION @V305001 00210000
CLI 0(R2),FENCE IS THIS ALL ? @V305001 00211000
BNE OPTLUP NO, GO PROCESS THIS ONE @V305001 00212000
OPTEXIT LR R10,R15 SAVE RETURN CODE @V305001 00213000
LTR R15,R10 RESTORE RETURN CODE (CC = 0) @V305001 00214000
LR R14,R11 RESTORE RETURN REG. @V305001 00215000
BR R14 RETURN TO CALLER @V305001 00216000
SPACE 2 00217000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00218000
* * 00219000
* RESET THE TEMPORARY BYTES IN THE COMMUNICATIONS REGION * 00220000
* TO THE STANDARD ONES SET FOR CMS/DOS. * 00221000
* * 00222000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00223000
SPACE 2 00224000
RESET MVC JCSW3(1),SOB1 NON-STD. OPTION BYTE 3 = STD. @V305001 00225000
MVI JCSW4,JOBRUN JOB DURATION BYTE = JOB RUNNING @V305066 00226000
B OPTEXIT ALL DONE... @V305001 00227000
DROP R1 @V305001 00228000
EJECT 00229000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00230000
* * 00231000
* CONSTANTS AND EQUATES * 00232000
* * 00233000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00234000
SPACE 2 00235000
FENCE EQU X'FF' FENCE CODE @V305001 00236000
JOBRUN EQU X'80' JOB IN PROGRESS @V305066 00237000
* 00238000
RC24 EQU 24 RETURN CODE @V305066 00239000
RC40 EQU 40 RETURN CODE @V305066 00240000
* 00241000
CNODECK DC CL2'NO' OPTIONS @V305001 00242000
CDECK DC CL8'DECK' OPTIONS @V305001 00243000
CNOLIST DC CL2'NO' OPTIONS @V305001 00244000
CLIST DC CL8'LIST' OPTIONS @V305001 00245000
CNOLISTX DC CL2'NO' OPTIONS @V305001 00246000
CLISTX DC CL8'LISTX' OPTIONS @V305001 00247000
CNOSYM DC CL2'NO' OPTIONS @V305001 00248000
CSYM DC CL8'SYM' OPTIONS @V305001 00249000
CNOXREF DC CL2'NO' OPTIONS @V305001 00250000
CXREF DC CL8'XREF' OPTIONS @V305001 00251000
CNOERRS DC CL2'NO' OPTIONS @V305001 00252000
CERRS DC CL8'ERRS' OPTIONS @V305001 00253000
C48C DC CL8'48C' OPTIONS @V305001 00254000
C60C DC CL6'60C' OPTIONS @V305001 00255000
CNODUMP DC CL2'NO' OPTIONS @V305001 00256000
CDUMP DC CL8'DUMP' OPTIONS @V305001 00257000
* 00258000
DECK EQU X'80' FLAG SEETINGS @V305001 00259000
LIST EQU X'40' FLAG SETTINGS @V305001 00260000
LISTX EQU X'20' FLAG SETTINGS @V305001 00261000
SYM EQU X'10' FLAG SETTINGS @V305001 00262000
XREF EQU X'08' FLAG SETTINGS @V305001 00263000
ERRS EQU X'04' FLAG SETTINGS @V305001 00264000
F48C EQU X'02' FLAG SETTINGS @V305001 00265000
DUMP EQU X'40' FLAG SETTINGS @V305001 00266000
EJECT 00267000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00268000
* * 00269000
* ERROR MESSAGES * 00270000
* * 00271000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00272000
SPACE 2 00273000
ERR070 LR R10,R1 SAVE R1 TEMPORARILY @V305001 00274000
DMSERR TEXT='INVALID PARAMETER ''........''',NUM=70,LET=E, *00275000
SUB=(CHARA,(R2)) @V305001 00276000
LA R15,RC24 RETURN CODE = 24 @V305066 00277000
LR R1,R10 RESTORE R1 @V305001 00278000
B NXTOPT KEEP LOOKING FOR BADS... @V305001 00279000
SPACE 1 00280000
ERR099 EQU * @V305001 00281000
DMSERR TEXT='CMS/DOS ENVIRONMENT NOT ACTIVE',NUM=99,LET=E 00282000
LA R15,RC40 RETURN CODE = 40 @V305066 00283000
B OPTEXIT RETURN TO CALLER @V305001 00284000
EJECT 00285000
NUCON @V305001 00286000
BGCOM @V305001 00287000
REGEQU @V305001 00288000
END 00289000