configure ttyserv in helios 1.31 for transputer

configure ttyserv in helios 1.31 for transputer

Post by Mike » Fri, 28 Jan 2005 07:00:25

Who knows how to set the ttyserv/tserial.d combination on 19200 or even
38400 baud. 9600 works but I've no idea to speed it up.

I'm starting ttyserv with:

run -e /helios/lib/ttyserv ttyserv -l /rs232/default -s -t vt100
waitfor /tty.0
console /tty.0 User1
run -e /helios/bin/login login

from initrc.

Thanks, Mike

configure ttyserv in helios 1.31 for transputer

Post by Erik Baiga » Sat, 29 Jan 2005 04:46:52

Only because I am beeing curious: What machine are you running
Helios on? I use helios from time to time on a PowerXplorer and
there are no serial ports one can use (at least not on the
box running helios)?




configure ttyserv in helios 1.31 for transputer

Post by Mike » Sat, 29 Jan 2005 05:14:29

It's an old Pentium 166er IBM-Box with a self created PCI-TRAM-Adapter
and currently one IMSB427. I'm using the Helios-PC-Server (DOS Version,
Build 394) under Windows NT 4.0 with a B004 PhysicalDeviceDriver and a
VirtualDeviceDriver (both self written). Between this IBM-Box and a
second (more powerfully) Development-PC is a serial cable to connect
TTYSERV (over Helios-PC-Server-Serial /rs232/default) with the
HyperTerminal Application (VT100) under Windows XP.



configure ttyserv in helios 1.31 for transputer

Post by Erik Baiga » Sun, 30 Jan 2005 01:46:26

Hey, that's an interesting project. Do you have got an
application for this or is it enthusiasm?

OK - as mentioned I have absolutely no experience with something
from the Solaris based server using the BBK-S4 for communication. But
I suspect that the DOS-based Helios-server might use the RS232C
routines residing in the BIOS of your Pentium166 and these routines,
as I hopefully remember right, do not allow to use higher baudrates.
you have to compile the server (do you have got the source for this
of software - would be interesting for the community I think!) using
routines "talking" directly to the 8250 or 1650 serial chip and thus
beeing able to communicate faster...

Best regards,


configure ttyserv in helios 1.31 for transputer

Post by Mike » Sun, 30 Jan 2005 03:22:40

There are many reasons, but definitely no real application.
FPGA's and Transputers has been a hobby-horse during my time at the
university. That's long ago. After developing software for seven years,
the time has come to checkup my hardeware roots.

So you can think about it, as a field-of-knowledge-midlife-crisis ;-)

There are a loot of hooks and tricks to run an unmodified polling
dos-server in a protected-mode environment, so that the system is still
useable ...
It's possible to intercept also this calls and spoof, but I'm not
really happy to put more work around that dos-server.
If there is no Helios configuration solution, I'll stay at 9600 baud
and will have a Win32 native server solution (with spoofing) in May
2008 ;-)))))


configure ttyserv in helios 1.31 for transputer

Post by Erik Baiga » Tue, 01 Feb 2005 03:49:00

Searching in the binaries of my Helios installation the numbers
9600, 4800, 19200 and 38400 only appear in rlogind and rlogin (there
they are used for the pseudo-terminals). Thus I suppose you
cannot change the baudrate from within Helios, you have to
do this in the server you are using...

configure ttyserv in helios 1.31 for transputer

Post by Mike » Wed, 16 Feb 2005 05:09:17

y S.O.L.U.T.I.O.N

1.) Copy the sourcecode from appendix A to setspeed.c
2.) Compile it with: c -O -T4 setspeed.c -o setspeed
3.) Copy setspeed to /helios/bin
4.) Modify your initrc:
run -e /helios/lib/ttyserv ttyserv -l /rs232/default -s -t vt100
waitfor /tty.0
=> run -e /helios/bin/setspeed setspeed 14 /rs232/default
console /tty.0 User1
run -e /helios/bin/login login
console /window console
run -e /helios/bin/login login
5.) Change the first parameter from setspeed as described in appendix B
6.) Enjoy 19200 or even more FullPowerSpeed ;-)

My DOS-IO-Server don't like more than 19200 :-(



-- --
-- H E L I O S --
-- ----------- --
-- --
-- Copyright (C) 2005, Michael BR"USTLE, Vienna --
-- All Rights Reserved. --
-- --
-- setspeed.c --
-- --
-- Simple binary to set input and output speed. --
-- --
-- Author: MBV 18.Feb.2005 --
-- --

#include <helios.h>
#include <attrib.h>
#include <stdio.h>
#include <stdlib.h>

int main( int argc, char* argv[] ) {

int rc = EXIT_FAILURE;

char *name;
WORD speed;

Object *port = Null( Object );
Stream *result = Null( Stream );

speed = ( argc <= 1 ) ? RS232_B9600 : atoi( argv[ 1 ] );
name = ( argc <= 2 ) ? "/rs232/default" : argv[ 2 ];

if (( port = Locate( Null( Object ), name )) == Null( Object )) {

fprintf( stderr, "ERROR: Locate( %s ) failed\n"
, name );

} else if (( result = Open( port, Null( char ), O_ReadWrite )) ==
Null( Stream )) {

fprintf( stderr, "ERROR: Open( %s ) failed. result2:%u\n"
, port->Name
, Result2( port ));

} else {

Attributes attr;

GetAttributes( result, &attr );
SetInputSpeed( &attr, speed );
SetOutputSpeed( &attr, speed );
SetAttributes( result, &attr );


} /* endif */

if ( result != Null( Stream )) Close( result );
if ( port != Null( Object )) Close( port );

return rc;


#define RS232_B0 0
#define RS232_B50 1
#define RS232_B75 2
#define RS232_B110 3
#define RS232_B134 4
#define RS232_B150 5
#define RS232_B200 6
#define RS232_B300 7
#define RS232_B600 8
#define RS232_B1200 9
#define RS232_B1800 10
#define RS232_B2400 11
#define RS232_B4800 12
#define RS232_B9600 13
#define RS232_B1920

configure ttyserv in helios 1.31 for transputer

Post by Erik Baiga » Thu, 31 Mar 2005 19:09:54

Thanks Nike for you posting the Solution!

I set up my Helios installation last weekend to try out
your code on my box (Entry-Nodes of Parsytec PowerXplorer
connected to a Sun-IPX via a BBK-S4 board. Normally this
configuration runs a version of Parix1.3.1 (Parallel UNIX)).
I noticed that my solaris IO-Server seems to lack support
for the serial ports on the host side. I.e. I was able to
compile your code (obviously since the Helios is identical)
but I could not start a ttyserv at all. :-(

Thanks again and happy transputing,


configure ttyserv in helios 1.31 for transputer

Post by Mike » Fri, 01 Apr 2005 03:34:39

Hi Erik!

I suppost, that you have a dumb terminal attached to the Sun.

As far as I know .. you don't need ttyserv. From "The HELIOS parallel
operating system" it has something to do with the TERM environment
variable before the I/O server is run (8.6.7 The windowing interface)

How many sites have you on your BBK-S4 ... 4?

configure ttyserv in helios 1.31 for transputer

Post by Erik Baiga » Fri, 01 Apr 2005 05:04:09

No, I am working via ssh directly on the host. The idea
would be to use a vintage terminal attached to the sun via
a serial line and ttyserv.

Of course, I do not need it since I can work very nice
via the vt100 emulation of the solaris directly on the host -
but still: a vintage terminal would be more adequate ;-)

The BBK has four lemo type plugs and I have got
4 cables. So in theory I should be able to run
4 sessions on different machines in parallel.
My PowerXplorer allows to seperate the 2*2 matrix
of nodes into 1*2 + 1*2 and in this configuration
I already ran two different parix-jobs (povray)
on the box using two different links...

I have neither tried to run parix on one link
and helios on the other (wont work I think) or
two different helios sessions.

Hopefully this answered your question...

BTW: Do you have got any interesting Software
to run on the Helios-Platform? I do not have
got a graphics and so on - so flight simulator
is no option :-(

configure ttyserv in helios 1.31 for transputer

Post by Mike » Fri, 01 Apr 2005 23:03:38

Hi Erik!

That's what I mean. Change the TERM setting to your vintage terminal
before you start your io-server (hydra).
To use the vintage terminal and the ssh shell with the same
helios-instance will be a challange but possible.

It works. Don't tell me, that my old P166-PC NT4 Box can more than your
Sun-IPX ;-)

I'm sorry to say ... no


configure ttyserv in helios 1.31 for transputer

Post by Erik Baiga » Tue, 05 Apr 2005 15:22:30

I think we are talking about different things. Of course I can
log in to the sun via my serial terminal and than start helios
from there and get the desired "look and feel".

The modern way would be to ose the graphics of the sun
for advanced look-and-feel-style by setting TERM=sun and than
launching the server. In this case I get error messages since
my sun does not have got X installed...

And the third way would be not to have a login shell attached
to the serial terminal but let the IO-server and Helios's
login manage the terminal. This does apparently not work
for the sun-IO-Server. This way is, what I meant in the last

No problem at all if one uses the screen-program and
executes the server herein. You can than detach the
complete session and call it again from wherever you want.

It is due to a limitation of the access to the hardware.
E.g. I can sometimes start Jobs on the two partitions
of my PowerXplorer by using different links of the BBK-S4
and submitting commands like
px run -f0 1 1 hello.px
px run -f1 1 1 hello.px
simultaneously in different shells. This runs two parix
based jobs via two IO-Servers and ONE interface board. But
as stated it sometimes failes, too.

I was not able to launch a pvm based and a parix based
job in parallel (always timeout in transputer communication).
In this case the two IO-Servers run into trouble upon
accesing one interface board.

As well it is not possible to launch a helios IO server
in parallel with any of the above via one interface board.
And some time ago there was a thread in a group that it
is not possible to have two BBK-S4 in one workstation. (Was
a problem with shared memory if I remember right).

BTW the "helios for the sun" maunual says explicitly that
you need multiple link adapters to have more sessions in parallel
and not a link adapter with multiple links (like the BBK-S4).


Thanks a lot for the discussion and happy transputing,