ROM/RAM
BOARD INSTALLATION
The
first stage in fitting your new ROM/RAM board is to turn off the BBC and remove
the mains plug from the socket. Next remove the cover from the BBC by unscrewing
the four case screws (marked 'FIX'). The lid should remove quite easily once
these screws have been undone and removed. Place the BBC onto a clean work
surface, preferably free from static charges.
If
you already have a ROM board fitted to your machine, then remove this by
carrying out in reverse the instructions provided with the board. If you have a
Watford 32k RAM Card or a Watford Delta Card fitted, then these be should
temporarily removed from the 6502 socket – they will later plug into the
new equivalent socket provided on the ROM/RAM board.
With
the BBC sitting in front of you, the rear of the machine is referred to as the
north, the front as the south, with left and right being referred to,
respectively, as west and east.
Locate
the 6502 CPU chip, fitted to IC1 (see the centre of the diagram for the location
of this). This chip should be carefully removed with either a chip extraction
tool or a medium sized flat blade screwdriver. If you are using a screwdriver,
remove the chip by carefully levering it out of it's socket. Take care that you
remove the chip by lifting at the centre ends of the chip, otherwise you could
encounter problems. Lifting should be alternated between each end to prevent the
pins becoming excessively bent. Carefully place this chip to the side –
you will need it later.
Locate
link S21 (shown in it's relative location and then expanded on the diagram).
This is a group of four small 'posts' or links arranged in a square. Remove the
connecting link from the southern most of these two east-west links and place
this in a safe place (you might require it in the future). Next, fit the twisted
pair of trailing wires eminating from the ROM/RAM board to link S21. Note that
the east-west orientation of these wires must be maintained; the west wire is
labelled W and must be connected to the west post of the link S21. The east wire
is labelled E and should be connected to the east post of link
S21.
Next
locate the two connecting power leads marked OV and VCC2 (marked VCC 5V) –
see the diagram for the location of these. These two wires will have come from
the Power Supply Unit (PSU) at the left of the BRC, and will be black and red.
Carefully remove these two leads, and plug them onto the ROM/RAM board. The
black lead, which connected to the terminal marked OV, should be connected to
the 'spade' marked OV on the ROM/RAM board. Likewise, the red lead that
connected to the spade marked VCC2 on the BBC board should be connected to the
spade just to the north of the OV spade on the ROM/RAM board. Next, the lead
eminating from the large solder pad with OV marked on it should be connected to
the OV spade from which the black wire from the BBC's PSU has gust been removed.
The wire
coming
from the point just between the lettering 'S4' and 'OUT' should be connected to
where the red wire was connected. The nett result of this should be that the
original wires now connect to the ROM/RAM board, and new wires lead from the
ROM/RAM board to the original spades on the BBC's board.
Once
all these wires have been connected in accordance with the diagram, the board
should be plugged into the newly vacated 6502 socket, IC1. Make sure that all
the pins are lined up with the socket IC1 before you start applying pressure,
and make sure that even pressure is applied so that the ROM/RAM board fits
squarely into this socket. On some BBCs, the spades towards the rear right hand
corner may interfere with the fitting of the ROM/RAM card. If this is the case,
GENTLY bend these downwards so that they do not stick up quite so
high.
When
the ROM/RAM board is satisfactorily mounted, place the 6502 chip back into the
socket marked 6502A on the ROM/RAM board (if you have a Watford 32k RAM Card or
a Watford Delta Card, then the 40 way ribbon cable should be plugged into here
at this stage). You are now ready to try your BBC with a ROM/RAM board
fitted.
Turn
on your BBC. If a continuous buzz is heard, make sure that the ROM/RAM board is
pressed firmly in place and that all the wires are connected correctly. If
"Language?" appears on the screen, you will probably have plugged the flying
wire the wrong way round on S21 – if this is the case turn the BBC off,
correct the fitting of the lead and then turn the power back
on.
THE
PRINTER BUFFER
The
ROM/RAM printer buffer is loaded from the supplied utilities disc from one of
the menu options. Once installed, it responds as follows to *
commands:
>*HELP
Watford
Electronics Printer Buffer
BUFFER
OS
1.20
>*HELP
BUFFER
Watford
Electronics Printer Buffer
BUFFON
BUFFOFF
PURGE
PURGEON
PURGEOFF
OS
1.20
With
the printer buffer active, any character sent to the printer is directed via
the printer buffer software. This then checks to see if the printer is ready to
take the character; if it is not, then it is saved into sideways RAM, pending
the printer becoming ready to printer the character.
One
bank of sideways RAM is required for the printer buffer. Note that if the bank
normally used for CMOS RAM is used, then it is essential that the link RD-S1 is
in place. If it is not then the printer buffer will fail to operate
correctly.
*BUFFOFF
This
command is used to deactivate the printer buffer. The printer buffer is, by
default, inactive.
*BUFFON
This
command performs the reverse of the *BUFFOFF command, and activates the printer
buffer.
*PURGE
Should
the need arise, this command allows printing to be aborted and the buffer
contents to be discarded. This can be useful when, say, the paper has become
jammed on your printer and there is a remaining ten pages of text about to be
printed. Once aborted, there is no retrieving the text that was present within
the printer buffer.
*PURGEON
With
purging active, pressing the Escape key will have the same effect as entering
*PURGE, and the current printing will be aborted. As with *PURGE, there is no
recovery of any data lost. This is the default state when the printer buffer is
activated.
*PURGEOFF
When
this command is entered, the purging on Escape ability is deactivated. This is
the most useful mode when using a word processor as the Escape key is typically
used to toggle between command mode and edit mode. If the purging ability is
active when this is done, then any text in the printer buffer will be
lost.
GENERAL
INFORMATION
The
BBC micro can address a total of sixteen so called sideways ROMs. Normally,
there are only four ROM sockets available, but with the ROM/RAM board fitted,
this is increased to eight ROM sockets. In addition to this, the facility for up
to eight banks of sideways RAM is provided. Sideways RAM can be used for running
infrequently required ROMs in, acting as a 'silicon' disc, or even acting as a
printer buffer.
Banks
0 to 7 are for the dynamic sideways RAM. The minimum configuration currently
available is 32k (ie two banks of RAM), but up to 128k (ie eight banks) of
sideways RAM may be fitted in this region. Note that the contents of any dynamic
RAM will be lost when the machine is turned off
Banks
8 to 11 are the four original ROM sockets underneath the keyboard on the
computer. ROMs fitted underneath the keyboard can be left there when the ROM/RAM
board is installed, but note that any ROMs installed on the ROM/RAM board will
take a higher priority to them. For this reason, it is recommended that the
Basic ROM (serial number ending PB01 or PB05) be removed and fitted to socket 15
of the ROM/RAM board (socket 15 is the middle of the five large sockets towards
the front of the board).
Banks
12, 13 and 15 are ROM sockets on the RAM/ROM board. These behave much the same
the four original sockets except that, as noted above, they take higher priority
than the four original sockets.
Bank
14 is split into two sockets. These sockets are capable of taking ROM or 16K
static RAM. If the battery backup is fitted, the contents of this memory are not
lost when the power is turned off. When fitting devices for this socket, two 8k
devices should be used. For example, with EPROMs, use 2764s, and for static CMOS
RAMs use 6264s. See also the note on link S3 below.
In
addition to the normal ROM select latch at &FE30, an additional latch is
provided by the ROM/RAM board to control write operations to the RAM present.
This latch is slightly different in form to the normal in that a write operation
is made to &FF30 plus the socket number required. For example, to select
socket 5 from Basic, one uses ?&FF35=0. In assembler, to access socket
&D, one might use LDX #&D, STA &FF30,X. The value written to the
location is not relevent, provided that a write operation is performed to these
locations. Note that the !&FF30=0 construct should not be used as this
affects a total of 4 bytes of memory, and could produce in strange
results.
Having
done this, all future write operations to the region &8000 to &BFFF are
directed to the selected socket. This means you can *LOAD or assemble programs
straight into a specifically selected RAM bank.
To
write protect all the sockets you would use '?&FF38=0'. This selects socket
8 for write operations. As this socket is a ROM, no RAM will be affected by an
attemped write operation. Obviously the ROM is not going to react to any attempt
to write to it anyway.
Use
of the above method is only a temporary write protect solution; there is nothing
to stop another piece of software from reselecting a socket and then writing to
it. As a permenent measure, link S2 (left side of board) may be removed. If you
have a switch connected to this link, then all you need to do to select write
disable is just turn it off.
The
S1 link (left hand side, middle) is a read protect link for socket 14. If
removed, this will make socket 14 'vanish' (ie yield a single constant value).
This is useful should socket 14 contain some software that is causing the
machine to hang (for example, your latest development). If this software were
contained in the dynamic RAM then turning the machine off and then on would
remove the software. The static RAM, however, especially when fitted with the
battery backup, does not lose it's contents so easily. To allow recovery from
this sort of problem, link S1 should be removed from the ROM/RAM board, and then
Break key pressed. Enter Basic, and type ?&FF3E=0:?F8007=0. This will select
socket 14 and disable the ROM within it (although read operations are disabled
from it
S3
is a PCB track and normally forms a connection between the upper two pads of the
three pads that form link S3. This link controls whether sockets 14L and 14H are
for two 8k devices (in the centre to rear position, which is also the factory
setting) or a single 16k device in socket 14H.
Battery
backup can be fitted to the ROM/RAM by soldering a PCB mounting type NiCad
battery (2.6v) into the three holes provided to the right of the 6502A CPU
socket on the ROM/RAM board. The charging circuitry is already present with the
ROM/RAM board, and only takes a few hours to fully charge a flat battery. The
battery will preserve the CMOS RAM's contents for several months
thereafter.
The
typical current consumption of a fully populated RAM/ROM board is 0.5A. This is
a fraction of that of a ROM board, yet far more facilities are
provided.
THE
SILICON FILING SYSTEM
The
major piece of utility software supplied with the Watford ROM/RAM board is the
SFS (Silicon Filing System). This piece of software allows any sideways RAM
present (within banks 0 to 7 – ie the dynamic RAM catered for by the
ROM/RAM board) to be treated as a special kind of disc drive, referred to as a
silicon disc (this is because, although behaving much as a disc, it is
effectively totally fabricated from silicon).
The
SFS provided with the ROM/RAM board is a modified version of the popular Watford
DFS. When active, all operations are directed towards sideways RAM, not to the
disc. A couple of utilities are provided within the SFS ROM that permit fast
copying between disc (or Econet) and the SFS. These copying utilities are
detailed later.
The
features offered by the SFS are very similar to the Watford DFSs. Some commands
are not implemented (mainly because they are not required), whilst others may
have changed operations. All the commands present are detailed in the section
below. The list immediately below is a sample of the results that might be
produced by typing the appropriate *HELP commands.
>*HELP
Watford
Electronics SFS 1.00
RFS
FILES
SPACE
UTILS
OS
1.20
>*HELP
SFS
Watford
Electronics SFS 1.00
ACCESS <afsp> (L)
COMPACT
DELETE <fsp>
DESTROY <afsp>
DIR (:<drive>.) <dir>
DRIVE <drv>
ENABLE
INFO <afsp>
INIT (-)<ROM list>
LIB (:<drive>.) <dir>
RENAME <old afsp> <new afsp>
TITLE <title>
WIPE <afsp>
WORK <fsp>
OS
1.20
>*HELP
UTILS
Watford
Electronics SFS 1.00
BUILD <fsp>
CFSDISK <afsp>
CTSDISK <afsp>
DUMP <fsp>
LIST <fsp>
SILICON
RLOAD <ROM no.> <fsp>
TIDY
TYPE <fsp>
The
SFS is normally loaded from the utilities disc menu. It may, however, be loaded
directly from your own discs as follows (note that socket 14 (&E) is
strongly recommended for the SFS, if possible):
?&FF3E=0
*LOAD
SFS 8000
This
will have loaded the SFS into RAM. To actually initialise it, the Break key
should be pressed. The ROM image is preset for an empty catalogue. Upon the
first call to the software, the equivalent of a *INIT command is executed (see
later). References to drive numbers are interprutted as normal, but are ignored
– there is only one silicon disc implemented by the SFS. If possible,
avoid specifying drive numbers with the SFS – they are only permitted for
the sake of compatibility and achieve no functional
effect.
Two
new *OPT commands have been introduced:
*OPT
or *OPT 0,0 issues *OPT1,0 and *OPT3,0
*OPT
0,1 issues *OPT1,1 and *OPT3,1
*OPT
3,0 selects the standard Watford DFS *LIB and *DIR
extensions.
*OPT
3,1 deselects the *LIB and *DIR extensions, making the SFS act as a normal Acorn
DFS.
The
*OPTl,x values are the same as with standard DFSs.
ACCESS
<afsp> (L)
DELETE
<fsp>
DESTROY
<afsp>
DIR
(:<drive>.) <dir>
DRIVE
<drv>
INFO
<afsp>
LIB
(:<drive>.) <dir>
RENAME
<old afsp> <new afsp>
WIPE
<afsp>
WORK
<fsp>
BUILD
<fsp>
DUMP
<fsp>
LIST
<fsp>
TIDY
TYPE
<fsp>
HELP
SPACE
HELP
FILES
These
commands all act the same as their DFS command counterparts, although drive
references will have no effects. For further details of these commands, refer to
the Watford DFS Manual, available seperately.
COMPACT
This
command performs the same as it's DFS counterpart (ie the gathering up of small
spaces in the 'disc' to one large gap), except that normal user memory is NOT
corrupted during the operation of this command.
ENABLE
This
command performs identically to it's DFS counterpart. There is, however, one
notable addition to the features associated with *ENABLE. If the *ENABLE command
is omitted prior to commands such as *DESTROY or *INIT, then the SFS prompts
with 'Go (Y/N)?'. If the user presses anything but the 'Y' key, then the
operation requested aborts. If the user presses 'Y' then it operations carry on
as if a *ENABLE had just been entered.
INIT
(-)<ROM list>
The
*INIT command, which requires a *ENABLE command, is used to initialise the SFS.
Sideways RAM is reclaimed (subject to the rules detailed below) and the
equivalent of a 'formatting' process is executed. With no parameters, any
sideways RAM present on the ROM/RAM board that is not currently marked as in use
in the sideways ROM table (located at &2A1) will be added to the silicon
disc. A message such as 'Silicon disc cleared. Set up with 128k' will be
printed. Sideways RAM is tested for in a non destructive way. When the SFS is
first accessed, it performs the equivalent of a *INIT without any parameters,
except that no messages are printed.
Should
the user desire to restrict the sockets used for the SFS, then this can be
performed by issuing a *INIT command, followed by the valid socket list (no
spaces, all in hex). For example '*INlT 123E' would request that only sockets 1,
2, 3 and &E be used for the SFS. If the sockets specified are not available,
then one of two messages may be printed: 'Socket E ignored. Not RAM.' or 'Socket
E ignored. Active ROM.'. These messages are fairly self
explanatory.
If
a minus sign ('-') precedes the socket list on a *INIT command, then the list is
treated as sockets to ignore. For a socket to be selected under these
circumstances, it must contain RAM, not be in use and also not be referenced
within this socket list.
TITLE
<title>
This
command acts the same as with a standard DFS, except that a disc is title
'Silicon Disc' by defualt.
CFSDISK
<afsp>
This
utility is used to copy from the silicon disc to the currently selected filing
system (typically a DFS or Econet). The format of the command is much the same
as with the normal DFS *COPY, except that no drive specifications are given (on
the current filing system, the currently selected drive is
assumed).
CTSDISK
<afsp>
This
is the counterpart to *CFSDISK, and copies from the currently selected filing
system to the silicon disc. Due to various technical limitations, the argument
passed with this command is slightly more restrictive in that a wildcard may not
be specified for the directory. The directory may be omitted, but it must be
specified precisely if present.
RLOAD
<ROM no.> <fsp>
This
utility command is included to allow the user to utilise any sideways RAM
present. The command takes two parameters; the socket number (a single
hexadecimal character) and a filename. The SFS ROM will then attempt to load the
named file into the specified ROM socket. There are a couple of points to note
here, though. Firstly, the name (fsp) specified does not have to correspond to
the actual name of the ROM to be loaded; it simply needs to be the name of a
file on disc. When specifying a file, note that only a valid ROM image on disc
(or SFS, or whatever) can be loaded. Attempting to load a Basic program, or
whatever, will not convert this into a ROM.
Attempting
to load a ROM into a RAM socket that is in use either in the SFS, or holds the
SFS software, then the error message 'Socket in use.’ will be printed. If
an attempt is made to load a ROM image into a socket that does not contain RAM,
then the error message 'Not RAM.' will be printed.
SILICON
This
is the * command by which the SFS is selected. It is the equivalent of a *DISC
command with a DFS. *SILICON selects the SFS and *DISC selects the DFS. Note
that the SFS will be selected when Break is pressed if it is the highest
priority filing system. If the SFS is not selected when Break is pressed,
pressing the 'S' key when the Break key is depressed will select the SFS. If the
*SILICON command is followed by an 'I', as in *SILICON I, then the SFS is
reinitialised. Library and directory settings, etc, are maintained over a Break
with the SFS, although they are reset with a Control-Break. If a *SILICON I
command is issued, then the SFS is initialised as if a Control-Break had been
issued.
Technical Information
– System Enhancements
16K
extra plug-in Dynamic RAM POA
16K
plug-in Static RAM POA
Battery
backup for static RAM POA
The
software described herein is copyright (C) 1985 Watford Electronics/Ian Smith,
with the exception of the SFS, which is copyright (C) 1985 Watford
Electronics/Andy Bray.