Trailing-Edge
-
PDP-10 Archives
-
BB-Z759A-SM
-
documentation/cbl13.doc
There are no other files named cbl13.doc in the archive.
CBL13.DOC -- COBOL V13 Documentation
January 1984
COPYRIGHT (C) 1984 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
TRANSFERRED.
THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.
DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
COBOL V13 Documentation Page 2
CONTENT
1.0 SUMMARY
1.1 Bibliography
1.2 Required Software
2.0 EXTERNAL CHANGES AND OPTIONS
2.1 Compiler Names
2.2 Native Mode Compiler
2.3 Simulataneous Update for RMS Files
2.3.1 SMU Method 1
2.3.1.1 Strategy of SMU Method 1
2.3.1.2 New or Changed Syntax
2.3.2 Scope of SMU Method 2
2.3.2.1 New or Changed Syntax
2.3.2.2 I-O-CONTROL Paragraph
2.3.2.3 PROCEDURE DIVISION
2.3.2.4 OPEN Verb
2.3.2.5 Record Access Verbs
2.3.3 RMS-20 Locks Used by SMU Method 2
2.3.3.1 File Locks
2.3.3.2 Index Capability Lock
2.3.3.3 Data Locks
2.4 ANS-8x Syntax
2.5 ANS-8x Functionality Not in COBOL 13
2.6 Other Changes
2.7 Reserved Words
2.8 Report Writer
3.0 BUG FIXES
3.1 COBOL Bug Fixes Since COBOL V12B(1131)
3.2 COBOTS Bug Fixes Since OTS V12B(674)
3.3 CPYLIB Bug Fixes
3.4 ISAM Bug Fixes
3.5 COBDDT Bug Fixes
3.6 RERUN Bug FIxes
4.0 RESTRICTIONS and KNOWN PROBLEMS
4.1 Known Problems
4.2 Restrictions From COBOL V12
4.3 Restrictions From before COBOL V12
4.4 Simultaneous Update
5.0 INTALLATION INSTRUCTIONS
6.0 INTERNAL CHANGES
6.1 Miscellaneous Changes In V13
6.2 .KEY Files
7.0 RMS-20 Version 2
COBOL V13 Documentation Page 3
1.0 SUMMARY
The major changes between COBOL V12B and COBOL V13 are:
1. No support for COBOL-68
2. Native mode compiler
3. Full support for RMS files including Simultaneous Update
using RMS V2
4. Implementation of much of proposed ANS-8x standard of
September,1981
5. The Report Writer module has been brought up to full ANS-74
compliance
6. COBOL SORT uses stand-alone SORT in a non-zero section
7. RMS runs in a non-zero section
8. Bug fixes (see sec 3).
9. Other changes
COBOL version 13 consists of:
COBOL version 13(1515)
COBOTS-V13 version 13(1110)
COBDDT version 13(46)
ISAM version 13(211)
CPYLIB version 13(7)
RERUN version 13(7)
The above software will run on all supported TOPS-20 monitors for KL
Model B processors and has been tested under TOPS-20 release 5.1.
COBOL version 13 conforms to the full ANS highest level except for:
Communication module is not supported.
See section 4 for known restrictions.
See COBOL INSTALLATION GUIDE for configuration switch setting and
compatibility issues.
1.1 Bibliography
COBOL Language Manual AA-5059B-TK
COBOL Installation Guide (COBOL.INS)
CBL13.DOC AND SRT5.DOC
American National Standard Programming Language COBOL (CBEMA/X3
Secretariat Staff, 1828 L St., N. W., Wash, D.C. 20036)
COBOL V13 Documentation Page 4
1.2 Required Software
The following software or later is required to build COBOL V13.
Name Version
---- -------
MACRO 53.2(1231)
LINK 5.1(2041)
MAKLIB 2.3(112)
MACREL Release 5
PA1050 5.1(635)
Note, this is the official Release 5.1 PA1050 plus all published
patches. It is required to run COBOL 13 programs. Although it
is not actually required to build COBOL we recommend that this
version replace the official release 5.1 version. Please refer
to the field test booklet for more information.
COBOL V13 Documentation Page 5
EXTERNAL CHANGES and OPTIONS
2.0 EXTERNAL Changes AND Options
2.1 Compiler Names
There is a long term desire to give the major compiler the most
obvious name. That is, the future COBOL compiler should be
called COBOL. Currently this is not the case. The old COBOL-68
compiler is called COBOL and the current COBOL-74 compiler is
called CBL74. This was appropriate when all our customers were
COBOL-68 and COBOL-74 was new. The compiler naming was done
primarily to obtain government certification. Now that most of
our customers have converted to COBOL-74, we have dropped
development of COBOL-68, and will move to COBOL-8x eventually.
The following steps should be performed to make all three
compilers available on a system:
1. Rename the current COBOL-68 compiler to CBL68.EXE, leave the
OTS and rel file called LIBO12.EXE and LIBOL.REL.
2. Leave the COBOL-74 compiler, OTS, and rel files as they are.
3. Call the new compiler COBOL.EXE, the OTS COBOTS-V13.EXE, the
rel file COBLIB.REL. (This is how it is distributed.)
Make the following changes to source file extensions to enable
EXEC class commands (COMPILE, EXECUTE, LOAD, DEBUG) to work as
expected:
1. Change the extension of COBOL-68 programs to .C68 which will
invoke CBL68.
2. Change the extension of COBOL-74 programs to .C74 which will
invoke CBL74.
3. Change the extension of COBOL-74 programs to be run with the
V13 compiler to .CBL which will invoke with new V13 COBOL.
The effect of this is:
1. Customers who wish to run COBOL-68 need to do nothing. Keep
the old compiler called COBOL and everything will work.
2. Those who wish to run both COBOL-68 and the new COBOL must
rename all their -68 source programs to have extension .C68
and they all will work.
3. Those who wish to run the existing COBOL-74 compiler as well
as the new 8x compiler will have to rename the -74 source
programs or use a switch to COMPIL or EXEC. Note that
COBOL-74 version 12B will not be supported 3 months after
version 13 is shipped.
COBOL V13 Documentation Page 6
EXTERNAL CHANGES and OPTIONS
2.2 Native Mode Compiler
The COBOL compiler has been fully nativized. The most visible
results are:
1. PA1050 is no longer used for the compiler, but required for
the OTS.
2. All the temp files have the ;T attribute.
3. The command scanner was replaced by a modified version of the
new Fortran V7 command scanner to allow the use of similar
commands and long file names on source files.
The native mode switches are:
1. /ABORT, /NOABORT
2. /ANSI-FORMAT
Assume the source file is ANSI format with sequence numbers
in columns 1-6 and comments starting in column 73.
3. /BINARY, /NOBINARY
4. /C74
Use COBOL-74 standard for the incompatibilities in the
compiler and OTS.
5. /C8
Use COBOL-8x standard for the incompatibilities in the
compiler and OTS.
6. /CREF, /CROSS-REFERENCE, /CROSSREFERENCE, /NOCREF, /NOCROSS
Create a cross-referenced listing.
7. /DEBUG
Generate code for all DEBUG lines (those with D in column 7)
that otherwise would be treated as comments.
8. /DISPLAY:{6|7|9}
Default display mode either DISPLAY-6, DISPLAY-7, or
DISPLAY-9.
9. /ECHO-OPTION
10. /ERRORS, /NOERRORS
11. /FLAG-ALLBUT:{DBMS
/FLAG-IF : HIGH
HIGH-INTERMEDIATE
LOW
LOW-INTERMEDIATE
NON-STANDARD
REPORT-WRITER}
COBOL V13 Documentation Page 7
EXTERNAL CHANGES and OPTIONS
This is the FIPS flagger.
12. /KILL:{A|B|C|D|E|F|G}
Crash the compiler and dump the internal tables at the end of
the specified compiler phase. Needs the DEBUG feature test
turned on in the compiler.
13. /LIBRARY
14. /LISTING
15. /MACRO, /MACHINE-CODE
Include the machine code generated in the list file.
16. /MAIN-PROGRAM
Force the output of a start address in spite of the presence
of subprogram syntax.
17. /MAP
18. /NODEBUG
Treat all DEBUG lines (those with D in column 7) as comments.
19. /OBJECT
20. /ONE-SEGMENT
Produce a one-segment object program with a shareable OTS.
This is required for Link overlays.
21. /OPTIMIZE
Pass the object code through the peep-hole optimizer.
22. /OPTION:user-option-name
Allows a user to specify one of a series of COBOL entries in
a SWITCH.INI file for defaulting to different compile-time
switches.
23. /PRODUCTION-MODE
Omit debugging code from the object file.
24. /QUICK-MODE
Turn on /OPTIMIZE and /PRODUCTION-MODE. Do not range check
performs.
25. /RANGE:
Gives the range of line numbers to use for the /TRACE switch.
Needs the Debug feature test switch on in the compiler.
26. /STACK:{octal number}
Specifies the size of the run-time stack.
27. /SUBPROGRAM
Suppress output of start address. The program is to be used
only by CALL's.
COBOL V13 Documentation Page 8
EXTERNAL CHANGES and OPTIONS
28. /SYNTAX
Check program for errors, but do not generate code.
29. /TRACE:{ALL|DATA|ENVIRONMENT|IDENTIFICATION|PROCEDURE}
Produce a syntax tree trace of the requested division.
Needs the Debug feature test switch on in the compiler.
30. /TWO-SEGMENT
Produce a two-segment object program with a non-shareable
OTS. The high segment contains the procedure division and
most of the OTS; the low segment contains all else.
31. VERSION:{74|8}
This switch corresponds to /C74 and /C8 it is here for
compatibility with the TOPS-10 command scanner.
The old one character switches will be in the switch table but
invisible. The correspondence between the old switches and the
new ones are:
1. /A = /MACHINE-CODE
2. /C = /CROSS-REFERENCE
3. /D = /STACK:
4. /E = /SYNTAX
5. /H = /HELP
6. /I = /SUBPROGRAM
7. /J = /MAIN-PROGRAM
8. /K = /KILL:
9. /L = /LIBRARY
10. /M = /MAP
11. /N = /NOERRORS
12. /O = /OPTIMIZE
13. /P = /PRODUCTION-MODE
14. /Q = /QUICK-MODE
15. /R = /TWO-SEGMENT
16. /S = /ANSI-FORMAT
COBOL V13 Documentation Page 9
EXTERNAL CHANGES and OPTIONS
17. /T = /TRACE:
18. /U = /ONE-SEGMENT
19. /V = /VERSION:
20. /X = /DISPLAY:9
21. /Y = /FLAG-ALLBUT: or /FLAG-IF:
The following /Y values are equivalent:
1. /Y:1 = /FLAG-ALLBUT:LOW
2. /Y:2 = /FLAG-ALLBUT:LOW-INTERMEDIATE
3. /Y:3 = /FLAG-ALLBUT:HIGH-INTERMEDIATE
4. /Y:4 = /FLAG-ALLBUT:HIGH
5. /Y:-D = /FLAG-IF:DBMS
The switches /B and /F have not been implemented as they are not
used from a batch job.
2.3 Simultaneous Update for RMS files
Available with RMS-20 Version 2
This section describes the usage of Simultaneous Update ("SMU")
Method 1 in COBOL-20 Version 13 with RMS-20 Version 2 Relative
and Indexed files, as indicated in the COBOL-20 v13 Language
Reference Manual, Chapter 9. In COBOL-20 version 13 there are
two types of Simultaneous Update as follows: (1) Method 1, which
is the form of SMU which has existed in COBOL-10/20 since 1976,
and (2) Method 2, which has been available previously in
BASIC-PLUS-2. Please refer to Section 7.0 for details.
2.3.1 SMU Method 1
Method 1 allows SMU using the RETAIN and FREE verbs on the old
TOPS-10-style files and it was implemented in the run-time OTS
module LSU.MAC using the ENQ facility of the TOPS-10 Monitor as
well as its own construct, the Retained Records Table.
Judicious access to the RRT allows LSU to police the I-O verb
activity of the SMU user, causing the voluntary nature of the
ENQ facility to be enforced.
There have been two changes to the strategy of SMU Method 1.
First, it has been extended to RMS-20 Relative and Indexed
Files. This will be the primary concern of the remainder of
this sub-section. Second, support for SMU Method 1 for
COBOL V13 Documentation Page 10
EXTERNAL CHANGES and OPTIONS
TOPS-10-style Sequential files has been withdrawn. After much
study it was ascertained that the documented functionality had
never been achieved with this particular architecture. Also,
it was ascertained that it could not be properly constructed
under this architecture.
2.3.1.1 Strategy of SMU Method 1
At the center of SMU Method 1 is the RRT Table. It is
created by the COBOL compiler and is maintained at run-time
by the LSU module of the OTS. The basic strategy was to
have RRT entries for RMS file keys included in this Table as
well as the entries for the TOPS-10-style files. If this
could be done, it would allow the users the flexibility to
include references to non-RMS and RMS-20 files in the same
RETAIN statement. This was not a problem for RMS Relative
files because they only have a single key. However, it was
for RMS Indexed files because they are multi-keyed. At
run-time the number of the key was known according to an
internal numbering scheme which was established for the file
when it was created. This key number had to be included in
the RRT entry along with the key value and the two words of
header information. This caused each RRT entry to be
expanded by one word, but it had the desired effect of
allowing the flexibility indicated above.
The other main requirement of SMU Method 1 is that it do all
of its own file and record locking, i.e., that it call the
system ENQ facility to claim its required locks. RMS-20
also has the same requirement. Accordingly, we had to reach
a compromise in order to avoid having redundant locks and
unnecessary conflicts among locks. The compromise is this.
RMS-20 allows the user to set a FAC flag known as FB$SM1 at
Open time. When RMS-20 sees this flag, it claims an ENQ
capability lock for the file which means that this user is
doing SMU Method 1. Thereafter, for the existence of that
ENQ lock all other users who want to access the file must do
SMU Method 1. All other users are locked out. RMS-20
claims no other locks for the file. Thereafter, LSU claims
all of the ENQ locks for the user, both for the file and
index capabilities and for the data block locks. The FB$SM1
lock is released only when the user Closes the file.
2.3.1.2 New or Changed Syntax
There is only one new or changed item of syntax. In the
Procedure Division there is a new capability on the KEY
clause of the RETAIN, verb which allows you to name
Work-Fields for Alternate Key fields for RMS-20 Multi-Keyed
Indexed Files. A comparison of the old and new syntax and
its purpose follows.
COBOL V13 Documentation Page 11
EXTERNAL CHANGES and OPTIONS
For the old form of RETAIN, which still applies to non-RMS
files, you specify the file-name and the identifier or
literal for the KEY clause, thus:
RETAIN non-RMS-file KEY identifier/literal
FOR verb-selection [UNTIL FREED] ...
For the TOPS-10-style files, the identifier could be any
data field name, or in fact a hard-coded literal, which
conformed to the PICTURE and USAGE of the file's Record Key
as specified in the file's FD. Also, there was only one
identifier / literal allowed per KEY clause. This format
allowed the applications COBOL programmer to specify several
key values to be Retained for the same Indexed file in one
Retain statement. Since there was only one Record Key per
FD, there was no confusion in the RRT as to the intended
file key.
In order to allow the same flexibility for RMS-20 files we
had to identify the appropriate key somehow in the RETAIN
syntax. We did this by requiring that the particular key
field be named as the first entry in the KEY clause and that
subsequent identifiers could be added on to the clause,
thus:
RETAIN RMS-file KEY RMS-record-key-n
FOR verb-selection [UNTIL FREED]
[identifier-1
FOR verb-selection [UNTIL FREED]
... ]
This means that a key of the RMS-20 Indexed file must appear
as the first entry in a KEY clause and that subsequent
identifiers could refer to any other appropriate data names
in the program. Please note that literals were excluded
because there was no good way to indicate how they conformed
to the specifications of a particular file key at run-time.
2.3.2 SMU Method 2
Method 2 allows programs written in COBOL-20 version 13 to
share files with programs written in BASIC-PLUS-2 under
TOPS-20. Method 2 does file-sharing and record locking in a
manner similar to that of BASIC-PLUS-2. Accordingly, a file is
opened for the desired mode of sharing by providing the
appropriate settings to RMS-20 in the FAC and SHR fields of the
FAB. A single record at a time from a particular file is
locked, and the record is locked automatically when it is read.
COBOL V13 Documentation Page 12
EXTERNAL CHANGES and OPTIONS
The record is unlocked at the completion of an appropriate
update verb or at the time when another record is read from the
file. In addition, the syntax and usage of Method 2, including
run-time error codes returned to the user, is intended to
parallel that of VAX VMS COBOL version 1. This will allow a
measure of compatibility between COBOL-20 version 13 and the
VAX COBOL product. On the other hand, Method 2 is not
compatible with any other type of COBOL-20 Simultaneous Update,
and attempts to mix the two in the same COBOL-20 program will
result in compile-time diagnostic messages.
Since Method 2 provides only single record locking on a
particular file it does not do certain things for the user.
First, it limits his flexibility in that he is able to access
only one record at a time on a file, with the result that the
concept of programmed user transactions is rather limited.
Second, there is no journalling or recovery capability
available. Third, if two or more files are accessed by sharing
programs concurrently, the possibility of deadlock or "deadly
embrace" exists, and it can be managed or overcome only by the
proper usage of programming and design conventions at the level
of the applications program.
2.3.2.1 New or Changed Syntax
There are two areas where there is new or changed syntax,
(1) the I-O-CONTROL paragraph of the Environment Division
and (2) the I-O verbs of the Procedure Division.
2.3.2.2 I-O-CONTROL PARAGRAPH
The following syntax has been added here.
APPLY BASIC-LOCKING ON RMS-file-name-1 [RMS-file-name-2 ...].
This syntax declares that SMU Method 2 will be used on the
files named, and also it implies that no other type of SMU
will be used in the program. However, other files may be
opened "stand-alone", in other words, not to be shared at
all. This syntax can be used only for RMS-20 files. It
cannot be used for non-RMS files. If the user attempts to
use it for non-RMS files, a syntax error will be generated
at compile time in this case.
2.3.2.3 PROCEDURE DIVISION
A change has been made to the syntax of the Open verb, and
changes have been made to the way that the record I-O verbs
work. Also, the RETAIN, FREE and UNLOCK verbs have been
made illegal if used in conjunction with SMU Method 2, and
they will be flagged with diagnostic messages from the
COBOL V13 Documentation Page 13
EXTERNAL CHANGES and OPTIONS
compiler if a program contains the APPLY BASIC-LOCKING
syntax. (A stub was created for the UNLOCK verb just so
that it could be flagged if found.)
2.3.2.4 OPEN Verb
For SMU Method 2 you do not have to open all files in one
Open statement. In fact, each file to be so opened can be
Opened in its own Open statement. This is allowed by the
asynchronous nature of the locking done for Method 2. (All
of the file and record locking is done within RMS-20 itself,
and none is done by the COBOL run-time OTS.) All files have
to be opened in I-O (INPUT-OUTPUT) mode and each file open
is done by its own call to an RMS Open routine. The file
locks are acquired for the files individually instead of all
at once as they are in COBOL-10/20 version 12B SMU.
The Unavailable clause is available for each file which is
opened under SMU Method 2, instead of just once as it is in
SMU as of COBOL-10/20 version 12B. Thus,
OPEN I-O RMS-file-name-1
FOR verb-selection [ALLOWING] OTHERS verb-selection
[UNAVAILABLE action-clauses]
[I-O RMS-file-name-2
FOR verb-selection [ALLOWING] OTHERS verb-selection
[UNAVAILABLE action-clauses] ...] .
However, if the Unavailable path is taken before all file
opens are attempted, no attempt will be made to open the
remaining files in that Open statement. It is suggested
that the programmer use the UNAVAILABLE clause and that each
file be opened in its own separate Open statement. If the
file open is attempted without the UNAVAILABLE clause and
the file has already been incompatibly locked by some other
competing run-unit, the attempting run-unit will get a Fatal
run-time error accompanied by the message "Requested locks
are not all locked. ?LBL520 FILE IS BUSY".
2.3.2.5 Record Access Verbs
There are three major changes in the way in which the record
access verbs work. First, only one record at a time from a
file can be locked. Second, all necessary record locking is
done by the READ verb. If the file is open FOR READ only,
the record is locked only for the duration of the READ verb.
However, if the file is open FOR some variety of Update, the
record is locked until the completion of an appropriate
update or until the next READ to that file, or if the next
action is to close the file the lock is released at that
point. Third, if a File-Status code of 9x is issued for the
COBOL V13 Documentation Page 14
EXTERNAL CHANGES and OPTIONS
verb, execution of the program continues to the next
executable statement in normal sequence. There are
currently three such codes: 92 -- meaning record already
locked (presumably by another run unit), and 93 -- issued
for a Rewrite or Delete means that a previous valid Read or
Start for the record was not done by the user. Code 94
means that the failed record operation was not requested by
the run-unit in the For clause of the OPEN verb.
Rewrite and Delete for SMU Method 2 do not incorporate an
implicit retrieval of the record, as does version 12B Record
Access for RMS-10/20 files. On the other hand, the program
may attempt to Write a record to the file without doing a
previous retrieval even though good programming practice
would recommend that the write be done on the basis of the
previous failed retrieval. The user must test for these
codes as applicable by means of appropriate IF statements
immediately following the record access statements in the
normal sequence of execution. For example,
READ RMS-FILE-1 INVALID KEY GO TO NOT-FOUND-PARAGRAPH.
IF FILE-STATUS-1 = 92 GO TO RECORD-LOCKED-PARAGRAPH.
In order to test the FILE-STATUS field, the programmer must
declare it for the file in its SELECT statement and specify
it as a two-digit field in the Working-Storage Section of
the program's Data Division.
If the program receives the File-Status code of 92, it has
not acquired a lock on the record and it has also not
acquired the record, and any further attempt to process the
record will result in errors. Also, if the program has
locks on other records from other files at the same time, it
may have to release some or all of them in order to avoid
the likelihood of deadlock with another sharing run-unit.
2.3.3 RMS-20 Locks Used by SMU Method 2
RMS-20 uses three different levels of locks: (1) for Files,
(2) for Index Capability and (3) for Data (either Buckets in
the case of Indexed files or RFA's for Sequential and Relative
files). RMS-20 acquires and releases locks through the ENQ/DEQ
facility of the TOPS-20 Monitor. These locks can be either
shared or exclusive.
2.3.3.1 File Locks
There are currently two types of locks which RMS-20 acquires
for files, a Retrieval lock and an Update lock. The
Retrieval lock is acquired for the current run-unit in any
event, and it can be shared if you Allow others READ. The
Update lock is acquired only if run-unit opens the file for
COBOL V13 Documentation Page 15
EXTERNAL CHANGES and OPTIONS
WRITE, REWRITE, DELETE or ANY. It can also be shared if you
Allow others at least one of these update capabilities.
2.3.3.2 Index Capability Lock
This lock refers only to Indexed files. It is acquired when
you do a Read to an Indexed file, and it is shared at this
point. This lock is held during the Read verb and until the
beginning of the following update verb. If that verb is a
Write verb, it is upgraded to an exclusive lock and it is
held all the way through the verb execution. Otherwise, it
is held only to the beginning of the update verb.
2.3.3.3 Data Locks
Data locks can be on data buckets for Indexed files, or they
can be on RFA's for Relative Files (RFA means Record's File
Address). These locks are acquired shared for Read verbs
and are upgraded to exclusive for update verbs like Rewrite
and Delete. The Write verb can acquire the exclusive lock
immediately. All locks are released upon completion of an
appropriate record access sequence. This means that the
user should be careful of the scope of the locks that are
retained. For instance, the presence of a shared lock on an
Index Capability would cause the failure of an attempt to
update a record on a file.
2.4 ANS-8x Syntax
Introduction to the Language
1. Alphanumeric Literal
The maximum size has been increased from 120 characters to 160
characters (dpANS IV-9 4.2.2.2.1).
VAX allows 256 characters version 13 will also allow 256.
2. System-name in SOURCE-COMPUTER and OBJECT-COMPUTER clause.
The computer-name in these clauses should be a system-name not
a reserved word. They are also optional in ANS-8x. This is
implementor defined. VAX uses it for documentation only i.e.
no effect. The same is true of us except that the name has to
be one of a number of reserved words: DECSYSTEM10,
DECSYSTEM-10, DECSYSTEM-20, PDP-10. Version 13 will allow
anything here. This will save on symbol table space and space
in the syntax trees plus simplify the manual in addition to
following the standard.
IDENTIFICATION DIVISION
COBOL V13 Documentation Page 16
EXTERNAL CHANGES and OPTIONS
1. PROGRAM-ID program-name IS INITIAL PROGRAM
An INITIAL program is one that has its data set to their
initial value each time it is called (dpANS X-11). This will
be done by reading the EXE file before each call.
ENVIRONMENT DIVISION
1. COBOL STANDARD IS {74|8}
added to OBJECT-COMPUTER clause.
This allows the user to specify for the few cases that matter
what should happen (see later). This will allow for graceful
migration from COBOL-74 to COBOL-8x. There is a corresponding
compile time switch /VERSION or /C74 or /C8.
2. ALPHABET alphabet-name IS STANDARD-2
added to SPECIAL-NAMES clause dpANS VI-12.
This adds the required word ALPHABET and adds STANDARD-2 as an
option. STANDARD-2 is the ISO 7-bit code defined in
International Standard 646.
This appears to be identical with ASCII with the exception of
the interpretion of the pound sign ( or ).
3. SYMBOLIC CHARACTERS
added to SPECIAL-NAMES clause dpANS VI-12.
4. BLOCK CONTAINS
added to SELECT clause dpANS VII-7.
This is the same syntax as in the FD of the DATA DIVISION of
COBOL-74 (CLM 4-13 and 4-15). The syntax will exist in both
places.
5. CODE-SET
added to SELECT clause dpANS VII-7.
This is the same syntax as in the FD of the DATA DIVISION of
COBOL-74 (CLM 4-13 and 4-17). The syntax will exist in both
places.
6. PADDING CHARACTER
added to SELECT clause dpANS VII-7.
7. RECORD DELIMITER
added to SELECT clause dpANS VII-7.
DATA DIVISION
1. The number of subscripts increased from 3 to either 7 or 48.
The original DpANS specified 48, the latest word is that it may
be reduced to 7. We will use what ever the standard calls for,
which is currently 48.
COBOL V13 Documentation Page 17
EXTERNAL CHANGES and OPTIONS
2. RECORD IS VARYING IN SIZE ...
added to FD of FILE SECTION (dpANS V-8, V-9, V-10, V-11).
This is an extension of the RECORD CONTAINS integer-1 TO
integer-1 CHARACTERS clause.
3. ACCESS MODE IS {SEQUENTIAL|RANDOM|DYNAMIC}
added to FD of FILE SECTION (dpANS V-8 through V-11).
This is the same syntax as in the SELECT clause of the
ENVIRONMENT DIVISION of COBOL-74 (CLM 3-10, 3-11, and 3-12).
The syntax will exist in both places.
4. FILE STATUS IS ...
added to FD of FILE SECTION (dpANS V-8 through V-11).
This is the same syntax as in the SELECT clause of the
ENVIRONMENT DIVISION of COBOL-74 (CLM 3-10, 3-11, and 3-12).
The syntax will exist in both places.
5. RECORD KEY IS ...
added to FD of FILE SECTION (dpANS V-10).
This is the same syntax as in the SELECT clause of the
ENVIRONMENT DIVISION of COBOL-74 (CLM 3-12). The syntax will
exist in both places.
6. ALTERNATE RECORD KEY IS ...
added to FD of FILE SECTION (dpANS V-10).
This is the same syntax as in the SELECT clause of the
ENVIRONMENT DIVISION of COBOL-74 (CLM 3-12). The syntax will
exist in both places.
PROCEDURE DIVISION
1. Add explicit scope terminators (dpANS IV-27).
These are the reserved words of the form END-*. They are:
END-ADD, END-CALL, END-COMPUTE, END-DELETE, END-DIVIDE,
END-ENTER, END-EVALUATE, END-FREE, END-IF, END-MULTIPLY,
END-OPEN, END-PERFORM, END-READ, END-RECEIVE, END-RETAIN,
END-RETURN, END-REWRITE, END-SEARCH, END-START, END-STRING,
END-SUBTRACT, END-UNSTRING, END-WRITE.
2. Add ALPHABETIC-UPPER and ALPHABETIC-LOWER to the class
conditional.
3. ACCEPT FROM DAY-OF-WEEK
Added to ACCEPT statement (dpANS VI-70).
4. Add BY {REFERENCE|CONTENT}
to CALL statement (dpANS X-28).
5. Add CONTINUE statement (dpANS VI-75).
6. In DISPLAY ... WITH NO ADVANCING
WITH and ADVANCING are now optional (dpANS VI-76).
COBOL V13 Documentation Page 18
EXTERNAL CHANGES and OPTIONS
7. Add EVALUATE ... statement (dpANS VI-81).
8. Add END PROGRAM statement (dpANS X-10).
9. Add INITIALIZE ... statement (dpANS VI-89).
10. Add format 4 INSPECT statement (dpANS VI-92).
11. Add GIVING multiple files to MERGE statement (dpANS XII-8).
12. Add WITH TEST {BEFORE|AFTER} to format 3 of PERFORM statement
(dpANS VI-106).
13. Add format 4, in-line PERFORM statement (dpANS VI-107).
14. Add SET switch-name TO {ON|OFF} (dpANS VI-124).
15. Add SET condition-name TO TRUE (dpANS VI-124).
16. Add WITH DUPLICATES IN ORDER to SORT statement (dpANS XII-16).
17. Add GIVING multiple files to SORT statement (dpANS XII-16).
18. Add the new FILE STATUS codes to SEQUENTIAL (dpANS VII-2),
RELATIVE (dpANS VIII-2) and INDEXED (dpANS IX-2) files.
2.5 ANS-8x Functionality Not in COBOL 13
1. Contained programs
This is COBOL version of block structuring.
2. REPLACE statement
A new lexical scanner is required to handle this and COPY
REPLACING. VAX COBOL Version 2 did not provide this feature.
3. ANS-8x FIPS flagger
We will not know what the FIPS flagging requirements are
until a replacement for FIPS PUB 2-21 is published which will
not be until the dpANS has become a standard.
4. Communications Module on TOPS-20
Not implemented
5. ANS-8x DEBUG Module
We have not implemented the 8x extension to handle the
additional subscripts. We will continue to use the ANS-74
version of the DEBUG Module.
COBOL V13 Documentation Page 19
EXTERNAL CHANGES and OPTIONS
The changes to the DEBUG-ITEM that would be required are:
1. DEBUG-SUB-NUM
2. DEBUG-SIZE
3. DEBUG-NUMERIC-CONTENTS
4. REFERENCE-MODIFIER
5. DEBUG-SUB-ITEM
The other changes are:
1. Add WITH CONVERSION to the USE statement
2.6 Other Changes
1. Full support for COMP-2 data items.
2. Underscore
VAX allows underscore as part of a user-name. VAX COBOL
version 2 equates underscore with hyphen. We do the same.
3. Remove DENSITY IS {200|556} from SELECT clause.
4. ORGANIZATION IS [RMS] {SEQUENTIAL|RELATIVE}
added to SELECT clause.
This is an extension of the INDEXED clause to allow COBOL to
access all types of RMS files not just INDEXED ones.
5. PROTECTION IS ...
added to VALUE OF ID clause of FD of FILE SECTION. This sets
the protection code of a file created for output.
6. SUPPRESS TRAILING BLANKS
added to OBJECT-COMPUTER clause
This is to remove the suppress trailing blanks feature test
switch from the compiler and OTS while still preserving the
functionality. This is still used by several of our
customers who expressed displeasure when it was proposed to
remove the feature test switch.
7. The FIPS flagger will flag all ANS-8x extensions at the 8x
level. It will flag all leftover ANS-68 Report Writer syntax
at the 68 level.
8. Add switch /V:74 and /V:8 to specify which way the
incompatibilities compile. This switch takes precedence over
the COBOL STANDARD IS syntax. In addition the switch /V:74
deletes the new ANS-8x reserved words. The total effect of
this switch is to allow any legal COBOL-74 program to compile
COBOL V13 Documentation Page 20
EXTERNAL CHANGES and OPTIONS
and execute exactly as with 12B. Note that the COBOL
STANDARD IS syntax does not delete the reserved words.
2.7 Reserved Words
1. The following are no longer reserved words:
DECSYSTEM10, DECSYSTEM-10, DECSYSTEM-20, PDP-10.
2. The following are new reserved words from dpANS:
ALPHABET, ALPHABETIC-LOWER, ALPHABETIC-UPPER, ALPHANUMERIC,
ALPHANUMERIC-EDITED, BLANKS, COMMON, CONTENT, CONTINUE,
CONVERSION, CONVERTING, DAY-OF-WEEK, , END-ADD, END-CALL,
END-COMPUTE, END-DELETE, END-DIVIDE, END-EVALUATE, END-IF,
END-MULTIPLY, END-PERFORM, END-READ, END-RECEIVE, END-RETURN,
END-REWRITE, END-SEARCH, END-START, END-STRING, END-SUBTRACT,
END-UNSTRING, END-WRITE, EVALUATE, EXTERNAL, FALSE, GLOBAL,
INITIALIZE, NUMERIC-EDITED, ORDER, OTHER, PADDING, PURGE,
REFERENCE, REFERENCE-MODIFIER, REPLACE, STANDARD-2, TEST,
THEN, TRUE.
3. The following are new non-dpANS reserved words:
APPLY, BASIC-LOCKING, COMP-2, COMPUTATIONAL-2, END-ENTER,
END-FREE, END-OPEN, END-RETAIN, PROTECTION, UNLOCK.
2.8 Report Writer
The version 12B Report Writer was COBOL-68 syntax with some
COBOL-74 extensions. There are no significant differences
between ANS-74 standard and the dpANS (there are minor changes
which are really differences in the nucleus). However there are
44 differences listed in the ANS-74 standard between ANS-68 and
ANS-74. This is not to say that there are that many differences
between ANS-74 and COBOL-74 12B. The differences are numbered as
(nn) where nn goes from 85 to 128 inclusive are the changes in
chapter XIV in ANS-74.
Note that many of the differences are new restrictions rather
than new features.
These changes can be divided into the following cases:
1. Code and documentation correct in 12B
2. As above but with some restrictions
3. Code correct in 12B but documentation needs changing
4. Code and documentation need changing
1. Code and documentation correct in 12B
(85) PAGE-COUNTER and LINE-COUNTER are described as unsigned
COBOL V13 Documentation Page 21
EXTERNAL CHANGES and OPTIONS
integers that must handle values from 0 through 999999.
(88) PAGE-COUNTER is always generated.
(90) LINE-COUNTER is always generated.
(115) The phrases of the PAGE clause may be written in any
order.
(126) The SUPPRESS statement.
This was implemented in 12B.
2. As above but with some restrictions
(86) The value in LINE-COUNTER must not be changed by the
user.
Version 13 will not enforce this.
(107) LINE clause integers must not exceed three significant
digits in length.
The integer must have a value less than 512 (9 bits).
(116) In the PAGE clause, the maximum size of the integer is
three significant digits.
The integer must have a value less than 512 (9 bits).
(111) Integer-2 in the NEXT GROUP clause must not exceed three
significant digits in length.
The integer must have a value less than 512 (9 bits).
3. Code correct in 12B but documentation needs changing
(92) The words LINE and LINES are optional in the PAGE clause.
This is true in 12B but the manual needs changing.
(94) A report may not be sent to more than one file.
This is true of 12B, the diagnostic message will be
changed to be more meaningful. The restriction is not
documented.
(95) RESET is no longer a clause; it is a phrase under the
SUM clause.
This has no real effect on existing programs, however the
documentation is incorrect.
4. Code and documentation needs to be changed
(87) LINE-COUNTER, PAGE-COUNTER and sum counters must not be
used as subscripts in the Report Section.
Version 13 will give a warning and continue.
(89) PAGE-COUNTER does not need to be qualified in the Report
Section.
COBOL V13 Documentation Page 22
EXTERNAL CHANGES and OPTIONS
(91) LINE-COUNTER does not need to be qualified in the Report
Section.
(93) The DATA RECORDS clause and the REPORT clause are
mutually exclusive.
Version 13 will give a warning.
(96) Multiple SUM clauses may be specified in an item;
multiple UPON phrases may be specified.
12B already supports multiple SUM clauses.
(97) Up to three hierarchical levels are permitted in a report
group description.
Version 13 will give a warning and continue.
(98) A report group level 01 entry cannot be elementary.
Version 13 will give a warning and continue.
(99) An entry that contains a LINE NUMBER clause must not have
a subordinate entry that also contains a LINE NUMBER
clause.
Version 13 will give a warning and continue.
(100) An entry that contains a COLUMN NUMBER clause but no LINE
NUMBER clause must be subordinate to an entry that
contains a LINE NUMBER clause.
Version 13 will give a warning and continue.
(101) An entry that contains a VALUE clause must also have a
COLUMN NUMBER clause.
Version 13 will give a warning.
(102) In the CODE clause, mnemonic-name has been replaced by a
literal. (A two character nonnumeric literal placed in
the first two character positions of the logical record).
Version 13 will support both mnemonic-name and literal.
If the literal is not exactly two characters long a
warning will be given, if it is longer than two
characters it will be truncated to exactly two
characters.
(103) If the CODE clause is specified for any report in a file,
it must be specified for all reports in the same file.
12B claims that all the CODE clauses must be the same
size for any file, this would presumably include zero
size (i.e. missing). However this is never tested and
CODE sizes that are different seem to work. Version 13
will give a warning if CODE exists on some but not all
reports in a file.
(104) Control data items may not be subscripted or indexed.
(105) Each data-name in the CONTROL clause must identify a
different data-item.
COBOL V13 Documentation Page 23
EXTERNAL CHANGES and OPTIONS
Version 13 will give a warning and continue.
(106) The GROUP INDICATE clause may only appear in a DETAIL
report group entry that defines a printable item
(contains a COLUMN and PICTURE clause).
Version 13 will give a warning and continue.
(108) The NEXT PAGE phrase of the LINE clause is no longer
legal in RH, PH, and PF groups.
Version 13 will give a warning and continue.
(109) A relative LINE NUMBER clause can no longer be the first
LINE NUMBER clause in a PAGE FOOTING group.
Version 13 will give a warning and continue.
(110) A NEXT GROUP clause without a LINE clause is no longer
legal.
Version 13 will give a warning and continue.
(112) If the PAGE clause is omitted, only a relative NEXT GROUP
clause may be specified.
Version 13 will give a warning and continue.
(113) The NEXT PAGE phrase of the NEXT GROUP clause must not be
specified in a PAGE FOOTING report group.
Version 13 will give a warning and continue.
(114) The NEXT GROUP clause must not be specified in a REPORT
FOOTING report group.
Version 13 will give a warning and continue.
(117) It is no longer possible to sum upon an iten in another
report.
Version 13 will give a warning and continue.
(118) Source-sum correlation is not required. (Operands of a
SUM clause need not be operands of a SOURCE clause in
DETAIL groups).
(119) TYPE clause data-names may not be subscripted or indexed.
(120) PAGE HEADING and PAGE FOOTING report groups may be
specified only if a PAGE clause is specified in the
corresponding report description entry.
Version 13 will give a warning and continue.
(121) In CONTROL FOOTING, PAGE HEADING, PAGE FOOTING, and
REPORT FOOTING report groups, SOURCE clauses and USE
statements may not reference:
a. Group data items containing control data items.
b. Data items subordinate to a control data item.
COBOL V13 Documentation Page 24
EXTERNAL CHANGES and OPTIONS
c. A redefinition or renaming of any part of a control
data item
In PAGE HEADING and PAGE FOOTING report groups, SOURCE
clauses and USE statements must not reference control
data-names.
(122) In summary reporting, only one detail group is allowed.
Version 13 will give a warning and continue.
(123) The description of a report must include at least one
body group.
(124) Report files must be opened with either the OPEN OUTPUT
or OPEN EXTEND statement.
Version 13 will give a warning and continue.
(125) A file described with a REPORT clause cannot be
referenced by any input-output statement except the OPEN
and CLOSE statement.
(127) If no GENERATE statements have been executed for a report
during the interval between the execution of an INITIATE
statement and a TERMINATE statement for that report, the
TERMINATE statement does not cause the Report Writer
Control System to perform any of the related processing.
(128) A USE procedure may refer to a DETAIL group.
COBOL V13 Documentation Page 25
EXTERNAL CHANGES and OPTIONS
3.0 BUG FIXES
3.1 COBOL BUG FIXES SINCE COBOL V12B(1131)
COBOL version 13 contains COBOL edits 1300 through 1515 except
where not applicable.
Edits to 68274 the COBOL-68 to COBOL-74 converter are not
included since none of the converter code is in version 13.
These edits are: 1304, 1340, 1343, 1350, 1357, 1367, 1413, 1415,
1417, 1422, 1423, 1425, 1426, 1427, 1436, 1444, 1445, 1454, 1455.
The following edits are not included because they apply to
COBOL-68 only, were done differently in v13, or have been
superseded by later edits.
These edits are: 1320, 1322, 1326, 1334, 1355, 1400, 1403, 1441.
See file COBVER.MAC for a complete record of the edits to the
compiler.
3.2 COBOTS BUG FIXES SINCE OTS V12B(674)
COBOTS version 13 contains COBOTS edits 1000 through 1110 except
where not applicable.
The following edits are not included because they apply to
COBOL-68 only, were done differently in v13, or have been
superseded by later edits.
These edits are: 1012
See file COBVER.MAC for a complete record of the edits to COBOTS.
3.3 CPYLIB BUG FIXES
COBOL Version 13 contains CPYLIB edits 1 through 7.
3.4 ISAM BUG FIXES
COBOL Version 13 contians ISAM edits 200 through 211.
3.5 COBDDT BUG FIXES
COBOL contains COBDDT edit 40 through 46.
3.6 RERUN BUG FIXES
None.
COBOL V13 Documentation Page 26
RESTRICTIONS and KNOWN PROBLEMS
4.0 RESTRICTIONS and KNOWN PROBLEMS
4.1 Known Problems
1. Qar 302089 - Report Writer Problem
The report file may become corrupted due to an incorrect
return from a call to a COBOTS routine to write a data line.
2. Qar 302095 - Compiler halts in phase E
The compiler fails in phase E while processing a COMPUTE
statement that has a syntax error in it. A closing
parenthesis is missing on a subscripted field.
3. Qar 302096 - Format of the 'TIME' is not the same as V12B
The routine which nativised this code resulted in a value of
HHMMSS instead of HHMMSShh. Since it can not be easily
changed to yield the same results, the nativised code will be
removed. This is being done not because more accuracy is
expected, but to allow existing programs to function the same
way.
4. Qar 302098 - Copy replacing statement working incorrectly
The compiler copies in a library module incorrectly,
resulting in a syntax error. Other programs can copy in the
same module without problem.
5. Qar 302100 - 'CBLCMD Command too long' in batch log file
In a batch command file, if a series of programs are
requested to be compiled, an error message is printed 'CBLCMD
Command too long for internal buffer'. It appears to be
related to a monitor change as it only happens at certain
edit levels.
6. Qar 302101 - Compiler halts in phase D, scanning a 'GENERATE'
statement
The compiler fails in phase D while scanning a report writer
statement whose source data is from DBMS.
7. Qar 302102 - Run-time failure from simultaneous update
If the program is using simultaneous update syntax with an
RMS file whose primary key is not the first data field in the
file, a run-time failure occurs if there is an attempt to
write, rewrite, or delete a record.
COBOL V13 Documentation Page 27
RESTRICTIONS and KNOWN PROBLEMS
8. Qar 302104 - Names of programs being compiled not displayed
When compiling programs via an indirect command file
(COBOL>TAKE CBLSPECS.CMD) the names of the programs being
compiled are not displayed as they are being compiled.
9. Qar 302105 - RMSIO always loads in DDT
RMSIO always loads in DDT. This is true and the code will be
switched to being debug code only.
4.2 Restrictions from COBOL v12
COPY REPLACING has some problems in that it is not possible to
replace either part of PIC xyz without replacing the whole.
i.e. REPLACING ==PIC S9(10)==
will work
but
REPLACING ==PIC== or REPLACING ==S9(10)== will not.
Note, it was never the intent (and it contravenes the ANSI
standard) for COPY REPLACING to replace part of a data-item.
REPLACING AA by BB should not turn AA-xyz into BB-xyz.
********
* NOTE *
********
We do not recommend that this change be installed unless your
installation is having problems transfering data TO an IBM
machine.
The ASCII to EBCDIC translation table was changed in version 12
(as the result of several SPRS) so that the translation of
graphics was more correct. However it is still not correct
according to IBM documentation. It seems that we now in some
cases generate incorrect EBCDIC characters for minus zero. The
interim solution for those who see this problem is to put the
translation table back the way it was knowing then that the
translation of some graphics will be wrong.
Please refer to Section 1 of the field test booklet for the patch
to fix this problem.
4.3 Restrictions from before COBOL v12
Error not detected.
A RESET FINAL clause is legitimate only when FINAL is given as a
COBOL V13 Documentation Page 28
RESTRICTIONS and KNOWN PROBLEMS
control. Violation of this rule goes undiagnosed. A RESET
clause can only accompany a sum clause. A RESET clause
accompanying a source clause receives no diagnostic.
Incorrect error message.
DATA-name RC which is defined on last line of the working-storage
section is incorrectly diagnosed as undefined in the declaratives
area of procedure division. It is considered to be defined ok in
the report section, however.
Incorrect error message.
COBOL rules make the presence of a data-name optional in the
control footing report description provided there is no need to
reference the report group. In the case where the data-name is
present the program compiles without error. In the case where
the data name is not present the compiler seems to be disallowing
sections in the procedure division.
DBMS error handling
Errors which relate to the schema are not tabulated in the error
count, and they go only to the TTY.
4.4 SIMULTANEOUS UPDATE:
Because of a problem in the TOPS-20 monitor, records updated in a
file via SMU mode which cause the length of the file to be
extended by one program will not be found by other users until
both programs close and reopen the file. To overcome this
restriction for ISAM files, the ISAM utility sets the file size
for .IDX and .IDA files to +infinity (2**35 -1) in the file
descriptor block (FDB). Please note that the files physical
length is the correct number of bytes written. The file's size
in pages is displayed correctly by VDIRECTORY.
This fix allows simultaneous update users to process ISAM files
correctly. However some programs or TOPS-20 commands (such as
FILCOM or QUEUE LPT: = FILE/PRINT:OCTAL) which attempt to access
the file sequentially will run improperly - they will keep
running.
A special purpose utility SETEOF.EXE is included in the BINARY
save set. SETEOF may be used to extend the file size in the FDB
to a large, user specified size or to reduce a file with an
extended file size to the actual file size (rounded upward to the
next page). This will allow users of random files in
simultaneous update mode to extend the file size before
processing. Conversely, if a user wishes to sequentially process
a file with an extended file size, the user may use SETEOF and
specify a file size of "0" to reduce the file to the actual file
size (rounded upward to the next page).
SMU Method 1 for non-RMS TOPS-10 style sequential files has been
withdrawn. See Section 2.3.1 for details.
COBOL V13 Documentation Page 29
RESTRICTIONS and KNOWN PROBLEMS
5.0 Installation Instructions
See the COBOL Installation Guide (COBOL.INS) for complete installation
instructions. (Including a note on the new method for loading DBMS
into the OTS)
6.0 INTERNAL CHANGES
6.1 Misc. changes made in v13.
1. The modules CMND20.MAC and CONSCN.MAC were created to
implement a new command scanner and to nativise the compiler.
The functionality of several small modules was incorporated
into COBSCN and these modules deleted. They are:
GETASY.MAC, GETCPY.MAC, GETERA.MAC, GETGEN.MAC, GETTAG.MAC,
PUTAS1.MAC, PUTAS2.MAC, PUTAS3.MAC, PUTBIN.MAC, PUTERA.MAC,
PUTGEN.MAC, STINFL.MAC.
2. Several small modules have been incorporated into other
modules or are just no longer required. These are: ALF.MAC,
COMPD.MAC, CRELD.MAC, EXAM.MAC, MAGNEG.MAC, XPAND.MAC,
XPNPPL.MAC.
6.2 .KEY Files
In the source saveset are a series of files with the extension '.KEY'.
These are being supplied for possible future use by AUTOPATCH.
7.0 RMS-20 Version 2
COBOL Version 12B works with RMS Version 1 for indexed files
only. COBOL Version 13 incorporates the following features only
when used with RMS Version 2:
1. Sequential RMS files
2. Relative RMS files
3. ASCII stream files
4. Simultaneous update with RMS indexed and relative files
NOTE
Please refer RMS V2 DOC and BWR files for additional
information on these features.
COBOL V13 Documentation Page 30
RESTRICTIONS and KNOWN PROBLEMS
COBOL does require display keys for all files.
If RMS features are used in any COBOL program, COBLIB will look
for RMS Version 2 at run time, and if it is not found, it will
look for RMS Version 1 and flag errors at any atttempt to use RMS
Version 2 features. If neither RMS Verion 2 nor Version 1 is
found, COBLIB will give a fatal error.
[End of file CBL13.DOC]