What libraries are required when assembling the load modules for CMPIMS?

Document ID : KB000054521
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

PROBLEM DESCRIPTION:
When assembling the BrightStor CA-Compress Data Compression for IMS program IMSHRINK, if you do not include the necessary libraries to resolve all the macro statements or any external references, there will be Undefined symbol and/or Undefined operation code error messages in the output of the ASMA90 step (High Level Assembler).

SYMPTOMS:
A condition code of 8 or 12 will be passed from this step, indicating that any further steps will not be executed, with messages as;
** ASMA044E Undefined symbol
** ASMA057E Undefined operation code

IMPACT:
A new executable verion of the IMSHRINK program will not be created, and the linkedit step will be flushed, because of condition codes from the assembly step.

Solution:

CIRCUMVENTION/PROPER HANDLING:
Make all necessary libraries available that are needed for resolution of all macros, and external programs. Have them concatenated to the //SYSLIB DD statement.

PROBLEM RESOLUTION:
The following is a sample template used to assemble IMSHRINK;

 //SYSLIB   DD  DISP=SHR,DSN=SYS1.MACLIB 
 //         DD  DISP=SHR,DSN=imsvs.genlib 
 //         DD  DISP=SHR,DSN=imsvs.genliba 
 //         DD  DISP=SHR,DSN=imsvs.genlibb 
 //         DD  DISP=SHR,DSN=user.shrink.ims.source

Review of this template may raise these questions;

  1. Should the Shrink source library be last in the concatenation? Yes, this is OK.

  2. What are the actually libraries used (i.e.. IMS Maclibs) The GEN libraries contain IMS macros.

  3. What is SYS1.MODGEN? Why is it needed to resolve IHACDE and IHAASXB. Is this a common shop name standard, like SYS1.MACLIB? MODGEN would be a SYS1.MACLIB with PTFs applied. It is common and the customer should know which is the best to use.

  4. Can a sample assembly be supplied, with the proper library allocations that resolve all IMSHRINK undefined references?
 //ASMIMS   PROC N=,IV= 
 //ASM      EXEC PGM=ASMA90, 
 //             REGION=6M, 
 //             PARM=('OBJECT,NODECK,NORLD', 
 //             'USING(MAP,WARN(11)),XREF(SHORT)') 
 //SYSLIB    DD  DISP=SHR,DSN=SYS1.MACLIB 
 //          DD  DISP=SHR,DSN=SYS1.MODGEN 
 //          DD  DISP=SHR,DSN=IMSSYS&IV..SDFSMAC 
 //          DD  DISP=SHR,DSN=IDI.CMPRS.V532.IMSHRINK.SOURCE