The SYSTEM option specifies the format used to pass parameters to the MAIN PL/I procedure, and generally indicates the host system under which the program runs.
.-MVS--. >>-SYSTEM--(-+-CICS-+-)---------------------------------------->< +-IMS--+ +-OS---+ '-TSO--'
Table 4 shows the type of parameter list you can expect, and how the program runs under the specified host system. It also shows the implied settings of NOEXECOPS. Your MAIN procedure must receive only those types of parameter lists that are indicated as valid in this table. Additional run-time information for the SYSTEM option is provided in z/OS Language Environment Programming Guide. .
|
SYSTEM option |
Type of parameter list |
Program runs as |
NOEXECOPS implied |
|---|---|---|---|
| SYSTEM(MVS) | Single CHARACTER string or no parameters. | z/OS application program | NO |
| Otherwise, arbitrary parameter list. | YES | ||
| SYSTEM(CICS) | Pointer(s) | CICS® transaction | YES |
| SYSTEM(IMS) | Pointer(s) | IMS™ application program | YES |
| SYSTEM(OS) | z/OS UNIX parameter list | z/OS UNIX application program | YES |
| SYSTEM(TSO) | Pointer to CCPL | TSO command processor | YES |
Under SYSTEM(IMS), all pointers are presumed to be passed BYVALUE, but under SYSTEM(MVS) they are presumed to be passed BYADDR.
MAIN procedures run under CICS must be compiled with SYSTEM(CICS) or SYSTEM(MVS).
It is highly recommended that NOEXECOPS be specified in the MAIN prodecure OPTIONS option for code, such as a DB2 stored procedure, compiled with SYSTEM(MVS) but run where run-time options would not be passed.