The *ROMS command
The *MENU command
The *RAMDISK command
The *SHADOW command
The *PRINTER command
- The MANAGER commands
- The TOOLKIT commands
- The LINEMASTER commands
- Software on disc: VSTORE and WINDOS
- Technical details of the Twomeg and Fourmeg boards
you feel that you would have any difficulty in installing the Solidisk fourmeg
Board, please please call our offices for the name and telephone number of your
nearest local expert, who will carry out the work free of
fourmeg board is connected to the BBC computer by:
40-pin sockets (blue) that support the board on the 6502 socket
colour coded wires to be pushed on to the pins of S20, S21 and
spring clips to be clipped on to points in the BBC micro.
Open the computer case by undoing the four large self-tapping screws which may
be labelled "fix".
Remove the 6502 (IC1). Fit the two blue sockets in its place and replace the
6502 on top and switch on the computer. Switch it off. It should work normally.
If not, then check for bent pins, repeating the last stage until it
Remove the three links (short bars) on S20, S21 and S22. S21 has two links;
remove only the one on the South (the keyboard)
Install the three colour coded wires as follows: Grey to S20, middle
to S21, South-west corner pin Mauve to S22, middle pin Do not replace the
original links, but keep them in a safe place.
Clip the spring clip attached to the pad on the fourmeg board
select" to pin 9 "South-East corner" of IC76 (7LS163N). An alternative point for
this connexion is pin 5 of IC26 (74LS139N).
Clip the sprung clip attached to the pad on the fourmeg board
clock" to the leg of the resistor marked R106 on the BBC board. It is located a
couple of centimetres South of the cassette socket (see
Remove the 6502 chip again. Install the fourmeg board in its
Switch on the computer. You should see:
ZZZK Expansion (XMHz)'
Depending on the board and position of the changeover switch (if
the message does not correspond to the size of the RAM on the board, or you get
the message 'no 4MHz clock', this may be due to variations in
supply between BBC micros, then it may be necessary to use a different pick-up
point for the supply of the 4MHz clock. If it shows less than the correct number
of bytes, switch off the computer and try attaching the clip labelled "4MHz
clock" to a different point; first tray pin 5 of IC44
and switch on again. If this still does not work, try pin 2
or pin 12 of IC43 (74LS04N). If none of these 4MHz supplies passes the memory
test, please rink the Solidisk office for advice.
Or any other Disk Filing System fitted.
the *ROMS command is issued, the machine will fist all the ROM software
(firmware) in residence.
typical display might be thus:
STL ADFS (S) 16k
DFS 2.1 M (1770)(S) 16k
Clock and Desk (S) 16k
Linemaster (SL) 16k
MANAGER (S) 32k
SOLIMON (SL) 16k
UVIPROM (D) 16k
BASIC (LR) 16k
* * Back up Rom store * * *
INTER-CHART (SL) 16k
VIEW (SL) 16k
DFS,NET (S) 16k
(in parentheses after the name of the ROM) 'S' means Service, 'L' means
Language, 'D' means Disabled, and 'R' means Second
The various items of firmware which appear in the backup store (which are blown
into 32k EPROMS 27256 devices) are available from the
issued on its own will produce a menu of drive 0, although when followed by a
parameter (between 0 and 5) will, subject to DFS or ADFS firmware, produce a
menu of the relevant drive.
menu will accept various commands from the keyboard. These
or <ESC> terminate
switch to alternate catalogue (ADFS mode only)
to <5> switch drives (but see above)
or ">" change currently selected RAM bank
perform hard break
return to previous directory (ADFS only)
the MENU screen, in DFS mode, the Resident ROMS are displayed and numbered;
those that are disabled are shown in red. Below this display is shown the
catalogue information of the disc. In ADFS mode this is available as a second
screen merely by pressing <TAB>; a second depression of
key will revert to the original screen.
files shown all have letters next to them, and pressing the relevant key will
CHAIN, *RUN, *EXEC, *TYPE, *LOAD, etc., the selected file. In ADFS mode, if the
file is in fact a directory, this will be selected, and can be displayed by
RAMDISK is created by typing in:
(<drive number>) <RETURN>
drive number can be from 0 to 3 using the normal BBC Disc Filing
or from 0 to 7 using the Advanced Disc Filing System (ADFS) although in ADFS
mode, if a Winchester disc drive is not connected, only drive numbers 0 to 3,
will be accepted.
RAMDISK created will be in the same format as the current disc filing system,
and of 200k in either case. In DFS, this is equivalent to a single sided
80-track (20k diskette. If the RAMDISK is already present, *RAMDISK <drive
number> will simply change the drive number and leave the contents
RAMDISK will survive the normal BREAK key, but CTRL+ BREAK will turn it off.
However, it may be recovered by typing in *RAMDRIVE
This command does not initialise a RAMDISK, and therefore should only be used
for recovery. If you wish to create a RAMDISK in a specified format, then you
(<drive number>) <RETURN>"for DFS
(<drive number>) <RETURN>"for ADFS
created, the RAMIDISK will behave exactly like a normal disc. For example COPY,
BACKUP, DELETE, DZAP, etc., will work as usual. However, there is no need to
FORMAT the RAMDISK before use.
the RAMDISK be no longer required, it is disabled by
protected software usually relies upon special formatting of the disc which
contains the programs, and the RAMDISK only uses pointers to the stored
programs, it is impossible to transfer software from protected discs to
The minimum acceptable abbreviations are:
The Solidisk DFS or ADFS ROMs must be present to allow a RAMDISK to be created.
If not, they must be loaded into Sideways RAM bank F. Solidisk will upgrade your
present DFS ROM at nominal cost if required, or free if it is a Solidisk
can find out which version of DFS you have in your machine by
following releases will support RAMDISK
2.2 F DFS 2.2 M DFS 2.2 J
2.1 J issue 1 or issue 2
2.1 M issue 1 or issue 2
2.1 D issue 1 or issue 2
2.1 M issue 2
20/2 issue 2
used as Shadow RAM, it shadows the BBC screen memory, allowing BASIC (and other
languages) more workspace, up to &8000 in any screen
commands to toggle Shadow memory on/off are the same as on the BBC
can use *SHADOW or *FX114 either directly from the keyboard or in BASIC and
other programs (including machine language).
turn the Shadow RAM on, type in:
by a mode change (even to the same mode). These steps must be included in any
!BOOT file requiring Shadow mode. BBC Plus emulation is achieved by following
command by a non-zero number, for example:
will select Shadow RAM when the mode change its to a number over
128=MODE 0 with Shadow; MODE 135=MODE 7 with Shadow, and so on. A mode number
between 0 and 7 will turn Shadow off.
turn the Shadow RAM off, type in:
The simplest way to run a program in Shadow mode is to type in
press <BREAK> then load and run your program.
You should not change the Shadow status inside your programs or after loading
them (unless you know what you are doing) because this may result in a bad
*SHADOW will survive the action of the <BREAK> key alone but will be
turned off by <CTRL>+ <BREAK> or switching the computer off and on
*SHADOW will use the first RAM bank (bank 8, which shows as Shadow 0). If you
need to assign any other bank number to the Shadow, then *FX115, <bank
number> must be used afterwards to allocate the Shadow RAM bank for the
Only bank 0 is available when the RAMDISK is active.
RAM BETWEEN SHADOW AND SIDEWAYS SYSTEMS
cannot use the same areas of RAM twice over, but the 256k board can be shared
between the Shadow and Sideways system. The RAM on the board is physically
arranged as eight banks of 32k, each mapped to occupy a VARIABLE but CONTINUOUS
block somewhere between &800 and &FFFF in the memory
bank is normally used solely as Shadow RAM or Sideways RAM but not without some
compromise; the total requirement must not exceed 32k.
If used as Shadow RANT, the block will normally extend from &3000
In this case the top 12k (between &8000 and &AFFF) is free and can be
used as Sideways RAM.
If your program needs a very large Shadow area you can position your block
lower, from &8oo to &8800. In this case, the bottom 30k is available as
Shadow RAM and the top 2k can be used as Sideways RAM. To put the block in this
If your program can be restricted to screen mode 3, the block can be positioned
higher, from &4000 to &C000. In this case the top 15k
and &C000) is available to hold a full 16k ROM image. To put the block in
this position you type in ?&FE36=&20 <RETURN>. This may be done
either from the keyboard or from a program.
The block can also be positioned from &8000 to &FFFF. In this case
RAM is available, but the Sideways RAM is 32k. To put the block in this
position, &10 should be poked into &FE36 " but you must not type it in
from the keyboard or the computer will crash. It must be done in machine code,
as in the Manager ROM. Solidisk will supply the "PATCH" program to software
authors wishing to develop ROMs to occupy this position.
*PRINTER command is used to copy the Printer Buffer software from
ROM into a sideways RAM bank.
syntax is *PRINTER <RAM bank>
the printer buffer is required, the <BREAK> key must be depressed in order
to initialise it. The Printer Buffer software is only available for a parallel
printer, and the current state of the buffer may be obtained
ADVAL(-4)". As bank switching is dangerous when the possibility
occurring is likely, the buffer software is written to address only 16k, which
should be more than adequate for most purposes.
MANAGER ROM is concerned with the control of the RAM board's various
commands available are:
command provides BBC + type Shadow RAM emulation, most notably for firmware
packages such as Wordwise Plus, Inter-word, Inter-Sheet, etc. This is also
obtainable by *FX114,1. Used with a change of mode, this will give Shadow RAM or
not, as per the mode number. For example, MODE 0 with *BASIC gives PAGE at
&3000; MODE 128 with *BASIC gives the same screen mode but leaves PAGE at
is the command used to invoke Shadow RAM where all screen modes selected are
shadowed by the inbuilt RAM. When lollbwed by "OFF" it turns off Shadow RAM, and
the machine is returned to its normal state from the next change of language
(even to the same one).
*RAMDISK SERIES OF COMMANDS
commands are thoroughly documented in chapter 4, so we shall not go into them in
does exactly as it says -- and tests the sideways RAM on
command is documented on page 3, so we will not go into
*SELECT command is available to copy the contents of a backup store on
ROM to sideways RAM for use. The *ROMS command (q.v.) enables the identification
of suitable ROM software for this.
<RAM bank> <ROM name -- or an abbreviation>
example of this command, using the list of ROMS in chapter 2, would
F DFS, NET <RETURN), (or *SELECT F DFS < RETURN >
is not a command as such, but merely a reminder that the complete list of
commands available from the toolkit can be listed by "*HELP
copies all VDU commands to an allocated area in sideways RAM. This area may be
varied by copying the VDU recorder into a higher or lower RAM bank. The higher
it is, the smaller the RAM available will be. Once installed, <BREAK> must
be pressed in order to initialise the ROM image.
*RECORD records the VDU output
stops the above process.
appends a sequence to one already recorded, and is halted by
shows the result of your work !
causes a printer buffer to be created in the SWR in the
bank. <BREAK> must be pressed in order to initialise
to use Toolkit
on or off the blinking Cursor.
you to check a program in memory with a file on disk.
display all the function key definitions.
you to change one string for another one.
command will display the program in an easily read form.
search for a string and print the fine number for each
command will fool the computer into thinking it has just been turned
Join command will GLUE a file on to the end of the program in
load a set of Function key definitions from Disk.
save a set of Function key definitions to Disk.
disable the Toolkit rom.
show all variables or procedures.
produce a menu of all the files on the drive and all the
hunt through from a specified address for a certain
remove a program and PAGE to the specified address.
a catalog of all Roms in the machine.
you to renumber a program in parts or whole.
a report of the last error.
a rom to be loaded into a certain SWR bank.
step through each rom and allows you to enable or disable
attempt to recover a 'Bad Program' from memory.
a report based on free memory and FX settings.
sound to be turned on or off.
TO USE THE TOOLKIT
is a Rom for the BBC containing a set of machine code utilities enhancing the
basic language. All commands must start with an asterisk '*' in order so as to
be passed to the paged Roms installed in your BBC. All commands sent to the
Toolkit Rom can be in 'UPPER' or 'lower' case -- for
commands can be abbreviated in the usual way by entering the first few letters -
only problem with abbreviating commands is they can clash with
In the event of two Roms clashing you can prefix Toolkit with a lower case
chapter lists all the different commands in alphabetical order with a
description of each. Most of the commands in Toolkit can be used in direct or
indirect mode, but it is possible to have unusual effects -- for example, a
program performing EXCHANGE while running will wipe out all the
type in *HELP TOOL. (CR). You should now see:
I S A P F) (H/D)
proves that the Toolkit Rom is functioning correctly. If this does not occur, go
back to stage 4 and check for bent pins. If the Rom still fails to work, please
contact the technical department here at Solidisk.
following abbreviations mean:
Address in Hexadecimal
Sideways Ram bank
Disc drive surface
() parentheses indicate that parameter inside them is optional and <
indicate that parameters are compulsory.
will print up all relevant information about the program. It is useful to see
how much memory is left and how long the the programis.
will turn the cursor ON and OFF until you change mode.
will perform byte-by-byte check on a basic program in memory, with the file name
which you specify. If an error occurs the line will be listed and no further
checking will be carried out.
is most useful when it is used for checking if the basic program in memory has
been changed from the program previously saved.
PRINT "This is a test"
PRINT "This is a test"
simply clears sideways RAM and performs a power-up break,
down the <E> key and pressing <BREAK> also executes this
searches through the program in memory to try to find the first string. If it is
found it then replaces it with the second string. The strings will NOT be
tokenised unless they are prefixed with a '@' sign before the
<str> <str> (G/S)
will list the program out in a more reasonable form by performing
return before each semi-colon. To exit from EXPAND just press
is used to search through an entire program for a specified set of characters
(string). If found, the line with the relevant string will be
Before executing the FIND command it is advisable to type
to turn on paged mode in order that the text does not scroll off the screen. To
exit from FIND press escape. Machine code programmers wishing to find labels
will type in '*FIND.(CR)'.
Hardbreak command simulates 'power on' of the computer, which will completely
down the <H> key while pressing <BREAK> also executes this
JOIN command 'glues' the file you specify on to the program in
will only work with Basic programs. Once it has loaded the next program you have
the option to 'RENUMBER'.
KEYLOAD command will load in any key definitions already saved. Once loaded you
can edit the keys with the EDIT command.
KEYSAVE will save any predefined key definitions under the file name
KILL command simply kills off the Toolkit Rom until Break. It is most useful for
preventing Toolkit clashing with a Rom when you cannot prefix each command by a
could go to the Toolkit.
would go to the Toolkit.
would be sent to any Roms below Toolkit.
will alphabetically list all the current variables. The parameters
V will list all variables in hexadecimal.
V D will list all variables in decimal.
I will list all integers in hexadecimal.
I D will list all integers in decimal.
S will list all strings.
A will list all variables, strings and integers in
A D will list all variables, strings and integers in
P will list all DEF PROC's.
F will list all DEF FN's.
MENU command works in DES and ADFS. The only parameter is the drive number, and
that is optional. Commands in the menu are:
select a lower Ram bank
select a higher Ram bank
performs a 'power up' reset
select drive 0
select drive 1
select drive 3
exit from the MENU simply press 'RETURN'. To load software just press the letter
corresponding to it. If its execution address is &801F or &8023, then it
is a basic program and it will be changed. If its execution address is above
&8000 then it must be a Rom and it will be loaded into sideways Ram. If its
execution address is is &0000 or &FFFF it is a ASCII file and it will be
*DUMPed. Anything else is a machine code program and will be
will search through memory from the specified address to try to find the search
string. It will search up to address and &FFFF and then
"This is a test"
This is a test
found at location &4000
allows examination and editing of memory contents. The <TAB> key switches
between entry of ASCII or hexadecimal (refer to top right-hand corner of
screen). The cursor keys scroll through memory, in all directions. This effect
may be accelerated by the <SHIFT> key. The MZAP mode is exited by pressing
PAGE command will move a basic program to the address specified. If you move
below &1200 type *TAPE first and move the program down. To save the program
move it back to being above &1200 and then type *DISK before saving
RCAT command lists all the Roms in your computer.
(L) SFX Graphics
(S) DFS 2.1 (1770)
(S) STL TOOLKIT 1.20
(S) Printer Buffer
(S) Vdu Recorder
(D) Game Master
means it is a language Rom
means it is a service Rom
means it has been disabled
NUMBER command is an enhanced version of the Basic renumber. It has four
parameters all of which are compulsory. The parameters are as
is the start line
is the line which RENUMBER will finish on
is the new line number to be assigned to the start line
is the increment
is possible by pressing 'CTR F0' to 'CTR F9' to insert teletext control codes
into your program. Both Basic and Toolkit RENUMBER will try to match these codes
with basic tokens and try to renumber them, but a 'RENUMBER failed at line'
error will occur.
100,300;200,2 will renumber from line 100 to 300, making lines 100 to 300 become
200 onwards. The increment will be in steps of 2.
REPORT command will report the last error, from any Rom.
will load a ROM into the sideways RAM bank specified.
8 UVIPROM will load UVIPROM into Ram bank 8.
RWIPE command will kill off any Rom after break. All the Roms will
so you just have to type 'W' to the Roms you want wiped.
W, Restore R, Leave L
(L) SFX Graphics :Leave
(L) SOLIMON :Leave
(L) BASIC :Leave
(S) UVIPROM :Wipe
(S) STL ADFS :Leave
(S) DFS 2.1(I770) :Leave
(L) Printer Buffer :Leave
(D) Vdu Recorder :Restore
SALVAGE command will recover a bad program or recover it as much as possible. If
the start to the program doesn't commence with a carriage return the SALVAGE
routine will come back with the error "No CR at start".
this happens just type ?(PAGE)=13 and then *SALVAGE. If the SALVAGE routine ends
before it should it has found the negative byte as the MSB of the next line
number. To make it continue type '?(TOP=F)=0' and then
10 Failed Link
0 Failed Link
38 Failed Link
SOUND command will turn off the sound until you turn it back on with
OFF will turn off the sound
ON will turn on the sound
STATUS command displays all the relevant information about the
3 0 FX 4 0
5 1 FX 6 10
9 25 FX 10 25
11 50 FX 12 8
OFF BRK OFF
ON BASIC 2
0 ERR 0
0 ERL 0
@ 1982 Acorn
Toolkit Rom uses certain memory locations inside the BBC to operate correctly.
These locations are:
General Toolkit Workspace
Permanent Toolkit Workspace
&C for switching between the Toolkit and Basic ROM.
the Toolkit uses certain memory locations.
These locations are used by the paged ROMs as scratch pad.
These locations are the Econet workspace, but are used by
Toolkit Check digit.
Each bit represents bank &0-&7
Each bit represents bank &8-&F
If the bit is set to 1 then that Rom is disabled, or if the bit is
to 0 the ROM works as normal.
These locations are used by the Solidisk Basic 3 for
AND FOURMEG RAM/ROM EXPANSIONS
DETAILS OF THE FOURMEG BOARDS
STL fourmeg and two Mz boards have three special registers for their own use.
These are &FE32, &FE34 and &FE36. NB: These registers (like
&FE30) are read only, and any attempt to read them will produce the value of
the high order address (FE or 254).
RAM ACCESS REGISTER &FE32
RAM access register controls which RAM bank is currently selected for any write
operation, thus a RAM or ROM may write directly to itself or to another bank.
This is useful when a multi-bank operation is required (as
or VDU RECORDER). A RAM may also wish to write to itself (as in
BUFFER program). In this way, loading of a RAM may be accomplished simply as in,
say, a boot file as follows:
SHADOW REGISTER &FE34
shadow register is associated with whether the RAM bank in question
used as a SHADOW RAM or not. Earlier versions of the MANAGER ROM
clear this register correctly on a hard break, thus necessitating
register direct to clear it ((?&FE34=0), thus returning the display
Simply, if this register holds a negative number (has the top
then screen writes go into the SHADOW RAM bank and are displayed
order to read the Shadow screen it is necessary to use
takes as its parameters:
number, Locations &F6 and &F7 contain the address of the byte to be
exit, the Accumulator contains the value of the byte to be read. This routine
has not been documented by Acorn, but has been used in applications
passage was reproduced from the BBC Advanced User guide, with
SIZE REGISTER &FE36
size register controls the size of the sideways; RAM, or ROM and is used
RAM and ROM are configured as normal (i.e. each bank is 16K
RAM and ROM (where the ROMs are larger than 16K) are configured as 32K banks
(with the top 1K from &FC01) giving access to the operating system through a
hardware 'window'" beware of OS calls with &FE36=10. It is better to set
interrupts when using this, taking care not to generate NMI, or the machine may
hang, and to restore the contents of &FE36 when the process is over. It is
not necessary to set this register when a write operation is being performed, as
access is available at all times to the upper portion of RAM (up to &FC00)
= &80 This causes ROM programs resident in 32K EPROMS " 27256
to be 'swapped' with the lower 16K, without affecting the RAM. Thus,
to *SELECT, a small routine such as this could be used:
of machine code example follow.
CALLS AND THE FOURMEG AND TWO MEGAHERTZ BOARDS
with A=&72 (114)
determines the action followed
all MODE changes produce SHADOW RAM handling
all MODE changes between 0 to 7 remove SHADOW RAM;
all MODE changes between 128 and 135 produce SHADOW RAM
all MODE changes remove SHADOW RAM
with A=&73 (115)
determines the SHADOW RAM bank used:
SHADOW 0 (SHADOW bank 8)
SHADOW 1 (SHADOW bank 9)
with A=&74 (116) (bank F)
returns the ASCII value of "S", signifying that the STL fourmeg or
board is in place, included for firmware writers such as
to use the STL SHADOW RAM.
and SOLIDISK are registered trade marks and are the property of
Limited. BBC in this manual refers to the computer produced
Computer Limited for the British Broadcasting Corporation. Acorn
Concepts are registered trade marks.
TECHNOLOGY 17 Sweyne Avenue, Southend-on-Sea, Essex SS2