Date : Sun, 19 Jul 2009 13:50:48 +0100
From : jgh@... (Jonathan Graham Harston)
Subject: Patching NFS to use other networks
robert wrote:
> Jonathan Graham Harston wrote:
> > About 20 years ago I started modifying NFS to pass accesses to
> > networks &70-&7F to the serial port. I'll see if I can dig it out,
> > as it would be the logical route to patch NFS to pass networks
> > &80-&FF to Ethernet, as per AUN specifications.
>
> That would indeed be an excellent starting point, if you still have it.
A bit of rummaging through disks turns up
<http://mdfs.net/roms/Filing/Network/SerialNet>, network
communication via serial link. It uses the same data encapsulation
as the Serial Tube link - I seem to remember writing most of it
during Electrical Engineering lectures at college ;)
It's mostly written and works in a controlled environment. If you
connect the serial port to another machine and do, for instance:
*I AM 127.254 BOOT
the other machine will receive a scout frame. Unless the other
machine sends the sequence &7F,&A8 back, you will get Not
listening. If you send &7F,&A8 back, you'll then receive a data
frame.
It has some unfinished portions, the major bit being that
transmission doesn't work until there's no reception in progress
before starting, and reception doesn't wait until there's no
transission in progress before starting. That causes a problem if a
transmission is in progress and a reception happens, as the
reception happens in the background and it tries to send an
acknowledgement - in the middle of the foreground transmission.
Anyway, it shows how to extend the network drivers in the NFS ROM.
NFS has an entry block to the network drivers that all jump to the
Econet drivers, so accessing different network hardware is simply a
matter of hooking into that block.
9630 NetTx - do a transmission
9633 NetInit
9636 NetNMIRelease
9639 NetNMIClaim
9643 NetIRQ - background reception
So, the hook into NetTx should check the destination network for
the non-Econet, deal with it if matches, or pass back to the Econet
drivers if not.
The hook into NetIRQ should deal with an incoming packet, and scan
through the open receive block list to find a match, and
acknowledge/no-acknowledge as appropriate.
I appropriated &0D80-&0D91 as "extended networking workspace", and
the code just exactly uses all 18 bytes perfectly.
Now that I go through the code again I remember that there's no
entry block in ANFS, but there's enough spare space at the end of
the ROM to create one. To create space to add extra drivers I was
going to remove the *WDUMP, *PROT and *UNPROT commands from the
ROM. Network managers always complained about *PROT/*UNPROT being
in ROM, if they're on the server their access can be restricted.
--
J.G.Harston - jgh@... - mdfs.net/User/JGH
There are three food groups: brown, green and ice cream.