K&P SFD-800
L'un des accessoires les plus recherches pour la serie Sharp MZ est le venerable controleur de disquettes. Ceux-ci sont relativement rares car peu de personnes les utilisaient, principalement en raison du cout, durant l'ere Sharp MZ.
Sharp a commercialise ses propres controleurs, souvent bases sur le circuit integre MB8866, qui necessitait beaucoup de circuits de support. Quelques fabricants tiers ont developpe leurs propres versions, et l'une d'entre elles, concue par une societe aujourd'hui disparue appelee Kersten & Partners GmbH (K&P), proposait un design bien plus simple mais tout aussi fonctionnel. Cette conception utilisait un circuit integre de controleur de disquettes Western Digital plus recent, le WD1773, qui integrait une grande partie des circuits que Sharp, avec le MB8866, devait placer a l'exterieur sur la carte.
J'ai decouvert leur carte SFD-800 lorsque j'ai achete un MZ-80B qui incluait une carte originale. Je possedais egalement un MZ-800 et j'ai pu utiliser la carte dans les deux machines sans probleme. Au fur et a mesure que ma collection de machines Sharp MZ s'agrandissait, j'avais besoin de controleurs de disquettes pour toutes les machines, et comme ils sont difficiles a trouver, j'ai decide de reproduire la carte SFD-800.
Cette page presente le schema replique, la logique GAL (WinCUPL), le circuit imprime (PCB) et les informations sur le cout de fabrication.
Schema
Le schema provient a l’origine du Manuel K&P SFD800, dont le dechiffrage a ete quelque peu laborieux en raison de la mauvaise qualite du scan. Ce schema a ensuite ete saisi dans KiCAD et est presente ci-dessous.

Installation et compilation automatisees (recommande)
| Script | Plateforme | Notes |
|---|---|---|
setup_SFD800.sh |
macOS / Linux | Installe Git + DOSBox, puis clone et compile |
setup_SFD800_windows.cmd |
Windows 10 / 11 | Lanceur a double-clic pour l’installateur natif |
setup_SFD800_windows_native.ps1 |
Windows 10 / 11 | winget Git + DOSBox (natif, sans WSL/Docker) |
macOS / Linux – setup_SFD800.sh
chmod +x setup_SFD800.sh ./setup_SFD800.sh
Windows 10 / 11 – double-cliquez sur setup_SFD800_windows.cmd, ou lancez l’installateur natif depuis une invite PowerShell :
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass .\setup_SFD800_windows_native.ps1
SFD800.PLD vers une cible g16v8s (GAL16V8) et ecrit le fichier JEDEC dans CUPL/SFD800.jed :
./build_cupl.sh # -> CUPL/SFD800.jed
| Variable | Defaut | Role |
|---|---|---|
SFD800_REPO_URL |
https://git.eaw.app/eaw/SFD800.git |
Depot a cloner |
SFD800_DIR |
(defaut du script) | Repertoire de clonage / de compilation |
SFD800_ASSUME_YES |
(non defini) | Definir a 1 pour accepter toutes les invites de maniere non interactive |
CUPL/SFD800.jed resultant a l'aide d'un programmateur compatible tel qu'un TL866 / XGecu. La section GAL manuelle ci-dessous documente le source CUPL et la logique pour quiconque souhaite le compiler a la main.
GAL
Le composant original utilise par K&P etait un PAL, un dispositif logique programmable une seule fois avec son fusible de protection active. Comme le PAL est un dispositif simple – 12 entrees, 8 sorties – il aurait ete facile de deduire la logique par sondage. Etant donne que la conception est en realite assez simple et que j’avais une vaste experience des disquettes acquise lors de l’ecriture des moniteurs RFS et TZFS, j’ai decide d’ecrire la logique a partir de zero, en me basant sur mes connaissances.
J’ai utilise WinCUPL pour compiler le code et j’ai teste le GAL sur la carte originale K&P SFD800 pour verification. Le code est presente ci-dessous et, comme on peut le voir, il s’agit simplement de decodage d’adresses et de creation de lignes de selection.
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;
Circuit imprime/PCB
Le circuit imprime differe de l’original en ce que j’ai utilise KiCAD au lieu d’images dessinees a la main. L’avantage de KiCAD reside dans l’utilisation de techniques de routage plus modernes et de remplissages de cuivre.


Documentation
Le lien ci-dessus permet de telecharger le manuel utilisateur original de K&P, redige en allemand. La meilleure facon de le traduire est d’utiliser votre smartphone, de lancer l’application Google Translate, de selectionner la traduction par camera en temps reel et de regler la langue sur Allemand-><votre langue>.
Prix
Le tableau ci-dessous presente le cout de fabrication d’un circuit imprime. Les prix ne sont pas tout a fait exacts car il faut souvent acheter par multiples de 10/50/100 et amortir sur le nombre de cartes fabriquees. Faites defiler vers la droite pour voir tous les details du tableau.
| 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 |
Fichiers
Veuillez consulter Gitea pour tous les fichiers du projet.
Credits
La nouvelle carte est electriquement equivalente a l'originale, ne differant que par le placement des composants (deux circuits integres permutes), le routage du circuit imprime et l'utilisation d'un GAL16V8 a la place du PAL12L6 original. Les equations logiques du GAL ont ete ecrites a partir de zero sur la base de la connaissance de l'interface FDC WD1773.
Licences
La licence publique generale GNU v3
Les fichiers source sont distribues dans l'espoir qu'ils seront utiles, mais SANS AUCUNE GARANTIE ; sans meme la garantie implicite de COMMERCIABILITE ou d'ADEQUATION A UN USAGE PARTICULIER. Consultez la licence publique generale GNU pour plus de details.
Vous devriez avoir recu une copie de la licence publique generale GNU avec ce programme. Si ce n'est pas le cas, consultez http://www.gnu.org/licenses/.