Disabling the Econet on a BBC B or B+ - Net.DOCS.EcoOff
=======================================================
Update 0.01, Author J.G.Harston, Date 21-08-1997
There are some programs, usually games, that do not work properly with
Econet active. Most of these problems appear when using a machine on an
active Econet, but some of them occur in a machine not even plugged into a
network at all. This short document gives advice on how to work around
some of these problems.
Problems with an active Econet
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Every time an Econet packet passes down the network NMI interrupts occur.
Consequently if the game has trampled over the NMI workspace at &0D00 the
machine is likely to crash. The following are
i) Unplug the Econet lead. Drastic and not recommended as you can forget
to plug it back in again, and constant plugging and unplugging will wear
the connections out.
ii) Disable the Econet NMI by reading NMIOFF:
off%=?&FE18
iii) Claim the NMI yourself:
*FX143,12,255
This is by far the best solution as it will work on all machines and also
from the second processor. Note that if the program requests any Econet
activity at all, such as trying to transit or loading a file from NFS then
the NMI will be reclaimed. This is not usually a problem with games as
they take over the machine anyway.
Problems with an inactive Econet
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you are having problems with a machine that isn't even connected to a
network, then you will have to remove the Econet system from the machine's
sight. The most drastic way of doing this is to remove the Rom. However,
if you have a DNFS rom fitted this solution is not possible. The DNFS
keeps two bits of its workspace pointer in &DFx to indicate whether the
DFS or NFS portions are disabled. On a reset, the rom looks to see if the
hardware it needs is present and if not disables the relevant portion. To
set the bit yourself you need to know the rom number. If you knew that
DNFS was in rom number 12 you could use:
?&DFC=&80
Press Break
However, the following bit of code can be used in a program that can
continue to do other things:
A%=0:Y%=0:fs%=(USR&FFDA)AND&FF Find current filing system
A%=143:X%=18:Y%=5:CALL&FFF4 Select network without error
rom%=?&DBC Find which rom Net is in
Y%=fs%:CALL&FFF4 Reselect filing system
rom%?&DF0=rom%?&DF0 OR &80 Disable NFS
*FX143,12,255 Claim NMIs
The above will work whether NFS is in a dual DNFS rom or a single NFS rom.
If you change the &80 to &40 you disable the DFS. Using &C0 will disable
both DFS and NFS in a dual rom! On pressing Break, the memory that had
been claimed will disappear and PAGE will be lower. The only way to get
NFS back is to remember the rom number and use:
rom%?&DF0=rom%?&DF0 AND &7F
However, you will then need to press Break to reset the memory.