Trailing-Edge
-
PDP-10 Archives
-
BB-H506D-SM_1983
-
cobol/documentation/cbl12b.doc
There is 1 other file named cbl12b.doc in the archive. Click here to see a list.
CBL12B.DOC -- COBOL-74 V12B Documentation
July 1981
COPYRIGHT (C) 1981 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-74 V12B Documentation Page 2
1.0 SUMMARY
The major changes between COBOL V12A and COBOL V12B are:
Development enhancements (see sec. 2.1).
Bug fixes (see sec 2.2 through 2.8).
Multi-key ISAM via RMS.
ANSI DEBUG module.
FIPS flagger.
COBOL version 12B consists of:
CBL74 version 12B(1131)
C74OTS version 12B(674)
COBDDT version 12B(33)
ISAM version 12B(162)
LIBARY version 12B(30)
RERUN version 12B(7)
The above software will run on all supported monitors and has been
tested under TOPS-20 release 4.
COBOL-74 version 12B conforms to the full ANSI highest level except
for:
RPW It contains ANS-68 Report Writer
See section 3 for known deficiencies.
See COBOL INSTALLATION GUIDE for configuration switch setting and
compatibility issues.
1.1 Bibliography
COBOL-74 LANGUAGE MANUAL AA-5059B-TK
COBOL INSTALLATION GUIDE (COBOL.INS)
CBL12B.DOC AND SRT4C.DOC
COBOL-74 V12B Documentation Page 3
1.2 Required Software
The following software or later is required to build COBOL V12B.
Name Version
---- -------
MACRO 53A(1173)
LINK 4A(1220)
MAKLIB 2A(67)
MACREL Release 4
PA1050 4.1(363)
Note, this is the official Release 4 PA1050 plus all required
patches. It is required to run COBOL 12B programs. Although it
is not actually required to build COBOL we recommend that this
version replace the official release 4 version.
COBOL-74 V12B Documentation Page 4
EXTERNAL CHANGES and OPTIONS
2.0 EXTERNAL CHANGES AND OPTIONS
2.1 DEVELOPMENT ENHANCEMENTS to COBOL
2.1.1 FIPS Flagger
FIPS PUB 21-1 states that the COBOL-74 compiler must contain
a capability to flag all syntax above the level supported by
the compiler. The FCTC people interpret that to mean that a
high level compiler must be able to flag at any of the four
levels. Version 12B has extended that idea to flag a variety
of different syntax sets.
The level flags are:
0 = no information
1 = FIPS LOW level
2 = FIPS LOW-INTERMEDIATE level
3 = FIPS HIGH-INTERMEDIATE level
4 = FIPS HIGH level
R = Report Writer
D = Data Base
6 = COBOL-68 leftover
I = IBM compatibility
V = VAX COBOL-74 compatible
8 = COBOL-8X (next standard) extension
N = non-standard extension
The flagger is implemented for COBOL-74 only. It modifies
the /Y switch to take a character string i.e. /Y:abcde.
Only one of the set 1, 2, 3, 4 is allowed, all other
combinations are legal. This set is checked and every
syntactic and semantic construct which is outside the union
of this set is flagged. The switch /Y:-abcde is also
allowed. This flags all syntax and semantics which are in
the union of the set.
The warning message is of the form:
<level> syntax exceeds requested compatibility level.
Where <level> indicated the offending syntax's level
2.1.2 DEBUG MODULE
The features of the COBOL-74 language that support the Debug
module are:
A compile time switch - WITH DEBUGGING MODE.
An object time switch.
A USE FOR DEBUGGING statement.
A special register - DEBUG-ITEM.
Debugging lines.
The Debug module uses COBDDT to search the user's symbol
table and to load the DEBUG-ITEM.
COBOL-74 V12B Documentation Page 5
EXTERNAL CHANGES and OPTIONS
2.1.3 COMPUTE STATEMENT
Internal support for double precision floating point has been
added to both the compiler and OTS. This new feature causes
all COMPUTE statements to coerce the data into double
precision floating point. There are no plans to add double
precision floating point as an external data type.
The temporary feature test switch BISCMP introduced in
version 12A has been removed and the code that was under the
ON condition has been left in. In version 12A this switch
was OFF. There is no change in functionality, however the
long standing COMPUTE problems will be fixed. However this
does introduce another problem in that it is not always
possible to represent a fraction exactly as a floating point
number. This causes a problem when, for example, the correct
result is 123.4500 but it has been calculated as
123.449999999, if the output PICTURE is S9(3)v99 then the
result will be 123.44 not 123.45. If the result has the
ROUNDED option all will be well. In the case of no rounding
the compiler will add (or subtract) a correcting term which
is 1/500 of the equivalent rounding term. In the above
example the number would be rounded by adding 0.005, then the
non-rounding correction would be 0.00001.
2.1.4 RERUN on ISAM files
This change is really being done for the FCTC COBOL tests, it
is expected no customer will actually use this feature. In
version 12B it will now be possible to restart a COBOL
program at a RERUN checkpoint with ISAM files open and have
the right thing happen. Previously this was disallowed.
However it is still not possible to use RERUN with SORT or
Simultaneous Update files open.
2.1.5 OPEN EXTEND
This feature was not previously inplemented on TOPS-20 (it
worked on TOPS-10 but had some defficiencies). PA1050
version 4.1 has been modified to suport the FILOP APPEND.
Note this is a change to PA1050 as well as COBOL. The minor
TOPS-10 deficiencies has also been fixed.
2.1.6 MULTI-KEY ISAM
This is implemented on TOPS-20 by calling RMS-20 and on
TOPS-10 by calling RMS-10. The ORGANIZATION clause has been
changed to include RMS as a reserved word, as, ORGANIZATION
IS RMS INDEXED. Also if the ALTERNATE KEY clause is seen the
file will default to RMS. A special standalone version of
RMS-20 called RMSCOB will be loaded by LIBOL if RMS files are
required. This version of RMS will be loaded at 525000 in
the user's address space.
COBOL-74 V12B Documentation Page 6
EXTERNAL CHANGES and OPTIONS
2.1.7 STRING/UNSTRING
The STRING/UNSTRING package has been rewritten for version
12B. This was done to implement variable-length strings,
necessary to pass the FCTC COBOL tests for validation. This
change makes necessary the recompilation of all COBOL
programs that wish to use the new code, however the old code
is also available so as to be fully compatible with version
12A.
2.1.8 Transportable ASCII files
This is reading and writing ASCII records with no
carriage-return line-feed. This is done in the following
ways:
If the file has a RECORDING MODE IS STANDARD-ASCII clause
then all data will be read and written with no <CR-LF>s.
On TOPS-20 if the user has set the tape mode to be STANDARD
ASCII and the tape has system labels and the recording mode
is default SIXBIT, then the file will read and written with
no <CR-LF>s (see COBOL Reference Manual mag-tape appendix).
2.1.9 READ REVERSED
This is only supported for magtapes who's controllers support
this feature.
This is NOT supported with System labels (either TOPS-10 or
TOPS-20).
Tapes must be BLOCKED 1, unblocked tapes are NOT supported.
On TOPS-20 READ REVERSED is not supported for ANSI-ASCII.
2.1.10 COBDDT
On TOPS-20 COBDDT has been modified to make it native. The
command syntax is compatible with COBDDT 12A. However, if
you wish to use the new COBDDT you must recompile your
programs with COBOL 12B.
A "SHOW SYMBOLS" command has been implemented, which will
print out all symbols that match an input mask. The mask can
contain the wildcard characters "*" (matches zero or more
characters) and "%" (matches any one character).
The DDT command will now try to read in DDT from the system
if it is not already in core.
Datanames that were defined in the FILE section may now be
qualified by the filename. This feature required compiler
changes and therefore it only works if your program was
compiled using COBOL 12B.
2.1.11 ISAM Utility
The ISAM utility contains the following improvements:
A switch /R to RENAME an ISAM file, this will also change the
name of the IDA file which is embedded in the IDX file.
A switch /C which will check an ISAM file for consistency.
COBOL-74 V12B Documentation Page 7
EXTERNAL CHANGES and OPTIONS
It is similar to /P except no output file is written.
A switch /S has been added to output more statistics about
the disk usage of an isam file.
In addition to the /S switch, suggested blocking factors will
be presented in the build/maintain dialogue, as well as
statistics after building an ISAM file indicating the effect
of the blocking factors on the free space in the file.
2.1.12 COBOL-68 syntax removed from COBOL-74
The following obsolete COBOL-68 syntax has been removed from
COBOL-74:
GOBACK. EXIT PROGRAM is equivalent.
2.1.13 CHECKPOINT OUTPUT
The original version 12 syntax was:
ACCESS MODE IS INDEXED CHECKPOINT OUTPUT
The action is to do a CHECKPOINT FILOP after every physical
output which is equivalent to, but much faster than, a CLOSE
followed by an OPEN. This should greatly increase the
reliability of ISAM files at the expense of performance.
At user's requests the syntax was expanded in version 12A to
cover RANDOM and SEQUENTIAL also.
In version 12B it has been further enhanced to be:
CHECKPOINT OUTPUT EVERY integer RECORDS.
where EVERY and RECORDS are optional and integer is a number
between 0 and 255.
If EVERY integer RECORDS is not given or integer is zero,
then the action is as in version 12A, the file is
checkpointed (via FILOP) after every physical output.
If integer is non-zero then the file is checkpointed after
integer WRITES regardless of how many physical writes have
been done.
2.1.14 Software Switches
To pass the FCTC COBOL-74 tests software switches had to be
implemented. On TOPS-20 this is done via the logical name
SWITCHES. This is similar to the way the debug switch is
implemented. The contents of the logical name is 12 ASCII
characters representing the 36 bits in octal. For example
SWITCH (0) and SWITCH (34) being on would be 400000000002.
2.1.15 DATE-COMPILED
To pass the FCTC COBOL-74 tests the DATE-COMPILED paragraph
has been changed to conform to what the FCTC wanted. This
is, all lines in the DATE-COMPILED paragraph are deleted
except for comment lines. The current date is substituted
for the first line. This is different from COBOL-68 where
only the first line is deleted.
2.1.16 ASCII and EBCDIC Collating Sequence
COBOL-74 V12B Documentation Page 8
EXTERNAL CHANGES and OPTIONS
All known bugs with COBOL-74 collating sequence code have
been fixed.
2.1.17 REPORT WRITER
The following COBOL-74 enhancements have been made:
SOURCE IS data-item can now be subscripted.
SUPPRESS verb is implemented.
2.1.18 MAG-TAPE HANDLING and SYSTEM-LABELED TAPES
The 12A release of COBOL supported system labeled tapes at a
basic level. 12B will support these tapes at a much greater
level of detail, so that specific types of compatible labeled
tapes may now be created and read. This is true for both
TOPS-10 and TOPS-20. See the new appendix (appendix F) to
the COBOL manuals for a detailed discussion of COBOL and mag
tapes.
COBOL-74 V12B Documentation Page 9
EXTERNAL CHANGES and OPTIONS
2.2 COBOL BUG FIXES SINCE COBOL V12A(726)
Edit 1131 IF on two double-word numerics fails when the numbers are
negated.
Edit 1130 ENDSPIF message with bad IF clause in statement followed by
statement with special IF.
Edit 1127 INSPECT REPLACING item with fig. const. failed when the
item ended on a word boundary.
Edit 1126 Make RELEASE verb clear its input buffer after releasing the
record to SORT.
Edit 1125 *** DO NOT INCLUDE THIS EDIT, IT HAS BAD SIDE EFFECTS ***
COPY REPLACING gives spurious warnings when numeric
replacement precedes end of statement in DATA DIVISION.
Edit 1124 Make PIC S(n) illegal.
Edit 1123 Bad table link, catastrophe in phase E with subscript assoc
with linkage item with no occurs clause.
Edit 1122 Save ac6 when opening second source file.
Edit 1121 Duplicate of edit 1031.
Edit 1120 Already in 12B in a slightly different form.
Edit 1117 Make "UNSTRING delimited by LOW-VALUES" work in COBOL-68.
Edit 1116 Allow only one BY in UNSTRING.
Edit 1115 DBMS edit number 575.
Edit 1114 Fix edit 1035 to bypass SUB-SCHEMA error message if no
INVOKE seen.
Edit 1113 COMP-1 to COMP-2 conversion not done correctly.
Edit 1112 Fix bad SKIPA optimization when previous instruction can
skip 2.
Edit 1111 PERFORM LIMIT EXCEEDED when doing many executions of
DECLARATIVES.
Edit 1110 Allow ON SIZE ERROR code to catch divide by zero for COMP-1
result.
Edit 1107 "?Ill mem ref" and bad error pointer when a WRITE statement
is compiled that has an error regarding a depending
variable.
COBOL-74 V12B Documentation Page 10
EXTERNAL CHANGES and OPTIONS
Edit 1106 Bad error message given when 88 level item has numeric value
clause and is subordinate to INDEX item.
Edit 1105 Set LINKAGE SECTION bit for CONTRL, SUM operands.
Edit 1104 More of edit 1046, patch to edit 675.
Edit 1103 Bug in literal pooler caused bad code to be generated in
rare cases.
Edit 1102 "?Bad table link" in phase D if level number is 0 on item
with sons.
Edit 1101 REWRITE and DELETE generating WRITV. when record has a
DEPENDING ON clause.
Edit 1100 COBOLE loops if bad syntax for pic on sort key.
Edit 1077 Fix "?illegal memory reference" in PHASE E at random times.
Edit 1076 Disable unsafe optimization for MOVE ZEROES to
LINKAGE-SECTION comp-item.
Edit 1075 Fix "?bad LITAB code" generating numeric literals that get
truncated.
Edit 1074 Fix ?Catastrophe in phase D if DYNAMIC is misspelled.
Edit 1073 Fix bad code generated when depending variables are 2 or
more levels down in an item.
Edit 1072 Make VALUE clause work correctly for EBCDIC signed numeric
item.
Edit 1071 Give error message when variable part is not the last thing
in the record.
Edit 1070 Fix MOVE CORRESPONDING of items with subscripts.
Edit 1067 Fix ANS74 compare of numeric item to non-numeric item.
Edit 1066 Better error recovery for CONTAB
Edit 1065 With COPY REPLACING, check for end of library member.
Edit 1064 With COPY REPLACING don't split a line if the only input
characters left are "." and line-feed.
Edit 1063 Special handling for paragraph names and 01 level numbers
with COPY REPLACING.
Edit 1062 Fix fatal error on NOTE with COPY REPLACING.
Edit 1061 Wrong code generated for 8 byte ASCII key with 1 or 2 bytes
COBOL-74 V12B Documentation Page 11
EXTERNAL CHANGES and OPTIONS
in first word.
Edit 1057 Give error on illegal use of ALL in numeric comparisons.
Edit 1056 Fix COMP-2 to COMP-1 conversion in COMPUTE statement.
Edit 1055 Fix edit 762 to use correct error message.
Edit 1054 Print message when warnings being dumped.
Edit 1053 Accept ITEM (subscripts) FROM DATE/DAY/TIME (cobol-74 only).
Edit 1052 Not required in 12b, SOURCE can now be subscripted].
Edit 1051 Get MCS flag words out of ovlay area.
Edit 1050 Bad code gen for nested IF.. I-O verb... IF.
Edit 1047 Bad code gen for DIVIDE.. INTO using -1 and +1 literals.
Edit 1046 In FIND RSE3, IDENTIFIER-2 must be 1-word COMP.
Edit 1045 Fix to edit 767.
Edit 1044 Fix to edit 752.
Edit 1043 Fix ANS68 MOVE non-numeric to numeric edited.
Edit 1042 Fix COMPUTE id = id1 / (10 ** id-2).
Edit 1041 Bad code generated for COBOL-74 construct "CALL
<identifier>".
Edit 1040 Fix non-bis case of edit 1034, "IF ...NOT = SPACE" didn't
work.
Edit 1037 Fix ?assembly errors when depending var on READ and COMP
item
Edit 1036 Fix printing of special characters in the listing
Edit 1035 DBMS IF statement fails to check for username
Edit 1034 Make IF = ZERO test generate inline code, this also the
fixes large record problem.
Edit 1033 Turn off COPY REPLACING flags during error recovery.
Edit 1032 Store EBCDIC mode in key descriptor.
Edit 1031 Add variables for DBMS version 6.
Edit 1030 More of edit 605 when OCCURS is not elementry item.
COBOL-74 V12B Documentation Page 12
EXTERNAL CHANGES and OPTIONS
Edit 1027 Build record name table if nested READs.
Edit 1026 Check MOVE CURRENCY STATUS for a valid record.
Edit 1025 Allow RANDOM and ISAM files as SORT input files.
Edit 1024 Fix bug in edit 762 if D. P. mantissa is exactly 18
digits.
Edit 1023 Fix various problems with PICTUREs in COPY REPLACING.
Edit 1022 Fix problem of missing character on listing file in COPY
REPLACING. This edit replaces edit 617 which was not in
12A.
Edit 1021 Fix error cause by lower case literal in PROGRAM-ID.
Edit 1020 Fix line too long problem in COPY REPLACING.
Edit 1017 Fix edit 443, make COMPUTE A = - (something) work.
Edit 1016 Edit 1002 was too ambitious, remove part of the edit.
Edit 1015 Use the correct right margin on COPY REPLACING.
Edit 1014 List full path on LOOKUP/ENTER errors.
Edit 1013 Fix loop if missing == on COPY REPLACING.
Edit 1012 COBOL-74 loops if END DECLARATIVES is mis-spelled.
Edit 1011 Fix edit 733 to not require data record if FD has a report
clause.
Edit 1010 Finish edit 774.
Edit 1007 Generate AOS PAGE-COUNTER for LINE NEXT PAGE.
Edit 1006 Pull out code testing on USE PROCEDURE conflicts for
COBOL-68.
Edit 1005 Make IF or SEARCH illegal in WHEN clause of SEARCH verb.
Edit 1004 Make ASCII and EBCDIC collating sequences work correctly in
COBOL-74.
Edit 1003 Fix duplicate CREF definition when level number decreases
(broken by edit 373).
Edit 1002 Add check for illegal or missing CALL/ENTER args.
Edit 1001 Make ALL literal work in COPY REPLACING.
Edit 1000 Generate nul literal for MOVE to bad data-item.
COBOL-74 V12B Documentation Page 13
EXTERNAL CHANGES and OPTIONS
Edit 777 Fix ?ASSEMBLY ERRORS when literals used in COMPUTE and edit
637 is installed.
Edit 776 Check if we need to reget present token. Also fix syntax
tree to allow CONSOLE as TTY for ACCEPT.
Edit 775 Fix DISPLAY literal UPON mnemonic-name WITH NO ADVANCING
when mnemonic-name is not defined.
Edit 774 Delete AS1.TMP if using -,-=FOO/O
Edit 773 Fix optimization of adding 1 to linkage-section item.
Edit 772 Make DA.CLA external in case DBMS is turned off.
Edit 771 Allow DISPLAY-9 VALUE OF ID.
Edit 770 Replacement for edit 742. If you defined an item with an
INDEXED BY clause and also defined it as an independent
item, no error message was generated.
Edit 767 Check overflow flags for ON SIZE ERROR".
Edit 766 1-word COMP with ON SIZE ERROR sometimes moves wrong acc.
Edit 765 Null table link error message when UNSTRING is done from
variable with more than one subscript.
Edit 764 Fix spurious errors on MOVE where A operand has separate
sign.
Edit 763 Check for duplicate LINKAGE and REPORT sections.
Edit 762 Add small constant to COMP-2 COMPUTE calculations.
Implement and use D. P. floating point literals.
Edit 761 Make messages 117, 148, 154, 264, 414, and 419 more explicit
for DML compiles.
Edit 760 Make BLANK WHEN ZERO work again for numeric sending item.
Edit 757 Do not allow OPEN of a sort-file (in an SD).
Edit 756 Generate request for C.RSET in COBOL subprograms incase
called by FORTRAN.
Edit 755 Fix bug in edit 745 - it broke ACCEPT of small numeric
items.
Edit 754 Fix fig-con AFTER ADVANCING to work.
Edit 753 Make edit 745 work for COBOL-68.
Edit 752 COBOL-74 illegal instruction if DATAB contains errors.
COBOL-74 V12B Documentation Page 14
EXTERNAL CHANGES and OPTIONS
Edit 751 Bad DATAB definition if FD name matches PROGRAM ID.
Edit 750 COBOL-74 bad table link if RELATIVE key conversion required.
Edit 747 Cobol-74 bad table link if missing ISAM RECORD key.
Edit 746 Not required (already in 12A).
Edit 745 COBOL-74 SUBSCRIPTING and MOVEs with non-COMP depending
variables.
Edit 744 Fix edits 707 and 670 for IFs within SEARCH.
Edit 743 COBOL-74 more of edit 721.
Edit 742 Edit deleted.
Edit 741 Not needed, already in 12A sources.
Edit 740 Fix SOURCE-COMPUTER. with no comment entry.
Edit 737 Fix looping if program has nested SEARCH statements.
Edit 736 Fix typo in BISCMP code for COMP-1 to COMP-2 conversion.
Edit 735 Give error if RECORD KEY is not defined in right FD.
Edit 733 Give error if no DATA RECORD in FD.
Edit 732 Fix SET generating bad code sometimes in COBOL-74.
Edit 731 Fix DIVIDE A BY B where B is 2-word COMP.
Edit 730 Fix MULTIPLY A BY B ON SIZE ERROR for quad word.
Edit 727 Not required - replaced by new STRING/UNSTRING routines.
COBOL-74 V12B Documentation Page 15
EXTERNAL CHANGES and OPTIONS
2.3 OTS BUG FIXES SINCE LIBOL V12A(604
Edit 674 *** NOT REQUIRED IN 12B ***
Edit 673 Display all non-trailing DISPLAY-7 and DISPLAY-6 blanks.
****NOTE**** delete edits 651 and 664.
Edit 672 Clear up problems with data loss after OPEN EXTEND to
non-existant file.
****NOTE**** deletes edits 653 and 655.
Edit 671 *** Already in 12B. ***
Edit 670 Fix problems with RELATIVE file READs and WRITEs
Edit 667 On TOPS-20 open read-only disk files via COMPT. UUO so that
they can coexist with SMU files.
Note, this code is under the TOPS2X feature test switch which
is off.
Edit 666 Reset UIN. after random write results in a duplicate record.
Edit 665 ASCII records were losing cr-lf when the buffer was zeroed
for last WRITE before CLOSE.
Edit 664 Display all non-trailing DISPLAY-6 blanks on TTY:.
Edit 663 *** Not required in 12B. ***
Edit 662 OPEN EXTEND followed by SMU creates wrong data mode when
performing I/O on EXTEND file.
Edit 661 ISAM SEQ READ gets INVALID KEY after many DELETES at
beginning of file.
Edit 660 Add zone at end of pushdown list for PDLOV recovery.
Edit 657 Zero the unused area of the dump mode buffer for blocked
ASCII records.
Edit 656 Change FILOP. open of EXTEND & I-O/SMU not to check file
protection if [1,2] or JACCT.
Edit 657 Zero the unused area of the dump mode buffer for blocked
ASCII records.
Edit 656 Change FILOP. OPEN of EXTEND and I-O/SMU not to check file
protection if [1,2] or JACCT.
Edit 655 Modify WRTCH subroutine to be compatible with edit 653.
Edit 654 Supplement ENQ/DEQ error return message.
COBOL-74 V12B Documentation Page 16
EXTERNAL CHANGES and OPTIONS
Edit 653 Fix OPEN EXTEND for new files (drops the first character).
Edit 652 Make CBC routine work with SORT 4C when all buffers have been
returned.
Edit 651 Display all non-trailing blanks on TTY if line is long.
Edit 650 Make CNTRY symbol INTERNAL to CBLIO and EXTERNAL to LSU.
Edit 647 Don't turn on low-word sign bit if result is zero.
Edit 646 INSPECT REPLACING 1-char item didn't work.
Edit 645 Make TX02 proper controller for 1600 bpi tape.
Edit 644 Clear PPN field of LKP/ENTR block after LOOKUP for SMU TOPS10
OPEN.
Edit 643 Make proper long term lock bits an edit for ENQDEQ.
Edit 642 .JBFF gets modified when TTY files are opened for input.
Edit 641 Fix ASCII to EBCDIC READ to pad with EBCDIC blanks.
Edit 640 Fix USETI/O for block 777770 through 777777 to use FILOP.
USETI/O.
Edit 637 ISAM2-WORD SIXBIT COMP key gets key pointer differs error
(12A only).
Edit 636 Fix proper error code for error return from FILOP.
execution.
Edit 635 Incorporate MCS-10 fixes from B.C.TEL.
Edit 633 Add to edit 622 (version 12A only).
Edit 632 CLOSE WITH NO REWIND hangs - loops thru file table.
Edit 631 Fix IF NUMERIC test of even digit COMP-3 item.
Edit 630 Fix conversion of numbers with leading sign.
Edit 627 Clear stack after filop for OPEN EXTEND fails.
Edit 626 Skip dummy output for OPEN EXTEND.
Edit 625 Make different ISAM key pointers fatal error.
Edit 624 Make ASCII and EBCDIC collating sequences work correctly in
COBOL-74.
Edit 623 Don't initialize DBSTP$ when DBMS is off.
COBOL-74 V12B Documentation Page 17
EXTERNAL CHANGES and OPTIONS
Edit 622 Make OPEN FOR I/O work correctly.
Edit 621 Make MROUT. an entry point, so LSTATS works with SORT on
TOPS-10.
Edit 620 Insert label NEXT:: in LIBOL.CTL for error routine when
invoking GLOB for COBOL-74 OTS.
Edit 617 Make fix for IDX key pointer check into official edit (to
correct edit 574).
Edit 616 Allow DISPLAY-9 VALUE OF ID (code was there, but never
worked).
Edit 615 Check overflow flags for ON SIZE ERROR".
Edit 614 [Not required in 12B, edit 605 for version 12].
Edit 613 Fix return from use procedure (ignoring error) for SIXBIT, V
format length field errors.
Edit 612 Fix date written for simultaneous update files.
Edit 611 Not required for 12A, edit to 12 only.
Edit 610 Fix sequential read invalid key return with edit 605.
Edit 607 Fix EBCDIC null scan across buffers.
Edit 606 Fix 4-word divide when sign is different.
Edit 605 Fix ISAM START, both RANDOM and SEQUENTIAL.
COBOL-74 V12B Documentation Page 18
EXTERNAL CHANGES and OPTIONS
2.5 LIBARY BUG FIXES
Note, the editor commands were removed from LIBARY in 12A.
Edit 30 Prevent looping "?Incorrect command" error.
Edit 27 Add SFD support and improve error messages.
Edit 26 Fix bug in /D caused by edit 24.
Edit 25 Put tab after line number on listing file.
Edit 24 Put page number on listing of library.
2.6 ISAM BUG FIXES
Edit 162 Fix block number bug (777770 through 777777).
Edit 161 Fix tape label error routine at LTCTST:.
Edit 160 Issue warning U before X in KEY descriptor.
Edit 157 Fix FILOP. UUO for large files.
2.7 COBDDT BUG FIXES
Note, This version of COBDDT will not work with versions of COBOL
prior to v12A. The filename qualfication feature will not
work with versions of COBOL prior to v12B.
Edits 31-33 not required as code was rewritten for 12B.
Edit 30 Make STEP work like $X in DDT, breakpoints are ignored while
STEP is in effect.
Edit 27 fix problem with step when breakpoints are cleared.
2.8 RERUN BUG FIXES
Edit 7 Fix return to TOPS-20 relocatible LIBOL.
COBOL-74 V12B Documentation Page 19
DEFICIENCES
3.0 DEFICIENCIES
3.1 Deficiencies from COBOL v12 and v12A
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.
There is currently an incompatibility between TOPS-10 and TOPS-20
that causes a problem for simultaneous update under TOPS-20.
Under TOPS-10 it is possible to have one program open a file for
INPUT (only) without simultaneous update control while at the
same time another program is running that opens the same file for
simultaneous update. Currently TOPS-20 does not support the open
mode that allows this, so that the first program to open the file
will stop the other, with its different mode, from running (it
will die with an open error). This incompatibility will not be
addressed by TOPS-20 until a future release.
COBOL-74 V12B Documentation Page 20
DEFICIENCES
********
* 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, we are currently investigating
what VAX does to see if there can be a DEC to IBM standard we can
live with. However 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 in version 11 knowing then that the
translation of some graphics will be wrong.
In CHREQV.MAC change
E 133,255 to E 133,340
E 134,340 to ; 134
E 135,275 to E 135,320
E 136,137 to ; 136
E 140,171 to ; 140
E 175,320 to E 175,260
E 176,241 to ; 176
and before CAE insert
DSAE 134,155
DSAE 136,117
DSAE 140,174
DSAE 176,155
COBOL-74 V12B Documentation Page 21
DEFICIENCES
3.2 Deficiencies from before COBOL v12
Program ID same as filename, procedure name or data name results
in spurious error messages.
If A=B and C=D or E for subscripted A and C gives wrong code,
cause "SUBSCRIPT not POSITIVE" run time message if subscripts not
COMP or INDEX.
Error not detected.
A RESET FINAL clause is legitimate only when FINAL is given as a
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.
If "USE AFTER ERROR PROCEDURE ON x" where x is "INPUT", "OUTPUT
or "I-O" and "USE AFTER ERROR PROCEDURE ON file-name" are both
specified, then file-name may not be OPENed for x.
User error is not diagnosed: When the value of an 88-level item
is not the correct class, and the item is subordinate to a group
item which has the clause "USAGE INDEX", the program will compile
without an error diagnostic.
COBOL-74 V12B Documentation Page 22
DEFICIENCES
3.3 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 run and run
and run...
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).
COBOL-74 V12B Documentation Page 23
DEFICIENCES
4.0 Installation Instructions
See the COBOL-74 Installation Guide (COBOL.INS) for complete
installation instructions.
5.0 INTERNAL CHANGES
5.1 I/O Performance Metering
A new feature test switch, LSTATS and two new modules, METUNV.MAC and
METIO.MAC were added 12A to do OTS performance analysis. The feature
test switch is OFF in this release. LSTATS has not been tested with
12B.
5.2 Misc. changes made in 12B.
1. The small modules GETERA.MAC and SRTTAB.MAC have been
incorporated into COBOLF.MAC and deleted as separate modules.
2. The module SYMBOL.MAC has been incorporated into COBOLG.MAC
and deleted as a separate module.
3. The module SUGENS.MAC has been incorporated into IOGEN.MAC
and deleted as a separate module.
4. The module CMPX.MAC has been incorporated into CMP.MAC and
deleted as a separate module.
5. Create new module COBVER.MAC. It contains the COBOL edit
history from P.MAC and the LIBOL edit history from CBLIO.MAC.
5.3 Internal changes made to COBDDT
1. Add support for COBOL-74 DEBUG module.
2. Created separate command scanners for TOPS-10 and TOPS-20
versions
3. Made TOPS-20 version use COMND JSYS and be nativized.
4. Totally separate parsing from processing of the commands.
COBOL-74 V12B Documentation Page 24
DEFICIENCES
5. Reshuffled code around so things are in a logical order.
6. New acc assignments.
7. Implement filename qualification.
[END OF FILE CBL12B.DOC]