In 1967, the Computing Centre at the University of British Columbia was offering services to the campus based on an IBM 7044 model 2 running IBSYS. The first director of the Computing Centre had left to pursue other interests at the centre of the universe (Toronto - this is a Canadian joke) and had been replaced by Dr. James Kennedy. Dr. Kennedy had previously been in charge of computing at the Chalk River site of Atomic Energy of Canada. The associate director was Alvin Fowler. The 7044 was running flat out 24 hours a day and its limitations (slow CPU, small memory, all of 10 megabytes of disk storage) were widely recognized on campus. Dr. Kennedy and Mr. Fowler embarked on the difficult political task of persuading the University management to commit an outrageous sum of money to acquire a replacement computing system.
The technical members of the CC staff, blissfully unaware of the nature and size of the political challenge (we were all much younger then), champed at the bit while waiting and spent their spare hours reading every scrap of information they could find on candidate replacement systems. This, you will recall, was before the Net, so it involved visits to the Library, heavy paper proceedings of IEEE and IFIPS and ACM conferences, and every piece of literature the various vendors would send us.
When the UBC administration finally (reluctantly) gave the goahead, we were ready with an RFP for vendors. The serious responders were GE, Univac, and IBM. To cut a long story short, the finalists were Univac (the 1108) and IBM (the 360/67). There were two major factions in the Centre: to oversimplify a lot, those who preferred the 1108 liked its resemblance to the 7044 (word machine, good Fortran compiler, high floating point performance per dollar) and those who liked the 360/67 (while holding their nose about the vendor) liked its future possibilities (byte addressing for text work, virtual memory). The directory (Kennedy) made the 360/67 decision based on a belief that time sharing and virtual memory would be better elements to build a future on.
The fact that IBM had recently admitted that TSS/360 was not ready for production use meant that we would not have an operating system which would provide either time sharing or virtual memory. Kennedy posed this as a challenge to the staff. We thought this was neat, little realizing that he was betting his job that somehow we'd find a solution to this problem. So we embarked on the task of designing and implementing our own operating system. A subset of the staff rapidly came to the conclusion that we were not up to the job. They said so, and this generated no little heat. Our regular design meetings were degenerating rapidly when news arrived from two different sources that the University of Michigan was working on a system for the 360/67 called MTS.
After some long distance phone calls with UM management, two UBC staff members went to UM to evaluate MTS. The UM CC staff were most congenial and helpful during the visit, and they converted the UBC visitors into enthusiastic evangelists. Truth to tell, they had an easy job of it. UBC had committed to the 67, they had no operating system, and UM had one they were willing to share. What other conclusion would a reasonable observer expect?
The UBC visitors returned later in the summer of 1968 and spent weeks in the famous basement of the UM Computing Centre. Working with UM staff, they helped copy endless reams of punched cards (!) onto several reels of tape which they took home as MTS Distribution 1.
UBC made various contributions to MTS. You should note that none of these contributions was made in isolation. In other words, UBC didn't do all the work on these parts of MTS. MTS was very much a cooperative effort, even in its very early stages. Anyway, here are a few of the MTS components which originated at UBC:
The 2260 and 3270 DSRs - Device Support Routines for IBM CRT terminals
The Resource Manager - a spooling system on legal steroids
Plus? - systems programming language
CLParser? - command-language parser
Forum? - teleconferencing system
CDUpdate? - patch equivalent
Interactive FORTRAN - a FORTRAN interpreter
STASS360? - a fast assembler for use by students
Virtual machine? - the MTS vitrual 360/370, used primarily for system test and debugging