How can we add support for IBM Enterprise PL/I for z/OS?
To enable the support of Enterprise PL/I for z/OS applications, updates are required to the current VISION:Results procedures for calling PL/I for z/OS applications.
The compiler for Enterprise PL/I for z/OS programs is IBMZPLI.
Please see your Enterprise PL/I for z/OS Programming Guide for information on compile options.
Your compile step should include SCEERUN (Language Environment run-time library) and the statements below:
//PLI EXEC PGM=IBMZPLI
//STEPLIB DD DSN=YOURPRFX.SIBMZCMP,DISP=SHR
// DD DSN=YOURPRFX.SCEERUN,DISP=SHR
AMODE(31) and RMODE(ANY) are the default settings for Enterprise PL/I applications.
The addressing mode in the VISION:Results 6.0 assembler routine PLIEXIT will need to be updated.
PLIEXIT can be found in the copy library created during the installation of VISION:Results. The following line should be added after the PLIEXIT START 0 statement: PLIEXIT AMODE 31. Program PLIEXIT will need to be reassembled to include the added AMODE 31 statement. The object module should be placed in an object library to be used later in the link-edit step that will bind your PL/I object and PLIEXIT object to create the callable module.
For information on Enterprise PL/I applications running in AMODE(24), please see topic AMODE(24) restrictions in your Enterprise PL/I for z/OS Compiler and Run-Time Migration Guide.
EXAMPLE:
As shown in the VISION:Results Reference Guide, the assemble step for the PLIEXIT program is as illustrated below:
//HLASM EXEC PGM=ASMA90,REGION=0M,TIME=(,40), X
// PARM=(OBJECT,NODECK,'LINECOUNT(48)','USING(MAP,WARN(3))', X
// TERM,'XREF(FULL)')
//SYSPRINT DD SYSOUT=*
//SYSPUNCH DD DUMMY
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
//SYSUT2 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
//SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
//SYSLIN DD DSN=OBJECT.LIB(PLIEXIT),DISP=SHR
//SYSTERM DD SYSOUT=*
//SYSIN DD DSN='YOUR.RESULTS.SOURCE.LIB(PLIEXIT)',DISP=SHR
The new compile for the Enterprise PL/I for z/OS PL/I program and the link-edit step should be similar to that below. The compile option DOC specified on the PARM statement instructs the compiler to list all the compile options used for the compile. The SOURCE parameter specifies that the source of the PL/I program is to be listed. Options DOC and SOURCE are not required to successfully compile the PL/I program, they were included as an example.
//COMP EXEC PGM=IBMZPLI,REGION=0M,
// PARM=’OPTIONS(DOC),SOURCE’
//STEPLIB DD DSN=YOURPRFX.SIBMZCMP,DISP=SHR
// DD DSN=YOURPRFX.SCEERUN,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD DSN=SOURCE.LIB(PLILKUP),DISP=SHR
//SYSLIN DD DSN=&&SYSLIN,DISP=(MOD,PASS),UNIT=SYSDA,
// SPACE=(CYL,(2,1,0))
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1),,CONTIG),
// DCB=BLKSIZE=1024
//LKED EXEC PGM=IEWL,REGION=2M,PARM='LET,LIST,MAP,RENT',COND=(0,NE)
//SYSLMOD DD DSN=LOADLIB,DISP=SHR
//SYSLIB DD DSN=YOURPRFX.SCEELKED,DISP=SHR
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
//SYSPRINT DD SYSOUT=*
//OBJLIB DD DSN=OBJECT.LIB,DISP=SHR
//PLIMOD DD DSN=&&SYSLIN,DISP=(OLD,DELETE)
//SYSLIN DD *
INCLUDE OBJLIB(PLIEXIT)
INCLUDE PLIMOD
NAME PLILKUP
/*
Below is an excerpt of program PLIEXIT that shows the required update.
Notice the AMODE 31 statement; this is the only required change for program PLIEXIT.
***********************************************************************
*** ***
*** PROGRAM: PLIEXIT ***
*** DATE WRITTEN: AUGUST, 1995 ***
*** AUTHOR: COMPUTER ASSOCIATES ***
*** ***
*** FUNCTION: THIS PROGRAM IS CALLED FROM A VISION:RESULTS ***
*** PROGRAM WHICH IN TURN CALLS A PL/I MAIN PROGRAM. ***
*** ***
*** ITS PURPOSE IS TO ELIMINATE THE NEED OF THE ***
*** VISION:RESULTS PROGRAMMER TO SET UP ALL OF THE ***
*** PARAMETERS NEEDED BY PL/I. ***
*** ***
***********************************************************************
PLIEXIT START 0
PLIEXIT AMODE 31
B 12(R15)
DC CL8'PLIEXIT ' PROG ID
STM R14,R12,12(R13) SAVE CALLING PROGS REGISTERS
LR R11,R15 OUR BASE
USING PLIEXIT,R11