Writing an edit routine in PL/I for native OS/390, TSO, or ISPF with language environment (LE)

The QMF edit exit interface for PL/I in TSO, ISPF, or native OS/390 with LE consists of these parts:

Figure 168 shows the program structure of a PL/I edit exit routine in TSO, ISPF, or native OS/390.

Figure 168. Program structure of a PL/I edit exit routine with LE
QMF Main Module DSQQMF points to QMF Edit Exit Module DSQUEDIT  Entry: DBQUXILE
via Call. QMF Edit Exit Module which contains IBM-supplied QMF Control  program
DSQUXILE, and CEEPIPI User Edit Exit program DSQUXDT via Standard call to
LE points  to QMF Main Module via Return.

How a PL/I Edit routine interacts with native OS/390, TSO, or ISPF with LE

The user edit program is called as an LE subroutine. The following parameters are provided in the indicated order:

  1. DXEECS
  2. Input data
  3. Output data

An example procedure statement specifying parameters is as follows:

DSQUXDT:
    PROCEDURE(DXEECSF,ECSINPTF,ECSRSLTF) OPTIONS(REENTRANT);
 

Compiling DSQUXDT

During the compile, QMF edit exit interface control block DXEECSP, located in QMF sample library QMF720.SDSQUSRE must be available in a macro library.

Compile the program with no STAE or SPIE macros. To do this, add the following statement to your PL/I program:

DCL PLIXOPT CHAR(15) VAR INIT('NOSTAE,NOSPIE') STATIC EXTERNAL;

Compile DSQUPLI with the MAIN option. Your edit exit program DSQUXDT must not specify MAIN.

Link-editing your program

Create a new QMF edit exit module DSQUEDIT by including your edit program DSQUXDT with the IBM-supplied control module DSQUXILE, located in the QMF module library QMF720.SDSQLOAD. The module DSQUXILE must be specified as the entry point.

The 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 the edit exit module DSQUEDIT has a 24-bit addressing mode.

We recommend 31-bit addressing mode.

Example statements for compiling and link-editing

The following are example statements for assembling and link-editing your job for TSO or native OS/390.

  //samPLI     JOB
  //STEP1      EXEC PLIXCL
  //* Provide Access to QMF Edit Macro DXEECSP
  //PLI.SYSLIB   DD  DSN=QMF720.SDSQUSRE,DISP=SHR
  //PLI.SYSIN    DD  *
            .
            Your program or copy of QMF sample DSQUXDTP
            .
 /*
 //* Provide Access to QMF & LE Interface Module
 //LKED.QMFLOAD  DD DSN=QMF720.SDSQLOAD,DISP=SHR
 //LKED.SYSLIB        DD DSN=SYS1.SCEELKED,DISP=SHR
  //LKED.SYSIN    DD  *
            INCLUDE QMFLOAD(DSQUXILE)
            ENTRY DSQUXILE
            MODE  AMODE(31) RMODE(ANY)
            NAME  DSQUEDIT(R)
  /*

Example program DSQUXDTP

The IBM-supplied example edit exit program in PL/I, named DSQUXDTP, is located in QMF sample library QMF720.SDSQSAPE. The example program is heavily commented; it can be browsed online, printed, or modified to meet your needs. If you plan to use the example program, copy it to your program library and change its name to DSQUXDT.

[ Previous Page | Next Page | Contents | Index ]