Econet and NFS versions

From BeebWiki
Jump to: navigation, search


From threads on BBC-Micro mailing list, Jul 2005 and Jan 2006.

 Johan Heuseveldt <johan@...> wrote:
 > Ah yes, now you mention it: in 3.34 this was using byte access with
 > OSBGET/OSBPUT in a loop, thus the overhead in establishing the connection

I don't remember NFS 3.34 doing that. I know DFS 0.90 implements OSGBPB that way. NFS 3.34 has problems with network printing where VDU 0 was never sent - rendering it impossible to do any graphics printing.

NFS 3.34 lists catalogues in a single column, NFS 3.40 onwards uses up to four columns.

NFS 3.34 doesn't allow hidden passwords. Later versions let you use ':' as a password, and you were then prompted, viz:

 *I AM JGH :
 <type invisible characters>

Some versions after 3.34 and before 3.60 didn't let you press <DELETE>. 3.60 did let you press <DELETE>.

NFS 3.40 and later returned the data from a broadcast in the data block. Earlier versions returned it in the control block, overwriting the start, end and extra addresses.

NFS 3.65 was supplied as standard with the Reuters terminal. I haven't delved into it in sufficient details to work out the differences, but it was supplied in a twin 32K ROM containing the MOS in the other half! The Reuters Board has a second 32K ROM containing the Reuters Terminal and terminal support code.

In general:

  • NFS 2.xx - somewhere I've read that these were System versions
  • NFS 3.xx - unbuffered filing, BBC versions
  • ANFS 4.xx - Advanced NFS, buffered filing, 4.0x, 4.1x - BBC, 4.2x+ - Master
  • NetFS 5.xx - ARM/RISC OS NFS
 > As both NFS and DFS use a bit less than 8K, the combination in a single
 > chip gives more economic free space, which was used for improving the
 > utilities I think. So even if you don't need DFS, the DNFS can still
 > improve on that. IIRC '*Help utils' could give you some clues about this.

It also had enough room to fit the Tube support code as well. DNFS3.00 is really four independant programs: Tube Support, File Utils, NetFS+Econet Drivers, DiskFS.

 > As for logging on, Level 1 Econet does have the *I AM command but

Level 1 *File Server*, not Level 1 Econet.


Econet is the wire protocol for communicating over a bus network with 6854 ACIAs and went through *issue* 1, 2, 3, 4. The NFS supplied for computers has the issue as the major version number: version 1.xx, 2.xx, 3.xx, 4.xx.

Issue 1 Econet had 8-bit station ID, 16-bit addressing, no collision arbitration but had package acknowledgement. It was originally designed to be a ring - on the Cambridge Ring model - but upon hearing about the success of the bus-based Ethernet system Acorn decided to make Econet a bus network.

Issue 2 Econet got rid of the package acknowledgement, halving the number of packets on the network. Upon testing it was found to be very unreliable outside carefully set up test rigs.

Issue 3 Econet reinstated the acknowlegde packet, used 16-bit station IDs and 32-bit addressing. Data packets always start:

 <dest stnlo><dest stnhi><src stnlo><src stnhi><flag><port>

Acknowledgement packets are always:

 <dest stnlo><dest stnhi><src stnlo><src stnhi>

Issue 4 Econet is a misnomer as it was actually a development in the NFS, not the Econet system. It implemented local file buffering on the client station, with PAGE rising by &500 on a BBC, or buffering in Hazel on the Master.


There is an unnamed and often unacknowledged layer between Econet and NFS - Network Communication, what Osword &14 etc all call.

All Acorn-supplied 8-bit NFSs' Network Communication used Econet as their hardware layer, but NetCom can use any hardware. On RISC OS it can use Ethernet. I have uncompleted code to use the serial port.


NFS is a file system that accesses files on a server accessed over a network. NFS has always been supplied with Econet network drivers.

 Systems 3,4,5 typically used NFS 3.10
 The Atom typically used NFS 3.1A
 BBCs used NFS 3.30 and later
 Masters used (A)NFS 4.20 and later
 NFS 4.0x and 4.1x are ANFS for the BBC.

The filing system changed minimally between NFS issues. The changes were in the Econet system. Any change in functionality seen by the user/application is a function of the file server, not the filing system.

NFS prior to 3.20 had 16-bit address fields in the blocks passed to the network communication routines (OSWORD &14 et al on BBCs).


File Servers

Level 1,2,3,4 File Server is a product and specification for a server that severs files over a network.

Level 1 fileserver specifies:

  • Requires LOAD and SAVE and RUN support
  • Requires library directory support to RUN programs from
  • Minimum of 7-character filenames
  • No requirement to specifiy a user on logon
  • No requirement for random access, access control, accounting
  • No requirement for concurrent serving
  • No requirement for more than a single file space - ie no
  • requirement for sub- or sideways- directories.

Level 2 fileserver specifies:

  • All normal file operations
  • File access control
  • Hierarchial directory structure
  • File random access
  • Logon user verification
  • File date stamping
  • Full pathnames
  • Minimum of ten-character leafnames (actually, maximum of ten due to hardwired '10's within the NFS routines).
  • Multiple reading of files

Level 3 fileserver specifies:

  • All the above, plus:
  • Time stamping
  • User space accounting
  • Concurrent serving
  • User Root Directory not tied to being '$.username'
  • Ability to print server from the file server

Level 4 appears to be level 3 running on RISC OS.

Advanced Level 4 implements 32-bit file lengths, clients need a version of NFS/NetFS that understand 32-bit file lengths to access files longer than 8M.

Several implementation of fileserver met specifications for one level, and implemented bits of the next level. For instance, SJ Research's FDFS is Level 2 plus time stamping. The MDFS is level 3 plus file space accounting not user space accounting, creation date as well as modification date/time.

 > Later the command took the form *I AM (<file server number>) <user id>
 > <password> from Level 2 onwards.

The *I AM command has /always/ been:

 *I AM [<file server>] [<parameters sent to file server>]

The file server specified in [<file server>] receives everything after the "I AM ". It's up to the file server to do whatever it wants to with the tail of the command.

Don't confuse what the NFS implements (very little) with what the file server implements (almost everything).


The Econet System User Guide, Acorn, November 1982, Acorn

The Econet Micro Guide, Christopher Dawkins, 1985, Longman

Jgharston 22:12, 14 May 2009 (UTC)