//JOBNAME JOB (ACCT),NAME,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) //********************************************************************* //ASMCG PROC AOPT=,APARM=,LOPT=, // MAC1='SYS1.MACLIB', // MAC2='SYS1.MACLIB', // MAC3='SYS1.MODGEN' //ASM EXEC PGM=ASMA90, // PARM=('OBJ,NODECK,LC(32767),XREF(SHORT),TERM,RLD,ASA,&AOPT', // 'US(MAP,WARN(11)),SYSPARM(&APARM)') //SYSPRINT DD SYSOUT=* //SYSTERM DD SYSOUT=* //SYSLIB DD DISP=SHR,DSN=&MAC1 // DD DISP=SHR,DSN=&MAC2 // DD DISP=SHR,DSN=&MAC3 //SYSUT1 DD UNIT=SYSALLDA,SPACE=(TRK,(80,20)) //SYSLIN DD DISP=(,PASS),UNIT=SYSALLDA,SPACE=(TRK,(30,15),RLSE), // DCB=(RECFM=FB,BLKSIZE=0,LRECL=80) //GO EXEC PGM=LOADER,COND=(5,LT,ASM), // PARM=('LIST,LET,MAP,XREF,&LOPT') //SYSLOUT DD DUMMY //SYSLIN DD DSN=*.ASM.SYSLIN,DISP=(OLD,DELETE) // PEND //********************************************************************* //STEP1 EXEC ASMCG //GO.SYSUT2 DD SYSOUT=(,INTRDR) //ASM.SYSIN DD * *=====================================================================* * MVS STANDARD HOUSE KEEPING PROCEDURE * *=====================================================================* * *----------------------------------* * * ENTRY PROCESSING * * *----------------------------------* MYASMPGM CSECT , DEFINE CONTROL SECTION MYASMPGM AMODE 31 DEFINE DEFAULT AMODE=31 MYASMPGM RMODE 24 DEFINE DEFAULT RMODE=24 USING *,12 DEFINE BASE REGISTER SAVE (14,12),,* SAVE CALLER REGISTERS LA 12,0(,15) GR12 --> OUR 1ST BASE ADDRESS LR 15,13 SAVE CALLER SAVEAREA CNOP 0,4 INSURE FULL WORD BOUNDARY BAS 13,*+4+72 AROUND OUR SAVEAREA DC 18F'-1' OUR GPR SAVEAREA ST 15,4(,13) SAVE CALLER SAVEAREA POINTER ST 13,8(,15) SET BACK CHAIN FOR LINK TRACE B MAINPROC DO MAINLINE PROCESSING * *----------------------------------* * * EXIT PROCESSING * * *----------------------------------* EXITPROC DS 0H L 13,4(,13) RESTORE CALLER SAVEAREA ST 15,16(,13) PASS RETURN CODE TO CALLER RETURN (14,12),T RESTORE CALLER REGISTERS + AND RETURN TO CALLER EJECT , *********************************************************************** * MAIN LINE PROCESSING. * * ===================================================== * * GR1 -- EXEC PARAMETER PLIST * * GR12 - BASE REGISTER * * GR13 - OUR REGISTER SAVEAREA * *---------------------------------------------------------------------* * SAMPLE CODE OF 'MVS ADVANCED SKILL Vol-2' CHAPTER 5.4 * * ===================================================== * * WRITE RECORD TO JES2 INTRDR(SUBMITTING JCL CARD) * *---------------------------------------------------------------------* * THIS PROGRAM MUST BE PLACE BELOW THE 16MB LINE. * *********************************************************************** MAINPROC DS 0H USING IFGACB,UT2ACB ADDRESS TO SYSUT2 ACB USING IFGRPL,UT2RPL ADDRESS TO SYSUT2 RPL DEVTYPE ACBDDNM,DOUBLE TEST SYSUT2 DD STMT DEFINITION CLC DOUBLE+2(2),=XL2'0102' DEVICE IS SYSOUT ? BNE DDDEFERR NO, ABORT PROCESSING OPEN (UT2ACB) OPEN JES2 INTRDR ENDREQ RPL=UT2RPL GIVE JES2 END OF FILE SPACE , * *----------------------------------* * * SUBMIT JCL-1 * * *----------------------------------* LA R2,NUMCARD1 LOAD NUM OF RECORDS LA R3,JCLCARD1 LOAD RECORD DATA AREA LOOP1 DS 0H ST R3,RPLAREA SET NEXT JCL CARD ADDRESS PUT RPL=UT2RPL WRITE NEXT JCL CARD LA R3,80(,R3) LOCATE TO NEXT CARD AREA BCT R2,LOOP1 LOOP TO WRITE NEXT JCL CARD ENDREQ RPL=UT2RPL GIVE JES2 END OF FILE BAS RA,WTOJOBID INFORM SUBMITTED JOB NUMBER SPACE , * *----------------------------------* * * SUBMIT JCL-2 * * *----------------------------------* LA R2,NUMCARD2 LOAD NUM OF RECORDS LA R3,JCLCARD2 LOAD RECORD DATA AREA LOOP2 DS 0H ST R3,RPLAREA SET NEXT JCL CARD ADDRESS PUT RPL=UT2RPL WRITE NEXT JCL CARD LA R3,80(,R3) LOCATE TO NEXT CARD AREA BCT R2,LOOP2 LOOP TO WRITE NEXT JCL CARD ENDREQ RPL=UT2RPL GIVE JES2 END OF FILE BAS RA,WTOJOBID INFORM SUBMITTED JOB NUMBER SPACE , CLOSE (UT2ACB) CLOSE JES2 INTRDR B ENDPROGM GO TO EPILOGUE PROCEDURE SPACE , WTOJOBID DS 0H MVC MSG1+8+4+30(8),RPLRBAR SET ASSIGNED JOB NUMBER MVI ECB,0 CLEAR ECB WTOR MF=(E,MSG1) SHOW IT AND WAIT REPLY WAIT ECB=ECB WAIT UNTIL REPLY ENTERED BR RA RETURN TO MAINLINE MSG1 WTOR 'SUBMITTED JCL, ASSIGNED JOBID=XXXXXXXX, ENTER GO.', + DOUBLE,2,ECB,MF=L SPACE , DDDEFERR DS 0H WTO 'SYSUT2 DD STATEMENT ERROR',MCSFLAG=HRDCPY ZOSv23 LA 15,8 LOAD RETURN CODE = 8 ZOSv23 SPACE , * *----------------------------------* * * END OF PROCESSING * * *----------------------------------* ENDPROGM DS 0H B EXITPROC DO EXIT PROCESSING EJECT , *********************************************************************** * DATA AREA * *********************************************************************** DS 0D *---------------------------------------------------------------------* * *----------------------------------* * * VSAM INTERFACE PARAMETERS * * *----------------------------------* UT2ACB ACB AM=VSAM, ACB FOR SYSUT2 + DDNAME=SYSUT2,MACRF=OUT UT2RPL RPL AM=VSAM, RPL FOR SYSUT2 + ACB=UT2ACB, + AREA=0,AREALEN=80,RECLEN=80, + OPTCD=(ADR,SEQ) SPACE , * *----------------------------------* * * WORKING DATA * * *----------------------------------* DOUBLE DC D'0' DOUBLE WORD WORKAREA ECB DC F'0' WTOR ECB JCLCARD1 EQU * DC CL80'//TESTJOB1 JOB ,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1)' DC CL80'//*' DC CL80'//STEP1 EXEC PGM=IEFBR14' DC CL80'//STEP2 EXEC PGM=IEFBR14' DC CL80'//' NUMCARD1 EQU (*-JCLCARD1)/80 NUM OF JCL CARD RECORDS JCLCARD2 EQU * DC CL80'//TESTJOB2 JOB ,CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1)' DC CL80'//*' DC CL80'//STEP1 EXEC PGM=IEBGENER' DC CL80'//SYSPRINT DD SYSOUT=*' DC CL80'//STEP2 EXEC PGM=IEBCOPY' DC CL80'//' NUMCARD2 EQU (*-JCLCARD2)/80 NUM OF JCL CARD RECORDS *---------------------------------------------------------------------* LTORG , LITERAL POOL AT HERE DROP , FORGET ALL BASE REGISTERS EJECT , *********************************************************************** * DATA AREA (OUTSIDE OUR BASE) * *********************************************************************** *---------------------------------------------------------------------* * LOCAL WORKAREA * *---------------------------------------------------------------------* *---------------------------------------------------------------------* * DSECTS * *---------------------------------------------------------------------* IFGACB AM=VSAM VSAM ACB IFGRPL AM=VSAM VSAM RPL *---------------------------------------------------------------------* * S/370, ESA/390 REGISTER EQUATES * *---------------------------------------------------------------------* YREGS , OS: REGISTER EQUATES RA EQU 10 ADD EQUATION FOR GR10 RB EQU 11 ADD EQUATION FOR GR11 RC EQU 12 ADD EQUATION FOR GR12 RD EQU 13 ADD EQUATION FOR GR13 RE EQU 14 ADD EQUATION FOR GR14 RF EQU 15 ADD EQUATION FOR GR15 END // //