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.