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