# Michigan Terminal System

The Michigan Terminal System (MTS) is one of the first time-sharing computer operating systems. Created in 1967 at the University of Michigan for use on IBM S/360-67, S/370 and compatible mainframe computers, it was developed and used by a consortium of eight universities in the United States, Canada, and the United Kingdom over a period of 33 years (1967 to 1999).

## Overview

The University of Michigan Multiprogramming Supervisor (UMMPS) was initially developed by the staff of the academic computing center at the University of Michigan for operation of the IBM S/360-67, S/370 and compatible computers. The software may be described as a multiprogramming, multiprocessing, virtual memory, time-sharing supervisor that runs multiple resident, reentrant programs. Among these programs is the Michigan Terminal System (MTS) for command interpretation, execution control, file management, and accounting. End-users interact with the computing resources through MTS using terminal, batch, and server oriented facilities.
The name MTS refers to:
* The UMMPS Job Program with which most end-users interact;
* The software system, including UMMPS, the MTS and other Job Programs, Command Language Subsystems (CLSs), public files (programs), and documentation; and
* The time-sharing service offered at a particular site, including the MTS software system, the hardware used to run MTS, the staff that supported MTS and assisted end-users, and the associated administrative policies and procedures.
MTS was used on a production basis at about 13 sites in the United States, Canada, the United Kingdom, Brazil, and possibly in Yugoslavia and at several more sites on a trial or benchmarking basis. MTS was developed and maintained by a core group of eight universities included in the MTS Consortium.
The University of Michigan announced in 1988 that "Reliable MTS service will be provided as long as there are users requiring it ... MTS may be phased out after alternatives are able to meet users' computing requirements". It ceased operating MTS for end-users on June 30, 1996. By that time, most services had moved to client/server-based computing systems, typically Unix for servers and various Mac, PC, and Unix flavors for clients. The University of Michigan shut down its MTS system for the last time on May 30, 1997.
Rensselaer Polytechnic Institute (RPI) is believed to be the last site to use MTS in a production environment. RPI retired MTS in June 1999.
Today, MTS still runs using IBM S/370 emulators such as Hercules, Sim390, and FLEX-ES.

## Origins

In the mid-1960s, the University of Michigan was providing batch processing services on IBM 7090 hardware under the control of the University of Michigan Executive System (UMES), but was interested in offering interactive services using time-sharing. At that time the work that computers could perform was limited by their small real memory capacity. When IBM introduced its System/360 family of computers in the mid-1960s, it did not provide a solution for this limitation and within IBM there were conflicting views about the importance of and need to support time-sharing.
A paper titled Program and Addressing Structure in a Time-Sharing Environment by Bruce Arden, Bernard Galler, Frank Westervelt (all associate directors at UM's academic Computing Center), and Tom O'Brian building upon some basic ideas developed at the Massachusetts Institute of Technology (MIT) was published in January 1966. The paper outlined a virtual memory architecture using dynamic address translation (DAT) that could be used to implement time-sharing.
After a year of negotiations and design studies, IBM agreed to make a one-of-a-kind version of its S/360-65 mainframe computer with dynamic address translation (DAT) features that would support virtual memory and accommodate UM's desire to support time-sharing. The computer was dubbed the Model S/360-65M. The "M" stood for Michigan. But IBM initially decided not to supply a time-sharing operating system for the machine. Meanwhile, a number of other institutions heard about the project, including General Motors, the Massachusetts Institute of Technology's (MIT) Lincoln Laboratory, Princeton University, and Carnegie Institute of Technology (later Carnegie Mellon University). They were all intrigued by the time-sharing idea and expressed interest in ordering the modified IBM S/360 series machines. With this demonstrated interest IBM changed the computer's model number to S/360-67 and made it a supported product. With requests for over 100 new model S/360-67s IBM realized there was a market for time-sharing, and agreed to develop a new time-sharing operating system called TSS/360 (TSS stood for Time-sharing System) for delivery at roughly the same time as the first model S/360-67.
While waiting for the Model 65M to arrive, UM Computing Center personnel were able to perform early time-sharing experiments using an IBM System/360 Model 50 that was funded by the ARPA CONCOMP (Conversational Use of Computers) Project. The time-sharing experiment began as a "half-page of code written out on a kitchen table" combined with a small multi-programming system, LLMPS from MIT's Lincoln Laboratory, which was modified and became the UM Multi-Programming Supervisor (UMMPS) which in turn ran the MTS job program. This earliest incarnation of MTS was intended as a throw-away system used to gain experience with the new IBM S/360 hardware and which would be discarded when IBM's TSS/360 operating system became available.
Development of TSS took longer than anticipated, its delivery date was delayed, and it was not yet available when the S/360-67 (serial number 2) arrived at the Computing Center in January 1967. At this time UM had to decide whether to return the Model 67 and select another mainframe or to develop MTS as an interim system for use until TSS was ready. The decision was to continue development of MTS and the staff moved their initial development work from the Model 50 to the Model 67. TSS development was eventually canceled by IBM, then reinstated, and then canceled again. But by this time UM liked the system they had developed, it was no longer considered interim, and MTS would be used at UM and other sites for 33 years.

## MTS Consortium

MTS was developed, maintained, and used by a consortium of eight universities in the US, Canada, and the United Kingdom:
* University of Michigan (UM), 1967 to 1997, US
* University of British Columbia (UBC), 1968 to 1998, Canada
* NUMAC (University of Newcastle upon Tyne, University of Durham, and Newcastle Polytechnic), 1969 to 1992, United Kingdom
* University of Alberta (UQV), 1971 to 1994, Canada
* Wayne State University (WSU), 1971 to 1998, US
* Rensselaer Polytechnic Institute (RPI), 1976 to 1999, US
* Simon Fraser University (SFU), 1977 to 1992, Canada
* University of Durham (NUMAC), 1982 to 1992, United Kingdom
Several sites ran more than one MTS system: NUMAC ran two (first at Newcastle and later at Durham), Michigan ran three in the mid-1980s (UM for Maize, UB for Blue, and HG at Human Genetics), UBC ran three or four at different times (MTS-G, MTS-L, MTS-A, and MTS-I for general, library, administration, and instruction).
Each of the MTS sites made contributions to the development of MTS, sometimes by taking the lead in the design and implementation of a new feature and at other times by refining, enhancing, and critiquing work done elsewhere. Many MTS components are the work of multiple people at multiple sites.
In the early days collaboration between the MTS sites was accomplished through a combination of face-to-face site visits, phone calls, the exchange of documents and magnetic tapes by snail mail, and informal get-togethers at SHARE or other meetings. Later, e-mail, computer conferencing using CONFER and *Forum, network file transfer, and e-mail attachments supplemented and eventually largely replaced the earlier methods.
The members of the MTS Consortium produced a series of 82 MTS Newsletters between 1971 and 1982 to help coordinate MTS development.
Starting at UBC in 1974 the MTS Consortium held annual MTS Workshops at one of the member sites. The workshops were informal, but included papers submitted in advance and Proceedings published after-the-fact that included session summaries. In the mid-1980s several Western Workshops were held with participation by a subset of the MTS sites (UBC, SFU, UQV, UM, and possibly RPI).
The annual workshops continued even after MTS development work began to taper off. Called simply the "community workshop", they continued until the mid-1990s to share expertise and common experiences in providing computing services, even though MTS was no longer the primary source for computing on their campuses and some had stopped running MTS entirely.

### MTS sites

In addition to the eight MTS Consortium sites that were involved in its development, MTS was run at a number of other sites, including:
* Centro Brasileiro de Pesquisas Fisicas (CBPF) within the Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq), Brazil
* Empresa Brasileira de Pesquisa Agropecuária (EMBRAPA), Brazil
* Hewlett-Packard (HP), US
* Michigan State University (MSU), US
* Goddard Space Flight Center, National Aeronautics and Space Administration (NASA), US
A copy of MTS was also sent to the University of Sarajevo, Yugoslavia, though whether or not it was ever installed is not known.
INRIA, the French national institute for research in computer science and control in Grenoble, France ran MTS on a trial basis, as did the University of Waterloo in Ontario, Canada, Southern Illinois University, the Naval Postgraduate School, Amdahl Corporation, ST Systems for McGill University Hospitals, Stanford University, and University of Illinois in the United States, and a few other sites.

## Hardware

In theory MTS will run on the IBM S/360-67, any of the IBM S/370 series which include virtual memory, and their successors. MTS has been run on the following computers in production, benchmarking, or trial configurations:
* IBM: S/360-67, S/370-148, S/370-168, 3033U, 4341, 4361, 4381, 3081D, 3081GX, 3083B, 3090–200, 3090–400, 3090–600, and ES/9000-720
* Amdahl: 470V/6, 470V/7, 470V/8, 5860, 5870, 5990
* Hitachi: NAS 9060
* Various S/370 emulators
The University of Michigan installed and ran MTS on the first IBM S/360-67 outside of IBM (serial number 2) in 1967, the second Amdahl 470V/6 (serial number 2) in 1975, the first Amdahl 5860 (serial number 1) in 1982, and the first factory shipped IBM 3090–400 in 1986. NUMAC ran MTS on the first S/360-67 in the UK and very likely the first in Europe. The University of British Columbia (UBC) took the lead in converting MTS to run on the IBM S/370 series (an IBM S/370-168) in 1974. The University of Alberta installed the first Amdahl 470V/6 in Canada (serial number P5) in 1975. By 1978 NUMAC (at University of Newcastle upon Tyne and University of Durham) had moved main MTS activity on to its IBM S/370 series (an IBM S/370-168).
MTS was designed to support up to four processors on the IBM S/360-67, although IBM only produced one (simplex and half-duplex) and two (duplex) processor configurations of the Model 67. In 1984 RPI updated MTS to support up to 32 processors in the IBM S/370-XA (Extended Addressing) hardware series, although 6 processors is likely the largest configuration actually used. MTS supports the IBM Vector Facility, available as an option on the IBM 3090 and ES/9000 systems.
In early 1967 running on the single processor IBM S/360-67 at UM without virtual memory support, MTS was typically supporting 5 simultaneous terminal sessions and one batch job. In November 1967 after virtual memory support was added, MTS running on the same IBM S/360-67 was simultaneously supporting 50 terminal sessions and up to 5 batch jobs. In August 1968 a dual processor IBM S/360-67 replaced the single processor system, supporting roughly 70 terminal and up to 8 batch jobs. By late 1991 MTS at UM was running on an IBM ES/9000-720 supporting over 600 simultaneous terminal sessions and from 3 to 8 batch jobs.
MTS can be IPL-ed under VM/370, and some MTS sites did so, but most ran MTS on native hardware without using a virtual machine.

## Features

Some of the notable features of MTS include:

### Programs developed for MTS

The following are some of the notable programs developed for MTS:

### Programs that run under MTS

The following are some of the notable programs ported to MTS from other systems:

### Programming languages available under MTS

MTS supports a rich set of programming languages, some developed for MTS and others ported from other systems:

## System architecture

MTS Architecture :
| | State | Mode | VM | Interrupts |
| User programs | problem | user | on | on |
| Command Language Subsystems (CLSs), Device Support Routines (DSRs), System Subroutines | problem | system | on | on |
| Job programs (MTS, PDP, DMGR, RM or HASP, ...) | problem | system | on or off | on |
| Supervisor (UMMPS) | supervisor | n/a | off | off |
| S/360-67 or S/370 hardware | | | | |
UMMPS, the supervisor, has complete control of the hardware and manages a collection of job programs. One of the job programs is MTS, the job program with which most users interact. MTS operates as a collection of command language subsystems (CLSs). One of the CLSs allows for the execution of user programs. MTS provides a collection of system subroutines that are available to CLSs, user programs, and MTS itself. Among other things these system subroutines provide standard access to Device Support Routines (DSRs), the components that perform device dependent input/output.

## Manuals and documentation

The lists that follow are quite University of Michigan centric. Most other MTS sites used some of this material, but they also produced their own manuals, memos, reports, and newsletters tailored to the needs of their site.

### End-user documentation

The manual series MTS: The Michigan Terminal System, was published from 1967 through 1991, in volumes 1 through 23, which were updated and reissued irregularly. Initial releases of the volumes did not always occur in numeric order and volumes occasionally changed names when they were updated or republished. In general, the higher the number, the more specialized the volume.
The earliest versions of MTS Volume I and II had a different organization and content from the MTS volumes that followed and included some internal as well as end user documentation. The second edition from December 1967 covered:
* MTS Volume I: Introduction; Concepts and facilities; Calling conventions; Batch, Terminal, Tape, and Data Concentrator user's guides; Description of UMMPS and MTS; Files and devices; Command language; User Programs; Subroutine and macro library descriptions; Public or library file descriptions; and Internal specifications: Dynamic loader (UMLOAD), File and Device Management (DSRI prefix and postfix), Device Support Routines (DSRs), and File routines
* MTS Volume II: Language processor descriptions: F-level assembler; FORTRAN G; IOH/360; PIL; SNOBOL4; UMIST; WATFOR; and 8ASS (PDP-8 assembler)
The following MTS Volumes were published by the University of Michigan Computing Center and are available as PDFs:
* MTS Reference Summary, a ~60 page, 3" x 7.5", pocket guide to MTS, Computing Center, University of Michigan
* The Taxir primer: MTS version, Brill, Robert C., Computing Center, University of Michigan
* Fundamental Use of the Michigan Terminal System, Thomas J. Schriber, 5th Edition (revised), Ulrich's Books, Inc., Ann Arbor, MI, 1983, 376 pp.
* Digital computing, FORTRAN IV, WATFIV, and MTS (with *FTN and *WATFIV), Brice Carnahan and James O Wilkes, University of Michigan, Ann Arbor, MI, 1968–1979, 1976 538 p.
* Documentation for MIDAS, Michigan Interactive Data Analysis System, Statistical Research Laboratory, University of Michigan
* OSIRIS III MTS Supplement, Center for Political Studies, University of Michigan
Various aspects of MTS at the University of Michigan were documented in a series of Computing Center Memos (CCMemos) which were published irregularly from 1967 through 1987, numbered 2 through 924, though not necessarily in chronological order. Numbers 2 through 599 are general memos about various software and hardware; the 600 series are the Consultant's Notes series—short memos for beginning to intermediate users; the 800 series covers issues relating to the Xerox 9700 printer, text processing, and typesetting; and the 900 series covers microcomputers. There was no 700 series. In 1989 this series continued as Reference Memos with less of a focus on MTS.
A long run of newsletters targeted to end-users at the University of Michigan with the titles Computing Center News, Computing Center Newsletter, U-M Computing News, and the Information Technology Digest were published starting in 1971.
There was also introductory material presented in the User Guide, MTS User Guide, and Tutorial series, including:
* Getting connected—Introduction to Terminals and Microcomputers
* Introduction to the Computing Center
* Introduction to Computing Center services
* Introduction to Database Management Systems on MTS
* Introduction to FORMAT
* Introduction to Magnetic Tapes
* Introduction to MTS
* Introduction to the MTS File Editor
* Introduction to Programming and Debugging in MTS
* Introduction to Terminals
* Introduction to Terminals and Microcomputers

### Internals documentation

The following materials were not widely distributed, but were included in MTS Distributions:
* MTS Operators Manual
* MTS Message Manual
* MTS Volume n: Systems Edition
* MTS Volume 99: Internals Documentation
* Supervisor Call Descriptions
* Disk Disaster Recovery Procedures
* A series of lectures describing the architecture and internal organization of the Michigan Terminal System given by Mike Alexander, Don Boettner, Jim Hamilton, and Doug Smith (4 audio tapes, lecture notes, and transcriptions)

## Distribution

The University of Michigan released MTS on magnetic tape on an irregular basis. There were full and partial distributions, where full distributions (D1.0, D2.0, ...) included all of the MTS components and partial distributions (D1.1, D1.2, D2.1, D2.2, ...) included just the components that had changed since the last full or partial distribution. Distributions 1.0 through 3.1 supported the IBM S/360 Model 67, distribution 3.2 supported both the IBM S/360-67 and the IBM S/370 architecture, and distributions D4.0 through D6.0 supported just the IBM S/370 architecture and its extensions.
MTS distributions included the updates needed to run licensed program products and other proprietary software under MTS, but not the base proprietary software itself, which had to be obtained separately from the owners. Except for IBM's Assembler H, none of the licensed programs were required to run MTS.
The last MTS distribution was D6.0 released in April 1988. It consisted of 10,003 files on six 6250 bpi magnetic tapes. After 1988, distribution of MTS components was done in an ad hoc fashion using network file transfer.
To allow new sites to get started from scratch, two additional magnetic tapes were made available, an IPLable boot tape that contained a minimalist version of MTS plus the DASDI and DISKCOPY utilities that could be used to initialize and restore a one disk pack starter version of MTS from the second magnetic tape. In the earliest days of MTS, the standalone TSS DASDI and DUMP/RESTORE utilities rather than MTS itself were used to create the one-disk starter system.
There were also less formal redistributions where individual sites would send magnetic tapes containing new or updated work to a coordinating site. That site would copy the material to a common magnetic tape (RD1, RD2, ...), and send copies of the tape out to all of the sites. The contents of most of the redistribution tapes seem to have been lost.
Today, complete materials from the six full and the ten partial MTS distributions as well as from two redistributions created between 1968 and 1988 are available from the Bitsavers Software archive and from the University of Michigan's Deep Blue digital archive.
Working with the D6.0 distribution materials, it is possible to create an IPLable version of MTS. A new D6.0A distribution of MTS makes this easier. D6.0A is based on the D6.0 version of MTS from 1988 with various fixes and updates to make operation under Hercules in 2012 smoother. In the future, an IPLable version of MTS will be made available based upon the version of MTS that was in use at the University of Michigan in 1996 shortly before MTS was shut down.

## Licensing

As of December 22, 2011, the MTS Distribution materials are freely available under the terms of the Creative Commons Attribution 3.0 Unported License (CC BY 3.0).
In its earliest days MTS was made available for free without the need for a license to sites that were interested in running MTS and which seemed to have the knowledgeable staff required to support it.
In the mid-1980s licensing arrangements were formalized with the University of Michigan acting as agent for and granting licenses on behalf of the MTS Consortium. MTS licenses were available to academic organizations for an annual fee of $5,000, to other non-profit organizations for $10,000, and to commercial organizations for $25,000. The license restricted MTS from being used to provide commercial computing services. The licensees received a copy of the full set of MTS distribution tapes, any incremental distributions prepared during the year, written installation instructions, two copies of the current user documentation, and a very limited amount of assistance.
Only a few organizations licensed MTS. Several licensed MTS in order to run a single program such as CONFER. The fees collected were used to offset some of the common expenses of the MTS Consortium.