The CEEPIPI Language Environment interface and PL/I edit routines for TSO, ISPF, or native z/OS
Follow these instructions for using the CEEPIPI Language Environment® interface to write a QMF edit routine that runs in TSO, ISPF, or native z/OS®.
This interface consists of the following parts:
- Interface control structure DXEECS
This control structure is shipped with QMF as DXEECSP. The control structure is passed on all calls to the edit exit program. It contains status and communications information between QMF and the edit exit routine. It also contains information about the data to be formatted as well as a pointer to where the formatted result is stored.
For more information about the DXEECS control structure, see copy file DXEECSP, which is in the QMF1310.SDSQUSRn library (where n is a 1-character identifier that represents your national language).
- A control program named DSQUXILE, which is shipped with QMF
DSQUXILE must be the main entry point to the QMF edit exit module, DSQUEDIT. DSQUXILE is in the QMF module library, QMF1310.SDSQLOAD. The DSQUXILE control program calls the CEEPIPI program to initialize the Language Environment and to terminate the Language Environment when the QMF session ends. The DSQUXILE control program calls the user exit program, DSQUXDT, by calling the CEEPIPI program and specifying execution of the DSQUXDT program.
- Your edit exit program
The example edit exit program for PL/I, named DSQUXDTP, is in the QMF1310.SDSQSAPn library (where n is a 1-character identifier that represents your national language). The example program is heavily commented; it can be browsed online, printed, or modified to suit your needs. If you plan to use this program, copy it to your private program source library and change its name to DSQUXDT.
- Language Environment preinitialization service program, which is named CEEPIPI
The following figure shows the program structure of a PL/I edit exit routine that uses the CEEPIPI Language Environment interface.
Statements for calling your program and returning control to QMF
DSQUXDT: PROCEDURE(DXEECSF,ECSINPTF,ECSRSLTF) OPTIONS(REENTRANT);
Return control to QMF by using a standard RETURN statement.
Compile your edit exit program by specifying REENTRANT as a procedure option. See Statements for calling your program and returning control to QMF for the proper syntax of the PROCEDURE statement.
During the compilation, QMF edit exit interface control block DXEECSP, in the QMF1310.SDSQUSRn library (where n is a 1-character identifier that represents your national language), must be available in the SYSLIB allocation.
Link-editing your program
Create a new QMF edit exit module (DSQUEDIT) by including your edit program (DSQUXDT) with the control module (DSQUXILE), in QMF module library QMF1310.SDSQLOAD. DSQUXILE must be specified as the entry point.
Module DSQUEDIT can be executed in either 24-bit or 31-bit addressing mode. QMF runs in 31-bit addressing mode and automatically switches to 24-bit addressing mode if edit exit module DSQUEDIT has a 24-bit addressing mode.
Thirty-one bit addressing mode is recommended.
These statements show examples for assembling and link-editing your job for TSO, ISPF, or native z/OS. If your edit routine formats decimal floating-point data, you need to add the ARCH(7) and FLOAT(DFP) compiler options. Before you run this job, create the load library that is referenced in the SYSLMOD statement; the user edit exit module will reside in this library.