//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) //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.3 * * ===================================================== * * TOD CLOCK ADJUST TO LOCAL TIME. * *********************************************************************** MAINPROC DS 0H STCK TOD STORE CURRENT TOD CLOCK SPACE , STCKCONV STCKVAL=TOD, CONVERT TOD TO YYYYMMDDHHMMSS + CONVVAL=OUTAREA1, + DATETYPE=YYYYMMDD,TIMETYPE=DEC SPACE , L R3,CVTPTR LOAD CVT USING CVT,R3 ADDRESS IT L R2,CVTTZ GR2 --> TIME DIFFERENCE FROM GMT BINARY UNITS OF 1.048576 SECOND SPACE , L R3,CVTEXT2 LOAD CVT COMMON EXTENSION USING CVTXTNT2,R3 ADDRESS IT LG R6,CVTLDTO GR6 --> TIME DIFFERENCE FROM GMT 64BIT TOD CLOCK FORMAT STCKCONV STCKVAL=CVTLDTO, CONVERT TIME DIFFERENCE TO + CONVVAL=OUTAREA2, YYYYMMDDHHMMSS + DATETYPE=YYYYMMDD,TIMETYPE=DEC SPACE , LG R0,TOD LOAD GMT TOD CLOCK AG R0,CVTLDTO ADJUST IT TO LOCAL TIME STG R0,LOCALTOD SAVE IT STCKCONV STCKVAL=LOCALTOD, CONVERT LOCAL TOD TIME TO + CONVVAL=OUTAREA3, YYYYMMDDHHMMSS + DATETYPE=YYYYMMDD,TIMETYPE=DEC SPACE , * *----------------------------------* * * DUMP OUR STORAGE DATA AREA * * *----------------------------------* OPEN (SNAPDUMP,OUTPUT) OPEN SNAPDUMP DATASET SNAP DCB=SNAPDUMP, PRINT STORAGE AREA + STORAGE=(BGNSNAP,ENDSNAP-1), + PDATA=REGS 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 ((((*-MYASMPGM)/32+1)*32)-(*-MYASMPGM))X (ADJUST TO + 32BYTE BOUNDARY ACCORDING TO THE STOR AGE DUMP BEGINNING ADDRESS BOUNDARY) *---------------------------------------------------------------------* BGNSNAP DS 0F OUTAREA1 DS 0F GMTTIME DC XL8'00' DC XL4'00' DC XL4'00' ORG OUTAREA1+8 OUTAREA2 DS 0F TIMEDIFF DC XL8'00' DC XL4'00' DC XL4'00' ORG OUTAREA2+8 OUTAREA3 DS 0F LOCLTIME DC XL8'00' ENDSNAP DC XL4'00' DC XL4'00' ORG , TOD DC D'0' LOCALTOD DC D'0' SPACE , 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 *---------------------------------------------------------------------* * 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 // //