Google
 

Trailing-Edge - PDP-10 Archives - BB-Z759A-SM - documentation/cbl13.doc
There are no other files named cbl13.doc in the archive.


CBL13.DOC -- COBOL V13 Documentation
January 1984






























COPYRIGHT (C) 1984 BY
DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.


THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER
COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
TRANSFERRED.

THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
CORPORATION.

DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
COBOL V13 Documentation                                         Page 2


                               CONTENT



     1.0       SUMMARY
     1.1       Bibliography
     1.2       Required Software
     2.0       EXTERNAL CHANGES AND OPTIONS
     2.1       Compiler Names
     2.2       Native Mode Compiler
     2.3       Simulataneous Update for RMS Files
     2.3.1     SMU Method 1
     2.3.1.1   Strategy of SMU Method 1
     2.3.1.2   New or Changed Syntax
     2.3.2     Scope of SMU Method 2
     2.3.2.1   New or Changed Syntax
     2.3.2.2   I-O-CONTROL Paragraph
     2.3.2.3   PROCEDURE DIVISION
     2.3.2.4   OPEN Verb
     2.3.2.5   Record Access Verbs
     2.3.3     RMS-20 Locks Used by SMU Method 2
     2.3.3.1   File Locks
     2.3.3.2   Index Capability Lock
     2.3.3.3   Data Locks
     2.4       ANS-8x Syntax
     2.5       ANS-8x Functionality Not in COBOL 13
     2.6       Other Changes
     2.7       Reserved Words
     2.8       Report Writer
     3.0       BUG FIXES
     3.1       COBOL Bug Fixes Since COBOL V12B(1131)
     3.2       COBOTS Bug Fixes Since OTS V12B(674)
     3.3       CPYLIB Bug Fixes
     3.4       ISAM Bug Fixes
     3.5       COBDDT Bug Fixes
     3.6       RERUN Bug FIxes
     4.0       RESTRICTIONS and KNOWN PROBLEMS
     4.1       Known Problems
     4.2       Restrictions From COBOL V12
     4.3       Restrictions From before COBOL V12
     4.4       Simultaneous Update
     5.0       INTALLATION INSTRUCTIONS
     6.0       INTERNAL CHANGES
     6.1       Miscellaneous Changes In V13
     6.2       .KEY Files
     7.0       RMS-20 Version 2
COBOL V13 Documentation                                         Page 3


1.0  SUMMARY

The major changes between COBOL V12B and COBOL V13 are:

     1.  No support for COBOL-68

     2.  Native mode compiler

     3.  Full support for  RMS  files  including  Simultaneous  Update
         using RMS V2

     4.  Implementation  of  much  of  proposed  ANS-8x  standard   of
         September,1981

     5.  The Report Writer module has been brought up to  full  ANS-74
         compliance

     6.  COBOL SORT uses stand-alone SORT in a non-zero section

     7.  RMS runs in a non-zero section

     8.  Bug fixes (see sec 3).

     9.  Other changes


COBOL version 13 consists of:
        COBOL        version 13(1515)
        COBOTS-V13   version 13(1110)
        COBDDT       version 13(46)
        ISAM         version 13(211)
        CPYLIB       version 13(7)
        RERUN        version 13(7)

The above software will run on all supported TOPS-20 monitors  for  KL
Model B processors and has been tested under TOPS-20 release 5.1.

COBOL version 13 conforms to the full ANS highest level except for:
Communication module is not supported.

See section 4 for known restrictions.

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


1.1  Bibliography

COBOL Language Manual AA-5059B-TK
COBOL Installation Guide (COBOL.INS)
CBL13.DOC AND SRT5.DOC
American  National  Standard  Programming  Language  COBOL   (CBEMA/X3
Secretariat Staff, 1828 L St., N.  W., Wash, D.C.  20036)
COBOL V13 Documentation                                         Page 4


1.2  Required Software

The following software or later is required to build COBOL V13.

     Name           Version
     ----           -------
     MACRO          53.2(1231)
     LINK            5.1(2041)
     MAKLIB          2.3(112)
     MACREL         Release 5
     PA1050         5.1(635)

     Note, this is the official Release 5.1 PA1050 plus all  published
     patches.   It  is required to run COBOL 13 programs.  Although it
     is not actually required to build COBOL we  recommend  that  this
     version  replace  the official release 5.1 version.  Please refer
     to the field test booklet for more information.
COBOL V13 Documentation                                         Page 5
EXTERNAL CHANGES and OPTIONS


2.0  EXTERNAL Changes AND Options


2.1  Compiler Names

     There is a long term desire to give the major compiler  the  most
     obvious  name.   That  is,  the  future  COBOL compiler should be
     called COBOL.  Currently this is not the case.  The old  COBOL-68
     compiler  is  called  COBOL  and the current COBOL-74 compiler is
     called CBL74.  This was appropriate when all our  customers  were
     COBOL-68  and  COBOL-74  was  new.   The compiler naming was done
     primarily to obtain government certification.  Now that  most  of
     our  customers  have  converted  to  COBOL-74,  we  have  dropped
     development of COBOL-68, and will move to COBOL-8x eventually.  

     The following  steps  should  be  performed  to  make  all  three
     compilers available on a system:

     1.  Rename the current COBOL-68 compiler to CBL68.EXE, leave  the
         OTS and rel file called LIBO12.EXE and LIBOL.REL.

     2.  Leave the COBOL-74 compiler, OTS, and rel files as they are.

     3.  Call the new compiler COBOL.EXE, the OTS COBOTS-V13.EXE,  the
         rel file COBLIB.REL.  (This is how it is distributed.)

     Make the following changes to source file  extensions  to  enable
     EXEC  class  commands  (COMPILE, EXECUTE, LOAD, DEBUG) to work as
     expected:

     1.  Change the extension of COBOL-68 programs to .C68 which  will
         invoke CBL68.

     2.  Change the extension of COBOL-74 programs to .C74 which  will
         invoke CBL74.

     3.  Change the extension of COBOL-74 programs to be run with  the
         V13 compiler to .CBL which will invoke with new V13 COBOL.

     The effect of this is:

     1.  Customers who wish to run COBOL-68 need to do nothing.   Keep
         the old compiler called COBOL and everything will work.

     2.  Those who wish to run both COBOL-68 and the  new  COBOL  must
         rename  all  their -68 source programs to have extension .C68
         and they all will work.

     3.  Those who wish to run the existing COBOL-74 compiler as  well
         as  the  new  8x  compiler will have to rename the -74 source
         programs or use a  switch  to  COMPIL  or  EXEC.   Note  that
         COBOL-74  version  12B  will  not be supported 3 months after
         version 13 is shipped.
COBOL V13 Documentation                                         Page 6
EXTERNAL CHANGES and OPTIONS


2.2  Native Mode Compiler

     The COBOL compiler has been fully nativized.   The  most  visible
     results are:

     1.  PA1050 is no longer used for the compiler, but  required  for
         the OTS.

     2.  All the temp files have the ;T attribute.

     3.  The command scanner was replaced by a modified version of the
         new  Fortran  V7  command scanner to allow the use of similar
         commands and long file names on source files.

     The native mode switches are:

     1.  /ABORT, /NOABORT

     2.  /ANSI-FORMAT
         Assume the source file is ANSI format with  sequence  numbers
         in columns 1-6 and comments starting in column 73.

     3.  /BINARY, /NOBINARY

     4.  /C74
         Use  COBOL-74  standard  for  the  incompatibilities  in  the
         compiler and OTS.

     5.  /C8
         Use  COBOL-8x  standard  for  the  incompatibilities  in  the
         compiler and OTS.

     6.  /CREF, /CROSS-REFERENCE, /CROSSREFERENCE, /NOCREF, /NOCROSS
         Create a cross-referenced listing.

     7.  /DEBUG
         Generate code for all DEBUG lines (those with D in column  7)
         that otherwise would be treated as comments.

     8.  /DISPLAY:{6|7|9}
         Default  display  mode  either   DISPLAY-6,   DISPLAY-7,   or
         DISPLAY-9.

     9.  /ECHO-OPTION

    10.  /ERRORS, /NOERRORS

    11.  /FLAG-ALLBUT:{DBMS
         /FLAG-IF    : HIGH
                       HIGH-INTERMEDIATE
                       LOW
                       LOW-INTERMEDIATE
                       NON-STANDARD
                       REPORT-WRITER}
COBOL V13 Documentation                                         Page 7
EXTERNAL CHANGES and OPTIONS


         This is the FIPS flagger.

    12.  /KILL:{A|B|C|D|E|F|G}
         Crash the compiler and dump the internal tables at the end of
         the  specified  compiler phase.  Needs the DEBUG feature test
         turned on in the compiler.

    13.  /LIBRARY

    14.  /LISTING

    15.  /MACRO, /MACHINE-CODE
         Include the machine code generated in the list file.

    16.  /MAIN-PROGRAM
         Force the output of a start address in spite of the  presence
         of subprogram syntax.

    17.  /MAP

    18.  /NODEBUG
         Treat all DEBUG lines (those with D in column 7) as comments.

    19.  /OBJECT

    20.  /ONE-SEGMENT
         Produce a one-segment object program with  a  shareable  OTS.
         This is required for Link overlays.

    21.  /OPTIMIZE
         Pass the object code through the peep-hole optimizer.

    22.  /OPTION:user-option-name
         Allows a user to specify one of a series of COBOL entries  in
         a  SWITCH.INI  file  for defaulting to different compile-time
         switches.

    23.  /PRODUCTION-MODE
         Omit debugging code from the object file.

    24.  /QUICK-MODE
         Turn on /OPTIMIZE and /PRODUCTION-MODE.  Do not  range  check
         performs.

    25.  /RANGE:
         Gives the range of line numbers to use for the /TRACE switch.
         Needs the Debug feature test switch on in the compiler.

    26.  /STACK:{octal number}
         Specifies the size of the run-time stack.

    27.  /SUBPROGRAM
         Suppress output of start address.  The program is to be  used
         only by CALL's.
COBOL V13 Documentation                                         Page 8
EXTERNAL CHANGES and OPTIONS


    28.  /SYNTAX
         Check program for errors, but do not generate code.

    29.  /TRACE:{ALL|DATA|ENVIRONMENT|IDENTIFICATION|PROCEDURE}
         Produce a syntax tree trace of the requested division.
         Needs the Debug feature test switch on in the compiler.

    30.  /TWO-SEGMENT
         Produce a two-segment object  program  with  a  non-shareable
         OTS.   The  high  segment contains the procedure division and
         most of the OTS;  the low segment contains all else.

    31.  VERSION:{74|8}
         This switch corresponds to  /C74  and  /C8  it  is  here  for
         compatibility with the TOPS-10 command scanner.


     The old one character switches will be in the  switch  table  but
     invisible.   The  correspondence between the old switches and the
     new ones are:

     1.  /A = /MACHINE-CODE

     2.  /C = /CROSS-REFERENCE

     3.  /D = /STACK:

     4.  /E = /SYNTAX

     5.  /H = /HELP

     6.  /I = /SUBPROGRAM

     7.  /J = /MAIN-PROGRAM

     8.  /K = /KILL:

     9.  /L = /LIBRARY

    10.  /M = /MAP

    11.  /N = /NOERRORS

    12.  /O = /OPTIMIZE

    13.  /P = /PRODUCTION-MODE

    14.  /Q = /QUICK-MODE

    15.  /R = /TWO-SEGMENT

    16.  /S = /ANSI-FORMAT
COBOL V13 Documentation                                         Page 9
EXTERNAL CHANGES and OPTIONS


    17.  /T = /TRACE:

    18.  /U = /ONE-SEGMENT

    19.  /V = /VERSION:

    20.  /X = /DISPLAY:9

    21.  /Y = /FLAG-ALLBUT:  or /FLAG-IF:
         The following /Y values are equivalent:

         1.  /Y:1 = /FLAG-ALLBUT:LOW

         2.  /Y:2 = /FLAG-ALLBUT:LOW-INTERMEDIATE

         3.  /Y:3 = /FLAG-ALLBUT:HIGH-INTERMEDIATE

         4.  /Y:4 = /FLAG-ALLBUT:HIGH

         5.  /Y:-D = /FLAG-IF:DBMS


     The switches /B and /F have not been implemented as they are  not
     used from a batch job.


2.3  Simultaneous Update for RMS files

      Available with RMS-20 Version 2

     This section describes the usage of Simultaneous  Update  ("SMU")
     Method  1  in  COBOL-20 Version 13 with RMS-20 Version 2 Relative
     and Indexed files, as indicated  in  the  COBOL-20  v13  Language
     Reference  Manual,  Chapter  9.  In COBOL-20 version 13 there are
     two types of Simultaneous Update as follows:  (1) Method 1, which
     is  the  form of SMU which has existed in COBOL-10/20 since 1976,
     and  (2)  Method  2,  which  has  been  available  previously  in
     BASIC-PLUS-2.  Please refer to Section 7.0 for details.


2.3.1  SMU Method 1

       Method 1 allows SMU using the RETAIN and FREE verbs on the  old
       TOPS-10-style  files and it was implemented in the run-time OTS
       module LSU.MAC using the ENQ facility of the TOPS-10 Monitor as
       well   as  its  own  construct,  the  Retained  Records  Table.
       Judicious access to the RRT allows LSU to police the  I-O  verb
       activity  of  the SMU user, causing the voluntary nature of the
       ENQ facility to be enforced.

       There have been two changes to the strategy of  SMU  Method  1.
       First,  it  has  been  extended  to RMS-20 Relative and Indexed
       Files.  This will be the primary concern of  the  remainder  of
       this  sub-section.   Second,  support  for  SMU  Method  1  for
COBOL V13 Documentation                                        Page 10
EXTERNAL CHANGES and OPTIONS


       TOPS-10-style Sequential files has been withdrawn.  After  much
       study  it was ascertained that the documented functionality had
       never been achieved with this particular  architecture.   Also,
       it  was  ascertained  that it could not be properly constructed
       under this architecture.


2.3.1.1   Strategy of SMU Method 1

          At the center of SMU Method 1  is  the  RRT  Table.   It  is
          created  by the COBOL compiler and is maintained at run-time
          by the LSU module of the OTS.  The  basic  strategy  was  to
          have RRT entries for RMS file keys included in this Table as
          well as the entries for the TOPS-10-style  files.   If  this
          could  be  done, it would allow the users the flexibility to
          include references to non-RMS and RMS-20 files in  the  same
          RETAIN  statement.   This was not a problem for RMS Relative
          files because they only have a single key.  However, it  was
          for  RMS  Indexed  files  because  they are multi-keyed.  At
          run-time the number of the key was  known  according  to  an
          internal numbering scheme which was established for the file
          when it was created.  This key number had to be included  in
          the  RRT entry along with the key value and the two words of
          header information.   This  caused  each  RRT  entry  to  be
          expanded  by  one  word,  but  it  had the desired effect of
          allowing the flexibility indicated above.

          The other main requirement of SMU Method 1 is that it do all
          of  its  own file and record locking, i.e., that it call the
          system ENQ facility to claim  its  required  locks.   RMS-20
          also has the same requirement.  Accordingly, we had to reach
          a compromise in order to avoid having  redundant  locks  and
          unnecessary  conflicts among locks.  The compromise is this.
          RMS-20 allows the user to set a FAC flag known as FB$SM1  at
          Open  time.   When  RMS-20  sees this flag, it claims an ENQ
          capability lock for the file which means that this  user  is
          doing  SMU  Method 1.  Thereafter, for the existence of that
          ENQ lock all other users who want to access the file must do
          SMU  Method  1.   All  other  users  are locked out.  RMS-20
          claims no other locks for the file.  Thereafter, LSU  claims
          all  of  the  ENQ  locks for the user, both for the file and
          index capabilities and for the data block locks.  The FB$SM1
          lock is released only when the user Closes the file.


2.3.1.2   New or Changed Syntax

          There is only one new or changed item  of  syntax.   In  the
          Procedure  Division  there  is  a  new capability on the KEY
          clause  of  the  RETAIN,  verb  which  allows  you  to  name
          Work-Fields  for Alternate Key fields for RMS-20 Multi-Keyed
          Indexed Files.  A comparison of the old and new  syntax  and
          its purpose follows.
COBOL V13 Documentation                                        Page 11
EXTERNAL CHANGES and OPTIONS


          For the old form of RETAIN, which still applies  to  non-RMS
          files,  you  specify  the  file-name  and  the identifier or
          literal for the KEY clause, thus:

           
                 RETAIN non-RMS-file KEY identifier/literal
           
                     FOR verb-selection [UNTIL FREED] ...
           

          For the TOPS-10-style files, the  identifier  could  be  any
          data  field  name,  or  in  fact a hard-coded literal, which
          conformed to the PICTURE and USAGE of the file's Record  Key
          as  specified  in  the  file's FD.  Also, there was only one
          identifier / literal allowed per KEY  clause.   This  format
          allowed the applications COBOL programmer to specify several
          key values to be Retained for the same Indexed file  in  one
          Retain  statement.   Since there was only one Record Key per
          FD, there was no confusion in the RRT  as  to  the  intended
          file key.

          In order to allow the same flexibility for RMS-20  files  we
          had  to  identify  the appropriate key somehow in the RETAIN
          syntax.  We did this by requiring that  the  particular  key
          field be named as the first entry in the KEY clause and that
          subsequent identifiers could be  added  on  to  the  clause,
          thus:

           
                 RETAIN RMS-file KEY RMS-record-key-n 
                                 FOR verb-selection [UNTIL FREED]
                            [identifier-1
                                 FOR verb-selection [UNTIL FREED]
                            ... ]
           

          This means that a key of the RMS-20 Indexed file must appear
          as  the  first  entry  in  a  KEY clause and that subsequent
          identifiers could refer to any other appropriate data  names
          in  the  program.   Please  note that literals were excluded
          because there was no good way to indicate how they conformed
          to the specifications of a particular file key at run-time.


2.3.2  SMU Method 2

       Method 2 allows programs written  in  COBOL-20  version  13  to
       share   files  with  programs  written  in  BASIC-PLUS-2  under
       TOPS-20.  Method 2 does file-sharing and record  locking  in  a
       manner similar to that of BASIC-PLUS-2.  Accordingly, a file is
       opened for  the  desired  mode  of  sharing  by  providing  the
       appropriate settings to RMS-20 in the FAC and SHR fields of the
       FAB.  A single record at a  time  from  a  particular  file  is
       locked, and the record is locked automatically when it is read.
COBOL V13 Documentation                                        Page 12
EXTERNAL CHANGES and OPTIONS


       The record is unlocked at  the  completion  of  an  appropriate
       update verb or at the time when another record is read from the
       file.  In addition, the syntax and usage of Method 2, including
       run-time  error  codes  returned  to  the  user, is intended to
       parallel that of VAX VMS COBOL version 1.  This  will  allow  a
       measure  of  compatibility  between COBOL-20 version 13 and the
       VAX COBOL  product.   On  the  other  hand,  Method  2  is  not
       compatible with any other type of COBOL-20 Simultaneous Update,
       and attempts to mix the two in the same COBOL-20  program  will
       result in compile-time diagnostic messages.

       Since Method  2  provides  only  single  record  locking  on  a
       particular  file  it  does  not do certain things for the user.
       First, it limits his flexibility in that he is able  to  access
       only  one  record at a time on a file, with the result that the
       concept of programmed  user  transactions  is  rather  limited.
       Second,   there   is  no  journalling  or  recovery  capability
       available.  Third, if two or more files are accessed by sharing
       programs  concurrently,  the possibility of deadlock or "deadly
       embrace" exists, and it can be managed or overcome only by  the
       proper usage of programming and design conventions at the level
       of the applications program.


2.3.2.1   New or Changed Syntax

          There are two areas where there is new  or  changed  syntax,
          (1)  the  I-O-CONTROL  paragraph of the Environment Division
          and (2) the I-O verbs of the Procedure Division.


2.3.2.2   I-O-CONTROL PARAGRAPH

          The following syntax has been added here.
          
              APPLY BASIC-LOCKING ON RMS-file-name-1 [RMS-file-name-2 ...].
          
          This  syntax  declares that SMU Method 2 will be used on the
          files named, and also it implies that no other type  of  SMU
          will  be  used  in the program.  However, other files may be
          opened "stand-alone", in other words, not to  be  shared  at
          all.   This  syntax  can  be used only for RMS-20 files.  It
          cannot be used for non-RMS files.  If the user  attempts  to
          use  it  for non-RMS files, a syntax error will be generated
          at compile time in this case.


2.3.2.3   PROCEDURE DIVISION

          A change has been made to the syntax of the Open  verb,  and
          changes  have been made to the way that the record I-O verbs
          work.  Also, the RETAIN, FREE and  UNLOCK  verbs  have  been
          made  illegal  if used in conjunction with SMU Method 2, and
          they will be  flagged  with  diagnostic  messages  from  the
COBOL V13 Documentation                                        Page 13
EXTERNAL CHANGES and OPTIONS


          compiler  if  a  program  contains  the  APPLY BASIC-LOCKING
          syntax.  (A stub was created for the  UNLOCK  verb  just  so
          that it could be flagged if found.)


2.3.2.4   OPEN Verb

          For SMU Method 2 you do not have to open all  files  in  one
          Open  statement.   In fact, each file to be so opened can be
          Opened in its own Open statement.  This is  allowed  by  the
          asynchronous  nature of the locking done for Method 2.  (All
          of the file and record locking is done within RMS-20 itself,
          and  none is done by the COBOL run-time OTS.) All files have
          to be opened in I-O (INPUT-OUTPUT) mode and each  file  open
          is  done  by  its own call to an RMS Open routine.  The file
          locks are acquired for the files individually instead of all
          at once as they are in COBOL-10/20 version 12B SMU.

          The Unavailable clause is available for each file  which  is
          opened  under SMU Method 2, instead of just once as it is in
          SMU as of COBOL-10/20 version 12B.  Thus,

              OPEN I-O RMS-file-name-1 
                       FOR verb-selection [ALLOWING] OTHERS verb-selection
                          [UNAVAILABLE action-clauses]
          
                   [I-O RMS-file-name-2 
                       FOR verb-selection [ALLOWING] OTHERS verb-selection
                          [UNAVAILABLE action-clauses] ...] .

          However, if the Unavailable path is taken  before  all  file
          opens  are  attempted,  no  attempt will be made to open the
          remaining files in that Open  statement.   It  is  suggested
          that the programmer use the UNAVAILABLE clause and that each
          file be opened in its own separate Open statement.   If  the
          file  open  is  attempted without the UNAVAILABLE clause and
          the file has already been incompatibly locked by some  other
          competing run-unit, the attempting run-unit will get a Fatal
          run-time error accompanied by the message  "Requested  locks
          are not all locked.  ?LBL520 FILE IS BUSY".


2.3.2.5   Record Access Verbs

          There are three major changes in the way in which the record
          access  verbs work.  First, only one record at a time from a
          file can be locked.  Second, all necessary record locking is
          done  by  the READ verb.  If the file is open FOR READ only,
          the record is locked only for the duration of the READ verb.
          However, if the file is open FOR some variety of Update, the
          record is locked until  the  completion  of  an  appropriate
          update  or  until the next READ to that file, or if the next
          action is to close the file the lock  is  released  at  that
          point.  Third, if a File-Status code of 9x is issued for the
COBOL V13 Documentation                                        Page 14
EXTERNAL CHANGES and OPTIONS


          verb,  execution  of  the  program  continues  to  the  next
          executable   statement   in   normal  sequence.   There  are
          currently three such codes:  92 --  meaning  record  already
          locked  (presumably  by  another run unit), and 93 -- issued
          for a Rewrite or Delete means that a previous valid Read  or
          Start  for  the  record  was  not done by the user.  Code 94
          means that the failed record operation was not requested  by
          the run-unit in the For clause of the OPEN verb.

          Rewrite and Delete for SMU Method 2 do  not  incorporate  an
          implicit retrieval of the record, as does version 12B Record
          Access for RMS-10/20 files.  On the other hand, the  program
          may  attempt  to  Write a record to the file without doing a
          previous retrieval even  though  good  programming  practice
          would  recommend  that the write be done on the basis of the
          previous failed retrieval.  The user  must  test  for  these
          codes  as  applicable  by means of appropriate IF statements
          immediately following the record access  statements  in  the
          normal sequence of execution.  For example,

              READ RMS-FILE-1 INVALID KEY GO TO NOT-FOUND-PARAGRAPH.
              IF FILE-STATUS-1 = 92       GO TO RECORD-LOCKED-PARAGRAPH.

          In order to test the FILE-STATUS field, the programmer  must
          declare  it for the file in its SELECT statement and specify
          it as a two-digit field in the  Working-Storage  Section  of
          the program's Data Division.

          If the program receives the File-Status code of 92,  it  has
          not  acquired  a  lock  on  the  record  and it has also not
          acquired the record, and any further attempt to process  the
          record  will  result  in  errors.   Also, if the program has
          locks on other records from other files at the same time, it
          may  have  to  release some or all of them in order to avoid
          the likelihood of deadlock with another sharing run-unit.


2.3.3  RMS-20 Locks Used by SMU Method 2

       RMS-20 uses three different levels of locks:   (1)  for  Files,
       (2)  for  Index  Capability and (3) for Data (either Buckets in
       the case of Indexed files or RFA's for Sequential and  Relative
       files).  RMS-20 acquires and releases locks through the ENQ/DEQ
       facility of the TOPS-20 Monitor.  These  locks  can  be  either
       shared or exclusive.


2.3.3.1   File Locks

          There are currently two types of locks which RMS-20 acquires
          for  files,  a  Retrieval  lock  and  an  Update  lock.  The
          Retrieval lock is acquired for the current run-unit  in  any
          event,  and  it can be shared if you Allow others READ.  The
          Update lock is acquired only if run-unit opens the file  for
COBOL V13 Documentation                                        Page 15
EXTERNAL CHANGES and OPTIONS


          WRITE, REWRITE, DELETE or ANY.  It can also be shared if you
          Allow others at least one of these update capabilities.


2.3.3.2   Index Capability Lock

          This lock refers only to Indexed files.  It is acquired when
          you  do  a Read to an Indexed file, and it is shared at this
          point.  This lock is held during the Read verb and until the
          beginning  of  the following update verb.  If that verb is a
          Write verb, it is upgraded to an exclusive lock  and  it  is
          held  all the way through the verb execution.  Otherwise, it
          is held only to the beginning of the update verb.


2.3.3.3   Data Locks

          Data locks can be on data buckets for Indexed files, or they
          can  be on RFA's for Relative Files (RFA means Record's File
          Address).  These locks are acquired shared  for  Read  verbs
          and  are upgraded to exclusive for update verbs like Rewrite
          and Delete.  The Write verb can acquire the  exclusive  lock
          immediately.   All  locks are released upon completion of an
          appropriate record access sequence.   This  means  that  the
          user  should  be  careful of the scope of the locks that are
          retained.  For instance, the presence of a shared lock on an
          Index  Capability  would  cause the failure of an attempt to
          update a record on a file.


   2.4  ANS-8x Syntax

     Introduction to the Language

   1.  Alphanumeric Literal
       The maximum size has been increased from 120 characters to  160
       characters (dpANS IV-9 4.2.2.2.1).
       VAX allows 256 characters version 13 will also allow 256.

   2.  System-name in SOURCE-COMPUTER and OBJECT-COMPUTER clause.
       The computer-name in these clauses should be a system-name  not
       a  reserved  word.   They are also optional in ANS-8x.  This is
       implementor defined.  VAX uses it for documentation  only  i.e.
       no  effect.  The same is true of us except that the name has to
       be  one  of  a  number   of   reserved   words:    DECSYSTEM10,
       DECSYSTEM-10,  DECSYSTEM-20,  PDP-10.   Version  13  will allow
       anything here.  This will save on symbol table space and  space
       in  the  syntax  trees  plus simplify the manual in addition to
       following the standard.


   IDENTIFICATION DIVISION
COBOL V13 Documentation                                        Page 16
EXTERNAL CHANGES and OPTIONS


   1.  PROGRAM-ID program-name IS INITIAL PROGRAM
       An INITIAL program is one  that  has  its  data  set  to  their
       initial  value  each time it is called (dpANS X-11).  This will
       be done by reading the EXE file before each call.


   ENVIRONMENT DIVISION

   1.  COBOL STANDARD IS {74|8}
       added to OBJECT-COMPUTER clause.
       This allows the user to specify for the few cases  that  matter
       what  should  happen (see later).  This will allow for graceful
       migration from COBOL-74 to COBOL-8x.  There is a  corresponding
       compile time switch /VERSION or /C74 or /C8.

   2.  ALPHABET alphabet-name IS STANDARD-2
       added to SPECIAL-NAMES clause dpANS VI-12.
       This adds the required word ALPHABET and adds STANDARD-2 as  an
       option.    STANDARD-2   is   the  ISO  7-bit  code  defined  in
       International Standard 646.
       This appears to be identical with ASCII with the  exception  of
       the interpretion of the pound sign (  or  ).

   3.  SYMBOLIC CHARACTERS
       added to SPECIAL-NAMES clause dpANS VI-12.

   4.  BLOCK CONTAINS
       added to SELECT clause dpANS VII-7.
       This is the same syntax as in the FD of the  DATA  DIVISION  of
       COBOL-74  (CLM  4-13  and 4-15).  The syntax will exist in both
       places.

   5.  CODE-SET
       added to SELECT clause dpANS VII-7.
       This is the same syntax as in the FD of the  DATA  DIVISION  of
       COBOL-74  (CLM  4-13  and 4-17).  The syntax will exist in both
       places.

   6.  PADDING CHARACTER
       added to SELECT clause dpANS VII-7.

   7.  RECORD DELIMITER
       added to SELECT clause dpANS VII-7.


   DATA DIVISION

   1.  The number of subscripts increased from 3 to either 7 or 48.
       The original DpANS specified 48, the latest word is that it may
       be reduced to 7.  We will use what ever the standard calls for,
       which is currently 48.
COBOL V13 Documentation                                        Page 17
EXTERNAL CHANGES and OPTIONS


   2.  RECORD IS VARYING IN SIZE ...
       added to FD of FILE SECTION (dpANS V-8, V-9, V-10, V-11).
       This is an  extension  of  the  RECORD  CONTAINS  integer-1  TO
       integer-1 CHARACTERS clause.

   3.  ACCESS MODE IS {SEQUENTIAL|RANDOM|DYNAMIC}
       added to FD of FILE SECTION (dpANS V-8 through V-11).
       This is the  same  syntax  as  in  the  SELECT  clause  of  the
       ENVIRONMENT  DIVISION  of  COBOL-74 (CLM 3-10, 3-11, and 3-12).
       The syntax will exist in both places.

   4.  FILE STATUS IS ...
       added to FD of FILE SECTION (dpANS V-8 through V-11).
       This is the  same  syntax  as  in  the  SELECT  clause  of  the
       ENVIRONMENT  DIVISION  of  COBOL-74 (CLM 3-10, 3-11, and 3-12).
       The syntax will exist in both places.

   5.  RECORD KEY IS ...
       added to FD of FILE SECTION (dpANS V-10).
       This is the  same  syntax  as  in  the  SELECT  clause  of  the
       ENVIRONMENT  DIVISION  of COBOL-74 (CLM 3-12).  The syntax will
       exist in both places.

   6.  ALTERNATE RECORD KEY IS ...
       added to FD of FILE SECTION (dpANS V-10).
       This is the  same  syntax  as  in  the  SELECT  clause  of  the
       ENVIRONMENT  DIVISION  of COBOL-74 (CLM 3-12).  The syntax will
       exist in both places.


   PROCEDURE DIVISION

   1.  Add explicit scope terminators (dpANS IV-27).
       These are the reserved words of the form END-*.  They are:
       END-ADD,   END-CALL,   END-COMPUTE,   END-DELETE,   END-DIVIDE,
       END-ENTER,   END-EVALUATE,   END-FREE,   END-IF,  END-MULTIPLY,
       END-OPEN,  END-PERFORM,  END-READ,   END-RECEIVE,   END-RETAIN,
       END-RETURN,  END-REWRITE,  END-SEARCH,  END-START,  END-STRING,
       END-SUBTRACT, END-UNSTRING, END-WRITE.

   2.  Add  ALPHABETIC-UPPER  and  ALPHABETIC-LOWER   to   the   class
       conditional.

   3.  ACCEPT FROM DAY-OF-WEEK
       Added to ACCEPT statement (dpANS VI-70).

   4.  Add BY {REFERENCE|CONTENT}
       to CALL statement (dpANS X-28).

   5.  Add CONTINUE statement (dpANS VI-75).

   6.  In DISPLAY ...  WITH NO ADVANCING
       WITH and ADVANCING are now optional (dpANS VI-76).
COBOL V13 Documentation                                        Page 18
EXTERNAL CHANGES and OPTIONS


   7.  Add EVALUATE ...  statement (dpANS VI-81).

   8.  Add END PROGRAM statement (dpANS X-10).

   9.  Add INITIALIZE ...  statement (dpANS VI-89).

  10.  Add format 4 INSPECT statement (dpANS VI-92).

  11.  Add GIVING multiple files to MERGE statement (dpANS XII-8).

  12.  Add WITH TEST {BEFORE|AFTER} to format 3 of  PERFORM  statement
       (dpANS VI-106).

  13.  Add format 4, in-line PERFORM statement (dpANS VI-107).

  14.  Add SET switch-name TO {ON|OFF} (dpANS VI-124).

  15.  Add SET condition-name TO TRUE (dpANS VI-124).

  16.  Add WITH DUPLICATES IN ORDER to SORT statement (dpANS XII-16).

  17.  Add GIVING multiple files to SORT statement (dpANS XII-16).

  18.  Add the new FILE STATUS  codes  to  SEQUENTIAL  (dpANS  VII-2),
       RELATIVE (dpANS VIII-2) and INDEXED (dpANS IX-2) files.


   2.5 ANS-8x Functionality Not in COBOL 13

     1.  Contained programs

         This is COBOL version of block structuring.  

     2.  REPLACE statement

         A new lexical scanner is required to  handle  this  and  COPY
         REPLACING.  VAX COBOL Version 2 did not provide this feature.

     3.  ANS-8x FIPS flagger

         We will not know what  the  FIPS  flagging  requirements  are
         until a replacement for FIPS PUB 2-21 is published which will
         not be until the dpANS has become a standard.

     4.  Communications Module on TOPS-20

         Not implemented

     5.  ANS-8x DEBUG Module

         We have not  implemented  the  8x  extension  to  handle  the
         additional  subscripts.   We  will continue to use the ANS-74
         version of the DEBUG Module.
COBOL V13 Documentation                                        Page 19
EXTERNAL CHANGES and OPTIONS


         The changes to the DEBUG-ITEM that would be required are:

         1.  DEBUG-SUB-NUM

         2.  DEBUG-SIZE

         3.  DEBUG-NUMERIC-CONTENTS

         4.  REFERENCE-MODIFIER

         5.  DEBUG-SUB-ITEM

         The other changes are:

         1.  Add WITH CONVERSION to the USE statement



   2.6 Other Changes

     1.  Full support for COMP-2 data items.

     2.  Underscore
         VAX allows underscore as part  of  a  user-name.   VAX  COBOL
         version 2 equates underscore with hyphen.  We do the same.

     3.  Remove DENSITY IS {200|556} from SELECT clause.

     4.  ORGANIZATION IS [RMS] {SEQUENTIAL|RELATIVE}
         added to SELECT clause.
         This is an extension of the INDEXED clause to allow COBOL  to
         access all types of RMS files not just INDEXED ones.

     5.  PROTECTION IS ...
         added to VALUE OF ID clause of FD of FILE SECTION.  This sets
         the protection code of a file created for output.

     6.  SUPPRESS TRAILING BLANKS
         added to OBJECT-COMPUTER clause
         This is to remove the suppress trailing blanks  feature  test
         switch  from  the compiler and OTS while still preserving the
         functionality.   This  is  still  used  by  several  of   our
         customers  who  expressed displeasure when it was proposed to
         remove the feature test switch.

     7.  The FIPS flagger will flag all ANS-8x extensions  at  the  8x
         level.  It will flag all leftover ANS-68 Report Writer syntax
         at the 68 level.

     8.  Add  switch  /V:74  and  /V:8  to  specify  which   way   the
         incompatibilities compile.  This switch takes precedence over
         the COBOL STANDARD IS syntax.  In addition the  switch  /V:74
         deletes  the  new ANS-8x reserved words.  The total effect of
         this switch is to allow any legal COBOL-74 program to compile
COBOL V13 Documentation                                        Page 20
EXTERNAL CHANGES and OPTIONS


         and  execute  exactly  as  with  12B.   Note  that  the COBOL
         STANDARD IS syntax does not delete the reserved words.


   2.7 Reserved Words

     1.  The following are no longer reserved words:
         DECSYSTEM10, DECSYSTEM-10, DECSYSTEM-20, PDP-10.

     2.  The following are new reserved words from dpANS:
         ALPHABET, ALPHABETIC-LOWER,  ALPHABETIC-UPPER,  ALPHANUMERIC,
         ALPHANUMERIC-EDITED,   BLANKS,   COMMON,  CONTENT,  CONTINUE,
         CONVERSION, CONVERTING,  DAY-OF-WEEK,  ,  END-ADD,  END-CALL,
         END-COMPUTE,  END-DELETE,  END-DIVIDE,  END-EVALUATE, END-IF,
         END-MULTIPLY, END-PERFORM, END-READ, END-RECEIVE, END-RETURN,
         END-REWRITE, END-SEARCH, END-START, END-STRING, END-SUBTRACT,
         END-UNSTRING, END-WRITE, EVALUATE, EXTERNAL,  FALSE,  GLOBAL,
         INITIALIZE,  NUMERIC-EDITED,  ORDER,  OTHER,  PADDING, PURGE,
         REFERENCE,  REFERENCE-MODIFIER,  REPLACE,  STANDARD-2,  TEST,
         THEN, TRUE.

     3.  The following are new non-dpANS reserved words:
         APPLY,  BASIC-LOCKING,  COMP-2,  COMPUTATIONAL-2,  END-ENTER,
         END-FREE, END-OPEN, END-RETAIN, PROTECTION, UNLOCK.

     2.8  Report Writer

     The version 12B Report  Writer  was  COBOL-68  syntax  with  some
     COBOL-74   extensions.   There  are  no  significant  differences
     between ANS-74 standard and the dpANS (there  are  minor  changes
     which  are really differences in the nucleus).  However there are
     44 differences listed in the ANS-74 standard between  ANS-68  and
     ANS-74.   This is not to say that there are that many differences
     between ANS-74 and COBOL-74 12B.  The differences are numbered as
     (nn)  where  nn  goes from 85 to 128 inclusive are the changes in
     chapter XIV in ANS-74.

     Note that many of the differences  are  new  restrictions  rather
     than new features.

     These changes can be divided into the following cases:

     1.  Code and documentation correct in 12B

     2.  As above but with some restrictions

     3.  Code correct in 12B but documentation needs changing

     4.  Code and documentation need changing


     1.  Code and documentation correct in 12B

       (85)  PAGE-COUNTER and LINE-COUNTER are described  as  unsigned
COBOL V13 Documentation                                        Page 21
EXTERNAL CHANGES and OPTIONS


             integers that must handle values from 0 through 999999.

       (88)  PAGE-COUNTER is always generated.

       (90)  LINE-COUNTER is always generated.

      (115)  The phrases of the PAGE clause  may  be  written  in  any
             order.

      (126)  The SUPPRESS statement.
             This was implemented in 12B.

     2.  As above but with some restrictions

       (86)  The value in LINE-COUNTER must  not  be  changed  by  the
             user.
             Version 13 will not enforce this.

      (107)  LINE clause integers must not  exceed  three  significant
             digits in length.
             The integer must have a value less than 512 (9 bits).

      (116)  In the PAGE clause, the maximum size of  the  integer  is
             three significant digits.
             The integer must have a value less than 512 (9 bits).

      (111)  Integer-2 in the NEXT GROUP clause must not exceed  three
             significant digits in length.
             The integer must have a value less than 512 (9 bits).

     3.  Code correct in 12B but documentation needs changing

       (92)  The words LINE and LINES are optional in the PAGE clause.
             This is true in 12B but the manual needs changing.

       (94)  A report may not be sent to more than one file.

             This is true of  12B,  the  diagnostic  message  will  be
             changed  to  be  more meaningful.  The restriction is not
             documented.

       (95)  RESET is no longer a clause;  it is a  phrase  under  the
             SUM clause.
             This has no real effect on existing programs, however the
             documentation is incorrect.

     4.  Code and documentation needs to be changed

       (87)  LINE-COUNTER, PAGE-COUNTER and sum counters must  not  be
             used as subscripts in the Report Section.
             Version 13 will give a warning and continue.

       (89)  PAGE-COUNTER does not need to be qualified in the  Report
             Section.
COBOL V13 Documentation                                        Page 22
EXTERNAL CHANGES and OPTIONS


       (91)  LINE-COUNTER does not need to be qualified in the  Report
             Section.

       (93)  The  DATA  RECORDS  clause  and  the  REPORT  clause  are
             mutually exclusive.
             Version 13 will give a warning.

       (96)  Multiple  SUM  clauses  may  be  specified  in  an  item;
             multiple UPON phrases may be specified.
             12B already supports multiple SUM clauses.

       (97)  Up to three hierarchical levels are permitted in a report
             group description.
             Version 13 will give a warning and continue.

       (98)  A report group level 01 entry cannot be elementary.
             Version 13 will give a warning and continue.

       (99)  An entry that contains a LINE NUMBER clause must not have
             a  subordinate  entry  that  also  contains a LINE NUMBER
             clause.
             Version 13 will give a warning and continue.

      (100)  An entry that contains a COLUMN NUMBER clause but no LINE
             NUMBER  clause  must  be  subordinate  to  an  entry that
             contains a LINE NUMBER clause.
             Version 13 will give a warning and continue.

      (101)  An entry that contains a VALUE clause must  also  have  a
             COLUMN NUMBER clause.
             Version 13 will give a warning.

      (102)  In the CODE clause, mnemonic-name has been replaced by  a
             literal.   (A  two character nonnumeric literal placed in
             the first two character positions of the logical record).
             Version 13 will support both mnemonic-name  and  literal.
             If  the  literal  is  not  exactly  two characters long a
             warning  will  be  given,  if  it  is  longer  than   two
             characters   it   will   be   truncated  to  exactly  two
             characters.

      (103)  If the CODE clause is specified for any report in a file,
             it must be specified for all reports in the same file.
             12B claims that all the CODE clauses  must  be  the  same
             size  for  any  file,  this would presumably include zero
             size (i.e.  missing).  However this is never  tested  and
             CODE  sizes  that are different seem to work.  Version 13
             will give a warning if CODE exists on some  but  not  all
             reports in a file.

      (104)  Control data items may not be subscripted or indexed.

      (105)  Each data-name in the  CONTROL  clause  must  identify  a
             different data-item.
COBOL V13 Documentation                                        Page 23
EXTERNAL CHANGES and OPTIONS


             Version 13 will give a warning and continue.

      (106)  The GROUP INDICATE clause may only  appear  in  a  DETAIL
             report   group   entry  that  defines  a  printable  item
             (contains a COLUMN and PICTURE clause).
             Version 13 will give a warning and continue.

      (108)  The NEXT PAGE phrase of the  LINE  clause  is  no  longer
             legal in RH, PH, and PF groups.
             Version 13 will give a warning and continue.

      (109)  A relative LINE NUMBER clause can no longer be the  first
             LINE NUMBER clause in a PAGE FOOTING group.
             Version 13 will give a warning and continue.

      (110)  A NEXT GROUP clause without a LINE clause  is  no  longer
             legal.
             Version 13 will give a warning and continue.

      (112)  If the PAGE clause is omitted, only a relative NEXT GROUP
             clause may be specified.
             Version 13 will give a warning and continue.

      (113)  The NEXT PAGE phrase of the NEXT GROUP clause must not be
             specified in a PAGE FOOTING report group.
             Version 13 will give a warning and continue.

      (114)  The NEXT GROUP clause must not be specified in  a  REPORT
             FOOTING report group.
             Version 13 will give a warning and continue.

      (117)  It is no longer possible to sum upon an iten  in  another
             report.
             Version 13 will give a warning and continue.

      (118)  Source-sum correlation is not required.  (Operands  of  a
             SUM  clause  need  not  be operands of a SOURCE clause in
             DETAIL groups).

      (119)  TYPE clause data-names may not be subscripted or indexed.

      (120)  PAGE HEADING  and  PAGE  FOOTING  report  groups  may  be
             specified  only  if  a  PAGE  clause  is specified in the
             corresponding report description entry.
             Version 13 will give a warning and continue.

      (121)  In CONTROL  FOOTING,  PAGE  HEADING,  PAGE  FOOTING,  and
             REPORT  FOOTING  report  groups,  SOURCE  clauses and USE
             statements may not reference:

             a.  Group data items containing control data items.

             b.  Data items subordinate to a control data item.
COBOL V13 Documentation                                        Page 24
EXTERNAL CHANGES and OPTIONS


             c.  A redefinition or renaming of any part of  a  control
             data item

             In PAGE HEADING and PAGE FOOTING  report  groups,  SOURCE
             clauses  and  USE  statements  must not reference control
             data-names.

      (122)  In summary reporting, only one detail group is allowed.
             Version 13 will give a warning and continue.

      (123)  The description of a report must  include  at  least  one
             body group.

      (124)  Report files must be opened with either the  OPEN  OUTPUT
             or OPEN EXTEND statement.
             Version 13 will give a warning and continue.

      (125)  A  file  described  with  a  REPORT  clause   cannot   be
             referenced  by any input-output statement except the OPEN
             and CLOSE statement.

      (127)  If no GENERATE statements have been executed for a report
             during  the interval between the execution of an INITIATE
             statement and a TERMINATE statement for that report,  the
             TERMINATE  statement  does  not  cause  the Report Writer
             Control System to perform any of the related processing.

      (128)  A USE procedure may refer to a DETAIL group.
COBOL V13 Documentation                                        Page 25
EXTERNAL CHANGES and OPTIONS


3.0  BUG FIXES


3.1  COBOL BUG FIXES SINCE COBOL V12B(1131)

     COBOL version 13 contains COBOL edits 1300  through  1515  except
     where not applicable.

     Edits to  68274  the  COBOL-68  to  COBOL-74  converter  are  not
     included since none of the converter code is in version 13.
     These edits are:  1304, 1340, 1343, 1350, 1357, 1367, 1413, 1415,
     1417, 1422, 1423, 1425, 1426, 1427, 1436, 1444, 1445, 1454, 1455.

     The following edits  are  not  included  because  they  apply  to
     COBOL-68  only,  were  done  differently  in  v13,  or  have been
     superseded by later edits.
     These edits are: 1320, 1322, 1326, 1334, 1355, 1400, 1403, 1441.

     See file COBVER.MAC for a complete record of  the  edits  to  the
     compiler.


3.2  COBOTS BUG FIXES SINCE OTS V12B(674)

     COBOTS version 13 contains COBOTS edits 1000 through 1110  except
     where not applicable.

     The following edits  are  not  included  because  they  apply  to
     COBOL-68  only,  were  done  differently  in  v13,  or  have been
     superseded by later edits.
     These edits are: 1012

     See file COBVER.MAC for a complete record of the edits to COBOTS.


3.3  CPYLIB BUG FIXES

     COBOL Version 13 contains CPYLIB edits 1 through 7.


3.4  ISAM BUG FIXES

     COBOL Version 13 contians ISAM edits 200 through 211.


3.5  COBDDT BUG FIXES

     COBOL contains COBDDT edit 40 through 46.


3.6  RERUN BUG FIXES

     None.
COBOL V13 Documentation                                        Page 26
RESTRICTIONS and KNOWN PROBLEMS


4.0  RESTRICTIONS and KNOWN PROBLEMS


4.1  Known Problems



     1.  Qar 302089 - Report Writer Problem

         The report file may become  corrupted  due  to  an  incorrect
         return from a call to a COBOTS routine to write a data line.

     2.  Qar 302095 - Compiler halts in phase E

         The compiler fails in phase  E  while  processing  a  COMPUTE
         statement   that  has  a  syntax  error  in  it.   A  closing
         parenthesis is missing on a subscripted field.

     3.  Qar 302096 - Format of the 'TIME' is not the same as V12B

         The routine which nativised this code resulted in a value  of
         HHMMSS  instead  of  HHMMSShh.   Since  it  can not be easily
         changed to yield the same results, the nativised code will be
         removed.   This  is  being  done not because more accuracy is
         expected, but to allow existing programs to function the same
         way.

     4.  Qar 302098 - Copy replacing statement working incorrectly

         The  compiler  copies  in  a  library   module   incorrectly,
         resulting  in a syntax error.  Other programs can copy in the
         same module without problem.

     5.  Qar 302100 - 'CBLCMD Command too long' in batch log file

         In a  batch  command  file,  if  a  series  of  programs  are
         requested to be compiled, an error message is printed 'CBLCMD
         Command too long for internal  buffer'.   It  appears  to  be
         related  to  a  monitor  change as it only happens at certain
         edit levels.

     6.  Qar 302101 - Compiler halts in phase D, scanning a 'GENERATE'
         statement

         The compiler fails in phase D while scanning a report  writer
         statement whose source data is from DBMS.

     7.  Qar 302102 - Run-time failure from simultaneous update

         If the program is using simultaneous update  syntax  with  an
         RMS file whose primary key is not the first data field in the
         file, a run-time failure occurs if there  is  an  attempt  to
         write, rewrite, or delete a record.
COBOL V13 Documentation                                        Page 27
RESTRICTIONS and KNOWN PROBLEMS


     8.  Qar 302104 - Names of programs being compiled not displayed

         When  compiling  programs  via  an  indirect   command   file
         (COBOL>TAKE  CBLSPECS.CMD)  the  names  of the programs being
         compiled are not displayed as they are being compiled.

     9.  Qar 302105 - RMSIO always loads in DDT

         RMSIO always loads in DDT.  This is true and the code will be
         switched to being debug code only.



4.2  Restrictions from COBOL v12


     COPY REPLACING has some problems in that it is  not  possible  to
     replace either part of PIC xyz without replacing the whole.
     i.e.  REPLACING ==PIC S9(10)==
     will work
     but
     REPLACING ==PIC== or REPLACING ==S9(10)== will not.

     Note, it was never  the  intent  (and  it  contravenes  the  ANSI
     standard) for COPY REPLACING to replace part of a data-item.
     REPLACING AA by BB should not turn AA-xyz into BB-xyz.



                               ********
                               * NOTE *
                               ********

     We do not recommend that this change  be  installed  unless  your
     installation  is  having  problems  transfering  data  TO  an IBM
     machine.

     The ASCII to EBCDIC translation table was changed in  version  12
     (as  the  result  of  several  SPRS)  so  that the translation of
     graphics was more correct.   However  it  is  still  not  correct
     according  to  IBM  documentation.   It seems that we now in some
     cases generate incorrect EBCDIC characters for minus  zero.   The
     interim  solution  for  those  who see this problem is to put the
     translation table back the way  it  was  knowing  then  that  the
     translation of some graphics will be wrong.

     Please refer to Section 1 of the field test booklet for the patch
     to fix this problem.


4.3  Restrictions from before COBOL v12

     Error not detected.
     A RESET FINAL clause is legitimate only when FINAL is given as  a
COBOL V13 Documentation                                        Page 28
RESTRICTIONS and KNOWN PROBLEMS


     control.   Violation  of  this  rule  goes  undiagnosed.  A RESET
     clause  can  only  accompany  a  sum  clause.   A  RESET   clause
     accompanying a source clause receives no diagnostic.

     Incorrect error message.
     DATA-name RC which is defined on last line of the working-storage
     section is incorrectly diagnosed as undefined in the declaratives
     area of procedure division.  It is considered to be defined ok in
     the report section, however.

     Incorrect error message.
     COBOL rules make the presence of  a  data-name  optional  in  the
     control  footing  report description provided there is no need to
     reference the report group.  In the case where the  data-name  is
     present  the  program  compiles without error.  In the case where
     the data name is not present the compiler seems to be disallowing
     sections in the procedure division.

     DBMS error handling
     Errors which relate to the schema are not tabulated in the  error
     count, and they go only to the TTY.


4.4  SIMULTANEOUS UPDATE:

     Because of a problem in the TOPS-20 monitor, records updated in a
     file  via  SMU  mode  which  cause  the  length of the file to be
     extended by one program will not be found by  other  users  until
     both  programs  close  and  reopen  the  file.   To overcome this
     restriction for ISAM files, the ISAM utility sets the  file  size
     for  .IDX  and  .IDA  files  to  +infinity (2**35 -1) in the file
     descriptor block (FDB).  Please  note  that  the  files  physical
     length  is  the correct number of bytes written.  The file's size
     in pages is displayed correctly by VDIRECTORY.

     This fix allows simultaneous update users to process  ISAM  files
     correctly.   However  some  programs or TOPS-20 commands (such as
     FILCOM or QUEUE LPT:  = FILE/PRINT:OCTAL) which attempt to access
     the  file  sequentially  will  run  improperly  -  they will keep
     running.

     A special purpose utility SETEOF.EXE is included  in  the  BINARY
     save  set.  SETEOF may be used to extend the file size in the FDB
     to a large, user specified size or  to  reduce  a  file  with  an
     extended file size to the actual file size (rounded upward to the
     next  page).   This  will  allow  users  of   random   files   in
     simultaneous   update   mode  to  extend  the  file  size  before
     processing.  Conversely, if a user wishes to sequentially process
     a  file  with  an extended file size, the user may use SETEOF and
     specify a file size of "0" to reduce the file to the actual  file
     size (rounded upward to the next page).

     SMU Method 1 for non-RMS TOPS-10 style sequential files has  been
     withdrawn.  See Section 2.3.1 for details.
COBOL V13 Documentation                                        Page 29
RESTRICTIONS and KNOWN PROBLEMS


5.0  Installation Instructions


See the COBOL Installation Guide (COBOL.INS) for complete installation
instructions.   (Including  a  note on the new method for loading DBMS
into the OTS)



6.0  INTERNAL CHANGES



6.1  Misc.  changes made in v13.


     1.  The  modules  CMND20.MAC  and  CONSCN.MAC  were  created   to
         implement a new command scanner and to nativise the compiler.
         The functionality of several small modules  was  incorporated
         into   COBSCN   and   these   modules   deleted.   They  are:
         GETASY.MAC, GETCPY.MAC, GETERA.MAC,  GETGEN.MAC,  GETTAG.MAC,
         PUTAS1.MAC,  PUTAS2.MAC,  PUTAS3.MAC, PUTBIN.MAC, PUTERA.MAC,
         PUTGEN.MAC, STINFL.MAC.

     2.  Several small  modules  have  been  incorporated  into  other
         modules or are just no longer required.  These are:  ALF.MAC,
         COMPD.MAC,  CRELD.MAC,   EXAM.MAC,   MAGNEG.MAC,   XPAND.MAC,
         XPNPPL.MAC.

6.2  .KEY Files

In the source saveset are a series of files with the extension '.KEY'.
These are being supplied for possible future use by AUTOPATCH.

7.0  RMS-20 Version 2

     COBOL Version 12B works with RMS  Version  1  for  indexed  files
     only.   COBOL Version 13 incorporates the following features only
     when used with RMS Version 2:  

     1.  Sequential RMS files

     2.  Relative RMS files

     3.  ASCII stream files

     4.  Simultaneous update with RMS indexed and relative files



                                   NOTE

         Please refer RMS V2 DOC  and  BWR  files  for  additional
         information on these features.
COBOL V13 Documentation                                        Page 30
RESTRICTIONS and KNOWN PROBLEMS


     COBOL does require display keys for all files.


     If RMS features are used in any COBOL program, COBLIB  will  look
     for  RMS  Version  2 at run time, and if it is not found, it will
     look for RMS Version 1 and flag errors at any atttempt to use RMS
     Version  2  features.   If  neither RMS Verion 2 nor Version 1 is
     found, COBLIB will give a fatal error.




[End of file CBL13.DOC]