//MARKA JOB (0),'ASSEMBLE',CLASS=A,MSGCLASS=T //* //* CT (COPYTAPE) //* //* REQUIRED MACRO "CAPS" IS CONTAINED IN A BUNDLED MACROS //* MEMBER SO WE CREATE A TEMPORARY DATASET TO LOAD THE //* MACROS INTO SO WE CAN ASSEMBLE CT. //* //* CT ALSO REQUIRES TLPRINT SO WE ASSEMBLE THAT BEFORE CT //* SO WE CAN LINK IT INTO CT WHEN WE DO THAT ASSEMBLY STEP. //* CT NEEDS TO BE IN AN AUTHOURISED LIBRARY //* //* AND IT CALLS MODULES IGG019WE AND IGG019WD, THEY DO //* NOT NEED TO BE AUTHOURISED //* //* ------------------------------------------------------ //* FILES I USE... //* ...YOU WILL NEED TO CUSTOMISE THESE FOR YOUR SITE //* MARK.LIB.LOAD - //* All modules assembled into it //* SYS9.LINKLIB.APFAUTH - //* CT is copied into this APF dataset //* SYS9.LINKLIB - //* The two IGG modules are copied into this //* SYS9.PROCLIB - //* The skeleton CT proc is stored in here //* &&MACS - //* Temporary macro library //* ------------------------------------------------------ //* SO WHAT WE DO IS (ALL STEPS SHOULD COMPLETE RC=0000) //* STEP Function //* ======= ========================================== //* MACS001 - create a temporary dataset for macros //* MACS002 - load the macros into the dataset //* ASMLKD1 - assemble TLPRINT //* ASMLKD2 - assemble CT and link TLPRINT with it //* MACS003 - explicitly delete the temporary macro ds //* ASMLKD3 - assemble IGG019WE //* ASMLKD4 - assemble IGG019WD //* COPY - copies CT to an authourised library, and //* copies the two IGG modules to a non-apf //* library //* ADDPROC - create a CT proc in a proclib so it can //* be run with a console "S CT" command as //* needed (***UNTESTED PROC***) //* ------------------------------------------------------ //* //MACS001 EXEC PGM=IEFBR14 //MACS DD UNIT=WORK,SPACE=(TRK,(5,5,10)), // DISP=(NEW,PASS,DELETE), // DCB=MARK.LIB.JCL, // DSN=&&MACS //MACS002 EXEC PGM=IEBUPDTE,COND=(0,NE) //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=&&MACS,DISP=(SHR,PASS,DELETE), // UNIT=WORK,VOL=REF=*.MACS001.MACS //SYSUT2 DD DSN=&&MACS,DISP=(SHR,PASS,DELETE), // UNIT=WORK,VOL=REF=*.MACS001.MACS //SYSIN DD DISP=SHR,DSN=CBTCOV.FILE131(MACROS) //* //ASMLKD1 EXEC ASMFCL,MAC='SYS1.AMODGEN',MAC1='MVSSRC.SYM101.F01', // PARM.ASM='OBJECT,NODECK,TERM,XREF(SHORT)', // PARM.LKED='LIST,MAP,NCAL,AC=1',COND=(0,NE) //ASM.SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB // DD DISP=SHR,DSN=SYS1.AMODGEN // DD DISP=SHR,DSN=MVSSRC.SYM101.F01 // DD DISP=SHR,DSN=CBTCOV.FILE131 //ASM.SYSIN DD DISP=SHR,DSN=CBTCOV.FILE131(TLPRINT) //ASM.SYSTERM DD SYSOUT=* //LKED.SYSLMOD DD DSN=MARK.LIB.LOAD(TLPRINT),DISP=SHR //* //ASMLKD2 EXEC ASMFCL,MAC='SYS1.AMODGEN',MAC1='MVSSRC.SYM101.F01', // PARM.ASM='OBJECT,NODECK,TERM,XREF(SHORT)', // PARM.LKED='LIST,MAP,NCAL,AC=1',COND=(0,NE) //ASM.SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB // DD DISP=SHR,DSN=SYS1.AMODGEN // DD DISP=SHR,DSN=MVSSRC.SYM101.F01 // DD DISP=SHR,DSN=CBTCOV.FILE131 // DD DSN=&&MACS,DISP=(SHR,PASS,DELETE), // UNIT=WORK,VOL=REF=*.MACS001.MACS //ASM.SYSIN DD DISP=SHR,DSN=CBTCOV.FILE131(CT) //ASM.SYSTERM DD SYSOUT=* //LKED.SYSLMOD DD DSN=MARK.LIB.LOAD(CT),DISP=SHR //LKED.SYSIN DD * INCLUDE SYSLMOD(TLPRINT) INCLUDE SYSLMOD(CT) ENTRY COPYTAPE SETCODE AC(1) NAME CT(R) /* //MACS003 EXEC PGM=IEFBR14 //MACS DD DSN=&&MACS,DISP=(OLD,DELETE,DELETE), // UNIT=WORK,VOL=REF=*.MACS001.MACS //* //ASMLKD3 EXEC ASMFCL,MAC='SYS1.AMODGEN',MAC1='MVSSRC.SYM101.F01', // PARM.ASM='OBJECT,NODECK,TERM,XREF(SHORT)', // PARM.LKED='LIST,MAP,NCAL,AC=1',COND=(0,NE) //ASM.SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB // DD DISP=SHR,DSN=SYS1.AMODGEN // DD DISP=SHR,DSN=CBTCOV.FILE131 //ASM.SYSIN DD DISP=SHR,DSN=CBTCOV.FILE131(IGG019WE) //ASM.SYSTERM DD SYSOUT=* //LKED.SYSLMOD DD DSN=MARK.LIB.LOAD(IGG019WE),DISP=SHR //ASMLKD4 EXEC ASMFCL,MAC='SYS1.AMODGEN',MAC1='MVSSRC.SYM101.F01', // PARM.ASM='OBJECT,NODECK,TERM,XREF(SHORT)', // PARM.LKED='LIST,MAP,NCAL,AC=1',COND=(0,NE) //ASM.SYSLIB DD DISP=SHR,DSN=SYS1.MACLIB // DD DISP=SHR,DSN=SYS1.AMODGEN // DD DISP=SHR,DSN=CBTCOV.FILE131 //ASM.SYSIN DD DISP=SHR,DSN=CBTCOV.FILE131(IGG019WD) //ASM.SYSTERM DD SYSOUT=* //LKED.SYSLMOD DD DSN=MARK.LIB.LOAD(IGG019WD),DISP=SHR //* //COPY EXEC PGM=IEBCOPY,COND=(0,NE) //SYSPRINT DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=MARK.LIB.LOAD //OUT1 DD DISP=SHR,DSN=SYS9.LINKLIB.APFAUTH //OUT2 DD DISP=SHR,DSN=SYS9.LINKLIB //SYSIN DD * COPY INDD=SYSUT1,OUTDD=OUT1 SELECT MEMBER=((CT,,R)) COPY INDD=SYSUT1,OUTDD=OUT2 SELECT MEMBER=((IGG019WE,,R)) SELECT MEMBER=((IGG019WD,,R)) /* //ADDPROC EXEC PGM=IEBUPDTE,COND=(0,NE) //SYSPRINT DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=SYS9.PROCLIB //SYSUT2 DD DISP=SHR,DSN=SYS9.PROCLIB //SYSIN DD DATA,DLM=ZZ ./ ADD NAME=COPYTAPE //COPYTAPE PROC IN=480,OUT=481 //* ******************************************** //* COPYTAPE - COPYTAPE PROCEDURE //* IN=Cuu input tape unit //* OUT=Cuu output tape unit //* ******************************************** //CT EXEC PGM=CT //IN DD UNIT=&IN //OUT DD UNIT=&OUT ./ ENDUP ZZ //* //*TEST EXEC PROC=CT,VOLSER=MARK01,COND=(0,NE) //