//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=* //SYSUT1 DD DISP=OLD,UNIT=SYSDA,VOL=SER=DATA20 // 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-2' CHAPTER 5.2 * * ===================================================== * * TEST DD STATEMENT DEFINITION, * * READ RELATED DEVICE CHARACTERISTICS. * *---------------------------------------------------------------------* * CHANGE SYSUT1 DSNAME FOR YOUR ENVIRONMENT. * * //GO EXEC PGM=LOADER,COND=(5,LT,ASM), * * //SYSUT1 DD DISP=OLD,UNIT=SYSDA,VOL=SER=DATA20 * *********************************************************************** MAINPROC DS 0H GET_DEVTYPE DS 0H DEVTYPE DDNAME,DEVAREA ISSUE DEVTYPE WITH MINIMUM AREA LTR RF,RF SUCCESSFUL ? BZ DEVC_DASD YES, SPACE , WTO 'SYSUT1 DD STMT NOT DEFINED...', ZOSv23 + MCSFLAG=HRDCPY B ENDPROGM PROCESSING DONE USING DVAREA,DEVAREA ADDRESS TO DEVTYPE BASIC RETURN+ AREA DEVC_DASD DS 0H CLI DVACLASS,UCB3DACC DASD DEVICE ? BNE DEVC_TAPE NO, WTO 'SYSUT1 DEVICE IS DASD.', YES, INFORM IT ZOSv23 + MCSFLAG=HRDCPY B GET_DEVINFO DEVC_TAPE DS 0H CLI DVACLASS,UCB3TAPE TAPE DEVICE ? BNE DEVC_OTHR NO, WTO 'SYSUT1 DEVICE IS TAPE.', YES, INFORM IT ZOSv23 + MCSFLAG=HRDCPY B GET_DEVINFO DEVC_OTHR DS 0H WTO 'SYSUT1 DEVICE IS NEITHER DASD NOR TAPE.', ZOSv23 + MCSFLAG=HRDCPY GET_DEVINFO DS 0H DEVTYPE DDNAME,DEVAREA,DEVTAB GET DEVICE CHARACTERISTICS + WITH MORE DETAILS DEVTYPE DDNAME, GET DEVICE CHARACTERISTICS + (INFOAREA,LNFOAREA), BY INFO FORMAT+ INFOLIST=INFOLIST CLI DVACLASS,UCB3DACC DASD DEVICE ? BNE DUMP_INFOAREA NO, USING DVAIDASD,DASDAREA ADDRESS TO INFO=DASD AREA L R4,DVAICYL LOAD NUM OF DEVICE CYLINDERS TM DVAIFLAG,DVAECKD1 ECKD DEVICE ? BO *+4 YES, TM DVAIFLAG,DVACACHE1 SUPPORT CONTROLLER CACHE ? BO *+4 YES, DUMP_INFOAREA DS 0H LA R2,DDNAME DUMP JFCB AREA LA R3,INFOLIST LOAD END OF JFCB AREA 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 * * *----------------------------------* ENDPROGM DS 0H SLR 15,15 LOAD RETURN CODE = 0 B EXITPROC DO EXIT PROCESSING EJECT , *********************************************************************** * DATA AREA * *********************************************************************** DS 0D *---------------------------------------------------------------------* * *----------------------------------* * * MISCELLANEOUS * * *----------------------------------* DDNAME DC CL8'SYSUT1' TARGET DDNAME INFOAREA DS 0F DEVTYPE INFO RETURN AREA AMCAREA DC XL32'00' INFO=AMCAP RETURN AREA DASDAREA DC XL16'00' INFO=DASD RETURN AREA LNFOAREA EQU *-INFOAREA LENGTH OF INFO AREA DEVAREA DC XL8'00' DEVTYPE BASIC RETURN AREA DC XL12'00' ADD EXTRA FIELD FOR DEVTAB SPACE , INFOLIST DEVTYPE INFO=(AMCAP,DASD) 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 * *---------------------------------------------------------------------* IHADVA , DEVTYPE RETURN AREA IEFUCBOB PREFIX=YES UCB *---------------------------------------------------------------------* * 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 // //