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:
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.
Compiling DSQUXDT
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.
//samPLI JOB
//STEP1 EXEC PROC=IBMZCPL
//* Provide access to QMF edit macro DXEECSP
//PLI.SYSLIB DD DSN=QMF1310.SDSQUSRE,DISP=SHR
//PLI.SYSIN DD *
.
.
.
Your PL/I edit exit program DSQUXDT
or copy of sample program DSQUXDTP
that has been renamed to DSQUXDT
.
.
.
If your edit routine formats decimal
floating-point data, add ARCH(7) and
FLOAT(DFP) compiler options here.
/*
//* Provide access to QMF interface module DSQUXILE
//LKED.QMFLOAD DD DSN=QMF1310.SDSQLOAD,DISP=SHR
//LKED.SYSLMOD DD DSN=USER.LOADLIB,DISP=SHR
//LKED.SYSIN DD *
INCLUDE QMFLOAD(DSQUXILE)
ENTRY DSQUXILE
MODE AMODE(31) RMODE(ANY)
NAME DSQUEDIT(R)
/*