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.