z/OS Assembler - 1.2


Compatibility: v2 v3 Express
What's new? Release Notes
ID: com.castsoftware.asmzos

Description

The extension provides support for applications written using z/OS Assembler Languages.

Download and installation instructions

The extension will be automatically downloaded and installed when any of the file types listed below are delivered in the source code. It can be managed through the Application → Extensions interface.

Supported file types

Code type Supported file extension Required?
Assembler *.asm ✅
Assembler Macros *.asmacro, *.mlc ✅

Technology support

The extension analyzes Assembler source code written in the HLASM fixed format (columns 1 to 71, continuation in column 72). The following Assembler and operating system releases are covered:

Scope Assembler / OS releases Supported Comment
HLASM on z/OS HLASM R4–R6 on z/OS 1.1 to 3.2, including the z/Architecture instructions added by PTF up to z17 ✅
HLASM on OS/390 and MVS/ESA HLASM R1–R3 on MVS/ESA SP 4–5 and OS/390 1.x–2.10 ✅ Same language and OS macros as z/OS.
Assembler H V2 legacy source MVS/XA and MVS/ESA SP 3 (1983–1992) ✅ HLASM accepts Assembler H V2 source unchanged.
DOS/VSE line DOS/VS and DOS/VSE Assembler; HLASM on VSE/ESA, z/VSE 3.1–6.2 and VSEn 6.3 ⚠️ Programs, calls and SQL queries are analyzed, but VSE system macros (DTFxx, CDLOAD, GETVIS) and VSE JCL are not interpreted.
z/TPF (and TPF/ALCS) Assembler code using TPF macros (ENTRC, FINDC and similar) ❌ TPF macros are not interpreted.

Transactions

Transaction support is derived from metamodel concepts used to build CAST Imaging Blueprint and structural transaction flows. Entry Points start transactions; Exit Points include both output/boundary concepts and Data Entities manipulated by transactions.

Role Support Breakdown
Entry Point No direct concept type details
Exit Point
  • Run Service
  • Procedure
Unresolved Storage
  • Data Query
Data Entities
  • SQL Table - Unresolved

Data version: 1.1.0-funcrel

ISO 5055 Structural Rules

Quality support is based on ISO 5055 structural rules available for the selected extension version.

Reliability Maintainability Security Performance Efficiency

Data version: 1.1.0-funcrel

What results can you expect?

The Analysis Results pages give a small example of source code for each object and link listed in the Objects tables and the Links section below, where each link is illustrated and points to its example:

Calls between Assembler programs and to other programs

Links between Assembler Program objects and the programs they call. A call to an Assembler program of the same analysis is linked directly to that Assembler Program object. A call to any other program goes to a z/OS Assembler Call to Generic Program object, which Universal Linker then links to the program of that name: an Assembler program of another analysis unit, or a program written in another language such as COBOL or PL/I.

For example, the following file ASMMAIN.asm is analyzed with the Assembler program ASMUTIL, the COBOL program COBPGM1 and the PL/I program PLIPGM1. NOPGM is not part of the analysis:

*---------------------------------------------------------------------*
* ASMMAIN: entry program, calls one program of each kind              *
*   ASMUTIL  Assembler     -> called directly (same analysis)         *
*   COBPGM1  COBOL         -> resolved cross-technology               *
*   PLIPGM1  PL/I          -> resolved cross-technology               *
*   NOPGM    not delivered -> unresolved                              *
*---------------------------------------------------------------------*
ASMMAIN  CSECT
         STM   14,12,12(13)
         LR    12,15
         USING ASMMAIN,12
         CALL  ASMUTIL
         CALL  COBPGM1
         CALL  PLIPGM1
         CALL  NOPGM
         L     13,4(13)
         LM    14,12,12(13)
         BR    14
         END
  • ASMMAIN calls ASMUTIL directly, since ASMUTIL is an Assembler program of the same analysis.
  • ASMMAIN calls the z/OS Assembler Call to Generic Program objects COBPGM1, PLIPGM1 and NOPGM. Universal Linker links COBPGM1 to the COBOL program and PLIPGM1 to the PL/I main procedure of that name. NOPGM stays unresolved.

In CAST Imaging, a z/OS Assembler Call to Generic Program object that is linked to a called program may be merged with that program, so ASMMAIN is shown as calling COBPGM1 and PLIPGM1 directly:

asm_to_programs.png

An unresolved z/OS Assembler Call to Generic Program object, such as NOPGM, is shown as its own object:

asm_to_unresolved.png

Calls from COBOL and PL/I programs to Assembler programs

Links from programs of other languages to Assembler Program objects. The analyzer of the calling program cannot resolve a call to an Assembler program, so it links the calling program to an object for the unresolved program: a COBOL program prototype for the Mainframe Analyzer, a PLI Missing Program for the PL/1 Analyzer. Universal Linker then links that object to the Assembler program of that name.

In the sample above, COBPGM1.cbl calls ASMUTIL with a CALL statement:

       IDENTIFICATION DIVISION.
       PROGRAM-ID. COBPGM1.
      *    CALLED BY ASMMAIN, CALLS THE ASSEMBLER PROGRAM ASMUTIL
       PROCEDURE DIVISION.
           CALL 'ASMUTIL'.
           GOBACK.

and PLIPGM1.pli calls ASMUTIL, declared as an Assembler entry:

 /* CALLED BY ASMMAIN, CALLS THE ASSEMBLER PROGRAM ASMUTIL */
 PLIPGM1: PROCEDURE OPTIONS(MAIN);
    DCL ASMUTIL ENTRY OPTIONS(ASM);
    CALL ASMUTIL;
 END PLIPGM1;

In the first image above, CAST Imaging merges the COBOL program prototype and the PLI Missing Program with ASMUTIL, so COBPGM1 and PLIPGM1 are shown as calling ASMUTIL directly.

Assembler programs loaded with EXEC CICS LOAD PROGRAM

The same applies to a program loaded with EXEC CICS LOAD PROGRAM. Here the COBOL program prototype ASMLOAD is shown between the COBOL program and the Assembler program:

cobol_to_asm.png

The above result is produced from the following COBOL program COBCICS.cbl, analyzed with the Assembler program ASMLOAD:

       IDENTIFICATION DIVISION.
       PROGRAM-ID. COBCICS.
      *    CICS PROGRAM LOADING THE ASSEMBLER PROGRAM ASMLOAD
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  WS-PTR                  USAGE POINTER.
       PROCEDURE DIVISION.
           EXEC CICS LOAD PROGRAM('ASMLOAD') SET(WS-PTR) END-EXEC.
           EXEC CICS RETURN END-EXEC.

SQL queries

Links between Assembler Program objects and SQL Query objects:

assembler_to_sql_query.svg

The above result is produced from the following code snippet (EXEC SQL statement) in the file SCLM501C.asm:

        ...
         EXEC SQL                                                      X        
               SELECT                                                  X        
               ORDR_ID,                                                X        
               COUNT(*)                                                X        
               INTO                                                    X        
               :DL51C001,                                              X        
               :DL51CF02                                               X        
               FROM LM_ELEC_PAYMNT_PLCY                                X        
               WHERE (                                                 X        
               ORDR_ID            = :DL51C001                          X        
                     )                                                 X        
               GROUP BY                                                X        
               ORDR_ID                                                          
         QDBXX5RE
         ...

Objects

z/OS Assembler objects

Type Object Name Creation rule
z/OS Assembler Program z/OS Assembler Program Created for each .asm, .mlc or .asmacro file whose content is a program, that is an END, CSECT, RSECT or START statement, whatever its extension. It is named after the file.
z/OS Assembler Macro z/OS Assembler Macro Created for each .asm, .mlc or .asmacro file whose content is a MACRO … MEND definition with no program statement, whatever its extension. It is named after the file.
AssemblerZOS_CopyMember z/OS Assembler Copy Member Created for each .asm, .mlc or .asmacro file holding Assembler statements but no program nor macro definition (DSECTs, DS, DC, EQU, code fragments), when a COPY statement of an analyzed file names it. It is named after the file.
z/OS Assembler Call to Generic Program z/OS Assembler Call to Generic Program Created once for each called program name that is not an Assembler program of the same analysis, from a CALL name, LOAD EP=name, LINK EP=name, XCTL EP=name, ATTACH EP=name, PROGRAM('name'), or EXEC CICS LINK, XCTL or LOAD PROGRAM(data area) statement. A PROGRAM(data area) names the program of its DC constant. It is shared by all callers, attached to the project, and resolved by Universal Linker.
z/OS Assembler SQL Query z/OS Assembler SQL Query Created for each EXEC SQL block of a program, or of a copy member used by a COPY statement, with or without END-EXEC.
Missing Schema Missing Schema Created by the SQL Analyzer extension as the parent of the missing tables and procedures, attached to the z/OS Assembler project.
Missing Table Missing Table Created by the SQL Analyzer extension when an Assembler SQL query uses a table or view that is not in the analyzed database.
Missing Procedure Missing Procedure Created by the SQL Analyzer extension when an Assembler SQL query calls a procedure or function that is not in the analyzed database.

z/OS Assembler EXEC CICS command objects

Type Object Name Creation rule
AssemblerZOS_CICS_WriteQ_TDQueue z/OS Assembler CICS Write TD Queue Created for each EXEC CICS WRITEQ TD QUEUE(name) command of a program, or of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. It is named after the queue. A temporary storage queue, without the TD option, creates none.
AssemblerZOS_CICS_ReadQ_TDQueue z/OS Assembler CICS Read TD Queue Created for each EXEC CICS READQ TD QUEUE(name) command of a program, or of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. It is named after the queue. A temporary storage queue, without the TD option, creates none.
AssemblerZOS_CICS_DeleteQ_TDQueue z/OS Assembler CICS Delete TD Queue Created for each EXEC CICS DELETEQ TD QUEUE(name) command of a program, or of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. It is named after the queue. A temporary storage queue, without the TD option, creates none.
AssemblerZOS_CICS_Read_Dataset z/OS Assembler CICS Read Dataset Created for each EXEC CICS READ FILE(name) (or DATASET(name)) command of a program, or of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. It is named after the file.
AssemblerZOS_CICS_Write_Dataset z/OS Assembler CICS Write Dataset Created for each EXEC CICS WRITE FILE(name) (or DATASET(name)) command of a program, or of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. It is named after the file.
AssemblerZOS_CICS_Rewrite_Dataset z/OS Assembler CICS Rewrite Dataset Created for each EXEC CICS REWRITE FILE(name) (or DATASET(name)) command of a program, or of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. It is named after the file.
AssemblerZOS_CICS_Delete_Dataset z/OS Assembler CICS Delete Dataset Created for each EXEC CICS DELETE FILE(name) (or DATASET(name)) command of a program, or of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. It is named after the file.
AssemblerZOS_CICS_Browse_Dataset z/OS Assembler CICS Browse Dataset Created for each EXEC CICS STARTBR, READNEXT or READPREV FILE(name) (or DATASET(name)) command of a program, or of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. It is named after the file.
AssemblerZOS_CICS_Start_Transaction z/OS Assembler CICS Start Transaction Created for each EXEC CICS START TRANSID(name) command of a program, or of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. It is named after the transaction.
AssemblerZOS_CICS_Return_Transaction z/OS Assembler CICS Return Transaction Created for each EXEC CICS RETURN TRANSID(name) command of a program, or of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. It is named after the transaction.
AssemblerZOS_CICS_Cancel_Transaction z/OS Assembler CICS Cancel Transaction Created for each EXEC CICS CANCEL TRANSID(name) command of a program, or of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. It is named after the transaction.
AssemblerZOS_CICS_Send_Map z/OS Assembler CICS Send Map Created for each EXEC CICS SEND MAP(name) command of a program, or of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. It is named after the map. It keeps the mapset of its MAPSET option, or the map name when the command has none, which is what CICS assumes.
AssemblerZOS_CICS_Receive_Map z/OS Assembler CICS Receive Map Created for each EXEC CICS RECEIVE MAP(name) command of a program, or of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. It is named after the map. It keeps the mapset of its MAPSET option, or the map name when the command has none, which is what CICS assumes.
z/OS Assembler Program → z/OS Assembler Program (CALL)

asm_assemblerzos_program_call_assemblerzos_program.svg

Created when a program contains a CALL name, LOAD EP=name, LINK EP=name, XCTL EP=name, ATTACH EP=name, PROGRAM('name'), or EXEC CICS LINK, XCTL or LOAD PROGRAM(data area) statement naming an Assembler program of the same analysis (case-insensitive), or a COPY statement naming a program file. Example: LOAD EP=.

z/OS Assembler Program → z/OS Assembler Call to Generic Program (CALL)

asm_assemblerzos_program_call_assemblerzos_callto_program.svg

Created when a program contains a CALL name, LOAD EP=name, LINK EP=name, XCTL EP=name, ATTACH EP=name, PROGRAM('name'), or EXEC CICS LINK, XCTL or LOAD PROGRAM(data area) statement naming a program that is not an Assembler program of the same analysis. Example: Calls to a program of another language or analysis unit.

z/OS Assembler Program → z/OS Assembler Macro (CALL)

asm_assemblerzos_program_call_assemblerzos_asm_macro.svg

Created when a statement of a program uses as operation code the name of a macro file of the same analysis (case-insensitive), or when a COPY statement of the program names a macro file. Example: Macro invocations.

z/OS Assembler Program → z/OS Assembler Copy Member (CALL)

asm_assemblerzos_program_call_assemblerzos_copymember.svg

Created when a program contains a COPY statement naming a copy member file of the same analysis (case-insensitive). A member found in two libraries is linked twice. Example: Copy members.

z/OS Assembler Program → z/OS Assembler SQL Query (CALL)

asm_assemblerzos_program_call_assemblerzos_sqlquery.svg

Created for each EXEC SQL block of a program, with or without END-EXEC. Example: With END-EXEC.

z/OS Assembler Macro → z/OS Assembler Program (CALL)

asm_assemblerzos_asm_macro_call_assemblerzos_program.svg

Created when a macro file contains a CALL name, LOAD EP=name, LINK EP=name, XCTL EP=name, ATTACH EP=name, PROGRAM('name'), or EXEC CICS LINK, XCTL or LOAD PROGRAM(data area) statement naming an Assembler program of the same analysis (case-insensitive), or a COPY statement naming a program file. Example: Calls from a macro.

z/OS Assembler Macro → z/OS Assembler Call to Generic Program (CALL)

asm_assemblerzos_asm_macro_call_assemblerzos_callto_program.svg

Created when a macro file contains a CALL name, LOAD EP=name, LINK EP=name, XCTL EP=name, ATTACH EP=name, PROGRAM('name'), or EXEC CICS LINK, XCTL or LOAD PROGRAM(data area) statement naming a program that is not an Assembler program of the same analysis. Example: Calls from a macro.

z/OS Assembler Macro → z/OS Assembler Macro (CALL)

asm_assemblerzos_asm_macro_call_assemblerzos_asm_macro.svg

Created when a macro file contains a COPY statement naming a macro file of the same analysis (case-insensitive). Example: Calls from a macro.

z/OS Assembler Macro → z/OS Assembler Copy Member (CALL)

asm_assemblerzos_asm_macro_call_assemblerzos_copymember.svg

Created when a macro file contains a COPY statement naming a copy member file of the same analysis (case-insensitive). Example: COPY in a macro.

z/OS Assembler Copy Member → z/OS Assembler Program (CALL)

asm_assemblerzos_copymember_call_assemblerzos_program.svg

Created when a copy member used by a COPY statement contains a CALL name, LOAD EP=name, LINK EP=name, XCTL EP=name, ATTACH EP=name, PROGRAM('name'), or EXEC CICS LINK, XCTL or LOAD PROGRAM(data area) statement naming an Assembler program of the same analysis (case-insensitive), or a COPY statement naming a program file. Example: Links from the code of a copy member.

z/OS Assembler Copy Member → z/OS Assembler Call to Generic Program (CALL)

asm_assemblerzos_copymember_call_assemblerzos_callto_program.svg

Created when a copy member used by a COPY statement contains a CALL name, LOAD EP=name, LINK EP=name, XCTL EP=name, ATTACH EP=name, PROGRAM('name'), or EXEC CICS LINK, XCTL or LOAD PROGRAM(data area) statement naming a program that is not an Assembler program of the same analysis. Example: Links from the code of a copy member.

z/OS Assembler Copy Member → z/OS Assembler Macro (CALL)

asm_assemblerzos_copymember_call_assemblerzos_asm_macro.svg

Created when a statement of a copy member used by a COPY statement has as operation code the name of a macro file of the same analysis (case-insensitive), or when its own COPY statement names a macro file. Example: Links from the code of a copy member.

z/OS Assembler Copy Member → z/OS Assembler Copy Member (CALL)

asm_assemblerzos_copymember_call_assemblerzos_copymember.svg

Created when a copy member used by a COPY statement contains a COPY statement naming another copy member file of the same analysis (case-insensitive), level by level. Example: Nested copy members.

z/OS Assembler Copy Member → z/OS Assembler SQL Query (CALL)

asm_assemblerzos_copymember_call_assemblerzos_sqlquery.svg

Created for each EXEC SQL block of a copy member used by a COPY statement, with or without END-EXEC. Example: Links from the code of a copy member.

These links are not created by this extension itself: Universal Linker, one of its dependencies, creates them by matching the name of each called program, ignoring case, with the programs of the application.

z/OS Assembler Call to Generic Program → Cobol Program (CALL)

asm_assemblerzos_callto_program_call_cast_cobol_savedprogram.svg

Created by Universal Linker when the called program has the name of a COBOL program analyzed by the Mainframe Analyzer extension. Example: Calls to COBOL, PL/I and other Assembler programs.

z/OS Assembler Call to Generic Program → PLI MainProcedure (CALL)

asm_assemblerzos_callto_program_call_plimainprocedure.svg

Created by Universal Linker when the called program has the name of a PL/I main procedure analyzed by the PL/1 extension. Example: Calls to COBOL, PL/I and other Assembler programs.

z/OS Assembler Call to Generic Program → z/OS Assembler Program (CALL)

asm_assemblerzos_callto_program_call_assemblerzos_program.svg

Created by Universal Linker when the called program has the name of an Assembler program of another analysis unit. Example: Calls to COBOL, PL/I and other Assembler programs.

Cobol Program → z/OS Assembler Program (CALL)

asm_cast_cobol_programprototype_call_assemblerzos_program.svg

Created by Universal Linker when a COBOL program that the Mainframe Analyzer extension could not resolve, for example the target of a CALL or of an EXEC CICS LOAD PROGRAM(...), has the name of an Assembler program. Example: Calls from COBOL and PL/I programs to Assembler programs.

PLI Missing Program → z/OS Assembler Program (CALL)

asm_plimissingprogram_call_assemblerzos_program.svg

Created by Universal Linker when a program that the PL/1 extension could not resolve, for example the target of a CALL to an entry declared with OPTIONS(ASM), has the name of an Assembler program. Example: Calls from COBOL and PL/I programs to Assembler programs.

z/OS Assembler SQL Query → Missing Table (USE SELECT)

asm_assemblerzos_sqlquery_useselect_assemblerzos_missingtable_table.svg

Created by the SQL Analyzer extension when the query selects from a table that is not in the analyzed database. Example: Missing tables and procedures.

z/OS Assembler SQL Query → Missing Table (USE INSERT)

asm_assemblerzos_sqlquery_useinsert_assemblerzos_missingtable_table.svg

Created by the SQL Analyzer extension when the query inserts into a table that is not in the analyzed database. Example: Missing tables and procedures.

z/OS Assembler SQL Query → Missing Table (USE UPDATE)

asm_assemblerzos_sqlquery_useupdate_assemblerzos_missingtable_table.svg

Created by the SQL Analyzer extension when the query updates a table that is not in the analyzed database. Example: Missing tables and procedures.

z/OS Assembler SQL Query → Missing Table (USE DELETE)

asm_assemblerzos_sqlquery_usedelete_assemblerzos_missingtable_table.svg

Created by the SQL Analyzer extension when the query deletes from a table that is not in the analyzed database. Example: Missing tables and procedures.

z/OS Assembler SQL Query → Missing Procedure (CALL)

asm_assemblerzos_sqlquery_call_assemblerzos_missingtable_procedure.svg

Created by the SQL Analyzer extension when the query calls a procedure or function that is not in the analyzed database. Example: Missing tables and procedures.

z/OS Assembler Program → z/OS Assembler CICS Write TD Queue (CALL)

asm_assemblerzos_program_call_assemblerzos_cics_writeq_tdqueue.svg

Created for each EXEC CICS WRITEQ TD QUEUE(name) command of the program, when the name is a literal or the DC constant of a data area of the source. Example: TD queue commands.

z/OS Assembler Copy Member → z/OS Assembler CICS Write TD Queue (CALL)

asm_assemblerzos_copymember_call_assemblerzos_cics_writeq_tdqueue.svg

Created for each EXEC CICS WRITEQ TD QUEUE(name) command of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. Example: Data area of the program that copies the copy member.

z/OS Assembler Program → z/OS Assembler CICS Read TD Queue (CALL)

asm_assemblerzos_program_call_assemblerzos_cics_readq_tdqueue.svg

Created for each EXEC CICS READQ TD QUEUE(name) command of the program, when the name is a literal or the DC constant of a data area of the source. Example: TD queue commands.

z/OS Assembler Copy Member → z/OS Assembler CICS Read TD Queue (CALL)

asm_assemblerzos_copymember_call_assemblerzos_cics_readq_tdqueue.svg

Created for each EXEC CICS READQ TD QUEUE(name) command of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. Example: Commands of a copy member.

z/OS Assembler Program → z/OS Assembler CICS Delete TD Queue (CALL)

asm_assemblerzos_program_call_assemblerzos_cics_deleteq_tdqueue.svg

Created for each EXEC CICS DELETEQ TD QUEUE(name) command of the program, when the name is a literal or the DC constant of a data area of the source. Example: TD queue commands.

z/OS Assembler Copy Member → z/OS Assembler CICS Delete TD Queue (CALL)

asm_assemblerzos_copymember_call_assemblerzos_cics_deleteq_tdqueue.svg

Created for each EXEC CICS DELETEQ TD QUEUE(name) command of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. Example: Commands of a copy member.

z/OS Assembler Program → z/OS Assembler CICS Read Dataset (CALL)

asm_assemblerzos_program_call_assemblerzos_cics_read_dataset.svg

Created for each EXEC CICS READ FILE(name) (or DATASET(name)) command of the program, when the name is a literal or the DC constant of a data area of the source. Example: File commands.

z/OS Assembler Copy Member → z/OS Assembler CICS Read Dataset (CALL)

asm_assemblerzos_copymember_call_assemblerzos_cics_read_dataset.svg

Created for each EXEC CICS READ FILE(name) (or DATASET(name)) command of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. Example: Commands of a copy member.

z/OS Assembler Program → z/OS Assembler CICS Write Dataset (CALL)

asm_assemblerzos_program_call_assemblerzos_cics_write_dataset.svg

Created for each EXEC CICS WRITE FILE(name) (or DATASET(name)) command of the program, when the name is a literal or the DC constant of a data area of the source. Example: File commands.

z/OS Assembler Copy Member → z/OS Assembler CICS Write Dataset (CALL)

asm_assemblerzos_copymember_call_assemblerzos_cics_write_dataset.svg

Created for each EXEC CICS WRITE FILE(name) (or DATASET(name)) command of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. Example: Commands of a copy member.

z/OS Assembler Program → z/OS Assembler CICS Rewrite Dataset (CALL)

asm_assemblerzos_program_call_assemblerzos_cics_rewrite_dataset.svg

Created for each EXEC CICS REWRITE FILE(name) (or DATASET(name)) command of the program, when the name is a literal or the DC constant of a data area of the source. Example: File commands.

z/OS Assembler Copy Member → z/OS Assembler CICS Rewrite Dataset (CALL)

asm_assemblerzos_copymember_call_assemblerzos_cics_rewrite_dataset.svg

Created for each EXEC CICS REWRITE FILE(name) (or DATASET(name)) command of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. Example: Commands of a copy member.

z/OS Assembler Program → z/OS Assembler CICS Delete Dataset (CALL)

asm_assemblerzos_program_call_assemblerzos_cics_delete_dataset.svg

Created for each EXEC CICS DELETE FILE(name) (or DATASET(name)) command of the program, when the name is a literal or the DC constant of a data area of the source. Example: File commands.

z/OS Assembler Copy Member → z/OS Assembler CICS Delete Dataset (CALL)

asm_assemblerzos_copymember_call_assemblerzos_cics_delete_dataset.svg

Created for each EXEC CICS DELETE FILE(name) (or DATASET(name)) command of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. Example: Commands of a copy member.

z/OS Assembler Program → z/OS Assembler CICS Browse Dataset (CALL)

asm_assemblerzos_program_call_assemblerzos_cics_browse_dataset.svg

Created for each EXEC CICS STARTBR, READNEXT or READPREV FILE(name) (or DATASET(name)) command of the program, when the name is a literal or the DC constant of a data area of the source. Example: File commands.

z/OS Assembler Copy Member → z/OS Assembler CICS Browse Dataset (CALL)

asm_assemblerzos_copymember_call_assemblerzos_cics_browse_dataset.svg

Created for each EXEC CICS STARTBR, READNEXT or READPREV FILE(name) (or DATASET(name)) command of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. Example: Commands of a copy member.

z/OS Assembler Program → z/OS Assembler CICS Start Transaction (CALL)

asm_assemblerzos_program_call_assemblerzos_cics_start_transaction.svg

Created for each EXEC CICS START TRANSID(name) command of the program, when the name is a literal or the DC constant of a data area of the source. Example: Transaction commands.

z/OS Assembler Copy Member → z/OS Assembler CICS Start Transaction (CALL)

asm_assemblerzos_copymember_call_assemblerzos_cics_start_transaction.svg

Created for each EXEC CICS START TRANSID(name) command of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. Example: Commands of a copy member.

z/OS Assembler Program → z/OS Assembler CICS Return Transaction (CALL)

asm_assemblerzos_program_call_assemblerzos_cics_return_transaction.svg

Created for each EXEC CICS RETURN TRANSID(name) command of the program, when the name is a literal or the DC constant of a data area of the source. Example: Transaction commands.

z/OS Assembler Copy Member → z/OS Assembler CICS Return Transaction (CALL)

asm_assemblerzos_copymember_call_assemblerzos_cics_return_transaction.svg

Created for each EXEC CICS RETURN TRANSID(name) command of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. Example: Commands of a copy member.

z/OS Assembler Program → z/OS Assembler CICS Cancel Transaction (CALL)

asm_assemblerzos_program_call_assemblerzos_cics_cancel_transaction.svg

Created for each EXEC CICS CANCEL TRANSID(name) command of the program, when the name is a literal or the DC constant of a data area of the source. Example: Transaction commands.

z/OS Assembler Copy Member → z/OS Assembler CICS Cancel Transaction (CALL)

asm_assemblerzos_copymember_call_assemblerzos_cics_cancel_transaction.svg

Created for each EXEC CICS CANCEL TRANSID(name) command of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. Example: Commands of a copy member.

z/OS Assembler Program → z/OS Assembler CICS Send Map (CALL)

asm_assemblerzos_program_call_assemblerzos_cics_send_map.svg

Created for each EXEC CICS SEND MAP(name) command of the program, when the name is a literal or the DC constant of a data area of the source. Example: Map commands.

z/OS Assembler Copy Member → z/OS Assembler CICS Send Map (CALL)

asm_assemblerzos_copymember_call_assemblerzos_cics_send_map.svg

Created for each EXEC CICS SEND MAP(name) command of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. Example: Commands of a copy member.

z/OS Assembler Program → z/OS Assembler CICS Receive Map (CALL)

asm_assemblerzos_program_call_assemblerzos_cics_receive_map.svg

Created for each EXEC CICS RECEIVE MAP(name) command of the program, when the name is a literal or the DC constant of a data area of the source. Example: Map commands.

z/OS Assembler Copy Member → z/OS Assembler CICS Receive Map (CALL)

asm_assemblerzos_copymember_call_assemblerzos_cics_receive_map.svg

Created for each EXEC CICS RECEIVE MAP(name) command of a copy member used by a COPY statement, when the name is a literal or the DC constant of a data area of the source. Example: Commands of a copy member.

These links are not created by this extension itself: Universal Linker, one of its dependencies, creates them by matching the name of each command, case-sensitively, with the CICS resources of the application.

z/OS Assembler CICS Write TD Queue → CICS Transient Data (ACCESS WRITE)

asm_assemblerzos_cics_writeq_tdqueue_accesswrite_cics_tdqueue.svg

Created by Universal Linker when its queue name is the name of a CICS transient data queue (case-sensitive) of the CICS resources analyzed by the Mainframe Analyzer extension. Example: Links to the CICS resources.

z/OS Assembler CICS Read TD Queue → CICS Transient Data (ACCESS READ)

asm_assemblerzos_cics_readq_tdqueue_accessread_cics_tdqueue.svg

Created by Universal Linker when its queue name is the name of a CICS transient data queue (case-sensitive) of the CICS resources analyzed by the Mainframe Analyzer extension. Example: Links to the CICS resources.

z/OS Assembler CICS Delete TD Queue → CICS Transient Data (ACCESS WRITE)

asm_assemblerzos_cics_deleteq_tdqueue_accesswrite_cics_tdqueue.svg

Created by Universal Linker when its queue name is the name of a CICS transient data queue (case-sensitive) of the CICS resources analyzed by the Mainframe Analyzer extension. Example: Links to the CICS resources.

z/OS Assembler CICS Read Dataset → CICS DataSet (ACCESS READ)

asm_assemblerzos_cics_read_dataset_accessread_cics_dataset.svg

Created by Universal Linker when its file name is the name of a CICS file (case-sensitive) of the CICS resources analyzed by the Mainframe Analyzer extension. Example: Links to the CICS resources.

z/OS Assembler CICS Write Dataset → CICS DataSet (ACCESS WRITE)

asm_assemblerzos_cics_write_dataset_accesswrite_cics_dataset.svg

Created by Universal Linker when its file name is the name of a CICS file (case-sensitive) of the CICS resources analyzed by the Mainframe Analyzer extension. Example: Links to the CICS resources.

z/OS Assembler CICS Rewrite Dataset → CICS DataSet (ACCESS WRITE)

asm_assemblerzos_cics_rewrite_dataset_accesswrite_cics_dataset.svg

Created by Universal Linker when its file name is the name of a CICS file (case-sensitive) of the CICS resources analyzed by the Mainframe Analyzer extension. Example: Links to the CICS resources.

z/OS Assembler CICS Delete Dataset → CICS DataSet (ACCESS WRITE)

asm_assemblerzos_cics_delete_dataset_accesswrite_cics_dataset.svg

Created by Universal Linker when its file name is the name of a CICS file (case-sensitive) of the CICS resources analyzed by the Mainframe Analyzer extension. Example: Links to the CICS resources.

z/OS Assembler CICS Browse Dataset → CICS DataSet (ACCESS READ)

asm_assemblerzos_cics_browse_dataset_accessread_cics_dataset.svg

Created by Universal Linker when its file name is the name of a CICS file (case-sensitive) of the CICS resources analyzed by the Mainframe Analyzer extension. Example: Links to the CICS resources.

z/OS Assembler CICS Start Transaction → CICS Transaction (CALL)

asm_assemblerzos_cics_start_transaction_call_cics_transaction.svg

Created by Universal Linker when its transaction name is the name of a CICS transaction (case-sensitive) of the CICS resources analyzed by the Mainframe Analyzer extension. Example: Links to the CICS resources.

z/OS Assembler CICS Return Transaction → CICS Transaction (CALL)

asm_assemblerzos_cics_return_transaction_call_cics_transaction.svg

Created by Universal Linker when its transaction name is the name of a CICS transaction (case-sensitive) of the CICS resources analyzed by the Mainframe Analyzer extension. Example: Links to the CICS resources.

z/OS Assembler CICS Cancel Transaction → CICS Transaction (CALL)

asm_assemblerzos_cics_cancel_transaction_call_cics_transaction.svg

Created by Universal Linker when its transaction name is the name of a CICS transaction (case-sensitive) of the CICS resources analyzed by the Mainframe Analyzer extension. Example: Links to the CICS resources.

z/OS Assembler CICS Send Map → CICS Map (ACCESS WRITE)

asm_assemblerzos_cics_send_map_accesswrite_cics_map.svg

Created by Universal Linker when its map name and mapset match a CICS map (case-sensitive) of the CICS resources analyzed by the Mainframe Analyzer extension. Example: Links to the CICS resources.

z/OS Assembler CICS Receive Map → CICS Map (ACCESS READ)

asm_assemblerzos_cics_receive_map_accessread_cics_map.svg

Created by Universal Linker when its map name and mapset match a CICS map (case-sensitive) of the CICS resources analyzed by the Mainframe Analyzer extension. Example: Links to the CICS resources.

Quality rules

Known limitations

  • Program calls:
    • Dynamic calls are not resolved: CALL (15) and other calls through a register or a variable, the list form CALL ,...,MF=L, a LOAD, LINK, XCTL or ATTACH with EP=&NAME, EPLOC= or DE=, and an EXEC CICS LINK, XCTL or LOAD PROGRAM(data area) whose data area has no DC constant.
    • An Assembler program is named after its file. A call to a CSECT or ENTRY name that differs from the file name is not resolved to that program.
  • IMS/DB: calls to CBLTDLI, ASMTDLI or AIBTDLI are handled as calls to a program of that name. EXEC DLI statements are not analyzed, and no link to IMS PCBs, PSBs or segments is created.
  • CICS:
    • TS queues are not resolved: a WRITEQ, READQ or DELETEQ command without the TD option creates nothing, nor does a RETURN without TRANSID.
    • A resource named by a data area without a DC constant, or set at run time, is not resolved (warning ASMZOS-005).
  • Files: no object or link is created for VSAM, QSAM or sequential file accesses (DCB, ACB, OPEN, GET, PUT and similar).
  • Macros:
    • Macros are not expanded.
    • In a macro definition file, macro invocations, EXEC SQL and EXEC CICS commands are not analyzed: their names are only known when the macro is expanded.
    • A system macro or a COPY member whose source is not delivered produces no object.
  • SQL: an EXEC SQL statement must be written in uppercase and must not have a label. A dynamic SQL statement (PREPARE, EXECUTE IMMEDIATE with a host variable) produces an SQL Query object without links to tables.