BBC Micro

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search

Mostly cribbed from Wikipedia as a stop gap...

Designed and built by Acorn Computers for the BBC Computer Literacy Project, operated by the British Broadcasting Corporation.

Following the Literacy Project's call for bids for a computer to accompany the TV programmes and literature (maintaining a standard computer language that would allow all viewers and schools to follow along at home/school), Acorn won the contract with the Proton beating off stiff competition from former boss Clive Sinclair. Renamed the BBC Micro, the platform was chosen by most schools and became a cornerstone of computing in British education in the 1980s. It was also moderately successful as a home computer in the United Kingdom despite its high cost.

Depite unparalled exposure and market saturation, the BBC Micro never made serious in-roads into the home computing market where it was beaten into third place by the much more affordable ZX Spectrum and Commodore 64 until the arrival of the CPC 464 pushed the ageing machine further down the pecking order.


Standard BBC Micro

While nine models were eventually produced with the BBC brand, the term BBC Micro is usually colloquially used to refer to the first six (Model A, B, B+64 and B+128, Master 128, Master Compact), with the subsequent models considered as part of the Archimedes series.

Model A & B

The Model A had 16 KB of user RAM, while the Model B had 32 KB. A feature that the Micro shared with other 6502 computers such as the Apple and the early Commodore models was that the RAM was clocked twice as fast as the CPU (4 MHz), with alternating access given to the CPU and the video display circuits. This gave the BBC Micro a fully unified memory address structure with no speed penalties. Most competing micros with memory-mapped display incurred CPU speed penalties depending on the actions of the video circuits (e.g. the Amstrad CPC and to a lesser extent the ZX Spectrum) or kept video memory completely separate from the CPU address pool (e.g. the MSX).

The machine included a number of extra I/O interfaces: serial and parallel printer ports; an 8-bit general purpose digital I/O port; a port offering four analogue inputs, a light pen input, and switch inputs; and an expansion connector (the "1 MHz bus") that enabled other hardware to be connected. Extra ROMs could be fitted (four on the PCB or sixteen with expansion hardware) and accessed via paged memory. An Econet network interface and a disk drive interface were available as options. All motherboards had space for the electronic components, but Econet was rarely fitted. Additionally, an Acorn proprietary interface called the "Tube" allowed a second processor to be added. Three models of second processor were offered by Acorn, based on the 6502, Z80 and 32016 CPUs. The Tube was later used in third-party add-ons, including a Zilog Z80 board and hard disk drive from Torch that allowed the BBC machine to run CP/M programs.

The Tube interface allowed Acorn to use ARM CPU-equipped BBC Micros as software development tools when creating the Acorn Archimedes. This resulted in the ARM development kit for the BBC Micro in 1986, priced at around £4000. In 2006 a kit with an ARM7TDMI CPU running at 64 MHz, with up to 64 MB of RAM, was released for the BBC Micro and Master, using the Tube interface to turn the old 8-bit micros into 32-bit RISC machines just as Acorn had done two decades previously. Among the software titles to run on the Tube were an enhanced version of Elite and a CAD package that required a second 6502 CPU and a 5-dimensional joystick called a "Bitstik".

The Model A and the Model B were built on the same PCB and a Model A could be upgraded to a Model B without too much difficulty. Users wishing to run Model B software needed only to add the extra RAM and the user/printer 6522 VIA (which many games used for timers) and snip a link, a task that could be achieved without soldering. To do a full upgrade with all the external ports did, however, require soldering the connectors to the motherboard.

Early BBC Micros used linear power supplies at the insistence of the BBC's engineering specification, but these very hot-running PSUs were soon replaced in production by switched mode units.

An apparent oversight in the manufacturing process resulted in a significant number of Model Bs producing a constant buzzing noise from the built-in speaker. This fault could be partly rectified by soldering a resistor across two pads.

There were five developments of the main BBC micro circuit board that addressed various issues through the models production, from 'Issue 1' through to 'Issue 7' with variants 5 and 6 not being released. The details of the technical changes were documented in the 1985 'BBC Microcomputer Service Manual' from Acorn.

Export Models

Two export models were developed: one for the US, with Econet and speech hardware as standard; the other for the Federal Republic of Germany. Both were fitted with RF shielding as required by the respective countries, and they were still based on the Intel 8271 floppy drive controller. From June 1983 the name was always spelled out in full – "British Broadcasting Corporation Microcomputer System" – to avoid confusion with Brown, Boveri & Cie in international markets.

US models included BASIC III, modified to accept the American spelling of COLOR, but the height of the graphics display was reduced from 256 scan lines per field to 200 to suit NTSC TVs, seriously affecting applications written for British computers. After the failed US marketing campaign the unwanted machines were remanufactured for the British market and sold off, resulting in a third 'UK export' variant.

B+64 and B+128

Acorn introduced the Model B+ in mid 1985, increasing the total RAM to 64 KB and including floppy disk support as standard, but this had modest market impact. The extra RAM in the Model B+ BBC Micro was assigned as two blocks, a block of 20 KB dedicated solely for screen display (so-called "Shadow" RAM) and a block of 12 KB of 'special' Sideways RAM. The B+128 came with an additional 64 KB ( 4 × 16 KB "Sideways" RAM banks) to give a total RAM of 128 KB.

The new B+ was incapable of running some original BBC B programs and games, such as, for example, the very popular Castle Quest. A particular problem was the replacement of the Intel 8271 floppy disk controller with the Western Digital 1770 — not only was the new controller mapped to different addresses[16], it was fundamentally incompatible and the many 8271 emulators that did exist were necessarily imperfect for all but basic operation[17]. A piece of software that used copy protection techniques involving direct access to the controller, simply would not run on the new system.[18]

There was also a long-running problem late on in the B/B+'s life infamous amongst B+ owners, when Superior Software released Repton Infinity, which refused to run on the B+. A string of unsuccessful replacements were issued before one compatible with both was finally released.

BBC Master

In 1986, Acorn followed up with the BBC Master, which offered memory sizes from 128 KB and many other refinements which improved on the 1981 original. At heart it was essentially the same 6502-based BBC architecture, with many of the upgrades that the original design had intentionally made possible (extra ROM software, extra paged RAM, second processors) now included on the circuit board as internal plug-in modules.


The BBC Micro platform amassed a large software base of games and educational titles, reflecting its dual niches at home and in the classroom. Notable examples of each include the original release of Elite and Granny's Garden. Programming languages and some applications were supplied on ROM chips to be installed on the motherboard. These could be loaded instantly and left the main RAM free for programs or documents.

Although appropriate content was little-supported by television broadcasters, telesoftware could be downloaded via the optional Teletext Adapter and the third-party teletext adaptors that emerged.

The built-in operating system, Acorn MOS, provided an extensive API to interface with all standard peripherals, ROM-based software and the screen. Features private to some other BASICs, like vector graphics, keyboard macros, cursor-based editing, sound queues and envelopes, were placed in the MOS ROM and made available to any application. BBC BASIC itself, being in a separate ROM, could be replaced with any equivalent language.

BASIC, other languages and utility ROMs resided in any of four 16 KB paged ROM sockets on board, although the MOS could cater logically for sixteen sockets. The paged ROM system was essentially modular. The user could switch language or filing system with a star command, prefixed with an asterisk, such as *PASCAL to invoke a Pascal compiler, or *WORD for Acornsoft's View word processor. Other star commands performed tasks like file management (*COPY, *DELETE, *INFO and so on), system help (*HELP) or configuration (*FX, *OPT). The MOS recognised a handful of built-in commands, and polled the paged ROMs in descending order for service otherwise; if none of them claimed the command then the OS returned a Bad command error.

Not all ROMs offered star commands (ROMs containing data files, for instance), but any ROM could claim certain vectors in order to extend the system's functionality. This feature was exploited in 1985 when Micro Power designed and marketed a Basic Extension Rom. This introduced new statements such as WHILE, ENDWHILE, CASE, WHEN, OTHERWISE, and ENDCASE, as well as many new direct mode commands including VERIFY. There were also DFS ROMs providing access to files on disc, and the Acorn GXR (Graphics eXtension ROM) added functionality to the VDU processing queue to allow flood fills and geometric shapes. Connecting an external EPROM programmer, one could write extensive programs, burn to PROM or EPROM, then run them without taxing user memory.

Acorn strongly discouraged programmers from directly accessing the system variables and hardware, favouring official system calls. This was ostensibly to make sure programs kept working when run on the Tube coprocessor, but it also made BBC Micro software more portable across the Acorn range. Whereas untrappable PEEKs and POKEs were commonly used on other computers to reach the system elements, both BBC BASIC and assembly language programs would instead pass parameters to an operating system routine. In this way the MOS could translate the request for the local machine's devices and memory layout or send it across the Tube interface, as direct access was impossible from the coprocessor. Published programs largely stuck to the API but games routinely made direct accesses for increased speed, and thus required a particular Acorn model or MOS version.

As the early BBC Micros had ample I/O allowing machines to be interconnected, and as many schools and universities employed the machines in Econet networks, numerous networked multiplayer games were created. With the exception of a tank game, Bolo, few rose to popularity; in no small measure due to the limited number of machines aggregated in one place. A relatively late but well documented example can be found in a dissertation based on a ringed RS-423 interconnect.