Date : Fri, 23 Jan 1987 03:42:45-MST
From : Rick Conn <RCONN@SIMTEL20.arpa>
Subject: Turbo Modula-2 demo
I have created a new directory under PD:<CPM> called PD:<CPM.TURBOM2>
and placed the file BOXDEMO.LBR in it. This is a demo of Borland's
Turbo Modula-2 which I felt may be of general interest. The following is
BOX.DOC, which is contained within BOXDEMO.LBR.
Rick Conn
---- BOX.DOC ----
Borland's Turbo Modula-2 for Z80's/HD64180's
by Rick Conn
23 Jan 87
The following files constitute a simple demonstration of
Borland's Turbo Modula-2. The demo is dependent on a TVI 955 terminal
(it may also run on a TVI 950 - I haven't tried it), and the BOXTEST
routine (the mainline) draws 5 boxes on the screen using business graphics.
This demonstration illustrates the Turbo Modula-2 packaging concept
(definition/implementation modules).
Echelon sent me a copy of Turbo Modula-2, and, being a fan of Ada,
I took a serious look at the system. I am very pleased with it. Turbo
Modula-2 is certainly not Ada (or even close to Ada), but it does contain
some of the really useful concepts that I regularly employ in Ada programming.
For instance,
1) Turbo Modula-2 supports a packaging concept. The definition
module/implementation module concept allows a module to be defined without
actually being implemented, allowing programs to be written based solely
on the definition module (deferring the creation of the implementation
module to a later date).
2) Turbo Modula-2 supports exceptions. I really like this concept
in Ada, and, in some ways (particularly wrt the ability to pass strings
in exceptions), I like Turbo Modula-2's exception mechanism better.
3) Turbo Modula-2 supports multi-processing (coroutines). The
mechanism is simple, not nearly as sophisticated as Ada tasking, but it
is useful.
I really like Turbo Modula-2 and plan to play with it for a while.
Like Turbo Pascal, Turbo Modula-2 has a very nice integrated working
environment (editor/compiler/librarian). The code generated by Turbo
Modula-2 is reasonably efficient.
FILES IN THE LBR:
Filename.Typ Size K RS Filename.Typ Size K RS Filename.Typ Size K RS
BOXLIB .MOD 4 BOXLIBD .MOD 4 BOXTEST .MOD 4
BOXTEST .COM 12
BOXLIBD - definition module for BOXLIB
BOXLIB - implementation module for BOXLIB
BOXTEST - test routine/module for BOXLIB
INTERESTING FILES ON TURBO MODULA-2 WORK DISK:
Filename.Typ Size K RS Filename.Typ Size K RS Filename.Typ Size K RS
BOXTEST .COM 12 BOXLIB .MOD 4 BOXTEST .MOD 2
BOXLIB .MCD 2 BOXLIBD .MOD 2 BOXLIB .SYM 2
BOXTEST .MCD 2
BOXLIB.SYM - created from compile of BOXLIBD.MOD; compiling
BOXLIBD.MOD created BOXLIBD.SYM, and I then
renamed BOXLIBD.SYM to BOXLIB.SYM
BOXLIB.MCD - created from compile of BOXLIB.MOD
BOXTEST.MCD - created from compile of BOXTEST.MOD
BOXTEST.COM - COM file containing BOXTEST and BOXLIB; runs
BOXTEST
INSTRUCTIONS FOR COMPILING
1. Compile BOXLIBD.MOD first. This the definition module for
BOXLIB which contains the definitions of the types and procedures
within BOXLIB that are visibile external to the BOXLIB module. Once
compiled, rename the BOXLIBD.SYM file which was created to BOXLIB.SYM.
2. Use the Turbo Modula-2 librarian to create a new library and
place BOXLIB.SYM into this library. Add this new library to the
compiler search path.
3. Compile BOXLIB.MOD next. This is the implementation module
for BOXLIB which contains the implementations of those procedures
declared in the BOXLIBD definition module. Compiling BOXLIB.MOD
creates BOXLIB.MCD.
4. Use the Turbo Modula-2 librarian to add BOXLIB.MCD to the
new library (which already contains BOXLIB.SYM).
5. Compile the mainline module BOXTEST.MOD. The resulting
BOXTEST.MCD file may then be linked (be sure the new library which
contains BOXLIB.SYM and BOXLIB.MCD are in the search path). BOXTEST.MCD
may also be run without explicit linking to create a COM file.
DISCLAIMER: I used to be associated with Echelon, who now sells
Turbo Modula-2. I receive no income from Turbo Modula-2 sales.