//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) //SYSPRINT DD SYSOUT=* //SNAPDUMP DD SYSOUT=* // PEND //********************************************************************* //STEP1 EXEC ASMCG //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-1' CHAPTER 5.1 * * ===================================================== * * READ AND DUMP IPL INFORMATION AREA(IEAIPA). * *********************************************************************** MAINPROC DS 0H OPEN (SYSPRINT,OUTPUT) OPEN SYSPRINT DATASET PUT SYSPRINT,TITLINE1 PRINT TITLE LINE-1 PUT SYSPRINT,TITLINE2 PRINT TITLE LINE-2 SPACE , L R1,CVTPTR LOAD CVT L R1,CVTECVT-CVT(,R1) LOAD ECVT L R2,ECVTIPA-ECVT(,R1) LOAD IPA USING IPA,R2 ADDRESS IT SPACE , STCKCONV STCKVAL=IPAILTOD, CONVERT TOD TO READABLE FORMAT + CONVVAL=PACKDTOD, + TIMETYPE=DEC,DATETYPE=YYYYMMDD L R0,PACKDTOD+8 LOAD DATE VALUE L R1,PACKDTOD+0 LOAD TIME VALUE STM R0,R1,PACKDTOD MOVE IT OI PACKDTOD+7,X'0F' CORRECT SIGN BIT UNPK IPLTIME,PACKDTOD(8) SET IPLED TIME MVC LOADPARM,IPALPARM SET LOADPARM VALUE PUT SYSPRINT,OUTLINE1 PRINT OUTLINE-1 SPACE , MVC LOADMEM,IPALOADS SET LOADxx SUFFIX SPACE , MVC IPLDEV,IPALPDDV SET IPLPARM DEVICE NUMBER MVC IPLDSN,IPALPDSN SET IPLPARM DSN PUT SYSPRINT,OUTLINE2 PRINT OUTLINE-2 SPACE , MVC IODFHLQ,IPAIOHLQ SET IODF HLQ MVC IODFLLQ,IPAIOSUF SET IODF SUFFIX(IODFxx) PUT SYSPRINT,OUTLINE3 PRINT OUTLINE-3 SPACE , MVC MCATVOL,IPASCVOL SET MASTER CATALOG VOLSER MVC MCATDSN,IPASCDSN SET MASTER CATALOG DSN PUT SYSPRINT,OUTLINE4 PRINT OUTLINE-4 SPACE , MVC IEASYS,IPASPSUF SET IEASYSxx SUFFIX MVC IEASYM,IPASYSUF SET IEASYMxx SUFFIX PUT SYSPRINT,OUTLINE5 PRINT OUTLINE-5 SPACE , LH R3,IPAPLNUMX LOAD NUM OF PARMLIBS L R4,IPAPLIB@ LOAD 1ST PARMLIB ENTRY USING IPAPLI,R4 ADDRESS IT LA RA,1 INIT PARMLIB SEQ NUMBER PARMLIB DS 0H CVD RA,PACKDTOD CONVERT SEQ NO. TO DECIMAL UNPK PARMSEQ,PACKDTOD(8) CONVERT IT TO ZONE DECIMAL OI PARMSEQ+2,X'F0' MAKE IT TO HUMAN READABLE TM IPAPLIFLG,IPAPLILCF+IPAPLIMNF+IPAPLIOPF UNUSED ? BZ *+4+6 NO, MVC PARMSEQ,=CL3'ERR' INDICATE PARMLIB ERROR MVC PARMVOL,IPAPLIVOL SET PARMLIB VOLSER MVC PARMDSN,IPAPLIDSN SET PARMLIB DSN LA R4,IPAPLI_LEN(,R4) LOCATE TO NEXT PARMLIB ENTRY PUT SYSPRINT,OUTLINE6 PRINT OUTLINE-6 LA RA,1(,RA) INCREMENT SEQ NUMBER BCT R3,PARMLIB LOOP FOR NEXT PARMLIB SPACE , CLOSE (SYSPRINT) CLOSE SYSPRINT DATASET SPACE , LR R3,R2 DUMP IPA AREA AH R3,IPALEN SET IPA ENDING ADDRESS BCTR R3,0 CORRECT IT OPEN (SNAPDUMP,OUTPUT) OPEN SNAPDUMP DATASET SNAP DCB=SNAPDUMP, PRINT STORAGE AREA + STORAGE=((2),(3)) CLOSE (SNAPDUMP) CLOSE SNAPDUMP DATASET SPACE , * *----------------------------------* * * END OF PROCESSING * * *----------------------------------* SLR 15,15 LOAD RETURN CODE = 0 B EXITPROC DO EXIT PROCESSING EJECT , *********************************************************************** * DATA AREA * *********************************************************************** DS 0D *---------------------------------------------------------------------* PACKDTOD DC XL16'00' CONVERTED TOD VALUE * 0----+----1----+----2----+----3----+----4----+----5 TITLINE1 DC CL80'IPA(INITIALIZATION PARAMETER AREA) SUMMARY' TITLINE2 DC CL80'===================================================+ ====' * 0----+----1----+----2----+----3----+----4----+----5 OUTLINE1 DC CL80'IPL TIME=@@@@@@@@@@@@@@@, LOADPARM=@@@@@@@@' IPLTIME EQU OUTLINE1+9,15 LOADPARM EQU OUTLINE1+35,8 OUTLINE2 DC CL80'IPL LOADxx MEMBER: DEVICE=@@@@, DSN=@' LOADMEM EQU OUTLINE2+8,2 IPLDEV EQU OUTLINE2+26,4 IPLDSN EQU OUTLINE2+36,44 OUTLINE3 DC CL80'IODF HLQ=@@@@@@@@ SUFFIX=@@' IODFHLQ EQU OUTLINE3+9,8 IODFLLQ EQU OUTLINE3+25,2 OUTLINE4 DC CL80'MASTER CATALOG VOL=@@@@@@, DSN=@' MCATVOL EQU OUTLINE4+19,6 MCATDSN EQU OUTLINE4+31,44 OUTLINE5 DC CL80'USE SYSTEM PARAMETER IEASYS@@ AND IEASYM@@ FROM PAR+ MLIB' IEASYS EQU OUTLINE5+27,2 IEASYM EQU OUTLINE5+40,2 OUTLINE6 DC CL80'SEQ=@@@ VOL=@@@@@@ DSN=@' PARMSEQ EQU OUTLINE6+4,3 PARMVOL EQU OUTLINE6+12,6 PARMDSN EQU OUTLINE6+23,44 SPACE , SYSPRINT DCB DDNAME=SYSPRINT, DCB FOR SYSPRINT DATASET + DSORG=PS,MACRF=PM,RECFM=FB,BLKSIZE=0,LRECL=80 SNAPDUMP DCB DDNAME=SNAPDUMP, DCB FOR SNAP DUMP DATASET + DSORG=PS,MACRF=W,RECFM=VBA,BLKSIZE=1632,LRECL=125 *---------------------------------------------------------------------* LTORG , LITERAL POOL AT HERE DROP , FORGET ALL BASE REGISTERS EJECT , *********************************************************************** * DATA AREA (OUTSIDE OUR BASE) * *********************************************************************** *---------------------------------------------------------------------* * LOCAL WORKAREA * *---------------------------------------------------------------------* *---------------------------------------------------------------------* * DSECTS * *---------------------------------------------------------------------* CVT DSECT=YES,LIST=YES CVT IHAECVT DSECT=YES,LIST=YES ECVT IHAIPA , Initialization Parameter Area *---------------------------------------------------------------------* * 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 // //