Terra Datentechnik Home Home · Modula-2

Release Notes of Logitech Modula-2 4.0 "Support Release 3 by TERRA"



In April 1993 TERRA provided its Modula-2 customers with a first M2V4

Support Release. Now TERRA has compiled the M2V4 Support Release 3, a

further enhanced and corrected version of Logitech Modula-2 Release 4.

Part of what is in this Support Release has already been provided on our

M2V4 Support Disk and/or on our mailbox. The M2V4 Support Release 3 is

intended to be installed on top of an installed Logitech Modula-2 V4.00

system. The Support Release 3 includes the files of the previous Support

Releases, too. Therefore, it does not matter whether this Support

Release is installed over an already upgraded system or not.

Together with the M2V4 Support Release 3, TERRA also provides updates

for users that hold a license of the TERRA ROM Tools V4.00/4.01 or the

Logitech Modula-2 V4.0 Compiler Support for DOS/16M.

Release Notes (in Modula-2 root directory)


SUPREL-1.TXT    Release notes for the "Support Release 1 by TERRA"

                released April/August 1993.

SUPREL-2.TXT    Release notes for the "Support Release 2 by TERRA"

                released June 1994.

SUPREL-3.TXT    This file. 

You may also want to refer to file DOC\DOC-LIST.TXT for an overview of all

documentation files included with Logitech Modula-2 V4.00.



To install the updated files, make the drive containing the distribution

disk current and simply start the 'INSTALL.BAT' file.

After updating your Modula-2 files you may execute SETUP.EXE, which is

a Windows program, to create a program group containing all recent

Modula-2 Windows examples.

Notes for users that hold a license of the TERRA ROM Tools V4.00/4.01 or

the Logitech Modula-2 V4.0 Compiler Support for DOS/16M:

- If you have also installed the TERRA ROM Tools V4.00/4.01, then you

  MUST UPDATE your ROM Tools installation by means of ROM4SR3.EXE.

  See file README.ROM on the M2V4 Support Release 3 distribution disks.

- If you have also installed the Logitech Modula-2 V4.0 Compiler Support

  for DOS/16M (date of LIB\LTM40\LTM40XP.LIB older than June 95), then

  you MUST UPDATE your DOS/16M installation by means of LTM40SR3.EXE.

  See file README.D16 on the M2V4 Support Release 3 distribution disks.

Summary of Major Improvements in M2V4 Support Release 3


From Stony Brook, the original producer of the Symatec/Logitech Modula-2

V4.0 compiler, TERRA Datentechnik now provides you with a corrected new

version of the Modula-2 V4.0 compiler. The original Modula-2 V4.0 compiler

is in fact a pre-released version of the Stony Brook V2.2 Modula-2 compiler.

Therefore, the Stony Brook Modula-2 compiler version 2.22-L provided by

TERRA with this support release is a compatible replacement for the original

Logitech Modula-2 V4.0 compiler.

Compiler                Code generation problems fixed. New possibility

                        to make use of EMS memory.

Debugging               New module DebugTrace (DOS version only) as in

                        Logitech Modula-2 V3. New pseudo module System

                        allows to display FLAGS in variables of type

                        REGISTER with the MultiScope debugger.

Documentation           New or updated information on alignment, on the

                        /INLINE and /WINDOWS options, and on compiler

                        limitations. Hints for including a Windows exit

                        procedure (WEP) into a DLL. Windows information

                        for examples related to animation, bitmap display,

                        context sensitive help, 3-D dialog controls

                        (CTL3D library), and ownerdraw buttons/toolbars.

Standard Library,

Run-Time Support        All known problems corrected, in particular those

                        related to mixing Modula-2 and C code under DOS

                        (relink such programs with new CM/MCRTS.LIB!).

                        New module QuickSort for sorting all kinds of data.

                        Hugepointer and bit operations, Windows interface

                        modules for 3-D controls and version management.

Utilities               Updated C2M.EXE, TERRA C header-file to Modula-2

                        Definition Converter. New alternative C-Header

                        to Pascal/Modula-2 Converter H2P.EXE.

Examples                Sample program illustrating module QuickSort.

                        Windows DLL sample program extended to include

                        a Windows exit procedure (WEP).

                        Various Windows programs showing techniques to

                        produce attractive user interface items.

Stony Brook Modula-2 Compiler V2.22-L


This new compiler corrects all serious problems of the original Logitech/

Symantec Modula-2 V4.0 compiler (which in fact is an earlier version

Stony Brook compiler). All default option settings remain the same.

Compatibility with original Logitech Modula-2 V4.0 compiler:

- All options and default option settings remain the same.

- The code generated is not fully compatible with previous versions of

  the Modula-2 run-time support. Therefore, is important to always link

  the new M2RTS libraries. See note on Code Generation Changes below.

New Feature:

M2EMS=Y         Setting this DOS environment variable in that way will

                provide extra memory to the compiler. It causes the

                compiler to map EMS memory and to use this extra memory.

                The compiler does not use EMS memory in a paged fashion,

                but maps EMS memory into as many "holes" in the upper

                address ranges below 1MB as it can. Thus you can get at

                least 64 KB of extra memory, and more depending on how

                the memory management is setup on your system.

Code Generation Changes:

The code produced for sparse case statements (/SPARSE = default) differs

from the original Logitech V4.00 code. Since the sparse case statement

code calls the run-time support (RTSLang.SYSTEM_CASE), it is important

to always link the new M2RTS libraries delivered with the new compiler.

Their code has been adapted to that change, but is also compatible with

object files produced by the original Logitech V4.00 compiler.

Compiler Bug Fixes:

In particular, the Stony Brook Modula-2 compiler V2.22-L fixes the

following problems of the original Logitech Modula-2 V4.00 compiler:

- Bad stack check code generation when compiling with /DATA:L. Note,

  however, that the stack test must always be off when compiling a

  module with /DATA:L for use in a Modula-2 Windows program. See

  document TZ-930305.1/BJ (file WINLARGE.TXT) for more information.

- Bad code generation for long-set expressions and IN tests.

- Bad code in FOR loops that access arrays of records.

- Code that causes general protection fault when using SMALL or LARGE

  CONST memory model in protected mode.

The complete list of corrected compiler problems can be found in file

file M2CFIXED.TXT (Modula-2 Compiler Problems Fixed).

Compiler Limitations:

It is recommended to take at least a quick look at the short list of

general limitations of the Stony Brook Modula-2 compiler and the

differences to the V3.40 LOGITECH Modula-2 compiler, which is provided

in file M2LIMITS.TXT (Modula-2 Compiler Restrictions).

Documentation Files (DOC and DOC\BUGS sub-directories)


Several of the existing documentation files will be updated when installing

this support release, and some obsolete ones will be removed. The following

files have been modified or are new in this support release:

ALIGN.TXT       Notes on alignment and order of variable allocation.

C2M.TXT         README for TERRA C-Header to M2-Definition Utility.

DLLREAD.TXT     Hints for creating Windows DLLs with Modula-2 V4, now

                also describes the Windows exit procedure (WEP).

DOC-LIST.TXT    Complete list of all V4 document files, including a short

                description of each document.

H2P.TXT         README for Stony Brook C-Header to Pascal/Modula-2 Utility.

M2CFIXED.TXT    Lists problems of the original Logitech V4.00 compiler

                corrected in the Stony Brook Modula-2 compiler V2.22-L.

M2LIMITS.TXT    Documents limitations that apply to the Stony Brook

                Modula-2 compiler V2.22-L.

M2L.TXT         Hints to resolve some special errors reported by M2L.

M2OPTION.TXT    Hints for selecting Modula-2 V4 compiler options, includes

                more accurate description of options /INLINE and /WINDOWS.

V4MEMMOD.TXT    Hints for selecting the memory model with Modula-2 V4.

WINLARGE.TXT    Hints (and README for example) for using the large memory

                model for data in Modula-2 Windows programs.

CTL3D.TXT       From the Microsoft Developers Network library. This file

                contains detailed information about how to add 3-D effects

                to standard Windows controls.

ANIMAT.TXT      Notes for .BMP/.DIB file animation example.

HELPHOOK.TXT    Notes for the message filter example. In this case we

                use the message filter to catch WM_KEYDOWN->VK_F1

                messages to implement a context sensitiv help function.

SUBDLG.TXT      Now your application can have state of the art multi-

                dialogs as it can be found in WinWord, Excel and Windows95.

OBUTTON.TXT     Give your application a unique interface with ownerdraw

                buttons and a mouse sensitive status bar.

Default Project Files (BIN sub-directory)


Some minor improvements have been made in the Windows and Windows DLL

default project files DEFAULTW.PRJ and DEFAULTD.PRJ. File LIBRARY.MAK

has been adjusted to include the new library modules.

Standard Library Modules


BitOps          Various logical test operations on word and long word

                sized types. Commonly used in Windows programming.

CTL3D           Add 3-D effects to standard Windows controls.

                To support this functionality you will find CTL3D.DLL,

                CTL3D.LIB, CTL3DV2.DLL and CTL3DV2.LIB in the LIB-

                directory. Please see CTL3D.TXT and the Windows examples

                for a description and application example.

DebugTrace      Allows to display the call chain of any Modula-2 process

                at any time, as well as when a run-time error occurs.

HugePointer     Operations on huge pointers (protected mode only).

QuickSort       Sorting of data in arrays or given by an array of

                pointers by means of the quick-sort algorithm.

System          Special definition module that allows for debugging when

                using (SYSTEM.)REGISTERS, FLAGS, FLAGSSET.

Ver             Version management functions, types, and definitions.

                Include file for VER.DLL and VER.LIB.  These libraries are

                designed to allow version stamping of Windows executable

                files and of special .VER files for DOS executable files.

                See the SDK-Dokumentation for more details. The

                file LIBW.LIB contains the VER.LIB also. Check the file

                EXAMPLES\ANIMAT\ANIMAT.RC to see how to add version

                resources to a Windows executable.

Run-Time Support


RTSDosVectors   New version numbering, new version "Windows". Does not

                install CTRL-C and CTRL-BREAK handler code under Windows

                (not really used anyway, but causes MS RC 3.10 warning).

RTSIntPROC      FreeIntPROC corrected to restore all original handlers.

RTSLang         Turn interrupts off earlier in SYSTEM_INT.

                SYSTEM_CASE adapted to Stony Brook Modula-2.

RTSStack        Stack check adapted to Stony Brook Modula-2 (/DATA:L).

RTSStart        Code related to programs that include C code corrected.



ANIMAT          The Windows sample program to learn how to load and

                display bitmaps using HugePointers, move masked bitmaps

                over the background and edit and store animation sequences

                in a script file.

DLL             The Windows DLL sample program now also illustrates how

                to use a Windows exit procedure (WEP).

HELPHOOK        The Windows sample program from which you can learn how

                to implement context sensitive help functions.

OBUTTON         Ownerdraw buttons/toolbars with mouse move sensitive status

                messages make the difference between boring standard

                Windows applications and state of the art, professional,

                'user-want-to-have' Windows programs.

QUICKSOR        Quick-sort test program illustrating the use of module


SUBDLG          How to add 'Property-Sheet'-like dialog controls to your

                Windows application. This example gives also a deep

                understanding about how to use the CTL3D library.




C2M.EXE         Some minor enhancements.

H2P.EXE         New alternativ C-Header to Modula-2 Definition Converter.

                Please see file H2P.TXT in the DOC directory.

MOUSE.EXE       New mouse driver (replaces old MOUSE.COM and MOUSE.SYS).

New/Updated Files for Rebuilding Modula-2 Libraries (BAT sub-directory)


M2*.MAK         Adjustments to new library modules.


M2RTSWIN.BAT    Some minor corrections.

Obsolete Batch and Documentation (Bug Description) Files


The following files will be removed by the installation if they exist:

- The obsolete batch files included with the M2V4 TERRA Support Release 1.

- The obsolete documentation and bug description files included with the

  M2V4 TERRA Support Release 2.

- The obsolete mouse driver executables in BIN\MOUSE (new: MOUSE.EXE)
* * *
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