CONTENTS
1.
Installation
2.
The *ROMS command
3.
The *MENU command
4.
The *RAMDISK command
5.
The *SHADOW command
6.
The *PRINTER command
Appendices
A1
- The MANAGER commands
A2
- The TOOLKIT commands
A3
- The LINEMASTER commands
A4
- Software on disc: VSTORE and WINDOS
A5
- Technical details of the Twomeg and Fourmeg boards
1.
INSTALLATION
If
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
charge.
The
fourmeg board is connected to the BBC computer by:
""two
40-pin sockets (blue) that support the board on the 6502 socket
;
-"three
colour coded wires to be pushed on to the pins of S20, S21 and
S22.
-"two
spring clips to be clipped on to points in the BBC micro.
PROCEDURE
1.
Open the computer case by undoing the four large self-tapping screws which may
be labelled "fix".
2.
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
does.
3.
Remove the three links (short bars) on S20, S21 and S22. S21 has two links;
remove only the one on the South (the keyboard)
4.
Install the three colour coded wires as follows: Grey to S20, middle
pin
Blue
to S21, South-west corner pin Mauve to S22, middle pin Do not replace the
original links, but keep them in a safe place.
5.
Clip the spring clip attached to the pad on the fourmeg board
marked
"ROM
select" to pin 9 "South-East corner" of IC76 (7LS163N). An alternative point for
this connexion is pin 5 of IC26 (74LS139N).
6.
Clip the sprung clip attached to the pad on the fourmeg board
marked
"4MHz
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
picture).
7.
Remove the 6502 chip again. Install the fourmeg board in its
place.
8.
Switch on the computer. You should see:
Solidisk
ZZZK Expansion (XMHz)'
BBC
Computer 32K
DFS
2.IM (1770)
BASIC
>
1.
Depending on the board and position of the changeover switch (if
fitted).
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
the
4MHz
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
(74LS74N)
and switch on again. If this still does not work, try pin 2
of
IC44,
or pin 12 of IC43 (74LS04N). If none of these 4MHz supplies passes the memory
test, please rink the Solidisk office for advice.
2.
Or any other Disk Filing System fitted.
*ROMS
When
the *ROMS command is issued, the machine will fist all the ROM software
(firmware) in residence.
A
typical display might be thus:
>
*ROMS
00
STL ADFS (S) 16k
01
DFS 2.1 M (1770)(S) 16k
02
Clock and Desk (S) 16k
03
Linemaster (SL) 16k
04
MANAGER (S) 32k
05
SOLIMON (SL) 16k
06
UVIPROM (D) 16k
07
BASIC (LR) 16k
*
* * Back up Rom store * * *
21
INTER-CHART (SL) 16k
22
VIEW (SL) 16k
23
DFS,NET (S) 16k
>
Where
(in parentheses after the name of the ROM) 'S' means Service, 'L' means
Language, 'D' means Disabled, and 'R' means Second
Processor
Relocatable.
The various items of firmware which appear in the backup store (which are blown
into 32k EPROMS 27256 devices) are available from the
*SELECT
command (q.v.).
THE
*MENU COMMAND
*MENU
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.
The
menu will accept various commands from the keyboard. These
are:
<RETURN>
or <ESC> terminate
<TAB>
switch to alternate catalogue (ADFS mode only)
<1>
to <5> switch drives (but see above)
"<"
or ">" change currently selected RAM bank
"?"
new disc
"*"
perform hard break
"^"
return to previous directory (ADFS only)
On
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
the
<TAB>
key will revert to the original screen.
The
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
pressing <TAB>.
THE
*RAMDISK COMMAND
The
RAMDISK is created by typing in:
*RAMDISK
(<drive number>) <RETURN>
The
drive number can be from 0 to 3 using the normal BBC Disc Filing
System
(DFS)
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.
The
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
unaffected.
The
RAMDISK will survive the normal BREAK key, but CTRL+ BREAK will turn it off.
However, it may be recovered by typing in *RAMDRIVE
<number>.
N.B.
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
should use:
*RAMDFS
(<drive number>) <RETURN>"for DFS
*RAMADFS
(<drive number>) <RETURN>"for ADFS
Once
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.
Should
the RAMDISK be no longer required, it is disabled by
"*RAMOFF".
Because
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
RAMDISK.
Notes
:
1.
The minimum acceptable abbreviations are:
*RA.
for RAMDISK
*RAMA.
for RAMADFS
*RAMD.
for RAMDFS
*RAMDR.
for RAMDRIVE
2.
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
DFS.
You
can find out which version of DFS you have in your machine by
typing:
*HELP
<RETURN>
The
following releases will support RAMDISK
DFS
2.2 F DFS 2.2 M DFS 2.2 J
DFS
2.1 J issue 1 or issue 2
DFS
2.1 M issue 1 or issue 2
ADFS
2.1 D issue 1 or issue 2
ADFS
2.1 M issue 2
ADFS
20/2 issue 2
THE
SHADOW COMMAND
When
used as Shadow RAM, it shadows the BBC screen memory, allowing BASIC (and other
languages) more workspace, up to &8000 in any screen
mode.
The
commands to toggle Shadow memory on/off are the same as on the BBC
Plus.
You
can use *SHADOW or *FX114 either directly from the keyboard or in BASIC and
other programs (including machine language).
To
turn the Shadow RAM on, type in:
*SHADOW
<RETURN>
Or:
*FX114
<RETURN>
followed
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:
*FX114,1
<RETURN>
This
will select Shadow RAM when the mode change its to a number over
127:
MODE
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.
To
turn the Shadow RAM off, type in:
*SHADOW
OFF <RETURN>
Notes:
1.
The simplest way to run a program in Shadow mode is to type in
*SHADOW
<RETURN>,
press <BREAK> then load and run your program.
2.
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
program error.
3.
*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
again.
4.
*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
computer.
5.
Only bank 0 is available when the RAMDISK is active.
SHARING
RAM BETWEEN SHADOW AND SIDEWAYS SYSTEMS
You
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
map.
Each
bank is normally used solely as Shadow RAM or Sideways RAM but not without some
compromise; the total requirement must not exceed 32k.
1.
If used as Shadow RANT, the block will normally extend from &3000
to
&B000.
In this case the top 12k (between &8000 and &AFFF) is free and can be
used as Sideways RAM.
2.
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
position:
?&FE36=&40
<RETURN>.
3.
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
(between
&8000
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.
4.
The block can also be positioned from &8000 to &FFFF. In this case
no
Shadow
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.
THE
*PRINTER COMMAND
The
*PRINTER command is used to copy the Printer Buffer software from
the
MANAGER
ROM into a sideways RAM bank.
Its
syntax is *PRINTER <RAM bank>
When
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
by
"PRINT
ADVAL(-4)". As bank switching is dangerous when the possibility
of
NMI
occurring is likely, the buffer software is written to address only 16k, which
should be more than adequate for most purposes.
THE
MANAGER COMMANDS
The
MANAGER ROM is concerned with the control of the RAM board's various
functions.
The
commands available are:
PLUS
SHADOW
RAMDISK
RAMOFF
RAMDFS
RAMADFS
TESTRAM
RAMDRIVE
ROMS
SELECT
TOOLKIT
*PLUS
This
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
&8000.
*SHADOW
*SHADOW
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).
Syntax
:
*SHADOW
OFF
THE
*RAMDISK SERIES OF COMMANDS
These
commands are thoroughly documented in chapter 4, so we shall not go into them in
detail.
*TESTRAM
*TESTRAM
does exactly as it says -- and tests the sideways RAM on
the
fourmeg
board, non-destructively.
*ROMS
This
command is documented on page 3, so we will not go into
it.
*SELECT
The
*SELECT command is available to copy the contents of a backup store on
a
32k
ROM to sideways RAM for use. The *ROMS command (q.v.) enables the identification
of suitable ROM software for this.
Syntax
:
*SELECT
<RAM bank> <ROM name -- or an abbreviation>
<RETURN>
An
example of this command, using the list of ROMS in chapter 2, would
be:
*SELECT
F DFS, NET <RETURN), (or *SELECT F DFS < RETURN >
)
TOOLKIT
This
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
TOOLKIT".
RECVDU
Description:
*RECVDU
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.
Syntax
*RECVDU
<RAM bank>
Commands
*RECORD records the VDU output
*STOP
stops the above process.
*ADD
appends a sequence to one already recorded, and is halted by
*STOP
*PLAY
shows the result of your work !
PRINTER
Description:
*PRINTER
causes a printer buffer to be created in the SWR in the
specified
RAM
bank. <BREAK> must be pressed in order to initialise
it.
Syntax:
*PRINTER
<RAM bank>
SOLIDISK
TOOLKIT
CONTENTS
Preface
Introduction
Starting
to use Toolkit
Toolkit
Commands
Memory
Usage
Command
Summary
Glossary
Index
COMMAND
SUMMARY
BFREE Show
Free memory.
CURSOR Turns
on or off the blinking Cursor.
CHECK Allows
you to check a program in memory with a file on disk.
EDIT Will
display all the function key definitions.
EXCHANGE Allows
you to change one string for another one.
EXPAND This
command will display the program in an easily read form.
FIND Will
search for a string and print the fine number for each
occurrence.
HARDBREAK This
command will fool the computer into thinking it has just been turned
on.
JOIN The
Join command will GLUE a file on to the end of the program in
memory.
KEYLOAD Will
load a set of Function key definitions from Disk.
KEYSAVE Will
save a set of Function key definitions to Disk.
KILL Will
disable the Toolkit rom.
LVAR Will
show all variables or procedures.
MENU Will
produce a menu of all the files on the drive and all the
SWRs.
MSEARCH Will
hunt through from a specified address for a certain
string.
PAGE Will
remove a program and PAGE to the specified address.
RCAT Displays
a catalog of all Roms in the machine.
NUMBER Allows
you to renumber a program in parts or whole.
REPORT Returns
a report of the last error.
RLOAD Allows
a rom to be loaded into a certain SWR bank.
RWIPE Will
step through each rom and allows you to enable or disable
them.
SALVAGE Will
attempt to recover a 'Bad Program' from memory.
STATUS Produces
a report based on free memory and FX settings.
SOUND Allows
sound to be turned on or off.
STARTING
TO USE THE TOOLKIT
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
example:
*STATUS
or *status
Furthermore,
commands can be abbreviated in the usual way by entering the first few letters -
for example:
*ST.
The
only problem with abbreviating commands is they can clash with
other
Roms.
In the event of two Roms clashing you can prefix Toolkit with a lower case
s.
TOOLKIT
COMMANDS
This
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
variables.
INTRODUCTION
Now
type in *HELP TOOL. (CR). You should now see:
BFREE
CURSOR <ON/OFF>
CHECK <fso
>
EDIT
ERASE
EXCHANGE <(str)
(str)> (G/S)
EXPAND
FIND <str>
HARDBREAK
JOIN <fsp>
KEYLOAD <fsp>
KEYSAVE <fsp>
KILL
LVAR (V
I S A P F) (H/D)
MENU (drive)
MSEARCH <addr>
<str>
MZAP (<addr>)
PAGE <addr>
PRINTER <bank>
RCAT
NUMBER <S.F:S,I>
RECVDU <bank>
REPORT
RLOAD <bank>
<str>
RWIPE
SALVAGE
STATUS
SOUND <ON
/OFF>
This
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.
The
following abbreviations mean:
addr
Address in Hexadecimal
bank
Sideways Ram bank
drive
Disc drive surface
fsp
File name
str
String
The
() parentheses indicate that parameter inside them is optional and <
>
arrows
indicate that parameters are compulsory.
BFREE
Description
:
BFREE
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.
Syntax
:
*BFREE
Example:
Free
memory=25342 bytes
Program
size=2 bytes
Vars.
size0o bytes
Next
free location=&1902
PAGE=&1900
LOMEM=&1902
TOP=&1902
HIMEM=7C00
HEAP=&1902
STACK=&7000
CURSOR
(ON/OFF)
Description
:
CURSOR
will turn the cursor ON and OFF until you change mode.
Syntax
:
*CURSOR
(ON/OFF)
CHECK
Description
:
CHECK
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.
Syntax
:
*CHECK
(str)
Comment:
CHECK
is most useful when it is used for checking if the basic program in memory has
been changed from the program previously saved.
Example:
*CHECK
Syntax:CHECK
(fsp)
File
not found
LO.
"MENU"
*CHECK
MENU
Verification
completed ok.
60
PRINT "This is a test"
*CHECK
MENU
Verification
fails
60
PRINT "This is a test"
ERASE
Description
:
ERASE
simply clears sideways RAM and performs a power-up break,
Syntax:
*ERASE
Comment:
Holding
down the <E> key and pressing <BREAK> also executes this
routine.
EXCHANGE
Description:
EXCHANGE
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
string.
Syntax:
*EXCHANGE
<str> <str> (G/S)
EXPAND
Description
:
EXPAND
will list the program out in a more reasonable form by performing
a
carriage
return before each semi-colon. To exit from EXPAND just press
the
'escape'
key.
Syntax
:
*EXPAND
Example:
NEW
10A=O:B=O:C=O:D=O:E=O
*EXPAND
10
A=O
: B=O
: C=O
: D=O
: E=O
FIND
Description
:
FIND
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
listed.
Syntax
:
*FIND
<str>
Comment:
Before executing the FIND command it is advisable to type
'(CTRL)
N'
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)'.
Example:
*FIND
&FE60
HARDBREAK
Description:
The
Hardbreak command simulates 'power on' of the computer, which will completely
reset it.
Syntax:
*HARDBREAK
Comment:
Holding
down the <H> key while pressing <BREAK> also executes this
routine.
JOIN
Description:
The
JOIN command 'glues' the file you specify on to the program in
memory.
It
will only work with Basic programs. Once it has loaded the next program you have
the option to 'RENUMBER'.
Syntax:
*JOIN
(fsp)
*KEYLOAD
Description:
The
KEYLOAD command will load in any key definitions already saved. Once loaded you
can edit the keys with the EDIT command.
Syntax:
*KEYLOAD
(fsp)
Example:
*K.0P.
"HELLO"M
*KEYSAVE
keys
*K.0
*KEYLOAD
keys
*EDIT
*K.0.P.
"HELLO"M
*KEYSAVE
Description:
The
KEYSAVE will save any predefined key definitions under the file name
specified.
Example:
*K.0P.
"HELLO"
*KEYSAVE
keys
*DUMP
keys
KILL
Description:
The
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
letter.
Syntax:
*KILL
Example:
*STATUS
could go to the Toolkit.
*sSTATUS
would go to the Toolkit.
*KILL
*STATUS
would be sent to any Roms below Toolkit.
LVAR
Description:
LVAR
will alphabetically list all the current variables. The parameters
are:
*LVAR
V will list all variables in hexadecimal.
*LVAR
V D will list all variables in decimal.
*LVAR
I will list all integers in hexadecimal.
*LVAR
I D will list all integers in decimal.
*LVAR
S will list all strings.
*LVAR
A will list all variables, strings and integers in
hexadecimal.
*LVAR
A D will list all variables, strings and integers in
decimal.
*LVAR
P will list all DEF PROC's.
*LVAR
F will list all DEF FN's.
*MENU
Description:
The
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
'?'
recatalog disk
'@'
save Rom
'*'
performs a 'power up' reset
'^'
run Rom
'0'
select drive 0
'1'
select drive 1
'3'
select drive 3
To
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
*RUN.
Syntax:
*MENU
(drive)
*MSEARCH
Description:
MSEARCH
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
stop.
Syntax:
*MSEARCH
<addr> <str>
Example:
MODE
7
$&4000=
"This is a test"
*MS.1900
This is a test
String
found at location &4000
MZAP
Description:
This
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
<ESC>.
Syntax:
*MZAP
(<addr>)
PAGE
Description:
The
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
it.
Example:
NEW
LOAD
"MENU"
*TAPE
*PAGE
E00
OLD
PAGE
1900
DISK
SAVE
"MENU1"
RCAT
Description:
The
RCAT command lists all the Roms in your computer.
*RC.
0
(L) SFX Graphics
1
(L) SOLIMON
2
(L) BASIC
3
(S) UVIPROM
4
(S) UVIPROM
5
(S) DFS 2.1 (1770)
6
(S) STL TOOLKIT 1.20
7
(S) Printer Buffer
8
(S) Vdu Recorder
9
(D) Game Master
L
means it is a language Rom
S
means it is a service Rom
D
means it has been disabled
Syntax:
*RCAT
NUMBER
Description:
The
NUMBER command is an enhanced version of the Basic renumber. It has four
parameters all of which are compulsory. The parameters are as
follows:
NUMBER
(S,F;N,I)
S
is the start line
F
is the line which RENUMBER will finish on
N
is the new line number to be assigned to the start line
I
is the increment
It
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.
Example:
*NUMBER
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
Description:
The
REPORT command will report the last error, from any Rom.
Syntax:
*REPORT
RLOAD
Description:
RLOAD
will load a ROM into the sideways RAM bank specified.
Syntax:
*RLOAD
<bank> <fsp>
Example:
*RLOAD
8 UVIPROM will load UVIPROM into Ram bank 8.
RWIPE
Description:
The
RWIPE command will kill off any Rom after break. All the Roms will
be
fisted
so you just have to type 'W' to the Roms you want wiped.
Syntax:
*RWIPE
Example:
*RWIPE
Wipe
W, Restore R, Leave L
0
(L) SFX Graphics :Leave
1
(L) SOLIMON :Leave
2
(L) BASIC :Leave
3
(S) UVIPROM :Wipe
4
(S) STL ADFS :Leave
5
(S) DFS 2.1(I770) :Leave
6
(L) Printer Buffer :Leave
7
(D) Vdu Recorder :Restore
SALVAGE
Description:
The
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".
If
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
'*SALVAGE'.
Example:
>LO.
"MENU"
>NEW
>A=0
>0O.
(U.C.)
Bad
program
>
*SAL.
Addr
Line No.
&1900
10 Failed Link
Control
char A/F/T
&1904
0 Failed Link
Control
char A/F/T
&1908
38 Failed Link
&1922
20
&1958
30
&1961
40
SOUND
Description:
The
SOUND command will turn off the sound until you turn it back on with
a
'*SOUND
ON' command.
Syntax:
*SOUND
<ON/OFF>
Example:
*SOUND
OFF will turn off the sound
*SOUND
ON will turn on the sound
STATUS
Description:
The
STATUS command displays all the relevant information about the
computer.
Example:
<*STATUS
FX
3 0 FX 4 0
FX
5 1 FX 6 10
FX
9 25 FX 10 25
FX
11 50 FX 12 8
@%=&0000090A
SOUND
OFF BRK OFF
CURSOR
ON BASIC 2
LISTO
0 ERR 0
WIDTH
0 ERL 0
REPORT:
@ 1982 Acorn
Free
memory=25342 bytes
Program
size=2 bytes
vars.
size=0 bytes
Next
free 1ocation=&1902
PAGE=&1900
LOMEM=&1902
TOP=&1902
HIMEM=&7000
HEAP=&1902
STACK=&7000
MEMORY
USAGE
The
Toolkit Rom uses certain memory locations inside the BBC to operate correctly.
These locations are:
&50-&60
General Toolkit Workspace
&90-&9F
Permanent Toolkit Workspace
Page
&C for switching between the Toolkit and Basic ROM.
Why
the Toolkit uses certain memory locations.
&50-&60
These locations are used by the paged ROMs as scratch pad.
&90-&9F
These locations are the Econet workspace, but are used by
the
Toolkit for:
&90
Toolkit Check digit.
&91
Each bit represents bank &0-&7
&92
Each bit represents bank &8-&F
If the bit is set to 1 then that Rom is disabled, or if the bit is
set
to 0 the ROM works as normal.
&93-&9F
These locations are used by the Solidisk Basic 3 for
general
workspace.
TWOMEG
AND FOURMEG RAM/ROM EXPANSIONS
TECHNICAL
DETAILS OF THE FOURMEG BOARDS
The
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).
THE
RAM ACCESS REGISTER &FE32
The
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
in
RAMDISK,
or VDU RECORDER). A RAM may also wish to write to itself (as in
the
PRINTER
BUFFER program). In this way, loading of a RAM may be accomplished simply as in,
say, a boot file as follows:
0001
?&FE32=9
0002
*LOAD SOLIMON
0003
?&FE32=10
0004
*LOAD UVIPROM
0005
*K.10*SOLIMON¦M
0006
CALL !"4
THE
SHADOW REGISTER &FE34
The
shadow register is associated with whether the RAM bank in question
is
being
used as a SHADOW RAM or not. Earlier versions of the MANAGER ROM
did
not
clear this register correctly on a hard break, thus necessitating
poking
the
register direct to clear it ((?&FE34=0), thus returning the display
to
normal.
Simply, if this register holds a negative number (has the top
bit
set),
then screen writes go into the SHADOW RAM bank and are displayed
from
there.
In
order to read the Shadow screen it is necessary to use
OSRDRM.
This
takes as its parameters:
"Call
address: &FFB9
Y=ROM
number, Locations &F6 and &F7 contain the address of the byte to be
read.
On
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
software."
This
passage was reproduced from the BBC Advanced User guide, with
acknowledgements.
THE
SIZE REGISTER &FE36
The
size register controls the size of the sideways; RAM, or ROM and is used
thus:
?&FE36=0:
RAM and ROM are configured as normal (i.e. each bank is 16K
long)
?&FE36=&10
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)
on write.
?&FE36
= &20
?&FE36
= &40
?&FE36
= &80 This causes ROM programs resident in 32K EPROMS " 27256
devices
-
to be 'swapped' with the lower 16K, without affecting the RAM. Thus,
in
order
to *SELECT, a small routine such as this could be used:
Pages
of machine code example follow.
OSBYTE
CALLS AND THE FOURMEG AND TWO MEGAHERTZ BOARDS
OSBYTE
with A=&72 (114)
X
determines the action followed
X=0
all MODE changes produce SHADOW RAM handling
X=1
all MODE changes between 0 to 7 remove SHADOW RAM;
all MODE changes between 128 and 135 produce SHADOW RAM
X=FF
all MODE changes remove SHADOW RAM
OSBYTE
with A=&73 (115)
X
determines the SHADOW RAM bank used:
X=0
SHADOW 0 (SHADOW bank 8)
X=1
SHADOW 1 (SHADOW bank 9)
OSBYTE
with A=&74 (116) (bank F)
No
entry requirement
X
returns the ASCII value of "S", signifying that the STL fourmeg or
two
megahertz
board is in place, included for firmware writers such as
Computer
Concepts,
to use the STL SHADOW RAM.
STL
and SOLIDISK are registered trade marks and are the property of
Solidisk
Technology
Limited. BBC in this manual refers to the computer produced
by
Acorn
Computer Limited for the British Broadcasting Corporation. Acorn
and
Computer
Concepts are registered trade marks.
SOLIDISK
TECHNOLOGY 17 Sweyne Avenue, Southend-on-Sea, Essex SS2
6JQ