BBC Micro Disk Controllers

When the BBC Micro models A and B were first released, it was possible to add a disk upgrade to the machine, Mind you, the upgrade cost about £120, so it wasn't a popular upgrade initially - until people got hacked off with a large program taking 20 minutes to load from cassette tape.
In my experience, it was often the delay in reloading one of the AcornSoft adventure games (Philosopher's Quest, Castle of Jimmy Riddles, etc) after you had a sudden flash of inspiration about 10 seconds after hitting the BREAK key in frustration.

In Acorn's wisdom, they had chosen the Intel 8271 disk controller for the BBC Micro - this controller was probably obsolete even before the BBC Micro was launched. The Acorn disk upgrade comprised the 8271, a handful of standard TTL ICs, an Acorn DFS ROM, and the disk manual. The ICs plugged into unpopulated sockets on the motherboard.
A few hardy folks tried sourcing the parts separately - which was fine, except that an 8271 tended to cost about 109 on its own, if you could find one...

Clearly this wasn't a good state of affairs, and something needed to be done.

Enter Solidisk

I first became aware of another solution when a friend of mine turned up with a Solidisk DDFS upgrade in his machine, and an old disk drive - the two wouldn't work together. But that's an unimportant part of the story - save that the words 'Solidisk' and 'problem' often appeared together in my sentences for many years afterwards.

Solidisk had produced a daughter board which plugged in to the 8271 socket on the BBC motherboard. The daughter board carried a Western Digital 1770 disk controller - a more modern beast, which also supported double density disks - wow!
[ If you don't think that double density was a big deal, remember that the 8271 based disk upgrade could store a whole 200kBytes on a single sided 80 track floppy, and 400kBytes on a double sided 80 track floppy. If you only had 40 track drives, these capacities were halved. How technology has changed! ]

The existance of the daughter board was quite clever. In Acorn's design of the BBC Micro, the floppy disk controller appears in the memory map from &FE80 - &FE9F - however only 3 address lines are made available to the floppy disk controller, and so only 8 locations are uniquely addressable (e.g. the same register will appear at &FE80, &FE88, &FE90, and &FE98). In practise, everyone used the set of 8 locations &FE80 - &FE87 when addressing the floppy disk controller. The 1770 disk controller has 4 memory-mapped registers. But it doesn't itself support multiple drives or the drive side select (in the way that the 8271 did). It supports both single and double density, but needs a way to be instructed which to use. The solution to these problems was to add a control register to the hardware (separate from the 1770), requiring a fifth memory address.

The Solidisk DDFS needed its own special DDFS ROM - the Acorn DFS ROM wouldn't work as it was hard-coded for the 8271. The Solidisk DDFS code supported the disk controller in both single and double density - in double density you could write roughly twice as much on a double sided 80 track floppy (it used 16 sectors per track, as opposed to the 10 sectors of single density) - and your friend with an Acorn DFS ROM couldn't read it :-(
There was also a Solidisk ADFS ROM, but I don't recall if it did anything special - other than work with the Solidisk hardware.

Solidisk also produced a very neat piece of hardware, which they called the DFDC (Dual Floppy Disk Controller - I guess). This was a daughter board which plugged in to the 8271 socket on the BBC motherboard, but this time the daughter board carried a Western Digital 1770 disk controller AND a socket for the displaced 8271 disk controller. There was a toggle switch so that you could switch between the two disk controllers - although not whilst the machine was running, you had to press BREAK or power cycle the computer.
As I recall, there was a special Solidisk DFDC ROM, or you could use a Solidisk DDFS ROM and an Acorn DFS ROM together - the wrong DFS would go quiet after a BREAK or power cycle.

I'm sure that there were other 1770-based solutions, but I didn't come across them. This page isn't supposed to imply that Solidisk were the only people in the game - or the best.

Acorn Responds

I can't remember whether Acorn brought out their own Western Digital 1770 disk controller daughter board before or after the launch of the model B+. I've never seen a B+ in the flesh, but I've seen a photograph of the motherboard which appears to show that Acorn were still considering the 8271 before settling on the 1770 disk controller.

Anyway, Acorn brought out their own 1770 daughter board for the model B, and this was supplied with the Acorn 1770 DFS ROM - a totally different ROM from the Acorn DFS ROM (for the 8271). At around the same time, Acorn also introduced a new disk filing system - ADFS - which only worked with the 1770 disk controller, as it used double density exclusively.

Unfortunately for Solidisk DDFS/DFDC owners, the Acorn daughter board put the 1770 disk controller and the extra control register at different locations in the memory map from the Solidisk daughter board. As well as this, Acorn's usage of the extra control register was different. This meant that the Acorn ROMs (Acorn 1770 DFS, and Acorn ADFS) wouldn't work with the Solidisk boards. However Solidisk produced their own version of the ADFS which worked with their boards.

Solidisk falls in line

I guess that it was inevitable that Solidisk would make their boards compatible with Acorn's 1770 board. They came out with version 2 designs of the DDFS and DFDC boards, which were hardware compatible with the Acorn 1770 board. Now it was possible to use the Acorn ROMs with the Solidisk hardware (this coincided with the words 'Solidisk' and 'problem' appearing together less often in my sentences, if you catch my drift).

It was also possible to use the Solidisk ROMs with the Acorn hardware. The only practical advantage of this was that one could use the Solidisk DDFS ROM to access double density DFS disks.

Later BBC Micros

Model B+ and B+ 128

I've never seen one, but my understanding is that these models all had a 1770 disk controller installed as standard. I believe the ROMs for the model B+ are the same as for the model B.

Master 128

The BBC Master 128 models (with the possible exception of the Master ET ?) had a 1770 disk controller installed as standard. However the 1770 disk controller and extra control register were put at yet different locations in the memory map, so the Master 128's Acorn 1770 DFS and Acorn ADFS 'ROMs' are different than those for the previous models. Both 'ROMs' are physically located in the single Megabit ROM in the Master 128, but can be unplugged by a software command.
I can't remember if Solidisk ever produced versions of their ROMs for the Master. I think I used to have a Solidisk DDFS ROM image for the Master, but this may have been a quick hack I did of a model B version.

Circuit Diagrams

As I had to do a fair amount of debugging of the Solidisk code (certainly with the version 1 boards), I ended up drawing the circuit diagrams of their various boards. I apologise for the format of the diagrams. The DDFS v2 diagram is the only decently drawn one - although I forget how it was produced, and I now only have a paper copy.
If I had access to a scanner, the images of the drawings might be better. These are photographs from a digital camera, and are ~400k each.

It ought to be possible to convert a Solidisk version 1 DDFS or DFDC board to be Acorn compatible, but I've never tried to.

DDFS boards (disk upgrade)DFDC boards (dual controllers)
Version 1 (Solidisk hardware)ddfs_v1.jpg dfdc_v1.jpg
Version 2 (Acorn compatible hardware)ddfs_v2.jpg dfdc_v2.jpg

1770 Floppy Disk Controller Memory Map Locations

HardwareFDC baseControl Register
Acorn BBC/B+, & Solidisk v2&FE84 - &FE87&FE80
Solidisk v1&FE80 - &FE83&FE86
Master 128&FE28 - &FE2B&FE24

Epilogue

Despite the evidence above, I never owned a Solidisk disk controller board. My involvement with them came from several friends who bought the boards and the various problems which they experienced.
It is now many years since I worked on the boards and the software, and I've probably forgotten a lot about them. Please don't expect me to remember many more details...

Appendix A: Watford Electronics

In the days of the 8271 disk controller, Watford Electronics brought out a DFS ROM which allowed the option of 62 files per floppy 'drive' (rather than Acorn's 31). An Acorn DFS would only see the first 31 files.
Later they produced 1770 disk upgrades (some of which were compatible with Acorn's 1770 disk upgrade), and DDFS ROMs which could use double density with DFS on a 1770 (using 18 sectors per track). To the best of my knowledge Watford Electronics never produced their DDFS ROM for the Master 128 - but I did create a couple of patched Watford DDFS ROMs for the BBC Master 128.

Appendix B: Interesting Fact number 42

Did you know that the Master 128 hardware very nearly supports 3 floppy drive units out of the box ? With the addition of 3 diodes, a transistor, and a resistor (all marked "not fitted" on the circuit diagram), drive select signal DS2 is made available on the floppy interface (to join DS0 and DS1). I've never seen any software which exploits this - certainly the Acorn DFS and ADFS ROMs don't.
Email Andrew Benham