Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

SYSSTMT exit 083

&pagelevel(4)&pagelevel

This exit corresponds to exit number 081. All information applies equally to both exits.

Notes

  • The contents of registers 12, 13 and 14 must not be destroyed by the exit routine.

  • The SYSTAT exit routine should process commands in the same way, regardless of how they were entered.

  • If the exit routine is deactivated while a statement is replaced by several commands, the following dummy command record is sent to the user program:

    /REMARK SYSCMD EXIT NO MORE ACTIVE DURING PROCESSING

  • A command or statement can only be modified by commands or statements defined in the system syntax file.

  • Variable substitution has already been effected in procedures when the exit is called.

DSECT

         EX080 D
EX080PL  DSECT
*-
*-       INPUT  INFORMATION
*-
EX080IND DC    AL1(0)                  SOURCE OF COMMANDS
EX080TER EQU   1                       -CMD READ FROM A TERMINAL
EX080FIL EQU   2                       -CMD READ FROM A JCL FILE
EX080MCL EQU   4                       -CMD READ VIA MCLP
EX080TRN EQU   8                       -CMD READ VIA TRCMD          999
EX080BUF EQU   16                      -CMD FOUND IN BS2000 BUFFER  999
*-
EX080BIT DC    X'00'                   BIT_INFO                     900
EX080SDF EQU   X'80'                   -INPUT IN SDF STRUCTURED FORM002
EX080SD2 EQU   X'40'                   -INPUT IN NEW SDF STRUCT FORM120
EX080STR EQU   X'00'                   -INPUT IN STRING MODE        900
*-
EX080UNU DC    2X'00'                                               900
*-
EX080IR  DC    A(0)                    A (INPUT RECORD)
*-
*-       OUTPUT INFORMATION
*-
EX080RC  DC    AL1(0)                  SYSCMD EXIT'S RETURN CODE
EX80CAC  EQU   0                       -CMD REC ACCEPTED
EX80CRJ  EQU   4                       -CMD REC REJECTED
EX80CRO  EQU   8                       -CMD REC REPLACED BY ONE
EX80CRS  EQU   12                      -CMD REC REPLACED BY SEVERAL
EX80CLR  EQU   16                      -LAST CMD REC REPLACED
         DC    3X'00'                  UNUSED IN VER=710
*-
EX080RR  DC    A(0)                    A (RETURNED RECORD)
*-
*-       ADDITIONAL INPUT  INFORMATION
*-
EX080ILR DC    A(0)                    A (LOWER CASE INPUT RECORD)
EX080STD DC    A(0)                    A (STD FORM)

 

Meanings of the fields:

EX080IND

Source of the command

EX080TER

Command input from the terminal

EX080FIL

Command input from a JCL file

EX080MCL

Command input via MCLP from a user program

EX080TRN

Command input by TRCMD

EX080BUF

Command read internally

EX080BIT

Structure of the input

EX080SDF

Input in SDF format

EX080STR

Input not in SDF format

EX080IR

Address of the input command record or of the standardized transfer area

EX080RC

Return code of the system exit

EX080CAC

Command accepted

EX080CRJ

Command rejected

EX080CRO

Command modified or replaced

EX080CRS

Command replaced by several commands

EX080CLR

Last command record replaced

EX080RR

Address of command record returned to calling system component upon modification or replacement.

EX080ILR

Address of the input record

EX080STD

Address of the standard input

Meanings of the return codes in the EX080RC field

Return code X’04’: command rejected (EX080RC=EX080CRJ)

In interactive mode, no system message is output to the terminal. The exit routine can, however, send a message to the user.

In the case of command input from a cataloged file the following message is output:

/REMARK COMMAND REJECTED BY THE SYSTEM ADMINISTRATOR

In batch mode the same message is entered in the logging file.

Return code X’08’: command replacement or modification (EX080RC=EX080CRO)

The exit routine must construct the new or modified command itself and supply values to the standardized transfer area (see the “SDF-A” manual [10]). The address of the command record (of the standardized transfer area) is passed to the calling system component via the EX080RR field of the parameter area.

Format of the command record (if not standardized SDF transfer area):

0

2

4

RL-1

RL


command with operands


where RL = record length

ISAM keys, continuation characters and symbolic parameters (&...) are not permitted in the command record. The record length may be modified.

In interactive mode, no system message is output.

In the case of command input from a cataloged file, the new or modified command is output or entered in the logging file.

When the command is input via MCLP, the replacing command must also be legal for
MCLP, otherwise return code X’14’ (invalid command) is returned to the user program.
No CALL-PROCEDURE, LOGOFF, LOAD-PROGRAM or START-PROGRAM command may be returned and no other command may be called via MCLP, since that would cause the user program to be unloaded immediately.
If an error occurs during processing of the new command, X’10’ (illegal command) is reported to the user program.

Return codes X’0C’ and X’10’: replacement of one command by several
(EX080RC=EX080CRS/EX080CLR)

If the exit routine returns a command record to the system (see RC=X’08’) and simultaneously sets the return code in the EX080RC field of the parameter area to X’0C’ (= EX080CRS), it is given control again immediately and can pass the next command record. As of the second call after return code X’0C’, the address of the input command record (field EX080IR in the parameter area) is set to zero. When the exit routine returns the last command, it must set the return code in the parameter area to X’10’.

In interactive mode, no system message is output for the replacement of one command by several commands.

In batch mode, the replacing commands are written to the logging file.

When a command is entered via MCLP, the notes on return code X’08’ must be taken into consideration. The commands mentioned above (CALL-PROGRAM etc.) must not be returned via a command sequence, since this would cause the user program to be unloaded immediately. If a buffer has been provided in the user program for storing the results of MCLP command processing, this buffer must be able to accommodate the results of the entire command sequence.

It is to be expected that many user programs working with MCLP calls will not run correctly when the exit routine replaces one command by several commands.