Except the BBC micro didn't use an ARM processor - it used a 6502. Whereas the IBM PC did use the Intel processor.
Except the BBC micro didn't use an ARM processor - it used a 6502. Whereas the IBM PC did use the Intel processor.
https://www.retro-kit.co.uk/page.cfm/content/Acorn-BBC-Archi...
And the IBM PC used an 8088.
To that end the ARM instruction set was heavily inspired by the 6502 in the Beeb and cruicially the BBC Micro was used to simulate the ARM before it went into production.
Latter the original ARM development kits were connected as second processors to Beebs courtesy of the Tube connector.
I think it's fare to say that without the BBC Micro there would be no ARM processors.
https://arstechnica.com/gadgets/2022/09/a-history-of-arm-par...
That seems an unlikely goal given BBC BASIC was interpreted! Happy to be proven wrong but I've never heard one of the original team say that.
> The second thing they didn’t do was that they weren’t fast, they weren’t easy to use. We were used to programming the 6502 in the machine code and we rather hoped that we could get to a power level such that if you wrote in a higher level language you could achieve the same types of results. So you could write 3D graphics games. You could do whatever you wanted to do without having to go all the way down to assembly language and for these processors that were on sale at the time that wasn’t true. They were too slow. So between the two things we felt we needed a better processor.
https://archive.computerhistory.org/resources/access/text/20...
I think it’s possible that some applications would be faster - floating point for example due to the ARM’s 32 bit registers and the 6502’s lack of even 16 bit arithmetic - but probably not in general.
The details of "Does that mean the same speed, or faster?" weren't really relevant, because the speed difference was anywhere between 10X and 100X - which was an astounding, if rather fuzzy, target.
ARM 1 got surprisingly close to that out of the gate, with the added benefit of being unexpectedly power efficient.
It also had more (16 user registers vs, counting optimistically, 3) and larger (32 bit vs 8bit) registers, compared to the 8 bit registers of the 6502, and a 3-stage pipeline.
I expect that means the BASIC interpreter kept the current program position in a register, where the 6502 one used memory (likely in self modifying code), and could fetch the next token in a single cycle vs at least 5 or so for the 6502 version.
Having a faster CPU and more memory also may have meant they could be smarter in the way programs get stored.
I guess all that combined means there are programs were that goal can be met, for example programs computing a Mandelbrot image.
ARM2 added a hardware multiplier.
Whereas I suspect that I am nowhere near the only person on this page who once disassembled ROMs on a BBC Micro. We can state, in contrast, that there was no such self-modifying code. Again, BBC BASIC was in ROM.
Those lucky enough to have a copy of Jeremy Ruston's book after all of these years, or the retrocomputing enthusiasts who still have working Beebs, could even tell you exactly where in ROM the code was that fetched the next token for execution.
I never actually owned a copy of the book, and somewhat envy anyone who still has a copy; although to compensate I do have part of one of my own disassembly listings still, buried somewhere. (-:
I know nothing about the first ARM, but ARM2 of Archimedes (anno 1987) was significantly faster than a MC68k (both at 8MHz), both much faster than a 6502 at one (typical) or two (in the beeb) MHz.
A BASIC interpreter using the ARM 1 or 2 might not have been literally faster than machine code on a 6502 (certainly not for some silly micro benchmarks), but, the stated goal, allowing high level programming where earlier assembly was required, certainly was met.
One of the optimizations Google introduced on Android 7, when they backtracked for AOT at installation time introduced in Android 5, was that the DEX interpreter was rewriten from scratch in cleverly manually written Assembly, before handing it over to the JIT/AOT infrastructure.
BBC Basic was also one of the few that allowed direct inline Assembly, instead of having to go through DATA blocks.
Just to make the comparison more concrete the ARM1 ran at 8MHz and was 32-bit and with a lot more registers compared to the BBC Micro's 6502 running at 2MHz. It was a lot faster but not fast enough to make BBC BASIC run at BBC Micro Assembly language speed.
Most folks nowadays wouldn't even think that is an option, hence the comparison with a product several decades later doing that instead of C kind of approach.
Back to ARM v1, maybe the design did take into account how to improve the developer's life of those writing in Assembly, which was critical for implementation of the whole userspace, meaning BBC Basic.
It really is.
Both Acorn (BBC Micro designers/manufacturers) and Apple Computer (Apple II ditto) bought in the MOS 6502 chip.
When it came to successor models, both tried the 65C816.
Acorn made the Communicator:
https://chrisacorns.computinghistory.org.uk/Computers/Commun...
Apple made the Apple IIgs:
https://americanhistory.si.edu/collections/object/nmah_55324...
Both were not delighted with its performance and looked elsewhere.
Apple went for the 68000 for its next mass-market model, the Mac. (I am aware the timeline is more complex; this is a simplification.)
Acorn evaluated the 68000, the 80186, the NatSemi 16032 and others.
It designed its own chip instead: the ARM, Acorn RISC Machine.
This was first launched as an add-on accelerator for the BBC Micro.
https://www.computinghistory.org.uk/det/48862/Acorn-1MB-A-Se...
It was later launched as an Acorn computer, running a 32-bit port of Acorn's MOS and BASIC. It included a 6502 emulators and so could run some BBC Micro software.
https://www.onirom.fr/wiki/blog/21-04-2022_Acorn-Archimedes/
That ARM chip is the direct ancestor of the chip in all Android devices, all iOS devices, and modern Macs.
Besides, it did say 'in many ways' so I think that this is really needless nitpicking.
I owned a BBC Micro Model B (was given one when a friend was given a 486 PC) and I used the Archimedes at school. The BBC Micro was archaic compared to the Archimedes and PCs of the time.
It was six years older and this was the era when CPUs evolved massively from one generation to the next. Just like the Acorn 'Atom' was 'nothing like the BBC Micro' in spite of using the same processor.
For some contrast: when the BBC Model A came out in 1981 originally it had cassette tape as mass storage, an 8 bit cpu clocked at 2 MHz, 16K RAM and if you were very lucky yours came with the optional floppy drive which cost nearly as much as the machine itself. When the first ARM was sold to the public, six years later it came with a 32 bit RISC CPU clocked at 4 MHz, 512K or 1M of RAM, an ST 506 based harddrive option.
That's just six years of progress, and we're skipping over many steps in the lineage, the BBC Master series, the tube expansions and the Olivetti saga. You could pick 1980 to 1990 and write a pretty large book about personal computing progress during those years and you likely would still miss important events.
But the lineage was - for those that owned all of the intermediary machines as well - pretty clear, and that is before we get into the lineage of the software that the Archimedes shipped with, MOS and BBC Basic, which both worked more or less as you would expect given the new machines capabilities.
My brother had one. Really cool machine, and as far as I remember, on a completely different level than anything that had existed before it. Soon succeeded by the Risc PC, which I mostly remember for being able to accept various configurations of additional processors (it could get either an x86 as co-processor, or several additional ARMs).
Pictures:
https://chrisacorns.computinghistory.org.uk/Computers/A3000....
Note the logo at top right of the keyboard.
Also note the bright red function keys.
As I wrote in another comment I was pretty close to the fire and had very early access to the ARM architecture based beebs courtesy of a friendly contact but I realized soon enough that the future for home computing and SMB business computing did not lie with either Acorn, Atari, Commodore or any of the other contenders. In '88 or so (my memory is a bit hazy about the dates, there was a lot going on in my life back then) I moved to x86 professionally with a side of Atari ST (using the fantastic Mark Williams C compiler + documentation) for more fun stuff and with the advent of the availability of the internet for the masses I ran SGI Irix for a couple of years until I settled on Linux which has been my daily driver for decades now. Hardware architecture used to be a super important factor for me, now the only thing that matters is whether or not I can run Ubuntu and whether the hardware is sufficiently powerful to get me through my working day. The fact that my daily driver is a 12 year old laptop is a nice indication of how far we've come, it is pretty rare that I put together machines where performance really matters.
But regardless of all of that I have a fond spot in my heart for the BBC, regardless of processor used, it was the machine that allowed me to finally do some more structured programming and explore other languages without breaking the bank.
This is not true. It had lots to do with it.
* The Archimedes used a CPU whose designers (Sophie Wilson and Steve Furber) have specifically said they built it to be conceptually similar to the 6502. Source: I have met both and seen them say this in person.
* The Archimedes ran RISC OS which is a rewrite of the BBC MOS. Source: I have interviewed the project leader, Paul Fellows.
https://www.theregister.com/2022/06/23/how_risc_os_happened/
The Archie came with !6052tube and could run some BBC apps.
Source code: http://bbc.nvg.org/rom/Acorn/os/?C=N;O=A
(detail: https://www.retro-kit.co.uk/user/custom/Acorn/32bit/A310/310... )
(full article for reference: https://www.retro-kit.co.uk/page.cfm/content/Acorn-BBC-Archi... )
... and besides, it runs BBC BASIC!
But in the 65XX family there is the 65816, a chip that tried really hard to maintain as much backward compatibility as possible. It saw some commercial deployment (Apple, Nintendo). At that point in time backwards compatibility began to have real value and intel really made some lucky calls: the weird addressing modes resulting from the lack of register width eventually culminated in a setup that worked very well for CPUs that were running multi-tasking OS's. The 386 was a very nice match for such code and this model was a major factor in the success of the line (which really was creaking badly with the 80286 out vs the 68K, which effectively had a 32 bit flat model built in because of its ability to run position independent code).
But in 1987, when the 80386 hit GA it was pretty much game over for the rest even if it took a while for the other empires to crumble, only ARM survived and that is mostly because Acorn had a completely different idea about power consumption and use of silicon than Intel did. The current crop of x86 hardware is insane in terms of power consumption and transistor count, ARM is so much more elegant (in spite of its warts).
>Notable exception: the 6800 is in many ways simply an improved 6502 but by a different manufacturer.
It is directly binary compatible. A Core i7 can boot and run MS-DOS from the 8088.
I offer a freebie DOS distro for modern PCs:
https://github.com/lproven/usb-dos
What more do you want than "executes the same binaries"?