What if I want to keep the DSMUTMSG file but not have it print at the end of the job?
The only way is to use .SY to copy or rename the DSMUTMSG file at the end of your source file. Then when DCF goes to imbed DSMUTMSG, it won't be found. .garbage line o'text following error message .if &$PSNO eq &$PASS .th .sy erase mysmg script a .th .sy rename dsmutmsg script a mymsg script a When you format, remember to specify SYON and CONTINUE. This won't work on MVS because the .SYs are processed after DSMUTMSG has been imbedded. Note: SY is an obsolete control word. Here is the text for APAR PL39478 to warn you of the security exposure with this approach. .cm********************************************************************** .cm * .cm PL39478 SEV: 4 CLOSE CODE: PER PROB NO: 99999,999,000 * .cm * .cm CREATOR: C/T OWNER: * .cm * .cm SCRIPT COMMAND: SCRIPT PL39478 (DEV(3820A) * .cm * .cm SYMPTOM CODE: NF SYMPTOM KEYWORD: FUNCTION * .cm * .cm ABSTRACT: .SY PROCESSING REGARDLESS OF SYOFF FOR CERTAIN COMMANDS * .cm * .cm ERROR DESCRIPTION: * .cm Support is needed to give DCF users the ability to process the * .cm .SY control word for certain system commands regardless of the * .cm SYON option that is now required for processing. The user * .cm would like the ability to define such .SY system commands, * .cm while leaving all other undefined .SY system commands for DCF * .cm to process normally. * .cm * .cm PROBLEM SUMMARY: * .cm *************************************************************** * .cm | * USERS AFFECTED: ALL DCF CMS OR TSO USERS * * .cm *************************************************************** * .cm * PROBLEM DESCRIPTION: .SY only processes when SYON specified * * .cm *************************************************************** * .cm * RECOMMENDATION: * * .cm *************************************************************** * .cm The user would like .SY to process certain system commands * .cm regardless of the option specified: SYON or SYOFF. * .cm * .cm PROBLEM CONCLUSION: * .cm | New module DSMXTKSY will be added to provide an interface point * .cm | for processing .SY commands with user routines. DSMESKSY(CMS) * .cm | and DSMTSKSY(TSO) will be changed to call module DSMXTKSY. * .cm * .cm Following is a description of the interface between DCF Release * .cm 3.2 and processing for system commands. For security reasons, * .cm the .SY control word is still obsolete meaning it is neither * .cm supported nor maintained. This interface was created to adhere * .cm to security requirements while allowing the user some * .cm flexibility in the extent of their security. CMS and TSO are * .cm the only environments using this interface. Specific * .cm instructions for using the interface are included. * .cm * .cm PROCESSING OF THE .SY CONTROL WORD: Currently, use of the .SY * .cm control word to issue system commands is allowed only if the * .cm SYON command option is specified. If the SYOFF command option * .cm is specified, or if neither SYON nor SYOFF is specified, any * .cm use of the .SY control word will cause a severe error. * .cm * .cm INTERFACE VIA DSMXTKSY: An interface has been created via the * .cm module DSMXTKSY which allows an installation to write a routine * .cm to determine the action to be taken when a .SY control word is * .cm encountered. The different actions possible are as follows: * .cm * .cm -process the .SY control word only if SYON is active * .cm * .cm -process the .SY control word even if SYOFF is active * .cm * .cm -ignore the .SY control word completely * .cm * .cm -disallow the .SY control word, even if SYON is active * .cm * .cm DSMXTKSY is called by SCRIPT/VS CMS module DSMESKSY whenever a * .cm .SY control word is encountered. DSMTSKSY will do the calling * .cm when running in TSO. By default, DSMXTKSY will return * .cm indicating that the .SY control word should only be processed * .cm if SYON is active. * .cm * .cm * .cm SYSTEM COMMAND INTERFACE: The assembler-level programming * .cm interface presented to the system command stub routine by * .cm SCRIPT/VS is described below. Emphasis is given to register * .cm conventions, the parameter list sent to the system command * .cm routine and entry and exit protocols. * .cm * .cm REGISTER CONVENTIONS: When SCRIPT/VS calls DSMXTKSY the * .cm following general registers contain significant information: * .cm * .cm R1 - Register 1 contains the address * .cm of the parameter list sent to * .cm DSMXTKSY by SCRIPT/VS. * .cm * .cm R11 - Register 11 contains the address * .cm of the SCRIPT command control * .cm block. This register should not * .cm be altered by your routine * .cm or by any subroutines your routine * .cm may invoke. * .cm * .cm R12 - Register 12 is, by convention, the * .cm base register used by all * .cm SCRIPT/VS modules. Your routine * .cm should copy the contents * .cm of Register 15 into Register 12 and * .cm use it as a base register. * .cm * .cm R13 - Register 13 contains the address of * .cm a preallocated, prechained * .cm register save area. This register * .cm should not be altered by * .cm your routine or by any subroutines * .cm your routine may invoke. * .cm * .cm R14 - Register 14 contains the address to * .cm which your routine should return * .cm when finished. * .cm * .cm R15 - Register 15 contains the entry point * .cm address of your routine. This value * .cm should be copied into Register 12. * .cm * .cm * .cm THE PARAMETER LIST: The system command parameter list, which * .cm is addressed by Register 1 on entry to the routine contains the * .cm following fields: * .cm * .cm bytes 1-60 - On entry, these 15 fullwords * .cm have not been filled in. * .cm DSMXTKSY should save the * .cm contents of 15 registers in * .cm this area. DSMXTKSY MUST * .cm ensure that the contents * .cm of the registers are the * .cm same upon exit from DSMXTKSY * .cm as they were upon entry. * .cm * .cm bytes 61-64 - On entry, this fullword has * .cm been filled in with the * .cm address of a 256-byte work * .cm area which DSMXTKSY can use. * .cm All storage used by DSMXTKSY * .cm should be from this work * .cm area. * .cm * .cm bytes 65-66 - On entry, this halfword has been * .cm initialized to zero. * .cm On exit, this halfword should * .cm contain the return code * .cm from DSMXTKSY to SCRIPT/VS, * .cm to tell SCRIPT/VS what * .cm action to take for the current .SY * .cm control word. * .cm The recognized return codes are: * .cm * .cm 0 = Process .SY control word according to * .cm SYON/SYOFF setting. If SYOFF is in affect, * .cm message 313S will be issued. * .cm * .cm 4 = Process .SY control word regardless of * .cm SYON/SYOFF setting. * .cm * .cm 8 = Ignore the .SY control word regardless of * .cm SYON/SYOFF setting. No further processing * .cm of the .SY control word will be done. * .cm * .cm 12 = Disallow .SY regardless of SYON/SYOFF * .cm setting. Message 313S will be issued, * .cm regardless of the SYON/SYOFF setting. * .cm * .cm | 16 = Indicate an unexplainable condition has * .cm | happened. DCF will issue message 400 * .cm | and terminate. * .cm * .cm bytes 67-68 - On entry this halfword contains the * .cm | length of the .SY control word parameter * .cm | list. * .cm * .cm bytes 69-324 - On entry this field contains the .SY * .cm control word command line to be processed. * .cm | The first four bytes, ".SY " have been * .cm | stripped out and only the command remains. * .cm * .cm * .cm ROUTINE ENTRY AND EXIT PROTOCOL: The following ENTRY protocol * .cm is suggested for the system command routine: * .cm * .cm DSMXTKSY CSECT * .cm USING PARMLIST,R1 * .cm STM R14,R12,PARMRSV SAVE ALL THE REGISTERS * .cm USING DSMXTKSY,R12 * .cm LR R12,R15 * .cm L R2,PARMWA GET ADDRESS OF THE WORK AREA * .cm USING WORKA,R2 * .cm MVC PARMRC,=H'0' INITIALIZE RETURN CODE TO ZERO * .cm * .cm The above assumes the parameter list has been defined as: * .cm * .cm PARMLIST DSECT * .cm PARMRSV DS 15F SAVE AREA FOR REGISTERS * .cm PARMWA DS F ADDRESS OF WORK AREA * .cm PARMRC DS H RETURN CODE * .cm PARMSYLG DS H LENGTH OF PARMSY * .cm PARMSY DS CL256 .SY CONTROL WORD TO PROCESS * .cm * .cm | A WORKA DSECT has been defined. The following is an example: * .cm | * .cm | WORKA DSECT * .cm | WORK DS CL256 * .cm * .cm * .cm The following EXIT protocol is suggested for the system command * .cm routine: * .cm * .cm LM R14,R12,PARMRSV RESTORE REGISTERS * .cm BR R14 RETURN TO CALLER * .cm * .cm * .cm SAMPLE DSMXTKSY PROCESSING: One possible use of the DSMXTKSY * .cm interface is to allow a certain subset of system commands even * .cm if SYOFF has been specified. To do this, a table of allowable * .cm system commands must be created, and DSMXTKSY must be used to * .cm search that table for the command given on the .SY control * .cm word. In conjunction with suggested entry and exit protocol, * .cm the following shows sample logic for accomplishing this task: * .cm * .cm -parse the system command from the .SY control * .cm word line in the parameter list pointed to by * .cm register 1 * .cm * .cm -translate the system command to uppercase * .cm * .cm -look for the system command in a table * .cm of system commands which are allowed in * .cm SYOFF mode * .cm * .cm -if the system command is found: * .cm * .cm = set return code to 4 * .cm * .cm NOTE: If the system command is not found, the return * .cm code has already been initialized to zero to * .cm indicate to SCRIPT/VS to process the .SY control * .cm word according to the SYON/SYOFF setting. * .cm * .cm * .cm Installation Instructions: The following procedure is * .cm recommended for replacing an IBM supplied stub routine with * .cm your routine in the CMS environment: * .cm * .cm 1. Compile or assemble DSMXTKSY to produce a TEXT file. * .cm If your routine calls any other modules, compile or * .cm assemble them also. * .cm * .cm 2. Link and access the SCRIPT/VS Release 3.2 installation * .cm minidisk in READ/WRITE mode as your A-disk. * .cm * .cm 3. Move the IBM-supplied DSMXTKSY to another disk to * .cm save it. * .cm * .cm 4. Copy your DSMXTKSY TEXT file onto the A-disk. * .cm If your routine calls any other modules, copy them * .cm also. * .cm * .cm 5. Issue the following CMS command: * .cm * .cm dsmgnd32 * .cm * .cm This EXEC creates a new DSM3 MODULE (disk resident * .cm SCRIPT MODULE). * .cm * .cm 6. If your installation has defined a shared segment * .cm named DSMSEG3 for SCRIPT/VS, make sure the new SCRIPT * .cm module will fit entirely within the defined shared * .cm segment. Then issue the following CMS command: * .cm * .cm dsmgns32 * .cm * .cm This EXEC reloads the DSMSEG3 shared segment. * .cm * .cm 7. Copy the new SCRIPT MODULE file onto the * .cm public minidisk where SCRIPT/VS normally resides * .cm at your installation. * .cm * .cm The following procedure is recommended for replacing an IBM- * .cm supplied stub routine with a routine in the TSO environment: * .cm * .cm 1. Compile or assemble DSMXTKSY to produce an object file * .cm suitable as input to the OS/VS linkage editor. If your * .cm routine calls any other modules, compile or * .cm assemble them also, and append them to the DSMXTKSY * .cm object file. * .cm * .cm 2. Find out the name of the DCF Release 3.2 load library that * .cm contains the installed IBM-supplied dictionary routines. * .cm This library is named DCF.R32.DCFLOAD in the example below. * .cm DCF may have been placed in another load library, such * .cm as SYS1.CMNDLIB, at your installation. * .cm * .cm 3. Execute the following job to replace the stub routine with * .cm your routine in the DCF load library. * .cm * .cm //INSTALL JOB ,SCRIPTVS,MSGLEVEL=(1,1) * .cm //LINKALG EXEC PGM=HEWL,REGION=768K * .cm // PARM='RENT,XREF,LIST,LET, * .cm // NCAL,SIZE=(460K,96K)' * .cm //SYSPRINT DD SYSOUT=A * .cm //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(5,1)) * .cm //OBJSY DD DSN=DSMXTKSY.OBJ,DISP=SHR * .cm //DCF DD DSN=DCF.R32.DCFLOAD,DISP=SHR * .cm //SYSLMOD DD DSN=DCF.R32.DCFLOAD,DISP=OLD * .cm //SYSLIN DD * * .cm INCLUDE OBJSY * .cm INCLUDE DCF (DSMTSS30) * .cm (insert order statements here) * .cm ENTRY DSMTSTSO * .cm ALIAS SCRIPT * .cm NAME DSMTSS30(R) * .cm /* * .cm // * .cm * .cm NOTE: The current correct linkage editor ORDER statements * .cm should be obtained from the DCF installation sample * .cm DSMTSIVL in DCF.R32.DCFSAMP. * .cm * .cm * .cm CIRCUMVENTION: * .cm * .cm NOTES TO C/T: * .cm * .cm TESTING NOTES: * .cm A test table was created and applied to DSMXTKSY and tested * .cm in both CMS and TSO. * .cm * .cm RPC Number: n/a * .cm * .cm********************************************************************** .cm
Last updated: 96/06/12 21:54:05