Preparing Assembler programs

Perform the following steps for assembling your programs:

  1. Allocate libraries (PDSE is suggested unless PDS is required for your organization) for LANGX files. Allocate one or more LANGX libraries for each environment, such as test and production.
  2. Create a corresponding LANGX library for each load library. Specify LRECL=1562 or greater,RECFM=VB,BLKSIZE= lrecl+4 to 32k.
  3. For all programs, such as batch, CICS®, and IMS, in both test and production environments, specify ADATA.

    ADATA instructs the assembler to produce a SYSADATA file, which contains source and symbolic data about the program. This produces a production-ready module that can be debugged using z/OS® Debugger. ADATA does not affect the contents of the assembled module.

  4. Add a SYSADATA DD in the assembler step. This file is created by the assembler and it can be a permanent or temporary file. Specify LRECL=8188 or greater,RECFM=VB,BLKSIZE= lrecl+4 to 32k. This file is the input to the IPVLANGX utility.
  5. Add a step after the assembler step to run the IPVLANGX utility. The IPVLANGX utility reads the SYSADATA file and creates a LANGX file. The LANGX file is the source information file for z/OS® Debugger, Fault Analyzer for z/OS® and Application Performance Analyzer for z/OS®.
  6. Save the LANGX file in the LANGX file library, and specify a member name that is equal to the CSECT name.
  7. Modify the promotion process to promote LANGX files. When a load module is promoted, for example, from test to production, promote the corresponding LANGX file or files. A promotion can be a recompile, copy, or move. Perform the same steps with the LANGX file that you perform with the module during promotion.
  8. If the assembler program is Language Environment-enabled, optionally include a z/OS® Debugger Language Environment® exit module into the load module during the linkage editor step. This approach is one way to enable z/OS® Debugger panel 6 in ISPF, a simple panel-driven method to start the debugger automatically when a program runs, without JCL changes, based on the program name and user ID. Use module EQADBCXT for batch programs (including IMS batch), EQADICXT for IMS/TM programs and EQADDCXT for DB2® stored procedures. Do not include the exit module for CICS® programs.

    You can also use module EQAD3CXT for batch programs, IMS/TM, IMS BTS programs, and DB2® type MAIN stored procedures

  9. For CICS® programs only: If the program is a CICS® main program, is enabled for Language Environment®, and the z/OS® Debugger DTCN transaction is used to start z/OS® Debugger, then supplied module EQADCCXT must be included in the load module during the linkage editor step.