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.
|
||
|