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.

Schema

Installation et compilation automatisees (recommande)

La logique GAL du SFD-800 peut etre compilee a partir d'un unique script d'installation autonome pour votre plateforme. Le script installe les outils requis -- Git et DOSBox -- clone le depot si necessaire, et peut lancer la compilation pour vous, avec des valeurs par defaut raisonnables que vous pouvez accepter en appuyant sur Entree. La carte utilise un unique GAL16V8 Lattice dont la logique est compilee par CUPL 4.0a s'executant sous DOSBox ; il n'y a aucune VM, conteneur ni chaine d'outils hebergee a installer. C'est la facon la plus simple de compiler ; la section GAL manuelle ci-dessous est conservee a titre de reference et pour ceux qui souhaitent compiler ou modifier la logique a la main.
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
Une fois les outils installes, vous pouvez recompiler a tout moment en lancant directement la compilation CUPL. Elle compile SFD800.PLD vers une cible g16v8s (GAL16V8) et ecrit le fichier JEDEC dans CUPL/SFD800.jed :
./build_cupl.sh      # -> CUPL/SFD800.jed
Les variables d'environnement suivantes remplacent les valeurs par defaut si vous devez compiler de maniere non interactive ou depuis un fork :
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
Programmez un GAL16V8 avec le fichier 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.

Schema Schema

PCB face superieure PCB face inferieure

Documentation

Manuel K&P SFD800

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)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   

Fichiers

Veuillez consulter Gitea pour tous les fichiers du projet.


Credits

La conception et la carte originales sont copyright 1985 Kersten & Partners GmbH d'Aix-la-Chapelle, Allemagne, une societe qui a depuis cesse ses activites. Des tentatives ont ete faites pour les contacter a leur derniere adresse connue afin d'obtenir une autorisation de reproduction, mais aucune reponse n'a ete recue.

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

Cette conception, materiel et logiciel, est licenciee sous la GNU Public Licence v3.

La licence publique generale GNU v3

Les fichiers source et binaires de ce projet marques comme GPL v3 sont des logiciels libres : vous pouvez les redistribuer et/ou les modifier selon les termes de la licence publique generale GNU telle que publiee par la Free Software Foundation, soit la version 3 de la licence, soit (a votre choix) toute version ulterieure.

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