K&P SFD-800

One of the most needed acessories for the Sharp MZ series is the venerable Floppy Disk Controller. These are in relative short supply as not many people used them, mainly due to cost, during the Sharp MZ era.

Sharp released their own controllers often based around the MB8866 IC which needed a lot of support circuitry. A few 3rd parties developed their own and one design, by a company (no longer in existence) called Kersten & Partners GmbH (K&P) developed a much simpler design but with no less functionality. This design used a newer Western Digital Floppy Disk Controller IC, the WD1773 which incorporated a lot of the circuitry which Sharp, using the MB8866, had to place externally on the circuit board.

I came across their SFD-800 board when I purchased an MZ-80B which included an original card. I also had an MZ-800 and was able to swap the card between both machines without issue. As my collection of Sharp MZ machines increased, I needed floppy disk controllers for all of the machines and as they are difficult to buy decided upon replication of the SFD-800 board.

This page outlines the new schematic, the GAL code and any issues discovered on each machine.


The schematic originally comes from the K&P SFD800 Manual which took a bit of deciphering mainly due to the bad image scan. This schematic was then captured in KiCAD and is shown below.




The original device used by K&P was a PAL, a one time programmable logic device with its protection fuse set. As the PAL is a simple device, 12 inputs, 8 outputs, it would be simple to deduce the logic by probing. Given the design is actually quite simple and as I had extensive experience of floppy disks writing the RFS and TZFS monitors I decided to write the logic from scratch, based on what I knew.

I used WinCUPL to compile the code and tested the GAL on the original K&P SFD800 board for verification. The code is below and as can be seen it is just decoding addresses and creating select lines.

Name     SFD800 ;
PartNo   PAL12L6 ;
Date     20/05/2021 ;
Revision 01 ;
Designer Philip Smart ;
Company  engineers@work ;
Assembly SFD800 ;
Location  ;
Device   g16v8a;

/* *************** INPUT PINS *********************/
PIN  1   = A0                        ; /* Address bus A0                  */ 
PIN  2   = A1                        ; /*             A1                  */ 
PIN  3   = A2                        ; /*             A2                  */ 
PIN  4   = A3                        ; /*             A3                  */ 
PIN  6   = A4                        ; /*             A4                  */ 
PIN  7   = A5                        ; /*             A5                  */ 
PIN  8   = A6                        ; /*             A6                  */ 
PIN  9   = A7                        ; /*             A7                  */ 
PIN 19   = IORQn                     ; /* Z80 IORQ active low             */ 
PIN 11   = WRn                       ; /* Z80 WR active low               */ 
PIN 12   = RDn                       ; /* Z80 RD active low               */ 
PIN 5    = RESET                     ; /* System Reset active high        */ 

/* *************** OUTPUT PINS *********************/
PIN 13   = BUSn                      ; /* BUS direction, low = read into Z80, high = write to FD IC's */ 
PIN 18   = FDCn                      ; /* WD1773 Chip Select active low I/O - Address 0xD8 .. 0xDB */ 
PIN 14   = DRIVEn                    ; /* Disk Drive Select active low - Address 0xDC */ 
PIN 17   = DDENn                     ; /* Drive Density select active low - Address 0xDE */ 
PIN 15   = RESn                      ; /* Peripheral Reset active low */ 
PIN 16   = SIDEn                     ; /* Disk Head Select active low - Address 0xDD */ 

/* Decoder equations. */
FIELD ADDR = [A7..A0];
WD1773SEL  = !IORQn & ADDR:[D8..DB];
SIDESEL    = !IORQn & !WRn & ADDR:[DD..DD];
DDENSEL    = !IORQn & !WRn & ADDR:[DE..DE];  
BUSREAD    = !IORQn & !RDn & ADDR:[D8..DE];

/* Assign output pins based on equations. */
BUSn       = !BUSREAD;
RESn       = !RESET;
FDCn       = !WD1773SEL;
SIDEn      = !SIDESEL;
DDENn      = !DDENSEL;


The PCB differs from the original in that I used KiCAD rather than hand drawn images. The advantage to KiCAD is that it uses more modern routing techniques and copper fills.

Schematic Schematic

PCB Top Side PCB Bottom Side


K&P SFD800 Manual

The above link downloads the original K&P User Manual which is in German. The best way to translate is to use your smart phone, load the Google translate app, set to realtime camera translate and set the language as German-><your language>.


The table below outlines the cost to make a PCB. The pricing isnt quite so accurate as you often have to buy in multiples of 10/50/100 and amortize across the number of boards you make. Scroll right to see all the table detail.

Reference(s)ValueQtyPrice eaPriceVATTotalLibPartFootprintDatasheetSource
C1, C2, C3, C5, C6, C7, C8100nF7£0.05£0.32£0.06£0.38Device:C_SmallCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm~https://uk.rs-online.com/web/p/mlccs-multilayer-ceramic-capacitors/1816538/
C44.7uF 50V1£0.06£0.06£0.01£0.07Device:CP_SmallCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm~https://uk.rs-online.com/web/p/aluminium-capacitors/1766355/
J1MZ-800 Bus1£0.00£0.00 £0.00SFD800:Ext_Bus_MZ800Connector_PCBEdge:BUS_MZ800https://en.wikipedia.org/wiki/Industry_Standard_Architecture 
J2FDC-341£6.13£6.13 £6.13Connector_Generic:Conn_02x17_Odd_EvenConnector_IDC:IDC-Header_2x17_P2.54mm_Horizontal_Lock~https://uk.rs-online.com/web/p/idc-connectors/1625768/
R1, R2560R2£0.02£0.05£0.01£0.06Device:R_SmallResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal~https://uk.rs-online.com/web/p/through-hole-fixed-resistors/7078209/
U174LS061£0.53£0.53 £0.5374xx:74LS06Package_DIP:DIP-14_W7.62mmhttp://www.ti.com/lit/gpn/sn74LS06https://www.ebay.co.uk/itm/164768071881
U274LS041£0.60£0.60 £0.6074xx:74LS04Package_DIP:DIP-14_W7.62mmhttp://www.ti.com/lit/gpn/sn74LS04https://www.ebay.co.uk/itm/271156206149
U3PAL12L61£1.29£1.29 £1.29SFD800:PAL12L6Package_DIP:DIP-20_W7.62mm https://www.ebay.co.uk/itm/274791322822
U474LS141£0.30£0.30 £0.3074xx:74LS14Package_DIP:DIP-14_W7.62mmhttp://www.ti.com/lit/gpn/sn74LS14https://www.ebay.co.uk/itm/310597511398
U5, U674LS742£1.49£2.98 £2.9874xx:74LS74Package_DIP:DIP-14_W7.62mm74xx/74hc_hct74.pdfhttps://www.ebay.co.uk/itm/261370707740
U7, U874LS2422£0.60£1.20 £1.2074xx:74LS242Package_DIP:DIP-14_W7.62mmhttp://www.ti.com/lit/gpn/sn74LS242https://www.ebay.co.uk/itm/310597509060
U9WD17731£6.29£6.29 £6.29MZ80-80CLR:WD1773Package_DIP:DIP-28_W15.24mmhttps://amaus.net/static/S100/western%20digital/datasheet/Western%20Digital%20FD1771%20Specification%20197710.pdfhttps://www.ebay.co.uk/itm/273156696548
U1074LS1751£0.88£0.88 £0.8874xx:74LS175Package_DIP:DIP-16_W7.62mmhttp://www.ti.com/lit/gpn/sn74LS175https://www.ebay.co.uk/itm/261370708352
U1174LS1451£0.61£0.61 £0.6174xx:74LS145Package_DIP:DIP-16_W7.62mmhttp://www.ti.com/lit/gpn/sn74LS145https://www.ebay.co.uk/itm/233948995720
Socket 128 pin1£0.35£0.35£0.07£0.4228 Pin Socket  https://uk.rs-online.com/web/p/dil-sockets/6742454
Socket 220 pin1£0.24£0.24£0.05£0.2820 Pin Socket  https://uk.rs-online.com/web/p/dil-sockets/6742444
PCB 1£4.93£4.93 £4.93    
Total     £27.68   


Please see github for all project files.

For SaleI sell on Tindie

I’ve built over 20 of these cards to-date, 5 of which are in my own machines and all run reliably. I now require a further 2 cards so will order a batch of 10 PCB’s from the PCB fabricators (the cards are ordered in multiples of 5/10 and being outsize do not benefit from the prototype offers) and will offer any spare on Tindie, either fully assembled and tested or a kit of parts. Please see the link above which will list cards when available.


The original design and board is copyright 1985 Kersten & Partners GmbH from Aachen, Germany who have now gone out of business. I took measures to contact them to seek permission for reproduction, writing to their last known address but had no response.

The new board is identical to the original except in part placement (2 IC's swapped), PCB land layout and the GAL code was written from scratch.


This design, hardware and software, is licensed under the GNU Public Licence v3.

The Gnu Public License v3

The source and binary files in this project marked as GPL v3 are free software: you can redistribute it and-or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The source files are distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.