30 Years of the BBC Micro
Alioth writes "The BBC has an article on the BBC Microcomputer, designed and manufactured by Acorn Computers for the BBC's Computer Literacy project. It is now 30 years since the first BBC Micro came out — a machine with a 2 MHz 6502 — remarkably fast for its day; the Commodore machines at the time only ran at 1MHz. While most U.S. readers will never have heard of the BBC Micro, the BBC's Computer Literacy project has had a huge impact worldwide since the ARM (originally meaning 'Acorn Risc Machine') was designed for the follow-on version of the BBC Micro, the Archimedes, also sold under the BBC Microcomputer label by Acorn. The original ARM CPU was specified in just over 800 lines of BBC BASIC. The ARM CPU now outsells all other CPU architectures put together. The BBC Micro has arguably been the most influential 8 bit computer the world had thanks to its success creating the seed for the ARM, even if the 'Beeb' was not well known outside of the UK."
The most remarkable thing about the BBC is that they're still going running production code.
I had the good fortune of working with (or rather, near) one of these systems a few years ago. When I asked why they hadn't upgraded the machine in nearly 3 decades the head of the system simply responded; "It still works."
Not to worry! Thanks to the power of javascript and web2.0, you can again await the day when we'll be able to push a 6502 into the realm of the megahertz!
(Please note, above linked project is actually pretty fucking cool: "In the summer of 2009, working from a single 6502, we exposed the silicon die, photographed its surface at high resolution and also photographed its substrate. Using these two highly detailed aligned photographs, we created vector polygon models of each of the chip's physical components - about 20,000 of them in total for the 6502. These components form circuits in a few simple ways according to how they contact each other, so by intersecting our polygons, we were able to create a complete digital model and transistor-level simulation of the chip.
This model is very accurate and can run classic 6502 programs, including Atari games. By rendering our polygons with colors corresponding to their 'high' or 'low' logic state, we can show, visually, exactly how the chip operates: how it reads data and instructions from memory, how its registers and internal busses operate, and how toggling a single input pin (the 'clock') on and off drives the entire chip to step through a program and get things done."
It is, however, the case that this might not be the fastest way to execute 6502 instructions...)
Changing the screen mode 3/4 of the way down each screen refresh. Programming while counting every clock cycle - fantastic. I still wonder where all the resources are wasted in current software. I still say FRAK! when the need arises. Nobody knows what I'm talking about :(
Elite, developed for the BBC Micro and published by the same company that made the Micro, did get a lot of attention here in the U.S. (it was ported to all the major platforms). It was one of the first big universe sandbox games, and modern games like EvE Online are still influenced by it.
SJW: Someone who has run out of real oppression, and has to fake it.
The BBC Micro at 2MHz was considerably faster than the Spectrum at 3.5MHz. The Z80 is a CPU that I like (I still write Z80 assembler, indeed I'm much more proficient at Z80 than 6502 and I've designed and made an ethernet card for the ZX Spectrum fairly recently as a fun retro project). However, we have to consider this. The fastest 6502 instruction executes in 2 T-states, most execute in 3 T-states, and the slowest take 7 T-states. The fastest Z80 instruction takes 4 T-states and the slowest over 20 T-states. The 6502 therefore has better interrupt latency (that monster 23 T-state index register instruction on the Z80 can't be interrupted).
The other thing the 6502 has going for it is the very fast zero page instructions, which are tantamount to giving you 256 extra registers.
The competing ZX Spectrum also had contended memory. Thanks to the 6502's predictable memory cycle when compared to the Z80, the BBC Micro designers could interleave screen memory access with CPU access, so no memory is contended. The Spectrum has to pause the processor while the ULA accesses the screen memory, meaning anything in the lower 16K of RAM takes a noticable performance penalty (and you can't use the lowest 16K for anything timing critical that must run while the ULA is reading the frame buffer).
Don't get me wrong, I love the Speccy, it's probably my favorite 8 bit (and I own several!) - it did an awful lot for very little money, it was immense value for money - but the BBC Micro was at the time had excellent performance.
Oolite: Elite-like game. For Mac, Linux and Windows
Was the Beeb available before the Apple ][ ? Was it more or less expensive in the UK?
I get the feeling that the BBC Micro enjoyed a kind of tax protected status, the way American made pickup trucks do in the US.
The BBC came quite a while after the Apple II - if you've been following the 30th Birthday announcements, its actually younger than the IBM PC (...of course, the IBM was eye-wateringly expensive for a few years, until the Clone Wars began).
I've programmed both and, generally, the BBC was considerably more powerful than the Apple.
It had a (much) better BASIC with 'structured programming' facilities (Repeat/Until loops, multiline if/then/else named procedures), a built-in 6502 assembler (so you could use BASIC as a macro language) and neat indirection facilities for working with bytes/words/strings in memory. Unusually for "home" computers of the time it had a 'proper' operating system, quite separate from BASIC - the BASIC ROM lived in a paged memory space alongside applications such as wordprocessors and other utility ROMs such as the disc filing system (popular BBC expansions included extra ROM sockets for applications or 'sideways RAM' for use as a RAMdisk or to let you develop your own ROMs).
The graphics were much better (but with a caveat) than the competition - 160x256 in 8 colours, 320x256 in 4 colours or a TV-tousing 640x256 in monochrome. Also, those colour modes were fully bit-mapped c.f. the attribute-based solutions on other systems (where you could e.g. only have 2 colours in each 8x8 cell, or on the Apple where you could only plot white by plotting a magenta pixel next to a green pixel). There was a proper palette system (so you could do fast animation by palette switching - only TTL though so its always the same 8 colours) and 'hardware' scrolling by tweaking the memory mapping (which could also pull tricks like changing display mode half-way down the screen, as used in Elite). The caveat was that the RAM was shared between data and video - so the higher modes used 20K out of your 32K. Although aftermarket upgrades appeared that added a 20K page to replace the video RAM (which worked seamlessly provided that the application used the correct OS calls rather than poking things directly) Acorn took their own sweet time before building that feature into later models.
It also had a shedload of internal hardware: a Teletext-compatible character generator chip for low-memory, high-quality TV friendly 40 col text & block graphics (without eating your RAM); a 'proper' sound generator chip; analogue inputs (not audio frequency, but great for proper joysticks and school science experiments) and a 'user port' which made about half of a 6522 VIA chip available for digital I/O, a serial port, parallel port, proprietary expansion port & vacant sockets on-board for a floppy controller and 'econet' LAN... Plus a really decent keyboard (the kind with discrete key-switches for each key). Then there was Acorn's 'Tube' interface, which allowed you to hang off a 'second processor': i.e. a headless 6502, Z80 or (later) 32016-based computer that used the BBC as an I/O processor. (Of course, the really interesting one was the ARM second processor, but AFAIK that was never publicly available).
The Apple's advantages were (a) software base (but the BBC accumulated quite a big software base in the UK) and (b) internal expansion (the BBC had lots of expansion potential but it was either via external interfaces or slightly kludey piggyback boards). I think there were more options for upgrading an Apple 2 to '64K clean' RAM configuration.
However, If you got the BBC 6502 second processor (a 4MHz 6502 with 64k RAM, with the original BBC handling all the I/O) then anything else with 8 bits (and quite a few things with 16) could eat your dust... unfortunately the price of that hampered adoption and, hence, software support (although you could play the definitive version of Elite).
The BBC B cost ~£400 - but
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.