This directory cointains the sources for Iserver, modified to talk to
PCSERVER. Under FreeBSD, there is also support for local Transputer
board (accessible as /dev/bqu0 and such)

These sources have been kindly supplied by Inmos, and
modified by Luigi Rizzo (luigi@iet.unipi.it), in order to communicate
with a Transputer through a TCP connection instead of a link adapter.
This version of Iserver compiles on the following machines/operating
systems:

make mips	DECstation/Ultrix4.1
make FreeBSD	FreeBSD, local device driver and PCserver
make iris	SGI IRIS
make sparc	SPARCStation/SunOS4.1
make vax	microVAX3500/Ultrix2.2.1

make next	NeXT

The only version that has been thoroughly tested is the 'mips' one.
Other versions might have troubles in the terminal-handling routines,
because of the thousands of different TTY drivers which are present on
Unix (and which I don't know very well).

The standard iserver options apply. However, the -SL option has
been changed as follows:

	-SL hostname

where hostname is the host where PCSERVER is running. An optional
digit can be prepended to the name to specify a particular
Transputer on that host (starting with 0). As an example,
	iserver -SL myhost
	iserver -SL 0myhost
both refer to the same link.

In addition to the iserver sources, I supply a couple of example driver
programs which invoke iserver for the Inmos C compiler and the old TDS3:
they are called "icc" and "tds3". They are included for reference only,
there still might be plenty of bugs in them (especially in 'tds3').

Please send bug reports to "luigi@iet.unipi.it"

==== Implementation notes ====
Changes to the original sources (1.41) are limited. They are:

- some files have been indented with a different style;
- the link driver is now pcs_link.c instead of the standard driver;
- hostc.c has been modified to insure a correct handling of the terminal
  on the new machines. This work is far from being perfect or correct,
  due to the intricacies of terminal handling on Unix and my ignorance.
  Nevertheless, I can use isim and idebug quite satisfactorily on the
  Decstation
- The original macro SUN has been renamed to UNIX as it happens that
  most of SUN-specific stuff also applies to other Unix machines.
- For performance reasons, the BOOT code has been changed to go faster.
- DUMPing the transputer memory is still slow.

==== Notes on PCSERVER ====

PCSERVER is a program that allows MSDOS-hosted Transputers to be
completely controlled from a Unix machine. The Unix system can
access the Transputer link and control lines through a TCP
port. Modified versions of afserver and iserver are available
that talk to PCSERVER.

PCSERVER has been developed by Luigi Rizzo (luigi@iet.unipi.it),
Dipartimento di Ingegneria dell'Informazione: Informatica,
Elettronica e delle Telecomunicazioni (IET), Universita' di Pisa,
via Diotisalvi 2, 56126 PISA (ITALY)
tel (+39) 50 568533 fax (+39) 50 568522

Acknowledgements:

We would like to thank:
- Brad Banko (NIH Center for Parallel Computation for Molecular
  Dynamics, UIUC) for testing the modified iserver.
- Inmos for allowing us to use the iserver and
  afserver sources, and allowing us to redistribute the modified code.

--------------------------

Notes on FreeBSD

"loc_b004link.c" was supplied to comunicate directly with a local `b004`
board using `bqu` device driver, in a pc running bsd386 O.S.:

TRANSPUTER env. variable identifies the device driver to use, default
is "/dev/bqu0".


"iserver.c", "iserver.h", "serverc.c", have been modified to supply a new
iserver service suitable for transputer-host link speed evaluation.
It permits to transfer a great amount of bytes from/to the host (in 2048 bytes
blocks) without additional messeges.
New Operation Tags:

#define SP_SPEED_DEB_IN  70
#define SP_SPEED_DEB_OUT 71

See 'SpSpeedDebIn()' and 'SpSpeedDebOut()' in "serverc.c" for details.

Files "test_speed_rd.occ" and "test_speed_wr.occ" have been supplied as
examples of use.

To have this changes compile using -DSPEED_DEB.

-------XXXXXXXXXX-------

"pcs_and_loc_link.c", including "pcs_and_loc_link.h", incorporate pcserver
and local device feautures. To compile type:

Todo:

	improve console I/O support
	improve analyse support
	pcs_link still does some unnecessary copy of data.
	improve type checking
