The fact, that the Stony Brook system comes with different
libraries, so far prevented quick adaptation of existing
Logitech Modula-2 V4 applications. These times are gone
now. With the availability of compatible libraries from
TERRA the port of existing DOS and Windows 16-bit Logitech
Modula-2 V4 applications to Stony Brook Modula-2 V3 has
become a snap.
The Logitech Modula-2 V4 compatible library implementations
basically include all but a few Logitech library modules.
Not included are module "Break", the exception
handling modules, and some further modules of the run-time
support, which are unlikely to be called directly from
Interrupt Handling and Coroutines in Stony Brook Modula-2
When compiling for DOS, Stony Brook Modula-2 V3 supports
writing interrupt handlers basically in the same way as
Logitech Modula-2 V4, i.e. it recognizes the [INTERRUPT]
procedure attribute. As usual for ISO Modula-2 implementations,
coroutine handling is provided by the standard module
COROUTINES, and the standard type PROTECTION provides
for module protection ("priorities").
The original Stony Brook COROUTINES module provides TRANSFER,
but does not implement IOTRANSFER and related procedures.
Therefore, TERRA has added two IOTRANSFER implementations
in the Logitech compatible DOS library: One according
to the ISO standard, and another one that follows the
old Wirth/Logitech definition.
TERRA has also added a simple implementation of module
protection, which is not based on the interrupt controller
mask (like priorities in Logitech Modula-2): Interrupts
will be turned off on the processor level when executing
code in a protected module. This scheme is expected to
be sufficient in many cases, although some systems might
require more precise control.
At present, the above only applies to DOS applications.
Up to some point it could also be provided for the 32-bit
DOS extended environment, although certain restrictions
will probably remain. If you just need COM port I/O and
parallel processing, creating a Win32 application based
on the Windows API and module "Threads" might
be a reasonable alternative.
If your application has particular requirements in anyone
of the above areas, please communicate them to TERRA Datentechnik.