//MVS0100 JOB  (SMP),
//             'Complete SMP/4',
//             CLASS=A,
//             MSGCLASS=A,
//             MSGLEVEL=(1,1)
//*********************************************************************
//*
//*                       MVS 3.8 SYSGEN
//*                       ==============
//*
//*
//* DESC: COMPLETE SMP4 ENVIRONMAENT:
//*       ADD PROCEDURES SMP4REC            - RECEIVE SYSMODS
//*                      SMP4APP            - APPLY SYSMODS
//*                      SMP4ACC            - RESTORE SYSMODS
//*                      SMP4ASM            - ASSEMBLE USERMODS
//*                      SMP4ASML           - ASSEMBLE/LINK USERMODS
//*       BUILD USERMOD FILES
//*
//*
//*********************************************************************
//*
//CLEANUP EXEC PGM=IDCAMS
//SYSPRINT DD  SYSOUT=*
//SYSIN    DD  *
 DELETE SYS1.UMODMAC          NONVSAM
 DELETE SYS1.UMODSRC          NONVSAM
 DELETE SYS1.UMODOBJ          NONVSAM
 DELETE SYS1.UMODLIB          NONVSAM
 DELETE SYS1.PROCLIB(SMPREC)  NONVSAM
 DELETE SYS1.PROCLIB(SMPAPP)  NONVSAM
 DELETE SYS1.PROCLIB(SMPACC)  NONVSAM
 DELETE SYS1.PROCLIB(SMPASM)  NONVSAM
 DELETE SYS1.PROCLIB(SMPASML) NONVSAM
 SET LASTCC = 0
 SET MAXCC  = 0
/*
//ADD     EXEC PGM=IEBUPDTE,PARM=NEW
//UMODMAC  DD  DISP=(NEW,CATLG,DELETE),
//             DSN=SYS1.UMODMAC,
//             UNIT=3350,VOL=SER=MVSRES,
//             SPACE=(CYL,(1,1,10)),
//             DCB=SYS1.MACLIB
//UMODSRC  DD  DISP=(NEW,CATLG,DELETE),
//             DSN=SYS1.UMODSRC,
//             UNIT=3350,VOL=SER=MVSRES,
//             SPACE=(CYL,(1,1,10)),
//             DCB=SYS1.MACLIB
//UMODOBJ  DD  DISP=(NEW,CATLG,DELETE),
//             DSN=SYS1.UMODOBJ,
//             UNIT=3350,VOL=SER=MVSRES,
//             SPACE=(CYL,(1,1,10)),
//             DCB=(LRECL=80,BLKSIZE=3120,RECFM=FB)
//UMODLIB  DD  DISP=(NEW,CATLG,DELETE),
//             DSN=SYS1.UMODLIB,
//             UNIT=3350,VOL=SER=MVSRES,
//             SPACE=(CYL,(1,1,10)),
//             DCB=SYS1.LINKLIB
//SYSPRINT DD  SYSOUT=*
//SYSUT2   DD  DISP=SHR,DSN=SYS1.PROCLIB
//SYSIN    DD  DATA,DLM=XX
./ ADD NAME=SMPAPP
//SMPAPP  PROC WORK=3350,              WORK UNIT
//             TUNIT=3350,             TLIB UNIT
//             TVOL=MVSRES             TLIB VOLUME
//*********************************************************************
//*                                                                   *
//*  NAME: SMPAPP                                                     *
//*                                                                   *
//*  TYPE: JCL                                                        *
//*                                                                   *
//*  DESC: SMP4 PROCEDURE FOR APPLYING SYSMODS                        *
//*                                                                   *
//*********************************************************************
//HMASMP  EXEC PGM=HMASMP,PARM='DATE=U',REGION=5120K,TIME=1440
//SYSUT1   DD  UNIT=&WORK,SPACE=(1700,(600,100))
//SYSUT2   DD  UNIT=&WORK,SPACE=(1700,(600,100))
//SYSUT3   DD  UNIT=&WORK,SPACE=(1700,(600,100))
//SYSUT4   DD  UNIT=&WORK,SPACE=(80,(2,2))
//SYSPRINT DD  SYSOUT=*
//ASMPRINT DD  SYSOUT=*
//CMPPRINT DD  SYSOUT=*
//COPPRINT DD  SYSOUT=*
//LKDPRINT DD  SYSOUT=*
//E37PRINT DD  SYSOUT=*
//UPDPRINT DD  SYSOUT=*
//ZAPPRINT DD  SYSOUT=*
//*************************** SMP DATASETS *********************
//SMPOUT   DD  SYSOUT=*
//SMPLOG   DD  DUMMY
//SMPTLIB  DD  DISP=OLD,UNIT=&TUNIT,VOL=SER=&TVOL
//SYSLIB   DD  DISP=SHR,DSN=SYS1.SMPMTS,DCB=BLKSIZE=32720
//         DD  DISP=SHR,DSN=SYS1.SMPSTS
//         DD  DISP=SHR,DSN=SYS1.MACLIB
//         DD  DISP=SHR,DSN=SYS1.AMODGEN
//         DD  DISP=SHR,DSN=SYS1.AMACLIB
//SMPACDS  DD  DISP=SHR,DSN=SYS1.SMPACDS
//SMPACRQ  DD  DISP=SHR,DSN=SYS1.SMPACRQ
//SMPCDS   DD  DISP=SHR,DSN=SYS1.SMPCDS
//SMPCRQ   DD  DISP=SHR,DSN=SYS1.SMPCRQ
//SMPMTS   DD  DISP=SHR,DSN=SYS1.SMPMTS
//SMPPTS   DD  DISP=SHR,DSN=SYS1.SMPPTS
//SMPSTS   DD  DISP=SHR,DSN=SYS1.SMPSTS
//SMPSCDS  DD  DISP=SHR,DSN=SYS1.SMPSCDS
//SMPWRK1  DD  UNIT=&WORK,SPACE=(CYL,(5,10,84)),DCB=(BLKSIZE=3120,
//             LRECL=80)
//SMPWRK2  DD  UNIT=&WORK,SPACE=(CYL,(5,10,84)),DCB=(BLKSIZE=3120,
//             LRECL=80)
//SMPWRK3  DD  UNIT=&WORK,SPACE=(CYL,(5,10,84)),DCB=(BLKSIZE=3120,
//             LRECL=80)
//SMPWRK4  DD  UNIT=&WORK,SPACE=(CYL,(1,10,84)),DCB=(BLKSIZE=3120,
//             LRECL=80)
//SMPWRK5  DD  UNIT=&WORK,SPACE=(CYL,(30,10,250))
//*************************** TARGET DATASETS *******************
//*************************** needed for APPLY ******************
//CMDLIB   DD  DISP=SHR,DSN=SYS1.CMDLIB
//HELP     DD  DISP=SHR,DSN=SYS1.HELP
//IMAGELIB DD  DISP=SHR,DSN=SYS1.IMAGELIB
//IMAGE    DD  DISP=SHR,DSN=SYS1.IMAGELIB
//LPALIB   DD  DISP=SHR,DSN=SYS1.LPALIB
//LINKLIB  DD  DISP=SHR,DSN=SYS1.LINKLIB
//MACLIB   DD  DISP=SHR,DSN=SYS1.MACLIB
//PARMLIB  DD  DISP=SHR,DSN=SYS1.PARMLIB
//PROCLIB  DD  DISP=SHR,DSN=SYS1.PROCLIB
//SAMPLIB  DD  DISP=SHR,DSN=SYS1.SAMPLIB
//UADS     DD  DISP=SHR,DSN=SYS1.UADS
//UMODLIB  DD  DISP=SHR,DSN=SYS1.UMODLIB
//UMODOBJ  DD  DISP=SHR,DSN=SYS1.UMODOBJ
./ ADD NAME=SMPACC
//SMPACC  PROC WORK=3350,              WORK UNIT
//             TUNIT=3350,             TLIB UNIT
//             TVOL=MVSRES             TLIB VOLUME
//*********************************************************************
//*                                                                   *
//*  NAME: SMPACC                                                     *
//*                                                                   *
//*  TYPE: JCL                                                        *
//*                                                                   *
//*  DESC: SMP4 PROCEDURE FOR ACCEPTING SYSMODS                       *
//*                       AND RESTORING SYSMODS                       *
//*                                                                   *
//*********************************************************************
//HMASMP  EXEC PGM=HMASMP,PARM='DATE=U',REGION=5120K,TIME=1440
//SYSUT1   DD  UNIT=&WORK,SPACE=(1700,(600,100))
//SYSUT2   DD  UNIT=&WORK,SPACE=(1700,(600,100))
//SYSUT3   DD  UNIT=&WORK,SPACE=(1700,(600,100))
//SYSUT4   DD  UNIT=&WORK,SPACE=(80,(2,2))
//SYSPRINT DD  SYSOUT=*
//ASMPRINT DD  SYSOUT=*
//CMPPRINT DD  SYSOUT=*
//COPPRINT DD  SYSOUT=*
//LKDPRINT DD  SYSOUT=*
//E37PRINT DD  SYSOUT=*
//UPDPRINT DD  SYSOUT=*
//ZAPPRINT DD  SYSOUT=*
//*************************** SMP DATASETS *********************
//SMPOUT   DD  SYSOUT=*
//SMPLOG   DD  DUMMY
//SMPTLIB  DD  UNIT=&TUNIT,VOL=SER=&TVOL,DISP=OLD
//SMPACDS  DD  DISP=SHR,DSN=SYS1.SMPACDS
//SMPACRQ  DD  DISP=SHR,DSN=SYS1.SMPACRQ
//SMPCDS   DD  DISP=SHR,DSN=SYS1.SMPCDS
//SMPCRQ   DD  DISP=SHR,DSN=SYS1.SMPCRQ
//SMPMTS   DD  DISP=SHR,DSN=SYS1.SMPMTS
//SMPPTS   DD  DISP=SHR,DSN=SYS1.SMPPTS
//SMPSTS   DD  DISP=SHR,DSN=SYS1.SMPSTS
//SMPSCDS  DD  DISP=SHR,DSN=SYS1.SMPSCDS
//SMPWRK1  DD  UNIT=&WORK,SPACE=(CYL,(5,10,84)),DCB=(BLKSIZE=3120,
//             LRECL=80)
//SMPWRK2  DD  UNIT=&WORK,SPACE=(CYL,(5,10,84)),DCB=(BLKSIZE=3120,
//             LRECL=80)
//SMPWRK3  DD  UNIT=&WORK,SPACE=(CYL,(5,10,84)),DCB=(BLKSIZE=3120,
//             LRECL=80)
//SMPWRK4  DD  UNIT=&WORK,SPACE=(CYL,(1,10,84)),DCB=(BLKSIZE=3120,
//             LRECL=80)
//SMPWRK5  DD  UNIT=&WORK,SPACE=(CYL,(30,10,250))
//*************************** DLIB DATASETS *********************
//******************** NEEDED ON ACCEPT and RESTORE *************
//SYSLIB   DD  DISP=SHR,DSN=SYS1.AMODGEN,DCB=BLKSIZE=32720
//         DD  DISP=SHR,DSN=SYS1.AMACLIB
//         DD  DISP=SHR,DSN=SYS1.SMPMTS
//         DD  DISP=SHR,DSN=SYS1.SMPSTS
//ACMDLIB  DD  DISP=SHR,DSN=SYS1.ACMDLIB
//AGENLIB  DD  DISP=SHR,DSN=SYS1.AGENLIB
//AHELP    DD  DISP=SHR,DSN=SYS1.AHELP
//AIMAGE   DD  DISP=SHR,DSN=SYS1.AIMAGE
//ALPALIB  DD  DISP=SHR,DSN=SYS1.ALPALIB
//AMACLIB  DD  DISP=SHR,DSN=SYS1.AMACLIB
//AMODGEN  DD  DISP=SHR,DSN=SYS1.AMODGEN
//AOS00    DD  DISP=SHR,DSN=SYS1.AOS00
//AOS03    DD  DISP=SHR,DSN=SYS1.AOS03
//AOS04    DD  DISP=SHR,DSN=SYS1.AOS04
//AOS05    DD  DISP=SHR,DSN=SYS1.AOS05
//AOS06    DD  DISP=SHR,DSN=SYS1.AOS06
//AOS07    DD  DISP=SHR,DSN=SYS1.AOS07
//AOS11    DD  DISP=SHR,DSN=SYS1.AOS11
//AOS12    DD  DISP=SHR,DSN=SYS1.AOS12
//AOS20    DD  DISP=SHR,DSN=SYS1.AOS20
//AOS21    DD  DISP=SHR,DSN=SYS1.AOS21
//AOS24    DD  DISP=SHR,DSN=SYS1.AOS24
//AOS26    DD  DISP=SHR,DSN=SYS1.AOS26
//AOS29    DD  DISP=SHR,DSN=SYS1.AOS29
//AOS32    DD  DISP=SHR,DSN=SYS1.AOS32
//AOSA0    DD  DISP=SHR,DSN=SYS1.AOSA0
//AOSA1    DD  DISP=SHR,DSN=SYS1.AOSA1
//AOSB0    DD  DISP=SHR,DSN=SYS1.AOSB0
//AOSB3    DD  DISP=SHR,DSN=SYS1.AOSB3
//AOSBN    DD  DISP=SHR,DSN=SYS1.AOSBN
//AOSC2    DD  DISP=SHR,DSN=SYS1.AOSC2
//AOSC5    DD  DISP=SHR,DSN=SYS1.AOSC5
//AOSC6    DD  DISP=SHR,DSN=SYS1.AOSC6
//AOSCA    DD  DISP=SHR,DSN=SYS1.AOSCA
//AOSCD    DD  DISP=SHR,DSN=SYS1.AOSCD
//AOSCE    DD  DISP=SHR,DSN=SYS1.AOSCE
//AOSD0    DD  DISP=SHR,DSN=SYS1.AOSD0
//AOSD7    DD  DISP=SHR,DSN=SYS1.AOSD7
//AOSD8    DD  DISP=SHR,DSN=SYS1.AOSD8
//AOSG0    DD  DISP=SHR,DSN=SYS1.AOSG0
//AOSH1    DD  DISP=SHR,DSN=SYS1.AOSH1
//AOSH3    DD  DISP=SHR,DSN=SYS1.AOSH3
//AOST3    DD  DISP=SHR,DSN=SYS1.AOST3
//AOST4    DD  DISP=SHR,DSN=SYS1.AOST4
//AOSU0    DD  DISP=SHR,DSN=SYS1.AOSU0
//APARMLIB DD  DISP=SHR,DSN=SYS1.APARMLIB
//APROCLIB DD  DISP=SHR,DSN=SYS1.APROCLIB
//ASAMPLIB DD  DISP=SHR,DSN=SYS1.ASAMPLIB
//ATCAMMAC DD  DISP=SHR,DSN=SYS1.ATCAMMAC
//ATSOMAC  DD  DISP=SHR,DSN=SYS1.ATSOMAC
//AUADS    DD  DISP=SHR,DSN=SYS1.AUADS
//HASPSRC  DD  DISP=SHR,DSN=SYS1.HASPSRC
//*************************** TARGET DATASETS *******************
//************************* needed for RESTORE ******************
//CMDLIB   DD  DISP=SHR,DSN=SYS1.CMDLIB
//HELP     DD  DISP=SHR,DSN=SYS1.HELP
//IMAGELIB DD  DISP=SHR,DSN=SYS1.IMAGELIB
//IMAGE    DD  DISP=SHR,DSN=SYS1.IMAGELIB
//LPALIB   DD  DISP=SHR,DSN=SYS1.LPALIB
//LINKLIB  DD  DISP=SHR,DSN=SYS1.LINKLIB
//MACLIB   DD  DISP=SHR,DSN=SYS1.MACLIB
//PARMLIB  DD  DISP=SHR,DSN=SYS1.PARMLIB
//PROCLIB  DD  DISP=SHR,DSN=SYS1.PROCLIB
//SAMPLIB  DD  DISP=SHR,DSN=SYS1.SAMPLIB
//UADS     DD  DISP=SHR,DSN=SYS1.UADS
//UMODLIB  DD  DISP=SHR,DSN=SYS1.UMODLIB
//UMODOBJ  DD  DISP=SHR,DSN=SYS1.UMODOBJ
./ ADD NAME=SMPREC
//SMPREC  PROC WORK=3350,              WORK UNIT
//             TUNIT=3350,             TLIB UNIT
//             TVOL=MVSRES             TLIB VOLUME
//*********************************************************************
//*                                                                   *
//*  NAME: SMPREC                                                     *
//*                                                                   *
//*  TYPE: JCL                                                        *
//*                                                                   *
//*  DESC: SMP4 PROCEDURE FOR RECEIVING/REJECTING SYSMODS             *
//*                                                                   *
//*********************************************************************
//HMASMP  EXEC PGM=HMASMP,PARM='DATE=U',REGION=5120K,TIME=1440
//SYSUT1   DD  UNIT=&WORK,SPACE=(1700,(600,100))
//SYSUT2   DD  UNIT=&WORK,SPACE=(1700,(600,100))
//SYSUT3   DD  UNIT=&WORK,SPACE=(1700,(600,100))
//SYSUT4   DD  UNIT=&WORK,SPACE=(80,(2,2))
//SYSPRINT DD  SYSOUT=*
//ASMPRINT DD  SYSOUT=*
//CMPPRINT DD  SYSOUT=*
//COPPRINT DD  SYSOUT=*
//LKDPRINT DD  SYSOUT=*
//E37PRINT DD  SYSOUT=*
//UPDPRINT DD  SYSOUT=*
//ZAPPRINT DD  SYSOUT=*
//*************************** SMP DATASETS *********************
//SMPOUT   DD  SYSOUT=*
//SMPLOG   DD  DUMMY
//SMPTLIB  DD  DISP=OLD,UNIT=&TUNIT,VOL=SER=&TVOL
//SYSLIB   DD  DISP=SHR,DSN=SYS1.SMPMTS,DCB=BLKSIZE=32720
//         DD  DISP=SHR,DSN=SYS1.SMPSTS
//         DD  DISP=SHR,DSN=SYS1.MACLIB
//         DD  DISP=SHR,DSN=SYS1.AMODGEN
//         DD  DISP=SHR,DSN=SYS1.AMACLIB
//SMPACDS  DD  DISP=SHR,DSN=SYS1.SMPACDS
//SMPACRQ  DD  DISP=SHR,DSN=SYS1.SMPACRQ
//SMPCDS   DD  DISP=SHR,DSN=SYS1.SMPCDS
//SMPCRQ   DD  DISP=SHR,DSN=SYS1.SMPCRQ
//SMPMTS   DD  DISP=SHR,DSN=SYS1.SMPMTS
//SMPPTS   DD  DISP=SHR,DSN=SYS1.SMPPTS
//SMPSTS   DD  DISP=SHR,DSN=SYS1.SMPSTS
//SMPSCDS  DD  DISP=SHR,DSN=SYS1.SMPSCDS
//SMPWRK1  DD  UNIT=&WORK,SPACE=(CYL,(5,10,84)),DCB=(BLKSIZE=3120,
//             LRECL=80)
//SMPWRK2  DD  UNIT=&WORK,SPACE=(CYL,(5,10,84)),DCB=(BLKSIZE=3120,
//             LRECL=80)
//SMPWRK3  DD  UNIT=&WORK,SPACE=(CYL,(5,10,84)),DCB=(BLKSIZE=3120,
//             LRECL=80)
//SMPWRK4  DD  UNIT=&WORK,SPACE=(CYL,(1,10,84)),DCB=(BLKSIZE=3120,
//             LRECL=80)
//SMPWRK5  DD  UNIT=&WORK,SPACE=(CYL,(30,10,250))
./ ADD NAME=SMPASM
//SMPASM  PROC M=MISSING
//ASM     EXEC PGM=IFOX00,
//             REGION=4096K,
//             PARM='LIST,XREF(SHORT),DECK,NOOBJECT'
//SYSPRINT DD  SYSOUT=*
//SYSTERM  DD  SYSOUT=*
//SYSPUNCH DD  DISP=SHR,DSN=SYS1.UMODOBJ(&M)
//SYSLIB   DD  DISP=SHR,DSN=SYS1.MACLIB,DCB=BLKSIZE=32720
//         DD  DISP=SHR,DSN=SYS1.AMODGEN
//         DD  DISP=SHR,DSN=SYS1.UMODMAC
//         DD  DISP=SHR,DSN=SYS1.UMODSRC
//SYSUT1   DD  UNIT=VIO,SPACE=(CYL,(2,1))
//SYSUT2   DD  UNIT=VIO,SPACE=(CYL,(2,1))
//SYSUT3   DD  UNIT=VIO,SPACE=(CYL,(2,1))
//SYSIN    DD  DISP=SHR,DSN=SYS1.UMODSRC(&M)
./ ADD NAME=SMPASML
//SMPASML PROC M=MISSING
//ASM     EXEC PGM=IFOX00,
//             REGION=4096K,
//             PARM='LIST,XREF(SHORT),DECK,NOOBJECT'
//SYSPRINT DD  SYSOUT=*
//SYSTERM  DD  SYSOUT=*
//SYSPUNCH DD  DISP=(,PASS),
//             UNIT=3350,
//             SPACE=(CYL,(1,1)),
//             DCB=(LRECL=80,BLKSIZE=3120,RECFM=FB)
//SYSLIB   DD  DISP=SHR,DSN=SYS1.MACLIB,DCB=BLKSIZE=32720
//         DD  DISP=SHR,DSN=SYS1.AMODGEN
//         DD  DISP=SHR,DSN=SYS1.UMODMAC
//         DD  DISP=SHR,DSN=SYS1.UMODSRC
//SYSUT1   DD  UNIT=VIO,SPACE=(CYL,(2,1))
//SYSUT2   DD  UNIT=VIO,SPACE=(CYL,(2,1))
//SYSUT3   DD  UNIT=VIO,SPACE=(CYL,(2,1))
//SYSIN    DD  DISP=SHR,DSN=SYS1.UMODSRC(&M)
//LINK    EXEC PGM=IEWL,PARM='LIST,MAP,XREF',REGION=512K
//SYSPRINT DD  SYSOUT=*
//SYSLIN   DD  DISP=(OLD,PASS),DSN=*.ASM.SYSPUNCH
//         DD  DDNAME=SYSIN
//SYSLIB   DD  DISP=SHR,DSN=SYS1.UMODOBJ
//SYSLMOD  DD  DISP=SHR,DSN=SYS1.UMODLIB(&M)
XX
