VBC Emulator

Inmos Transputer T414 Rev. B VBC Emulator

During July 2017 to November 2019, I spent time writing a Inmos Transputer T414 Rev. B VBC emulator. On this webpage is the Inmos Transputer T414 Rev. B VBC emulator for the PC and macOS. The emulator is written in C and uses the ucode output extracted by the ROMspy software tool (see tab Inmos T414B uCode ROM), in order to run the actual T414B VBC ucode.

Available on this webpage (see 't414emu_lite' attachment) is a fully working Lite version of the emulator. This lite version (with reduced functionality and command line options) is released for public use in order for transputer users to help in testing and running large single processor Occam software test cases (compiled using the Inmos D7205a Occam toolset). If programs fail to run, please email me (my email is on the home page) the source Occam files for me to investigate further. Many thanks.

To run the Inmos Transputer T414 Rev. B VBC emulator, enter the following:

t414emu_lite /sb hello.btl /sq

An example of the banner screen is shown below.

Notes about options:

  - use /SQ to provide FASTER emulation!

About the emulator

The Inmos Transputer T414 Rev. B VBC emulator for the PC is written in approximately 10,000 lines of C code and runs using the ACTUAL ucode (or VBC) extracted from the T414 Rev. B device (as described in the tab Inmos T414B uCode ROM). The public release of the VBC emulator is done following sufficient testings to check out the basic operation and function.

The Inmos Transputer T414 Rev. B VBC emulator for the PC has been developed on both PC and Mac OS using the MinGW tools (here) using a common makefile with the GNU Compiler Collection (GCC).

The VBC emulator passes the TVS instruction test (written by Mike Brustle) and other test cases have verified timer and channel alternation support. The collection of available Occam examples (#1) have been tested: the knights program runs (board size 5 or 6, starting position 1,1), prime now works, square root program works, and I have successfully run a tree program with 4096 parallel processes.  Note #1: Available in the jserver release (see tab Installation Instructions).

The emulator now runs the Inmos toolset tools (i.e. oc.btl). I have successfully run all the tools on the VBC emulator in order to build the Occam hello world example.

The emulator is slow compared to the jserver emulator. It runs at approximately 1 MIPS on a Intel i7 Windows 7 platform. BUT add /SQ for faster emulation.

The emulator has 2MBytes of external memory mapped above the internal 2KBytes of SRAM within the transputer.

The emulator comprises of a T414 Rev B device connected via link 0  to the Inmos Iserver. The emulator implements and emulates the data paths, the registers, constants box, alu, conditional logic, the Byte move logic, the micro controller, the memory access controller (interfacing to 4MBytes of memory), the timers and the 4-off link (three are not connected) / channel interfaces (including DMA engines). It also integrates the Inmos ISERVER functionality for keyboard, screen and hard disk support. All the emulated hardware is driven by the VBC columns.

Limitation of the Lite build

The public release of the VBC emulator is known as the Lite build and does not provide any support for instruction analysis (in the Standard build) or the VBC decoding and internal registers (in the Pro build).

Inmos Transputer T425 Rev. C VBC Emulator

During August 2019 to June 2024, I spent time writing a Inmos Transputer T425 Rev. C VBC emulator for the PC. The T425 VBC emulator is similar in design and operation to the T414 VBC emulator. The VBC emulator now passes all the Transputer Validation Suite (TVS) instruction tests (written by Mike Brustle).

To run the Inmos Transputer T425 Rev. C VBC emulator, enter the following:

t425emu_lite /sb hello.btl

Available on this webpage (see 't425emu_lite' attachment) is a fully working Lite version of the emulator.

Inmos Transputer T800 Rev. D VBC Emulator

During March 2020 to December 2020, and again in November 2022, I spent time writing a Inmos Transputer T800 Rev. D VBC emulator for the PC. The T800 VBC emulator is similar in design and operation to the T414/T425 VBC emulators, except it also contains a Floating Point Unit (FPU) used to execute 32-bit and 64-bit floating point arithmetic operations (i.e. IEEE 754 spec). The T800 FPU emulator is fully functional and passes all the tests of the FPU validation Suite, written by Mike Bruestle.

To run the Inmos Transputer T800 Rev. D VBC emulator, enter the following:

t800emu_lite /sb hello.btl /sq

Available on this webpage (see 't800emu_lite' attachment) is a fully working Lite version of the emulator.

Notes about options:

  - use /SQ to provide FASTER emulation!

Inmos Transputer T805 Rev. D VBC Emulator

During July 2023 to June 2024, I spent time writing a Inmos Transputer T805 Rev. D VBC emulator for the PC. The T805 VBC emulator is similar in design and operation to the T425 VBC emulator, except it also contains a Floating Point Unit (FPU) used to execute 32-bit and 64-bit floating point arithmetic operations (i.e. IEEE 754 spec). The T805 FPU emulator is fully functional and passes all the tests of the FPU validation Suite, written by Mike Bruestle.

To run the Inmos Transputer T805 Rev. D VBC emulator, enter the following:

t805emu_lite /sb hello.btl

Available on this webpage (see 't805emu_lite' attachment) is a fully working Lite version of the emulator.

Screen snapshots

The following is a screen snapshot of the T425 VBC emulator running the Whetstone Benchmark test, generating results VERY close to the real Transputer hardware.

Note: the command line switch /sx 6 configures the external memory Tstate period to 6, and thus emulates 3 cycle external memory.

The following is a screen snapshot of the T414 VBC emulator running the demo MINIX OS, ported to the Transputer by Stuart Menefy. Using the files located here:

http://transputer.classiccmp.org/software/oses/minix/inmos/demo/

 

A helpful Readme file is located here:

http://wotug.org/parallel/transputer/software/OSes/minix/inmos/README

Note: the command line switch /sx 8 configures the external memory Tstate period to 8, and thus emulates 4 cycle external memory.

Links to PC downloadable files:

t414emu_lite.zip

t425emu_lite.zip

t800emu_lite.zip

t805emu_lite.zip


Links to macOS downloadable files: (Builds for 64-bit applications are available.)

t414emu_lite_macOS.zip

t425emu_lite_macOS.zip

t800emu_lite_macOS.zip

t805emu_lite_macOS.zip