To assemble your program on ICCF, use the job entry statements
/LOAD, /OPTION, /INCLUDE, and /RUN. To create and save an object
module, also use the /FILE job entry statement.
Before assembling your program on ICCF, ensure that your ICCF Administrator
has provided the following:
LIBDEF statements for all librarian sublibraries that are accessed
during assembly, including the sublibrary where High Level Assembler
and any user exits reside. The LIBDEF statements must be provided
in the VSE/ICCF CICS® initialization
job stream.
Definitions for the assembler work file used by the assembler
to process the source program. All work files must be pre-allocated,
and defined in the VSE/ICCF initialization job stream. High Level
Assembler does not recognize work files defined using the /FILE job
entry statement.
An interactive partition with sufficient storage to run the assembly.
The amount of storage you need depends upon the size of your source
program, and the value you specify in the SIZE assembler option.
On ICCF, you can either enter the required ICCF commands, or you
can write your own procedure that can be used whenever you need to
assemble a program.
Figure 1 shows an example
of the ICCF commands you should enter to assemble your program. Figure 1. Entering ICCF
commands
Figure 2 shows a working example
of an ICCF procedure for assembling a program, and generating an object
module. Figure 2. Sample
procedure for assembling on ICCF
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* ASMARUN NNNN (OBJ MMMM/*) OPTIONS
*
* PROCEDURE TO ASSEMBLE A HIGH LEVEL ASSEMBLER PROGRAM
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
&&OPTIONS 0010011
&&IF &&PARMCT NE 0 &&GOTO START
&&TYPE ENTER NAME (OBJ NAME/*) (OPTIONS)
&&READ &&PARAMS
&&IF &&PARMCT EQ 0 &&EXIT
&&LABEL START
/LIST 1 1 &&PARAM1 &&VARBL5
&&IF &&RETCOD NE *FILE &&GOTO SOUR
&&TYPE *SOURCE MEMBER &&PARAM1 NOT IN LIBRARY OR EMPTY
&&EXIT
&&LABEL SOUR
&&IF &&RETCOD NE *INVALID &&GOTO YESOR
&&TYPE *INVALID PASSWORD OR INVALID ACCESS TO MEMBER &&PARAM1
&&EXIT
&&LABEL YESOR
&&IF &&RETCOD NE *MISSING &&GOTO OKSOR
&&TYPE *ENTER PASSWORD FOR MEMBER &&PARAM1
&&READ &&VARBL5
&&IF &&VARBL5 NE ' ' &&GOTO -START
&&EXIT
&&LABEL OKSOR
&&SET &&VARBL1 &&PARAM1
&&SHIFT 1
&&IF &&PARAM1 NE OBJ &&GOTO NOOBJ
&&SET &&VARBL2 &&PARAM2 ''
&&IF &&VARBL2 EQ '*' &&SET &&VARBL2 ' '
&&IF &&VARBL2 EQ ' ' &&GOTO +INLIB
/LIST 1 1 &&VARBL2
&&IF &&RETCOD NE *FILE &&GOTO OVERW
/INP NOPROMPT
DUMMY RECORD TO CREATE A MEMBER FOR 'ASMARUN' PROCEDURE OUTPUT
/SAVE &&VARBL2
&&IF &&RETCOD NE *LIBRARY &&GOTO INLIB
&&TYPE *LIBRARY DIRECTORY FULL
&&EXIT
&&LABEL OVERW
&&TYPE *MEMBER &&VARBL2 ALREADY EXISTS. OVERWRITE? (Y/N)
&&READ &&VARBL4
&&IF &&VARBL4 EQ 'Y' &&GOTO INLIB
&&TYPE *NO ASSEMBLY - TRY AGAIN WITH ANOTHER NAME
&&EXIT
&&LABEL INLIB
&&SHIFT 1
&&SHIFT 1
&&LABEL NOOBJ
/INP NOPROMPT
&/LOAD ASMA90 PARM='&&PARAM1,&&PARAM2,&&PARAM3,&&PARAM4,&&PARAM5'
/OPTION NOGO RESET GETVIS=P-240
&&IF &&VARBL2 NE ' ' /FILE TYPE=ICCF,UNIT=SYSPCH,NAME=&&VARBL2
&/INCLUDE &&VARBL1 &&VARBL5
/END
/PEND
/RUN