(Extract of release notes of August 1998)
As Logitech Modula-2 3.40 continues to be used for a number
of large projects, TERRA compiled some first M2V3 Library Support
Releases in February and June 1997. However, after checking out
the system for year 2000 compliance in 1998, some year 2000 and
also year 2028 problems became apparent.
The TERRA M2V3 Library Support Release 2.0 resolves these
problems for the library itself. While maintaining full compatibility
with the original Logitech Modula-2 library, the M2V3 Library
Support also provides some additional functionality, that allows
customers to address year 2000 problems in their Logitech Modula-2
application programs. For details, please refer to the corresponding
section below, and to the document provided in file M2DOC\YEAR2000.TXT.
The M2V3 Library Support Release also includes fixes for the
other major problems known to exist in the original Modula-2
V3.40 Library and Run-Time Support. In addition, the descriptions
of the known compiler problems, as well as a few TERRA utility
modules have been included into the M2V3 Library Support.
Note, however, that the M2V3 Library Support does not
address the year 2000 problems that have been identified in the
Logitech Modula-2 V3.40 compiler. Due to the significant
efforts required to fix those problems, the corrected compiler
(TERRA Version 3.41 or later) is available separately from TERRA.
The M2V3 Library Support is compatible with Logitech Modula-2
V3.40 and all TERRA products for Logitech Modula-2 V3. In particular,
this includes the TERRA Standard and Protected Mode ROM Tools
V3.50, the TERRA Large System Tools V1.50/W95, the Logitech/TERRA
Real Time Kernel, and the TERRA Support Library for using Logitech
Modula-2 V3 together with the DOS extender DOS/16M (by Tenberry
The M2V3 Library Support may be installed by setting the current
drive and directory to the one where the distribution files reside
and running the INSTALL.BAT program.
You will be prompted for the target drive and directory where
to install the files. We recommend to install the update into
the same directories where your original Modula-2 V3.40 system
resides, causing the new files to replace those of the previous
Logitech Modula-2 V3 offers several alternatives for linking
programs that use REAL (floating point) arithmetic. The default
is to compile for the emulator (option /E). The M2L linker implicitly
uses the library M2REAL.LIB, which by default is identical to
the pure emulator library E87LIB.LIB. Users may also copy one
of the two other floating point libraries (C87LIB.LIB or M87LIB.LIB)
Because the M2V3 Library Support provides corrected versions
of the floating point libraries, file M2REAL.LIB must also be
replaced accordingly. Before starting the installation, you should
check out (e.g. by means of the DOS command COMP) and note, which
one of the floating point libraries is identical to M2REAL.LIB
in the M2LIB\LIB sub-directory of your Modula-2 V3 installation
The installation procedure will ask you whether it should
copy M87LIB.LIB or C87LIB.LIB instead of the default E87LIB.LIB
to M2LIB\LIB\M2REAL.LIB. Answering "N" to the two corresponding
questions causes the pure emulator library E87LIB.LIB to be copied.
If you do not use the default REAL emulator library (i.e. if
on your system M2REAL.LIB (in the M2LIB\LIB sub-directory) is
either identical to C87REAL.LIB or M87REAL.LIB), then you will
want to answer "Y" to one of the these two questions.
Year 2000/2028 Compliance of Library and Application Programs
The original Logitech Modula-2 V3.40 library contains some
year 2000 and 2028 problems and limitations. A number of modules
had to be changed in order to remove these.
Due to the nature of these problems, and due to the fact that
full compatibility to the original library version must be maintained
by the M2V3 Library Support Release, the year 2000/2028 compliance
of your application programs (with regard to using the library)
cannot simply be achieved by relinking after installation
of the corrected library.
You will probabely need to scan your source code and you may
need to modify some of it. Usually, only very few modifications
will be required.
Please refer to the document provided in file M2DOC\YEAR2000.TXT
for more precise hints on these issues. You may also want to
take a look at the extended TERRA version of module "TimeDate",
which is provided by the M2V4 Support Release (and replaces the
corresponding Logitech original). Its definition module can be
found in file M2LIB\DEF\TIMEDATE.DEF.
Contents of M2V3 Library Support Release 2.0
Correction of major problems known, support for year 2000 compliance.
New Library Modules:
Two small sets of useful modules.
TERRA version 3.50 RTS (same as used with TERRA Run-Time Monitor
Descriptions of the known compiler problems, based on TERRA's
compiler release V3.41 or later. (The year 2000 problems of the
original Logitech V3.40 compiler have been corrected in that
version, and, therefore, are not described.)
The files BUILDLIB.TXT, LIBSUP-2.TXT (this file), RTSREAD.ME
and YEAR2000.TXT are provided.
BUILDLIB.TXT contains information on recompiling/assembling
library modules and replacing their object files in the corresponding
RTSREAD.ME provides information on the Run-Time Support and
on rebuilding the RTS libraries.
YEAR2000.TXT provides information on the year 2000/2028 problems
and limitations of the original Logitech library, on TERRA's
library extensions and modifications for fixing these, as well
as hints and tips for checking your application programs with
regard to these problems.
This (new) sub-directory contains descriptions of the known
compiler (and some Point editor, Debugger, and library) problems.
This sub-directory contains TERRA replacement modules for
the standard library modules "Calendar", "Chronometer",
See file READ.ME in that sub-directory for more information.
This sub-directory contains the TERRA utility modules "FreeStorage"
(computation of free memory) and "QuickSort" (sorting
of arrays and records given by an array of pointers).
M2LIB sub-directories ASM, DEF, LIB, MOD, RTS, and SYM:
The files provided in the M2LIB sub-directories ASM, DEF,
LIB, MOD, RTS and SYM with this TERRA Support for LOGITECH Modula-2
V3.40 contain the modified V3.40 library and the TERRA 3.50 RTS
files as they are in use at TERRA.
The V3.40 sources of the following modules have been modified/corrected,
and their OBJ files (compiled with /f-/r-/t-/s-/nod, assembled
with /ml) have been replaced in the appropriate libraries:
- Calendar - Correction of bug TB-901120.5, problems with comparison
DebugPMD - Correction of problems on network drives.
- Decimals - Missing CASE label.
- DiskDirectory - Setting of last drive.
- DOSMemory - Correction of bug TB-901121.1, problem with process-specific
- Exec - Correction of bug TB-901120.1, problems with command
line arguments in procedure "Run".
- FileSystem Correction of bug TZ-90-07-25.1, direction-flag.
- LoadPath - History, formatting and comments re-introduced
(no real change of code).
- LogiFile - Procedures and "status" changes corrected
- Overlay - Correction of bug TB-961118.1, problem with overlay
sizes that are a multiple of 512 bytes.
- RealConversions - Correction of bug TZ-BJ-18/05/90, wrong
addition of 1.00 in "RealToString".
- Strings - Correction in "CompareStr" for non-zero
terminated string arguments.
- TimeDate - Extended TERRA version is included.
As far as necessary, these and further standard libarary modules
have also been updated for year 2000/2028 compliance.
Due to the above corrections, the following Modula-2 library
files have been modified and are updated in M2LIB\LIB with the
corresponding corrected object files:
- E87LIB.LIB, M87LIB.LIB, C87LIB.LIB
- M2REAL.LIB (Copy of E87REAL.LIB; you may want to copy M87LIB
or C87LIB to M2REAL if you prefer.)
- M2RTS.LIB, MCRTS.LIB, CMRTS.LIB (TERRA V3.50 RTS libraries)
Technical Note on the New Symbol File for Module "TimeDate"
The TERRA version of module "TimeDate" is compatible
to the original Logitech version, but provides additional features.
In order to make these available, its definition module had to
In order to maintain the compatibility also on the level of
symbol and object files generated by compilations prior to the
installation of the M2V3 Library Support, the symbol key in TIMEDATE.SYM
has been patch appropriately. Therefore, the installation of
the M2V3 Library Support and the use of the this new symbol file
does not force any recompilations.