Home | AVR | FPGA | M680x | Zilog Z8 | Zilog Z80 | Hitachi SH | Transputer | Linux | DOS

 

Jump back to front page  Jump to Download Site Map

 

 

The Transputer is a microprocessor designed to easily connect to other Transputer's. That way large arrays of Transputer's could be constructed that would allow algorithms to execute in parallel.

The Transputer is also a very good embedded controller, although not advertised that way, did provide features that other embedded micro-controllers of the day did not. These programs exploit that later application of the Transputer.

These programs, although written for an embedded controller, will run on an INMOS "B004" Transputer PC plug-n card with some minor modifications.

All original source code supplied here is covered by the GNU General Public License (GPL)  distribution agreement.

All programs are supplied with source code and are written in standard ANSI "C".

 

 

SOFTWARE

DOWNLOADS

TBIOS Library

TBIOS libraries
(Library only)

Click here to download

(38KB zip file)

This library contains a suite of functions to manage  various features of each embedded Transputer board. Each board contains a series of hardware that does not normally exist on standard Transputer modules. Therefore an additional library is needed.

All libraries have been written in 'C' and compiled using the INMOS (STMicroelectronics) compiler - D7314(a)

The library contains modules for both the T4xx and T8xx series Transputer's. When linking specify the "/T5" or "/T9" switch to indicate which CPU target it is compiling for. The linker will find the appropriate module from this library.

All code is written in 'C' and compiled using the compiler
 
D7314(a).

TBIOS Source code

TBIOS libraries
('C' Source code)

Click here to download
(141KB zip file)
This is the source code to the TBIOS.

All code is written in 'C' and compiled using the compiler
 
D7314(a).

Standard Hello World example (1) A simple example of how to use the TBIOS library
(All files)
Click here to download
(13KB zip file)
The archive used in this example holds all the files you would need to build a simple "Hello world" program.

It provides a simple idea of how the TBIOS library is initialised and used to achieve a functional result.

Read the "readme" file included in the download archive for directions of what will happen when the program is run and how to run it.

Please note that the resultant executable will not run on a standard Transputer card (eg B004, B008) because of the additional hardware expectation and will cause undefined lockups.

All code is written in 'C' and compiled using the compiler
D7314(a)

Feature rich Hello World example (2) An example that uses more complicated functions of the TBIOS library
(All files and TBIOS library included)
Click here to download
(73K zip file)
The archive contains all the files needed to recompile an example file to use most features of the target boards. - demonstrating how to read the local time, use the UART's. initialise the SCSI port and send data back to the ISERVER client.

Also included are TBIOS hardware drivers and all its make files.

Check the README.TXT file in the directory "hello" for further details about the package and how to drive it.

Read the "readme" file included in the download archive for directions of what will happen when the program is run and how to run it.

Please note that the resultant executable will not run on a standard Transputer card (eg B004, B008) because of the additional hardware expectation and will cause undefined lockups.

All code is written in 'C' and compiled using the compiler
 
D7314(a)

QIX video demo QIX demonstrates Video calls through TBIOS
(All files and TBIOS library included)
Click here to download
(80KB zip file)
A QIX is a list of coloured lines that follow each other randomly around a video screen buffer. The "lead line" determines where all the others will follow too, and its two end points actually bounce all over the screen with no direct relationship.

The QIX was best known in the Video Arcade game "Qix" where the "bad guy" was a QIX that, when it touch your man, would end the attempt to box in the QIX.

To demonstrate some of the features of the video circuit connected to the Transputer array a simple QIX animation program has been written for it. It also demonstrates the use of other parts of the system via TBIOS calls to join together a larger more complex operation.

If your not aware, the program uses graphic library calls (TBIOS calls) to draw the QIX to the screen. If it is compiled to run on another platform then these calls need to be adjusted to suit the target platform.

Read the "readme" file included in the download archive for directions of what will happen when the program is run and how to run it.

Please note that the resultant executable will not run on a standard Transputer card (eg B004, B008) because of the additional hardware expectation and will cause undefined lockups.

All code is written in 'C' and compiled using the compiler
 
D7314(a)

EYEPC

EYEPC command driven system probe
(All files and TBIOS library included)

Click here to download
(120KB zip file)
This program is design to run on a Transputer that maintains a standard RS232 UART such as those that TBIOS is designed to run on.

Its purpose is to run a program that allows the user to enter commands to allow probing of the system. These are commands such as memory dumps, disassembly of CPU instructions, current RTC time and data, and memory modification.

These sort of programs are useful to find out why certain things don't work in new systems or proving newly connected hardware. They are not the solution but they do help. The program code that makes up the probe is portable enough to apply to other micro-processor targets. So this code can be reused elsewhere.

There will be five instances of the probe program run along with a few other threads. These will demonstrate the multitasking features of the Transputer. Currently the list of running programs will be:

Process #0 EYEPC probe #0 (iserver)
Process #1 EYEPC probe #1 (ttyS0)
Process #2 EYEPC probe #2 (ttyS1)
Process #3 EYEPC probe #3 (ttyS2)
Process #4 EYEPC probe #4 (ttyS3)
Process #5 QIX
Process #6 LED flasher
Process #7 Root process

Read the "readme" file included in the download archive for directions of what will happen when the program is run and how to run it.

Please note that the resultant executable will not run on a standard Transputer card (eg B004, B008) because of the additional hardware expectation and will cause undefined lockups.

All code is written in 'C' and compiled using the compiler
 
D7314(a)

EYEPC (Networked)
Version 0.0.2 (14-June-2001)

EYEPC Command Line Interface with TCP-IP network support
(All files and TBIOS library included)

 
Download Source Code
(203KB Zip file)

 

This is it! A Transputer with TCP-IP network support. Currently the networking library supports: Router, SLIP, ARP, IP, ICMP, TCP and a Ethernet stub file. And it can handle two types of network interface (Point-to-point and Ethernet) with as many interfaces loaded as required.

The routing code has been improved to manage multiple network interfaces and cleaner configuration management functions for routes to each interface.

EYEPC CLI has been extended to support a few extra network related commands to allow the user to modify or examine TCP-IP network settings. These would be commands such as: "netstat", "route", "ifconfig", and "ping".

TCP-IP source has been supplied in the download ZIP file along with all the other libraries that make up this solution. Therefore when you unpack this archive you get the whole source tree to this application.

Note: This network library is also used on the SHBIOS embedded kernel development project.

There will be four instances of the probe program run along with a few other threads. These will demonstrate the multitasking features of the Transputer. Currently the list of running programs will be:

Process #0 EYEPC probe #0 (iserver)
Process #2 EYEPC probe #2 (ttyS1)
Process #3 EYEPC probe #3 (ttyS2)
Process #4 EYEPC probe #4 (ttyS3)
Process #5 QIX
Process #6 LED flasher
Process #7 Root process
Process #8 IP packet router

To start things off there have been three network interfaces loaded and configured to accept IP routed packets. When the command "route" is typed these interfaces will show:

127.x.x.x Local loop back
192.168.1.x SLIP interface
192.168.2.x Ethernet interface

This network protocol stack has been written from ground up with embedded controller applications as the goal. Therefore it is lean on memory and CPU time. It also watches its own performance and cleans up old idle connections regularly.

As yet there is no BSD style "sockets" API so writing program code to control it will be a little more basic than would be expected otherwise. In my opinion though, it is pretty clean and easy to use.

Read the "readme" file included in the download archive for directions of what will happen when the program is run and how to run it.

Please note that the resultant executable will not run on a standard Transputer card (eg B004, B008) because of the additional hardware expectation and will cause undefined lockups.

All code is written in 'C' and compiled using the compiler
D7314(a)

TIGA(tm) Library Stub

TIGA graphics library stub file

Click here to download
(7KB zip file)
Way back when things were starting for the IBM-PC Texas Instruments produced a Video Graphics Accelerator card for the PC based around the TMS34010 GSP and subsequently the TMS34020 GSP. The CPU was designed for graphics work and produced very high speed graphic operations - for the day.

Packaged with the card was also a driver called TIGA - which I believe is an acronym for Texas Instruments Graphics Accelerator. Windows(tm) took this software API on and used it to form part of their graphics API for Windows3.x

The library of software for the CPU was also made available to companies and the like to use in their products so a lot of products were built around this API.

There is no point in producing that software here, since this is a Transputer page and the Graphics circuit attached to the target is unknown and varying across different platforms. However, the API is relevant and libraries such as the 3D library used the TIGA API to draw its results to the screen.

So I have produced a stub source file that has all the API calls with no constituent code. The core code can be added to suit the platform specific video circuit later.

3D Library

Wire frame and Polygon drawing library for three dimensional virtual worlds.

Click here to download
(73KB zip file)
Ever wanted to move through a virtual world inside your computer that you made. You can do it with this library. It is a full set of functions that performs all the relevant computations needed to bring a list of polygon vertices into real-time and 3D realization.

The library is based on full floating point calculations rather than fixed point types removing the "small world" restrictions demanded by fixed point libraries. However, it needs a fast floating point accelerator to ensure good performance levels.

The library uses a small number of well known graphics calls to interface to the systems video controller. That part you will have to add. The missing video calls comply to the TIGA graphics library calling convention which is closely related to the older Windows (tm) graphics calls.

The library has been compiled and run successfully on Transputer and Motorola 68000 based computer systems.

Please note that the resultant executable will not run on a standard Transputer card (eg B004, B008) because of the additional hardware expectation and will cause undefined lockups.

All code is written in 'C' and compiled using the compiler
D7314(a).

3D CUBE Rotating 3D wireframe cube
Click here to download
(74KB zip file)
To demonstrate the 3D wire frame drawing libraries this small demonstration program has been created. It requires the TBIOS library be present and linked in with the final executable.

If your not aware, the program uses graphic library calls (TBIOS calls) to draw the wire frame object to the screen. If it is compiled to run on another platform then these calls need to be adjusted to suit the target platform.

The output from the program will be a 3D cube that rotates about its origin. Also a timer is used to report the actual time taken to calculate and draw each frame. Video double buffer controls have been disabled.

Please note that the resultant executable will not run on a standard Transputer card (eg B004, B008) because of the additional hardware expectation and will cause undefined lockups.

All code is written in 'C' and compiled using the compiler
D7314(a).
Code compiled for the T805 Transputer and uses its Floating Point hardware.

3L 'C' Compiler

3L 'C' Compiler for the Transputer
MSDOS executable.
(Courtesy 3L Ltd.)

Click here to download
(670KB zip file)
3L LTD. have allow their 'C' compiler to be distributed on the net. Therefore it makes life a little easier to generate and compiler programs in 'C' for the Transputer.

This compiler will run on an IBM-pc with MSDOS installed.

bwBASIC BASIC interpreter compiled for the Transputer
(Original source Courtesy Ted A. Campbell)
Click here to download
(237KB zip file)
This BASIC interpreter will run quite well on an INMOS B004 Transputer board, or equivalent. It uses iserver as its link to the hosts hard disk drives and can load, and save, BASIC programs to it.

The source has been compiled for the Transputer target board using the INMOS D7314A 'C' compiler with the executable "bwbasic.btl" contained in the downloadable archive.

The interpreter performs as one of these programs should and appears to be quite stable. A user document is also bundled with the package.

Please note that the resultant executable will not run on a standard Transputer card (eg B004, B008) because of the additional hardware expectation and will cause undefined lockups. You can strip out the hardware initialisation calls effectively disabling them.

All code is written in 'C' and compiled using the compiler
D7314(a).

 

HARDWARE

DOWNLOADS

OS-Link Adapter

C011, and C012 Link Adapter Replacement

A Link Adapter is essentially a fast UART (10Mbps or 20Mbps) with flow control built in and all this happens over a two-wire circuit.

STMicroelectronics (tm) obsoleted their IMSC011 & IMSC012 Link Adapter chips around the end of 1998. This caused a problem for people still using the part. And to make matters worse, the ST20TP4 microprocessor, still in production, supports a similar UART.

The INMOS (tm) UART was a neat and tidy solution in the way it achieved flow control over two wires. So rather than letting it fade into space I figured it should be kept alive a little longer by coding the UART into an FPGA synthesis-able model.

There are two versions of the UART hosted on this web site.

1 Complete CPLD design of the B004 ISA Transputer card inerface section, including the link adapter logic.
2 Standalone logic symbol suitable for use by Altera's "Baseline" compilation tools.
Both designs will easily fit into a 128 macro cell CPLD such as the  EPM7128EQS-100.

Or you could build your own FPGA Transputer and use the UART as a fundamental component to the "Transputer Links" interfaces.

Pin-outs for the ISA solution will allow the compiler to decide, or you can override it with static settings.

The UART complies as close as possible to the original Link Adapter datasheets. If you need programming information then that is a good place to start.

Its master clock also changes from 5MHz to a more fundamental setting since it is difficult to synthesis an accurate clock multiplier in FPGA:

10MHz 5Mbps
20MHz 10Mbps
40MHz 20Mbps

 

Other Links and pointers
Transputer Emulator T400 Transputer Emulator.
Transputer Home Page Ram Meenakshisundaram's Transputer Home Page

 

This page last updated: 07-Feb-03 Au EST
Copyright © 2001 C.A.T.E.