Posted by under 8 bit Micros,Acorn,Econet,Emulation,Networking on February 6 2018, 0 comments

There are some things that maybe shouldn’t be done. Emulating a network of ’80s 8-bit micros is probably one of them.

The idea here is to set up, under emulation, the file server for an Acorn Econet network, and then add a client running on the same host. After that, we’ll try a client running on a second host.

For a bit of background on Econet, have a look at the Wikipedia article. Yes, its ancient, yes its archaic, and yes people are still playing with it today.

Why am I doing this? Well, I’ve always had a soft spot for Econet. After the RM 380Z/480Z network that I used at school, the Econet at college was the second network system I used. Years later, when I worked for a university I had my own little Econet in my lab for a while.

I’m doing this as a “walkthrough” to make it as simple as possible to follow. If you want a complicated version with screenshots and explanations, look elsewhere.

Right, so first we’re going to need a emulation of a BBC Micro that supports Econet. That means BeebEm. Doing my initial testing on a Windows box, I went for the Zip file from http://www.mkw.me.uk/beebem/BeebEm414.zip and unzipped it into a directory.

From there double-click on BeebEm, then when its started do File->Run Disc and open “Games.ssd”. From the on screen menu you can play “Chuckie Egg”. This halted my progress for about an hour.

Close BeebEm down and find the “Roms.cfg” file user BeebEm\UserData. Then replace the first line that says “EMPTY” with “BBC\ADFS-1.30.ROM“. While we’re editing files, find “Econet.cfg” and uncomment the line that says “# 0 254 127.0.0.1 32768“. This will make the first instance that you run the fileserver, once we come to actually setting up the network.

A bit down the file you’ll find the line “# 0 101 127.0.0.1 10101” and “# 0 102 127.0.0.1 10102” Uncomment those too, so we can have two workstation test instances running on this machine later.

Navigate to “BeebEm\UserData\DiscIms” and find “econet_level_1_utils.ssd“. copy it to something like “working on econet_level_1_utils.ssd“, as we are going to want to write to it and we don’t want to ruin the original disk image.

Now fire up BeebEm again. On the menu, select “Hardware->Econet On/Off“. And stop it from pausing when its not the current window: “Options->Freeze when inactive“.

Save your preferences with “Options->Save Preferences“.

Next do “File->Load Disc 0” and find “working on econet_level_1_utils.ssd“. Now unprotect the disk: “File->Disc Options-> Write Protect 0

From here we can create the fileserver system.

So, with BeebEm, first create the NAMES file. We might as well create 8 stations, even though we probably won’t use them all:

>CH. “FSUTIL”
No entries so far.
Type in directory and station number.
Directory: A
Station number: 101
Directory: B
Station number: 102
Directory: C
Station number: 103
Directory: D
Station number: 104
Directory: E
Station number: 105
Directory: F
Station number: 106
Directory: G
Station number: 107
Directory: H
Station number: 108
Directory: <cr>
>

And start the server proper:

>CH. "FS"
Model B file server version 1.00 
Number of files per user: 3 
Manual? N
Largest file is &2A00 bytes. 
Ready

The file server is now ready for action. Ok, it is a very simple server set up for two workstations, but its up.

Next, just fire up two more copies of BeebEm and boot them to the network by pressing N and Pause/Break together.

Each should identify itself as “Econet Station ###”, where ### is a number from the config file.

On each you should now be able to do “*.” and get a catalogue of the disc. Meanwhile, the screen on the server (the first instance that you ran) will be listing any accesses to the server as they happen.

And there you have it, an emulated Econet with 3 machines, running on your desktop machine.

Drinks all round.

But thats not really that exciting, is it? It isn’t really a network if all the machine are on the same host. What we want is to have at least two separate host machines running emulated Econet stations.

So, to start we’ll edit the “BeebEm\UserData\Econet.cfg” and change the three lines we modified earlier to use the IP address of the host machine. This is just so we can test it using a real IP address instead of  loopback.

So before when it said:

# Example network configuration.
# Fileserver (station number 254) 
0 254 127.0.0.1 32768
# Stations:
0 101 127.0.0.1 10101
0 102 127.0.0.1 10102

It should now say something like:

# Example network configuration.
# Fileserver (station number 254) 
0 254 192.168.0.211 32768
# Stations:
0 101 192.168.0.211 10101
0 102 192.168.0.211 10102

Of course you have to replace the IP address with that of your machine.

So run BeebEm again, remount the Fileserver utilities disc you used before and go through the whole “CH.”FS”” thing. Then run up the other two BeebEm copies and and make sure they can see the server.

If all goes well, then copy your BeebEm directory to a second computer, and get ready for thigs to get complicated.

From now on I’ll refer to the original machine as “Host 1“, and the second machine as “Host 2“.

The issue is that each emulated machine needs to know the IP address and port number to communicate with every other emulation, but the config file for each Host has to have them in a certain order.  This means that if you lauch too many copies of BeebEm on any machine it will cause problems.

In this example, the Fileserver (254) and the first two stations (101 and 102) will run on the Host 1 (IP address 192.168.0.211), while the next two stations (103 and 104) will run on a Host 2, which has the IP address 192.168.0.214.

So we have to edit the “BeebEm\UserData\Econet.cfg” files again.

The important bits of the Econet.cfg file are:

# Example network configuration. 
# Fileserver (station number 254) 
0 254 192.168.0.211 32768 
# Stations (local): 
0 101 192.168.0.211 10101 
0 102 192.168.0.211 10102
0 103 192.168.0.214 10103
0 104 192.168.0.214 10104

The files can be the same on each host, as it won’t bind an address to a host without a matching IP address.

So now file up the fire server on Host 1, and one of the workstations on Host 2 (it should initialize as “Station 103”).

No I know I said no screenshots, but as we’ve come to the end and it works, I feel justified in having these:

So there we have it. An Econet Level 1 file server and clients running across the network under emulation. I could go into moving the fileserver image to a Linux box, but I think thats pointless as the next step is to set up a Level 2 system.

 

Tags:

Leave a Reply

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