PreviousPL/I Extension Extension Support MatrixNext

Chapter 25: Unisys Extension

25.1 Introduction

The Revolve Unisys Extension™ introduces a Unisys language parser that identifies individual components of an application system (such as programs and associated include files, ecl, dms) and adds them to the Revolve project database.

25.2 Unisys Support

The following specifications define the scope of Unisys support:

Unisys 1100/2200 Series Support


ACOB (or ASCII COBOL) - This is the Sperry Univac series 1100 American National Standard COBOL (ASCII) Level 7R1A [ANSI74]

UCOB (Also known as NPE COBOL); this is an implementation of ANSI85 COBOL. It also supports most of the Unisys extensions supported by ACOB.

DMS (Database Access)

Sperry Univac 1100 Series DMS 1100 COBOL (ASCII) DML13R4

1000 Series RDMS

Embedded SQL will be supported to the current MVS DB2 level.

ECL (Job Control)

Unisys OS1100 Exec System Software Executive Control Language (ECL) SB4R1

Unisys A Series


COBOL ANSI-74 Release 3.9.0

25.2.1 Unisys Library Files

Within the Unisys COBOL context, the COPY statement is used to copy a segment out of a Library (.ULB) file which can contain one or more named segments of COBOL. Revolve enables access to specific named segments within the Library file (.ULB). When accessed by the COPY statement the library files have the following form:


The previous section of code will be "pulled into" the COBOL program which has the COPY NAMEOFSEG line.

25.2.2 Unisys INVOKES

Revolve interprets DMS INVOKE statements in a way that pulls in segments of Library files (.ULB) with matching SCHEMA and SUBSCHEMA . For example, the Invoke statement...


...will pull in all segments from the Library file as illustrated below:

The following is source for ABCIDH.CBL
COBOL code from segment 1 of IDH-R$IDHABCD-R$R$0001 PROC
COBOL code from segment 2 of IDH-R$IDHABCD-R$R$0002 PROC
Continuance of source for ABCIDH.CBL

The Library file had two segments that matched the SUBSCHEMA of the INVOKE statement, so both were inserted into the appropriate location.

25.2.3 Unisys File Access

File access for the Unisys extension is limited to local and networked PC drives. Mainframe connectivity is not supported.

25.2.4 DMS Information Browser

The DMS Information Browser, accessible from the Browsers menu, supports:

25.2.5 DMS General Data Structure Principles

On a Unisys mainframe when processing ACOB(ANSI 74) Cobol code there is a process whereby the Cobol program is brought together with a Unisys specific copybook format with a name starting S$ and put through a preprocessor to produce a standard Cobol program with DMS functionality embedded that is input to the compiler. This same principle applies for UCOB(ANSI 85).

The preprocessor on the mainframe is called the ASCII Data Manipulation Program(ADMLP).

Revolve will try to emulate some of the ADMLP functions in order to build a Cobol program that it can understand and analyze successfully.

The following assumptions apply to the Revolve functionality:



DMCA (Data Management Control Area)

This is a data are that is generated by the preprocessor based on the DDL used to define the Schema/Subschema. It is used to store response code information, status of functions, databases etc and for general communications between the program and the DMS system at execution time.

Data areas within the DMCA are used within the Procedure Division of the Cobol program , consequently Revolve will need access to it in order to be able to resolve data items and do analysis.

You need to supply a DMCA.CPY copybook. It is suggested that this is created by 'cutting' the code from a preprocessed main frame program. An example is supplied with the Unisys sample code.

25.2.6 DMS Procedure Commands

Procedure Division Commands

DMS Procedure Division commands can be separated into the following types:

The Unisys Extension supports RECORD oriented verbs. All others types of this command will be successfully parsed and highlighted as DMS commands. However, association with the appropriated data areas and scripts will not be supported.

AREA and RUN UNIT Oriented Commands

SET Oriented Commands




Distinction of the DMS IF from the Cobol IF will be on the basis of the following:



Distinction of the DMS MOVE from the Cobol MOVE will be on the basis of the following:


LOG will always be treated as a DMS command.

RECORD Oriented Commands

All RECORD oriented commands can have the following formats:

When the command uses the identifier-1 format, Revolve will make a 'best effort' to resolve these data items in use within the specific commands as much as possible, depending upon logic complexity.


FIND is a positioning command. It points the user to a particular point in the data. Revolve makes the association between the command and the data area that it is operating in within the appropriate data storage section. Other valid formats of the FIND command are:

Note: Revolve does not attempt to resolve the above format of the FIND command to a data area. All other occurrences are shown as DMS commands in the DMS Browser. Any association with record layouts is dependent on currency at these points and not resolvable in the Revolve static environment. All of the SET and AREA options are valid and identify all of the OWNER, CURRENT, etc. options.

Note: Revolve points the user to the record-name at the appropriate point in storage for the above command format. Or attempts to resolve the identifier to a specific storage area, as much as possible .

Note: Revolve associates the record-name or identifier (above) as much as possible with the appropriate data area.

Note:Revolve associates the record-name or identifier to the data area in a "best effort" to resolve them to a specific command.

Note: Revolve associates the record-name with the appropriate data storage field for the above format.


Fetch has the same valid formats as FIND and will be supported in the same way. FETCH has the equivalent functionality of a FIND and GET. It positions the user and retrieves the data into the appropriate area.


The STORE command writes the data within the database or creates a new occurrence of a record within a database for a specific key. Revolve's association of the record-name and identifier will be done as well as possible depending on logic complexity of the code.


The MODIFY command updates existing records in the database.


The DELETE command deletes the record within the database.


The KEEP command tells the run unit that the program will want to access this record again.

MODIFY, DELETE, and KEEP all have the same standard formats:

The identifier is interchangeable with the record-name.

25.2.7 ECL Information Browser

The ECL Information Browser functions in conjunction with the JCL Information Browser. The following are displayed in the ECL Information Browser:

Copyright © 1999 MERANT International Limited. All rights reserved.
This document and the proprietary marks and names used herein are protected by international law.
PreviousPL/I Extension Extension Support MatrixNext