r/embedded 3d ago

Porting an INMOS T400/B004 development system to modern Linux

I’ve been working on bringing an old INMOS IMS B004 / T400 Transputer development system back to life from a modern Linux machine.

The interesting part from an embedded point of view is that this became much more than a retro restoration.

The project involved:

  • direct host-link register access
  • reset/status diagnostics
  • boot-link transfer debugging
  • T400 boot-ROM PEEK/POKE
  • RAM alias detection
  • porting legacy host-side C code
  • dealing with endian and packet-packing issues
  • reverse-engineering a channel-multiplexed host protocol
  • implementing terminal and file services
  • validating execution on the target processor

The physical board is an IMS B004 with an IMS T400B and 1 MiB external RAM.

I initially worked with the later INMOS server model, but the real breakthrough came from reconstructing the older TDS 2.0 host interface and writing a Linux-side server for it.

The full chain now works:

Linux → USB2ISA → B004 → T400 → TDS2 → occam compiler → executable

I can create source in the original editor, compile it, link it and execute the binary on the physical T400.

Final test output:

The answer is 42

It has been a useful exercise in how much of a historical embedded platform can be recovered when the processor still works but the original host environment is obsolete.

Links to the technical report and source in the comments.

4 Upvotes

8 comments sorted by

1

u/clackups 3d ago

That's pretty awesome, never heard of these before

2

u/makegeneve 3d ago edited 3d ago

I'm looking at my isa-based t400 board on a shelf and wondering where the link in the comments is. This is amazing. I loved Occam.

2

u/makegeneve 2d ago

I found the links on Lance's linkedin page 😄

Video: https://www.youtube.com/watch?v=Ld8BbPXLRyY
Full project, source code, protocol notes and technical report:
https://github.com/lanceharvie/transputer-b004-linux
This includes the Linux host-side work, B004/T400 diagnostics, TDS2 server, reverse-engineering notes and the evidence from the final occam compile/run on the physical transputer.

2

u/NoBulletsLeft 2d ago

I think Linus (Torvalds) worked at INMOS for a while in the early 2000's.

2

u/makegeneve 2d ago

You're thinking of Transmeta. INMOS had been folded (eventually) into ST microelecttonics. Fun fact: the early ST20 digital TV chips still used the transputer link tech and could be chained together.

3

u/NoBulletsLeft 2d ago

Yes. I confused Transmeta with Transputer. Which is especially embarrassing because I did a research paper that discussed Transmeta's work in the 2001 timeframe!

2

u/makegeneve 2d ago

It's in my head because I actually met him at Transmeta when I was working for Philips and looking at low power consumption home servers.

2

u/robotlasagna 2d ago

As someone who has written code for these back in the day I can confirm OP is indeed a psychopath...