K&P SFD-800
Uno de los accesorios mas necesarios para la serie Sharp MZ es el venerable controlador de disquetes. Estos son relativamente escasos ya que pocas personas los utilizaban, principalmente debido al coste, durante la era Sharp MZ.
Sharp lanzo sus propios controladores, a menudo basados en el circuito integrado MB8866, que requeria mucha circuiteria de soporte. Algunos fabricantes externos desarrollaron los suyos propios, y uno de los disenos, creado por una empresa ya desaparecida llamada Kersten & Partners GmbH (K&P), proponia un diseno mucho mas sencillo pero con la misma funcionalidad. Este diseno utilizaba un circuito integrado controlador de disquetes Western Digital mas reciente, el WD1773, que incorporaba gran parte de la circuiteria que Sharp, usando el MB8866, tenia que colocar externamente en la placa.
Descubri su tarjeta SFD-800 cuando adquiri un MZ-80B que incluia una tarjeta original. Tambien tenia un MZ-800 y pude intercambiar la tarjeta entre ambas maquinas sin problemas. A medida que mi coleccion de maquinas Sharp MZ crecia, necesitaba controladores de disquetes para todas las maquinas y, al ser dificiles de comprar, decidi replicar la tarjeta SFD-800.
Esta pagina describe el esquema replicado, la logica GAL (WinCUPL), la placa de circuito impreso (PCB) e informacion sobre los costes de fabricacion.
Esquema
El esquema proviene originalmente del Manual K&P SFD800, cuyo descifrado requirio cierto esfuerzo debido a la mala calidad del escaneo. Este esquema fue posteriormente capturado en KiCAD y se muestra a continuacion.

Configuracion y compilacion automatizada (recomendado)
| Script | Plataforma | Notas |
|---|---|---|
setup_SFD800.sh |
macOS / Linux | Instala Git + DOSBox, luego clona y compila |
setup_SFD800_windows.cmd |
Windows 10 / 11 | Lanzador de doble clic para el instalador nativo |
setup_SFD800_windows_native.ps1 |
Windows 10 / 11 | winget Git + DOSBox (nativo, sin WSL/Docker) |
macOS / Linux — setup_SFD800.sh
chmod +x setup_SFD800.sh ./setup_SFD800.sh
Windows 10 / 11 — haga doble clic en setup_SFD800_windows.cmd, o ejecute el instalador nativo desde un simbolo del sistema de PowerShell:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass .\setup_SFD800_windows_native.ps1
SFD800.PLD como un objetivo g16v8s (GAL16V8) y escribe el archivo JEDEC en CUPL/SFD800.jed:
./build_cupl.sh # -> CUPL/SFD800.jed
| Variable | Predeterminado | Proposito |
|---|---|---|
SFD800_REPO_URL |
https://git.eaw.app/eaw/SFD800.git |
Repositorio a clonar |
SFD800_DIR |
(predeterminado del script) | Directorio donde clonar / desde donde compilar |
SFD800_ASSUME_YES |
(sin definir) | Establezca a 1 para aceptar todas las indicaciones de forma no interactiva |
CUPL/SFD800.jed resultante utilizando un programador compatible como un TL866 / XGecu. La seccion manual GAL a continuacion documenta el codigo fuente CUPL y la logica para quien desee compilarla a mano.
GAL
El componente original utilizado por K&P era un PAL, un dispositivo logico programable una sola vez con su fusible de proteccion activado. Como el PAL es un dispositivo simple – 12 entradas, 8 salidas – habria sido sencillo deducir la logica mediante sondeo. Dado que el diseno es en realidad bastante simple y teniendo una amplia experiencia con disquetes adquirida al escribir los monitores RFS y TZFS, decidi escribir la logica desde cero, basandome en mis conocimientos.
Utilice WinCUPL para compilar el codigo y probe el GAL en la tarjeta original K&P SFD800 para su verificacion. El codigo se muestra a continuacion y, como se puede observar, se trata simplemente de decodificacion de direcciones y creacion de lineas de seleccion.
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;
Placa de circuito/PCB
La placa de circuito impreso difiere del original en que utilice KiCAD en lugar de imagenes dibujadas a mano. La ventaja de KiCAD reside en el uso de tecnicas de enrutamiento mas modernas y rellenos de cobre.


Documentacion
El enlace anterior permite descargar el manual de usuario original de K&P, escrito en aleman. La mejor forma de traducirlo es usar su smartphone, abrir la aplicacion Google Translate, configurar la traduccion por camara en tiempo real y seleccionar el idioma Aleman-><su idioma>.
Precio
La tabla siguiente muestra el coste de fabricacion de una placa de circuito impreso. Los precios no son del todo exactos ya que a menudo hay que comprar en multiplos de 10/50/100 y amortizar entre el numero de placas fabricadas. Desplacese hacia la derecha para ver todos los detalles de la tabla.
| 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 |
Archivos
Consulte Gitea para todos los archivos del proyecto.
Creditos
La nueva placa es electricamente equivalente a la original, diferenciandose unicamente en la colocacion de componentes (dos circuitos integrados intercambiados), el trazado de la placa de circuito y el uso de un GAL16V8 en lugar del PAL12L6 original. Las ecuaciones logicas del GAL fueron escritas desde cero basandose en el conocimiento de la interfaz FDC WD1773.
Licencias
La Licencia Publica General GNU v3
Los archivos fuente se distribuyen con la esperanza de que sean utiles, pero SIN NINGUNA GARANTIA; sin siquiera la garantia implicita de COMERCIABILIDAD o IDONEIDAD PARA UN PROPOSITO PARTICULAR. Consulte la Licencia Publica General GNU para mas detalles.
Deberia haber recibido una copia de la Licencia Publica General GNU junto con este programa. Si no es asi, consulte http://www.gnu.org/licenses/.