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.