Header

Reliable 3.5" storage with none of the hassle

[Front page] [BBC Mecca] [Links] [PIC micros] [Enviromyths] [The dump] [Email]

On this page


Reasons it should work

The BBC Microcomputer series can save programs and data to floppy disc so that they can be preserved when the computer is turned off. At the time of design 5.25" drives were the norm (though the interface can also talk to 8" drives with a few minor modifications), indeed the 3.5" drive was not introduced by Sony until 1983.

Fortunately, the disc drive designers considered existing equipment when designing the newer 3.5" drives - they made them pin for pin compatible. This makes it possible to use a modern 1.44Mbyte high density 3.5" floppy disc drive, thus eliminating the problem of sourcing 5.25" discs while also helping with transfers to and from newer machines.

Remember that the drive itself has no idea what data it is being asked to write to the disc surface so although drives today are intended to be used with PCs they can equally well write BBC formatted discs too.


Urban myths

Despite in theory being a plug-in-and-go job to make 3.5" drives work, adding such a drive is one of the most frequently asked questions, leading to a number of baseless myths:
  1. The cable needs a twist in it.
    False. In a two drive PC the far end of the cable is wired as drive 1 and the connector half way down the cable as drive 0. As most people only have one drive the furthest connector (for best signal integrity) is used and so most drives intended for PCs are shipped as drive 1 by default.
    To appear as drive 0 a link inside the drive can be swapped over, so there is a small amount of truth in the myth, as the same net effect could be achieved by swapping pins 10 and 12 with a 'cut and twist' of the ribbon cable. However these are not the pins that are swapped in a conventional PC cable (they swap 10, 12, 14, and 16) so the universal solution is to use a flat cable and move the link in the drive.
  2. Using a DD diskette in a HD drive is bad.
    False. Although the ideal would be to have a double density diskette in a double density drive, a high density capable drive can still write to double density diskettes by increasing the write current to the heads. Density is selected by a microswitch inside the drive where the density hole is.
    Don't try to make DD diskettes by covering up the hole in the right hand corner of a HD disc though.
  3. Modern drives are too fast for the BBC Micro.
    False. The disc controller chip inside the computer is responsible for all timing of the drive, so even if the drive completes an operation very quickly it must sit and wait for the next operation from the computer.
    Details of setting the step speed are given below.

Reasons it doesn't work

The BBC Microcomputer series employs one of two disc controller chips as standard so first it is necessary to identify which is installed. Powering up the machine to see if the appropriate filing system is installed will normally be enough, otherwise it will be necessary to remove the lid and look what chip is in the socket location listed for the respective machine. Note that the following table assumes an Acorn disc filing system, other author's filing systems use different version numbers.

Machine: Location: Disc controller: Filing system:
BBC BIC788271Acorn DFS 1.20 or earlier
Daughter board upside down in IC781770 or 17721770 DFS 2.00 or later
BBC B+IC158271Acorn DFS 1.20
IC161770 or 17721770 DFS 2.00 or later
MasterIC31770 or 1772Acorn DFS 2.24 or later
Master CompactIC61772Acorn DFS 2.24 or later

The only remaining hurdle is with index pulses. The index pulse is a synchronising pulse used to work out where the first sector of a track is, it is measured (rather than timed by software) to allow for slight differences in the speed that the motor spins at on two drives from two different manufacturers.

A small hole near the centre of the disc lets through a beam of light once per revolution.

Index hole
Index hole in a 5.25" disc, 3.5" discs use a non optical method

If a 1770 or 1772 controller chip is installed a 3.5" drive (selected as drive 0) along with a ribbon cable is all that is required, the next section can be skipped leaving only final setting up stage.

For the older 8271 disc controller that most people use this index pulse is problematic with 3.5" drives, leading to drive faults being reported - especially when loading large files. This is easily confirmed by entering the following test commands:

   MODE 7
   *DISC
   *SAVE test 0 +4000
   *LOAD test 3000

This sequence will have failed to save the file, reporting something like "Disc fault 10 at xx/yy". The disc fault is entirely caused by a change to the drive interface after the 8271 circuit was designed where the index pulse is supressed after the head is stepped.

Timeout
A missing index pulse due to head stepping

A patched DFS 1.20 (dubbed DFS 1.21) speculatively retries the "Drive not ready" disc error which can help avoid this 'step acknowledge' behaviour from causing a drive error.

Looking at the circuit diagram shows why this would cause a problem:

Circuit diagram
Index pulse circuitry for the 8271

The index pulse comes in via a set of option links (to select whether the index pulse is on pin 4 for 8" drives or pin 8 normally), and an inverter. The yellow components divide the 8MHz clock down by 256 then by 16384 to 1.9Hz. The red and blue components are latches, one each for drive 0 and drive 1, which produce the "drive ready" signals for the 8271.

What this means is that there are is a timeout on the ready signals of 1.9Hz (about 520ms). As a 3.5" drive spins at 300 revolutions per minute (200ms per revolution) a missing index pulse causes the latches to time out and tell the 8271 that the drive is not ready.


A hardware solution

As the missing index pulses are not being used to time the start of a write to the disc (since the heads are being stepped at that point) it is safe to recreate the missing index pulses. Unfortunately 3.5" discs do not have the same index hole punched in them as depicted above, instead they measure the speed that a metal disc attached to the motor is spinning at - often with a small magnet passing a sensor once per revolution.

This makes it slightly more difficult to recreate the missing index pulses as there is no convenient place to pick up the output of a light sensor. Instead, a timer and a small amount of discrete logic are all that is required to insert the missing pulses, with all of the circuitry hidden away neatly inside the existing drive casing.

Modification
Prototype modification to the inside of a new drive

Installing the drive for the first time

Before starting to use 3.5" discs it is necessary to set the drive up. Connect the ribbon cable to the port labelled "disc drive" nearest to the power supply and attach the power connector to the auxiliary power connector, noting the polarity. The Master Compact houses the drive in a seperate unit with a special cable joining to the keyboard - consult the Welcome Guide for details of how to proceed.

The drive timing is also important: it ensures the drive is being accessed at the optimum speed, although it can be driven more slowly the drive will often be more noisy that intended. By example the Teac FD235 model of drive can step the head in 3ms and settle in 15ms following a step.

The timing is set by switch 3 and switch 4 of the row of 8 option switches in the bottom right hand corner of the keyboard. The following table summarises step options for the BBC B and B+:

Controller: Step time: Settle time: Setting:
82714ms16msSW3 closed SW4 closed (or *FX255,207,0 then press BREAK)
6ms16msSW3 open SW4 closed (or *FX255,223,0 then press BREAK)
6ms50msSW3 closed SW4 open (or *FX255,239,0 then press BREAK)
24ms20msSW3 open SW4 open (or *FX255,255,0 then press BREAK)
17706ms30msSW3 closed SW4 closed (or *FX255,207,0 then press BREAK)
12ms30msSW3 open SW4 closed (or *FX255,223,0 then press BREAK)
20ms30msSW3 closed SW4 open (or *FX255,239,0 then press BREAK)
30ms30msSW3 open SW4 open (or *FX255,255,0 then press BREAK)
17726ms15msSW3 closed SW4 closed (or *FX255,207,0 then press BREAK)
12ms15msSW3 open SW4 closed (or *FX255,223,0 then press BREAK)
2ms15msSW3 closed SW4 open (or *FX255,239,0 then press BREAK)
3ms15msSW3 open SW4 open (or *FX255,255,0 then press BREAK)

As standard the keyboard option switches are not present, these can be joined by soldering a small length of wire between the pads to set the options, or a more flexible solution is to solder a set of small switches into the empty holes (eg. part number 990-1701 from Farnell or equivalent).

As a temporary measure the equivalent setting can be changed with *FX255 (as shown), however this setting is not kept over a hard reset or turning the computer off so needs to be typed in each time.

For the Master series, its timing settings are held in battery backed memory instead:

Controller: Step time: Settle time: Setting:
17706ms30ms*CONFIG.FDRIVE 0
12ms30ms*CONFIG.FDRIVE 1
20ms30ms*CONFIG.FDRIVE 2
30ms30ms*CONFIG.FDRIVE 3
17726ms15ms*CONFIG.FDRIVE 0
12ms15ms*CONFIG.FDRIVE 1
2ms15ms*CONFIG.FDRIVE 2
3ms15ms*CONFIG.FDRIVE 3


Availability

Orders can be placed online, or alternatively sent by post.

All drives are soak tested and fitted with the above described hardware solution, they are self enclosed with no exposed moving parts but don't have a beige outer case:

Option: Price: Comments:
3.5" drive with index pulse modification and cables
£24.50 inc postage
Modified internally for use with 8271 or 1770 controller
Fitted with BBC auxiliary power connector and approx 30" of ribbon cable

©2008 SPROW [Updated 09-Aug-2008] | home
Valid HTML 4.01