Steven Flintham has written this replyto Michael Farnworth's article in Issue22 which compared the Archimedes andthe BBC from the point of view of anexperienced assembly language coder.Considering the contentious nature ofthe subject, I have (for once)restrained myself from interrupting inmid-sentence, and have saved my owncomments on the subject for the end,where I have also added the comments ofGareth Moore of GLM PD. The Great Archimedes Debate --------------------------- by Steven Flintham ------------------ I would like to start by pointing outthat I wouldn't normally be writing anarticle about the Archimedes in amagazine for 8-bit computer users, butI feel that given the anti-Archimedes(or so I feel, anyway!) attitudeadopted by a lot of contributors,including some who own Archimedesthemselves. I am still using an A310 with twofloppies and a standard colour monitor.I also have a BBC B and a Master 128,which are used irregularly, often forlong calculations (saves tying up theArchimedes overnight), and to run thenon-Archimedes compatible programs on8BS discs. To start with, I want to reply to someof M.T. Farnworth's comments in issue22. I consider myself quite areasonable programmer, although myprogramming interests lie more in theserious side of computing (which is notto imply that "non-serious" programmingis inferior). Mr Farnworth commented onthe shortage of RAM on the Archimedes,when compared to the BBC + 32016 secondprocessor. Firstly, I would like topoint out that on my 1Mb machine theRMA takes around 176k when the machineis first switched on. I expect MrFarnworth's figure of 400k is caused bythe loading of several modules,probably on start up from a hard discboot file. It seems to me thatnaturally a 4Mb user will make liberaluse of memory in this way, and to claimthat a 1Mb machine will typically usethe same amount of RAM (no, that's nota mis-spelling of RMA) for modules isunreasonable. Furthermore, I can reducemy RMA to a mere 48k and still haveaccess to BASIC and the main systemmodules. The comparison with 900k onthe 32016 for a much lower price seemsridiculous - such processors areextremely rare, and however cheap theymay be second hand, they cannot bereadily available at any price. Besides, I cannot imagine mostprogrammers writing a program thatrequires 900k - although, of course,this amount can be needed if largequantities of data are to be stored.But this sort of data is usuallygraphical, and so large storagerequirements will not usually be neededon a BBC. Furthermore, this much datawill not fit on a single floppy, andhard discs are far more expensive onthe BBC series. Finally on the question of RAM, I wouldlike to point out that even 600/700k onan Archimedes is probably more usefulat many times than 900k on a 32016, asthis RAM can be used for severalprograms at once, whereas on a 32016much of it may be sitting idle. The comments on assembly language seem,to me, to be extremely unreasonable. Ihave not used assembly language to atremendous extent on either machine,but I am moderately proficient -certainly enough to feel justified incommenting on the subject. Firstly, Ifeel that pointing out that BASIC V canbe 100 times slower than BBC assemblylanguage is irrelevant - althoughadmittedly no significance wasattached to it. The comment about accessing thehardware directly was perfectly valid,but I would like to point out that thisis really due to the machinearchitecture of the Archimedes and notits assembly language in particular.Besides, there cannot be much call fordirect hardware access of this typeoutside of interfacing - something Ireadily admit the BBC to be vastly moreuseful for. Direct access to the screenetc is relatively simple. Secondly, the complaint about thenecessity to load data into registersbefore processing it seems to ignorethe fact that the use of registers isextremely important in increasing thespeed of the code, and I certainly findit no more inconvenient than the 6502method of adding the contents of memorydirectly to the accumulator. This islargely a matter of personal opinion,however. I would like to point outthat, as compensation for thisinconvenience, it is no longernecessary to continually shuffle datainto and out of memory and betweenregisters to use certain types ofindexing and to free the registers forthose tasks which can only use oneregister on the 6502. The problem with not being able to load32-bit immediate constants directly isannoying, but it is relatively simpleto avoid, and several utilities havebeen published which allow a 32-bitconstant to be loaded using a macro. I feel that on the whole, ARM code isno more difficult to write than 6502code and the extremely convenientconditional codes, plethora ofregisters etc more than outweigh anyminor disadvantages that may bepresent. Besides, any need to write asmall amount of extra code to overcomethese small problems is surely due tothe RISC architecture - many, simpleinstructions. I expect most of theirritations experienced by Mr Farnworthcome, as he suggested, from hisexperience on the 6502. Incidentally, IHAVE used the ARM multiplicationcommand several times in the relativelyminor amount of ARM code I write -usually to convert X and Y coordinatesto a screen address. In an earlier issue of 8BS, DanielShimmin pointed out that there waslittle benefit in having a fastprocessor, and that it had merely leadto the creation of pointless activitieslike ray-tracing to utilise the power.I would disagree with this - theadditional power can be used toimplement a user-friendly environmentsuch as a WIMP system. Furthermore, ona multi-tasking system the full powerof the processing can always beutilised by running several tasks"simultaneously". Admittedly, withoutmulti-tasking there is a certain pointfor many tasks where extra processingpower is wasted - word processing isthe traditional example, where the userrather than the processor limits thespeed. I hope that I have not made anyinaccurate statements in this article -if so, I apologise and ask that you letme know via 8BS so that I can reply.Finally, I hope that neither M.T.Farnworth nor Daniel Shimmin takeoffence at my comments - they areintended in a constructive light. -- Firstly, it is true that 8-BitSoftware currently has ananti-Archimedes bias to it, but it isvery moderate compared to the anti-BBCbias adopted by commercial magazines,one of which recently more or less saidthat BBC's were worthless and theirowners should throw them away and buyan Archimedes. 8-Bit Software is not urging thatArchimedes owners should throw awaytheir computers and buy a BBC, or eventhat BBC owners should throw away allthoughts of upgrading. However, it isclear that the complexity of theArchimedes (partly caused, as Stevenpoints out, by the advanced nature ofits design) means that BBC programmerswill not find the transition from 6502to ARM easy. I am not suggesting that the Archimedesis inferior, merely that BBC owners(general users as well as programmers),should think twice about upgradingunless they are sure that theirexisting system is unable to meet theirneeds. I'm afraid I remain sceptical about therelative benefits of multi-tasking; Ican't think of any three programs thatI would want use simultaneously (asopposed to just having them loadedsimultaneously, which my 32016 is quitecapable of, or transferring databetween them, which hardly requiresvast processing power). The onlypossible application I can think ofwould be a multi-tasking spellchecker,but the BBC is powerful enough to havea word-processor and spellcheckerrunning simultaneously, so an upgradeis unnecessary. Similarly, you hardlyneed all that processing power just torun a WIMP system, when the immenselypopular Apple Macintosh WIMP systemruns on a lowly 68000. To make a correction to what Steven hassaid on the subject of module space onthe Archimedes; the new RISCOS 3.1,since it is of greater complexity,requires far more module space than theold RISCOS 2 which I believe Steven isusing on his A310. At switch-on,without activating any additionalmodules, the RMA takes up well over400K. Another member of 8-Bit Softwarehas recently purchased an A3010 for usewith his A5000, and I am told by afriend that he finds difficulty gettingmost software to work due to lack ofmemory. I intend to cover the pros and cons ofthe 32016 in a later article, but toadd another opinion on the ArchimedesDebate, I would like to quote the viewsof Gareth Moore on the subject. Garethowns an A5000 (2Mb at least), as wellas having programmed on the BBC andMaster 128, and writes as follows: "I noticed your quote of 350K freememory on an A3010. I'm surprised howlow this figure is, but then startingBASIC as I write this letter I find Ihave 252K free - but then I do haveRhapsody II loaded (playing music on myMIDI keyboard), Edit (which I'm notusing) and First Word Plus (which I'mwriting this letter on). And I'm in a60Hz (and mega high resolution) screenmode. Oh, and I've got 77 relocatablemodules installed - most of them arenecessary, and nearly all claimworkspace. It's too much trouble tokill off the ones you don't need. "I disagree with some of the commentsin the article 'Arc v BeebProgramming', but agree with others.The BASIC on the Arc is much easier touse - the split line IFs and all thenew commands (especiallyvariable+=whatever) make programmingmuch easier and less messy. That saidif you want to write a "legal"(desktop-using) program then it'simpossible to do it without producingsomething that would terrify a beginnerand totally confuse an averageprogrammer. Experts would probably justbe sick. What I mean is that it's apretty hopeless task unless you likedoing jigsaws (examining other people'scode and sticking little bits togetherto do the things you want). Either thator spend almost £100 on a lovely moundof paper entitled The Programmer'sReference Manual (parts 1 to 4 andindices)." So much for the Archimedes debate fornow. I am hoping that Duncan Websterwill at some stage continue hisArchimedes Review and shed furtherlight on the subject from the viewpointof someone who has used the BBC, theArchimedes and the PC as well. In themeantime, if anyone else has anyfurther opinions they want to express,please feel free to write in.