Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

   =========================================================================
                           M I C R O   F O C U S

                                   V4.1.10

                           Running Under The DG/UX
                           Operating System Version R4.11MU03
                           On The AViiON
   =========================================================================

                          DOCUMENTATION UPDATE NOTES
                          ==========================

   TABLE OF CONTENTS
   =================
       INTRODUCTION
       CHANGES TO BOOKS


   INTRODUCTION
   ============
   The purpose of this document is explained in the main release notes.

   For clarity, the notation and layout in this document are slightly
   different from those in the books. For example, headings are underlined
   and command lines are indented. Parameters in command lines (which in the
   printed books are in italics) are here enclosed in < >.

   This document is updated at each maintenance release. A line under each
   entry shows the release when it was first included.

   CHANGES TO BOOKS
   ================

   Language Reference
   ==================

   Chapter 1 (Introduction)
   ------------------------
    o  Page 1-1. Section "The COBOL Language". Second paragraph. Replace
       the first sentence with the following:

           This COBOL implementation is a superset of the ANSI and ISO
           COBOL standard as specified in ANSI X3.23-1974 (ISO 1989-1978)
           and of the current ANSI and ISO COBOL standard as specified in
           ANSI X3.23-1985 (IS 1989:1985), ANSI X3.23a-1989
           (IS 1989:1985/AM1), and ANSI X3.23b-1993 (IS 1989:1985/AM2).

       -added V4.0.07

   Chapter 4 (Program Definition)
   ------------------------------
    o  Page 4-58. Section "Input-Output Section", subsection "The
       FILE-CONTROL Entry", General Rules. Change the last sentence of
       general rule 36 to read as follows:

           This checking is configurable in some environments. (See the
           KEYCHECK attribute in the Callable File Handler configuration
           file, which is documented in the section "Configuring the
           Callable File Handler" of the "Programmer's Guide to File
           Handling".)


    o  Page 4-127. Section "The RECORDING MODE Clause".  General Rule 2.
       Change the rule to read as follows:

           2.  The "U" option is documentary only.


    o  Page 4-129. Section "The REDEFINES Clause". Syntax Rule 5. Second
       paragraph. Remove the OSVS dialect bubble. Add the following text to
       the beginning of the third paragraph:

           "If the level number is 01, "


    o  Page 4-165. Section "The BACKGROUND-COLOR Clause". General Rule 2.
       Add a second column of numbers to the right of the first column, as
       follows:

           8      grey
           9      light blue
           10     light green
           11     light cyan
           12     light red
           13     light magenta
           14     yellow
           15     high intensity white

       Beneath that table add the following paragraph, not indented:

           On a color screen, if the value is from 8 to 15, this is
           equivalent to specifying an integer from 0 to 7 and specifying
           the BLINK clause.  On a monochrome screen, this is equivalent to
           simply specifying the BLINK clause.


    o  Page 4-179. Section " The FOREGROUND-COLOR Clause". General Rules 2.
       Add a second column of numbers to the right of the first column, as
       follows:

           8      grey
           9      light blue
           10     light green
           11     light cyan
           12     light red
           13     light magenta
           14     yellow
           15     high intensity white

       Beneath that table add the following paragraph, not indented:

           On a color screen, if the value is from 8 to 15, this is
           equivalent to specifying an integer from 0 to 7 and specifying
           the HIGHLIGHT clause.  On a monochrome screen, this is equivalent
           to simply specifying the HIGHLIGHT clause.


    o  Page 4-195. The PROMPT Clause. Section "General Rules". Replace
       General Rule 1 with the following:

           1.  For items in the screen section:

               a.  PROMPT is always on.

               b.  If the PROMPT clause is not specified, or is specified
                   without the CHARACTER phrase, the default prompt
                   character is used.


    o  Renumber existing General Rules 2 and 3 as General Rules 3 and 4,
       respectively.

    o  Add the following as a new General Rule 2:

           2.  For other data items referenced in an ACCEPT statement:

               a.  PROMPT is on if and only if the PROMPT clause is
                   specified on the ACCEPT statement.

               b.  If the PROMPT clause is specified without the CHARACTER
                   phrase, the default prompt character is used.

    o  Page 4-196. The PROMPT Clause. Section "General Rules". Renumber
       existing General Rules 4,5 and 6 as General Rules 5, 8 and 9,
       respectively.


    o  Add the following new General Rules 6 and 7:

           6.  If PROMPT is on for a field, you cannot move the cursor past
               the end of the field, which is marked by prompt characters.
               An attempt to do so will move the cursor to the next field.

           7.  If PROMPT is not on for a field, the cursor can be moved to
               the spaces following the end of the field.


    o  Page 4-217. The PROCEDURE DIVISION Header. Section "General Rules".
       Subsection "Format 2". Add an asterisk immediately after the rule
       number for General Rule 15.


    o  Page 4-260. Intrinsic Functions. Section "Value Returned by a
       Function". Second paragraph. Replace the final sentence with the
       following:

           If, at the time a function is referenced, the arguments
           specified for that reference do not have values that comply
           with the specified constraints, the result of such a reference
           is undefined.


    o  Page 4-260. Move the section "Date Conversion Functions" from page
       4-262 to the bottom of page 4-262.  Add a new section after this
       relocated section as follows:

           Trigonometric Functions
           -----------------------
           Trigonometry deals with the relationships among the sides of a
           triangle and its angles.  An angle can be measured in degrees,
           radians or Gon (grad). Since a computer usually generates
           trigonometric values by series approximation, the angle is
           specified in radians when used as the argument to the SIN, COS,
           and TAN functions or as the returned value from the ASIN, ACOS,
           and ATAN functions.

           A radian is an arc of a circle whose length is equal to the
           circle's radius. Since the relationship between a circle's radius
           and circumference is C = 2 * pi * r and there are 360 degrees in
           a circle, we can derive from 360 = 2 * pi * r, that the values
           for conversion are:

               1 radian = 180/pi = 57.295780 degrees
               1 degree = pi/180 = 0.01745329 radians.

           Another scale that is sometimes used to measure angles is Gon,
           also known as grad.  The values for conversion are:

               1 radian = 200/pi = 63.661977 Gon (grad)
               1 Gon (grad) = pi/200 = 0.01570796 radians.


    o  Page 4-261. Intrinsic Functions. Section "Arguments". First
       paragraph after the numbered list. Replace the final sentence with
       the following:

           If, at the time a function is referenced, the arguments
           specified for that reference do not have values within the
           permissible range, the result of such a reference is
           undefined.


    o  Page 4-261. Intrinsic Functions. Section "Arguments". Fifth
       paragraph after the numbered list. Replace the final sentence with
       the following:

           The evaluation of an ALL subscript must result in at least one
           argument, otherwise the result of the reference to the
           function-identifier is undefined.


    o  Page 4-263. In the table of functions, insert the following three
       entries in the appropriate alphabetical position.

           Function name   Arguments       Type    Value Returned
           ===========================================================
           DATE-TO-YYMMDD   Int1            Int    Argument-1 converted Int2
                                                   from YYMMDD to YYYYMMDD
                                                   based on the value of
                                                   argument-2

           DAY-TO-YYYYDDD   Int1            Int    Argument-1 converted Int2
                                                   from YYDDD to YYYYDDD
                                                   based on the value of
                                                   argument-2

           YEAR-TO-YYYY    Int1             Int    Argument-1 converted from
                           Int2                    YY to YYYY based on the
                                                   value of argument-2

       -added V4.1.06

    o  Page 4-269. The ACOS Function. Add a note after Returned Value
       rule 1 as follows:

           Note:    Conversion factors from radians to degrees and Gon
                    (grad) are specified in the section "Trigonometric
                    Functions" of this chapter.


    o  Page 4-271. The ASIN Function. Add a note after Returned Value
       rule 1 as follows:

           Note:    Conversion factors from radians to degrees and Gon
                    (grad) are specified in the section "Trigonometric
                    Functions" of this chapter.


    o  Page 4-272. The ATAN Function. Add a note after Returned Value
       rule 1 follows:

           Note:    Conversion factors from radians to degrees and Gon
                    (grad) are specified in the section "Trigonometric
                    Functions" of this chapter.


    o  Page 4-275. The COS Function. Add a note after Argument rule 1 as
       follows:

           Note:    Conversion factors from degrees and Gon (grad) to
                    radians are specified in the section "Trigonometric
                    Functions" of this chapter.


    o  Page 4-279. Insert a new section as follows:

           The DATE-TO-YYYYMMDD Function

           Description:

           The DATE-TO-YYYYMMDD function converts argument-1 from the form
           YYnnn to the form YYYYnnn. Argument-2, when added to the year at
           the time of execution, defines the ending year of a 100-year
           interval, or sliding window, into which the year of argument-1
           falls.

           The type of this function is integer.

           General Format:

           FUNCTION DATE-TO-YYYYMMDD ( argument-1 [argument-2] )

           Arguments:

           1. Argument-1 is a positive integer less than 1,000,000.

           2. Argument-2 is an integer.

           3. If argument-2 is omitted, the function is evaluated as though
              50 were specified.

           4. The sum of the year at the time of execution and the value of
              argument-2 is less than 10,000 and greater than 1699.

           Returned Values:

            1. The equivalent arithmetic expression is:

                   (FUNCTION YEAR-TO-YYYY (YY, argument-2) * 10000 + nnnn)

               where:

                   YY = FUNCTION INTEGER (argument-1/10000)
                   nnnn = FUNCTION MOD (argument-1, 10000)

               and where argument-1 of the INTEGER and MOD functions and
               argument-2 of the YEAR-TO-YYYY function are the same as
               argument-1 and argument-2 of the DATE-TO-YYYYMMDD function
               itself.

           Notes:

           1.  In the year 2002 the returned value for FUNCTION
               DATE-TO-YYYYMMDD (851003, 10) is 19851003. In the year 1994
               the returned value for FUNCTION DATE-TO-YYYYMMDD (961002,
               (-10)) is 18981002.

           2.  This function supports a sliding window algorithm. See the
               notes for the YEAR-TO-YYYY function for a discussion of how
               to specify a fixed window.

       -added V4.1.06

    o  Page 4-280. Insert a new section as follows:

           The DAY-TO-YYYYDDD Function

           Description:

           The DAY-TO-YYYYDDD function converts argument-1 from the form
           YYnnn to the form YYYYnnn. Argument-2, when added to the year at
           the time of execution, defines the ending year of a 100-year
           interval, or sliding window, into which the year of argument-1
           falls.

           The type of this function is integer.

           General Format:

           FUNCTION DAY-TO-YYYYDDD ( argument-1 [argument-2] )

           Arguments:

           1.  Argument-1 is a positive integer less than 100,000.

           2.  Argument-2 is an integer.

           3.  If argument-2 is omitted, the function is evaluated as
               though 50 were specified.

           4.  The sum of the year at the time of execution and the value of
               argument-2 is less than 10,000 and greater than 1699.

           Returned Values:

           1.  The equivalent arithmetic expression is:

                   (FUNCTION YEAR-TO-YYYY (YY, argument-2) * 1000 + nnn)

               where:

                   YY = FUNCTION INTEGER (argument-1/1000)
                   nnn = FUNCTION MOD (argument-1, 1000)

               and where argument-1 of the INTEGER and MOD functions and
               argument-2 of the YEAR-TO-YYYY functions are the same as
               argument-1 and argument-2 of the DAY-TO-YYYYDDD function
               itself.

           Notes

           1.  In the year 2002 the returned value for FUNCTION
               DAY-TO-YYYYDDD (10004,20) is 20101004. In the year 1994 the
               returned value for FUNCTION DAY-TO-YYYYDDD (95005, (-10)) is
               1995005.

           2.  This function supports a sliding window algorithm. See the
               notes for the YEAR-TO-YYYY function for a discussion of how
               to specify a fixed window.

       -added V4.1.06

    o  Page 4-315. The SIN Function. Add a note after Argument rule 1 as
       follows:
           Note:    Conversion factors from degrees and Gon (grad) to
                    radians are specified in the section "Trigonometric
                    Functions" of this chapter.


    o  Page 4-319. The TAN Function. Add a note after Argument rule 1 as
       follows:

           Note:    Conversion factors from degrees and Gon (grad) to
                    radians are specified in the section "Trigonometric
                    Functions" of this chapter.


    o  Page 4-325. Insert a new section as follows:

           The YEAR-TO-YYYY Function

           Description:

           The YEAR-TO-YYYY function converts argument-1, the two low-order
           digits of a year, to a four-digit year. Argument-2, when added to
           the year at the time of execution, defines the ending year of a
           100-year interval, or sliding window, into which the year of
           argument-1 falls. The type of this function is integer.

           General Format:

           FUNCTION YEAR-TO-YYYY ( argument-1 [argument-2] )

           Arguments:

           1.  Argument-1 is a nonnegative integer less than 100.

           2.  Argument-2 is an integer.

           3.  If argument-2 is omitted, the function is evaluated as
               though 50 were specified.

           4.  The sum of the year at the time of execution and the value of
               argument-2 is less than 10,000 and greater than 1699.

           Returned Values:

           1.  Maximum-year is calculated as follows:

               (FUNCTION NUMVAL (FUNCTION CURRENT-DATE (1:4)) + argument-2)

               where argument-2 of the NUMVAL function is the same as
               argument-2 of the YEAR-TO-YYYY function itself.

           2.  The equivalent arithmetic expression is:

               a)  When the following condition is true:

                   (FUNCTION MOD (maximum-year, 100) > = argument-1)

                   The equivalent arithmetic expression is:

                   argument-1 + 100 * (FUNCTION INTEGER (maximum-year/100))

               b)  Otherwise, the equivalent arithmetic expression is:

                   argument-1 +
                           100 * (FUNCTION INTEGER (maximum-year/100) - 1)

           Notes:

           1.  In the year 1995, the returned value for FUNCTION
               YEAR-TO-YYYY (4, 23) is 2004. In the year 2008 the returned
               value for FUNCTION YEAR-TO-YYYY (98, (-15)) is 1898.

           2.  The YEAR-TO-YYYY function implements a sliding window
               algorithm. To use it for a fixed window, argument-2 can be
               specified as follows, where fixed- maximum-year is the
               maximum year in the fixed 100-year intervals.

               (fixed-maximum-year -
                          FUNCTION NUMVAL (FUNCTION CURRENT-DATE (1:4)))

           If the fixed window is 1973 through 2072, then in 2009
           argument-2 has the value 63 and in 2019, the value 53.

    o  Page 4-325. For Format 2 of the ACCEPT Statement, in the format
       diagram add the following day and date formats to the lines for DATE
       and DAY, so that they read:

           DATE [YYYYMMDD]
           DAY [YYYYDDD]

       -added V4.1.06

    o  Page 4-329. Section "The ACCEPT Statement". Syntax Rules. Replace
       rule 7 with the following text, boxed and marked with the same
       dialect information as the original:

           7.  Identifier can be of any class, category or usage, including
               an internal floating-point or external floating point item.


    o  Page 4-332. For Format 2 of the ACCEPT Statement, replace
       General Rule 9 with the following:

           9.  DATE, without the phrase YYYYMMDD, is composed of the data
               elements year of the current century, month of the year,
               and day of the month. DATE, without the phrase YYYYMMDD,
               when accessed by a COBOL program, behaves as if it had
               been described as an unsigned elementary integer data item
               of usage display six digits in length, the character
               positions of which, numbered from left to right, are:

               Char    Contents
               ----    --------
               1-2     The two right-most numeric characters of the year in
                       the Gregorian calendar.
               3-4     Two numeric characters of the month of the year in
                       the range 01 through 12.
               5-6     Two numeric characters of the day of the month in the
                       range 01 through 31.

       -added V4.1.06

    o  Page 4-333. For Format 2 of the ACCEPT Statement, add the following
       new General Rule 10:

           10. DATE, with the phrase YYYYMMDD, is composed of the data
               elements year in the Gregorian calendar, month of the year,
               and day of the month. DATE, with the phrase YYYYMMDD, when
               accessed by a COBOL program, behaves as if it had been
               described as an unsigned elementary integer data item of
               usage display eight digits in length, the character positions
               of which, numbered from left to right, are:
               Char    Contents
               ----    --------
               1-4     Four numeric characters of the year in the Gregorian
                       calendar.
               5-6     Two numeric characters of the month of the year in
                       the range 01 through 12.
               7-8     Two numeric characters of the day of the month in the
                       range 01 through 31.

       -added V4.1.06

    o  Page 4-332. For Format 2 of the ACCEPT Statement, replace
       the old General Rule 10 with the following new rule 11:

          11.  DAY, without the phrase YYYYDDD, is composed of the data
               elements year of the current century and day of the year.
               DAY, without the phrase YYYYDDD, when accessed by a COBOL
               program, behaves as if it had been described as an unsigned
               elementary integer data item of usage display five
               digits in length, the character positions of which, numbered
               from left to right, are:

               Char    Contents
               ----    --------
               1-2     The two right-most numeric characters of the year in
                       the Gregorian calendar.
               3-5     Three numeric characters of the day of the year in
                       the range 01 through 366.

       -added V4.1.06

    o  Page 4-333. For Format 2 of the ACCEPT Statement, add the following
       new General Rule 12 before the old rule 11, and renumber the
       subsequent rules:

          12.  DAY, with the phrase YYYYDDD, is composed of the data
               elements year in the Gregorian calendar and day of the year.
               DAY, with the phrase YYYYDDD, when accessed by a COBOL
               program, behaves as if it had been described as an unsigned
               elementary integer data item of usage display seven
               digits in length, the character positions of which, numbered
               from left to right, are:

               Char    Contents
               ----    --------
               1-4     Four numeric characters of the year in the Gregorian
                       calendar.
               5-7     Three numeric characters of the day of the year in
                       the range 01 through 366.

       -added V4.1.06

    o  Page 4-335.  The ACCEPT Statement. General Rules. Add the following
       new General Rule after General Rule 21, and renumber the subsequent
       General Rules accordingly:

           22. Prior to the execution of this ACCEPT statement, a DISPLAY
               statement which specifies the same screen-name or
               identifier-1 as is specified in this ACCEPT statement must
               have been executed. There must not have been any ACCEPT or
               DISPLAY statement executed since then.


    o  Page 4-335.  Section "The ACCEPT Statement". General Rules. Add the
       following new general rule between rules 25 and 26 and renumber the
       rules that follow:

           26. If identifier-1 is a group item that has a
               variable-occurrence data item subordinate to it, the ACCEPT
               statement acts as if the MODE IS BLOCK clause were specified.


    o  Page 4-427. The MERGE Statement. General Format. Modify the syntax
       diagram as follows:

           After the word "KEY", insert the word "IS", all capitals, no
           underline, boxed and marked with the OSVS dialect bubble.


    o  Page 4-457. The PERFORM Statement. Syntax Rules. Add a heading for
       Format 3 immediately before the heading "Formats 3 and 4".  Add the
       following new rule under this new heading and renumber subsequent
       rules as appropriate:

           6. If the TEST phrase is specified, the EXIT phrase must not be
              specified.


    o  Page 4-503. Section "The SET Statement". General Rules. Format 5. In
       Table 4-17, change all occurrences of the digit 9 to read 11.


    o  Page 4-506. The SORT Statement. General Format. Modify the syntax
       diagram for Format 1 as follows:

           After the word "KEY", insert the word "IS", all capitals, no
           underline, boxed and marked with the OSVS dialect bubble.


    o  Page 4-513. The SORT Statement. General Rule 11a. Change the second
       sentence to read:

           The initiation is performed as if an OPEN statement with the
           INPUT and the WITH LOCK phrases had been executed.


    o  Page 4-542.  The USE Statement, general formats, formats 2 and 3.
       Change the curly braces around BEGINNING and END to square brackets,
       add EXTEND to the end of the stack that is in braces at the end of
       the format, and insert [GLOBAL] immediately after USE. (Underline
       the word GLOBAL and enclose it in square brackets.)


    o  Page 4-542.  The USE Statement, general formats, format 3.
       Underline the word USE.


    o  Page 4-544.  The USE Statement, general rules.  Renumber general
       rule 8 as rule 9 and replace general rule 7 with the following:

           7.  If the BEGINNING phrase is specified explicitly or
               implicitly, the following actions are taken during the
               execution of an applicable OPEN statement:


               Open Mode                        Action
               ---------                        ------

               INPUT           Read header labels
                               Execute beginning declarative

               OUTPUT          Execute beginning declarative
                               Write header labels

               I/O             Read header labels
                               Execute beginning declarative
                               Write header labels

               EXTEND          Read header labels
                               Execute beginning declaratives (trailer
                               labels treated as header)
                               Write header labels


    o  Page 4-544. The USE Statement, general rules. Add the following new
       general rule 8:

           8.  If the ENDING phrase is specified explicitly or implicitly,
               the following actions are taken during the execution of an
               applicable CLOSE statement:


               Open Mode                        Action
               ---------                        ------

               INPUT           Read trailer labels
                               Execute ending declarative

               OUTPUT          Execute ending declarative
                               Write trailer labels

               I/O             Read trailer labels
                               Execute ending declarative
                               Write trailer labels

               EXTEND          Execute ending declaratives
                               Write trailer labels



   Chapter 5 (Object COBOL Language Extensions)
   --------------------------------------------
    o  Page 5-2. Section "Directives". Change the description of the +N
       switch in the second column of the list to read as follows:

           Enables the use of the syntax FACTORY, END FACTORY, CLASS-OBJECT,
           and END CLASS-OBJECT.

       -added V4.0.07

    o  Page 5-2. Section "Directives". Change the description of the +W
       switch in the second column of the list to read as follows, leaving
       the note unchanged:

           Uses Working-Storage to mean Object-Storage in instances and
           class objects. Uses Working-Storage to mean Local-Storage in
           methods. If -N is also set, uses Working-Storage to mean
           Object-Storage in classes.

           When Working-Storage is used to mean Local-Storage or
           Object-Storage, a Local-Storage or Object-Storage Section,
           respectively, must not be specified.

       -added V4.0.07

    o  Page 5-8. Section "Class-object". Replace the existing syntax with
       the following, immediately after the heading "General Format":
           Format 1
           --------

           Note: This is the preferred syntax.


           [IDENTIFICATION DIVISION.]
            -------------- --------

            FACTORY.
            -------

           [data-division]

           [PROCEDURE DIVISION.]
            --------- --------

           [method-1]...

            END FACTORY.
            --- -------



           Format 2
           --------


           [IDENTIFICATION DIVISION.]
            -------------- --------

            CLASS-OBJECT.
            ------------

           [data-division]

           [PROCEDURE DIVISION.]
            --------- --------

           [method-1]...

            END CLASS-OBJECT.
            --- ------------


       -added V4.0.07

   Chapter 6 (Compiler-directing Statements)
   -----------------------------------------
    o  Page 6-12. General Rule 14. Replace the second paragraph with the
       following:

           To use this type of "partial word replacement" the portion of
           the words to be modified must be enclosed either:

           a. in pairs of left and right parentheses. For example, (ABC)

           or

           b. within colons. For example, :XYZ: is a valid candidate.

       Only paragraph b. of the rule should be boxed and marked with the
       ANS85 dialect bubble.


   Appendix A (Syntax Summary for COBOL Features)
   ----------------------------------------------
    o  Page A-25. Section headed "General Format for Intrinsic Functions".
       Add the following five functions, boxed with an ANS85 dialect bubble,
       to the end of the list of Intrinsic Functions:

           FUNCTION SUM ({argument-1}...)
           -------- ---

           FUNCTION TAN (argument-1)
           -------- ---

           FUNCTION UPPER-CASE (argument-1)
           -------- ----------

           FUNCTION VARIANCE ({argument-1}...)
           -------- --------

           FUNCTION WHEN-COMPILED
           -------- -------------

       -added V4.0.07

    o  Page A-58. Section headed "Class-object". Replace the syntax
       immediately after the heading "General Format" with the following:

           Format 1
           --------


           [IDENTIFICATION DIVISION.]
            -------------- --------

            FACTORY.
            -------

           [data-division]

           [PROCEDURE DIVISION.]
            --------- --------

           [method-1]...

            END FACTORY.
            --- -------



           Format 2
           --------


           [IDENTIFICATION DIVISION.]
            -------------- --------

            CLASS-OBJECT.
            ------------

           [data-division]

           [PROCEDURE DIVISION.]
            --------- --------

           [method-1]...

            END CLASS-OBJECT.
            --- ------------

       -added V4.0.07

   Appendix D (Reserved Words)
   ---------------------------
    o  Page D-8. Entry for reserved word FUNCTION, change:

           VS(  3,4)
       to:
           ...




   Language Reference - Additional Topics
   ======================================

   Chapter 1 (Report Writer)
   -------------------------
    o  Page 1-10. Section "The Report Clause". Syntax Rules. Add a second
       sentence to syntax rule 2 as follows, boxed and marked with an OSVS
       dialect bubble:

           A report-name may appear in two REPORT clauses.


   Chapter 11 (Microsoft COBOL V1.0 and V2.0 Syntax Support)
   ---------------------------------------------------------
    o  Page 11-4. Data Division. The USAGE Clause. Delete General Rule 1.
       Renumber the remaining rules. In General Rule 2 (old rule 3)
       replace "S9(5)" with "S9(4)".




   Error Messages
   ==============

   Chapter 2 (Syntax Checking Messages)
   ------------------------------------
    o  Page 2-28. Add the following message:

           164  More than 20 USE GLOBAL statements.

            o  You have used more than 20 USE GLOBAL statements in a
               program. There is a system limit of 20 USE GLOBAL statements
               in a program.


    o  Page 2-28. Add the following message:

           195 ASCENDING/DESCENDING KEY clause must appear before INDEXED BY
               clause

            o  Your selected flagging dialect does not support reversing the
               order of these clauses in the OCCURS phrase of a data item
               definition.

       -added V4.1.06

    o  Page 2-76. Add the following message:

           755 Special register used with ACCEPT/DISPLAY/EXHIBIT
               or CALL statement

            o  Your program contains an ACCEPT, DISPLAY, EXHIBIT or CALL
               statement that uses special registers.


    o  Page 2-76. Add the following message:

          795  END PROGRAM <program-name> missing

            o  The END PROGRAM <program-name> statement is missing from a
               nested program.


   Chapter 3 (Code Generation Messages)
   ------------------------------------
    o  Page 3-15. Replace the description of code generation error 078 with
       the following:

           078  Too many code relocations (limit = <limit>, actual
                = <relocations>) (Recoverable)

                 o You tried to compile a program that resulted in more
                   than 65535 relocation entries.

                 o To prevent the message being displayed, recompile the
                   program specifying the FIXOPT Compiler directive.

                See also:

                FIXOPT Compiler directive

       -added V4.1.10.

   Chapter 4 (Run-time System Messages)
   ------------------------------------
    o  Page 4-5. Add the following at the bottom of the page:

           Return-code Values
           ------------------
           The run-time system always returns a value to the operating
           system when a COBOL program terminates. If the program terminates
           normally, the value is taken from the program's special register
           RETURN-CODE If the run-time system terminates the program because
           an unrecoverable error has occurred or because it has received a
           message from the operating system to quit immediately, the value
           returned depends on the operating system as described below.

           DOS, Windows and OS/2
           The value returned is 32 for a run-time system error and 16
           for a quit interrupt when running under DOS, Windows or OS/2. A
           keyboard quit interrupt is generated when the user presses Ctrl +
           Break. Use the if command with the errorlevel parameter to test
           the returned value, as shown in the following batch file
           fragment:

           run myprog
           if errorlevel 32 goto rts_error
           if errorlevel 16 goto rts_interrupt

           UNIX
           The run-time system returns a value of -1 for a run-time system
           error and -2 for an abnormal termination on receiving the UNIX
           quit or kill signal. Typically, many UNIX implementations
           translate the value of -1 to the unsigned value 255, and the
           value -2 to the unsigned value 254. You can configure the RTS to
           ignore quit or kill signals generated from the keyboard by using
           the run-time switch i (see your COBOL System Reference chapter
           Running for further details). Use the Bourne shell special
           parameter ? to obtain the value returned to the operating system,
           as shown in the following shell script fragment:

               cobrun prog
               if test

       -modified V4.1.10

    o  Page 4-8. Add a new message before message 012 as follows:

           011 Process limit reached (Fatal)

            o  One of the following has occurred:
               -  The Run-Time System cannot create a new process as the
               operating system limit on the total number of processes per
               user or system-wide would be exceeded.
               -  Insufficient memory is available to complete the
               operation.

            o  You should terminate any processes that you are no longer
               using, or make more memory available.
               Your operating system might enable you to increase the
               maximum number of processes allowed. Refer to your operating
               system documentation for further information.

       -added V4.1.06

    o  Page 4-14. In the explanation for error 040, add a side
       heading of "DOS, Windows, and OS/2" to the final paragraph.
       Replace "Use" with:

           On DOS, Windows and OS/2, use


    o  Page 4-25. Message 135 should read:

           135  File not found (Recoverable)

            o  Depending on the version of utils.lbr that you have
               installed, this message might be displayed as "File must not
               exist"; however, the meaning is still intended to be "File
               not found".


    o  Page 4-30. In the explanation of message 165 add at the end:

            o  Tried to load a module whose format is invalid for this
               operating system.


    o  Page 4-39. Add new messages before message 206 as follows:

           204 Mainframe Pointer Manager (MFPM) module is required but not
               loaded (Recoverable)

            o  An attempt has been made using the 16-bit Run-Time System
               to call a program compiled with the AMODE(24) or AMODE(31)
               compiler directive, but the Mainframe Pointer Manager (MFPM)
               module has not been loaded.

            o  Add MFPM to the list of programs to be loaded in the INSTALL
               section of the .cfg files used by your application, or add a
               definition to MFPM in an installf library used by your
               application.

               If you are using Organizer, you should add MFPM to the
               %LIBRARY pseudo-variable in the command-line parameters for
               the Edit+Animate and Run tools.

               Ensure that the file mfpm.dle (for DOS) or mfpm.dlw (for
               Windows) exists in a directory specified by the COBDIR
               environment variable; or (for OS/2 only) that mfpm.dll
               exists in a directory that is on your LIBPATH.

           205 Invalid mainframe pointer value (Fatal)

            o  An attempt has been made to reference an invalid mainframe
               address.

            o  Check your program's logic and recode the appropriate
               statements.

       -added V4.1.06

    o  Page 4-42. Change the explanation of message 227 as follows:

           227  EXTERNAL data definition inconsistent (Fatal)

            o  Two or more programs are defining the same external data
               item, but the first loaded program has defined the size
               differently from the second or subsequent loaded program.

            o  Make sure that both or all of your programs define the size
               of the external data item as being the same.


   Chapter 5 (File Status Codes)
   -----------------------------
    o  Page 5-5. Add the following explanation for status code 44:

           44  A boundary violation exists.

           Possible causes are:

            o  An attempt has been made to WRITE or REWRITE a
               record that is larger than the largest or smaller than
               the smallest record allowed by the RECORD IS VARYING
               clause of the associated file.

            o  An attempt has been made to REWRITE a record
               to a file, and the record is not the same size
               as the record it replaces.




   Compatibility Guide
   ===================

   Chapter 4 (Introduction to Conversion Series 3)
   -----------------------------------------------
   o   Page 4-2. In the section Converting Data Files, replace last
       paragraph with:

           You must convert this data file to separate data and index
           files, using RMISAM or the equivalent utility in your RM
           product.


   Chapter 7 (RM/COBOL Conversion Issues)
   --------------------------------------
    o  Page 7-13. Under "File and Record Locking", delete the third
       bullet point and then add the following to the end of the
       section:

           RM/COBOL ignores locks on files opened for INPUT. When the
           RM Compiler directive is set, this COBOL system detects locks
           on files opened for INPUT. To emulate RM/COBOL behavior, you
           must use the B or B1 run-time switch. Setting either of these
           switches permits a file to be read sequentially, even if
           another process has records locked in that file.


   Chapter 9 (Running Convert3)
   ----------------------------
   o   Page 9-2.  In the section File Details, replace paragraph 4 with
       the following:

           The setting of the RM directive. This can be either R for
           RM/COBOL, (which will cause ORGANIZATION SEQUENTIAL files to be
           treated as Line Sequential with SIGN SEPARATE) or A for RM/COBOL
           with the ANSI switch set (which will cause ORGANIZATION
           SEQUENTIAL files to be treated as Record Sequential with SIGN
           INCLUDE). If your program contains any Organization Sequential
           files with COMP-3 data, you must use A. See your Object COBOL
           User Guide for full details of the RM Compiler directive.




   Getting Started
   ===============

   Appendix A (Contacting Micro Focus)
   -----------------------------------
    o  Page A-3. Section "Info-Fax System". Change the phone number to:

            (415) 843-7170

       -added V4.1.10

    o  Page A-3, Section "Fax Numbers". Change the fax number of the
       office in France to:

            o  France  (1) 47.75.75.80

       -added V4.1.10



   Programmer's Guide to Writing Programs
   ======================================

   Chapter 3 (System Limits and Programming Restrictions)
   ------------------------------------------------------
    o  Page 3-9. Before the heading "Direct System Limits", add:

           Maximum core heap size
           ----------------------
           On the 16-bit COBOL system for DOS:

           o  Without XM, limited by disk space for the swap files

           o  With XM, 8mb (no paging by the run-time system)

           On the 16-bit COBOL system on Windows and OS/2:

           o If the P3 switch is not set, 16Mb (no paging by the
             run-time sytem)

           o If the P3 switch is set, 32Mb

           On 32-bit COBOL systems:

           o No limit, other than disk space


   Chapter 8 (The COBOL Interfacing Environment)
   ---------------------------------------------
    o  Page 8-9. The second table on this page should be replaced with:

           Bit      Meaning
           ------------------

           4        0    Parameters are not passed in processor
                         registers
                    1    The call or entry point should conform to
                         OS/2 optlink calling convention, in which some
                         parameters are passed in processor registers.

                         Note that this cannot be combined with other
                         calling conventions.

           OS/2:
           5        0    Call is not thunked
                    1    The call is to be a thunked call to a 16-bit
                         program. This is only applicable on OS/2

           6        0    The call does not conform to the Windows
                         stdcall calling convention
                    1    The call conforms to the Windows stdcall
                         calling convention

                         This has no effect on dynamic calls, but alters
                         the call-name on static-linked calls

           7-15          Reserved (must be 0)


    o  Page 8-12. Delete the section "Interfacing Between 16-bit and 32-bit
       Modules" that begins on this page and continues to page 8-25. Replace
       with it with:

           Interfacing Between 16-bit and 32-bit Modules
           =============================================

           OS/2 V2:
           This section is only applicable to OS/2 V2.

           This section describes how to interface between 16-bit and
           32-bit modules. It assumes a knowledge of the differences
           between 16-bit and 32-bit architecture and a good
           understanding of language calling conventions.

           OS/2 V2 enables execution of both 16-bit and 32-bit
           applications, including the mixing of 16-bit and 32-bit
           modules in the same application. Interfacing between the
           16-bit and 32-bit modules is referred to as thunking. This
           COBOL system provides a means of implementing thunking by
           using a call convention. This provides support for most call
           interfaces. Call convention 32 provides the thunking
           interface (see the section "Call Conventions" for
           information on call conventions).
           By using the call convention you can create a seamless
           interface to your existing 16-bit support modules, thus
           enabling you to use any existing support modules without
           recoding or recompiling the 16-bit .dll files.

           The figure below illustrates 32-bit to 16-bit thunking:

           ---------------      ---------      ----------------
           |   32-bit    |<---->| Thunk |<---->|16-bit support|
           | application |      ---------      |module (.dll) |
           ---------------          ^          ----------------
                  ^                 |
                  |                 |
                  |                 |
                  v                 |
           ----------------         |
           |32-bit support|<--------|
           |   module     |
           ----------------


           Example Thunking Interface
           --------------------------

           The following example demonstrates how to call an existing
           16-bit C support module (CSWAP) from a 32-bit application
           using a thunk interface.

           Given the existing software, you could create a thunk
           interface using the call convention as in the following
           example:


                special-names.
                call-convention 32 is thunked.
                data division.

                working-storage section.

                01 pptr16    pic xxxx comp-5.
                01 ptrnum    pic xx   comp-5 value1.

                linkage section.

                01 ws-item1  pic xx   comp-5.
                01 ws-item2  pic xx   comp-5.

                procedure division using by value     ws-item1
                                         by reference ws-item2.

                call thunked "cswap" using by value     ws-item2
                                           by reference ws-item2.

                exit program.
                stop run.

                Items of USAGE POINTER passed to the called program
                need to be converted, using the routines described
                in the next section.

                Using call convention 32 automatically thunks to a
                16-bit function and converts all BY REFERENCE
                parameters.

                Thunking Support API Routines
                -----------------------------

                Two API routines are supplied that allow conversion of
                USAGE POINTER data items from a 32-bit address to a
                16-bit address and vice-versa. These routines are
                described below.

                The case of these API items must be preserved, so a
                COBOL program that uses them must be compiled using the
                CASE compiler directive

                _mFflattosel
                ------------

                  Converts from a 32-bit address to a 16-bit address.

                  Syntax:

                  call '_mFseltoflat' using by value  <mypointer-32>
                                            returning <mypointer-16>

                  Parameters:

                  <mypointer-32>    usage pointer

                  <mypointer-16>    usage pointer

                  On Entry:

                  <mypointer-32>    32:0 flat address

                  On Exit:

                  <mypointer-32>    16:16 segmented address

                  Comments:

                  This routine is called from 32-bit applications.
                  The 32:0 flat address is converted to a 16:16
                  segmented address.

                _mFseltoflat
                ------------

                  Converts from a 16-bit address to a 32-bit address.

                  Syntax:

                  call '_mFflattosel' using by value  <mypointer-16>
                                            returning <mypointer-32>

                  Parameters:

                  <mypointer-16>    usage pointer

                  <mypointer-32>    usage pointer

                  On Entry:

                  <mypointer-16>    16:16 segmented address

                  On Exit:

                  <mypointer-32>    0:32 flat address

                  Comments:
                  This routine is called from 16-bit applications.

                  The 16:16 segmented address is converted to a 0:32
                  flat address.


   Chapter 14 (Concurrency Support)
   --------------------------------
    o  Page 14-1. In the first paragraph, delete the side heading
       "16-bit and 32-bit for UNIX".


    o  Page 14-2.  In the section "Overview", in the third paragraph,
       change the side heading to:

           16-bit OS/2

       and change the text "On OS/2" to:

           On 16-bit OS/2


    o  Page 14-2.  In the section "Overview", add the following before the
       last paragraph:

           16-bit Windows
             On 16-bit Windows this concurrency support facility
             is mapped on the run-time system's own co-operative
             task switching.

           32-bit
             On 32-bit COBOL systems this concurrency support facility
             is mapped onto an operating system's process.


    o  Page 14-2. In the section "Installing Concurrency Support", in the
       first paragraph, replace the side heading with:

           16-bit

       and change the first word of the sentence, "The", to:

           On the 16-bit COBOL system, the


    o  Page 14-2. In the section "Installing Concurrency Support", in the
       third paragraph of this section, change the side heading to:

           32-bit

       and replace the first words of the sentence, "On UNIX", with:

           On 32-bit systems


    o  Page 14-4. In the third paragraph, beginning "Concurrency
       under Windows", change the side heading to:

           16-bit on Windows

       and change the first words, "Concurrency under Windows" to:

           Concurrency on the 16-bit COBOL system for Windows

       and in the fourth paragraph, beginning "Because of", change
       the side heading to:

           16-bit on DOS, Windows and OS/2

       and insert the words:

           16-bit COBOL

       before the words "run-time system" in the first sentence.


    o  Page 14-7. In the entry for CBL_CULL_RUN_UNITS, in the second
       paragraph of the section "Comments:", add the side heading:

           16-bit

       and replace the first word, "This", with:

           On the 16-bit COBOL system, this


    o  Page 14-9. In the entry for CBL_EXEC_RUN_UNIT, in the last paragraph
       of the section "Comments:", add the side heading:

           16-bit

       and replace the first word, "This", with:

           On the 16-bit COBOL system, this


    o  Page 14-11. In the first paragraph at the top of the page, add the
       side heading:

           16-bit

       and replace the first word, "This", with:

           On the 16-bit COBOL system, this

       In the entry for CBL_PUT_SHMEM_PTR, in the last paragraph of the
       section "Comments:", add the side heading:

           16-bit

       and replace the first word, "This", with:

           On the 16-bit COBOL system, this


    o  Page 14-11. In the entry for CBL_YEILD_RUN_UNIT, in the
       last paragraph of the section "Comments:", add the side
       heading:

           16-bit

       and replace the first word, "This", with:

           On the 16-bit COBOL system, this


   Chapter 18 (Library Routines)
   -----------------------------
    o  Page 18-8. After the first paragraph on this page,
       add the following paragraph:

           Once an error procedure has been posted, until it is
           removed either implicitly (for example, during error
           processing) or explicitly (by calling CBL_ERROR_PROC with
           <install-flag> set to "1"), subsequent attempts to
           install that error procedure are silently ignored.


    o  Page 18-8. After the eighth paragraph on the page
       (beginning "On 32-bit systems"), add the following new
       paragraph:

           If an error procedure is installed during error
           processing (either by itself, or by another error
           procedure) then it is executed as soon as the error
           procedure that installed it returns, assuming that
           it doesn't return with a ZERO return code.


    o  Page 18-8. In the last paragraph delete the text "On the 16-bit
       system," and change "if" to "If".


    o  Page 18-20. In the section "On entry:", add the following
       at the end of the entry for list-item  "<printer-no>":

           Note that for LPT1, <printer-no> is 0, for LPT2 it is 1, and
           so on.

       In the section "Comments:", after the first paragraph, add:

           This routine is only available for use with parallel printers
           that are local to the machine. It does not work for printers
           that are on a network, as these are serial printers.




   Object COBOL User Guide
   =======================

   Chapter 6 (Directives for Compiler)
   -----------------------------------
    o  Page 6-21. In the entry for ANIM, in the section "Properties:",
       change the "Default" item to:

           Default:    NOANIM


    o  Page 6-20. Before the entry for ANALYZE, add:

           AMODE
           =====

           Provides compatibility with mainframe-style pointers.

           Syntax:

           >>--+---+---+----+--AMODE----"<format>"--------><
               |-/-|   |-NO-|


           Parameters:

           <format>        Specifies the storage format of pointers

           Properties:
               Default:        NOAMODE
               Phase:          Syntax check
               Environment:    16-bit, and 32-bit systems on Windows NT
                               and OS/2


           In general, to eliminate potential problems that might occur when
           trying to be selective about which programs are compiled with
           this directive, we strongly recommended that you use the AMODE
           directive on all programs in the application, and that you use
           the same <value> for each subprogram.

           The possible values of <format> are:

           24  All pointers are stored in a 24-bit format. This format is
               compatible with 'below-the-line' storage on the mainframe.
               The top 8 bits of the pointer are masked off when the address
               of a linkage item is set from the pointer. This means that,
               as on the mainframe, the top 8 bits can be manipulated
               directly by the user's code.

           31  All pointers are stored in a 31-bit format. This format is
               compatible with 'above-the-line' storage on the mainframe.
               The top bit of the pointer is masked off when the address of
               a linkage item is set from the pointer. This means that, as
               on the mainframe, the top bit can be manipulated directly by
               the user's code.


           The AMODE directive cannot be used for programs that need to call
           a Micro Focus call-by-name or call-by-number routine or an
           external API that expects pointer items to be in the native
           machine format.

           The directives RDEFPTR and CONVERTPTR must not be used with the
           AMODE directive.


    o  Page 6-46. In the entry for COMP-6, change the entry for
       "Dependencies:" to:

           RM or MF must be set.
           RM and RM"ANSI" set COMP-6"1".
           NORM sets COMP-6"2".

       -added V4.1.06

    o  Page 6-46. Replace the second paragraph, beginning
       "Even if you specify...", with:

           Even if you specify the COMP-6 directive, the
           reserved word COMP-6 is recognized only if it belongs
           to the dialect specified by RM or MF"10".

       -added V4.1.06

    o  Page 6-59. At the end of the entry for DEFAULTBYTE, add the
       following:

           Comments:   <integer> is a decimal value. For example, if
                       you want to specify an EBCDIC space use
                       DEFAULTBYTE"64"; to specify an ASCII space use
                       DEFAULTBYTE"32".


    o  Page 6-62. Within the "Comments" section for DETECT-LOCK,
       delete the second paragraph and replace with:

           If a READ statement attempts to lock a record (that is,
           if the statement LOCK MODE IS AUTOMATIC has been
           specified, or a WITH LOCK phrase is used on the READ
           statement), and the record is locked by another program,
           an I/O status of 9/068 is returned. If NODETECT-LOCK is
           specified, and the READ statement is not attempting to
           lock a record an I/O status of 0/000 is returned.

    o  Page 6-74. In the description of the FILETYPE directive, delete the
       paragraph beginning:

           Type 1 is available

       -nwb45207 added V4.1.10

       -nwb44393 added V4.1.10

    o  Page 6-84. Add the following at the end of the "Comments:" section
       for GNT:

          On 32-bit COBOL systems, use this directive in preference to the
          OMF directive.

          On 32-bit COBOL systems, This directive creates a file in the
          format specified, with the name specified. For example, if you
          specify GNT"myprog.gnt", then a file myprog.gnt is produced that
          contains generated code.

       -added NWB42068 V4.1.10

    o  Page 6-86. In the entry for HOST-NUMCOMPARE,
       in the section "Syntax:" change the syntax to:

           >>--+---+--+------HOST-NUMCOMPARE--"<integer>"--+--><
               +-/-+  +-NO---HOST-NUMCOMPARE---------------+

       and in the section "Parameters:", add:

           <integer>        Must be 1 or 2.

       and in the section "Comments:"/"Remarks:", add before the first
       paragraph:

           The HOST-NUMCOMPARE directive is Early User Syntax support. You
           must use the EARLY-RELEASE directive to enable this feature. This
           directive might change or be removed in a later revision of this
           COBOL system.

           <integer> can be:

           1

       and after the last paragraph of this section add:

           2   Improves compatibility with IBM mainframe compilers for a
               subset of IF statements involving comparisons between numeric
               data items and numeric literals.

               Setting HOST-NUMCOMPARE(2) does not provide 100% compatibility
               with the IBM mainframe behavior, but does provide emulation
               for the most common cases.

           You cannot use the HOST-NUMCOMPARE(2) in conjunction with the
           HOST-NUMCOMPARE(1).

    o  Page 6-87. In the entry for HOST-NUMMOVE, in the section "Syntax:"
       change the syntax to:

           >>--+---+--+------HOST-NUMMOVE--"<integer>"--+--><
               +-/-+  +-NO---HOST-NUMMOVE---------------+

       and in the section "Parameters:", add:

           <integer>        Must be 1 or 2.

       and in the section "Comments:", add before the first paragraph:

           <integer> can be:

           1

       and replace the text for list item with:

           2  Improves compatibility with IBM mainframe compilers for a
              subset of MOVE statements involving numeric/alphanumeric
              data types and numeric/numeric data types.

              HOST-NUMMOVE(2) does not provide 100% compatibility with the
              IBM mainframe behavior, but does provide emulation for the
              most common cases.

           You cannot use the HOST-NUMMOVE(2) directive in conjunction with
           the HOST-NUMMOVE directive.


    o  Page 6-91. Before the entry for INCLUDE-FILLER, add the following new
       entry:

           IMPLICITSCOPE
           =============

           Specifies whether warning messages are produced if statements
           containing subsidiary imperative statements are terminated other
           than by an explicit scope terminator.

           Syntax:

               >>--+---+--+----+----IMPLICITSCOPE----------><
                   |-/-|  |-NO-|

           Parameters:    None

           Properties:
               Default:     IMPLICITSCOPE
               Phase:       Syntax check
               Environment: All


               For example, a warning message is produced when an IF
               statement is not terminated by an END-IF, or when an ADD
               statement with an ON SIZE ERROR clause is not terminated by
               an END-ADD.  However, a simple imperative add (for example,
               ADD 1 to x) without the optional END-ADD will not receive
               such a warning message.

               The messages produced by this directive are warnings, so are
               visible if the WARNINGS directive is set appropriately.

           Example:
           The following examples show cases that cause warning errors to be
           produced:

            add 1 to n
            on size error
            move 1 to size-error-flag.

           In the above example, the scope of the ADD statement is
           terminated by the period.

            if x = 1
               if y = 1
                   display  "y = 1"
               else
                   display "Y not = 1"
            else
               display "x not = "
            end-if

           In this example the inner IF is implicitly terminated by the else
           belonging to the outer IF.


    o  Page 6-99. In the entry for the LINKCOUNT directive, in the section
       "Parameters:", change "The number allowed." to:

            The number allowed (maximum 65535).

        - NWB45359 added V4.1.10

    o  Page 6-100. In the entry for the LINKCOUNT directive, in the
       section "Comments:", add at the end:

           <integer> has a maximum value of 65535. However the
           maximum size will depend on how many other data items
           are defined. If it is set too high a 781-S 'Maximum number
           of data items exceeded' error might occur. In this case
           the value in LINKCOUNT should be lowered.


    o  Page 6-143. In the entry for RECMODE, in the section "Comments:", in
       the entry for OSVS, delete the third sentence of the second
       paragraph. After the entry for OSVS, add:

           VSC23  Fixed or variable length depending on the file's record
                   definitions. If all record definitions for the file are
                   the same length, and are fixed length and/or the FD entry
                   has a RECORD CONTAINS <x> CHARACTERS clause, the file is
                   fixed length record format. Otherwise it is in variablle
                   record format.

                   This setting is compatible with VS COBOL II and COBOL/370
                   when compiled with NOCMPR2.


    o  Page 10-117. In the entry for OBJ, add the following at the end of
       the "Comments:" section:

          On 32-bit COBOL systems, use this directive in preference to the
          OMF directive.

          On 32-bit COBOL systems, This directive creates a file in the
          format specified, with the name specified. For example, if you
          specify OBJ"myprog.obj", then a file myprog.obj is produced that
          contains generated code.

    o  Page 10-123. In the entry for OMF, add the following at the end of
       the "Comments" section:

           On 32-bit COBOL systems, use the directives OBJ or GNT in
           preference to this directive.



    o  Page 6-148. In the entry for RM, in the section "Dependencies:", in
       the first and third lines, add:

           COMP-6"1",

       after the word "sets", and In the fifth line, add:

           COMP-6"2",

       after the word "sets".


    o  Page 6-150. In the entry for SAA, in the section "Dependencies:",
       change the second line to:

           SAA"2" sets ANS85 at end.


    o  Page 10-174 (CN -181). In the entry for VSC2, in the section
       "Dependencies:", change the second line to:

           If <integer> > 2, VSC2"<integer>" sets ANS85 at end.


   Chapter 7 (Linking)
   -------------------
    o  Page 7-5. In the section "Dynamic Linking", delete the second,
       parenthesized, sentence, and replace with:

           Check that there is no 'B' in the version number
           on the first line of $COBDIR/cobver


   Chapter 15 (Terminfo Database and Terminal Devices)
   ---------------------------------------------------
    o  Page 15-7. In the table, in the section "Optional Entries",
       add at the end:

           Move safely in standout mode       msgr
           (if appropriate)


    o  Page 15-13. The bulleted list item that begins "Adis restarts".
       Delete the second sentence in this item.










   Programmer's Guide to File Handling
   ===================================
   Chapter 2 (File Naming)
   -----------------------
    o  Page 2-11. Under the heading "Activating the Mapper File",
       replace the section on activating the mapper file on 16-bit
       systems with the following:

       16-bit  To use Mfextmap in an application on the 16-bit COBOL
               system, you must put an entry for it in the
               [MFRUN-INSTALL] section of the run.cfg configuraton
               file. The entry in run.cfg should look like this:

               [MFRUN-INSTALL]
               $COBDIR\MFEXTMAP


    o  Page 2-11. Immediately below the heading "Activating the
       Mapper File", insert the following:

       You cannot use Mfextmap with a statically linked application.
       With a dynamically linked application, you can use the
       INITCALL"MFEXTMAP" Compiler directive or the appropriate
       method of run-time configuration as described below.


    o  Page 2-18. Under the heading "Setting Up Pipes", alter the
       first paragraph to read as follows:

       32-bit  On 32-bit COBOL systems, when you specify the
               contents of an environment variable, you can
               use the following three characters to set up
               pipes or named pipes:


    o  Page 2-19. Under the heading "The '<' Character", alter the
       example to read:

           dd_dir="<cmd /c dir"


    o  Page 2-19. Under the heading "The '>' Character", alter the
       example to read:

           dd_dir=">cmd /c pr -h Title"


    o  Page 2-20. Change the example of using the '|' character to
       read:

           dd_file1="|cmd /c proc"


   Chapter 4 (Using File Status)
   -----------------------------
    o  Page 4-8. Add the following to the section "IBM Mainframe Status
       Codes":

           IBM mainframe 9<x> file status codes (see your "Mainframe
           Programmer's Guide" for details) are within the range 90 to 99
           where the second byte <x> is a single alphanumeric character.
           Micro Focus extended file status codes have the character 9 as
           the first byte and the second byte is a binary value equivalent
           to a run-time error number.  If you do not specify a file status
           data item for a file, file errors with a first byte value of 9
           result in display of a run-time error message. If you are using
           HOSTSTAT, therefore, you must ensure that a file status data item
           is defined within your program, otherwise, on receipt of a 9<x>
           file status, the run-time system assumes this is an extended file
           status code, treats the second byte as a binary value and
           displays an invalid run-time error message. You should also
           ensure that your own code treats the second byte of file status
           codes beginning with the character 9 as a single alphanumeric
           character and not as a binary value.


   Chapter 6 (Sharing Files)
   -------------------------
    o  Page 6-14. Add the following to the section "All File Types":

         UNIX
           Implementation of DOS and OS/2 file handling compatibility code
           within this COBOL system means that on UNIX, because of the way
           in which UNIX handles file locks, if a file is opened twice by
           the same program, and that file is subsequently closed using a
           file descriptor (FD) received from one of the open operations,
           any locks obtained by the other open operation are lost. This is
           the expected behavior of a close operation, as described in the
           POSIX standard X/Open guidelines.

           The run-time tunable posix_lock_prob provides compatibility with
           the behavior exhibited in V3.0. To emulate this behavior, set
           posix_lock_prob to TRUE:

               set posix_lock_prob=TRUE

           See your Object COBOL User Guide for full details on the
           posix_lock_prob run-time tunable.


   Chapter 8 (File Handler Utilities, UNIX)
   ----------------------------------------
    o  Page 8-4. Within the "Overview" section, alter the
       description of the types of indexed file supported by the
       file handling utilities to read as follows:

           The file handling utilities support five types of
           indexed file:

            o  C-ISAM format (indexed files with fixed length records, that
               is, files created using either the modified version of C-ISAM
               supplied with this COBOL system or the standard C-ISAM file
               handler).

            o  X/Open format

            o  LEVEL II format (created by LEVEL II or later versions
               of COBOL).

            o  Micro Focus COBOL indexed files (indexed files with variable
               length records, data compression, or created by programs
               compiled using IDXFORMAT"3").

            o  IDXFORMAT"4"


    o  Page 8-9. Add the following, below Table 8-1:

           Note: Throughout this chapter, I0 indicates a C-ISAM file created
                 using either the modified C-ISAM file handler provided with
                 this COBOL system, or the standard C-ISAM file handler,
                 while I3 indicates a Micro Focus COBOL indexed file, that
                 is, an indexed file with variable length records, data
                 compression or created by a program compiled using
                 IDXFORMAT"3".


    o  Page 8-38. Under the heading "reorg.reo Paramter File", add
       the following to the bottom of the list of contents of
       reorg.reo:

           PK (0:4:CHARTYPE)          # prime key


   Chapter 11 (Directory Handling)
   -------------------------------
    o  Page 11-3. Add the following to the Comments section on
       CBL_COPY_FILE:

       DOS, Windows   CBL_COPY_FILE emulates the equivalent operating
       and OS/2       system call. On DOS, Windows and OS/2, therefore,
                      the new file is stamped with the same time and
                      date as the original file.

       UNIX           CBL_COPY_FILE emulates the equivalent operating
                      system call. On UNIX, therefore, the new file is
                      stamped with the current time and date.

   Chapter 13 (Callable File Handler)
   ----------------------------------
    o   Page 13-9. Alter the description of Offset 7 (Open mode) to
        read as follows:

            7      1      Open mode. You must set this field to 128
                          before opening a file. This field is
                          written to by the Callable File Handler so
                          that, on return, it indicates the open mode
                          of the file:

                          0   - INPUT
                          1   - OUTPUT
                          2   - I/O
                          3   - EXTEND
                          128 - File is closed


    o  Page 13-11. Alter the description of file format (offset 34),
       as follows:

           0 - Operating system default. C-ISAM on UNIX, same as
               specifying a value of 3 on DOS, Windows and OS/2.
           1 - C-ISAM
           2 - LEVEL II COBOL format
           3 - Micro Focus COBOL format.
           4 - IDXFORMAT"4" format.


    o  Page 13-18. Add the following to the table of operation codes:

           EC     WRITE BEFORE mnemonic-name    S
           ED     WRITE AFTER mnemonic-name     S


   o  Page 13-22. Alter the description of Offset 7 (Open mode)
       to read as follows:

           Offset 7    Open mode. Must be set to 128 before opening
                       a file.

    o  Page 13-26. Add the following to the table of operation codes:

           EC     WRITE BEFORE mnemonic-name    S
           ED     WRITE AFTER mnemonic-name     S


    o  Page 13-40. Add the following to the end of the
       paragraph which begins "Global settings are listed ...":

           The file handler expects filenames appearing in extfh.cfg to be
           exactly the same (ignoring case) as the name with which it
           attempts to open the file, so if the file handler attempts to
           open the file using the full pathname, you must specify the full
           pathname in extfh.cfg. Note that a "\" (backslash) character
           appearing within extfh.cfg is treated as an escape character and
           so, for each backslash character in the pathname you must specify
           two backslash characters ("\\" instead of "\").


   Chapter 14 (Handling C-ISAM Files)
   ----------------------------------
    o  Page 14-1. Under the heading, "C-ISAM Modules", alter the
       first paragraph to read:

           On UNIX systems, the RTS uses a version of the C-ISAM
           file handler that has been modified to fulfill this
           COBOL system's record locking requirements. Note that
           the format of files created using the modified C-ISAM
           file handler is identical to the format of files
           created using the standard C-ISAM file handler.


    Chapter 16 (Byte-stream File Handling)
    --------------------------------------
     o  Page 16-10. Within the description of the byte-count
        parameter of the CBL_WRITE_FILE routine, insert the side
        heading "DOS, Windows and OS/2" next to the paragraph:

           Putting a value of zero in this field causes the file
           to be truncated or extended to the size specified in
           the file-offset field.


   Chapter 18 (Fileshare)
   ----------------------
    o  Page 18-10. Within the section "In a Configuration File",
       add, as the first note in the list of Notes:

          o The Fileshare Client configuration file can contain
            a maximum of 16 unique Fileshare Server names.


    o  Page 18-15. Within the section "Fileshare Client Configuration"
       add, as the first note in the list of Notes:

          o The Fileshare Client configuration file can contain
            a maximum of 16 unique Fileshare Server names.


    o  Page 18-16. To the definition of "server-name", add:

          The Fileshare Client configuration file can contain
          a maximum of 16 unique Fileshare Server names.


    o  Page 18-28. At the bottom of the page, alter the paragraph
       numbered "2." to read:

           Now take a backup of your database files. Any log files
           are now obsolete. Delete them.


    o  Page 18-29. Under the heading, "Recovery Log File Backup",
       delete the last sentence of the first paragraph:

           On start-up, the Fileshare Server automatically backs
           up the log file.


    o  Page 18-33. Under the heading "Database Sequence Numbering",
       alter the message severity to 'S' (severe):

          FS038-S A matching sequence number not found in <filename>


    o  Page 18-71. Alter the command:

           fs &
       to:
           fs > server-1.log 2>&1

       and append the following text to the paragraph which
       follows the command:

           You need to redirect the output from the command
           because otherwise, on some UNIX systems, output is
           sent to the terminal after it has been disconnected
           and, consequently, the entire session is terminated.


   Chapter 24 (Embedded SQL Using DB2)
   -----------------------------------
    o  Page 24 -6. Alter the line:

           sh mkrts

        to:

           sh mkrts sqlinit.o


   Chapter 30 (File Structures)
   ----------------------------
    o  Page 30 -3. Within the section "Fixed and Variable Format",
       alter the third bullet point to read:

          The OCCURS...DEPENDING ON clause which creates variable
          format when you set the RECMODE"OSVS" Compiler directive.


    o  Page 30 -17. At the bottom of the page, under the heading, "Indexed
       Organization on UNIX", alter the first sentence to read:

           If you are using C-ISAM (either the modified C-ISAM
           provided with this COBOL system or the standard
           C-ISAM file handler), the C-ISAM file handler handles
           all fixed length indexed records.


   =========================================================================
   Micro Focus, Animator, and COBOL Workbench are registered trademarks of
       Micro Focus Limited.
   Object COBOL, Toolbox, CCI, Dialog System, Fileshare, Operating System
       Extensions, OSX, and Panels are trademarks of Micro Focus Limited.
   IBM, OS/2, and PC are registered trademarks of International Business
       Machines Corporation.
   Windows is a trademark of Microsoft Corporation.
   UNIX is a registered trademark of X/Open Company Limited.
   =========================================================================
   @(#)Vrn/dun.1/25Apr97/nrV
   Copyright (C) 1992-97 Micro Focus Limited

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026