2012-12-01 · in Media Archiving · 913 words

Acorn BBC Master 128

Like many children of the 80s, I used Acorn BBC Micro and Electron machines at primary school — and later for electronics projects at home (e.g. a hamster wheel odometer). The earliest box of floppies I had were from these machines, with various BASIC programs that I'd written.

About this machine

Acorn's BBC series were excellent machines — 6502-based, with a decent keyboard, a proper operating system with multiple filing systems and a usable command line, an excellent BASIC with a built-in assembler, and lots of expansion capability, including a dedicated "Tube" port for attaching co-processors.

The downside was that they were always very expensive. Flipping through the adverts in the September 1986 issue of Your Computer shows the BBC Master 128 selling for £499, at a time when you could pick up a Commodore 64C for £150 — and that's without disk drives, which'd set you back another £100 or so each. Once you'd bought a BBC, disk drives and a monitor, you'd have paid more for it than you would have done for a low-end PC clone (which were beginning to appear at around the £600 mark).

So I didn't have a BBC at home until schools started to dispose of them in the early 90s — by which point I was an Amiga user. These days I've got a couple of Electrons (one dead of ULA failure, as is very common), a BBC B that I've added sideways RAM to, and the BBC Master 128 shown above, all of which came from friends. The Master came with lots of peripherals and a box of software, including an EPROM programmer and several disks of ROM images.

Both BBCs and the Watford dual disk drive (which uses the same PSU board) blew their mains inlet filter capacitors after a few hours of use; this is a standard fault with these machines, and it's easy enough to fix. I also had to fix the eject mechanism on one of the drives, where a cam was rotating loose on the lever shaft; a drop of superglue appears to have done the job.

The BBC B has an Intel 8271 disk controller. The usual disk formats are 40-track and 80-track Acorn DFS; all of my disks were in one of these two formats, which are single-sided with 10 256-byte FM sectors per track.

Double-sided drives show up as two separate drives (:0 and :2) in the operating system, so you can have different filesystems on the two sides. BBC 80-track drives usually had a 40/80 switch to enable double-stepping so you could read 40-track disks — for example, here's the Midwich-branded 40/80 drive from my BBC B:

BBC 40/80 floppy drive

The Master has a WD 1770 controller, which means it can do MFM as well as FM. A few of the disks that came with the Master were in Acorn ADFS-L format, double-sided with 16 256-byte MFM sectors per track — so the Master was the only machine that could read all the disks I had.

Imaging BBC disks

To read disks, I used the freeware XFer package. XFer includes a server that runs on Linux, and a BBC BASIC program that communicates with it over a serial link. The package also includes instructions on how to build an appropriate RS232-RS423 serial cable; I had an Archimedes-BBC serial cable with almost the right pinout already, which I adapted. Since you can easily tell a BBC to accept "keyboard" input from the serial port, the XFer server will actually "type in" the BASIC program for you — which is especially handy if you don't have a spare disk!

I imaged most of my disks in 2007 using XFer version 4, which could only read disks on the BBC, not write them. Since I wanted to transfer some images back over — e.g. from the Stairway to Hell collection — I wound up writing my own software to go the other way.

bbcserv is a Python program that runs on my Linux machine, and bbcget is a BBC BASIC program that requests data and writes it to a disk. The disk needs to be formatted first; unless you're lucky enough to have a DFS ROM with a *FORMAT command, you'll probably want J. G. Harston's FormDFS program too. You can transfer a BASIC program to the BBC by typing *FX 7,6 (receive at 4800 baud), then *FX 2,1 (take keyboard input from the serial port), then sending the text with your favourite terminal program (or stty and cat).

However, XFer is still under active development as of 2013, and version 5 now supports writing disks — and reading ADFS formats as well. So when I came back to the project in 2013 with more disks to do, I could read all of them using the BBC Master and XFer 5.

Of the 70 disk images I read, only one sector had any errors — and that error was on an unused block, so it had probably always been bad. 100% success — not bad for the first batch of disks!

The downside of using a BBC to read disks is that the serial port is very slow — it won't work reliably beyond 4800 baud. I came back and reread some of these disks using a PC; more on that later.

Emulating the BBC

I use the Unix port of BeebEm, which provides a very comprehensive emulation of BBC machines and their peripherals.

Some of my programs from my last year of primary school:

QuadText QuadText in action 2pcars 2pcars gameplay RHSuse Spirograph

And more from around 1994, including the hamster odometer:

Blues Generator GUIsys GUIsys code Guild TSG menu Test signal NML Latin verbs Hamster odometer BigClock