Tech Know: BBC Micros used in retro programming class
In our regular series about makers, hackers and amateur technologists, BBC News meets the people giving the classic BBC Micro a new lease of life.
Computer history is cruel. It is a story of the old constantly being pushed aside for the newer, the faster, the smaller, the shinier.
Those old machines are rarely allowed a graceful retirement. Cast aside, they end their days in the dark ,fit only to be homes for spiders in lofts and cupboards.
But one lucky flock of BBC Micros is getting another lease of life by helping to educate students in the art of rigorous programming.
The National Museum of Computing (TNMOC) at Bletchley Park has started letting a few lucky A-level students loose on the machines to hone their programming skills.
"The computing A-level is about how computers work and if you ask anyone how it works they will not be able to tell you," said Doug Abrams, an ICT teacher from Ousedale School in Newport Pagnell, who was one of the first to use the machines in lessons.
For Mr Abrams the old machines have two cardinal virtues; their sluggishness and the direct connection they have with the user.
In one of the first lessons held at TNMOC the lucky Ousedale students programmed a venerable PDP-8 machine by flicking the switches set on its front panel to set the binary values in its memory. And an interface does not get more direct than that.
"Modern computers go too fast," said Mr Abrams. "You can see the instructions happening for real with these machines. They need to have that understanding for the A-level."
The second time the students got to use the BBC Micros they were given three hours to create a simple 8-bit game. Tech Know was there to record what happened.
Prior to the lesson Mr Abrams had produced 100 lines of code that created a rough version of the game pitting a battleship against a bomber. The students' task was to refine the game by introducing a scoring system, improving its looks and introducing new elements such as a hunter-killer submarine.
Two students tackled the bugs and refinements, two the graphics and sounds and the remaining student got to work typing the program onto other machines so testing could get going.
The five soon discovered that just because a program was simple did not mean the underlying code was straight-forward. To make matters more testing, the BBC Micro offers a very unforgiving programming environment.
For much of their A-level, the students had been using Visual Basic - a breeze by comparison.
"Because there's no copy and paste, if you do something wrong it takes time to go back and fix it," said Joe Gritton. "You cannot take out sections and move them around."
Be the machine
Perry Gemmell lamented the lack of friendly interface on the BBC Micro, which presents users with a screen full of text.
"It's easier to find bugs in Visual Basic," he said. "It helps you as you go along."
Visual Basic suggests words while a coder types, highlights syntax errors and makes bug hunts easier by jumping straight to the problematic code - even when the error is one of logic rather than letters.
By contrast, the BBC Micro is a study in imperious indifference. Get something wrong and the program will crash and perhaps throw up an error message. Worse are the cases when it works but not in the way expected leaving the programmer to scratch their head and try to work out why.
The machines also enforced a parsimonious programming style. A memory of only 32K is a shoebox in comparison to the Lordly halls of memory available on the average 21st-Century desktop.
The simple program that the students were working on threw up some real problems.
Mr Gritton and partner Callum Adams were given the task of adding a submarine. But, they realised, the introduction of the torpedo-firing sub would spell the end of the game, as the ship had no way to avoid it.
Changing one element in the simple game kicked off the need to solve lots of separate problems - it was a real exercise in creative coding. The students had their eyes on the screen and their hands in the bits.
"We're learning a lot," said Callum Adams. "It makes you realise how difficult it is making real video games."
The day of study had begun with what must be the ultimate hands-on technology experience: Mr Abrams got the students to be a computer.
They each took on the role of a different part of the machine - CPU, accumulator, RAM and program counter - and simulated the passage of instructions through the hardware.
The five shuffled data around, wrote it to memory, carried out computations and inserted them into the right places in the store.
It was a noisy, confusing and funny simulation and, once everyone knew what they were doing, managed to reach a maximum clock speed of about one instruction per minute.
And even the BBC Micro, for all its age, can beat that.