Home > Articles > Hardware > Upgrading & Repairing

The BBC Micro: Why It Mattered

With the Raspberry Pi receiving a lot of attention, David Chisnall looks back at the original project from the 1980s that inspired it: The BBC Micro.
Like this article? We recommend

There's been a lot of discussion recently about the Raspberry Pi. Admittedly, more near me than elsewhere, as it's designed two floors up from me in Cambridge, but still quite a lot in the mainstream press. The Raspberry Pi comes in two models, A and B, reminiscent of an earlier machine, which was the inspiration of the project.

The BBC Model B was a computer that anyone who went to school in the UK in the '80s will remember (perhaps fondly, perhaps not). It undoubtedly had a large impact on computing in the UK, but was largely a UK-only phenomenon. In this article, I'll take a look at what made the machine interesting and why it mattered.

Background

The whole story starts with a government project. At the start of the microcomputer revolution, the British government displayed a rare amount of insight and realized that these "computer" things that everyone was talking about might actually be important and that a workforce full of people who understood them would be beneficial in the future. Unfortunately, there was a problem: Most schools had neither computers nor teachers that understood them.

The lack of teachers is still a problem, but back then there were few people with a reasonable amount of computing experience in the world, so the potential pool was significantly smaller. The lack of computers is seemingly easy to fix: just buy some. This is the typical approach to computing in schools: Just throw money and hardware at the problem (the money typically taken away from other parts of the budget) and then express shock that it didn't provide any noticeable benefits.

Again, the government displayed an uncommon amount of common sense (at this point, it had used up its quota of good decisions for the decade) and imposed a set of strict conditions on the kind of computer that schools could buy. If it bought computers that met these requirements, then the government would pay half of the cost from a pot of money that was distinct from the school's normal budget.

Some of these requirements were fairly mundane hardware-related things (e.g., a minimum amount of RAM, 32KB, I believe), but the most important was that they must include a programming environment that supported structured programming.

A Not-So-Basic BASIC

When you turn on a BBC Micro, you get a prompt, into which you can type BASIC code. The first thing that most schoolchildren learned to do on these machines was something like this:

	10 PRINT "Hello!"
	20 GOTO 10
	RUN

This would infinite loop printing hello. Or, in the most common variants, something less polite. This is typical of flow control in most dialects of BASIC and mirrors how assembly languages handle flow control. The line numbers are roughly analogous to addresses and GOTO to an unconditional jump. BBC BASIC was one of the earliest widely distributed versions to also provide a GOSUB statement. This jumped to a specified line number (or label), just like GOTO, but it also pushed the current line number onto a call stack. The subroutine could then return to the place where it was called.

This addition made it possible to write quite complex programs in BBC BASIC without it becoming spaghetti code. It wasn't the only interesting feature of BBC BASIC, though. It also had an integrated assembler. This could assemble a string provided from BASIC code, so it was possible to write compilers in BBC BASIC that would generate native code.

Graphics and Sound

The BBC had a reasonable range of drawing modes as well as text, but it also contained a teletext display mode. Teletext adoption varied throughout the world, but in the UK it was very popular as a source of news and other information. With the teletext chip, you could create displays that looked just like the teletext displays that the various TV channels broadcast. My school did this for a little while, providing a noticeboard on a big TV that children and teachers could put announcements on.

The sound support was also quite impressive for the time, with the sound chip able to produce polyphonic beeps and containing a white noise generator. I remember programming the noise generator to approximate the sound of waves breaking. On a modern machine, of course, this sort of thing can be done entirely in software. Even generating waveforms at 48kHz is a trivial load on a modern CPU. Back then, however, being able to make tinny electronic music (which was very much the fashion—for the time, anyway) seemed very exciting.

External Interfaces

One of the most impressive things about the BBC was the range of (memory mapped) I/O functionality. For example, it had a 16-pin user port, with 8 input and 8 output pins. You could read and write these from BASIC with the PEEK and POKE commands, getting back a byte with one bit indicating the state of each of the pins. There was also an analog input port, with an analog-to-digital converter so that you could read analog values. A number of games used this port, but it was also useful for various kinds of sensors.

A lot of technology classrooms kept BBCs around for a long time after they stopped being state of the art for exactly this reason. They were easy to connect up to home electronics projects. This is something that modern PCs lacked.

Even RS-232 was comparatively difficult to use, and USB was much harder. Things like the Aurdino range bring some of this back, and the Raspberry Pi has a set of general purpose I/O (GPIO) pins, although it lacks the analog input.

Some of the teaching equipment made use of this as well. A lot of people in the UK remember learning basic geometry with the aid of Logo and a turtle. Logo is a Scheme-inspired language with a set of built-in operations for driving a turtle—a device that understands turn commands, can move forward and backward, and draws with a pen. In software, you had a turtle represented by a sprite on the screen, but a lot of schools also had physical ones that connected to the BBC via a long ribbon cable and could draw shapes on large pieces of paper.

I look forward to a Raspberry Pi version of Logo that dispenses with the ribbon cable and embeds the computer directly in the turtle.

Teaching

The BBC Micro solved the hardware part of the problem, but that still left the teaching problem. This is where the BBC in the name came from. The British Broadcasting Corporation did not make the computers, Acorn did. It did, however, produce and broadcast a series of programs describing how to use and program them. It also reserved some teletext pages for transmitting BBC BASIC programs. You could buy a teletext decoder for the BBC and convert broadcast teletext pages to text that it could then save to disk or tape. Schools could "download" the example code as they recorded the example lessons.

This is the part that was really missing from the initial launch of the Raspberry Pi. The hardware, by itself, is the easy part of the problem. The teaching resources are the hard part. It takes a lot of effort to assemble a detailed set of teaching material for schools. This is where the BBC part of the partnership worked very well the first time around.

Fortunately, today the computing landscape is not like the '80s. Back then, very few universities offered computer science, and most of the ones that did regarded it as math or engineering with a few minor tweaks. There was no Internet, and teaching computing to children was a fairly novel idea. Now, there are a lot of existing resources and a lot of work is underway to ensure that they work well on the Pi.

The one that I am most interested in is the effort to make the Squeak VM for Smalltalk run well on the system. While I approve in general of more people learning Smalltalk, the real point of this is to allow eToys and Scratch to work on the system. These are both rich development environments aimed at teaching good object-oriented (and parallel) programming to young children. As with anything else in Smalltalk, they support introspection at all levels, so it's trivial to inspect a running program, see the values of all objects, modify them on the fly, and continue without an explicit recompilation-restart cycle.

This works on the Pi currently, but it's quite slow. Squeak, unfortunately, inherits a lot of the design of the original Smalltalk-80 system. This, in turn, adopts a lot of implicit design decisions from the Xerox Alto. In particular, the display is treated as a frame buffer (although, unlike the Alto, the pixels can have more colors than just black or white), and all the high-level operations are built on top of a bit blt operation, which was microcoded on the Alto and is a short sequence of assembly on modern systems. Unfortunately, this is a very inefficient way of driving a modern display, which has hardware specifically designed for things like compositing. There's work underway to improve this, but it's not ready yet.

There's also a team that's added support for the GPIO pins to Squeak. This is probably the most exciting part for me, although it's a very small change from a technical perspective. Programming in BASIC or Logo on the BBC Micro was fun, but the real excitement for me as a child came from plugging the computer into other devices—turtles, robot arms, even simple things like 7-segment LED displays—and driving them from the computer. In an age where everything has a CPU orders of magnitude more powerful than the BBC, and often considerably more powerful than the Pi, being able to control other machines is still exciting.

The BBC had no Internet to support it, but it was the focus of a lot of books, including a number about hardware design. The platform was a de-facto standard for most of the '80s in British schools, making it very easy for third parties to create things that plugged into it or books about it and expect to be able to sell them to a lot of schools.

The PC platform that gradually replaced it in the '90s was never quite so uniform and had the disadvantage of also being used heavily in industry, meaning that there was a strong temptation to target teaching material toward a more general audience, rather than toward schools.

A One-Off Event?

The BBC Micro had a huge impact on the computing landscape in the UK. Unfortunately, the subsequent Acorn machines, in spite of being technically impressive (32-bit RISC systems with a multitasking GUI competing with 16-bit x86 machines running DOS) never had the same following. They never achieved the same combination of easily expandable, capable, hardware with a surrounding ecosystem for teaching and government backing.

The current government seems to have decided that programming is the new Latin, and so must be taught in schools. There's even a chance that they might come up with a reasonable plan to make this possible that extends beyond the traditional approach of throwing relatively small amounts of money at the problem and then blaming the teachers when it doesn't work. I certainly hope to see something similar for the people coming through the schools in the next decade. The influx of Windows into schools produced a generation of students who had experience with business machines, but never experienced the more generally useful lessons that a good computing curriculum should provide.

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020