Steven Flintham has written this reply
to Michael Farnworth's article in Issue
22 which compared the Archimedes and
the BBC from the point of view of an
experienced assembly language coder.
Considering the contentious nature of
the subject, I have (for once)
restrained myself from interrupting in
mid-sentence, and have saved my own
comments on the subject for the end,
where I have also added the comments of
Gareth Moore of GLM PD.
The Great Archimedes Debate
---------------------------
by Steven Flintham
------------------
I would like to start by pointing out
that I wouldn't normally be writing an
article about the Archimedes in a
magazine for 8-bit computer users, but
I feel that given the anti-Archimedes
(or so I feel, anyway!) attitude
adopted by a lot of contributors,
including some who own Archimedes
themselves.
I am still using an A310 with two
floppies and a standard colour monitor.
I also have a BBC B and a Master 128,
which are used irregularly, often for
long calculations (saves tying up the
Archimedes overnight), and to run the
non-Archimedes compatible programs on
8BS discs.
To start with, I want to reply to some
of M.T. Farnworth's comments in issue
22. I consider myself quite a
reasonable programmer, although my
programming interests lie more in the
serious side of computing (which is not
to imply that "non-serious" programming
is inferior). Mr Farnworth commented on
the shortage of RAM on the Archimedes,
when compared to the BBC + 32016 second
processor. Firstly, I would like to
point out that on my 1Mb machine the
RMA takes around 176k when the machine
is first switched on. I expect Mr
Farnworth's figure of 400k is caused by
the loading of several modules,
probably on start up from a hard disc
boot file. It seems to me that
naturally a 4Mb user will make liberal
use of memory in this way, and to claim
that a 1Mb machine will typically use
the same amount of RAM (no, that's not
a mis-spelling of RMA) for modules is
unreasonable. Furthermore, I can reduce
my RMA to a mere 48k and still have
access to BASIC and the main system
modules. The comparison with 900k on
the 32016 for a much lower price seems
ridiculous - such processors are
extremely rare, and however cheap they
may be second hand, they cannot be
readily available at any price.
Besides, I cannot imagine most
programmers writing a program that
requires 900k - although, of course,
this amount can be needed if large
quantities of data are to be stored.
But this sort of data is usually
graphical, and so large storage
requirements will not usually be needed
on a BBC. Furthermore, this much data
will not fit on a single floppy, and
hard discs are far more expensive on
the BBC series.
Finally on the question of RAM, I would
like to point out that even 600/700k on
an Archimedes is probably more useful
at many times than 900k on a 32016, as
this RAM can be used for several
programs at once, whereas on a 32016
much of it may be sitting idle.
The comments on assembly language seem,
to me, to be extremely unreasonable. I
have not used assembly language to a
tremendous extent on either machine,
but I am moderately proficient -
certainly enough to feel justified in
commenting on the subject. Firstly, I
feel that pointing out that BASIC V can
be 100 times slower than BBC assembly
language is irrelevant - although
admittedly no significance was
attached to it.
The comment about accessing the
hardware directly was perfectly valid,
but I would like to point out that this
is really due to the machine
architecture of the Archimedes and not
its assembly language in particular.
Besides, there cannot be much call for
direct hardware access of this type
outside of interfacing - something I
readily admit the BBC to be vastly more
useful for. Direct access to the screen
etc is relatively simple.
Secondly, the complaint about the
necessity to load data into registers
before processing it seems to ignore
the fact that the use of registers is
extremely important in increasing the
speed of the code, and I certainly find
it no more inconvenient than the 6502
method of adding the contents of memory
directly to the accumulator. This is
largely a matter of personal opinion,
however. I would like to point out
that, as compensation for this
inconvenience, it is no longer
necessary to continually shuffle data
into and out of memory and between
registers to use certain types of
indexing and to free the registers for
those tasks which can only use one
register on the 6502.
The problem with not being able to load
32-bit immediate constants directly is
annoying, but it is relatively simple
to avoid, and several utilities have
been published which allow a 32-bit
constant to be loaded using a macro.
I feel that on the whole, ARM code is
no more difficult to write than 6502
code and the extremely convenient
conditional codes, plethora of
registers etc more than outweigh any
minor disadvantages that may be
present. Besides, any need to write a
small amount of extra code to overcome
these small problems is surely due to
the RISC architecture - many, simple
instructions. I expect most of the
irritations experienced by Mr Farnworth
come, as he suggested, from his
experience on the 6502. Incidentally, I
HAVE used the ARM multiplication
command several times in the relatively
minor amount of ARM code I write -
usually to convert X and Y coordinates
to a screen address.
In an earlier issue of 8BS, Daniel
Shimmin pointed out that there was
little benefit in having a fast
processor, and that it had merely lead
to the creation of pointless activities
like ray-tracing to utilise the power.
I would disagree with this - the
additional power can be used to
implement a user-friendly environment
such as a WIMP system. Furthermore, on
a multi-tasking system the full power
of the processing can always be
utilised by running several tasks
"simultaneously". Admittedly, without
multi-tasking there is a certain point
for many tasks where extra processing
power is wasted - word processing is
the traditional example, where the user
rather than the processor limits the
speed.
I hope that I have not made any
inaccurate statements in this article -
if so, I apologise and ask that you let
me know via 8BS so that I can reply.
Finally, I hope that neither M.T.
Farnworth nor Daniel Shimmin take
offence at my comments - they are
intended in a constructive light.
-- Firstly, it is true that 8-Bit
Software currently has an
anti-Archimedes bias to it, but it is
very moderate compared to the anti-BBC
bias adopted by commercial magazines,
one of which recently more or less said
that BBC's were worthless and their
owners should throw them away and buy
an Archimedes.
8-Bit Software is not urging that
Archimedes owners should throw away
their computers and buy a BBC, or even
that BBC owners should throw away all
thoughts of upgrading. However, it is
clear that the complexity of the
Archimedes (partly caused, as Steven
points out, by the advanced nature of
its design) means that BBC programmers
will not find the transition from 6502
to ARM easy.
I am not suggesting that the Archimedes
is inferior, merely that BBC owners
(general users as well as programmers),
should think twice about upgrading
unless they are sure that their
existing system is unable to meet their
needs.
I'm afraid I remain sceptical about the
relative benefits of multi-tasking; I
can't think of any three programs that
I would want use simultaneously (as
opposed to just having them loaded
simultaneously, which my 32016 is quite
capable of, or transferring data
between them, which hardly requires
vast processing power). The only
possible application I can think of
would be a multi-tasking spellchecker,
but the BBC is powerful enough to have
a word-processor and spellchecker
running simultaneously, so an upgrade
is unnecessary. Similarly, you hardly
need all that processing power just to
run a WIMP system, when the immensely
popular Apple Macintosh WIMP system
runs on a lowly 68000.
To make a correction to what Steven has
said on the subject of module space on
the Archimedes; the new RISCOS 3.1,
since it is of greater complexity,
requires far more module space than the
old RISCOS 2 which I believe Steven is
using on his A310. At switch-on,
without activating any additional
modules, the RMA takes up well over
400K. Another member of 8-Bit Software
has recently purchased an A3010 for use
with his A5000, and I am told by a
friend that he finds difficulty getting
most software to work due to lack of
memory.
I intend to cover the pros and cons of
the 32016 in a later article, but to
add another opinion on the Archimedes
Debate, I would like to quote the views
of Gareth Moore on the subject. Gareth
owns an A5000 (2Mb at least), as well
as having programmed on the BBC and
Master 128, and writes as follows:
"I noticed your quote of 350K free
memory on an A3010. I'm surprised how
low this figure is, but then starting
BASIC as I write this letter I find I
have 252K free - but then I do have
Rhapsody II loaded (playing music on my
MIDI keyboard), Edit (which I'm not
using) and First Word Plus (which I'm
writing this letter on). And I'm in a
60Hz (and mega high resolution) screen
mode. Oh, and I've got 77 relocatable
modules installed - most of them are
necessary, and nearly all claim
workspace. It's too much trouble to
kill off the ones you don't need.
"I disagree with some of the comments
in the article 'Arc v Beeb
Programming', but agree with others.
The BASIC on the Arc is much easier to
use - the split line IFs and all the
new commands (especially
variable+=whatever) make programming
much easier and less messy. That said
if you want to write a "legal"
(desktop-using) program then it's
impossible to do it without producing
something that would terrify a beginner
and totally confuse an average
programmer. Experts would probably just
be sick. What I mean is that it's a
pretty hopeless task unless you like
doing jigsaws (examining other people's
code and sticking little bits together
to do the things you want). Either that
or spend almost £100 on a lovely mound
of paper entitled The Programmer's
Reference Manual (parts 1 to 4 and
indices)."
So much for the Archimedes debate for
now. I am hoping that Duncan Webster
will at some stage continue his
Archimedes Review and shed further
light on the subject from the viewpoint
of someone who has used the BBC, the
Archimedes and the PC as well. In the
meantime, if anyone else has any
further opinions they want to express,
please feel free to write in.