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