The IBMZCPG cataloged procedure, shown in Figure 13, achieves the same results as IBMZCPLG but uses the loader instead of the linkage editor. Instead of using four procedure steps (compile, prelink, link-edit, and run), it has only three (compile, prelink, and load-and-run). The third procedure step runs the loader program. The loader program processes the object module produced by the compiler and runs the resultant executable program immediately. You must provide input data for the compilation step by supplying a qualified ddname PLI.SYSIN.
The use of the loader imposes certain restrictions on your PL/I program; before using this cataloged procedure, see z/OS Language Environment Programming Guide, which explains how to use the loader.
//IBMZCPG PROC LNGPRFX='IBMZ.V3R8M0',LIBPRFX='CEE', // SYSLBLK=3200,PLANG=EDCPMSGE //* //******************************************************************** //* * //* LICENSED MATERIALS - PROPERTY OF IBM * //* * //* 5655-H31 (C) COPYRIGHT IBM CORP. 1999, 2008 * //* ALL RIGHTS RESERVED. * //* * //* US GOVERNMENT USERS RESTRICTED RIGHTS - USE, * //* DUPLICATION OR DISCLOSURE RESTRICTED BY GSA * //* ADP SCHEDULE CONTRACT WITH IBM CORP. * //* * //******************************************************************** //* //* IBM ENTERPRISE PL/I FOR Z/OS //* VERSION 3 RELEASE 8 MODIFICATION 0 //* //* COMPILE, PRELINK, LOAD AND RUN A PL/I PROGRAM //* //* PARAMETER DEFAULT VALUE USAGE //* LNGPRFX IBMZ.V3R8M0 PREFIX FOR LANGUAGE DATA SET NAMES //* LIBPRFX CEE PREFIX FOR LIBRARY DATA SET NAMES //* SYSLBLK 3200 BLKSIZE FOR OBJECT DATA SET //* PLANG EDCPMSGE PRELINKER MESSAGES MEMBER NAME //* //********************************************************************* //* COMPILE STEP //********************************************************************* //PLI EXEC PGM=IBMZPLI,PARM='OBJECT,OPTIONS' //STEPLIB DD DSN=&LNGPRFX;.SIBMZCMP,DISP=SHR // DD DSN=&LIBPRFX;.SCEERUN,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),UNIT=SYSALLDA, // SPACE=(CYL,(1,1)),DCB=(LRECL=80,BLKSIZE=&SYSLBLK) //SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSALLDA, // SPACE=(1024,(200,50),,CONTIG,ROUND),DCB=BLKSIZE=1024 //********************************************************************* //* PRE-LINK-EDIT STEP //********************************************************************* //PLKED EXEC PGM=EDCPRLK,COND=(8,LT,PLI) //STEPLIB DD DSN=&LIBPRFX;.SCEERUN,DISP=SHR //SYSMSGS DD DSN=&LIBPRFX..SCEEMSGP(&PLANG),DISP=SHR //SYSLIB DD DUMMY //SYSMOD DD DSN=&&PLNK,DISP=(,PASS), // UNIT=SYSALLDA,SPACE=(CYL,(1,1)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=&SYSLBLK) //SYSIN DD DSN=*.PLI.SYSLIN,DISP=(OLD,DELETE) //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=*
//********************************************************************* //* LOAD AND RUN STEP //********************************************************************* //GO EXEC PGM=LOADER,PARM='MAP,PRINT', // COND=((8,LT,PLI),(8,LE,PLKED)) //STEPLIB DD DSN=&LIBPRFX;.SCEERUN,DISP=SHR //SYSLIB DD DSN=&LIBPRFX..SCEELKED,DISP=SHR //SYSPRINT DD SYSOUT=* //SYSLIN DD DSN=*.PLKED.SYSMOD,DISP=(OLD,DELETE) //SYSLOUT DD SYSOUT=* //CEEDUMP DD SYSOUT=* //SYSUDUMP DD SYSOUT=*
For more information on other cataloged procedures, see z/OS Language Environment Programming Guide.