Canterbury Modula-2

From EDM2
Jump to: navigation, search

A Modula 2 and Oberon-2 compiler and IDE for 32 and 16 bit OS/2 released by Mill Hill & Canterbury Corporation in 1998. The compiler was called just "MHC Modula-2" or "Canterbury Modula-2" even though Oberon and Oberon-2 was supported as well, we refer to it as Canterbury Modula-2 to synchronise with the naming conventions used on the later Java compilers from the same company. In addition to PIM4 compatibility the Modula-2 side of the compiler offers object oriented extensions similar to Oberon-2.

The Canterbury Modula-2 compiler was sold in two versions, the "Regular Edition" offered support for OS/2 Text mode and PM development and retailed for £59 UKP or $99 USD while the "Professional Edition" added support for SOM/WPS development via a built in direct to SOM compiler, the "Professional Edition sold for £89 UKP or $149 USD. In addition the company offered a free library for extended compatibility with TopSpeed Modula-2 and sold an assembly coded MATHPAK 87/32 specially adapted to the compiler.



Standards supported

Compiler targets & target libraries

  • OS/2 32 bit v2.1 and higher native target.
  • OS/2 Presentation Manager development libraries.
  • OS/2 Text mode development libraries.
  • Direct-to-SOM compilation, for SOM v2 or higher, only available in the "Professional version"
  • OS/2 16 bit
  • OS/2 16 bit DLL's
  • OS/2 32 bit DLL's

According to the author of the package the compiler supports the following targets as well, but they cannot be used since no library or linker support had been created by the time the development of the package was dropped.

  • Windows 3.x 16 bit
  • Windows 32 bit
  • DOS 16 bit
  • DOS 32 bit

Generic language extensions

  • Set types with up to 256 elements
  • Bitwise operators 'AND' 'OR' 'XOR' 'SHL' 'SHR' 'NOT'
  • New logical operator 'XOR'
  • Initialized variables expressed as typed constants
  • Multidimensional open arrays
  • Symbolic INLINE assembler
  • NEAR or FAR keywords for INTEL 80x86 segmentation
  • Extended imports

OS/2 specific language extensions and features

  • Allows underscore '_' for identifier names (OS/2 APIs use this C like "feature")
  • REXX library development
  • Definition modules for external .OBJ .DLL .LIB files

Other features

  • Integrated Make & Build, Make recompiles dependent updated modules while Build recompiles all dependent modules.
  • Topspeed compatiable libraries available


  • Link.exe for building 16 bit executables
  • Link386.exe for building 32 bit executables




  • Commercial product & license - Discontinued.