HLASM Programmer's Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Invoking the assembler on ICCF

HLASM Programmer's Guide
SC26-4941-06

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
/INPUT
/LOAD    ASMA90,PARM='SIZE(800K)'
/OPTION  NOGO,RESET,DECK,GETVIS=P-240
/FILE    TYPE=ICCF,UNIT=SYSPCH,NAME=ASMOBJ
/INCLUDE ASMPROG
/END
/RUN
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

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014