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.
- 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
- 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
||Magnetic tape devices
||VIEW device for disk operations
||Host file server devices
||Inter job communication/pipe devices
||Host system spooling device
||TCP/IP and UDP socket devices
||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