This procedure consists of two job steps: assembly and link. Use
the name ASMACL to call this procedure. This procedure produces an
assembler listing, the binder listing, and a program module.
The following example shows input to the assembler in the input
job stream. SYSLIN contains the output from the assembly step and
the input to the link step. It can be concatenated with additional
input to the binder as shown in the example. This additional input
can be binder control statements or other object modules.
An example of the statements entered in the input stream to use
this procedure is:
//L.SYSIN is necessary only if the binder is to combine modules
or read editor control information from the job stream.
Figure 1 shows the statements that make
up the ASMACL procedure. Only those statements not previously discussed
are explained in the figure. Figure 1. Cataloged procedure for
assembling and linking (ASMACL)
//ASMACL 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. *
//* *
//********************************************************************
//* *
//* ASMACL *
//* *
//* THIS PROCEDURE RUNS THE HIGH LEVEL ASSEMBLER, LINK-EDITS THE *
//* NEWLY ASSEMBLED PROGRAM. *
//* *
//********************************************************************
//*
//C EXEC PGM=ASMA90
//SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR
//SYSUT1 DD DSN=&&SYSUT1,SPACE=(16384,(120,120),,,ROUND), 1
// 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,NCAL',COND=(8,LT,C) 2
//SYSLIN DD DSN=&&OBJ,DISP=(OLD,DELETE) 3
// DD DDNAME=SYSIN 4
//SYSLMOD DD DISP=(,PASS),UNIT=SYSALLDA,SPACE=(CYL,(1,1,1)), 5
// DSN=&&GOSET(GO)
//SYSUT1 DD DSN=&&SYSUT1,SPACE=(1024,(120,120),,,ROUND), 6
// UNIT=SYSALLDA,DCB=BUFNO=1
//SYSPRINT DD SYSOUT=* 7
In this procedure, the SYSLIN DD statement describes a temporary
data set, the object module, which is passed to the binder.
2
This statement runs the binder. The binder options in the PARM
field cause the binder to produce a cross-reference table, a module
map, and a list of all control statements processed by the binder.
The NCAL option suppresses the automatic library call function of
the binder.
3
This statement identifies the binder input data set as the same
one (SYSLIN) produced as output from the assembler.
4
This statement is used to concatenate any input to the binder
from the input stream (object decks, binder control statements, or
both) with the input from the assembler.
5
This statement specifies the binder output data set (the program
load module). As specified, the data set is deleted at the end of
the job. If it is required to retain the program module, the DSN
parameter must be respecified and a DISP parameter added. See Overriding statements in cataloged procedures. If you want to retain the output
of the binder, the DSN parameter must specify a library name and a
member name at which the program module is to be placed. The DISP
parameter must specify either KEEP or CATLG.
6
This statement specifies the work data set for the binder.
7
This statement identifies the standard output class as the destination
for the binder listing.