DB2 graphic  QMF Version 8

Writing an edit routine for native z/OS, TSO, or ISPF

The QMF edit exit interface for Assembler consists of these parts:

Figure 71 shows the program structure of an Assembler edit exit routine for native z/OS, TSO, or ISPF.

Figure 71. Program structure of an Assembler edit exit routine for TSO and native z/OS
QMF Main Module DSQQMF points to QMF Edit Exit Module DSQUEDIT Entry: DSQUXIA via Call. QMF Edit Exit Module which contains QMF Control Program IBM-supplied DSQUXIA and User exit edit program DSQUXDT, points to QMF Main Module via Return.graphic

Example program DSQUXDTA

The IBM-supplied sample edit program for Assembler, DSQUXDTA, is located in the QMF810.SDSQSAPE library for z/OS. The sample program is commented so that you can modify it to suit your needs. If you plan to use this example program, copy it to your program library and change its name to DSQUXDT. Near the bottom of this file is a COPY statement for DXEECSA. which is a member of DSQUSERE MACLIB on z/OS. DXEECSA defines the input fields, giving them the names we are using in this chapter.

How an Assembler edit routine interacts with native z/OS

The user edit program is called as a subroutine in TSO and native z/OS using a standard Assembler CALL statement. Linkage obeys the standard IBM calling conventions. On entry to your edit exit program, the following conditions exist:

An Assembler DSECT for DXEECS is shipped with QMF as DXEECSA, located in library QMF810.SDSQUSRE on z/OS. Include this DSECT in your program using the Assembler COPY statement.

Return control to QMF in the standard convention by restoring registers to their value at the time of the call and then returning to the address in register 14.

In the example program, the addresses are placed in registers 8, 9, and 10 through the statements:

ECSPTR    EQU R10
          L         ECSPTR,0(R1)
          USING     DXEECS,ECSPTR
ECSINPTP  EQU R9
          L         ECSINPTP,4(R1)
          USING     ECSINPT,ECSINPTP
ECSRSLTP  EQU R8
          L         ECSRSLTP,8(R1)
          USING     ECSRSLT,ECSRSLTP

The USING statements refer to the DSECTs defined in DXEECSA. These define the three parameters and their input-field components.

It follows that registers 10, 9, and 8 point, respectively, at the control block, the value to be formatted, and the storage reserved for the formatted results.

Return control to QMF using the standard convention by restoring the registers to their value at the time of the call, and returning to the address in register 14.

How an Assembler edit routine interacts with QMF

The interface control block between QMF and the user edit interface DSQUXDT is DXEECS. It contains the user's edit code, identifies the source data and the target location for the edited result, and provides a scratchpad area for the user edit routine's use. This control block is persistent between calls to the user edit routine. The scratchpad area is not modified by QMF after the initial invocation of the exit routine.

Assembling and link-editing your program on z/OS

During the Assembler, QMF edit exit interface control block DXEECSA, located in QMF sample library QMF810.SDSQUSRE in TSO or native z/OS, must be available in a macro library.

Create a new QMF edit exit module DSQUEDIT by including your edit program DSQUXDT with the IBM-supplied control module DSQUXIA, which is located in the QMF module library QMF810.SDSQLOAD. The IBM-supplied control module DSQUXIA 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 the 31-bit addressing mode.

Example statements for assembling and link-editing on z/OS

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

//sampasm    JOB
//STEP1      EXEC PROC=ASMHCL
//* Provide Access to QMF Edit Macro DXEECSA
//C.SYSLIB   DD  DSN=QMF810.SDSQUSRE,DISP=SHR
//C.SYSIN    DD  *
          .
          Your program or copy of QMF sample DSQUXDTA
          .
/*
//* Provide Access to QMF Interface Module
//L.QMFLOAD  DD DSN=QMF810.SDSQLOAD,DISP=SHR
//L.SYSIN    DD  *
          INCLUDE QMFLOAD(DSQUXIA)
          ENTRY DSQUXIA
          MODE  AMODE(31) RMODE(ANY)
          NAME  DSQUEDIT(R)
/*


Go to the previous page Go to the next page

Downloads | Library | Support | Support Policy | Terms of use | Feedback
Copyright IBM Corporation 1982,2004 Copyright IBM Corporation 1982, 2004
timestamp Last updated: March, 2004