K&P SFD-800
Eines der am meisten benoetigten Zubehoerteile fuer die Sharp MZ-Serie ist der altbewaehrte Floppy-Disk-Controller. Diese sind relativ selten, da sie waehrend der Sharp MZ-Aera aufgrund der hohen Kosten von nur wenigen Nutzern eingesetzt wurden.
Sharp veroeffentlichte eigene Controller, die haeufig auf dem MB8866-IC basierten und viel zusaetzliche Beschaltung benoetigten. Einige Drittanbieter entwickelten eigene Loesungen, und ein Entwurf der Firma Kersten & Partners GmbH (K&P), die inzwischen nicht mehr existiert, war deutlich einfacher aufgebaut, bot aber den gleichen Funktionsumfang. Dieses Design verwendete den neueren Western Digital Floppy-Disk-Controller-IC WD1773, der einen Grossteil der Schaltung integrierte, die Sharp beim MB8866 extern auf der Platine unterbringen musste.
Ich stiess auf deren SFD-800-Karte, als ich einen MZ-80B erwarb, dem eine Originalkarte beilag. Ich besass ausserdem einen MZ-800 und konnte die Karte problemlos zwischen beiden Maschinen wechseln. Als meine Sammlung von Sharp MZ-Computern wuchs, benoetigte ich fuer alle Maschinen Floppy-Disk-Controller, und da diese schwer zu kaufen sind, entschied ich mich fuer die Nachbildung der SFD-800-Karte.
Diese Seite beschreibt den nachgebildeten Schaltplan, die GAL-Logik (WinCUPL), die Leiterplatte (PCB) und Informationen zu den Herstellungskosten.
Schaltplan
Der Schaltplan stammt urspruenglich aus dem K&P SFD800 Handbuch, das aufgrund des schlechten Bildscans einiges an Entzifferungsarbeit erforderte. Dieser Schaltplan wurde anschliessend in KiCAD erfasst und ist unten dargestellt.

Automatisiertes Setup und Build (empfohlen)
| Skript | Plattform | Hinweise |
|---|---|---|
setup_SFD800.sh |
macOS / Linux | Installiert Git + DOSBox, klont und baut anschliessend |
setup_SFD800_windows.cmd |
Windows 10 / 11 | Doppelklick-Starter fuer den nativen Installer |
setup_SFD800_windows_native.ps1 |
Windows 10 / 11 | winget Git + DOSBox (nativ, kein WSL/Docker) |
macOS / Linux — setup_SFD800.sh
chmod +x setup_SFD800.sh ./setup_SFD800.sh
Windows 10 / 11 — Doppelklick auf setup_SFD800_windows.cmd oder fuehren Sie den nativen Installer an einer PowerShell-Eingabeaufforderung aus:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass .\setup_SFD800_windows_native.ps1
SFD800.PLD als g16v8s-Ziel (GAL16V8) und schreibt die JEDEC-Datei nach CUPL/SFD800.jed:
./build_cupl.sh # -> CUPL/SFD800.jed
| Variable | Standard | Zweck |
|---|---|---|
SFD800_REPO_URL |
https://git.eaw.app/eaw/SFD800.git |
Zu klonendes Repository |
SFD800_DIR |
(Skript-Standard) | Verzeichnis zum Klonen / Bauen |
SFD800_ASSUME_YES |
(nicht gesetzt) | Auf 1 setzen, um alle Abfragen nicht-interaktiv zu bestaetigen |
CUPL/SFD800.jed unter Verwendung eines kompatiblen Programmiergeraets wie einem TL866 / XGecu. Der manuelle GAL-Abschnitt weiter unten dokumentiert den CUPL-Quellcode und die Logik fuer alle, die sie von Hand erstellen moechten.
GAL
Das urspruengliche Bauteil von K&P war ein PAL, ein einmal programmierbares Logikbauelement mit gesetzter Schutzsicherung. Da der PAL ein einfaches Bauelement ist – 12 Eingaenge, 8 Ausgaenge – waere es einfach gewesen, die Logik durch Messen zu ermitteln. Da der Entwurf tatsaechlich recht einfach ist und ich umfangreiche Erfahrung mit Diskettenlaufwerken hatte, als ich die RFS- und TZFS-Monitore schrieb, entschied ich mich, die Logik von Grund auf neu zu schreiben, basierend auf meinem Wissen.
Ich verwendete WinCUPL zum Kompilieren des Codes und testete den GAL auf der originalen K&P SFD800-Karte zur Verifikation. Der Code ist unten dargestellt, und wie zu sehen ist, handelt es sich lediglich um Adressdekodierung und die Erzeugung von Auswahlsignalen.
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];
DRIVESEL = !IORQn & !WRn & ADDR:[DC..DC];
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;
DRIVEn = !DRIVESEL;
DDENn = !DDENSEL;
Leiterplatte/PCB
Die Leiterplatte unterscheidet sich vom Original dadurch, dass ich KiCAD anstelle von handgezeichneten Bildern verwendete. Der Vorteil von KiCAD liegt in moderneren Routing-Techniken und Kupferfuellungen.


Dokumentation
Der obige Link laedt das originale K&P Benutzerhandbuch herunter, das auf Deutsch verfasst ist. Die beste Uebersetzungsmethode ist die Verwendung der Google Translate-App auf Ihrem Smartphone mit der Echtzeit-Kamerauebersetzungsfunktion, eingestellt auf Deutsch-><Ihre Sprache>.
Preis
Die folgende Tabelle zeigt die Kosten fuer die Herstellung einer Leiterplatte. Die Preise sind nicht ganz exakt, da man haeufig in Stueckzahlen von 10/50/100 kaufen und die Kosten ueber die Anzahl der gefertigten Platinen umlegen muss. Scrollen Sie nach rechts, um alle Tabellendetails zu sehen.
| Reference(s) | Value | Qty | Price ea | Price | VAT | Total | LibPart | Footprint | Datasheet | Source |
|---|---|---|---|---|---|---|---|---|---|---|
| C1, C2, C3, C5, C6, C7, C8 | 100nF | 7 | £0.05 | £0.32 | £0.06 | £0.38 | Device:C_Small | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm | ~ | https://uk.rs-online.com/web/p/mlccs-multilayer-ceramic-capacitors/1816538/ |
| C4 | 4.7uF 50V | 1 | £0.06 | £0.06 | £0.01 | £0.07 | Device:CP_Small | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm | ~ | https://uk.rs-online.com/web/p/aluminium-capacitors/1766355/ |
| C9 | 15pF | 1 | £0.11 | £0.11 | £0.02 | £0.13 | Device:C_Small | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm | ~ | https://uk.rs-online.com/web/p/mlccs-multilayer-ceramic-capacitors/1940566/?relevancy-data=7365617263685F636173636164655F6F726465723D31267365617263685F696E746572666163655F6E616D653D4931384E53656172636847656E65726963267365617263685F6C616E67756167655F757365643D656E267365617263685F6D617463685F6D6F64653D6D61746368616C6C7061727469616C267365617263685F7061747465726E5F6D6174636865643D5E5B5C707B4C7D5C707B4E647D2D2C2F255C2E5D2B24267365617263685F7061747465726E5F6F726465723D313333267365617263685F73745F6E6F726D616C697365643D59267365617263685F726573706F6E73655F616374696F6E3D267365617263685F747970653D4B4559574F52445F53494E474C455F414C5048415F4E554D45524943267365617263685F7370656C6C5F636F72726563745F6170706C6965643D59267365617263685F77696C645F63617264696E675F6D6F64653D4E4F4E45267365617263685F6B6579776F72643D4647323843304732413135304A4E543030267365617263685F6B6579776F72645F6170703D4647323843304732413135304A4E543030267365617263685F636F6E6669673D3026&searchHistory=%7B%22enabled%22%3Atrue%7D |
| C10 | 3.3nF | 1 | £0.11 | £0.11 | £0.02 | £0.13 | Device:C_Small | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm | ~ | https://uk.rs-online.com/web/p/mlccs-multilayer-ceramic-capacitors/1940605/?relevancy-data=7365617263685F636173636164655F6F726465723D31267365617263685F696E746572666163655F6E616D653D4931384E53656172636847656E65726963267365617263685F6C616E67756167655F757365643D656E267365617263685F6D617463685F6D6F64653D6D61746368616C6C7061727469616C267365617263685F7061747465726E5F6D6174636865643D5E5B5C707B4C7D5C707B4E647D2D2C2F255C2E5D2B24267365617263685F7061747465726E5F6F726465723D313333267365617263685F73745F6E6F726D616C697365643D59267365617263685F726573706F6E73655F616374696F6E3D267365617263685F747970653D4B4559574F52445F53494E474C455F414C5048415F4E554D45524943267365617263685F7370656C6C5F636F72726563745F6170706C6965643D59267365617263685F77696C645F63617264696E675F6D6F64653D4E4F4E45267365617263685F6B6579776F72643D4647323858375232413333324B4E543030267365617263685F6B6579776F72645F6170703D4647323858375232413333324B4E543030267365617263685F636F6E6669673D3026&searchHistory=%7B%22enabled%22%3Atrue%7D |
| J1 | MZ-800 Bus | 1 | £0.00 | £0.00 | £0.00 | SFD800:Ext_Bus_MZ800 | Connector_PCBEdge:BUS_MZ800 | https://en.wikipedia.org/wiki/Industry_Standard_Architecture | ||
| J2 | FDC-34 | 1 | £6.13 | £6.13 | £6.13 | Connector_Generic:Conn_02x17_Odd_Even | Connector_IDC:IDC-Header_2x17_P2.54mm_Horizontal_Lock | ~ | https://uk.rs-online.com/web/p/idc-connectors/1625768/ | |
| R1, R2 | 560R | 2 | £0.02 | £0.05 | £0.01 | £0.06 | Device:R_Small | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | ~ | https://uk.rs-online.com/web/p/through-hole-fixed-resistors/7078209/ |
| RN1 | 330R | 1 | £0.15 | £0.15 | £0.03 | £0.17 | Device:R_Network05 | Resistor_THT:R_Array_SIP6 | http://www.vishay.com/docs/31509/csc.pdf | https://uk.rs-online.com/web/p/resistor-networks-resistor-arrays/5223523/ |
| U1 | 74LS06 | 1 | £0.53 | £0.53 | £0.53 | 74xx:74LS06 | Package_DIP:DIP-14_W7.62mm | http://www.ti.com/lit/gpn/sn74LS06 | https://www.ebay.co.uk/itm/164768071881 | |
| U2 | 74LS04 | 1 | £0.60 | £0.60 | £0.60 | 74xx:74LS04 | Package_DIP:DIP-14_W7.62mm | http://www.ti.com/lit/gpn/sn74LS04 | https://www.ebay.co.uk/itm/271156206149 | |
| U3 | PAL12L6 | 1 | £1.29 | £1.29 | £1.29 | SFD800:PAL12L6 | Package_DIP:DIP-20_W7.62mm | https://www.ebay.co.uk/itm/274791322822 | ||
| U4 | 74LS14 | 1 | £0.30 | £0.30 | £0.30 | 74xx:74LS14 | Package_DIP:DIP-14_W7.62mm | http://www.ti.com/lit/gpn/sn74LS14 | https://www.ebay.co.uk/itm/310597511398 | |
| U5, U6 | 74LS74 | 2 | £1.49 | £2.98 | £2.98 | 74xx:74LS74 | Package_DIP:DIP-14_W7.62mm | 74xx/74hc_hct74.pdf | https://www.ebay.co.uk/itm/261370707740 | |
| U7, U8 | 74LS242 | 2 | £0.60 | £1.20 | £1.20 | 74xx:74LS242 | Package_DIP:DIP-14_W7.62mm | http://www.ti.com/lit/gpn/sn74LS242 | https://www.ebay.co.uk/itm/310597509060 | |
| U9 | WD1773 | 1 | £6.29 | £6.29 | £6.29 | MZ80-80CLR:WD1773 | Package_DIP:DIP-28_W15.24mm | https://amaus.net/static/S100/western%20digital/datasheet/Western%20Digital%20FD1771%20Specification%20197710.pdf | https://www.ebay.co.uk/itm/273156696548 | |
| U10 | 74LS175 | 1 | £0.88 | £0.88 | £0.88 | 74xx:74LS175 | Package_DIP:DIP-16_W7.62mm | http://www.ti.com/lit/gpn/sn74LS175 | https://www.ebay.co.uk/itm/261370708352 | |
| U11 | 74LS145 | 1 | £0.61 | £0.61 | £0.61 | 74xx:74LS145 | Package_DIP:DIP-16_W7.62mm | http://www.ti.com/lit/gpn/sn74LS145 | https://www.ebay.co.uk/itm/233948995720 | |
| Y1 | 16MHz | 1 | £0.26 | £0.26 | £0.05 | £0.31 | Device:Crystal_Small | Crystal:Crystal_HC18-U_Horizontal | ~ | https://uk.rs-online.com/web/p/crystal-units/6720299/?relevancy-data=7365617263685F636173636164655F6F726465723D31267365617263685F696E746572666163655F6E616D653D4931384E53656172636847656E65726963267365617263685F6C616E67756167655F757365643D656E267365617263685F6D617463685F6D6F64653D6D61746368616C6C7061727469616C267365617263685F7061747465726E5F6D6174636865643D5E5B5C707B4C7D5C707B4E647D2D2C2F255C2E5D2B24267365617263685F7061747465726E5F6F726465723D313333267365617263685F73745F6E6F726D616C697365643D59267365617263685F726573706F6E73655F616374696F6E3D267365617263685F747970653D4B4559574F52445F53494E474C455F414C5048415F4E554D45524943267365617263685F7370656C6C5F636F72726563745F6170706C6965643D59267365617263685F77696C645F63617264696E675F6D6F64653D4E4F4E45267365617263685F6B6579776F72643D4855532D31362E3030302D31382D33302F35302F34303835267365617263685F6B6579776F72645F6170703D4855532D31362E3030302D31382D33302F35302F34303835267365617263685F636F6E6669673D3026&searchHistory=%7B%22enabled%22%3Atrue%7D |
| Socket 1 | 28 pin | 1 | £0.35 | £0.35 | £0.07 | £0.42 | 28 Pin Socket | https://uk.rs-online.com/web/p/dil-sockets/6742454 | ||
| Socket 2 | 20 pin | 1 | £0.24 | £0.24 | £0.05 | £0.28 | 20 Pin Socket | https://uk.rs-online.com/web/p/dil-sockets/6742444 | ||
| PCB | 1 | £4.93 | £4.93 | £4.93 | ||||||
| Total | £27.68 |
Dateien
Alle Projektdateien finden Sie auf Gitea.
Danksagungen
Die neue Platine ist elektrisch identisch mit dem Original und unterscheidet sich nur in der Bauteilplatzierung (zwei ICs getauscht), dem Leiterplatten-Layout und der Verwendung eines GAL16V8 anstelle des originalen PAL12L6. Die GAL-Logikgleichungen wurden von Grund auf neu geschrieben, basierend auf Kenntnissen der WD1773-FDC-Schnittstelle.
Lizenzen
Die GNU General Public License v3
Die Quelldateien werden in der Hoffnung verteilt, dass sie nuetzlich sind, jedoch OHNE JEGLICHE GEWAEHRLEISTUNG; auch ohne die implizierte Gewaehrleistung der MARKTGAENGIGKEIT oder EIGNUNG FUER EINEN BESTIMMTEN ZWECK. Siehe die GNU General Public License fuer weitere Details.
Sie sollten eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten haben. Falls nicht, siehe http://www.gnu.org/licenses/.