The M21 Logo Raising the standard again
Home About News Links Feedback
M21, the e-DBMS for the 21st century


M21 is a multi-user programming system which includes a high-level programming language, comprehensive database management facility, and flexible operating system. The high-level programming language used in M21 is a fast and powerful implementation of the ANSI standard M programming language. The M language is used in general business, financial management, process control, order entry, and other areas of information processing.

Some of M21's main features include the following:

  • Conformance to the 1995 ANSI standard.
  • A comprehensive package of utility, reporting, and database integrity routines.
  • Pre-compilation of code for increased performance.
  • Individual process per user takes advantage of symmetrical multi-processing architecture.
  • API using TCP/IP for access to M data and routines - uses an ActiveX control so can be used from any Microsoft Windows front end tool including Visual Basic/Delphi etc.
  • Efficient internal data and routine caching algorithm, including special area of buffers for jobs hogging the system.
  • Networking, Journaling, Interjob Communication and Host operating system file and procedure access.

General Features

  • Numeric and String collating sequence globals
  • Global data length of 1023 characters
  • Local variable length of 32K
  • Up to 250 UCIs
  • External Calls
  • Cross UCI global referencing
  • Cross system global referencing
  • Global protection
  • ANSI standard error trapping mechanism
  • MSM compatible error trapping mechanism
  • MSM compatible Z commands/functions/special variables
  • Cross-system JOB command
  • Global translation
  • Global replication
  • After image journaling - globals and routines
  • Before image logging (BIL)
  • On-line backup - resilience
  • Mnemonic namespaces
  • Device translation for foreign language terminal support
  • Cross-system UCI mirroring
  • Access to UNIX commands from within the M environment
  • Configurable database block size
  • Ability to run multiple versions of M21 on the same machine
  • Multiple UNIX files for a single database
  • Database can use UNIX files or raw disk devices


  • Terminals
  • Null device for discarding output
  • TCP/IP and UDP socket devices, using the ANSI standard socket specification
  • Host operating system file access
  • Printers using the host operating spool device and queues - dynamically set up
  • Inter-job communication using named pipes
  • View buffer for direct low level memory and disk access
  • Tape devices
  • Routine interlocks for synchronization

1-6999 Terminal devices
7000-7049 Magnetic tape devices
7100 VIEW device for disk operations
8000-8049 Host file server devices
8050 Null device
8070-8079 Inter job communication/pipe devices
8100-8499 Host system spooling device
9050-9099 TCP/IP and UDP socket devices
9200-9299 Routine interlock devices


M21 to M21 using TCP/IP

DDP to legacy MSM, ISM, DSM-11 and DSM-VAX systems using link level

M21 networks to M21 using a private protocol. However it links to other M implementations using the DEC standard for inter M communications. This protocol is supported by MSM, Caché, ISM, and DSM.


  • Extensive system configuration using utilities or configuration file parameters - dynamic wherever possible
  • Utilities written with silent entry points for calling from other routines
  • Vectors to the M21 utilities generated for MSM/ISM/DSM compatibility
  • Concurrent backup and full restore capabilities to tape. Full, incremental, journal and BIL
  • Link to visual editor
  • Interactive routine debugger
  • Programmer shell which is also integrated into all utilities
  • Database repair
  • Database validate
  • Recover lost blocks
  • Histogram performance monitoring of the M21 system
  • Comprehensive system information utilities