Beebug
1st May 1987
Author: Dave Somers
Publisher: Watford Electronics
Machine: BBC B/B+/Master 128
Published in Beebug Volume 6 Number 1
It's been a long wait but Watford Electronics' Eureka board is now available, putting a massive 58K of RAM at your disposal. Dave Somers takes a look at this novel device.
Eureka Board (Watford Electronics)
The BBC model B has often been criticised for its lack of memory. Disc filing systems and other ROMs soon claim vast amounts of RAM, leaving the poor user with hardly any left, and needing to use low-resolution screen modes in order to save memory. Shadow RAM boards have become popular, providing all the storage required for screen displays, thus giving the user more memory for programs and data. However, even with shadow RAM, etc, there is still very little memory available for some applications. To address this need, Watford Electronics has produced its "Eureka" board which allows the model B user to have a staggering 58K of memory at his/her disposal when used with certain popular application 'languages', namely Basic, View, and Wordwise Plus.
The complete package comprises a small circuit board measuring approximately 5 inches square, a sideways ROM, and a 22 page A5 instruction manual.
Installation
Installation of the Eureka board proved straightforward, but a little fiddly. The 6502 CPU chip should be gently removed and placed into the socket provided on the Eureka board, and the Eureka board should then be stuck to the underside of the lid of the computer using the adhesive pads supplied. The Eureka ROM, which is used to control the RAM board, is fitted into any vacant sideways socket. Finally a flexible lead from the Eureka board must be plugged into the 6502 CPU socket on the main circuit board.
Should you have any other expansion boards which use the CPU socket, e.g. Watford Electronics RAM/ROM board, etc., then the Eureka board should be connected to the CPU socket on the expansion board.
What Is The Eureka Board?
The Eureka board has 96K of memory. This is organised as two 16K banks and one 64K bank. To use the extra memory offered on Eureka, the language to be used, e.g. Basic, View, etc., is copied into one of the 16K banks where it is modified to work with Eureka. The 64K RAM is used by that language as if it were main memory - all totally transparent to the user. The third 16K bank is used by the Eureka board itself to control various functions.
The Eureka ROM supplied contains all the necessary code to carry out the above operation, as well as some useful utilities for manipulating the Eureka's memory.
Using The Eureka Board
The Eureka board can be used with Basic, View, and Wordwise Plus only. Due to the fact that the language will have to be modified to work on the Eureka board (see above), only certain versions of software can be successfully used, namely:
- Basic version II
- View version A2.1
- Wordwise Plus version 1.4E
To use one of these languages on the Eureka board a star command has to be issued, e.g. *BAS64 for Basic. There is then a short pause while the ROM image is transferred into the Eureka board and then modified. The language then works just as normal, except that it has 58K of memory at its disposal!
Using Eureka With Basic II
PAGE will remain at its previous value (typically &1900 with DFS fitted). However, HIMEM (the top of memory) is at a staggering &FF00! This means that the user is able to use memory from &1900 to &FF00 for programs, data storage etc., that's just under 58K of memory!
There are, however, some limitations imposed by Eureka on Basic. The most important one is the use of star commands from within a program. These are not allowed - any star commands have to be turned into their OSCLI equivalent, e.g.:
10 *FX 4,2
would have to become:
10 OSCLI("FX 4,2")
Secondly, any occurrences of LOAD or SAVE will have to be converted to their *NLOAD or *NSAVE counterparts (see below).
Thirdly, the use of indirection operators (i.e. ?, !, $) to poke/peek screen, RAM or port values, etc. is not allowed - e.g. ?&7C05=33 to write to the screen will not work. Instead, the official OS routines will have to be used (e.g. OSBYTE, OSWRCH, etc). Anyway, this shouldn't be too much of a problem as everyone always writes legal code, don't they?
Fourthly, when using Basic's in-built assembler, any machine code produced will not be placed into Eureka's memory, but will be in the main memory. Should any programs use machine code, they will then have to be modified to work with Eureka.
Using Eureka With View And Wordwise Plus
Eureka imposes no limitations on the operation of View which acts as normal. Wordwise Plus will behave exactly as normal except that the Wordwise Plus programming language is not available!
Using Machine Code On Eureka
No machine code programs will work on the Eureka card - they are always executed in the main memory. However, the Eureka's RAM can be used as a large data store for overlays, data, etc. The Eureka ROM provides an OSWORD call which is used to transfer data between main and Eureka RAM, and vice versa.
The Eureka ROM
The Eureka ROM, apart from copying and modifying languages to work on the Eureka board, also contains some useful routines:
*NEDIT is used to invoke the Eureka memory editor. This can be used to examine the memory contents of the Eureka board, and modify them should you wish.
*NLOAD and *NSAVE are used in the same manner as *LOAD and *SAVE. However, instead of main memory being loaded or saved from disc, Eureka memory is loaded or saved. This is particularly useful when loading or saving data into Eureka's RAM.
The Time Factor
Since it is not possible to access the Eureka RAM directly, all loading and saving operations to disc are slowed down.
Filing System:
LOAD 1K into MAIN memory: .39
LOAD 1K into EUREKA memory: 1.19
% time increase: 305%
SAVE 1K into MAIN memory: @.79
SAVE 1K into EUREKA memory: 4.21
% time increase: 533%
The above table shows various times for loading and saving data to/from Eureka memory and main memory whilst using the DFS and the ADFS filing systems. Roughly speaking, save operations take five times longer than usual, and load operations take three to four times longer than usual. This is obviously a considerable loss of speed.
Whilst times are being mentioned, it should be pointed out that programs running on the Eureka card execute at the same speed as if they were in main memory.
Conclusions
The Eureka board is well manufactured and works extremely well. The instruction manual is well laid out and has clear operating instructions. For the techno-freaks there are ample details and examples of how to manipulate the Eureka's memory map, but these are not for the faint-hearted.
The Eureka board is limited in that it will only work with certain versions of a limited range of software, and even then there may be further restrictions on use. Hopefully, the range of software which will work on the Eureka board will be expanded in the future (the View family and Computer Concepts' Inter series are apparently being adapted at present). The extreme slowness of loading and saving programs/data can be annoying. However, when you consider how much memory is now at your disposal it is arguably a small price to pay.
Despite the limitations of the Eureka board, it is well worth having in your machine. The Eureka board has to be the ultimate memory expansion board so far produced for the Beeb, but at a price, and potential users may well wish to consider a 6502 second processor as a worthwhile alternative which also offers more speed from a proven product.