Adding a hard disk to the BBC Micro
Acorn did offer a hard disk upgrade for the BBC Micro, but it cost around
£1000 - somewhat out of the range of hobby users. Torch offered something
However a group of users in the Midlands (UK) put together some
instructions on how to roll your own hard disk upgrade, and also
provided a number of utilities. These have become known as the
"Tubby Utils" after Mike Tubby (G8TIC) who was one of the authors.
Please remember that this documentation is dated 1987. We're in the days
of ST-506 disk drives of around 20MB in size. The hard disk system you'll
learn about is a host adaptor hanging off the 1MHz bus which talks an
early dialect of SCSI to an Adaptec ACB 4000 "SCSI to ST-506" bridge board.
If you want a more "up to date" solution, then some options are:
- Connecting a SCSI drive directly to the host adaptor. You'll need a
SCSI drive that has parity disabled, can do 256-byte sectors, and which
doesn't use the ATN line (since that isn't provided by the host adaptor).
- Use an IDE drive with a different host adaptor and a modified ADFS with
Jonathan Harston's IDE interface.
- Use a MultiMedia card with special software. Options I know of are:
- John Kortink's GoMMC.
At least one batch of cards were made, I'm not sure if the developer is
going to make more batches.
- Martin Mather's MMC interface. Apparently costs about £10 to make one.
- Since CompactFlash cards are really IDE devices with a different connector, you can probably attach one to the IDE upgrade above.
Using other Bridge Boards
Acorn's Hard Disk upgrades used the Adaptec ACB 4000 "SCSI to ST-506"
bridge board. If you use one of these, then you'll have fewest problems
- for example, the *VERIFY command in ADFS 2.03 will just work (it uses
SCSI command $2F, which not many other boards support).
However you may find yourself with a different bridge board - for example,
Torch used Xebec S1410 bridge boards.
The challenge here is that as far as the ADFS is concerned, the drive
is just a sequence of sectors (addressed solely by sector number). But
the drive itself is organised as Cylinders/Heads/Sectors. Something has
to do the translation - and that's where problems can arise. The Adaptec
board is clever, and it stores the drive geometry on a 'hidden' area
of the drive. At power-up or BREAK, the Adaptec controller loads
the drive geometry from this hidden area.
Many other bridge boards will at power-up or BREAK default to
the geometry for the (then)
industry standard 5MB drive
, and rely on "something else"
to set the drive geometry correctly. Something in the Torch software
did this for the Xebec S1410 bridge board - but I never had the rest
of the Torch system to find out what. A possible solution to the
problem is a !BOOT file to set the drive geometry - but this !BOOT
file must be located entirely within the first 32 sectors of the
drive in order to guarantee
that it's found whilst the controller is using the wrong geometry!
Before I obtained an Adaptec ACB 4000 board, I used a Xebec S1410
bridge board. To make life much easier, I patched the firmware to
change the geometry which it uses as default to exactly match the
geometry of my drive.
Patching the Xebec S1410 firmware
The firmware on my board was in a 2732 EPROM labelled 104778D. The
drive geometry is stored at addresses $0FF6 to $0FFD, with an EPROM
checksum at $0FFE. I found files named XEBEC_D on my hard disk which
were a ROM dump and a manual partial disassembly.
I also found files named XEBEC_F on the hard disk. On this
version, the drive geometry is stored at addresses $0FE5 to $0FEC,
with an EPROM checksum at $0FED. I've no idea where I got these
The standard 5MB drive geometry is stored as:
153 cylinders * 4 heads * 33 sectors * 256 bytes per sector = 5MB.
|00||99||Cylinders||($0099 = 153)|
|04||Heads||($04 = 4)|
|00||80||Reduced Write Current Cylinder||($0080 = 128)|
|00||40||Write Precompensation Cylinder||($0040 = 64)|
|0B||ECC Length||($0B = 11)|
Change to suit your drive.
My recollection was that I'd disabled the checksum routine, but
it appears that I was wrong. SCSI command $E4 is 'perform controller
diagnostics', and this reports on whether the checksum is correct. I've
obviously recalculated the checksum after changing the drive geometry
bytes so that SCSI command $E4 reports 'checksum OK'. Not that anything
in real life will worry about this...
The Tubby Utils
I've scanned the documentation for the Tubby Utils. This documentation
is well worth a read if you're considering a do it yourself hard disk
I didn't have much luck OCRing the scanned document, so they are
all PDF documents. If anyone wants to OCR them, or type them in by
There was originally a 2 page introduction. The second page was a list
of information being sought, and details of a pending change of address.
Since this was almost 20 years ago, I've not included that page.
And yes, I scanned it upside down!
The real documentation on how the hard disk system can be put together.
The utility programs. You probably don't want to type them in, most
are linked below.
After the program listings, there were two pages giving contact details
for the group members, details of suppliers of component parts, etc.
As these are nearly 20 years old, I've not scanned them ("Hello, do you
still have for sale the E-Type Jaguar you advertised for £500 in Exchange
and Mart in 1973 ?").
The artwork for etching your own host adaptor, and its circuit diagram.
Because the board layouts have been printed, photocopied, and then
scanned they are probably not directly usable.
The Tubby Programs
If you're interested in the above, and you aren't subscribed to
firstname.lastname@example.org - the
BBC Micro Mailing List then subscribe immediately.
Andrew Benham (G8FSL), Southgate, London N14 4XD, United Kingdom
Mail Andrew Benham (email@example.com)