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.

Esquema

Configuracion y compilacion automatizada (recomendado)

La logica GAL de la SFD-800 puede compilarse a partir de un unico script de configuracion autonomo para su plataforma. El script instala las herramientas necesarias — Git y DOSBox — clona el repositorio si es necesario y puede ejecutar la compilacion por usted, con valores predeterminados razonables que puede aceptar pulsando Enter. La placa utiliza un unico Lattice GAL16V8 cuya logica es compilada por CUPL 4.0a ejecutandose bajo DOSBox; no hay maquina virtual, contenedor ni cadena de herramientas alojada que instalar. Esta es la forma mas facil de compilar; la seccion manual GAL a continuacion se conserva como referencia y para quienes deseen compilar o modificar la logica a mano.
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
Una vez instaladas las herramientas, puede recompilar en cualquier momento ejecutando la compilacion CUPL directamente. Compila SFD800.PLD como un objetivo g16v8s (GAL16V8) y escribe el archivo JEDEC en CUPL/SFD800.jed:
./build_cupl.sh      # -> CUPL/SFD800.jed
Las siguientes variables de entorno anulan los valores predeterminados si necesita compilar de forma no interactiva o desde un fork:
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
Programe un GAL16V8 con el archivo 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.

Esquema Esquema

PCB cara superior PCB cara inferior

Documentacion

Manual K&P SFD800

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

Archivos

Consulte Gitea para todos los archivos del proyecto.


Creditos

El diseno y la placa originales son copyright 1985 Kersten & Partners GmbH de Aquisgran, Alemania, una empresa que desde entonces ha cesado su actividad. Se realizaron intentos de contactarles en su ultima direccion conocida para solicitar permiso de reproduccion, pero no se recibio respuesta.

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

Este diseno, hardware y software, esta licenciado bajo la GNU Public Licence v3.

La Licencia Publica General GNU v3

Los archivos fuente y binarios de este proyecto marcados como GPL v3 son software libre: puede redistribuirlos y/o modificarlos bajo los terminos de la Licencia Publica General GNU publicada por la Free Software Foundation, ya sea la version 3 de la Licencia o (a su eleccion) cualquier version posterior.

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