blog:transputer_tmb08_repair

Transtech TMB08

The Transtech TMB08 is a 16bit ISA card with 10 TRAnsputer Module slots (TRAM), an INMOS C011 link adapter to interface to the ISA bus, an INMOS C004 32-way programmable switch and a INMOS T200 16bit Transputer.

Product manual, User manual

Transtech produced a lot of designs that were very similar to the INMOS reference systems, and this is no exception; it's almost a straight clone of the INMOS B008 16bit ISA card, with all of the same features.

In summary, the features allow:

  • TRAM slots - Each slot can accomodate one transputer module; either processor + RAM, peripheral controller (such as SCSI or RS232), display or specialist hardware such as a DSP or vector processor.
  • C011 link adapter - Allows the parallel ISA bus to interface with the (10 or 20mbit) serial links to a Transputer.
  • C004 programmable switch - Allows the user to configure a software defined network of up to 32 point-to-point links (star, bus, torus, etc).
  • T200 transputer - Provided to control transputer network booting and reconfiguration of the C004 switch chip.

I acquired my TMB08 around 2015 or 2016, and it looked like this:

A single TRAM module is plugged in to the left-most slot, there is a a set of unused solder pads towards the right, external edge of the card (this is where the T200 16bit transputer should be fitted), it is missing a chip in the PGA socket to the right. Finally, on the reverse of the card are two hand-soldered link wires connecting TRAM slot 0 (which is approximately in the middle of the board) to the left-most socket, socket 1 (which has the TRAM module fitted).

So it is missing the C004 link switch, the 16bit transputer and has a strange module in socket 1. This makes more sense when you consider the environment it has (likely) come from as well as the function of the module in socket 1. The module has a set of chips on it (an SN75ALS193N and SN75ALS192N) that together make up an RS422 differential serial transmitter/receiver - this extends a serial connection which could be 100kbit/sec or more up to 1.5km in distance. This was probably a controller card for machinery in an industrial environment. It just so happened that they repurposed a Transputer interface to do so.

Handily, on the back of the card is a listing of all the jumper settings:

[Update - November 2020]

It's clear that towards the end of the life of the Transputer, some of the excess stock of these cards was repurposed to be used as dedicated RS422 interface controllers - they saved money by not including the programmable link switch (not needed if you don't have any Transputer processors), as well as the T200 transputer itself (again, not needed if you don't need to re-programme a link switch or boot a network of transputers).

So what I need to do is:

  1. Source an INMOS C004 link switch in PGA form (they were available in both PGA and PLCC during their lifespan; the former being the most common earlier design).
  2. Source a 16bit INMOS T200 series processor
  3. Fit a PLCC socket into which the T200 can be fitted
  4. Remove the hand-soldered link wires on the rear of the card

This was actually the harder of the two INMOS chips to find. Almost all the old-stock that is still out there is in PLCC format, so is incompatible with the existing PGA socket on the card.

Fortunately in late 2020 I found a surplus IC supplier in China that had several C004 PGA designs in stock and I picked up this IMSC004-G20S.

Fitting is simple; just place the C004 into the PGA socket - making sure to orient the chip correctly, of course!

The T200 series processors were, like most other INMOS parts, released in several physical packages - PGA, PLCC socketed and PLCC surface mount. As I'm not proficient enough with soldering to do much in the way of surface mount work I thought it best to find a PLCC socket type fitting, which was pretty easy actually. Again a far-east based surplus IC vendor was selling an ST-branded T225 16bit transputer variants for a reasonable (£10-ish) price, so I got a pair of those and bought a correctly sized PLCC socket to fit it in.

ST Microelectronics bought INMOS in the early 90's and eventually phased out all INMOS branding, so that is why a lot of later stock has no INMOS labelling; even though they're exactly the same parts.

Fitting the PLCC Socket

I've retro-fitted a PLCC socket once before, on my original 286 motherboard, in order to fit a Harris 20MHz 286 in place of the original 16MHz chip… and I found it easier to do if I removed the central plastic base. So that is what I'll be doing to this socket:

This is where the socket will actually go, and how much easier it looks to access the solder pads with a normal iron with the centre support cut out:

… and with the socket soldered in place:

… and finally with the IMST225 processor fitted in the new socket:

Completed top side of the interface card:

  • IMSC004 link switch fitted
  • PLCC socket fitted
  • IMST225 processor fitted

I've also now desoldered the two bridge wires from the rear of the card. In theory, this should now be a perfectly working TMB08. I just need to test it in a working DOS PC….

The board has a number of dip switches and jumpers to set, the main ones being a 6 way dip-switch (S1-S6)

  • S1 + S2: On (port address 0x150)
  • S3: On (20Mbit link speed)
  • S4: Off (slot 1-9 controlled by slot 0)
  • S5: On (slot 0 controlled by PC interface, not edge connector)
  • S6: Not supported

The second configuration being a 12 pin jumper block just below the dip switch. For a single (or master) TMB08, it must be configured as below:

Initially I couldn't get it to work reliably at all, with the ispy network identification tool incorrectly identifying my transputer modules, misnaming the T225 processor, etc. This was with the later v323 release:

Ultimately I reinserted the card several times, test again, left it a couple of days, reinserted it and tried again - this time it worked; although I completely filled all the TRAM slots, so perhaps that was an issue?

In hindsight, later versions of the ispy tool (anything above v233.1) appear to vomit, repeatedly, when scanning my TMB08. If I stick to ispy v233, then everything is detected normally.

The default link speed from the root transputer to the PC host is moderately low; in the order of 270-280KBytes/sec. When I rewrote the Linux transputer driver for kernel 3.x.y I was getting approximately 100KBytes/sec more. Some of this could be down to the architecture of the host system (I was previously using a 200MHz Pentium Pro, rather than the current 133MHz 5×86/486), but it was pointed out to me that this could potentially be improved by tuning various BIOS options.

  • Standard BIOS settings are:
    • 1/4 Bus clock as ISA speed (33MHz/4 = 8.something)
    • 8 clock cycles as 8bit ISA IO recovery time

I tried a sequence of changing ISA clock and then 8bit IO recovery time, testing in between each change via ispy to verify host IO link speed. These are the results:

The first increase in IO speed comes from both increasing the ISA clock from the standard 8MHz (bus / 4) to 11MHz (bus / 3), which gains an additional 22-24KBytes/sec, as well as decreasing the IO recovery time from the standard 8 cycles to 5 cycles, giving us another 32-33KBytes/sec. Further decreases to the IO recovery time below 5 cycles do not show any improvement.

CPU level 1 and motherboard level 2 caches are already optimal (write-back supported on both) and memory timings are already set correctly for the type and speed of the modules installed, so there are no further gains to be made there.

Still, the overall improvement from the base setting is approximately 55-56KBytes/sec. Taking us from 270-280KBytes/sec to 333KBytes/sec.

Now that the TMB08 is up and running, I need a way to network both this and my older, working Transtech TMB04 together.

Fortunately the TMB08 brings out a load of Transputer 20Mbit connections to the 37-way D-connector on the card. This allows you to physically connect multiple cards and multiple transputer networks together.

The TMB08 has 10 slots on the cards, with each slot being able to be software configured to other slots by the onboard C004 programmable switch. The switch also has enough free 'ports' to have up to 10 extra links on the D-connector. This is useful as the TMB04 has one onboard Transputer, plus another 4 slots - none of which are linked together; so that's 5 connections needed right there (unless we connect all the slots on the TMB04 together as a simple pipe, which isn't the best use of the available topologies).

Here's the physical connections that I think are needed from a single TMB08 working as master, with a TMB04 as a slave with all 5 transputers on the TMB04 connected independently:

This still leaves 3 pairs of Transputer links available in case I add several more cards.

If connecting to another C004 managed card (like a real Inmos B008, or another TMB08), then you also need to connect pipetail and configdown, as noted in the Transtech manual.

  • blog/transputer_tmb08_repair.txt
  • Last modified: 2020/12/09 08:29
  • by john