8-bit Software (c) Duncan Webster January 1992
Issue 18 Jan/Feb 1992
Harston ADFS ROM
At present, there are two main types of disc filing system available
on the BBC Microcomputers. The oldest and most popular to a large
extent amoungst BBC Micro owners is the Acorn DFS. Amoungst Master
owners, the Acorn ADFS is the most popular system by allowing greater
storage space and a much improved directory structure that does not
limit the user to 31 filenames per disc - a practice that became
severely constricting as storage space increased with the advent of
Double Debsity mediums.
The scholars amoungst you may well know of the Network Filing System
or NFS which is used with Econet systems. Basically, an Econet system
makes it possible to have several BBC Microcomputers running from a
single Econet "file server" without having to install DFS hardware and
ports in every machine thus keeping expenses down. Instead, all
"Econet" BBC micro's share the same storage medium. There is a cut
down version of the Master 128, called the Master "Econet Terminal" or
ET for short which is specifically designed for use with Econet and
thus cheaper than a Master 128.
Using an Econet terminal is very similar to using the standard ADFS
system with a few additions and subtle differences. Generally, these
differences include a security system and a host of "access" commands
in order to determine who has access to what. Econet systems may well
have changed since I last used one so the above is not to be taken
In order to fully understand the basics of the HADFS ROM, it is
worthwhile explaining how an Econet system works in greater detail.
Having got the idea of the operation of an Econet system -
understanding HADFS should (hopefully) be a little easier.
Basically, Econet works like this ... The $ (root) directory will
contain your "User Name" which is basically a directory. For exmple
if I was to catalogue my Econet Terminal I might see this ...
$ (07) Public
8-bit Soft Option 0 (off)
Dir. $ Lib. $
DUNCAN D/ )
ANDREW D/ )
SMITH D/ ) All these are Usernames
ADRIAN D/ ) which appear and behave
JAMES D/ ) like directories.
JOHN D/ )
>*I AM DUNCAN 8BS105
TITLE Owner DUNCAN
Dir. DUNCAN Option 0 (off)
!boot WR/R !server WR/R
SERVER9 WR/R SERVER1 WR/R
SERVER2 WR/R SERVER3 WR/R
GAMES WR/WR GAMES2 WR/WR
GAMES3 WR/WR SYSTEM D/
>CHAIN"SERVER1" etc ....
I cannot remember if I have got this exactly spot-on so please do not
write in pointing out any little errors I may have made here, but the
gist of the above is correct. Basically, the root directory contains
the "User Names" which are basically a list of sub-directories. The
important difference is how they are accessed. Using the procedure
given above I am logging onto directory DUNCAN as the "owner" of that
directory. I do this by entering *I AM DUNCAN plus my password
(optional) of 8BS105. The Econet system will then grant me access to
DUNCAN and allow me to make any changes I see fit (ie. deleting files,
SAVEing files etc). As I am the "owner" of directory DUNCAN, I have
control over which of my programs contained within the DUNCAN
directory are "public" (ie. anyone can look at them) or "Private" (ie.
for my eyes only). There are other combinations which I shall explain
Supposing I wanted to access ADRIAN's directory. Even though I am not
ADRIAN and I do not know ADRIAN's password, I can still view ADRIAN's
directory and load some of his programs PROVIDED he has allowed me to.
Consider the following ...
>*NET <- this just selects the Econet System
>*DIR $.ADRIAN <- this selects Directory ADRIAN
>*CAT <- this catalogues the Directory
TITLE Owner ADRIAN
Dir. ADRIAN Option 0 (off)
!boot LR/ Prog1 LR/
Prog2 WR/WR Prog3 WR/R
I can view ADRIAN's directory by issuing the standard *DIR command
(although this can also be prevented for "Private" directories), but I
am only using ADRIAN's directory as a "guest" and NOT an "owner". As
mentioned already, ADRIAN can control what I am allowed to look at and
what I am not allowed to look at ... All of the above files have an
attribute (ie. Prog3 WR/R) - the "WR/R" informs who has access to
what. The letters to the left of the "/" denote "owner" access flags
and the letters to the right of the "/" denote "guest" or "user"
access flags. These access flags can be set at the "owners" will.
W = Write enabled
R = Read enabled
D = Directory (system set of course)
L = Locked
Referring to the above catalogue, I am only allowed to load files
"Prog2" and "Prog3" as they have the "R" (read enables) access flag
set to the right of the slash "/". I am also allowed to modify
"Prog2" as it has a "W" flag (for write enabled) set to the right of
the slash "/". I am allowed to READ "Prog3", but I am not allowed to
write to it (ie. I cannot SAVE "Prog3"). So as you can see it is up
to the "owner" of the directory (ADRIAN) as to whether other users can
view/amend the software within that directory.
That is a very basic overview of how a working Econet system can be
run. It is a multi-user system opertaing from one storage medium with
the necessary security utilities built in. Well I hope you have
grasped all that - now I shall go into the HADFS in more detail ...
The HADFS ROM
In short, the HADFS ROM is useful in two main areas ... Firstly, it
provides you with a hierarchial directory structure as ADFS users
currently enjoy on the Master and upgraded Model B's. However, unlike
the Acorn ADFS you do not need a 1770 Floppy Disc Controller installed
as HADFS will run quite happily on 8271 versions. To the layman,
HADFS will run on most Acorn DFS systems - It is not known about other
manufacturers filing systems.
The second advantage, is that HADFS emulates an Econet environment to
a certain extent thus providing a few "Econet" type commands as well
as supporting many standard DFS/ADFS commands. So do we have the best
of both worlds using HADFS for free? Read on ...
To use HADFS (which is supplied on DFS disc), you will need 16k of
Sideways RAM minimum. If you do not have this then is is best to get
the ROM image supplied on disc blown into EPROM. To install HADFS,
all you have to do is load the ROM image into SWR and pressing
CTRL+BREAK will put you into HADFS. You can still switch to DFS by
entering *DISC as normal thus keeping programs stored on standard DFS
discs within easy reach.
If you have Acorn DFS version 0.90 installed in your machine (find out
by entering *HELP DFS) then you will come across a problem with the
header message informing you of "No DFS ROM". This is due to a bug in
the DFS itself and HADFS does cater for this (to a certain extent) as
you will see later. Ignore this message (if there) for now. Initial
power on of the BBC, or a "power-on reset" will display a copyright
message - subsequent CTRL-BREAKS & BREAKS will only produce the header
message similar to this ....
BBC Computer 32k
You would be forgiven for assuming that the HADFS filing system is now
selected and issuing a *CAT command would present an HADFS catalogue.
Not so I'm afraid - I spent several minutes getting a "Sector not
found at xxxx" error before realising that I had to issue a *HADFS
command to initialise the ROM - despite "Harston ADFS" appearing in
the header message. After pressing CTRL-BREAK or just BREAK it seems
that you are neither in DFS, ADFS or HADFS and thus you cannot read
any disc. The error message produced makes one immeadiately think
that the disc is corrupted in some way.
Instead, you are expected to issue the *HADFS command after each BREAK
keypress. Having done this you can proceed to use the HADFS system
proper. Users with Acorn DFS version 0.90 will need to enter HADFS in
a different way. You can tell whether you need to do this as the
break header message will contain the words "No DFS ROM". If you are
presented with this, then you must select HADFS by entering *HADFS #
(that is the hash character - SHIFT+3). However, it is not as easy as
that for version 0.90 users. For some reason, I found that as soon as
<break> was pressed, I had to clear my SWR and re-load the HADFS ROM
image before I could gain access to it again - failure to do so kept
producing a "DMA" error. This alone really makes the HADFS ROM too
much of a nuisance to use for DFS 0.90 users. Even when I had freshly
loaded the ROM image I still received error messages before access to
HADFS was possible. Fortunately the problem does not occur on later
versions of DFS.
Once in HADFS, many standard filing system commands apply - but some
do not (see later). One important exception here is BASIC's file
handling commands such as OPENOUT, BPUT etc. which means that any
programs using these commands will not work under HADFS (such as
SYSTEMS server). Another noticable omission is ADFS's *BACK command
which does not appear to be supported either.
Once in HADFS, you can *CAT the root directory and you will be
presented with an "Econet" type environment. The password routines
have not yet been incorporated into HADFS and therefore security is
non-existent. You can create sub-directories and load and save
programs in the same was as ADFS. All programs newly SAVEd to an
HADFS disc are given the access tag of WR/WR meaning that anybody can
read/write that particular filename irrespective of whether they "own"
that particular directory. With the absence of security as mentioned
above, there is little point in amending the access tags, but the
feature is supported all the same.
For example, after a *HADFS command I can *CAT the $ (root) directory
which would give me a printout similar to the following ...
8-bit Software (07) Owner 00
DISC 01 Option 0 (off)
Dir. $ Lib $
GAMES DL/ MENU WR/WR
UTILS DL/ DATA WR/WR
EDUCATN DL/ SYSTEM DL/
In order to amend the access tags of a particular file, you must be
the "owner" of the directory in which they reside - the same principle
as Econet systems. The HADFS command *SETUSER creates "owner"
directories, which must then be subsequently selected using the *I AM
command. This will then make you the "owner" of the directory
concerned and thus you could amend the access tags of any file or
For example, to become the owner of a directory called GAMES I must
first amend the dir. user number via the *SETUSER command. Once this
has been performed, I can select the GAMES directory in one of 2 ways
as follows ...
1. The command *I AM GAMES peoduces the same result as *DIR GAMES,
except that it selects the GAMES directory on "owner" status.
2. The command *DIR GAMES would still allow me into the GAMES
directory, but not as the "owner". I would therefore not be
allowed to amend any access tags (nor be able to load any program)
that didn't have a letter "R" to the right of the slash "/" -
example WR/WR (see above). This works in exactly the same way as
Obviously, all this is a rather pointless exercise for most people
because anyone who gets hold of your disc can just issue the command
*I AM GAMES and amend all the access tags just as you have done. The
whole point of the above at present is to emulate an Econet
environment thus enabling existing Econet users to use the same
commands on their home micro's. There is also the advantage in the
fact that most "Econet Reliant" software (ie. programs containing
Econet system calls) will work without conversion.
The manual is essentially well written, but concentrates on listing
the commands and features of HADFS rather than giving step by step
instructions for beginners. The novice therfore will probably find
the manual a little out of order and difficult to grasp. Another
major problem is the fact that the manual itself is saved under HADFS
format and thus you have to figure out how to get into the HADFS
environment without a manual before you could actually read the manual
which tells you how to perform the operations you have just guessed
at??!! I spent a long time guessing before I worked out that I wasn't
in the HADFS system and had to issue the *HADFS command. Even this
failed to work on my backup Model B which contains the bug-ridden DFS
version 0.90. If the manual could be provided in DFS or ADFS it would
have been a great help and would have saved a lot of lumps on my head,
dents in the computer and deep scratches on the disc.
It is worth noting that HADFS discs are not compatible with Acorn ADFS
disc formats as the two filing systems are totally incompatible.
There is a "copyfiles" type routine amoungst many others provided
within a "library" directory on the HADFS disc. In addition to this,
many standard commands such as *BACKUP and *COMPACT have yet to be
written and thus will not work.
So is HADFS of any real benefit to 8BS members? Well a ROM Image of
HADFS is supplied on the issue disc together with the manuals in DFS
format (available from the program menu) so you will be able to figure
out for yourself. However my initial conclusions are as follows ...
Until a password routine is written for the HADFS, the best use for
the system is the ability to get around the 31 filename limit at
present, plus the benefit of the hirearchial "ADFS type" directory
structure. So if you are still plodding on with DFS then HADFS is a
worthwhile system - just keep a regular DFS backup of all your work.
Those members already familiar with Econet environments will take to
HADFS like a duck to water and if it wasn't for the lack of support
for BASIC's essential file handling commands (such as BPUT and
OPENOUT) I would definately recommend HADFS as opposed to DFS systems
- especially if you are a regular user of an Econet Terminal at school
or college as you would be able to use the same environment at home as
If you already have Acorn ADFS and do not use Econet, then HADFS in
it's present version is really only of curiosity value. I myself
found the system extremely interesting to use and explore, but I was
not tempted away from ADFS, nor was I inclined to put 8BS software in
HADFS format until the system becomes more user-friendly and easier to
load and select. Having said this, the author points out in his
manual that HADFS is constantly under-development and improved
versions are being planned all the time. This review may sound rather
negative in area's, but on reflection I feel that the only problem
with HADFS is that it is just not yet finished. When it is finished
and all features are working then it is certainly going to give the
DFS/ADFS systems a run for their money. As far as cost is concerned,
HADFS is free - otherwise I would not be putting it on the 8BS issue
disc. However you are invited to send off a registration fee in order
to automatically receive future versions and news.
As for myself, I intend to keep a close eye on the development of the
HADFS system and who knows, 8BS discs may well appear on HADFS format
sometime in the future.
If you are interested in the future development of HADFS, or if you
would like to be kept up to date with new versions then please write
to Harston P.D. direct at the address below. Harston P.D. is itself a
fairly large P.D. library with most software being available in HADFS
format. The Complete HADFS ROM (including library functions not on
the 8BS disc) are also available from Harston P.D.
Please write for a catalogue (enclosing an S.A.E.) to ...
70 Camm Street
I would also like to take this opportunity to thank Johnathan Harston
for his kind permission to distribute his HADFS ROM, plus all the nice
things he said about Watford Electronics (!) after reading the DDFS
article last issue - I am following this up Johnathan (not mentioning
any names of course).
The ROM Image supplied on issue 18 contains the HADFS ROM only and
does not contain the "library" OS commands that are supplied with
every HADFS "system" disc available from Harston P.D. HADFS comes
with a 2 large manuals and a few "Readme" help files in order to get
you going. The main users guide has been saved to this issue disc
under the filename T.HADFS and can ve viewed from the 8BS program
menu. Further techical manuals are available direct from Harston P.D.
Obviously, a lot of questions are going to arise from members who
attempt to make use of the HADFS ROM. Please send ALL your questions,
problems and ideas to 8BS for inclusion in the programmers return in a
future issue. Your questions should (hopefully) be answered by
Harston P.D. in due course.