The Parachute Project

This is a long-term project; something of a historical reconstruction, inspired by

  • the Inmos Transputer, occam and CSP.
  • Professor Niklaus Wirth’s Project Oberon, and his paper “A Plea for Lean Software”.
  • Per Vognsen’s Bitwise project.

The goals are:

  • to build a portable, open source Transputer emulator, inspired by a version I wrote several years ago
  • write a toolchain to support development for it
  • produce a port of eForth that runs on it
  • extend eForth into a distributed OS kernel
  • learn about process calculi
  • investigate modern/concurrent/functional language design
  • investigate building an FPGA Transputer system capable of running the above

To download the current release of Parachute for macOS, Ubuntu, CentOS, Raspberry Pi, or Windows 10, visit the Parachute Downloads page.

The history of the project leading up to its current point can be found at the Parachute Project History page.

Parachute is released under the Apache License 2.0.

The current state is that I have the following three sub-projects - the README.md at the top-level of each of these repositories will give more detail…

All are IN PROGRESS, NOT YET RELEASED FORMALLY.

WORKING (assembles eForth correctly), STILL NOT FEATURE-COMPLETE - The Transputer MASM-subset Macro Assembler can be found at:

https://github.com/devzendo/transputer-macro-assembler

IN PROGRESS (needs I/O code changing to match my I/O server protocol) - Transputer eForth can be found at:

https://github.com/devzendo/transputer-eforth

WORKING (currently converting I/O to be IServer compatible) - The Transputer emulator and I/O server itself can be found at:

https://github.com/devzendo/transputer-emulator

Future

Other things I’ve always wanted to write: my own OS; my own language….

Once eForth works, and I can investigate the system, it needs to grow to provide the facilities I want so that this can be my version of Project Oberon. There will need to be an ELF loader, and a bootloader that can link with an ELF object. Then a higher level language (one or more) will be needed for later stages… perhaps best achieved by “just” writing a back end for LLVM that targets the T800…

The emulator itself could be reworked to run a virtual Transputer on each physical core, with links connecting the cores; it could have ‘video memory’ added via say the SDL library.

Modern Hardware Transputers

There’s an interesting project called OpenTransputer (that seems to have dried up), involving making a new Transputer in an FPGA, and with the links replaced with a switch to a Benes network. They have a version of occam written in Java; it’d be good to port that to use my back end toolchain…

Also, Uwe Mielke’s T42 Transputer in FPGA project.

Other Emulators

There are more emulators now -

Resources

So the Transputer isn’t dead… watch this space…

… to be continued …

Matt Gumbley, Thu 20 Feb 2020