JCL example
The following example JCL shows you how to build the example code. You need to provide appropriate libraries in place of those shown in the example JCL, such as MTLUSR.XPLINK.LOAD and MTLUSR.METAL.OBJ.
//MTLUSR00 JOB (999,POK),'METAL',CLASS=A,MSGCLASS=H,NOTIFY=&SYSUID
//*
//* BINDER USING THE METAL XPI SAMPLE PROGRAM
//* //LKED EXEC PGM=IEWL,REGION=256K,
// PARM='LIST,LET,XREF,MAP,AC(0),RENT,REUS,AMODE(31)'
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD SPACE=(CYL,(10,10)),UNIT=SYSDA
//SYSLMOD DD DSN=MTLUSR.XPLINK.LOAD,DISP=SHR
//SYSLIB DD DSN=CICSTS41.CICS.SDFHLOAD,DISP=SHR
// DD DISP=SHR,DSN=MTLUSR.METAL.OBJ
// DD DISP=SHR,DSN=MTLUSR.METALC.SCCNOBJ
//USROBJ DD DSN=MTLUSR.METAL.OBJ,DISP=SHR
//SYSLIN DD *
INCLUDE USROBJ(MTLBTXPI)
INCLUDE USROBJ(MTL2XPI)
ENTRY MTLBTXPI
NAME MTLBTXPI(R)
/*
//MTLUSR0 JOB (999,POK),'CICSASM',CLASS=A,MSGCLASS=H,NOTIFY=&SYSUID
//XPIASM PROC DSN=,MEM=
//*****************************************************************
//* run ASM
//*****************************************************************
//STEPASM EXEC PGM=ASMA90,PARM=OBJECT,REGION=0M
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSPRINT DD SYSOUT=*
//SYSIN DD DSN=&DSN(&MEM),DISP=SHR
//SYSLIN DD DISP=SHR,DSN=MTLUSR.METAL.OBJ(&MEM)
//SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB
// DD DISP=SHR,DSN=CICSTS41.CICS.SDFHMAC
// DD DISP=SHR,DSN=CEE.SCEEMAC
// PEND
//****************************************************************
//* START OF COMPILES:
//****************************************************************
//COMP EXEC XPIASM,DSN='DEV.METALC.SAMPCODE',MEM='MTLBTXPI'
//MTLUSRPC JOB (999,POK),'CCOMP',NOTIFY=&SYSUID,
// CLASS=A,MSGCLASS=H
//*----------------------------------------------------------------
//* CICS Metal JCL
//*
//*******************************************************************
//* Compile the code
//*******************************************************************
//CCAM PROC IDSN=,ADSN=,ODSN=,MEM=
//CC EXEC PGM=CCNDRVR,REGION=0M,
// PARM=('OPTFILE(DD:OPTIONS)')
//STEPLIB DD DISP=SHR,DSN=MTLCICS.METALC.SCCNCMP
// DD DSN=CICSTS41.CICS.SDFHLOAD,DISP=SHR
// DD DISP=SHR,DSN=CEE.SCEERUN
// DD DISP=SHR,DSN=CEE.SCEERUN2
//OPTIONS DD DISP=SHR,DSN=MTLCICS.METALC.SAMPJCL(OPTXPI)
//SYSLIB DD PATH='/usr/include/metal',PATHOPTS=ORDONLY
// DD DSN=CICSTS41.CICS.SDFHC370,DISP=SHR
// DD DSN=CICSTS41.CICS.SDFHMAC,DISP=SHR
// DD DSN=MTLCICS.METALC.SAMPMAC,DISP=SHR
//****************************************************
//SYSUT1 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//SYSUT4 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//SYSUT5 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT6 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT7 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT8 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT9 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=VB,LRECL=137,BLKSIZE=882)
//SYSUT10 DD SYSOUT=*
//SYSUT14 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT15 DD SYSOUT=*
//****************************************************
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSCPRT DD SYSOUT=*
//*SYSLIN DD DSN=&&SYSLIN,DISP=(NEW,PASS),SPACE=(TRK,(10,100)),
//* UNIT=SYSDA,BLKSIZE=3200,LRECL=80,RECFM=FB,DSORG=PS
//SYSLIN DD DISP=SHR,DSN=&ADSN(&MEM)
//SYSIN DD DISP=SHR,DSN=&IDSN(&MEM)
//*******************************************************************
//* Assemble the code
//*******************************************************************
//ASM EXEC PGM=ASMA90,REGION=0M,PARM='GOFF'
//SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR
// DD DISP=SHR,DSN=CICSTS41.CICS.SDFHMAC
// DD DISP=SHR,DSN=CEE.SCEEMAC
// DD DSN=MTLCICS.METALC.SAMPMAC,DISP=SHR
//SYSUT1 DD UNIT=(SYSDA,SEP=SYSLIB),SPACE=(CYL,(10,5)),DSN=&SYSUT1
//SYSPRINT DD SYSOUT=*
//SYSLIN DD DISP=SHR,DSN=&ODSN(&MEM)
//SYSIN DD DISP=SHR,DSN=&ADSN(&MEM)
// PEND
//*
//COMP EXEC CCAM,IDSN='MTLCICS.METALC.SAMPCODE',
// ADSN='MTLUSR.METAL.GENASM',
// ODSN='MTLUSR.METAL.OBJ',MEM=MTL2XPI
//*
METAL GENASM
OPT(0) PHASEID LANGLVL(EXTENDED)
SO LIST CSECT
float(ieee)
DEF(MVS,CM_MVS,_TCP31_PROTOS)
nose se(/usr/include/metal, DD:SYSLIB)
SSCOM
AGG
RENT