Networking

Alright, so we have a UNIX’ish OS running on our Transputer(s). After a while staring at the ‘network show’ command, hysterically giggling about soooo much computing power, you might think: Hey, what about real networking?

Yeah, you’re right, being a real man you should be able to telnet into your “Helios box”. And compared to other vintage OSes, it’s pretty easy.
The Helios installation you’re using is already set up for it. The documentation calls it the “Ethernet I” and “Ethernet II” package.

Obviously you’ll need a network interface card (NIC) plugged into your host machine. That NIC shouldn’t bee too recent, because you’ll need a ‘packet driver‘ for it. The packet driver standard was quite common in the DOS hey-days and crynwr.com still offers everything you need: Drivers, programmer reference (if you need ’em) etc..

We seem to be pretty lucky to have a Helios Version 1.31 because if I got the “Ethernet-I” documentation right, earlier versions were supporting just 2 NICs by defining ethertype WD8003 or DLINK in the host.con file. Bummer. But with a packet driver you can even use your high-end Intel 100mpbs PCI NIC.

So get the driver for your card and install it on your host. In my case it’s a 3COM 509 (aka Etherlink III), the best you can get for the ISA slot 😉 Installing the driver in DOS requires you to know some bits about your NIC: The used interrupt and the IO port. So my NIC uses IRQ10 and its port is at 0x300. To install the packet driver call it like this:

C:\> 3c5x9pd.com 0x60 10 0x300

That means: Use interupt vector 0x60 (that’s where applications hook into), IRQ 10 and Port 0x300, please. You’re done on the DOS side of things.

Initially, you need to tell Helios how to use the pc-ether driver. This step needs to be done only one time by booting into Helios entering

% gdi /helios/etc/devinfo.net /helios/etc/devinfo

and quit Helios again (by entering stopio or pressing Ctrl-shift-F9).
Before booting Helios again, make sure “ethernet” is uncommented in your host.con file. If you’re unsure what that is, go back to the second post of this how-to.

If that’s checked & done, go ahead an boot Helios entering “server“.
On the HeliosServer-display (Helios calls it “a window”) you should see a quick “/ether: Ethernet address xx:xx:xx:xx:xx” which is the MAC address of your NIC, before you’ll get to the login screen. So login and enter this command:

% /helios/lib/tcpip myHostname 192.168.1.42 -e pc-ether &

This loads the tcp/ip daemon with its parameters which are:

  • Your hostname – can be anything, be creative
  • Your IP – you should know an unused one (sorry, no DHCP)
  • The driver to be used – in this case the driver provided by the host PC

Don’t forget it to start it into the background (&) as this is a daemon running all the time.
Finally, now that we have the socket running, we need the internet protocol daemon to run. That’s very simple, just call

% /helios/lib/inetd &

and you’re done! So quick, let’s see if everything works! Use you old friend ping:

% ping 192.168.1.1
64 bytes from 192.168.1.1: icmp_seq=1 time=46. ms
64 bytes from 192.168.1.1: icmp_seq=2 time=8. ms
64 bytes from 192.168.1.1: icmp_seq=3 time=8. ms
^C

Hooray! We’re talking to the world! Well, locally at least. Everything else is just like any other UNIX’is OS, so check /etc/hosts and the usual suspects. As you might have guessed already, there’s no way to enter a nameserver as there’s no named… it’s all IPs only.
Ah, and before I forget telnetd is in /helios/lib 😉

Final words of warning: Those two daemons need memory… quite a bit. 380KB to be exact. So it might get a bit tight in your 2MB system. If you have more than one Transputer in your system, you might think about running those on a different one. As mentioned in the previous chapter, you can add them directly in your processor map like this:

processor 3 { ~02, , , ;
run -e /helios/lib/tcpip tcpip myHostname 192.168.50.42 -e pc-ether;
run -e /helios/lib/inetd inetd
}

Also, as far as I’ve tested it, the IP stack isn’t the most robust in the world. I had some crashes here and there. Still investigating whose fault it might be.

2 thoughts on “Networking”

  1. Hi Axel

    I was seeing the “/ether…” line but getting an error in the boot “+++UNIX Panic no ethernet device”

    Turns out I had to run inside helios the following
    gdi /helios/etc/devinfo.net /helios/etc/devinfo

    rebooting (CTL-SHIFT-F10) and it now works.

    1. Hi Richard,
      Oh, yes you’re right. I skipped that initial step when writing that post from the back of my head. Luckily the devinfo.net file has the pc-ether driver set up correctly already.
      I’ve updated the post accordingly.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.