\hyphenpenalty10000\exhyphenpenalty10000\pretolerance10000
\def\itemitemitem{\parindent=40pt\par\indent \hangindent=60pt \textindent}
\def\itemitemitemitem{\parindent=60pt\par\indent \hangindent=80pt \textindent}
\font\bold=amb10 scaled\magstep1
\font\italic=amti10 scaled\magstep1
\font\norm=amr10 scaled\magstep1
\font\tty=amtt10 scaled\magstep1
\def\section #1{\vskip 5mm\centerline{\bold #1}\vskip 3mm}
\def\subsection #1{\vskip 2mm{\noindent\bold #1}\vskip 2mm}
\norm
\centerline{\bold Contents}
\vskip 3mm
\item{\bold 1)} Introduction
\item{\bold 2)} Fitting instructions
\item{\bold 3)} Adding software
\item{\bold 4)} Inserting and Removing Roms
\item{\bold 5)} Upgrading to a Ram board
\item{\bold 6)} Fitting switches
\item{\bold 7)} Sideways Ram software
\item{\bold 8)} Newsletter
\vskip 5mm
\centerline{\bold Figures}
\vskip 3mm
\item{\bold 1.} ESP001/2 Board Layout
\item{\bold 2.} BBC Micro-Computer Main PCB Layout
\item{\bold 3.} 16 pin DIL
\item{\bold 4.} 14 pin DIL
\item{\bold 5.} 28 pin DIL
\item{\bold 6.} 40 pin DIL
\item{\bold 7.} Write-Protect Switches
\item{\bold 8.} Read-Inhibit Switches
\vskip 3mm
\centerline{\bold Inserts}
\vskip 3mm
\item{\bold I.} Software disk (supplied with Ram boards)
\vfill\eject

\section{1.  Introduction}

{\bold Before you read on:  These boards are for the BBC Micro Model-B only.
If you have a Model-B+ or Master they will not work and you should contact
E.S.P. to arrange a refund.}
\smallskip

Which E.S.P. board do I have?  This might seem a strange question, but it is not impossible
that you have received your board as a present in which case you will need
to know exactly what you have got before you can make any sense of this
manual.
If you have a board with three hooks connected to it by long wires,
you have a Ram board (ESP002);
if you have a board with only two hooks attached then you must have a Rom board
(ESP001).  If you have neither two nor three wires then
you had better telephone us to find out why!
\smallskip

   \subsection{1.i. ESP001: Your Rom board}
Your E.S.P. Rom board is a circuit board which sits inside your BBC Micro
Model-B. The board has sockets in it into which you can plug Eproms.
Computer programs are often supplied on Eproms, and programs installed
in this way are more readily accessible than those which come on tape or disk.
\smallskip

You will notice that your E.S.P. board has nine empty Eprom sockets on it.  One of
these sockets is special; it can only be used to house your BBC Micro-computer MOS Rom.
The other eight are for general-purpose use: you can put any Sideways Eprom
into any of these sockets.  {\italic Sideways Rom} is how the Acorn community refers
to {\italic memory paging}, which is the mechanism used to squeeze lots of programs into
tiny machines such as the BBC Micro.  With the ESP001 you can plug eight of
these Sideways Roms into your BBC Micro.
\smallskip

If you are in a hurry to plug your board in and try it out, please take
your time and read the installation instructions carefully.  You will find that,
for instance, the four Rom sockets already fitted to your BBC Micro cannot be
used; if you leave the Roms in those sockets as well as adding the Rom board
you will do damage to your machine.  This is why we said you can plug {\italic eight}
Sideways Roms into your machine: you may have thought you could have both the
{\italic original} four plus {\italic another} eight. This is not the case.
\smallskip

Having just read that, you may be feeling a little cheated --- after all we
did advertise this as a full expansion system.  Well, it is.  You see, where
our board has an advantage over, say, a four-slot mini-expansion board, is in
the type of chip you can put in each of the sockets.  Normally, the largest
Eprom the BBC will accept is a 27128. This is a 16K Eprom and is the size
most often used for commercial software.  Your ESP001 however accepts 27256 Eproms
which are each 32K long.  This means that you can fit two full-sized programs
into one chip, because each 32K Rom appears to the MOS as
{\italic two} 16K Sideways Roms.
\smallskip

Unfortunately, not many programs come in this form at the moment; however
it is not difficult for you to blow your own programs into these large Roms.
All you need is an Eprom blower which will accept 27256's, and we list some
suggestions of where to buy such a thing later in the manual.
\smallskip

If you have lots of commercial Roms, and you wish to convert them from 27128's
to 27256's, we suggest you contact the Copyright holder of each program and
ask for permission to convert from one form of Eprom to another.  This is
an operation analogous to converting TAPE versions of programs to DISK, which
is something many software companies will allow, so you should not have any
problem obtaining permission.  If you do not ask for permission to copy the
Rom/Eprom onto a 27256 you will almost certainly be in breach of Copyright
and thus liable to prosecution. So be warned; check the small print on the
original packaging from when you bought your program.  If you have bought a program
which is intended for loading into Sideways Ram and you wish to put that in a
Rom, you may find the licence you accepted when you bought the product
covers that situation --- but we cannot state too often that if you are in doubt
you should contact the suppliers/Copyright holders.
\smallskip

Also, you will soon find that more and more programs are becoming available
in 27256 format.  Most of these are being sold as BBC Micro Model-B+ versions,
or as Acorn Master versions, of existing programs.  This form is most common
for programs which took up two Rom slots on a BBC Model-B.  Before buying
such a chip you should check the following:  Does it come as a separate Eprom,
or in a Cartridge? If it is in a Cartridge, you should check whether the Eprom
is soldered in or if it is socketed.  If it is soldered in then it is clearly
unsuitable for use in our board. Finally, check that the Roms do not rely on any
features of the B+ or Master which are not available when running on the Model-B
(Shadow Ram, for instance).
\smallskip

One final word about your Rom board:  after using it for a few months you may find
that 16 programs still isn't enough... If this happens to you too (as it did
to us), then you
might think about upgrading to an ESP002 Ram board.  If you are competent with
a soldering iron, you can do this yourself --- but we do offer an upgrade service
which we feel is reasonably cheap and if you are at all worried about damaging
your board or your machine we {\italic strongly recommend} you allow us to do the
upgrade for you.
   \subsection{1.ii. ESP002: Your Ram board}
The E.S.P. Ram board (ESP002) has all the features mentioned above, plus one
extra one which makes a great deal of difference.  Instead of having eight Rom
sockets, it has six Rom sockets and two sockets which can be used as either Rom
or Ram.
Two sockets may not sound much, especially if you have seen other makes of
Rom/Ram board --- where two slots means 16K ---, but it is indeed a goodly size:
We wouldn't describe 64K as {\italic massive} (although we've heard of companies who
would!) but it is certainly pretty impressive.  With two 62256 Ram chips
fitted your BBC Model-B has, for instance, the same sideways Ram capacity
as the Master, i.e. 64K in four 16K Sideways slots.
\smallskip

If you bought ESP002 from us --- as opposed to performing the upgrade
yourself --- you will see that your board has two sets of jumper plugs
fitted.  Some of these plugs allow you to configure the
two slots so that they will take either Rom or Ram.  The other jumpers are
for Write-protect and for Read-inhibit when the Ram option is selected.
\smallskip

Write-protect is fairly self-explanatory; it is there to stop programs running
in Ram from abusing themselves.  A rogue program can overwrite itself and cause
an awkward crash from which it is difficult to recover.  Also, a rogue user
can accidentally load some data to the wrong place and scribble over what should
have been a healthy program!  Enterprising computer users can fit switches across
these jumper plugs and have this write-protect option available outside the
computer for easy access.  We did not supply switches with the Ram upgrade as
it would have pushed the price up too much.  Also, as you will find later, there
is so much flexibility in wiring up the various protection options that we could
not sensibly have wired up switches for you in advance.  If enough customers
tell us we are wrong in this attitude we will see what we can do.
\smallskip

Read-inhibit is on the face of it a strange option to offer; however anyone who
has ever tried writing Sideways Rom software will tell you why it is a must!
When developing a program, if your Rom's service entry point becomes corrupt you will find that
it is next to impossible to restore your machine to normality --- even by pressing
Control-Break.  It is this case which the Read-inhibit is meant to cover.  However,
as a bonus, you can use read-inhibition as a cheap way of temporarily disabling
Roms when you need the Operating system space back...
\smallskip

Well, thats the end of the introduction.  The technical bits follow shortly.
Best wishes, and we hope you enjoy using our products.
\vfill\eject\null
\vfill
\centerline{\bold Figure 1. ESP001/2 Board Layout}
\eject\null
\vfill
\centerline{\bold Figure 2. BBC Microcomputer Main PCB Layout}
\eject
\section{2. Fitting Instructions}

\smallskip\item{}\indent
{\bold E.S.P. accept no responsibility for damage caused to your BBC-Micro
due to faulty installation.  The instructions below are guidelines only.
If you do not feel competant to perform this upgrade yourself, take your
machine to an Acorn-approved service center who will fit it for you for
a small fee.}

\smallskip\item{1.} {\bold Important. Make sure the computer is switched
off and unplugged from the mains.}

\smallskip\item{2.} Remove the four screws which secure the computer's top cover.
Two of these screws are at the rear of the box -- one on either side of the connector area.
The other two are underneath the box: one is in front of the disk power
supply connector; the other is in front of the {\bold Tube} connector.
They are the two large screws under the computer and are
usually marked `Fix'.
Lift the top cover from the computer
once all four screws have been removed.

\smallskip\item{3.} Remove the nuts and bolts which hold the keyboard in place.
There is always one at each end of the keyboard.
On early models there is a third nut and bolt which must also be removed.

\smallskip\item{4.} {\bold Gently} turn the keyboard over by pivoting it on the ribbon
cable which connects the rear of the keyboard to the computer.
Take the utmost care to avoid straining either the connectors or the cable.
Leave the keyboard resting across the back of your machine.

\smallskip\item{5.} By referring to Figure 2, identify the {\italic Rom socket
area} of the
computer.  This is in the front-right-hand corner
of the main PCB, when viewed from the normal operating position.

\smallskip\item{6.} Remove the MOS Rom.  The best way to do this is as follows:
insert a small flat screwdriver between the chip and the socket at one end
of the chip.  By {\bold gently} turning the screwdriver, ease one end of the
chip out of the socket. Apply force only between the socket and the chip,
and avoid putting pressure on the printed circuit board.
Once the pins have cleared the socket at one end, move the screwdriver
further under the chip. Repeatedly use the turning motion of the screwdriver
between chip and socket to ease the chip out along its entire length.
Take your time and {\bold exercise great care} to avoid bending the
pins on the chip.
If insufficient care is taken, it is possible that the pins will be bent
slightly by this operation.
These can be straightened by gentle squeezing with a small pair
of electrician's long-nose pliers.
This should be necessary only if the pins become badly misaligned.

\smallskip\item{7.} Take the ESP001/2 expansion board and remove the clips attached
to the mounting pins on the underside of the board.
Hold the body of the clip between the index and fore-finger, as one would
a cigarette. Then press the end of the clip with your thumb, as a doctor
would operate a syringe.
This will slide the hook at the end of the clip forward and allow
removal from the mounting pins.
Do not worry if they have already become detached in transit.
Leave the black packing foam on the pins for the moment, as it
will protect
them from damage in subsequent operations.

\smallskip\item{8.} By referring to Figure 1, identify the MOS Rom socket on
the ESP001/2 expansion board.  Insert the MOS Rom
which you removed earlier into this socket.
The best way to do this is as follows. Gently place the
Rom over the socket so that the pins locate against the socket contacts.
Check the orientation of the Rom.  The notch in the end of the Rom should
be at the end indicated by the notch marked in Figure 1.
(While every effort is made to ensure that the notch in the socket is at
the correct end on the ESP001/2 board, this cannot be guaranteed.  The
orientation indicated by Figure 1 should always be followed.)
Note that on new Roms the pins may be splayed out.  This is so that when the
chips are inserted into PCBs by machine they do not fall out again.
When fitting them by hand, you must bend them perpendicular to the chip.
To do this, hold the chip on its side and press one
set of pins against a flat surface, so that the pins sit at
right angles to the body of the chip.  Then repeat this process
for the row of pins on the other side of the chip.
Once the Rom has been located it should be pressed home.  This is best
done by holding the board in both hands, with your fingers underneath
the board.  Using your thumbs at either end of the chip, apply an even
pressure between the chip and socket, until the chip is fully inserted
into the socket.
{\bold Take great care} not to bend the mounting pins on the underside of
the ESP001/2 board.  We recommend that you keep the black
packing foam in place on these pins.
Make sure that when you insert the chip into the
socket that you do not trap any of the pins underneath the chip, or outside of
the socket.  This is a very common thing to do.  Check for this
immediately after you insert {\bold any} chip;  it will avoid frustration when
you come to try things out later.

\smallskip\item{9.} {\bold ESP002 ROM/RAM board only --- proceed to 11 if you are
fitting an ESP001 Rom-only board.}
\smallskip\item{}\indent
The ESP002 board has two sets of selection links corresponding to each
of the potential Ram sockets on board.  When the board is supplied these
links will have jumper plugs fitted, correctly
configured for however much Ram you ordered in the appropriate socket.
If you wish to use Rom in these a Ram socket you will have to change the
configuration accordingly.  Details of how to do this
are given in Figure 1.  The configurations are identical on both sets
of links.
Links 0--1 configure Rom socket 0--1/RAM socket W--X.
Links 14--15 configure Rom socket 14--15/RAM socket Y--Z.

\smallskip\item{10.} {\bold ESP002 ROM/RAM board only --- proceed to 11 if you are
fitting an ESP001 Rom-only board.}
\smallskip\item{}\indent
Using procedure (8) above insert the required Ram chips into
Ram socket W--X, and/or Y--Z, on the ESP001/2 board.
The RAMs may be 8K 6264's, or 32K 62256's or equivalent.
No alterations need be done for either type.
Ensure that the link positions for the corresponding sockets are selected
appropriately.

\smallskip\item{11.} Follow procedure (6) above and remove {\bold all} the
other Rom chips from
the Rom socket area of your computer.
If required, insert them into the
ESP001/2 board, as described in
procedure (8) above.  In general, you can use 2764 and 27128 Eproms
(and compatible
Roms) in the ESP001/2 as normally used in the BBC Micro-computer.
The BBC Micro-computer could also accept smaller 24 pin Roms
such as 2732's, which required changing Links S32 and S33 on the micro itself.
These Roms {\bold cannot} be used on the ESP001/2.
Scarcely any software has been issued on these small Roms so this is
unlikely to be a problem.  If you are using these Eproms then it is likely
that you have programmed them yourself and have access to Eprom programming facilities.
We suggest you transfer their contents to larger Eproms and recommend using 27256s.

\smallskip\item{}\indent The choice of which Rom to put into which socket
depends on several factors,
which are dealt with in section 3.
One solution to this problem is to put the Rom from computer socket
Rom 12 into ESP001/2 socket Rom 8--9, Rom 13 into Rom 10--11, Rom 14 into Rom 12--13
and Rom 15 into Rom 14--15.  This will result in similar program behaviour to
your existing set-up. However, this will not be possible if you are using the ESP002
RAM option with Ram in socket 14--15. In this case you will have to consider
your choice of Rom position more carefully as noted in section 3.
You should use this opportunity to insert any extra BBC sideways Roms you want to use
into the board.
Again you are referred to section 3 for more details.

\vfill\eject\item {12.} Check that {\bold all} Roms
have been removed from {\bold all five (5)}
Rom sockets in the computer. {\bold You should never use the ESP001/2 with any
Roms in any of the BBC Micro's Rom sockets.  The computer will not function
correctly and may be damaged if you do.}

\smallskip\item {13.} Now remove the black packing foam from the mounting pins on the
underside of the ESP001/2 board.  Check that all the pins are reasonably
straight.  If they are not, {\bold carefully} straighten them by squeezing them
along their axis with a small pair of electrician's long-nose pliers.

\smallskip\item{14.} Insert the mounting pins of the ESP001/2 into the MOS Rom socket
on the BBC Micro in the position indicated by Figure 2.
The best way to do this is
to first gently locate the mounting pins in the socket contacts.
The orientation of the board should be such that the cut out area of the
board is to the rear of the computer, neatly avoiding the heatsink on the
video ULA (which was fitted to a very large number of early machines).
If your machine does not have a heatsink, then
the video ULA should be visible in the cut out area of the ESP001/2 board.
Take care not to mis-align the pins by one position.
Once you have made sure that all the pins are correctly located in the
socket use gentle pressure from the top of the board to push the
mounting pins fully home into the socket.  At this point the board
should be resting on the jumper plugs for Links S32 and S33.  Leave
these plugs in position, as they will support the board and isolate it from
the link pins.
Once the board is in place, check again that all the mounting pins have
been correctly located.  If not, the board must be removed and re-inserted.
The board can be removed by carefully pulling it vertically upwards.
Should you bend any of these pins,
straighten them out
using the procedure from (11) above.
It is important that you take the {\bold greatest care} when inserting
or removing the ESP001/2 board from the computer.
This should be done as infrequently as possible, as the pins may become
bent or even broken through rough handling.

\smallskip\item{15.} By referring to Figure 2., identify IC76 on the BBC Micro
PCB.  Check that the chip has 74LS163 printed on it and
that the legend IC76 is printed adjacent to it on the PCB.
Connect the clip on the flying lead, attached to the pad marked `{\bold C}'
on the ESP001/2 board, to pin 2 of this chip.
This lead will normally be a black wire with a black clip.
You should open the hook by squeezing the end of the clip as in
procedure (7) above. Then place the hook behind the pin in the integrated
circuit. Finally release the end of the clip so that the hook holds the
clip firmly in place.
Check that the hook does not touch any other pin.
Pin 2 of a 16 pin dual in line integrated circuit (DIL)
such as IC76 can be identified by the Figure 3, below:
\vskip 45mm
\centerline{\bold Figure 3. 16 pin DIL\hfil Figure 4. 14 pin DIL}

\smallskip\item{}\indent If you have difficulty in connecting the clip to pin 2 of IC76
then you may find it easier to connect it to pin 6 of IC30.  Use
Figure 2 to identify IC30 (which has 74LS74 printed on it).
IC30 is a 14 pin DIL chip, and pin 6 may be identified from Figure 4 above.

\vfill\eject\item{16.} Now take the
clip on the flying lead connected to the pad marked
`{\bold L}' on the ESP001/2 board.
Connect it to pin 9 of IC76 on the BBC Micro.
This lead will normally be a red wire with a red clip. The procedure for
attaching it is similar to (15) above.  Pin 9 of IC76 can be identified from
Figure 3 above.
If you have difficulty in connecting this clip to pin 9 of IC76 then you
may find it easier to connect it to pin 5 of IC26.
Identify IC26 from Figure 2.
IC26 is a 16 pin DIL
with 74LS139 printed on it.  Use Figure 3 above to identify pin 5
of IC26, and attach the lead as described in (15) above.

\smallskip\item{17.} Turn the keyboard back over to its correct position.

\smallskip\item{18.} {\bold ESP002 ROM/RAM board only --- proceed to (19) if you are
fitting an ESP001 Rom-only board.}
\smallskip\item{}\indent
Now take the clip on the flying lead
connected to the pad marked `{\bold W}' on the ESP001/2 board.
Connect it to pin 8 of IC77 on the
BBC Micro.  Obey the rules given in (15) above to
identify IC77 which has 74LS00 printed on it.  IC77 is a 14 pin DIL.
Pin 8 can be identified from Figure 4 above.
If you have difficulty in connecting to pin 8 of IC77 then you may find it
easier to connect to either pin 24 of IC73 or, if fitted, pin 10 of IC78.
IC73 is the analogue to digital converter and has $\mu$PD7002 printed on it.
IC73 is a 28 pin DIL, and pin 24 can be identified from Figure 5 below.
IC78 is the disk controller and will be present only if you have a floppy disk
upgrade fitted to your computer.  It has 8271 printed on it and is a 40 pin DIL.
Pin 10 can be identified from Figure 6 below.
\vskip 85mm
\centerline{\bold Figure 5. 28 pin DIL \hfil Figure 6. 40 pin DIL}
\smallskip

\smallskip\item{19.} Secure the keyboard by replacing the
nuts and bolts which you removed earlier.
Ensure that the flying leads are not trapped under the keyboard.
Note that the ESP001/2 board fits rather snugly under the keyboard.
It does not matter if the ROMs on the ESP001/2 board are lightly in contact with
the keyboard PCB, but the keyboard should not bend when tightening
the screws.  If it does, the ESP001/2 board or the
ROMs on it cannot have been properly inserted into their sockets.  You should
therefore make sure that they are pushed fully home.

\vfill\eject\item{20.} Replace the top cover of the computer and secure it with the
retaining screws.  Make sure that you do not trap any of the flying leads.
Ensure that the {\italic spire clips} for the two rear retaining screws are
correctly positioned.
Finally, do not overtighten the screws.

\smallskip\item{21.} Connect your computer to the
mains supply and switch it on.
If the Micro does not start up as you would expect, switch it off immediately.
Disconnect it from the mains, and remove the cover as described in (2) above.
Follow the instructions to remove the keyboard and then read the following
information.
\smallskip\item{}\indent
Edinburgh Software Products fully tests all of its products before
dispatch to customers.  If your micro no longer works correctly then it is most
likely that one of the following easily made mistakes has occurred
when fitting your board.
\smallskip\itemitem{a)} An Eprom pin has been bent under the chip.
\smallskip\itemitem{b)} An Eprom pin has been bent outside its socket.
\smallskip\itemitem{c)} The mounting pins on the board have been plugged into the wrong
socket on the main PCB.
\smallskip\itemitem{d)} A mounting pin has been bent and is not making contact with
the BBC Micro MOS socket.
\smallskip\itemitem{e)} The mounting pins have been misaligned vertically by one or more rows.
\smallskip\itemitem{f)} A Rom has been left in one of the BBC Micro's Rom sockets.
\smallskip\itemitem{g)} A clip on a flying lead has been attached to a wrong
pin on the integrated circuit, or
to the correct pin but on the wrong chip.
\smallskip\itemitem{g)} The hooks on the flying lead clips are in contact with more
than one pin.
\smallskip\itemitem{h)} The Rams or Roms have been inserted into the ESP001/2 the
wrong way around.
\smallskip\itemitem{i)} The Rams or Roms, particularly the MOS Rom, have not been
inserted into the correct sockets on the ESP001/2 board.
\smallskip\itemitem{j)} The Rom-/Ram-select links on the ESP001/2 board are in the wrong
position (Most likely in the Ram position when a Rom has been fitted).

\vfill
\section{3. Adding Software}

So far it has been assumed that you have transferred only those Roms which were
already in your computer onto your ESP001/2 board.  Obviously you will
want to fit more at some point.  There are several factors which must be considered
when choosing which socket to use for any specific Rom.
The factors are largely determined by your particular software.
\smallskip

Whenever you want to use a piece of software in sideways Rom it is
the Machine Operation System (MOS) which allows you to
access that software.
When you issue a `*' command, or a service-call, the MOS will ask each sideways Rom in turn
whether it knows about that particular command. It does this in a
consistent order:  first it checks the Rom in socket 15, then the one in
socket 14, and so on until it finds a Rom that `understands' the command.
Once that one is found, the software in the Rom performs the requested
operations, and informs the MOS that it has done so.  The MOS then stops
interrogating further Roms as the job has now been completed.
The numbering of the Rom sockets equates to the priority
which the MOS assigns to them.
\smallskip

In fact, the MOS is slightly smarter than this. It actually knows which of the
Rom sockets have Roms in them and only bothers to ask the ones which
are really there.
It works out which sockets contain Roms whenever you perform a Control-Break,
or power up your machine.
\eject

You will note that on the ESP001/2 board the sockets are named Rom 14--15
and so on. This is because the sockets on the ESP001/2 board can take
27256 32k Roms each of which can hold {\bold two} Sideways Rom images.
The BBC Micro-computer normally uses 27128 16k Roms.  The ESP001/2 board
can also use these smaller Roms or even smaller 2764 8k Roms without
making {\bold any} changes to the board.  The more modern versions of the
BBC Micro-computer such as the B+ or Master series tend to use 27256
ROMs, and like the ESP001/2 they hold two 16k Rom images.
\smallskip

When you use a 32k Rom in the ESP001/2, the locations in the Rom are split
into two halves.  Each half contains a single 16k Rom image.
The half with lower Rom addresses (\&0000--\&3FFF) corresponds
to the image with {\bold even} priority.  That is, the lower half
of a 27256 in Rom socket 0--1 will have priority 0, in socket 2--3 it will have
priority 2 and so on.
The half with the higher Rom addresses (\&4000--\&7FFF)
corresponds with the image with {\bold odd} priority.  That is, the higher
half of a 27256 in Rom socket 0--1 will have priority 1, in socket 2--3 will
have priority 3 and so on.
\smallskip

When you use a 8k or 16k Rom in the ESP001/2, the contents of the ROM
will always appear to have the {\bold highest}, that is {\bold odd}, priority
associated with the Rom socket.  This will not normally cause any difficulty.
There is one slight problem which may be encountered with this arrangement.
Some Roms, such as the {\italic AcornSoft Graphics Extension Rom} (GXR) determine whether
they are enabled and claim workspace by looking at which Rom socket they are
in.  If GXR is in an even socket, it partially disables itself at Control-Break.
If it is in an odd socket, it enables itself and claims workspace.
On an ESP001/2 it will always appear in an odd position and will always
be enabled when you Control-Break, or power up.  You will sometimes
therefore have to disable it using the appropriate commands
when you wish to reclaim
the workspace.
\smallskip

The MOS arrangement of checking each Rom in turn is a very powerful
one.  It means that if there is any command which is recognised
by more than one Rom, the one with the highest priority will carry it
out.  This is the general rule which should guide you when choosing in
which socket to put a particular Rom.  If there are no conflicts then there
are no problems.
\smallskip

If service calls or `*' commands are issued from programs, there may be some
performance benefits to be gained by having the service Roms in high priority
sockets.  This is because the MOS will interrogate these Roms first
without having to check through all the others until it finds
one willing to carry out the command.
\smallskip

Notice that the choice of having sideways Ram in sockets 0--1, and 14--15
gives the greatest flexibility within this scheme.
If you wish to load software which pre-empts the existing software in Rom,
you should load it into slots 14 or 15.
However, if you wish to load Ram software which clashes with
your Rom software, and still access the Rom version, then
you should load into slots 0 or 1.
\smallskip

The discussion above should be sufficient to deal with all well behaved
Roms.  However some Rom software from third-party suppliers is not
always as well behaved as it might be.  Some difficulties
cannot be dealt with by this guide.
It is impossible to give any specific advice without knowing all the details
of the particular mix of Roms that you are using.
Sometimes you will have to `suck it and see', and try various
Roms in various sockets.
A general guide is to put the most wayward Roms in the lowest
priority sockets.
In these positions they are less likely to cause problems for the other
Roms that you use, by (for example) failing to return
from service calls with all the registers preserved.
Putting such Roms in the high priority sockets
may also cause other operational difficulties, as they will tend to pre-empt
commands for other Roms.  However, sometimes this may be the only place where they
will work correctly.  If this is the case then it is probably better
to load them into sideways Ram whenever you need to use that software.

\vfill\eject
\section{4. Inserting and Removing Roms}

By the time you have successfully installed the ESP001/2 board into
your machine, you will already have aquired all the skills necessary
to insert and remove Roms from the board.
All you have to do is follow the installation instructions for dismantling
your machine and gaining access to the board (procedures 1--5).
If you only wish to insert or remove Roms from sockets 0--1 through 6--7
it is probably easiest to leave the keyboard in its normal position.
If you wish to insert or remove Roms from sockets 8--9 through 14--15
then you will have to turn the keyboard over, as suggested in the fitting
instructions.
\smallskip

Once you have gained access to the required Rom socket, removing a Rom
is exactly the same as procedure 6 of the installation instructions.
However, you should be particularly careful to apply force only between the
socket and the Rom chip, and to avoid bending the ESPOO1/2 board or straining
the mounting pins.
\smallskip

If you wish to insert a Rom into the board, then the procedure 8 of the
installation instructions should be followed.  However, it will no longer
be possible to use both hands to support the board when pressing the chips
home.
Instead, support the board with your fingers under
the side of the board. Use just one thumb to press the chip home,
and apply pressure between your fingers and thumbs only.
You should take even greater care to locate the pins properly as this
will minimise the amount of force required to insert the Rom.
If you have difficulty in supporting the board then we
advise you to remove
the board from the MOS Rom socket and follow procedure 8 exactly.
The board should then be re-fitted into the MOS socket using procedure
14.  If this is necessary,
it would be sensible to fit as many Roms as possible at the same time, to
minimise the wear and tear
on the MOS Rom socket and the mounting pins.
\smallskip

Once you have made the required changes, check your work and make sure
that you have not dislodged any of the clips on the flying leads from
the ESP001/2.  Once you are satisfied that all is in order, re-assemble
the computer case using procedures 19--21 of the installation instructions.
\smallskip

\section{5. Upgrading to a Ram board}

This should only be carried out by those who have had experience
in constructing electronic equipment.  If you do not have that experience,
but wish to carry out this modification yourself, then you should
seek the help of a friend who has.  Alternatively you should return your
board, preferably in its original packing, to Edinburgh Software Products.
We are willing to do the job for you, at a modest cost.

\smallskip

You will require the following items:

\smallskip\itemitem{1.} 4 off 22k resistors Mullard SFR25 or similar.
\smallskip\itemitem{2.} 2 off 6 way straight pin Molex wafer, part no. 22-03-2061.
\smallskip\itemitem {3.} 6 off Berg Mini-Jump Connectors, part no. 65474-001.
\smallskip\itemitem{4.} E-Z `micro' hook.
\smallskip\itemitem{5.} a short length of wire.

\smallskip

The modifications are straightforward for anyone with experience of electronic
assembly. Proceed as follows.
\smallskip\item{1.} Dismantle your computer and remove the  ESP001/2 Rom board.
Follow installation instructions 1--4 to gain access to the ESP001/2 board.
Remove the two existing flying lead clips.
Carefully pull the ESP001/2 board out
from the MOS Rom socket of your computer.
Finally, remove all Roms from the ESP001 board.
\smallskip\item\indent
At this point, before actually carrying out the modifications,
you might wish to read ahead to item 4 below -- as the order
in which some of the operations can be carried out is not entirely rigid.

\smallskip\item{2.} Solder the two strips of Molex wafer pins into the board in the
position indicated by Links 0--1 and Links 14--15 on Figure 1.  The shorter
of the pins should be inserted into the board from the component side.
Identifying where Links 0--1 are positioned is easy.  It is the only strip of
six holes in that area of the board.
Identifying where Links 14--15 are is slightly more difficult. They should be
inserted into the six holes nearest the edge of the board.

\smallskip\item{3.} Solder the 4 resistors in the positions indicated by R1--R4 in
Figure 1.  Take care to identify the correct holes in the PCB which in
all cases are the ones closest to the Molex wafer pins.

\smallskip\item{4.} Using a suitable fine sharp knife such as a scalpel, remove
the printed circuit track between pins 1 and 3, and the track between
pins 5 and 6 of the Molex wafer. Both these tracks are on the underside of the board.
Do this for both Links 0--1 and Links 14--15. Be careful not to damage
any other tracks which may run close to these pins.
If you find it easier, these tracks may be cut before the Molex wafers
are soldered in, although cutting after soldering will minimise the risk of damage
to the pads for the Molex wafers.

\smallskip\item{5.} Solder the wire to the pad marked `{\bold W}' to form a flying
lead from the ESP001/2 board.

\smallskip\item{6.} Attach the other end of the wire to the `E-Z hook'.  This will
normally mean removing the top of the E-Z hook which should then be
threaded onto the wire.  The wire is then soldered to the contact within
hook and the top slipped back into place.

\smallskip\item{7.} Install the Berg Mini-Jump connectors onto the Molex wafers.
The configuration will depend whether you intend to use Ram in both
sockets immediately, or whether you wish to keep one as Rom at first.
Figure 1 gives details of the various
configurations.

\smallskip\item{8.} Insert the Ram chips into the appropriate sockets on the board.

\smallskip\item{9.} Re-install the ESP001/2 board into your computer by following
the installation instructions 11 and 14--21.
This time you must obey procedure 17 to
attach flying lead `{\bold W}' to the appropriate place.
\medskip

Note that if you only convert one of the sockets to Ram, you need install only
the corresponding Molex wafer and resistors.  R1 and R2 are associated with
socket 0-1;  R3 and R4 with socket 14-15.
\section{6. Fitting Switches}

The ESP002 Ram/Rom board allows a flexible arrangement of Write-protect or
Read-Inhibit switched to be fitted.  There are several possibilities and
it is up to you to decide which option you prefer.
\smallskip

In all cases the switches are simple single pole/single throw switches
attached to the Molex wafer pins which forms Links 0--1 and Links 14--15
on the ESP001/2 board.
These can be attached by Molex 2-pin sockets, plugged onto the links
in place of the jumper plugs.  They are connected by wires to the
switches which can be sited some convenient position outside the case of your
computer.
In all cases, when the switch is {\bold open circuit} the corresponding function
(read or write) is {\bold disabled}.
When the switch contacts are {\bold closed} the corresponding function is
{\bold enabled}.
Note that this allows the jumper plugs themselves to act as write-protect
or read-inhibit switches.  When the plugs are in position the function
is enabled.  When they are removed, the function is disabled.
Separate switches may be installed for each of the Ram chips, or alternatively
a common switch for both may be installed.
If only one Ram chip is used then the switches need only be attached
to a single set of links.  If only one of the functions is required to
have a switch external to the computer then the jumper plug for
the other function may be left in place.

\smallskip
Note that the jumper/switch for {\italic read-inhibit} is equally applicable
to sockets configured to take Roms.  This may be useful if you have
some ill-behaved Rom software which you do not use very often.
\smallskip
One suggestion we have heard which sounds interesting is to use the cassette
relay as a switch, so that MOTOR 1 would write-enable the Ram, and MOTOR 0
would write-protect it.
\smallskip

The following diagrams will provide the details necessary to
construct your own switching arrangements:
\vskip 32mm
\centerline{(a) Ram W--X\hfil (b) Ram Y--Z\hfil (c) Common to both}
\smallskip
\centerline{\bold Figure 7. Write-Protect Switches}
\vskip 32mm
\centerline{(a) Ram W--X\hfil (b) Ram Y--Z\hfil (c) Common to both}
\smallskip
\centerline{\bold Figure 8. Read-Inhibit Switches}
\vskip 12mm
\section{7. Sideways Ram Software}
Since we first advertised our Ram board, we have had a policy of continually
revising our products in the light of comments from our customers.
The first change we made was to start supplying software on disk. Currently
we issue a double-sided 80-track Acorn DFS format disk with other formats available
by special order.  We provide two utilities as standard; one to load Rom images
into Ram and one to read them back to disk again.  Both of these programs are
available through a menu program which is called up from BASIC.
The loading utility is called `romload'.  If you want to use it outside
of the menu program, it is called as follows:
\medskip
\centerline{\tty *romload romimage 0}
\smallskip
\centerline{\tty *romload romimage 1}
\smallskip
\centerline{\tty *romload romimage E}
\smallskip
\centerline{\tty *romload romimage F}
\medskip

These commands will load your file into an explicitly selected sideways Ram slot.
\medskip
\centerline{\tty *romload romimage}
\medskip
on its own will load your file into the first Ram slot it finds.

\smallskip
As well as these necessary utilities,
we are willing to fill the disk up with any user-contributed
software anyone is prepared to release.  At the time of writing
this includes a disassembler and memory dumper.
User-contributed software is unsupported.

\vfill\eject
\section{8. Newsletter}
   \subsection{i. Newsletter No. 2: Spring 1987}

Because we can produce these manuals very rapidly, we are in a position
to incorporate a monthly newsletter with the manual.
\smallskip

You may be interested in hearing a little of the history of our company.
Edinburgh Software Products, as its name suggests, is primarily a
software consultancy.  We write systems software for many machines (including
the BBC Micro) although mostly we write for large mini-computer systems
or mainframes.
You may have seen some of our software work over Christmas 1986; the keyword
search program broadcast by BBC Telesoftware on Ceefax was written by us
as a commission for the BBC.
The company was founded in mid-1986 by an ex-Acorn employee
and now employs several specialists on a consultancy basis.
\smallskip
 We branched out
into hardware design when one of our consultants identified a niche in the
market which he felt was not being satisfied by any other company; a niche
which lies between mini Rom boards and full expansion boards.  This is
really quite a timely product as 32K Ram chips are only now coming on the
market at affordable prices.
We are aware, however, that the market for Model-B add-ons is shrinking rapidly,
and that it is really only people who have put off buying a Rom board until
now who will buy ours.  Our future products will be aimed at users of the entire
range of Acorn products.
\smallskip
Since launching our boards, we have had valuable feedback from our customers
who have suggested improvements to our products.  One of these improvements was
the inclusion of a disk for Ram users.  Incidentally, anyone doing their own
upgrade can write in for a listing of the Ram loader.
Another improvement we made was to supply narrower probe hooks than we did
at first.  Apparently some early BBC Micros have less tolerance in the way their
chips were inserted.  All of these upgrades have been made at no extra cost
to our customers -- an indication of the level of support and after-sales
service you can expect from ESP.
\smallskip

There is a section below asking for your help in market research.  One product
we are considering is an Eprom blower to supplement this Rom board.  As an incentive
to reply to our questionnaire, we will try to bribe you with a discount on any
of the items you say you would like, should we decide to manufacture them!
\smallskip
   \section{Future products}
   \subsection{ii. Software update}
Our free software is at the moment usable but minimal.  We would welcome
suggestions of programs to add to our disk to improve our service to you.
Our current plans include:

\smallskip\item{\bold a)} *ROM filing system which holds files in Acorn Rom format,
but which can
be written to by *SAVE should the Rom in fact be in a Ram slot.

\smallskip\item{\bold b)} Master-compatible *SRLOAD, *SRSAVE, *SRROMS etc.

\smallskip\item{\bold c)} Printer-buffer

\smallskip\item{\bold d)} Image-grabber for running programs,
so that they can be resumed at a later
date. (Presumably this would work on most games --- allowing you to
preserve high score tables, although that is not the
use for which we intend it.)

\smallskip\item{\bold e)} Session Logger;
logs VDU statements \& sound statements for later playback.
\smallskip

We may not produce exactly these items, or we may produce these and more...
\vfill\eject

\subsection{iii. Survey/Market research}

\smallskip\item{\bold a)} {\bold Eprom blower.}
Do you already own an Eprom blower?
If so, does it program 27256 chips?
What price would you be willing to pay for an Eprom programmer which
blew 27256 chips?
Do you consider a high-quality Zero-insertion-force socket an essential
part of an Eprom programmer?
Even if it adds {\italic\$}10 to the price?
Would you object to a programmer which had to be plugged in to the mains?
Would you accept a product which came uncased, it that meant it was {\it\$}15
cheaper?
Would you ever really want to program devices of less that 8K bytes?
Does a package deal of Rom board, Prom blower, \& blank Eproms sound attractive?

\smallskip\item{\bold b)} {\bold Battery-backed up memory.}
Have you ever considered using non-volatile memory?
Would you prefer such a thing in the form of an external Ram-disk, or
as a battery-backed up Sideways Ram card (say 15 Ram slots, all with
memory retention over power down?)
If you wanted a Ram-disk, how big should it be? 512K? 1Mb? 4Mb???
Do you ever lose programs by powering down the machine without saving them
to disk first? Or word-processor text?  Would something which retained
main program memory as well as Sideways memory be of interest.

\smallskip\item{\bold c)} {\bold High-quality text printing.}
Do you have a use for high-quality text on a regular basis? (Text such as
this document)
Assuming we offered a system whereby you produced proof copy on a Epson-compatible,
would you use a postal service for final copies if the turnaround time was
two or three days?
What price per page would you find acceptable for such printing?
The proof-generating system would use a stand-alone computer attached
to your BBC.  This may cost up to {\it\$}1000. Is this unreasonable for your application?
Could you or your business efficiently use a complete typesetting system including
laser printer?
Does a price of {\italic\$}7,000 seem reasonable for such a system?
If not, what price would you feel is reasonable.

\subsection{iii. Discount offer}

\smallskip\item{\bold a)} Eprom programmer.
\smallskip\item{}\indent If you contribute to our market research by writing to us
and commenting on the questions above, and especially if you offer suggestions
of your own,you will be offered a discount on any product we should manufacture as a
result of that market research.  In fact, we are willing to go so far as to say that
if we can collect a dozen firm orders for Eprom programmers, we will supply those
at {\italic\$}65 {\italic inclusive} irrespective of how much they cost us or for how much we
eventually sell them.
We can afford to make an offer like this because it gives us a sound indication
of what demand will be and it helps subsidise our development costs.
This product would be targetted for March 1987.

\smallskip\item{\bold b)} Bulk discount.
\item{}\indent
Educational establishments or other bodies who wish to place large orders
(where large is $\geq$10) should write or phone to discuss terms.  At the time of
writing we haven't actually worked these out, so give us some warning before
expecting a firm quote.

\smallskip\item{\bold c)} Dealers/Agents.
\item{}\indent
Enquiries from mail-order stockists and/or high-street stores are welcome.
\vfill\eject\end
