The 8271, Acorn and 3.5" Floppies

The 8271

The 8271 'Programmable Floppy Disk Controller' was released by Intel in 1977 for use with their 8-bit microprocessors i.e. the 8080.  I have found no material on the web that points to its use even though it was apparently used on a small number of business computers. Acorn chose it for their System Computers and then the big breakthrough was its later incorporation in the BBC Computer.

8271 Data Sheet

It was quite a large and sophisticated device incorporating two processors, much more information on the architecture can be found here https://scarybeastsecurity.blogspot.com/2020/11/reverse-engineering-forgotten-1970s.html where a team are in the process of reverse engineering it.  These guys have uncovered a lot of useful background including the fact that the 8273 'Programmable HDLC/SDLC Protocol Controller' has an identical architecture.

The 8271 was an expensive part and suffered from heat and supply chain problems, it also lacked MFM support - it was replaced by the 8272 around 1979 which seems to just be a rebadged NEC D765 ?, the 8272/D765 became the floppy disk controller of the IBM PC.

The Acorn FDC

Acorn's Floppy Disk Controller (FDC) design was first developed for their System Computer Floppy Disk Controller Board, but was later used unchanged on the Atom and BBC Computers.  Unfortunately the 8271 was really designed for use with 8" Floppy Disk drives and was only capable of SD, Single Density, recording which limited capacity to 100K for a 40-track disk.  The 8271, in its standard configuration, could only interface to a pair of drives although it could be expanded to 4 drives.  The Acorn FDC design allowed for interfacing to a pair of double sided drives and incorporated additional circuitry to allow the 8271 to work with 5.25" drives but not with 3.5" drives.

8" Floppy Disk drives provided a Drive Ready signal for the controller (pin 22 on the Shugart 50-pin disk interface).  This signal is not usually present on 5.25" drives which expected the controller to determine that the drive was ready by monitoring the Index pulses.  (I assume that there are some 5.25" drives with a Drive Ready signal as there are also apparently 3.5" drives with this capability that are sought after for Amiga and Amstrad CPC/PCW machines.)  The 8271 has a pair of Ready inputs intended to be connected to the Drive Ready signals and suggests that when these are not provided to use a 'one-shot' monitoring the Index pulses.

Acorn followed the later approach and implemented a digital 'one-shot':

Acorn 8271 Ready Digital One Shot 

IC9, a 14-stage ripple counter, is reset each time an Index pulse arrives.  It is clocked at 15.625kHz, if no Index pulses are present then after a count of 4096 Q12 will go high, this equates to 262mS.

The two pairs of D-type latches (IC10/11) generate a Not Ready signal for each drive.  Each time a drive is selected (by NSEL0/1) Not Ready is set (i.e. Not Ready), if an Index pulse arrives before the completion of the IC9 count then Not Ready will be reset (Ready).  Compatible drives rotate at 300rpm and produce an Index pulse on every rotation of the disk therefore Index pulses arrive at 200mS intervals just in time to beat the IC9 count.

3.5" Floppy Drives

3.5" drives work a little differently, Index pulses are suppressed when  the head is stepped, presumably to signal Not Ready.  This means that the interval between Index pulses can extend to 400mS which with the Acorn FDC interface causes Disk error 10 'drive not ready' because the time interval exceeds the IC9 262mS.

A couple of workarounds have been produced aimed at the BBC Computer in an attempt to get around this problem:

(an alternative, only available for the BBC Computer, is to switch to a different controller i.e. the 1770/1772)

I preferred to try and resolve the issue at source i.e. the 8271 Ready signal generator.  My initial solution was to extend the timeout by using the Q13 output of IC9 rather than Q12 which switches after 524mS.  This worked to an extent but I found that in particular when formatting a disk for 80 tracks Disk error 10 still occurred.  After investigation I found that the problem was in the time taken for the head to return from track 80 back to 0.  I measured the time taken to return from track 40 to 0 as approximately 237mS and from track 80 to 0 as 476mS.  During this time no index pulses are produced hence the Disk error 10.  (Out of interest I measured the return time on an 80 track 5.25" drives, it was very similar but of course didn't suffer from the same problem as it continues to provide Index pulses)

Unfortunately Q13 is the last output from IC9 so its not possible to simple double the delay again however I found that ANDing Q12 and Q13 to produce a delay of 600mS does the trick.

I have incorporated this fix in the latest version of my replica FDC board design (Replica Floppy Disk Controller).

Back to Acorn System Filing Systems

Acorn Home Page