gtpi1m72 | System Installation Support Reference |
The following sample JCL is provided as examples of how to code MASM JCL statements.
The sample JCL that follows is designed to assemble programs MEMBER1, MEMBER5, and all programs between MBR72 and MBR89 from cataloged library TESTCASE.LIBRARY, and the object modules will be output into a cataloged library called TESTCASE.LIB2. A cross-reference is produced.
Figure 28. Printout Directory to Listings JCL
//STEPA EXEC PGM=MASM,REGION=200K,TIME=20,PARM=I //STEPLIB DD DISP=SHR,DSN=ACP.LINK.RELvv.SSname //SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB //SYSUT1 DD DSN=&&SYSUT1,UNIT=SYSDA,SPACE=(1700,(400,50)) //SYSUT2 DD DSN=&&SYSUT2,UNIT=SYSDA,SPACE=(1700,(400,50)) //SYSUT3 DD DSN=&&SYSUT3,UNIT=SYSDA,SPACE=(1700,(400,50)) //SYSPRINT DD SYSOUT=A //SYSPUNCH DD DISP=OLD,DSN=TESTCASE.LIB2 //SYSIN DD DISP=SHR,DSN=TESTCASE.LIBRARY //PDS DD DISP=SHR,DSN=TESTCASE.LIBRARY //MSGFILE DD SYSOUT=A,DCB=(RECFM=FBM,LRECL=80,BLKSIZE=80) //DRIVEIN DD * LIST=(MEMBER1,MEMBER5) FROM=MBR72,TO=MBR89 /*
In Figure 28, note the following:
The sample JCL that follows will assemble all programs in cataloged library TESTCASE.LIBRARY and put the object modules into cataloged library TESTCASE.LIB2. Printouts are put to tape if the assemblies are error-free. Consequently the SYSPRINT DD statement specifies a temporary data set on DASD and a DD statement is included for output tape LISTAPE. PARM=TAPE is specified on the EXEC card. Data definition LIST defines the output device to which programs containing assembly errors will be routed.
Figure 29. Assembly Listings to Tape JCL
//STEPA EXEC PGM=MASM,REGION=200K,TIME=20,PARM=(I,TAPE) //STEPLIB DD DSN=ACP.LINK.RELvv.SSname,DISP=SHR //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(20,10)) //SYSUT2 DD UNIT=SYSDA,SPACE=(CYL,(20,10)) //SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(20,10)) //SYSPRINT DD DSN=&&PA,DCB=(RECFM=FBM,LRECL=121,BLKSIZE=3630), // UNIT=SYSDA,SPACE=(CYL,(2,1)) //LISTAPE DD DSN=PRINT,UNIT=TAPE,DISP=(NEW,KEEP), // VOL=SER=123456,DCB=(BLKSIZE=23940,LRECL=133,RECFM=FBA), // LABEL=(,SL) //LIST DD SYSOUT=A,DCB=(BLKSIZE=7980,LRECL=133,RECFM=FBA) //SYSPUNCH DD DSN=TESTCASE.LIB2,DISP=OLD //PDS DD DSN=TESTCASE.LIBRARY,DISP=SHR //MSGFILE DD SYSOUT=A,DCB=(RECFM=FBM,LRECL=80,BLKSIZE=80) //SYSIN DD DSN=TESTCASE.LIBRARY,DISP=SHR //DRIVEIN DD DUMMY /*
In Figure 29, note the following:
The control cards in the following example specify that only members MBR1, MBR2, MBR30, and MBR3 of library TESTCASE.LIBRARY are to be assembled. It attaches suffix 01 to the object code member names placed into TESTCASE.LIB2.
Because this is an E-type assembly, PARM=RT,RENT was specified on the EXEC card. PARM=I was used to obtain the High Level Assembler (HLASM). The SYSIN DD statement points to a temporary data set on DASD and the source library is concatenated into the SYSLIB data set. Care must be taken in cases like this to ensure that the first data set in the concatenation has the largest blocksize. Because the High Level Assembler (HLASM) is used, a region of at least 200KB must be used for the assembly.
Figure 30. E-Type Assemblies to Tape JCL
//STEPA EXEC PGM=MASM,REGION=220K,TIME=20,PARM='I,RT,RENT,TAPE' //STEPLIB DD DSN=ACP.LINK,RELvv.SSname,DISP=SHR //SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR // DD DSN=TESTCASE.LIBRARY,DISP=SHR //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(20,10)) //SYSUT2 DD UNIT=SYSDA,SPACE=(CYL,(20,10)) //SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(20,10)) //SYSPRINT DD DSN=&&PA,DCB=(RECFM=FBM,LRECL=121,BLKSIZE=3630), // UNIT=SYSDA,SPACE=(CYL,(2,1)) //LISTAPE DD DSN=PRINT,UNIT=TAPE,VOL=SER=123456,LABEL=(,SL), // DISP=(NEW,KEEP),DCB=(BLKSIZE=23940,LRECL=133,RECFM=FBA) //LIST DD SYSOUT=A,DCB=(BLKSIZE=7980,LRECL=133,RECFM=FBA) //SYSPUNCH DD DSN=TESTCASE.LIB2,DISP=OLD //SYSIN DD SPACE=(CYL,5),DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600), // UNIT=SYSDA //PDS DD DSN=TESTCASE.LIBRARY,DISP=SHR //MSGFILE DD SYSOUT=A,DCB=(RECFM=FBM,LRECL=80,BLKSIZE=80) //DRIVEIN DD * SUFFIX=01 LIST=(MBR1,MBR2,MBR30,MBR3) /*
In Figure 30, note the following:
The following example shows MASM calling the AD/Cycle C/370 compiler. The PARM parameter is coded with a D to call the AD/Cycle C/370 compiler, with an RT to designate E-type compilations, and with NOXREF to suppress the compiler cross-reference. The compiler requires a region of at least 4MB and several work data sets (SYSUT1-SYSUT9). SYSUT10 is coded as a dummy because the compiler option that uses it is suppressed by MASM. Although this job generates E-type object code, the source code libraries should not be concatenated to the SYSLIB data set. The compiler expects that only header libraries will be concatenated to SYSLIB.
Figure 31. E-Type Compilations Sent to the Printer JCL
//COMPILE EXEC PGM=MASM,REGION=4M, // PARM=(D,RT,NOXREF,TARGET(TPF)) //STEPLIB DD DSN=ACP.LINK.RELvv.SSname,DISP=SHR // DD DSN=LE.V1R3M0.SCEERUN,DISP=SHR // DD DSN=PLI.V2R3M0.SIBMLINK,DISP=SHR // DD DSN=EDC.V1R2M0.SEDCDCMP,DISP=SHR //SYSMSGS DD DSN=EDC.V1R2M0.SEDCDMSG(EDCMSGE),DISP=SHR //SYSIN DD DSN=&&SYSIN,UNIT=SYSDA, // SPACE=(CYL,(3,3),RLSE),DISP=(NEW,DELETE,DELETE), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //SYSLIB DD DSN=ACP.CHDR.RELvv.SSname,DISP=SHR //SYSLIN DD DSN=ACP.OBJ.RELvv.SSname,DISP=OLD //SYSPRINT DD SYSOUT=* //SYSCPRT DD SYSOUT=* //SYSUT1 DD UNIT=VIO,SPACE=(32000,(30,30)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200) //SYSUT4 DD UNIT=VIO,SPACE=(32000,(30,30)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200) //SYSUT5 DD UNIT=VIO,SPACE=(32000,(30,30)), // DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800) //SYSUT6 DD UNIT=VIO,SPACE=(32000,(30,30)), // DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800) //SYSUT7 DD UNIT=VIO,SPACE=(32000,(30,30)), // DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800) //SYSUT8 DD UNIT=VIO,SPACE=(32000,(30,30)), // DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800) //SYSUT9 DD UNIT=VIO,SPACE=(32000,(30,30)), // DCB=(RECFM=VB,LRECL=137,BLKSIZE=882) //SYSUT10 DD DUMMY //* //MSGFILE DD SYSOUT=A, // DCB=(RECFM=FBM,LRECL=80,BLKSIZE=80) //PDS DD DSN=ACP.CSRCE.RT.RELvv.SSname,DISP=SHR //DRIVEIN DD * LIST=(C024vv,C025vv,C026vv,C027vv,C028vv) /* //
In Figure 31, note the following:
//SYSCPRT DD DSN=&&PA,DCB=(RECFM=VBA,LRECL=137,BLKSIZE=882), // UNIT=SYSDA,SPACE=(CYL,(2,1)),SYSOUT=
The following example shows MASM calling the AD/Cycle C/370 compiler to compile C load module E-type programs with optimization level 2. The PARM parameter is coded with a D to call the AD/Cycle C/370 compiler, with an RT to designate E-type compilations, and with NOXREF to suppress the compiler cross-reference. The compiler requires a region of at least 4MB and several work data sets (SYSUT1-SYSUT9).
Figure 32. E-Type Compilations Sent to the Printer JCL
//COMPILE EXEC PGM=MASM,REGION=4M, // PARM=(D,RT,NOXREF,OPT(2)) //STEPLIB DD DSN=ACP.LINK.RELvv.SSname,DISP=SHR // DD DSN=LE.V1R3M0.SCEERUN,DISP=SHR // DD DSN=PLI.V2R3M0.SIBMLINK,DISP=SHR // DD DSN=EDC.V1R2M0.SEDCDCMP,DISP=SHR //SYSMSGS DD DSN=EDC.V1R2M0.SEDCDMSG(EDCMSGE),DISP=SHR //SYSIN DD DSN=&&SYSIN,UNIT=SYSDA, // SPACE=(CYL,(3,3),RLSE),DISP=(NEW,DELETE,DELETE), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3600) //SYSLIB DD DSN=ACP.CHDR.RELvv.SSname,DISP=SHR //SYSLIN DD DSN=ACP.OBJ.RELvv.SSname,DISP=OLD //SYSPRINT DD SYSOUT=* //SYSCPRT DD SYSOUT=* //SYSUT1 DD UNIT=VIO,SPACE=(32000,(30,30)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200) //SYSUT4 DD UNIT=VIO,SPACE=(32000,(30,30)), // DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200) //SYSUT5 DD UNIT=VIO,SPACE=(32000,(30,30)), // DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800) //SYSUT6 DD UNIT=VIO,SPACE=(32000,(30,30)), // DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800) //SYSUT7 DD UNIT=VIO,SPACE=(32000,(30,30)), // DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800) //SYSUT8 DD UNIT=VIO,SPACE=(32000,(30,30)), // DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800) //SYSUT9 DD UNIT=VIO,SPACE=(32000,(30,30)), // DCB=(RECFM=VB,LRECL=137,BLKSIZE=882) //SYSUT10 DD DUMMY //* //MSGFILE DD SYSOUT=A, // DCB=(RECFM=FBM,LRECL=80,BLKSIZE=80) //PDS DD DSN=ACP.CSRCE.RT.RELvv.SSname,DISP=SHR //DRIVEIN DD * LIST=(CSCNFvv,CTZDIFvv) /* //
In Figure 32, note the following: