223 lines
9.5 KiB
Plaintext
223 lines
9.5 KiB
Plaintext
|
Microsoft COBOL MS-DOS Release 2.1
|
|||
|
|
|||
|
UPDATE.DOC
|
|||
|
|
|||
|
December 13, 1985
|
|||
|
|
|||
|
Significant changes in this release:
|
|||
|
|
|||
|
1) Any programs compiled under earlier versions of MS-COBOL
|
|||
|
should be recompiled before running; an error message
|
|||
|
indicating incompatible systems will appear otherwise.
|
|||
|
|
|||
|
2) There are numerous differences between MS-COBOL 2.1 and
|
|||
|
MS-COBOL 1.0. These are explained in detail in Appendix
|
|||
|
A of the Microsoft COBOL Compiler User's Guide.
|
|||
|
|
|||
|
In particular you should be aware that:
|
|||
|
|
|||
|
- Microsoft COBOL 2.1 is validated at LOW-INTERMEDIATE
|
|||
|
level; however, more standard COBOL features,
|
|||
|
including multiple-key Indexed files and dynamically
|
|||
|
called subroutines, are available for program use
|
|||
|
|
|||
|
- MS-COBOL 2.1 will run only under version 2.0 or later of
|
|||
|
MS-DOS.
|
|||
|
|
|||
|
- MS-COBOL 2.1 does not use a link step. Programs may be compiled
|
|||
|
then run. Programs are run by entering RUNCOB <filename>.
|
|||
|
|
|||
|
- If file I/O is to be done, you should have a CONFIG.SYS file
|
|||
|
in your root directory with the FILES command set to at
|
|||
|
least 20 (FILES=20). This allocates buffer space in MS-DOS
|
|||
|
for files.
|
|||
|
|
|||
|
If no CONFIG.SYS file is present, the default is FILES=8,
|
|||
|
which is too small. See your MS-DOS manual for details.
|
|||
|
|
|||
|
- Indexed (ISAM) files use Microsoft ISAM, which must be loaded
|
|||
|
before running programs that use Indexed files. (See Appendix
|
|||
|
G in the Microsoft COBOL User's Guide). The MS-DOS ASSIGN
|
|||
|
command must not be used while ISAM is active.
|
|||
|
|
|||
|
- See the README.DOC file for information concerning the use of
|
|||
|
ISAM files in an IBM PC-NET environment.
|
|||
|
|
|||
|
- The non-network version of ISAM.EXE shipped with Cobol 2.1,
|
|||
|
version 2.30, is not compatible with earlier versions of Cobol,
|
|||
|
and previous versions of Cobol are not compatible with
|
|||
|
ISAM.EXE version 2.30. THEREFORE, ENSURE YOUR APPLICATIONS
|
|||
|
COMPILED WITH COBOL 2.1 INCLUDE ISAM VERSION 2.30 WHEN DISTRIBUTED.
|
|||
|
|
|||
|
- Indexed file formats are different from those in MS-COBOL
|
|||
|
Version 1.0; the REBUILD utility will convert files from one
|
|||
|
format to the other.
|
|||
|
|
|||
|
- Sequential and Line Sequential files have the same format as
|
|||
|
those in MS-COBOL 1.0, except that the end of file is indicated
|
|||
|
without terminating CONTROL-Z characters. Files created under
|
|||
|
COBOL 1.0 may be used except when the OPEN EXTEND option is used.
|
|||
|
In that case, files should be generated by or copied using an
|
|||
|
MS-COBOL 2.1 program to produce the correct end of file.
|
|||
|
|
|||
|
- Cobol 2.1 does not truncate trailing blanks in a Line Sequential
|
|||
|
file. However, if an attempt is made to REWRITE a record longer
|
|||
|
than what was originally written, only the number of bytes orig-
|
|||
|
inally written will be rewritten. See discussion of /C switch
|
|||
|
below under 5) Enhancements and corrections....
|
|||
|
|
|||
|
- Assembly language subroutines must be linked with the runtime
|
|||
|
executor (RUNCOB.EXE) instead of with your COBOL program. This
|
|||
|
is explained in Chapter 10 of the User's Guide.
|
|||
|
|
|||
|
- There are several built-in subroutines which may be called to
|
|||
|
perform tasks such as deleting and renaming files, converting
|
|||
|
to upper or lower case, and getting the current cursor position.
|
|||
|
These are described in Chapter 10 of the User's Guide. Additional
|
|||
|
routines are described in the file UGUIDE.DOC.
|
|||
|
|
|||
|
- Default tab stops are now set at every 8 characters. A compiler
|
|||
|
switch (/O) is available for programs that have tabs set for
|
|||
|
the default MS-COBOL 1.0 settings.
|
|||
|
|
|||
|
- Both RUNCOB.EXE and DEBUGCOB.EXE should be configured using the
|
|||
|
INSTALL utility before any programs using screen I/O are run.
|
|||
|
DEBUGCOB.EXE should be configured even if your program does no
|
|||
|
screen I/O. INSTALL accepts a file name to be configured, but
|
|||
|
will not accept paths. Files configured must be in the same
|
|||
|
directory as the INSTALL files, or in a directory on a different
|
|||
|
disk drive or device.
|
|||
|
|
|||
|
3) Additional documentation which appeared too late to be included
|
|||
|
in the Microsoft COBOL Compiler Reference Manual and User's
|
|||
|
Guide is available in the files REFMAN.DOC, for Reference Manual
|
|||
|
information, and UGUIDE.DOC for User's Guide information.
|
|||
|
|
|||
|
Included in these files is information concerning COMP-0 and
|
|||
|
COMP-4 variables, some error messages, some new extension
|
|||
|
subroutines, an undocumented compiler switch, and an undocumented
|
|||
|
file status.
|
|||
|
|
|||
|
4) File and record locking syntax are accepted by the MS-COBOL compiler
|
|||
|
under MS-DOS 2.x, but are IGNORED at runtime. This means that files
|
|||
|
used in a multi-user environment under MS-DOS 2.x are UNPROTECTED
|
|||
|
by MS-COBOL.
|
|||
|
|
|||
|
5) Enhancements and corrections from version 2.0
|
|||
|
|
|||
|
Both compiler and runtime speed have been significantly increased
|
|||
|
compared to version 2.0. Compile speed is roughly three times
|
|||
|
faster than version 1.12 and twice as fast as version 2.0. Runtime
|
|||
|
speed is generally comparable to version 1.12, and ISAM processing
|
|||
|
is faster than in 1.12.
|
|||
|
|
|||
|
A runtime switch, /C, has been added. The product no longer
|
|||
|
defaults to truncation of trailing blanks when writing records to
|
|||
|
a Line Sequential file. However, if the /C (for Compress)
|
|||
|
switch is specified, trailing blanks will be truncated.
|
|||
|
|
|||
|
Corrections
|
|||
|
|
|||
|
- An error in which low level I/O failure, such as no space on a
|
|||
|
disk file, would cause the runtime to crash has been corrected.
|
|||
|
|
|||
|
- If INSTALL has not been run, and MS-COBOL screen extensions are
|
|||
|
requested, the job will be canceled instead of producing a long
|
|||
|
list of messages.
|
|||
|
|
|||
|
- Subprograms with USING lists in their PROCEDURE DIVISION headers
|
|||
|
can no longer be invoked except through a CALL. Also, an error
|
|||
|
is reported if the number of parameters in a calling program
|
|||
|
does not match the number in the called program.
|
|||
|
|
|||
|
- Non-COBOL subprograms whose names are the same length and
|
|||
|
differ only in the last character are now correctly
|
|||
|
differentiated.
|
|||
|
|
|||
|
- COMP-3 variables may now be used as subprogram arguments.
|
|||
|
|
|||
|
- An error is detected if DECLARATIVES is declared without a matching
|
|||
|
END DECLARATIVES.
|
|||
|
|
|||
|
- A problem with DIVIDE with REMAINDER using very large operands
|
|||
|
and a signed quotient which caused the runtime to crash has
|
|||
|
been corrected.
|
|||
|
|
|||
|
- Variables with subordinate LEVEL 88 items were treated as
|
|||
|
group items for MOVE. This has been corrected.
|
|||
|
|
|||
|
- A bug was fixed in which a paragraph containing exact multiples
|
|||
|
of 512 characters of literals would pick up the wrong text
|
|||
|
for the literals.
|
|||
|
|
|||
|
- Several problems involving COMP-4 variables have been corrected,
|
|||
|
including improper initialization and erroneous moving of a
|
|||
|
sign character into the data following an unsigned DISPLAY
|
|||
|
format receiving field of a MOVE.
|
|||
|
|
|||
|
- ACCEPT from LINE NUMBER now returns the two digit field "00"
|
|||
|
instead of a five-digit program line number. This change was
|
|||
|
done for compatibility with version 1.x.
|
|||
|
|
|||
|
- A problem where the compiler did not reject illegal characters
|
|||
|
inside the parentheses of a PICTURE clause has been corrected.
|
|||
|
|
|||
|
- The version number now appears correctly in the listing file.
|
|||
|
|
|||
|
- Problems compiling programs with more than 32K of generated object
|
|||
|
code have been fixed.
|
|||
|
|
|||
|
- Previously, if no object file was produced, and a program had overlay
|
|||
|
segments, strange characters were written to the screen during a
|
|||
|
compile. This has been fixed.
|
|||
|
|
|||
|
- Alternate collating sequences of more than 128 characters should now
|
|||
|
work. HIGH-VALUES is now hexadecimal 'FF' instead of '7F'.
|
|||
|
|
|||
|
- START with WAIT or LOCK previously generated invalid object code.
|
|||
|
This has been corrected.
|
|||
|
|
|||
|
- FULL and REQUIRED for group items no longer generates a compiler
|
|||
|
error.
|
|||
|
|
|||
|
- Several problems regarding printing have been corrected.
|
|||
|
|
|||
|
- CHAIN and CALL in certain circumstances could cause memory
|
|||
|
management problems. These have been corrected.
|
|||
|
|
|||
|
- A bug was fixed where more than 7 identifiers in and UNSTRING
|
|||
|
would cause an error in phase 3.
|
|||
|
|
|||
|
- INSTALL option 1, (install your own terminal) now works properly.
|
|||
|
|
|||
|
NOTE: When using the "Define your own terminal" option of INSTALL:
|
|||
|
If the terminal you wish to Install, and are using, is con-
|
|||
|
nected to the COM port, some characters may be lost when
|
|||
|
defining single keys (such as Function keys, cursor keys, or
|
|||
|
keys on the numeric keypad) which generate multiple character
|
|||
|
sequences. An approach which will work in all cases is to
|
|||
|
explicitly type in the character sequence that defines
|
|||
|
the key.
|
|||
|
|
|||
|
- A correction has been made such that the ON OVERFLOW clause in the
|
|||
|
CALL statement now works properly.
|
|||
|
|
|||
|
- A bug in handling relative files has been corrected.
|
|||
|
|
|||
|
- A syntax error involving BLANK now generates a syntax error rather
|
|||
|
than a compiler error in phase 3.
|
|||
|
|
|||
|
- REWRITEing a record in a LINE SEQUENTIAL file no longer clobbers
|
|||
|
the first byte in the following record.
|
|||
|
|
|||
|
- The cursor is no longer hidden after certain runtime errors.
|
|||
|
|
|||
|
- An arithmetic expression in a PERFORM statement now computes
|
|||
|
properly in all cases.
|
|||
|
|
|||
|
- The compiler will now give an error if there is no period following
|
|||
|
a required paragraph name.
|
|||
|
|
|||
|
- The compiler now works properly when REDEFINES clauses are sub-
|
|||
|
ordinate to data items containing an OCCURS clause.
|
|||
|
|