Google
 

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]