Google
 

Trailing-Edge - PDP-10 Archives - BB-H580C-SB_1981 - cbl12b.doc
There is 1 other file named cbl12b.doc in the archive. Click here to see a list.


CBL12B.DOC -- COBOL-68/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-68/COBOL-74 V12B Documentation                            Page 2


1.0  SUMMARY

The major changes between COBOL V12A and COBOL V12B are:

For COBOL-68 and COBOL-74
Development enhancements (see sec.  2.1).
Bug fixes (see sec 2.2 through 2.8).

For COBOL-74 only
Multi-key ISAM via RMS.
ANSI DEBUG module.
FIPS flagger.

COBOL version 12B consists of:
        COBOL    version 12B(1131)
        CBL74    version 12B(1131)
        LIBOL    version 12B(674)
        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-10 7.01.

This release contains common sources for both COBOL-68 and COBOL-74.

COBOL-74 version 12B conforms to the full ANSI  highest  level  except
for:
RPW  It contains ANS-68 Report Writer (same as COBOL-68)

See section 3 for known deficiencies.

See COBOL INSTALLATION GUIDE  for  configuration  switch  setting  and
compatibility issues.


1.1  Bibliography

COBOL-68 LANGUAGE MANUAL AA-5057B-TK
COBOL-74 LANGUAGE MANUAL AA-5059B-TK
COBOL INSTALLATION GUIDE (COBOL.INS)
CBL12B.DOC AND SRT4C.DOC 
COBOL-68/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)
COBOL-68/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 DEBUG MODULE is in COBOL-74 only.

         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
COBOL-68/COBOL-74 V12B Documentation                            Page 5
EXTERNAL CHANGES and OPTIONS


         table and to load the DEBUG-ITEM.

    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.   This  code will only work on KL
         CPUs.  There are no plans to add  double  precision  floating
         point as an external data type.

         This affects  both  COBOL-68  and  COBOL-74.   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 affects both COBOL-68 and COBOL-74, however it 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 COBOL-74 only.   It  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
COBOL-68/COBOL-74 V12B Documentation                            Page 6
EXTERNAL CHANGES and OPTIONS


         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 526000 in the user's address space.

    2.1.7 STRING/UNSTRING

         Both COBOL-68 and COBOL-74 are affected.  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.

    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.

    2.1.10 COBDDT

         On TOPS-10 the histogram feature will use an extended channel
         with  monitor  version  7.00 and later.  This frees a channel
         for the user program.
         We  have  added  the  UNPROTECT  command  which  will   allow
         breakpoints to be set in the high segment of two segment (/R)
         code.  This command does a  SETUWP  UUO  and  must  be  given
         before  the  breakpoints are inserted.  Also the high segment
         should be non-sheareable (saved with SAVE not SSAVE).
         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
COBOL-68/COBOL-74 V12B Documentation                            Page 7
EXTERNAL CHANGES and OPTIONS


         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.
         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-74 syntax in COBOL-68

         The following minor syntax changes from  COBOL-74  have  been
         included in COBOL-68:
         TO after GO is now optional.
         slash  (/)  in  continuation  column  means   new   page   is
         implemented.
         WRITE BEFORE/AFTER ADVANCING PAGE is implemented.

    2.1.13 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.14 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.15 Software Switches

         COBOL-74 only.
         To pass the FCTC COBOL-74 tests software switches had  to  be
COBOL-68/COBOL-74 V12B Documentation                            Page 8
EXTERNAL CHANGES and OPTIONS


         implemented.   On TOPS-10 this is done via a TMPCOR file SWT.
         This is similar to the way the debug switch  is  implemented.
         The  contents  of  the  TMPCOR  file  is  12 ASCII characters
         representing the 36 bits in octal.  For  example  SWITCH  (0)
         and SWITCH (34) being on would be 400000000002.

    2.1.16 DATE-COMPILED

         COBOL-74 only.
         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.17 ASCII and EBCDIC Collating Sequence

         All known bugs with COBOL-74  collating  sequence  code  have
         been fixed.

    2.1.18 REPORT WRITER

         The following COBOL-74 enhancements have been  made  to  both
         COBOL-68 and COBOL-74:
         SOURCE IS data-item can now be subscripted.
         SUPPRESS verb is implemented.

    2.1.19 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-68/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-68/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-68/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-68/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-68/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-68/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-68/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-68/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-68/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-68/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-68/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.

     The LINK supplied with 7.00 for loading the monitor will not load
     COBOL-74  subroutines,  COBOL-68 is OK.  Use field image LINK for
     this case.
COBOL-68/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-68/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-68/COBOL-74 V12B Documentation                           Page 22
DEFICIENCES


4.0                 Installation Instructions


See  the  COBOL-68/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.  Make COBDDT independent of COBOL-68 and COBOL-74.

     3.  Created separate command scanners  for  TOPS-10  and  TOPS-20
         versions

     4.  Made TOPS-20 version use COMND JSYS and be nativized.
COBOL-68/COBOL-74 V12B Documentation                           Page 23
DEFICIENCES


     5.  Totally separate parsing from processing of the commands.

     6.  Reshuffled code around so things are in a logical order.

     7.  New acc assignments.

     8.  Implement filename qualification.


[END OF FILE CBL12B.DOC]