Development of a transputer ISA board I developed software for transputers in the years 1993-1996. A few months ago, I wrote some articles about my experiences, and most recently I developed a transputer emulator in Javascript After my transputer emulator in Javascript was working, I got curious about running my software on a PC computer. I have several PC motherboards with ISA connectors, and I decided to build a card compatible with the Inmos B004 (a single board to test transputer processors). Out of curiosity, I decided for compatibility because I wanted to run the Inmos Occam compiler. A quick look in eBay and I got two transputer boards (TRAMs) for $25 each one. Both based on the Inmos T805 transputer running at 30 mhz. I got the port numbers for the board from Geekdot , and designed a decoder schematic based on TTL circuits. My first schematic for the board. My first schematic for the board. The TRAM board contains the transputer and its memory. It is connected to the ISA board with an Inmos C011 chip that serializes and deserializes the communication link. This chip is accessed via the ports 0150H-0153H. My ISA board also provides a 5 mhz oscillator, two flip-flops to reset and analyse the transputer, and a tri-state gate to read the error status. Ports of an Inmos B004 board Offset Field 0150H Read Receive data 0151H Write Send data 0152H Read Receive status 0153H Read Send status 0160H Write Latch bit 0 = Direct to Reset 0161H Write Latch bit 0 = Direct to Analyse 0160H Read Bit 0 = Direct from notError I required a single ISA board drilled for homebrew development. I was going to buy one board in eBay for $35 dollars shipped, but I considered it was way too expensive. After some searching, I found the PCBWay showcase, where this same board was available for sale. And better, I could get 5 boards of 10x10cm. for $25 dollars shipped. The ISA board for homebrewing. The ISA board for homebrewing. I got the board and I started to put sockets for the chips. It took me a while to get the oscillator working. Once it was generating the 5 mhz. clock, I wired everything step-by-step, testing as possible. I was so happy doing this, that I never noticed I built the components on the solder side. My first insertion on a PC motherboard killed two 74LS08 when I feed 12V+ through the chips, until I realized my board was backwards. My board also has a lot of noise produced by the wiring. After adding some decoupling capacitors, I was able to run my Pascal compiler and ray tracing software from 1993 The transputer board working with the ray tracer. Notice my wrong mounting side, and that I'm using an AMD K5 motherboard. The transputer board working with the ray tracer. Notice my wrong mounting side, and that I'm using an AMD K5 motherboard. The ISA board I've built. The ISA board I've built. Going the PCB route A few weeks later, I decided to learn a little about KiCAD 9, so I installed it on my Macbook Air. Having used OrCAD many years ago, and my own programs that I developed later (I need to write more about it), I recognized most of the tools, and fortunately for this article, KiCAD comes with a predesigned ISA bus component. Once I put the ISA bus component on the sheet, I wondered if there was a 74LS245 in the library, and yes, so I started adding the components. I wired the pins. I also used the component designer to create the Inmos C011 chip, and the TRAM pinout. In less than two hours I had a schematic for my transputer board. It looked good, and from some tutorials in Youtube I heard about a very easy path from schematic to printed circuit board, so I exported the netlist, solved some bugs, and then invoked the PCB program. I discovered that I was missing the footprint for the TRAM. With the footprint designed, the components appeared almost magically in the workspace. And you only had to click and drag and drop the components to their place! This was heaven! I didn't found an autorouter, so I went ahead to draw some lines. I had worked five hours already, and I was pretty bored because I had to redraw line after line to make space in the board, or basically every time some line crossed the wrong place and it blocked other lines. I had heard of an autorouter for KiCAD, but it required to install Java (I remember in the 2010s I avoided as possible the slow and weird Oracle's installer), but I couldn't find a way to tell KiCAD I had downloaded an autorouter. It happens KiCAD has gone through so many iterations that there are tutorials since KiCAD 6. I was reading the information for the wrong version. In KiCAD 9 you only need to open the complements window from the initial startup window, select Freerouter, and you need also to install a more compact Java version called Eclipse Temurin. The autorouter didn't worked in the first attempt, because my board outline was open somehow. After some work I was able to make the outline in a single polygon. I made sure the design rules check (DRC) were correct, with some further work going back to the schematic to tag the unused lines, and correct the voltage lines. I clicked the autorouting icon, and Freerouter appeared. I watched a countdown of 5 seconds, and then my board appeared, and ten-seconds later it was routed!!! It was mind-numbing!!! My memories went through the mist of times, when the only software available was Ultiboard and it was priced at $5,000 USD, later Orcad PCB with a slow and terrible autorouter, and now I had my board completed thanks to the effort of countless people. Also it is pretty amazing to click a menu option and get a 3D view of the board. The 3D view of my first transputer PCB. The 3D view of my first transputer PCB. PCBWay KiCAD exported the Gerber and Excellon files. In the old times, there was a Gerber plotter that made a 1:1 version of your board for the negative processing, and the file format (with improvements) is still used in these modern times. It looks like I'm going fast, but it is only because I knew most of this beforehand. What I didn't expected was that dropping the Gerber files zipped into the PCBWay webpage basically gets you an immediate quote, my card was charged, and ten minutes later the PCB was being manufactured in Shenzhen, China. That's the power of Internet unleashed. The next day, I was watching again my circuit board, and I discovered that because my impulsiveness, all the power lines were 7 mils wide. Face palm, the transputer needs 1 amper of power to work, luckily, 7 mils is enough for 1 amper. However, you never should make lines so thin, you need tolerance, so I found the design settings, and I changed the voltage lines to be wider for the next revision. One week later, I got my first PCBs, and the first thing I noticed was that some component references were missing. My bad, I never noticed that KiCAD shows two labels on the board, and I believed both were to be printed, but instead one is for your local reference, and the other one is for your silkscreen. Furthermore, my first build step with the 5 mhz oscillator didn't produced any signal. It took me like three hours to discover that I switched inadvertently the places of the crystal and the capacitor in the schematics. Fortunately, I could swap the components on the board. In the last building step, I discovered the Reset and Analyse pins were inverted. I was mystified as the schematic looked correct. It wasn't until I made a really big zoom that I saw the bug (KiCAD shines here, as it shows the pin number inside the component pad) I had designed incorrectly my footprint, never noticed I placed first the pad number 10, and then the pad number 9, but these were assigned numbers sequentially. So the pins 9 and 10 of the TRAM were inverted (Reset and Analyse), and the autorouter just followed it. I scratched the lines on the board, and put wires, and the board worked just fine! The revisions of my transputer boards. The revisions of my transputer boards. More mistakes I wasn't satisfied with this. Another thing I forgot is that because I was now using a PCB board, the signal noise-ratio was greatly diminished, so I could use the 20 megabits speed of the serializer. However, as I connected the configuration lines directly to ground, it wasn't easy to separate them. I modified the schematic, and added two jumpers. One for selecting the speed, and another for the port. Because I wanted to put two transputers boards on my PC, just for the sake of doing it and watching some parallel work, although this wouldn't be compatible with the Inmos software. I revised all carefully, I ran all the DRC tests, and sent it to PCBWay to get the finished product. This time in red color finish. When I received the PCB, I was astonished to watch how the bare PCB stalled the PC motherboard. Turns out that I moved a component on the schematic, and somehow KiCAD decided to add a connection point in a line to make the definitive crossover between the data line D0 and the address line A4. The DRC didn't recognize the mistake because D0 is tri-state, so it enters into the realm of possibilities having D0 connected to A4. I was so sad because the D0 line is used in several places, but I was pretty lucky to find the autorouter leaved the lines in the clear! I only needed to cut the lines in two places, and add a wire. The board was working! I cut the lines in all the remaining boards in case someday I build more. But I wasn't satisfied, so I sent again the corrected board to PCBway. This time ordered it in blue color, and with some components adjusted for better look. The final revision of the schematic. The final revision of the schematic. The blue board One week later I had the PCB in my hands, I built it in less than a hour, and started testing it. Everything worked perfectly, even a Mandelbrot demo I got from Geekdot. It felt good. So I decided, at last, to test the original Inmos Occam compiler. After a cumbersome installation, setting a ton of devices and paths (I just realized how many years have passed since I edited CONFIG.SYS and AUTOEXEC.BAT files), I managed to run the compiler, and it said "Transputer error set". WTF? The only thing that could have happened is that it requires an unmodified error flag. I used a 74LS368 that inverts the output, because I decided that if you set Reset and Analyse to 1, then probably you also expect a one as error. I desoldered the chip, and I was about to solder the 74LS367, when I decided to disassemble the Inmos ISERVER.EXE file to make sure I was doing the correct thing. I found easily the code that set the 0150H port as default, and it derived several port numbers. I found the read status port in the first try, and then the code for reading the bit. The program extracted the least-significant bit (this confirms the values in D1-D7 aren't important), and complemented it. This means it expected the unmodified NotError bit. With this confidence vote, I soldered the only 74367 I had at hand, and the Occam compiler worked! And by the way, the 74367 and the 74LS368 have compatible pinouts. I made the change in the schematic, and the silk-screen in the PCB for the release. The final revision of the PCB. The final revision of the PCB. Schematics and PCB board The schematics in PDF and KiCAD format are released at https://github.com/nanochess/transputer . I preferred to put the PCB board only in Gerber format along the drill files. You only need to compress the files in ZIP format for PCBway. Many people have suggested me to order the PCB with gold plated connector, along a beveled edge. This is at your option. Currently, I have several extra PCB, you can get a board built and tested for $74 USD, shipping included. Good while supplies last. You need to provide your own TRAM board (the one with the transputer), and the Inmos C011 chip. Please write me an email if you are interested. comm.com program to run my Pascal compiler or the ray tracer, and the comm2.com program to run my self-contained small operating system booting from a 1.44mb floppy disk. I still need to write another communications program for my full-fledged operating system. Finally, the support software is available in the same repository. It contains theprogram to run my Pascal compiler or the ray tracer, and theprogram to run my self-contained small operating system booting from a 1.44mb floppy disk. I still need to write another communications program for my full-fledged operating system. Did you like this article? Invite me a coffee on ko-fi! Related links Last modified: Jul/03/2025