Some of the notable features of MTS include: • The use of
Virtual memory and Dynamic Address Translation (DAT) on the IBM S/360-67 in 1967. • The use of multiprocessing on an IBM S/360-67 with two CPUs in 1968. • Programs with access to (for the time) very large virtual address spaces. • A straightforward
command language that is the same for both terminal and batch jobs. • A strong
device independent input/output model that allows the same commands and programs to access terminals, disk files, printers, magnetic and paper tapes, card readers and punches, floppy disks, network hosts, and an audio response unit (ARU). • A
file system with support for "
line files" where the line numbers and length of individual lines are stored as
metadata separate from the data contents of the line, and the ability to read, insert, replace, and delete individual lines anywhere in the file without the need to read or write the entire file. • A file editor ($EDIT) with both command line and "visual" interfaces and pattern matching based on SNOBOL4 patterns. • The ability to share files in controlled ways (read, write-change, write-expand, destroy, permit). • The ability to permit files, not just to other user IDs and projects (aka groups), but to specific commands or programs and combinations of user IDs, projects, commands and programs. • An e-mail system (
$MESSAGESYSTEM) that supports local and network mail with the ability to send to groups, to recall messages that haven't already been read, to add recipients to messages after they have been sent, and to display a history of messages in an e-mail chain without the need to include the text from older messages in each new message. • The ability to access tapes remotely, and to handle data sets that extend across multiple tapes efficiently. • The availability of a rich collection of well-documented subroutine libraries. • The ability for multiple users to quickly load and use a collection of common reentrant subroutines, which are available in shared virtual memory. • The availability of compilers, assemblers, and a Symbolic Debugging System (SDS) that allow users to debug programs written in high-level languages such as FORTRAN, Pascal, PL/I, ... as well as in assembly language. • A strong protection model that uses the virtual memory hardware and the S/360 and S/370 hardware's supervisor and problem states and via software divides problem state execution into system (privileged or unprotected) and user (protected or unprivileged) modes. Relatively little code runs in supervisor state. For example, Device Support Routines (DSRs, aka device drivers) are not part of the supervisor and run in system mode in problem state rather than in supervisor state. • A simulated
Branch on Program Interrupt (BPI) instruction.
Programs developed for MTS The following are some of the notable programs developed for MTS: • Awit, a computer chess program written in Algol W by Tony Marsland. •
Chaos, one of the leading computer chess programs from 1973 through 1985. Written in FORTRAN Chaos started at RCA Systems Programming division in Cinnaminson, NJ with Fred Swartz and Victor Berman as first authors, Mike Alexander and others joined the team later and moved development to MTS at the UM Computing Center. •
CONFER II, one of the first computer conferencing systems. CONFER was developed by Robert Parnes starting in 1975 while he was a graduate student and with support from the
University of Michigan's Center for Research on Learning and Teaching (CRLT) and School of Education. • FakeOS, a simulator that allows object modules containing OS/360 SVCs, control blocks, and references to OS/360 access methods to execute under MTS. • Forum, a computer conferencing system developed by staff of the Computing Centre at the
University of British Columbia (UBC). •
GOM (Good Old Mad), a compiler for the 7090
MAD language converted to run under MTS by Don Boettner of the UM's Computing Center. • IF (Interactive Fortran), developed by the
University of British Columbia Computing Centre. •
MICRO Information Management System, one of the earliest relational database management systems implemented in 1970 by the Institute for Labor and Industrial Relations (ILIR) at the University of Michigan. • MIDAS (Michigan Interactive Data Analysis System), an interactive statistical analysis package developed by Dan Fox and others at UM's Statistical Research Laboratory. •
Plus, a programming language developed by Alan Ballard and Paul Whaley of the Computing Centre at the University of British Columbia (UBC). It was used for systems programming within MTS itself, particularly DSRs and CLSes. • TAXIR, an information storage and retrieval system designed for taxonomic data at the University of Colorado by David Rogers, Henry Fleming, Robert Brill, and George Estabrook and ported to MTS and enhanced by Brill at the University of Michigan. • Textform, a text-processing program developed at the University of Alberta's Computing Centre to support device independent output to a wide range of devices from line printers, to the Xerox 9700 page printers, to advanced phototypesetting equipment using fixed width and proportional fonts. • VSS, a simulator developed at the
University of British Columbia's Computing Centre that makes it possible to run OS/MFT, OS/MVT, VS1, and MVS application programs under MTS.
Programs that run under MTS The following are some of the notable programs ported to MTS from other systems: • Fortran, the G, H, and VS compilers from IBM. • GASP, a FORTRAN based discrete simulation package. •
Kermit,
Columbia University's communications software and protocol • MPS, IBM's Mathematical Programming System/360. •
NASTRAN, finite element analysis program originally developed by and for
NASA. • OSIRIS (Organized Set of Integrated Routines for Investigations with Statistics), a collection of statistical analysis programs developed at the University of Michigan's Institute for Social Research (ISR). • PascalSB, the Stony Brook Pascal compiler. • Pascal/SLAC, the Pascal compiler from the Stanford Linear Accelerator Center. • Pascal VS, IBM's Pascal VS compiler program product. • PL/I Optimizing Compiler from IBM. • REDUCE2, an algebraic language implemented in
LISP. •
SAS (Statistical Analysis System). •
SHAZAM, a package for estimating, testing, simulating and forecasting econometrics and statistical models •
SIMSCRIPT II.5, a free-form, English-like, general-purpose discrete event simulation language. •
SPIRES (Stanford Public Information Retrieval System), a database management system. •
SPSS (Statistical Package for the Social Sciences) •
TELL-A-GRAPH, a proprietary conversational graphics program from ISSCO of San Diego, CA. • TEX,
Don Knuth's
TeX text-processing program. • TROLL, econometric modeling and statistical analysis
Programming languages available under MTS MTS supports a rich set of programming languages, some developed for MTS and others ported from other systems: •
ALGOL 68 •
APL (IBM's VS APL) •
Assembler (360/370: G, H, Assist; DEC PDP-11) •
BASIC (BASICUM), WBASIC •
BCPL (Basic Combined Programming Language) •
C •
COBOL (ANSI, VS,
WATBOL) • EXPL (Extended
XPL) •
FORTRAN (G, H, VS,
WATFOR, WATFIV) • GASP (A FORTRAN-based discrete simulation language) •
GOM (
Good
Old
Mad, the
7090 Michigan Algorithm Decoder ported to the S/370 architecture) (General Purpose Simulation System V) •
ICON • IF (Interactive FORTRAN, an incremental compiler and environment for executing and debugging
FORTRAN programs, developed at the
University of British Columbia) (a new implementation of LISP 1.5 developed at the UM's
Mental Health Research Institute, MHRI) •
Pascal (VS, JB) • PIL, PIL/2 (Pitt Interpretive Language) •
PL/I (F and OPT from IBM, PL/C from
Cornell University) •
PL/M •
PL360 •
Plus system language developed at the University of Toronto, c. 1971) •
Prolog •
Simula • SUE (String Oriented Symbolic Language) •
SPITBOL (University of Michigan Interpretive String Translator, based on
TRAC) ==System architecture==