dos_compilers/Microsoft COBOL v21/UPDATE.DOC
2024-07-24 06:58:04 -07:00

223 lines
9.5 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.