ISSUE 21 HARDWARE REVIEW
In this article I will be examining one of the hardware expansion options
open to users of the Master 128. Next issue I hope to cover a lot more
hardware, not necessarily Master-specific; if those of you who own a
sideways RAM or ADFS upgrade for the BBC B, or a 6502 second processor
with either machine, could give details of who manufactured the upgrade,
how reliable it is, how useful it is compared to other possible upgrades
etc. then this would be very helpful. Similarly if anyone owns a 512
board, a mouse, Music 500/5000 or anything, please try to give some
details, with particular emphasis on how useful you find the hardware.
I bought my 65C102 internal co-processor second-hand for #40.00 a few
months ago. Also known as the "Master turbo board", and incompatible with
the BBC B, the co-processor provides an additional 65C12-compatible
processor which runs at 4MHz rather than the Master's 2MHz, but leaves the
old processor to carry on doing I/O operations (disk access, keyboard
input etc.) while the co-processor board (with its own 64K of RAM) runs
languages (such as BASIC programs or word-processors).
I am fairly sure the 65C102 is now out of production, though Watford were
still selling them new for #115.00 + VAT a year or so ago (a bit much
really). Expect to pay about #50.00 for a second hand one, but be careful
because (1) they are very delicate to post, (2) you need the little
plastic supports to fit it into your computer (see below), (3) you could
do with the support disk too (see below). If anyone wants one, I know
someone who might sell one for #50.00 or #60.00. I think Acorn replaced
the 65C102 with the "Universal Second Processor", which is probably an
awful lot slower because it's external.
The 65C102 upgrade is essentially just a printed circuit board, about a
third of the size of the one already in the Master, with various chips on
it. It is attached by four little plastic supports, which fit into the
existing Master PCB; the actual connection is achieved by two sets of long
pins which fit into connectors in the Master PCB.
Actually inserting the board is not that much more difficult than
replacing the CMOS RAM battery, though it is a bit fiddly; the
co-processor board wouldn't click onto one of the plastic supports
properly in my Master, so I just left it, as it seemed fairly firmly
attached by the other three supports. Even after adding the board there is
still room for an internal modem, and possibly other add-ons as well (I am
not sure as to whether you can add a 512 PC upgrade simultaneously;
someone said you could, but they would have to be one on top of the
other).
Once you have inserted the board and screwed the case back together, the
co-processor is activated by two *CONFIGURE commands and a hard break;
thereafter, you can de-activate and re-activate it with just one command
and a hard break.
The board occasionally makes barely audible (i.e. really quiet and only
just noticeable) high-pitched whining noises, and also creates a fair
amount of heat, both of which effects are unusual for Acorn machines.
However, both the noise level and the heat level are nothing compared to a
48K Spectrum, and I very much doubt that there is any over-heating or
other problems. Also, both effects contribute to the impression that the
machine has been made significantly more powerful, which is an important
psychological part of buying the thing!
When running BASIC, the speed of non-I/O operations is exactly doubled as
you would expect, and similar effects are achieved with any language. This
is quite impressive if you think about it, and was in fact a much greater
speed increase than I had expected. However, you then have to start
thinking: what exactly can you do with such a speed increase?
I had bought the board because I used the computer a lot, and would be
using it a lot more while running 8BS, and so a cheap but powerful
speed-up board would inevitably be useful. However, there is relatively
little that a faster processing speed is actually useful for, as virtually
all applications (word-processing, archiving, disk management & making
backups) require so much input/output that a faster language processor
will not actually speed them up (if you can only type at 50 words per
minute a faster processor won't make you type any faster; and your disk
drive stays at the same old speed, and thus archiving and file-copying
programs do as well).
This means that the pursuit of processor speed for its own sake is largely
pointless unless you have a clear idea FIRST of what you intend to use the
speed for. This is one of the problems that the Archimedes has; they
developed an unbelievably fast chip and then had to go to great lengths to
develop new and bizarrely useless applications that would require that
much speed, such as ray-tracing and incredibly detailed playable graphics
demos which masquerade as "games".
To get back to the 65C102, there are things which it would save masses of
time at; for example, if you frequently write large assembly language
programs, these can take a long time to re-assemble for testing after each
modification, and doubling the speed of this is of great use. Similarly
programs like slower spell-checkers or text-compressors will benefit
immensely from a co-processor, so long as it is processing data that slows
them down rather than disk access. Also if you create VERY large or
complex spreadsheets, or regularly use number-crunching programs.
The other operation which would benefit from faster processing speed is
use of a compiler, for more or less the same reasons as assembly language.
However, this brings me to the second major problem with the co-processor
- compatibility; Dr A.J. Travis' Small C Compiler does not run with the
65C102.
I test-ran the co-processor with about thirty games, most of them fairly
complex machine-code games, and about two or three simple BASIC games
worked, plus the considerably less simple machine-code game "Snacker".
Although the 65C102 is a fully compatible co-processor, games which write
directly to the screen memory, or access MOS routines illegally (both of
which are often done for the sake of speed, but can be easily avoided),
will be doing it in the wrong processor; the I/O processor memory is still
displayed on screen as normal. As I've said elsewhere, there's no real
point in playing games twice as fast anyway, though it would be nice if
programmers would make an effort to achieve compatibility. (Even most
Acornsoft games fail!)
I don't really know what the compatibility situation is with commercial
applications or programming software; more expensive compilers etc. are
generally more likely to work, but there is certainly no guarantee. The
majority (just) of my PD utility programs and ROMs are compatible, and an
old commercial database program was as well. You don't need to use a
word-processor with the co-processor anyway, as the speed increase is
irrelevant (see above). However, all the built-in Master software (View,
Viewsheet, EDIT, and, I think, TERMINAL) is compatible, as is, very
importantly if you write a lot of machine code, the BASIC assembler.
Just to make things quite clear, simply because a program is not
compatible with the co-processor, does not mean that you cannot use it
while the co-processor is installed; you simply de-activate the board with
a *CONFIGURE command and hard break (the equivalent of turning off an
external second processor).
So compatibility is a major factor to bear in mind, particularly if you
wish to upgrade largely in order to speed up third-party applications or
programming software. From my point of view, the only serious piece of
software which I use regularly that didn't work was the C compiler.
Apart from speed, there are other advantages which the co-processor
provides. One of the most important from my point of view is the software
supplied on the co-processor support disk. This consists of HiBASIC,
HiEDIT and BUFFER.
HiBASIC and HiEDIT are similar concepts, in that they are versions of the
languages already supplied with the Master, but altered so as to run at
&B800 in the co-processor rather than &8000, thus leaving 14K or so more
memory free. However, while HiBASIC appears to be virtually identical to
the BASIC IV already supplied, HiEDIT is actually version 1.16 of EDIT,
which provides a number of small but very useful enhancements, such as a
facility which tells you if you have saved the document in memory since
you last changed it, and prevents you losing data by accidentally
over-writing an unsaved file in memory (unless you insist). After using
HiEDIT for two months, I find EDIT extremely irksome to go back to (but no
slower).
You may feel that HiBASIC gives no real advantage when BASIC 128 is
already supplied on the Welcome disk, but I find BAS128 very unreliable -
in fact I am not sure that my copy works at all. By contrast, HiBASIC is
100% reliable - and also leaves all four sideways RAM banks free.
Incidentally, the standard VIEW in the Master appears to locate itself at
&B800 automatically, thus giving you 48K of text space.
BUFFER is a program which makes use of the main memory in the input/output
processor, now redundant since language processing is done in the
co-processor, as a 24K printer buffer. Considering that a printer buffer
add-on for my printer (of roughly equal size) costs something like #59.00
+ VAT, this is an extremely useful feature if you are doing a lot of
word-processing.
So the principal features of these three pieces of software are concerned
with using the additional memory. But the co-processor also saves memory
not only by having HIMEM higher but by having PAGE lower - it places it at
&800, thus saving more space without any extra software.
All this extra memory may seem in a certain sense rather pointless - no
commercial or PD program is going to be 48K long, because only users with
additional processors could use it. Similarly if you wanted to write more
than 30K or so of text on an unexpanded Master, you could always use
several files.
However, the Master with co-processor is an extremely powerful setup for
programs you are writing for your own use. To give an example, while
running the program which allows me to access and analyse members'
questionnaire data, the BASIC program itself is held in &800 to &2000 in
the co-processor. The questionnaire data for all members is held between
&2000 and &B800 in the co-processor, thus allowing 400 bytes of data each
for a maximum of 97 members (=about 38K of data). Simultaneously, the main
memory of the I/O processor is used as a 24K printer buffer, the 20K
shadow memory of the I/O processor is allowing me to work in mode zero,
and the Master's 12K private RAM is preventing ADFS getting in the way
(issues are always prepared in ADFS). Four 16K ROM images containing
utility software are loaded into the Master's 64K of sideways RAM for
whenever I need them. Meanwhile my favourite setup for using EDIT is
stored in CMOS RAM for when I want to go back to working on the disk
magazine (EDIT is built into the Master, and HiEDIT stored on my library
disk in drive 1 ready-to-run), and the current drive and directory that
DFS is working in (to load the questionnaires from members' disks, or
check the amount of space free on the current issue) is also stored in the
private RAM.
I suppose you could implement similar facilities on an unexpanded Master
if you were really determined, but you certainly wouldn't fit all that lot
in memory at once, and there would be a lot of OPENIN commands! (I just
*LOAD DATA 2000 at the start). The BBC B would not even fit in mode zero,
an ADFS file buffer and the BASIC program all at once. More to the point,
the co-processor can also sort, select or average data (all non-I/O
operations when the data is held in memory) twice as fast as a Master and
more than twice as fast as a BBC B.
So to finally conclude, the 65C102 co-processor is a very powerful upgrade
if you are really serious about using the Master 128, and it's convenient
too, since it takes up no space at all outside the machine (no cables, no
power supply, no nothing). But don't expect automatic compatibility, and
don't expect it to speed up your disk drive - or your typing!