|
Home | AVR | FPGA | M680x | Zilog Z8 | Zilog Z80 | Hitachi SH | Transputer | Linux | DOS |
![]() |
![]() |
![]() |
|
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
libraries |
|||||||||||||||||||||||||
|
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 |
||||||||||||||||||||||||
TBIOS
libraries |
|||||||||||||||||||||||||
|
This is
the source code to the TBIOS. All code is written in 'C' and
compiled using the compiler |
||||||||||||||||||||||||
| Standard Hello World example (1) | A simple example of how to use the TBIOS
library (All files) |
||||||||||||||||||||||||
|
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 |
||||||||||||||||||||||||
| Feature rich Hello World example (2) | An example that
uses more complicated functions of the TBIOS
library (All files and TBIOS library included) |
||||||||||||||||||||||||
|
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 |
||||||||||||||||||||||||
| QIX video demo | QIX
demonstrates Video calls through TBIOS (All files and TBIOS library included) |
||||||||||||||||||||||||
|
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 |
||||||||||||||||||||||||
EYEPC command driven system
probe |
|||||||||||||||||||||||||
|
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:
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 |
||||||||||||||||||||||||
|
EYEPC (Networked) |
EYEPC
Command Line Interface with TCP-IP network support |
||||||||||||||||||||||||
|
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:
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:
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 |
||||||||||||||||||||||||
TIGA graphics library stub 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. |
||||||||||||||||||||||||
Wire frame and Polygon drawing library for three dimensional virtual worlds. |
|||||||||||||||||||||||||
|
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 |
||||||||||||||||||||||||
| 3D CUBE | Rotating 3D wireframe cube | ||||||||||||||||||||||||
|
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 |
||||||||||||||||||||||||
3L 'C' Compiler for the
Transputer |
|||||||||||||||||||||||||
|
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) |
||||||||||||||||||||||||
|
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 |
HARDWARE |
DOWNLOADS |
|||||||||||||||||||
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.
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:
|
|||||||||||||||||||
| 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.