The QMF edit exit interface for Assembler consists of these parts:
Figure 161 shows the program structure of an Assembler edit exit routine for native OS/390, TSO, or ISPF.
The IBM-supplied sample edit program for Assembler, DSQUXDTA, is located in the QMF720.SDSQSAPE library for OS/390. 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 OS/390. DXEECSA defines the input fields, giving them the names we are using in this chapter.
The user edit program is called as a subroutine in TSO and native OS/390 using a standard Assembly CALL statement. Linkage obeys the standard IBM calling conventions. On entry to your edit exit program, the following conditions exist:
An Assembly DSECT for DXEECS is shipped with QMF as DXEECSA, located in library QMF720.SDSQUSRE on OS/390 or in DSQUSERE MACLIB on CMS. Include this DSECT in your program using the Assembly 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.
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.
During the assembly, QMF edit exit interface control block DXEECSA, located in QMF sample library QMF720.SDSQUSRE in TSO or native OS/390, 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 QMF720.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.
The following are example statements for assembling and link-editing your job for TSO or native OS/390:
//sampasm JOB //STEP1 EXEC PROC=ASMHCL //* Provide Access to QMF Edit Macro DXEECSA //C.SYSLIB DD DSN=QMF720.SDSQUSRE,DISP=SHR //C.SYSIN DD * . Your program or copy of QMF sample DSQUXDTA . /* //* Provide Access to QMF Interface Module //L.QMFLOAD DD DSN=QMF720.SDSQLOAD,DISP=SHR //L.SYSIN DD * INCLUDE QMFLOAD(DSQUXIA) ENTRY DSQUXIA MODE AMODE(31) RMODE(ANY) NAME DSQUEDIT(R) /*[ Previous Page | Next Page | Contents | Index ]