Writing an edit routine for native OS/390, TSO, or ISPF without LE

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

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

Figure 166. Program structure of a PL/I edit exit routine without LE
QMF Main MOdule DSQQMF points to QMF Edit Exit Module DSQUEDIT Entry: DSQUXIP.
QMF Edit Exit Module which contains IBM-supplied QMF Control Programs DSQUXIP
 and DSQUPLI, and User edit exit program DSQUXDT via Standard PL/I call point
to QMF Main  Module via Return.

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

The user edit program is called as a PL/I external procedure using a standard PL/I CALL statement. 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);
 

A PL/I data structure is shipped with QMF as DXEECSP, located in library QMF720.SDSQSAPE. Include this data structure in your program.

Return control to QMF using a standard RETURN statement.

Compiling DSQUXDT and DSQUPLI

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

Compile both programs 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 modules DSQUXIP and DSQUPLI, which are located in the QMF module library QMF720.SDSQLOAD. The module DSQUXIC 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 IEL1CL
//* 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 Interface Module
//LKED.QMFLOAD  DD DSN=QM720.SDSQLOAD,DISP=SHR
//LKED.SYSIN    DD  *
          INCLUDE QMFLOAD(DSQUXIP)
          INCLUDE QMFLOAD(DSQUPLI)
          ENTRY DSQUXIP
          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 this example program, copy it to your program library and change its name to DSQUXDT.

[ Previous Page | Next Page | Contents | Index ]