Page updated: 20-Oct-2021


Mini-mainframe simulator project

Downloads      Construction 17-Oct-2021     Videos

The PlasMa machine is a simple homage to mainframe computers from my early 1970's career at International Computers Ltd (ICL) in the UK. It makes no pretence to simulate any specific computer, either in design or performance; its aim is purely to rekindle the hands-on ‘lights and switches magic’ from that era, and explore the challenges of programming a machine from scratch.
  It simulates a complete mini/mainframe system in a self-contained desktop-sized box containing real lights and switches. The system comprises a 'mini-like' processor with a small amount of main memory running a relatively simple instruction set, and assorted emulated 'mainframe-like' peripherals such as a paper tape reader and punch, mag tapes, exchangeable disks and an operators console.

The machine's construction and development is shown in the construction section using still pictures, and on Youtube in a series of videos.

The project is just a personal indulgence re-exploring the 'good old days', but if you are interested in building a similar machine for developing programs and ideas, more details are in the construction section. There is also a simulator program you can download for assessing PlasMa's capabilities and developing programs to run on it (see Downloads).

The design caters for novices and experts alike; just skip any parts you are already familiar with.


The machine is programmed using toggle switches to load binary values into registers and memory. The program can then be run or single-stepped, and break-points set for debugging. The internal workings are visible at all times in binary format, and include the program counter, instruction register, accumulator and work registers.

PlasMa simulates a microcoded computer so, by loading different microcodes, is able to execute different instruction sets. Three microcodes are provided, so there are 3 instruction sets, all emulating fictitious computer architectures using the same lights and switches on the front panel.

Microcodes 1 and 2 (Toy-A and Toy-B)

These two are for educational purposes and emulate variants of the ‘Toy’ computer used as a teaching aid at Princeton university, USA.

There are 16 functions and 16 registers, all represented as 4-bit nibbles within a 16-bit instruction, making it very easy to mentally translate to and from binary.

The university uses variants of the 16 functions to demonstrate different programming techniques, so PlasMa simulates two of the most common, which I've named Toy‑A and Toy‑B. In both emulations, Princeton’s terminology is retained where possible so that examples and tutorials on the internet can be followed; existing programs should run with little or no change.

Toy‑B has a more flexible I/O system than Toy‑A, but the Princeton design only appears to use a couple of functions so I’ve included some from the PleX design for added interest to the Toy‑B programmer; these include timers, delays and an emulated paper-tape reader and punch. These enhancements should be backwards‑compatible with the original Princeton design, but are a good stepping stone before moving on to the more complex PleX emulation.

The Toy instruction set is included by kind permission of Robert Sedgewick and Kevin Wayne at Princeton university, and is described in their book 'Computer Science'. More information can be found in the following links: BooksiteCoursera course

Microcode 3 (PleX)

This is for the more adventurous, and emulates an advanced computer system using ideas taken from various real-life machines, including a 32-bit accumulator and larger memory, the first few words of which are non-volatile to simulate a small ‘fixed/core store’. This can be used to store a bootstrap routine for loading larger programs from the peripherals (one of the reasons for building PlasMa was to explore the challenges of doing this).

The PleX I/O system allows many more functions than Toy‑B and provides access to a full set of ‘system’ peripherals, including an operator’s console and emulated peripherals such as a paper tape reader and punch, magnetic tape decks and exchangeable disk drives.

The PleX instruction set (ISA) is adapted from QNICE by kind permission of Bernd Ulmann. More details are at vaxman.de but there is no compatibility between the two ISAs.


PlasMaSim1 + Plasm1 are free. They are fully functional with no time limits, but can only handle microcode 1 (Toy-A). Click the links below to download them.

PlasMaSim2 + Plasm2 are GBP 5 for the pair. They can handle both microcodes 1 and 2 (Toy-A and Toy-B).

PlasMaSim3 + Plasm3 are GBP 10 for the pair (or GBP 5 if you've already purchased variant 2). They can handle microcodes 1, 2 and 3 (Toy-A, Toy-B and PleX).

Please include a message to say what the payment is for. There should be an option in Paypal to include a message or note, but if not, just send me a separate email; contact address is at the bottom of this page.

  Machine Manual - updated 17-Oct-2021

Simulator v4.13* - updated 17-Oct-2021
Build variants are available in various combinations of 32 & 64-bit formats for different OS platforms. 32-bit programs should run on 64-bit platforms (but not vice versa).

A slim version is available with a narrower tty/oper screen to cater for computers with small monitors (see PlasMaSim Manual for details).

If you're not sure which to choose, start with '32-bit Slim'.

MSWindows, 32-bit, PlasMaSim1.exe
   Full-size    Slim

MSWindows, 64-bit, PlasMaSim1.exe
   Full-size    Slim

MacOS, 32-bit, plasmasim1
   Full-size    Slim

Linux, 32-bit, plasmasim1
   Full-size    Slim

Linux, 64-bit, plasmasim1
   Full-size    Slim

PlasMaSim Manual - updated 17-Oct-2021
Instruction Set Manual - Toy-A
Mods History

Assembler v3.13* - updated 20-Oct-2021
Build variants are available in various combinations of 32 & 64-bit formats for different OS platforms. 32-bit programs should run on 64-bit platforms (but not vice versa).

MSWindows, 32-bit  Plasm1.exe
MSWindows, 64-bit  Plasm1.exe
MacOS, 32-bit  plasm1
Linux, 32-bit  plasm1
Linux, 64-bit  plasm1

Plasm Manual - updated 17-Oct-2021
Mods History

Princeton links for Toy:   Overview (incl. opcode table)    Examples

* Some downloadable files are held on the pCloud.com storage site due to website restrictions, so you may see a prompt from pCloud. If there are problems downloading, check your computer is not blocking access to pCloud, or contact me via the email address below.