Cataloged procedure for assembly, link, and run (ASMACLG)
This procedure consists of three job steps: assembly, link, and run. Use the name ASMACLG to call this procedure. It produces an assembler listing, an object module, and a binder listing.
The statements entered in the input stream to use this procedure are:
//jobname JOB
//stepname EXEC PROC=ASMACLG
//C.SYSIN DD *
⋮
assembler source statements
⋮
/*
//L.SYSIN DD *
⋮
object module or binder control statements
⋮
/*
//G.ddname DD (parameters)
//G.ddname DD (parameters)
//G.ddname DD *
⋮
program input
⋮
/*
//L.SYSIN is necessary only if the binder is to combine modules or read binder control information from the job stream.
//G.ddname statements are included only if necessary.
Figure 1 shows the statements that make up the ASMACLG procedure. Only those statements not previously discussed are explained in the figure.
//ASMACLG PROC
//*
//********************************************************************
//* Licensed Materials - Property of IBM *
//* *
//* 5696-234 5647-A01 *
//* *
//* (C) Copyright IBM Corp. 1992, 2008. All Rights Reserved. *
//* *
//* US Government Users Restricted Rights - Use, *
//* duplication or disclosure restricted by GSA ADP *
//* Schedule Contract with IBM Corp. *
//* *
//********************************************************************
//* *
//* ASMACLG *
//* *
//* THIS PROCEDURE RUNS THE HIGH LEVEL ASSEMBLER, LINK-EDITS THE *
//* NEWLY ASSEMBLED PROGRAM AND RUNS THE PROGRAM AFTER *
//* THE LINK-EDIT IS ACCOMPLISHED. *
//* *
//********************************************************************
//*
//C EXEC PGM=ASMA90
//SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR
//SYSUT1 DD DSN=&&SYSUT1,SPACE=(16384,(120,120),,,ROUND),
// UNIT=SYSALLDA,DCB=BUFNO=1
//SYSPRINT DD SYSOUT=*
//SYSLIN DD DSN=&&OBJ,SPACE=(3040,(40,40),,,ROUND),
// UNIT=SYSALLDA,DISP=(MOD,PASS),
// DCB=(BLKSIZE=3040,LRECL=80,RECFM=FB,BUFNO=1)
//L EXEC PGM=HEWL,PARM='MAP,LET,LIST',COND=(8,LT,C) 1
//SYSLIN DD DSN=&&OBJ,DISP=(OLD,DELETE)
// DD DDNAME=SYSIN
//SYSLMOD DD DISP=(,PASS),UNIT=SYSALLDA,SPACE=(CYL,(1,1,1)), 2
// DSN=&&GOSET(GO)
//SYSUT1 DD DSN=&&SYSUT1,SPACE=(1024,(120,120),,,ROUND),
// UNIT=SYSALLDA,DCB=BUFNO=1
//SYSPRINT DD SYSOUT=*
//G EXEC PGM=*.L.SYSLMOD,COND=((8,LT,C),(8,LT,L)) 3
Notes to Figure 1:
- 1
- The LET binder option specified in this statement causes the binder to mark the program module as executable, even if errors are encountered during processing.
- 2
- The output of the binder is specified as a member of a temporary data set, residing on a direct-access device, and is to be passed to a following job step.
- 3
- This statement runs the assembled and binder program. The notation *.L.SYSLMOD identifies the program to be run as being in the data set described in job step L by the DD statement named SYSLMOD.