BeebIDE harddisc interface for the BBC series
[Front page]
[BBC Mecca]
[Links]
[PIC micros]
[FPGA workshop]
[The dump]
[Email]
On this page
When the BBC Micro and BBC Master series were designed mass storage devices were few and far between, mainly because of the high cost of purchase. A 5MB drive would normally be enough storage for an entire class of users, with the expensive drive being shared across a network.
The original drives used the SASI interface (largely equivalent to a SCSI I interface) which made writing the hardware drivers relatively simple, using high level "sector" operations to talk to the logical layout of the drive.
However this approach has a number of draw backs
- Original drives are hard to obtain and, being old, are unreliable
- New SCSI drives rarely support the 256 byte sectors required by the filing systems and cannot be reformatted
- Nobody makes the SCSI host interface PCBs
An alternative approach is to use the readily available integrated drive electronics discs robbed from a PC, or purchased from your local computer supplier for a few pounds.
The interface board is a new design which joins to the 1MHz port on the BBC, bridging it to an IDE port. Consisting primarily of address decoding, some latches and buffers, the only additional parts required are a standard 40 pin ribbon cable and the chosen drive.
There are locating holes positioned to allow the interface board to be screwed onto the holes normally used to hold the drive in the PC case, though these can be snapped off if not required - making the interface the same size as MiniB.

An unpopulated IDE board showing the drive screw holes
Jumper links on the PCB determine where in the memory map the drives appear to software, each interface taking 16 bytes in the range &FC40-FC4F or &FC50-FC5F as desired. As each interface can drive a master/slave combination this gives a potential for up to 4 IDE drives in total.
Though filing system software would be required, there's no reason in principle why an ATAPI device could not appear amongst the 4 drives - opening up the possibility of support for CD-ROM as well as harddisc storage.
For the technically minded, the interface comprises
- Full 16 bit interface with automatic upper byte latching
- 1MHz interface with clean page FC ("Fred") circuitry
- 1MHz loop through to other devices in the chain, with optional termination resistors
- Standard 40 pin IDE interface with key pin in position 20
- Optional interrupt capability to shared nIRQ line
Jumpers define the region in the memory map which the interface appears, with &FC40 being the default. Within this the decoding selects:
| Offset
| Description
| Access
|
| +00 | data (low byte) on CS0 | RW
|
| +01 | error on CS0 | R
|
| +02 | count on CS0 | RW
|
| +03 | sector on CS0 | RW
|
| +04 | cylinder (low) on CS0 | RW
|
| +05 | cylinder (high) on CS0 | RW
|
| +06 | head on CS0 | RW
|
| +07 | status on CS0 | R
|
| +08 | data (high byte) | RW
|
| +09 | RW
|
| +0A | RW
|
| +0B | RW
|
| +0C | unused |
|
| +0D | unused |
|
| +0E | alternative status on CS1 | R
|
| +0F | unused |
|
As the hardware supports 16 bit transfers, but the 6502 is an 8 bit CPU the wider transfers must be completed in two stages:
- For writes to the drive the "data high" register must be written to first by the CPU, before the low byte. The action of writing the low byte causes the hardware to transfer the full 16 bits to the drive.
- For reads from the drive, the low byte must be read first which will capture the high byte in the interface card, the CPU can then read the high byte from "data high" at a later time.
Note that some registers have different meanings if the drive is programmed to run in logical block addressing mode. For a more complete description of what the registers mean consult the ATA command document.
These boards are available now exclusively through JG Harston in either bare PCB form or ready assembled and tested. Options include the purchase of an updated filing system ROM containing ADFS with support for IDE drives.

A completed IDE interface board
Orders can be placed online, or alternatively sent by post.
Additionally, it is possible to buy the 74HCT646 direct, if assembling the interface yourself:
| Option:
| Price:
| Comments:
|
| 74HCT646 in 0.3" DIL24 package
|
| Single device, 1 required per interface
|
©2006 SPROW [Updated 29-Jan-2006] | home