Close

TRAMs, Green Wires, and Fake B008s

A project log for Keplermatik

Vintage U.S. and Soviet Hardware come together in a Mission Control-style console that actually tracks satellites.

sup4rl33thax0rsup4rl33thax0r 05/25/2015 at 20:012 Comments

Time for another project update.

At the time of my previous report, my next steps were to get the orbital models running on real transputer hardware. Not the simplest task, considering the technological archeology required, but a fun one. So without further adieu, I present the transputer modules (TRAMs) in question:

TRAMS.

The one on the left rocks 2MB of DRAM and the one on the right 4MB. Kinda nice to have a real memory controller in these things. You can even run a real OS on one (or more). That's a story for another day, though.

The next question becomes, how to load code onto these odd beasts? Today, in the world of Arduino and countless clones, everything is USB- and flash-based. You plug your board into USB and a fancy bootloader programs your code into flash memory, you reboot the micro and it runs your code. Not so, here. The TRAMs don't have flash (or any other non-volatile storage) and USB certainly didn't exist back then. Instead, the TRAMS usually wound up in an expansion board that plugged into the host computer. INMOS (creator of the transputer) designed and sold boards for IBM PC-compatibles, Sun SparcStations, and so on. One of their most popular boards, the B008, boasted space for 9 TRAMS and a name just begging to be giggled at by immature young men:

Hur, hur. He said, "B008".

Not my board. Wish it was, but alas they're rare as hen's teeth these days. I found one guy with a board on some random website, and emailed him to see if he'd sell, but he wasn't interested. Instead, I found one of these on eBay:

What we have here is a sort of weirdo knockoff of the B008 (dare I call it a 'fake B008'?), made by a company called Transtech. They made industrial control hardware (for which transputers are pretty well suited) and advertise their TMB08 to be 100% compatible with the INMOS B008. Fair enough, so Buy It Now, right?

Not so fast. In addition to a much less amusing moniker, I noticed a little bit of oddity in the above picture (which is from the auction). First, there's a little goofy module plugged into the leftmost TRAM slot. We also have a funny looking red porcupine looking thing on the right, that upon closer inspection has a bunch of wire-wrapped connections. And on the back, which I unfortunately didn't get a pic of, the TRAM0 slot was sporting a couple mysterious green wires soldered between its headers. Last but not least, this B008-shaped thing has a card edge connector the likes of which haven't been seen for a loooong time. That there, ladies and gentlemen, slots into the grandaddy of all IBM PC buses: ISA. This architecture debuted in the O.G. IBM PC (model 5150), in 1981. Good thing that I have one of those, so I decided to ignore all of the oddness and give it a shot. TRAMs installed in board, I plopped it into the 5150 and attempted to establish communications. Unsurprisingly, that was a failure.

That thing on the left: Fake B008 plus two TRAMS, sitting snugly against the CGA board of the 5150. You can see one of the bastard green wires sticking up shortly after I forcibly disconnected it from the top header of the TRAM0 slot.

So I spent approximately a whole evening attempting to ignore the oddity of the weirdo module, porcupine thing, and mysterious green wires. Instead, I went through the pain of trying countless combinations of IO addresses, IRQs, and DMA channels in an attempt to get a response from the board. In retrospect this was silly, though I have to say that IRQ conflicts and such were pretty common back in the day and it wasn't uncommon to spend some frustrating evenings doing battle in the same way.

Finally admitting to myself that I was going to have to dig into whatever logic was behind the strangeness, I set to researching both the B008 and the TMB08. I found schematics and other documentation, and it became apparent that the TMB08 was, as advertised, compatible with the B008 but that mine had been in some way altered.

The porcupine thing turned out to be slotted in where an INMOS C004 32-way crossbar switch normally goes, both on the B008 and the TMB08. To understand its function, it's important to know that each transputer chip has 4 high-speed links that can connect to other transputers or peripherals. Depending on the problem to be solved, multiple transputers can be linked together in different ways, and the C004 provides a configurable way to accomplish this. At the time software is loaded on to the board, a configuration file is also sent to the C004 telling it how to link the TRAMs together. Turns out the purpose of the porcupine thing (referred to in the official docs as a 'hedgehog') is to hard-wire some of the links in a defined fashion without the expense or reconfigurablility of a C004. In particular, it routes some links from the TRAM1 slot out the D-sub connector on the back of the card. For what purpose? For this we have to look at the other modifications.

Porcupine or hedgehog? Either way, not as cute as the real thing.

So next we have the two green wires, connecting bits of one TRAM0 header to the other. Looking into the documentation, it appears that the wires essentially bridge the PC configuration link out to the TRAM1 slot.

So bastard green wires connect PC to TRAM1 and the hedgehog connects TRAM1 to the outside world via the connector on the back of the card. What then, could be on that module in the TRAM1 slot? I had a suspicion, but needed to confirm.

Most decidedly not a transputer module.

So those little ICs onboard are an RS-422 receiver and driver, making that module an RS-422 transceiver. At which point it all becomes clear, and my suspicions are confirmed.

RS-422 is a differential signalling protocol that basically allows for communications up to 10Mb/s (the same speed as the INMOS transputer links) up to 1500 meters. Remember when I said that Transtech made industrial controls? If you're in an industrial environment, you have a lot of stuff like motor drivers and sensors hooked up to those transputers. All that stuff wouldn't fit into a PC case with your B008 knockoff, so you put it all (including the transputers themselves) in an external enclosure. Except you now need a way to talk to your INMOS gear from the PC, and RS-422 seems like the perfect signalling method to carry the message.

So what Transtech needed was a card that converted INMOS links to RS-422. They saw a way to modify their standard TMB08 card to bridge the PC link through the RS-422 module out to the rear connector, and voila. They added weirdo module, porcupine thing, and bastard green wires to get the job done. Fast forward many years, random guy buys card on eBay expecting it to be a normal TMB08, except it's not.

So in order for me to get this thing to run like a REAL fake B008, it's necessary to reverse their modifications. Out comes the module, off come the green wires, and the the porcupine socket is dequilled. I don't have a real C004 to go in that socket, but that's ok because I'm only using 2 TRAMs and some of the links are hardwired by default.

I put the card back into the 5150, booted it up, and...

TRANSPUTING. FOR REAL.

The ispy8 command there shows the TRAMs onboard. At this point I only had one of my TRAMs in the socket, though it's showing two. The other transputer (T16-20) is actually a small one soldered onto the board whose job is boot the other transputers. Confusing, I know. What's really fortunate is that Transtech somehow left that transputer on the board, as it wasn't required for their application as an INMOS link adapter to RS-422 card. Interestingly enough, another TMB08 on eBay looks to have been modified for the same purpose and is actually missing that transputer chip. Guess they got wise after awhile?

Of course, also shown is the output of my code, finally running on a real-deal transputer.

Next time, I will probably detail some of the design for the Panaplex and VFD display boards. Or maybe casting new legends for space buttons. Or maybe researching S100 computers to build the Soviet 8080. So much to do!

Discussions

Keith wrote 05/13/2018 at 23:14 point

How much would one expect to pay for a B008 board, if they were available? I can't see any for sale on eBay, and transputers and tram module themselves are not cheap either. How did you obtain yours?

  Are you sure? yes | no

greenaum wrote 08/20/2017 at 00:10 point

Aw, man! Transputers are great! I remember reading about them as a young'n, in some Atari ST magazine. ST's were one of the host platforms, and ISTR the whole Atari world getting very excited about turning their desktop / game machine into a supercomputer.

Now you REALLY need more TRAMs! I don't care how much maths you have to do! You just need lots of them! Having 8 or 16 or 128 of them, a beasty desktop supercomputer from, what, 1988? It's just such a brilliant technology, and a crime that it failed. I guess that's because the supercomputer market is very high-end and fickle, and nobody could think of a use for supercomputers for the masses. It's only a few years after all since PCs shipped with multiple CPU cores. Apart from servers that is.

And yes putting them in an Apple II, I love it! It's just RIGHT, somehow.

Nothing really useful to tell you here. Just some adulation for the hardware. Stand to one side, please, you're getting in the way of my adulating.

  Are you sure? yes | no