z/OS MVS JCL User's Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Example - assemble, linkedit, and go

z/OS MVS JCL User's Guide
SA23-1386-00

Example 1

The following example uses the COND parameter to conditionally execute job steps.
  
//USUAL     JOB   A2317P,'MAE BIRDSALL'  
//ASM       EXEC  PGM=IEV90,REGION=256K,         EXECUTES ASSEMBLER  
//           PARM=(OBJECT,NODECK,'LINECOUNT=50')  
//SYSPRINT  DD    SYSOUT=*,DCB=BLKSIZE=3509  PRINT THE ASSEMBLY LISTING  
//SYSPUNCH  DD    SYSOUT=B                   PUNCH THE ASSEMBLY LISTING  
//SYSLIB    DD    DSNAME=SYS1.MACLIB,DISP=SHR    THE MACRO LIBRARY  
//SYSUT1    DD    DSNAME=&&SYSUT1,UNIT=SYSDA,    A WORK DATA SET  
//           SPACE=(CYL,(10,1))  
//SYSLIN    DD    DSNAME=&&OBJECT,UNIT=SYSDA,  THE OUTPUT OBJECT MODULE  
//           SPACE=(TRK,(10,2)),DCB=BLKSIZE=3120,DISP=(,PASS)  
//SYSIN     DD    *                              IN-STREAM SOURCE CODE  
            .  
            .  
            code  
            .  
/*  
//LKED      EXEC  PGM=HEWL,                     EXECUTES LINKAGE EDITOR  
//           PARM='XREF,LIST,LET',COND=(8,LE,ASM)  
//SYSPRINT  DD    SYSOUT=*                       LINKEDIT MAP PRINTOUT  
//SYSLIN    DD    DSNAME=&&OBJECT,DISP=(OLD,DELETE) INPUT OBJECT MODULE  
//SYSUT1    DD    DSNAME=&&SYSUT1,UNIT=SYSDA,    A WORK DATA SET  
//           SPACE=(CYL,(10,1))  
//SYSLMOD   DD    DSNAME=&&LOADMOD,UNIT=SYSDA,   THE OUTPUT LOAD MODULE  
//           DISP=(MOD,PASS),SPACE=(1024,(50,20,1))  
//GO        EXEC  PGM=*.LKED.SYSLMOD,TIME=(,30), EXECUTES THE PROGRAM  
//           COND=((8,LE,ASM),(8,LE,LKED))  
//SYSUDUMP  DD    SYSOUT=*                       IF FAILS, DUMP LISTING  
//SYSPRINT  DD    SYSOUT=*,                      OUTPUT LISTING  
//           DCB=(RECFM=FBA,LRECL=121)  
//OUTPUT    DD    SYSOUT=A,                      PROGRAM DATA OUTPUT  
//           DCB=(LRECL=100,BLKSIZE=3000,RECFM=FBA)  
//INPUT     DD    *                              PROGRAM DATA INPUT  
            .  
            .  
            data  
            .  
/*  
//  
This example shows JCL that can be used to:
  • Assemble object code entered in the input stream: the step named ASM.
  • Link edit the object module, if the assembly did not result in a return code of 8 or higher: the step named LKED.
  • Execute the link edited module, if neither the assembly nor the linkage editing resulted in a return code of 8 or higher: the step named GO.

Example 2

The following example of Assemble, Linkedit, and Go uses the IF/THEN/ELSE/ENDIF statement construct to conditionally execute job steps.
  
//USUAL     JOB   A2317P,'MAE BIRDSALL'  
//ASM       EXEC  PGM=IEV90,REGION=256K,         EXECUTES ASSEMBLER  
//           PARM=(OBJECT,NODECK,'LINECOUNT=50')  
//SYSPRINT  DD    SYSOUT=*,DCB=BLKSIZE=3509  PRINT THE ASSEMBLY LISTING  
//SYSPUNCH  DD    SYSOUT=B                   PUNCH THE ASSEMBLY LISTING  
//SYSLIB    DD    DSNAME=SYS1.MACLIB,DISP=SHR    THE MACRO LIBRARY  
//SYSUT1    DD    DSNAME=&&SYSUT1,UNIT=SYSDA,    A WORK DATA SET  
//           SPACE=(CYL,(10,1))  
//SYSLIN    DD    DSNAME=&&OBJECT,UNIT=SYSDA,  THE OUTPUT OBJECT MODULE  
//           SPACE=(TRK,(10,2)),DCB=BLKSIZE=3120,DISP=(,PASS)  
//SYSIN     DD    *                              IN-STREAM SOURCE CODE  
            .  
            .  
            code  
            .  
/*  
//RC1OK     IF (ASM.RC LT 8) THEN            EVALUATES RC FROM STEP ASM  
//LKED      EXEC  PGM=HEWL,                     EXECUTES LINKAGE EDITOR  
//           PARM='XREF,LIST,LET'  
//SYSPRINT  DD    SYSOUT=*                       LINKEDIT MAP PRINTOUT  
//SYSLIN    DD    DSNAME=&&OBJECT,DISP=(OLD,DELETE) INPUT OBJECT MODULE  
//SYSUT1    DD    DSNAME=&&SYSUT1,UNIT=SYSDA,    A WORK DATA SET  
//           SPACE=(CYL,(10,1))  
//SYSLMOD   DD    DSNAME=&&LOADMOD,UNIT=SYSDA,   THE OUTPUT LOAD MODULE  
//           DISP=(MOD,PASS),SPACE=(1024,(50,20,1))  
//RC2OK         IF (LKED.RC LT 8) THEN  
//GO             EXEC  PGM=*.LKED.SYSLMOD,TIME=(,30), EXECUTES PROGRAM  
//SYSUDUMP       DD    SYSOUT=*                  IF FAILS, DUMP LISTING  
//SYSPRINT       DD    SYSOUT=*,                 OUTPUT LISTING  
//           DCB=(RECFM=FBA,LRECL=121)  
//OUTPUT         DD    SYSOUT=A,                 PROGRAM DATA OUTPUT  
//           DCB=(LRECL=100,BLKSIZE=3000,RECFM=FBA)  
//INPUT          DD    *                         PROGRAM DATA INPUT  
                 .  
                 .  
                 data  
                 .  
/*  
//ENDRC2        ENDIF  
//ENDRC1    ENDIF  
//  
This example shows JCL that can be used to:
  • Assemble object code entered in the input stream: the step named ASM.
  • Link edit the object module, if the assembly resulted in a return code of lower than 8: the step named LKED.
  • Nest IF/THEN/ELSE/ENDIF statement constructs
  • Execute the link edited module, if the assembly and the linkage editing resulted in a return code of lower than 8: the step named GO.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014