Burroughs MCP Architecture

The Burroughs B5500 machine, along with the Master Control Program (MCP) operating system, had some novel ideas for a system from the early 1960s. One of these was that the hardware was developed side-by-side with the software - compare this to the IBM 709x where the manufacturer did not provide software until well after the hardware was released. But at Burroughs:

Hardware engineers were educated in the intricacies of software architecture and software designers learned the subtleties of hardware design. These people were then merged into a single design team.

Source: Time-sharing System User's Guide

In this article I'll take a brief look at how the system works, focusing on some of its innovative features.

Hardware

The B5500 was a 48 bit machines with 6 bit characters and could have up to 32 kwords of core memory. It could contain one or two CPUs, with the second CPU only doing compute rather than I/O. The B5000 only supported drum storage but the B5500 brought a fast head-per-track disk. Each stored 48 or 96 Mbytes and in theory up to 20 could be attached.

A dedicated teletype console, called the SPO (supervisory printer/keyboard), allowed an operator to interact with the system.

A data controller allowed up to 15 terminals - initially teletypes - to be attached for use by time-sharing or other programs.

There was also the usual peripherals - magnetic tape drives. card punch, card reader and line printer.

/images/mcp/b5500-system-diagram.png B5000 System Diagram. Note this is for the B5000 so shows a drum instead of the disk used on the B5500. Source: The Descriptor at bitsavers.

MCP versions

As noted in the introductory, the original drum-based version of MCP was modified to use disks and called the Disk File MCP (DFMCP); another version used the data concentrator for terminal access and was called the DCMCP; finally there was the time-sharing variant of MCP was called the TSMCP.

The TSMCP allowed both batch and time-sharing jobs to be run simultaneously. The main way that time-sharing users communicate with the system is a job called CANDE, standing for Command and Edit. This managed communication with each data line, allowing users to log in, edit programs and run jobs.

Memory was divided into two sections ('the fence'); the MCP and CANDE run on one side, user programs run on the other. The TSMCP would schedule time-sharing jobs so they would receive regular short time-slices, while batch jobs would queue up until they had enough memory to run for longer time-slices.

Compiler Oriented Hardware

The system had no assembler - it was programmed entirely in high level languages. Initially Algol and COBOL was supported, with BASIC and Fortran being added later. Compilers would generate machine code directly.

This lack of an assembler even extended to system software, with the entire operating system being written in an extended form or Algol called ESPOL that could do low level operations not defined in pure Algol. For example, you could access any position in memory via an array.

This also meant that the machine was never used 'bare' - programs would not run directly on the hardware, they would always be run under the MCP.

Stack and segmentation

Machine operations were done with a push down stack, so to add two numbers you would push the numbers onto the stack and then execute an add, leaving the result on the top of the stack. This made writing a compiler much easier as expressions could be translated into stack operations without having to deal with temporary memory locations. This also enabled easy relocation of programs and support for recursion.

Larger areas of memory, such as programs or arrays, were arranged into segments that could be swapped in and out of memory, allowing programs or data sets larger than core to be handled. Each compiler organised how it broke down programs into segments, which did mean there was no facility to link together code from multiple languages.

Segments were tagged as either data or code, so it was impossible for user programs to modify its own code.

Dynamic hardware recognition

You may have noticed while installing the system there was no need for a system generation phase where you tell the OS what hardware it can access. Instead, the MCP senses what hardware is connected, and can cope with peripherals, memory and even the second CPU being temporarily offline without restarting.

File system

Files had a two part name separated by a /, such as HELLO/GUEST. The second part indicated the grouping of a set of files, in this case the time-sharing user GUEST. This is not a directory, however: you could call a file HELLO/XYZ without having to create XYZ first.

Magnetic tape files are device independent: if a job wants to read from a certain tape file, it just needs to call for the tape file name. MCP senses what tapes are mounted where and will direct the read to the correct device.

Further information

See the documents on bitsavers, especially the Time-sharing System User's Guide and The Descriptor.

Questions, corrections, comments

I welcome any questions or comments, and also especially any corrections if I have got something wrong. Please email me at rupert@timereshared.com and I will add it here and update the main text.


A quick tour of Burroughs MCP using simh

In this post we will turn our attention to Richard Cornwell's B5500 emulator running on simh. Along with the emulator, Richard has created a package of tapes, cards and config files to run MCP on it, and even rebuild the OS from source. Unlike retro-b5500 this is a command line program; by using the simh core it brings in its flexibility and automation capabilities. It also supports more than one time-sharing terminal via telnet.

You can follow the instructions on Richard's site to set this up - start on this page and note the PDF link which gives a great summary.

I have also created a quick start that allows you to build and run the time-sharing system with two commands.

Before you start

Install required software

You will need a Unix-like environment capable of running a shell, git, make, a C compiler, wget and unzip. You will also need the telnet command line program or a GUI telnet client.

Clone the quick start repo

git clone https://github.com/timereshared/burroughs-mcp-simh-quickstart

Get the operating system tape file

The MCP operating system is free for non-commercial use under a license from Unisys, but cannot be redistributed here. You will need to get it from Paul Kimpel's site as follows:

If you omit this step, the build command will refuse to continue.

Define time-sharing users

Edit the file tss-setup.card. Copy the 4 lines starting with $USER "GUEST" and ending with NO CHARGE and insert just before $END. Edit these copied lines to define your own user account. For example, I might do:

$USER "RUPERT"
PASSWORD "SECRET"
NAME "RUPERT LANE"
NO CHARGE

You can add as many users as you want, and remove the GUEST user if you like.

If you omit this step, the build command will only create the GUEST user with password GUEST.

Build the system

Type ./build.sh. This will download simh and the mcp-kit under packages/, build the simh b5500 binary and copy files. The file structure on your PC will now look like

bin/ simh binary
disks/ virtual disks for MCP
tapes/ tape files for MCP
units/ printer and card images

It will then proceed to

  • cold boot the B5500 from a punched card image
  • set up the virtual disks and install MCP files
  • add extra software that has been collected.
  • set up time-sharing and create users

/images/mcp/simh-mcp-cold-start.png Installing MCP on simh. Source: Rupert Lane. License: CC0.

This will take around 5 minutes and will only need to be done once. If you ever need to rebuild the system, run build.sh again; it will not re-download the package files.

Start MCP

Type ./run.sh. After a few seconds the system will say it is ready for connection. Using a telnet client, connect to port 5500 (eg via telnet 0 5500.)

In the telnet session, type your username and password. Your screen will look something like this, with the window on top being the console and the one below the user session.

/images/mcp/simh-mcp-cande-login.png Login to CANDE on MCP under simh. Source: Rupert Lane. License: CC0.

Create and run a hello world program

Here's an example of a complete session.

$ telnet 0 5500
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.


Connected to the B5500 simulator DTC device, line 0


B5500 TIME SHARING - 01/00, STATION 02
ENTER USER CODE, PLEASE-GUEST
AND YOUR PASSWORD
GUEST@@@
09/02/25  6:04 PM.
GOOD EVENING, GUEST USER      YOU HAVE STATION 02

#
CREATE HELLO BASIC
FILE:HELLO - TYPE:BASIC  -- CREATED
100 FOR I = 1 TO 5
200 PRINT "HELLO, WORLD"
300 NEXT I
400 END
RUN
 WAIT.

 COMPILING.


 END COMPILE .0 SEC.

 RUNNING
        

HELLO, WORLD
HELLO, WORLD
HELLO, WORLD
HELLO, WORLD
HELLO, WORLD


 END HELLO .0 SEC.

LIST


FILE:HELLO - TYPE:BASIC  --09/02/25  6:08 PM.

100  FOR I = 1 TO 5
200  PRINT "HELLO, WORLD"
300  NEXT I
400  END


 END QUIKLST .0 SEC.

SAVE
FILE:HELLO - TYPE:BASIC  -- SAVED.

BYE
 ON FOR  4 MIN, 00.4 SEC.
 C&E USE .0 SEC.
 EXECUTE .0 SEC.
 IO TIME 2.9 SEC.
 OFF AT   6:08 PM.
 GOODBYE GUEST
09/02/25

After we login, we create a new BASIC file called HELLO, and type in the program using line numbers. RUN will compile and execute it, LIST will display a listing.

Finishing your session

Type BYE to log out. If it complains about unsaved work, you can either type SAVE to keep it on disk or DELETE to discard your work.

There is no shutdown process for the operating system itself. Go to the emulator window and type Control-E to interrupt it, then q to quit.

You can restart MCP with ./run.sh as needed.

Questions, corrections, comments

I welcome any questions or comments, and also especially any corrections if I have got something wrong. Please email me at rupert@timereshared.com and I will add it here and update the main text.


A quick tour of Burroughs MCP using retro-b5500

The first Burroughs B5500 emulator we will look at is retro-b5500 by Nigel Williams and Paul Kimpel. We'll get the the system set up, install the operating system, enable time-sharing and enter a simple BASIC program interactively.

Using retro-b5500

As mentioned in the introduction, retro-b5500 runs in any modern desktop web browser. It aims to emulate each component of the system with a graphical user interface so you get a taste of what it would be like to operate the machine.

The project includes some great information on its wiki, starting here, describing how the system works and what you need to do step by step. Rather than repeat this here, I will give a summary of the steps involved along with some screenshots. For a first install I recommend you use the server code hosted on the web and the default configuration.

Getting the Burroughs software

You will need a copy of the virtual install tapes for MCP. Unisys, the current owners of the OS, have provided a license to use these non-commercially. Go to Burroughs B5500 Mark XIII System Software, read and accept the license, download the files, unzip and store them somewhere.

You will also need to download the cold start card image.

Power on and set up media

Go to the main page and click Start & Power On. Accept the default configuration and the emulator front panel will pop up along with windows for each peripheral. Note that you should keep the main page visible at all times otherwise the browser may think it's inactive and starve resources from the emulator. I have found it OK to arrange windows I don't use often, such as the card punch, into tabs instead of windows.

Find the tape drive window and load the uncompressed system tape you downloaded earlier, then click the REMOTE button.

Find the card reader and load the cold start card you downloaded earlier. Click the START button.

On the operator console, click CARD LOAD SELECT.

On the SPO (operator console), ensure REMOTE is selected.

Arrange the windows so you can see all the above. Your screen should now look something like this:

/images/mcp/retro-b5500-ready-for-install.png retro-b5500 just before starting the install. Source: Rupert Lane. License: CC0.

Install the operating system

Follow the wiki instructions on cold starting the system. This will involve:

  • Booting the system from the card deck.
  • The system will start and read from the tape drive, and then initialise the disk. This is all automatic and you should see console messages, ending with MCP FILE LOADED.
  • It will then reboot and load from disk from the first time.
  • You will be prompted to enter the date and time on the SPO.
  • More software will be automatically installed to the disk.
  • You will then set the intrinsics (system library).

This should all take less than ten minutes. After this is done, you can shut the system down by pressing the HALT button - there's no special shutdown procedure.

You can restart by pressing LOAD. The system will ask for the date and time again and look something like this:

/images/mcp/retro-b5500-first-boot.png retro-b5500 on first boot. Source: Rupert Lane. License: CC0.

The guide has one more section on Loading Additional System Files which you can follow if you want, but we will basically load the entire tape as part of the next section so this is not necessary.

Install time-sharing

At this point the system can accept and run batch jobs. To add time-sharing (CANDE) we need to install more components. Switch over to WebUI Setting Up TSMCP and CANDE for this.

You will need to create two new card files to control terminal line set up and specify user accounts as part of this. Load each of these into the card reader and press START, and the system will read and create these files on disk.

You then tell the system to load all files from tape with the CC command specified in the above wiki. While this is happening, the screen will look like this:

/images/mcp/retro-b5500-installing-cande.png Installing CANDE on retro-b5500. Source: Rupert Lane. License: CC0.

Finally, tell the system about the new install with the CM and CI commands, and halt-load.

Using time-sharing

When you next start up, enter date and time as before, and enter one more operator command CE to begin time-sharing. (This will need to be done each time you start the system.)

Now find the Datacom window and press CONNECT. You may need to hit enter to get a login prompt. Type the user name and password you specified earlier - when the screen prompts for the password it will type some characters that on a real typewriter would overwrite the password, but on a screen this will not, and you do need to wait for the overprint to stop before entering the password.

Once you are logged in, try creating a simple program and running it:

CREATE HELLO BASIC
10 FOR I = 1 TO 5
20 PRINT "HELLO, WORLD"
30 NEXT I
40 END
RUN

When you type RUN it will compile and execute the program. The screen will look like this:

/images/mcp/retro-b5500-using-timesharing.png

Note the tasks you are doing also show up in the SPO.

To finish, type SAVE to store the working copy of the program to disk, and type BYE to log out. You can then click HALT on the main console.

Questions, corrections, comments

I welcome any questions or comments, and also especially any corrections if I have got something wrong. Please email me at rupert@timereshared.com and I will add it here and update the main text.


Burroughs MCP

/images/mcp/mcp-collage-1.png Collage of stills from Burroughs 16mm films, 1962-4. Source: Youtube @slurn45.

Like IBM, Burroughs was a company originally formed in the 19th century to produce mechanical calculators and accounting machines. By the late 1950s it had built several small computers such as the B220 and also worked on the system for controlling the Atlas ICBM. But it had no large civilian system such as IBM's 7090 on offer.

This did give one advantage: a blank sheet of paper to design a new system. This yielded several innovations:

  • The ability to design the hardware and operating system in parallel, rather than add software after the computer had been designed.
  • It was programmed in high level languages only - the system language was an extension of Algol - and had no assembler.
  • It had A stack driven architecture and virtual memory.

The system the came up with was the B5000 which ran an batch operating system called the MCP, or Master Control Program. Introduced in 1963, its first customers included NASA, Dow Chemicals, Stanford University and Georgia Tech. However, it only sold 33 systems by the end of 1964, with concerns over performance and the lack of a Fortran compiler; it was also overshadowed by the launch of IBM's System/360 in 1964.

Later that year Burroughs announced the B5500. Using integrated circuits instead of transistors, and a disk drive instead of a drum, it was almost 3 times faster. A Fortran compiler was added, along with data communication equipment. These supported remote entry of batch jobs and interaction with programs. However, MCP was tuned for fast throughput of long running jobs, keeping a few in memory and queuing the rest, so latency for interactive use was not great.

The solution was to add full time-sharing, which it did with the TSSMCP in 1968. This ran a shell called CANDE (Command & Edit) on up to 24 terminals, providing an interactive environment reminiscent of DTSS where users could develop and run programs in Algol, BASIC, Fortran and COBOL. An early customer for time-sharing was the UK's GPO, which used it for telephone network analysis.

Its ease of programming and flexibility helped in the market, with 220 B5500s sold by 1970. Burroughs would continue to develop the system and the MCP, but was always overshadowed by IBM. It merged with another IBM rival, Sperry, in 1986 to form Unisys. MCP continues to be supported by Unisys today, now via (paid) emulation on x86 hardware.

Preservation status

For software, there are some listings on bitsavers but the most important artefact is a complete copy of the Mark XIII (1971) release of MCP, found on a 7 track tape in the collection of Sid McHarg. This was concerted by Paul Pierce to a tape file and Unisys has allowed this to be distributed under a non-commercial use license. You can find it on Paul Kimpel's site. There is also a collection of miscellaneous software including the CUBE tapes, which was a user-contributed library of programs from Burroughs users.

For documentation, bitsavers has a good collection of manuals for the hardware, operating system and languages.

Emulation status

There are two excellent Burroughs B5500 emulators that take quite different approaches.

Paul Kimpel and Nigel Williams developed retro-b5500. This is written in Javascript and runs in the browser, storing virtual disk files in the browser's local files. It has a user interface that presents each system component - console, printer, tape drive etc - in a form similar to the original hardware, so you get a great idea of how the machine was operated. It runs the batch and time-sharing MCP, though the latter is limited to a single terminal. The documentation is complete and well written; the story of how the project was built is also a fascinating read.

The prolific Richard Cornwell has developed a version of simh for the architecture. This uses the traditional command line interface, supports multiple terminals and brings the automation features of simh which can help with some tasks. Richard's project page contains full information about setting up and using the system; the quick start guide is a good place to start.

I believe Unisys used to offer Windows emulators of its contemporary MCP product under a hobbyist license, but the links I have no longer work.

Further reading

The Wikipedia articles on Burroughs and its large systems are good places to start.

The IEEE Annals of the History of Computers articles "Before the B5000" and "After the B5000" give a detailed history of Burroughs computers around this period.

There are several good oral histories about this period. Richard Waychoff's Stories about the B5000 (pdf; archive.org link) gives an account of the development of the Algol compiler, with a cameo from a young Donald Knith. The B5000 Conference brings together many of the people involved in the system's design to discuss its origins.

Topics

Using the system

Future topics

  • Programming with COBOL
  • Getting data in and out.
  • The CUBE tapes and other available software.

Questions, corrections, comments

I welcome any questions or comments, and also especially any corrections if I have got something wrong. Please email me at rupert@timereshared.com and I will add it here and update the main text.


Which time-sharing operating systems can be run via emulation today?

/images/vax-sw.png Cover from DEC's "VMS Language and Tools Handbook". Source: bitsavers.

I reckon there are 39 families of operating systems with time-sharing features first developed before 1983 that you can run today via freely available emulation.

See the table below, with links to coverage on this blog on the left, and links to the emulator, software kits and documentation on the right. Each of the italic terms above needs qualification, which I explain in detail after the table.

Year OS System Developer Emulator SW Doc
1963 CTSS IBM 709x MIT s709, simh kit doc
1964 DTSS GE 2xx Dartmouth dtss kit doc
1964 TOPS-10 DEC PDP-6/10 simh kit doc
1966 WAITS DEC PDP-6/10 Stanford simh kit doc
1967 ITS DEC PDP-6/10 MIT simh kit doc
1967 TSS/360 IBM S/360 hercules kit doc
1967 CP/CMS IBM S/360 hercules kit doc
1967 MTS IBM S/360 U Michigan hercules kit doc
1969 MCP Burroughs 5000 simh, b5500 kit doc
1968 George 3 ICL 1900 g3ee kit doc
1968 TSS/8 DEC PDP-8 simh kit doc
1969 Multics GE 645 Multics dps8m kit doc
1968 SCOPE/HUSTLER CDC 6000 Michigan St dtCyber kit doc
1969 HP TS BASIC HP 2100 simh 3 kit doc
1969 BS 3 Telefunken TR 440 tr440 kit doc
1970 RSTS DEC PDP-11 simh kit doc
1971 Unix DEC PDP-7/11 Bell Labs simh kit doc
1971 Kronos CDC 6000 dtcyber kit doc
1971 TSO for MVS IBM S/360 hercules kit doc
1971 Wang 3300 Wang 3300 emu3300 kit doc
1972 MUSIC/SP IBM S/360 McGill sim390 kit doc
1973 RSX-11 DEC PDP-11 simh kit doc
1973 Wang 2200 Wang 2200MVP wangemu kit doc
1973 CP-V SDS Sigma simh kit doc
1974 OS/32 Interdata 32 simh kit doc
1974 MPE HP 3000 simh 3 kit doc
1974 PRIMOS Prime 300 p50em kit doc
1974 AOS Data General Eclipse simh WH kit doc
1974 SITS DEC PDP-11 NIT simh kit doc
1975 NOS (+ PLATO) CDC 6000 dtcyber kit doc
1976 XVM/RSX DEC PDP-15 simh kit doc
1976 TOPS-20 DEC PDP-10 simh kit doc
1976 ETOS DEC PDP-8 EDUCOMP simh kit doc
1977 DX10 TI 990 sim990 kit doc
1977 AMOS Alpha Micro AM-100 vam kit doc
1977 VS Wang VS vs kit doc
1978 VMS DEC VAX simh kit doc
1979 MP/M DR 8080 simh kit doc
1981 Domain/OS Apollo Domain mame kit doc

What is a time-sharing operating system?

By "time-sharing" I mean an operating system which is

  1. multi-user - more than one person can use the system at the same time.
  2. multi-programming - more than one job can appear to run on the system at the same time.
  3. interactive - a user can interact with the system without having to go through an intermediate step like submitting a batch job.
  4. general purpose - the system can be used to develop and run programs in more than one language.

I also include virtualised systems like CP/CMS in the list.

A very brief history of time-sharing

We start with pioneers such as CTSS and Dartmouth DTSS in the early 1960s, but time-sharing really took off with mainframes in the late 1960s, with IBM's System/360 and Digital Equipment Corporation's PDP-10 having several commercial and academic operating systems. Also very influential was Multics, built by a consortium for a GE machine. IBM had many other competitors at this time, and outside the US several systems were developed. Minicomputers such as the PDP-8 and -11 started to appear towards the end of the decade, along with the birth of Unix on the latter machine. As the 70s continued, more minicomputers arrived, along with later large scale systems like PRIMOS and VAX VMS. Coming into the 1980s, focus shifted to microcomputers for personal use, with some outliers like MP/M and the workstation orientatted Domain/OS.

Families of operating systems

I have grouped operating systems into families where there is a clear line linking them together. This may span many years and different computer hardware. Probably the biggest example is Unix which is listed once in the table for the original implementation but went on to appear in many different versions (BSD, commercial Unixes like Solaris, Linux) across many different platforms.

As an operating system evolves, it can take on many names: for example the OS listed as CP/CMS includes its derivatives VM/370, VM/SE, VM/SP, VM/XA, VM/ESA, z/VM etc.

In some cases this is a judgement call - for example WAITS was originally based on TOPS-10, but I have included it as it is evolved to be a quite different system,

Dates

In scope are operating systems first introduced before 1983 - this is a fairly arbitrary cut off date chosen to focus on the period time-sharing systems were dominant before the personal computer started its ascent.

The date column indicates the first year an operating system was introduced: for commercial systems, the year of its first release to customers; for academic systems, the first year it ran production workloads.

Some operating systems had a lifespan of many years, gaining features and adding architectures. Some started as batch operating systems and had time-sharing added later. I have used the year when time-sharing features were added in that case. Some are still being maintained today, albeit in quite different forms from the original version, such as MVS, MCP and VMS.

This column was by far the hardest to verify and I would appreciate any correctiobs.

One complication then is, when we look at an operating system which version should we select? Often the choice is made for us, so for CTSS we have a single source from around 1969; in other cases like TOPS-10 we have a choice of releases spanning 1972 to 1988.

I will generally choose to look at the most recent version of a system, but this does make a chronological comparison of different systems more difficult.

Emulators

I concentrate on running operating systems under emulation here, which anyone can do if they have a personal computer. The gold standard is an open-source, cross platform emulator, but I do included single platform ones (eg emulators running on Windows only) and closed-source but freely available emulators where this is the only choice. I do not include commercial, paid-for emulators as the focus for this site is hobbyists and researchers.

Some systems have more than one emulator. I usually choose simh or hercules if available, if not the most fully features single architecture emulator. In some cases where there is sufficiently different functionality or approach to emulation I list more than one.

simh is the most frequently represented emulator on this list as it emulates more than 30 different architectures. There are several different forks, but in most cases a recent version of open-simh is a good choice.

hercules also appears several times due to the large number of IBM System/360 operating systems. Again there are several forks, but SDL hercules hyperion is my current preference.

I have not (yet) run all the emulators listed in the table, so it's quite possible some do not work fully - please let me know if so.

Alternatives to emulation running on your own personal computer:

  • hardware for more recent systems such as PDP-8s or VAXes is available on sites like ebay, but is getting increasingly expensive.
  • replicas running emulators on hardware like Raspberry Pis, such as the PiDP-11.
  • some museums has put original hardware online where you can get an account, such as The Interim Computer Museum.
  • there also collections of online-accessible emulators such as nostalgiccomputing.org.

Software kits and documentation

In the "SW" column I link to the project page or archive site where software kits can be obtained. Be aware that some kits have specific licenses attached and others have no obvious current owner so their licensing status is unknown.

The "Doc" column links to the main source of documentation for the operating system in PDF format: this is usually Bitsavers.

What's missing

This is not a comprehensive list of all time-sharing operating systems ever produced - to my knowledge, no such list exists but I estimate it would be at least double this size.

In order for a system to be available on emulation, several things need to happen (or to have already happened)

  • the original software and documentation needs to have been preserved, ideally in digital form
  • sufficient details of the hardware it ran on need to have been preserved
  • someone has made the big effort to write an emulator for the system

Some examples of systems that are not available, at least today, via emulation

  • early systems like AN/FSQ-32, JOHNNIAC or the PDP-1 systems developed by BBN and MIT, along with British systems like the Titan Supervisor
  • Mainframe operating systems like GE GCOS, RCA TSOS, Univac Exec 8 and ICL VME.
  • Academic systems like CAL-TSS, OS-3, CAP or EMAS.
  • Many minicomputer systems.
  • More recent systems that are only available commercially, eg Tandem or Stratus VOS.

And in many cases, even for those available, not all versions of each operating system has been preserved.

Questions, corrections, comments

Please let me know if you think I am missing any systems, or if you think my methodology is not right. You can email me at rupert@timereshared.com and if it makes sense I will add it here and update the main text.

August 2025: Lars Brinkhoff suggested adding SITS.


← Previous  Next →