TopSpeed Modula-2 is a Modula-2 development system for 16-bit OS/2, Windows and DOS code. It can be run natively or by cross compiling from DOS. System now owned by Soft Velocity who use it as a utility development system for their Clarion database product. An OS/2 compatible product is no longer being offered.
Originally developed by a team headed by Niels Jensen at Borland where it was intended to be a replacement for Turbo Pascal and to provide a back end for the forthcoming Borland C++ package. When the board of Borland decided to buy in a C compiler and continue with the Turbo Pascal product for branding reasons despite the downsides of the existing code, Niels and the British development team behind Borland Modula-2 bought the rights to the code from Borland and left to found Jensen and Partners International.
While there never was a 32-bit version of the TopSpeed package for OS/2, the compiler can still be used for development of command line interface programs. This is due to both the quality of the compiler output in particular and in general the quality of the supplied tools but also since the OS/2 CLI is still only 16-bit so for smaller command line programs the advantages of 32-bit tools are limited.
Please note that the last version shipped still had a couple of bugs in the thread library, so care needs to be taken when developing multi-threaded programs. Also the language differs a bit in its specifics from the language definition originally put forward by Wirth. This is due to the multi-language features of the TopSpeed development system, minor changes were needed to make it simpler to compile from a mixed Pascal and C style sources. Some of the changes and additions JPI made to the language were later incorporated into ISO Modula 2, so modern M2 textbooks use a language that is not much different from it.
The TopSpeed development environment
One unusual aspect of the TopSpeed system was that you could buy variants of the development system for C, C++ and Pascal in addition to the Modula 2 compiler and they all shared a back end. Not only could you call C, C++ or Pascal code from the Modula-2 compiler (and vice versa) but with later incarnations of the system you could mix and match the languages in one source file without resorting to any containers. An unique feature in its time and only few other development systems have offered similar features since. After Clarion took over the sales of the TopSpeed system the Clarion 4GL database language was ported to the TopSpeed system and became one of the interchangeable front ends.
The development environment also contained an automatic make facility, an editor, librarian, source-level debugger and sundry minor utilities. It was available in two editions the Standard Edition contained the environment, tools and compiler while the TopSpeed Modula-2 Extended Edition basically bundled the standard edition with TopSpeed TechKit. The Modula-2 compiler could also be used to develop software for the Psion series 3 in a roundabout way if used with the PSION s3 SDK, as the environment allowed you to develop M2 code with C code, headers and libraries you could get functional s3 apps by linking the M2 code with the required C libraries and then compiling everything with the PSION SDK, in rare cases needing a little bit of glue C code.
Another unusual and somewhat unique aspect of the system was its ability to make multi-threaded code and dynamic libraries (DLLs) for DOS. The TopSpeed system was developed under OS/2 v1.x and the developers were so taken with the threading model that they duplicated it for the DOS environment giving you not only the obvious benefit of being able to make multi-threaded DOS applications but also the option of making portable multi-threaded apps since the TS version for DOS copied the OS/2 version down to a tee.
Although a native OS/2 application the only installer provided was DOS based so you will have to install it from either a DOS prompt, or if you are running a clean 32-bit system, from a DOS emulator such as DOSBox. Traditionally the install was in parts, one installer for each TopSpeed compiler language, one for the TechKit and one for the environment (IDE, source level debugger and so on). However the TopSpeed Modula-2 compiler was the last product to be taken off the market and it was during the last few years supplied on a CD-ROM with a single installer for the environment, compiler and optionally the TechKit.
The last supplied TopSpeed environment installer was version 3.10.002, while most of the languages were at 3.10. In some cases the installer will bitch if you try to install the last version of the environment alongside the last compiler version claiming it is incompatible, but just ignore that. Do not try to use the environment with older versions of TopSpeed compilers (1.x, 3.0x etc.), that will cause problems. You can however install older versions of the tools side by side with the 3.10 versions by taking a little care with folder naming and CONFIG.SYS editing.
The installer will by default sense that it is being run under an OS/2 on "286 or higher" and install a DOS environment that makes use of expanded or extended memory, however most of the OS/2 components are not installed by default and you will have to make sure they are tagged as "Yes" in the installer program.
You can run the OS/2 versions of TopSpeed on Microsoft Windows systems that support the running of OS/2 1.x programs (namely all versions of Windows NT and 2000), and with large programs they do indeed run faster than the DOS versions. However if you choose to install the OS/2 versions on those systems you may end up with a problem where the system tries to run the DOS executables as an OS/2 program and fails, to fix this you can precede every DOS command with the FORCEDOS command for instance from a batch or pif file.
- 1988: Version 1.12
- 1989: Version 1.14
- 1989: Version 1.20
- 1990: Version 1.20A
- 1990: Version 2.00
- 1990: Version 2.20
- 1992: 3.10
- For Windows 3.x or Win-OS/2 programming the TopSpeed TechKit is required, but the tools from it integrate into the TopSpeed environment.
- Although you can develop OS/2 Presentation Manager applications without the OS/2 SDK, it is highly recommended that you use it since the PM support of TopSpeed Modula-2 is rather weak in the parts where tools from the SDK already existed.
- DOS 3.0 or later and/or OS/2 1.3 or later.
License and availability
- Commercial - Discontinued
OS/2 32 bit compilers that offered TopSpeed compatibility libraries and API´s
- Modula-2 Legacy Code: Problems and Solutions by Dmitry Leskov. Discusses porting of older TopSpeed M2 code to more modern systems
- Barry Cornelius: Programming with TopSpeed Modula-2 - Addison-Wesley 1991, ISBN 0-201-41679-4
- Various fixes and workarounds for the 3.10 version of the compiler
- Jeff Duntemann: Pieces of Charlie - Article that describes amongst other things how JPI managed to get the Pascal style and C style calling conventions to work together.
- L. J. Ribar: OS/2 Programming goes Modula-2 - Computer Language magazine Nov. 1990 - pages 83 to 89. (TSM2 v2.20)
- D. A. Righter: Programmer's Corner: TopSpeed Modula-2 with Object Extensions - Journal of Pascal, Ada & Modula-2 Jul/Aug 1990 - pages 56-58 (TSM2 v2.20)
- A. Schulman: Modula-2 and OS/2 Join Forces - BYTE magazine (Aug 1989) - Pages 171 to 174. (TSM2 v1.20)
- S. R. Ladd,: Modula-2 Compilers: New Kids on the Block Mature. - Computer Language magazine (Mar 1989) pages 99 to 110. (TSM2 v1.14)
- M. E. Haltiwanger: Software Reviews: TopSpeed 1.12 - Journal of Pascal, Ada & Modula-2 (Jan/Feb 1989) - pp 54-56
- Peter Moylan: Modula-2 compilers for OS/2