Terra Datentechnik Home Home · Modula-2

Logitech Modula-2 V3.40 "Library Support Release 2.0 by TERRA"

(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 Inc.).


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

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) to M2REAL.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 directory.

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.

Note well:
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

Standard Library:
Correction of major problems known, support for year 2000 compliance.

New Library Modules:
Two small sets of useful modules.

Run-Time Support:
TERRA version 3.50 RTS (same as used with TERRA Run-Time Monitor TRTM).

Bug Documentation:
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.)

Sub-directory M2DOC:

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

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.

Sub-directory M2BUGS:

This (new) sub-directory contains descriptions of the known compiler (and some Point editor, Debugger, and library) problems.

Sub-directory M2LIB\TERRA1:

This sub-directory contains TERRA replacement modules for the standard library modules "Calendar", "Chronometer", and "DurationOps".
See file READ.ME in that sub-directory for more information.

Sub-directory M2LIB\TERRA2:

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 functions.
    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 block list.
  • 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 and improved.
  • 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:

  • M2REAL.LIB (Copy of E87REAL.LIB; you may want to copy M87LIB or C87LIB to M2REAL if you prefer.)

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 be (re)compiled.

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.

Von Mensch zu Mensch
Home · Modula-2

 Copyright © TERRA Datentechnik 1996-2006
Alle Rechte vorbehalten.TERRA Datentechnik übernimmt keine Haftung für die Vollständigkeit, Richtigkeit und Aktualität der Angaben!
Rechtliche Hinweise  ·  Firmenprofil
Contact us   Last Updated: 12-November-2002 Webmaster