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.

Schaltplan

Automatisiertes Setup und Build (empfohlen)

Die GAL-Logik des SFD-800 kann aus einem einzigen eigenstaendigen Setup-Skript fuer Ihre Plattform erstellt werden. Das Skript installiert die benoetigten Werkzeuge — Git und DOSBox —, klont bei Bedarf das Repository und kann den Build fuer Sie ausfuehren, mit sinnvollen Standardwerten, die Sie durch Druecken der Eingabetaste uebernehmen koennen. Die Karte verwendet einen einzigen Lattice GAL16V8, dessen Logik von CUPL 4.0a unter DOSBox kompiliert wird; es ist keine VM, kein Container und keine gehostete Toolchain zu installieren. Dies ist der einfachste Weg zum Erstellen; der manuelle GAL-Abschnitt weiter unten bleibt als Referenz erhalten sowie fuer diejenigen, die die Logik von Hand erstellen oder modifizieren moechten.
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
Sobald die Werkzeuge installiert sind, koennen Sie jederzeit neu bauen, indem Sie den CUPL-Build direkt ausfuehren. Er kompiliert SFD800.PLD als g16v8s-Ziel (GAL16V8) und schreibt die JEDEC-Datei nach CUPL/SFD800.jed:
./build_cupl.sh      # -> CUPL/SFD800.jed
Die folgenden Umgebungsvariablen ueberschreiben die Standardwerte, falls Sie nicht-interaktiv oder aus einem Fork bauen muessen:
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
Programmieren Sie einen GAL16V8 mit der resultierenden 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.

Schaltplan Schaltplan

PCB Oberseite PCB Unterseite

Dokumentation

K&P SFD800 Handbuch

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)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/
C915pF1£0.11£0.11£0.02£0.13Device:C_SmallCapacitor_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
C103.3nF1£0.11£0.11£0.02£0.13Device:C_SmallCapacitor_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
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/
RN1330R1£0.15£0.15£0.03£0.17Device:R_Network05Resistor_THT:R_Array_SIP6http://www.vishay.com/docs/31509/csc.pdfhttps://uk.rs-online.com/web/p/resistor-networks-resistor-arrays/5223523/
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
Y116MHz1£0.26£0.26£0.05£0.31Device:Crystal_SmallCrystal:Crystal_HC18-U_Horizontal~https://uk.rs-online.com/web/p/crystal-units/6720299/?relevancy-data=7365617263685F636173636164655F6F726465723D31267365617263685F696E746572666163655F6E616D653D4931384E53656172636847656E65726963267365617263685F6C616E67756167655F757365643D656E267365617263685F6D617463685F6D6F64653D6D61746368616C6C7061727469616C267365617263685F7061747465726E5F6D6174636865643D5E5B5C707B4C7D5C707B4E647D2D2C2F255C2E5D2B24267365617263685F7061747465726E5F6F726465723D313333267365617263685F73745F6E6F726D616C697365643D59267365617263685F726573706F6E73655F616374696F6E3D267365617263685F747970653D4B4559574F52445F53494E474C455F414C5048415F4E554D45524943267365617263685F7370656C6C5F636F72726563745F6170706C6965643D59267365617263685F77696C645F63617264696E675F6D6F64653D4E4F4E45267365617263685F6B6579776F72643D4855532D31362E3030302D31382D33302F35302F34303835267365617263685F6B6579776F72645F6170703D4855532D31362E3030302D31382D33302F35302F34303835267365617263685F636F6E6669673D3026&searchHistory=%7B%22enabled%22%3Atrue%7D
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   

Dateien

Alle Projektdateien finden Sie auf Gitea.


Danksagungen

Das Originaldesign und die Platine sind Copyright 1985 Kersten & Partners GmbH aus Aachen, Deutschland, ein Unternehmen, das inzwischen den Geschaeftsbetrieb eingestellt hat. Es wurden Versuche unternommen, sie unter ihrer letzten bekannten Adresse zu kontaktieren, um eine Genehmigung zur Reproduktion einzuholen, jedoch wurde keine Antwort erhalten.

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

Dieses Design, Hardware und Software, ist unter der GNU Public Licence v3 lizenziert.

Die GNU General Public License v3

Die Quell- und Binaerdateien in diesem Projekt, die als GPL v3 gekennzeichnet sind, sind freie Software: Sie koennen sie unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veroeffentlicht, weitergeben und/oder modifizieren, entweder gemaess Version 3 der Lizenz oder (nach Ihrer Wahl) jeder spaeteren Version.

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/.