
Esta ha sido una historia larga que empezó en Mayo-Junio de 2021…
Andaba buscando una forma de incrustar la controladora de disco en el computador OMEGA MSX, pero la controladora de disco con la que habíamos trabajado hasta el momento (TDC600), no tenía fácil encaje por lo que buscando descubrí que las controladoras de disco utilizadas en Brasil utilizaban una tecnología muy diferente: se conectaban al dispositivo por puerto E/S en lugar de utilizar direcciones de memoria.
Esta era la solución ideal, porque una controladora de disco así, funcionaría incluso como sombrero interno del Omega, igual que sucedió con el FM-HAT (construido anteriormente)… sin modificar la placa base podíamos añadir lo necesario mediante un sombrero en el Z80 y ampliar la ROMBIOS para añadir el DISK BASIC.
Encontré toda la documentación necesaria para construir este interfaz en el sitio www.msxpro.com, la comunidad de este país comparte mucha documentación para constructores a través de este sitio web, y descargué varios diseños para fabricar estas controladoras, programas de la ROM integrada, incluso versiones mejoradas de aficionados a la programación. Este sería el esquema escogido:

Así que decidí que sería fácil construir un prototipo de cartucho (el primer prototipo de esta envergadura al que me aventuraba) y para ello utilicé mi placa msx2proto diseñada específicamente para prototipar conectándose a una breadboard. El circuito parecía bastante sencillo, está dividido en 5 secciones:
Una memoria ROM con la extensión de BIOS/BASIC (no es necesaria para el PCB de sobrero).

Un generador de reloj con un divisor que obtiene una frecuencia de 1Mhz.

La lógica de selección de puerto, en este caso se activaba con una señal de lectura/escritura para el puerto hexadecimal D0 (driver) y de escritura para el puerto hexadecimal D4 (drive control).

Un registro (D4) de control de unidades (drive control).

Y el propio driver del dispositivo: Un chip diseñado específicamente para controlar disqueteras, puede recibir comandos sencillos y devolver resultados provenientes del disco.

Así, fui montando el circuito por partes…
… y algunas de estas funcionaban, por ejemplo el circuito de reloj a 1Mhz.
Sin embargo y a pesar de mi estrategia de construcción por secciones independientes, no podía identificar donde dejaba de funcionar o cual era el problema, y tras varias pruebas no pasaba de la pantalla de carga del «driver». (fijaros que cantidad de cables que tenía este breadboard en la siguiente imagen):

Como era mi primer proyecto importante sobre breadboard comencé a desconfiar de la firmeza de estas conexiones o tal vez de mis habilidades, e inicié el traslado del circuito a un soporte más definitivo, una PCB de prototipado.

Aunque de ese prototipo también acabé desistiendo pronto, pues empecé a plantearme que si no me fiaba de que todo hiciese contacto en la breadboard tampoco confiaría con tantas soldaduras sobre el mismo topo necesarias en esta placa cuando tuviera que añadir todos los cables. Para colmo, el circuito de reloj probado anteriormente ya no funcionaba (cometí un error al copiar el esquema en KiCAD, cosa que descubriría más adelante).
Al no saber que hacía mal, decidí adquirir un interfaz de disco brasileño, pero nadie de por aquí tenía uno así que finalmente contacté con Paulo Maluf y le compré 2 modelos diferentes para poderlos estudiar. Agradezco a Paulo su ayuda sin la que no hubiera podido continuar. Escogí uno como el esquema en progreso (Expand=clon de Microsol) y un modelo más avanzado (DDX 3.0).


Por supuesto, desde que lo pedí hasta que me llegó tardó lo suyo, y finalmente…
El interfaz original tampoco funcionaba en el OMEGA
No funcionaba, Paulo había probado el interfaz antes de enviármelo, y de hecho el interfaz DDX3 si funcionó a la primera, pero el que se parecía al esquema que estaba utilizando no funcionaba y eso sí que no lo esperaba. ¿ Acaso era el Omega incompatible con algo?
Durante mi larga espera por estos cartuchos, también había mandado a fabricar un PCB con este esquema, a la espera de que (de nuevo) el fallo hubiera estado en mis torpes manos al construir el prototipo, pero no fue así; el PCB construido funcionaba aun peor que el EXPAND recibido de Brasil.
Perdido estaba cuando me encontré con varias personas que invirtieron su tiempo en ayudarme, el primero fue XaviRompe que me ilustró con sus conocimientos sobre discos flexibles y el controlador de software asociado…
Después Andrés Ortiz, quien me puso en la pista del verdadero problema con este esquema, al descubrirme los problemas que tuvo él con el Omega y su desarrollo del «BadCat wifi«.
Parecía indicar una incompatibilidad del Omega con el estándar, cosa que no es cierta, en todo caso había una carencia habitual en los MSX de la época. Así pues, estos interfaces funcionaban con la mayoría de MSX debido a una carencia…
El interfaz del esquema sólo funcionaba en MSX que no tengan buffer de ranura (slot).
Es curioso, porque si hubiera comenzado por crear un prototipo de HAT (mi verdadero objetivo) esto no hubiera importado, me hubiera saltado ese buffer y problema no habría aparecido hasta mucho más tarde.
Bueno, de hecho Andrés hizo algo aun mejor porque me ayudó a corregir el problema con sólo añadir un cable conectado a BUSDIR. Ahora el cartucho brasileño «Expand» ya funcionaba con mi Omega.

De todas formas aun tenía otro problema, el reloj no estaba generando una señal adecuada y aun no había descubierto el porqué. Esto fue algo que inicialmente funcionaba y dejó de hacerlo cuando empecé a utilizar mi esquema en KiCAD como modelo.
Fue a finales de 2022 cuando descubrí que alguien más estaba construyendo su propia versión de interfaz Microsol cdx-2 desde cero, alguien conocido como skoti, de hecho había seguido los mismos pasos que yo, pero el suyo funcionaba.
Cuando le contacté se volcó en ayudarme. Me dijo que su interfaz no funcionaba con el omega ni con muchos MSX2, le expliqué la solución de Andrés y solucionó su problema. Entonces el suyo funcionaba y el mio no, incluso partiendo de la misma base, eso me hizo descubrir que alguna parte de mi trabajo estaba equivocada…
…me había equivocado al copiar el esquema a KiCAD.
La cosa más tonta del mundo. Había copiado mal el esquema y había dejado de mirar el pdf del esquema original, estaba convencido de haberlo copiado bien pero la pista marcada con una X en la imagen siguiente sobraba.

Una vez identificado el problema tenía que probarlo y eso significaba modificar el esquema para hacer nuevas placas pero más aun, modificar antes el circuito actual para probar que esta vez estaba en lo cierto.
Interfaz CDX-2 v1, instrucciones paso a paso.
Estas instrucciones sirven para construir las primeras 5 placas que ya vendí, no tiene sentido mostrarlo más que por un valor instructivo.
1- Para evitar problema tapa los agujeros de 2 componentes como se muestra. Deberás utilizar cinta con gran capacidad adhesiva, yo utilicé cinta americana.

2- Dobla un pin del cristal e insértalo como se muestra, procurando no salir del perímetro de la placa y evita que la carcasa metálica toque otros elementos del circuito.

3- Suelda ahora las resistencias que están cerca del cristal e introduce el condensador, doblando el pin del agujero tapado como se muestra en la foto.

4- Suelda el pin recto del condensador primero para que no se mueva, suelda ahora los pines de ambos componentes y corta el sobrante. Este debería ser el resultado.

5- Conecta ahora un cable fino entre el conector de borde y el pin 14 de U3. No tapes el agujero con estaño que el pin del zócalo también debe de poder entrar después.

6- El resto de componentes no tienen misterio, cuestión de meter cada cosa en su sitio y soldarlo todo. Como siempre conviene soldar todo hasta los zócalos, comprobar que no hay cortocircuitos, insertarla y comprobar que llega Vcc y GND a cada zócalo, y por último, probar el circuito por partes como describiré en las instrucciones de la versión actual.
7- El cable de esta versión tenía una peculiaridad: queriendo mejorar el esquema de Brasil empeoré la solución, así pues, si tienes esta versión de la PCB también hay que parchearlo.

Tal como se muestra los pines 10 a 16 están cruzados en un extremo y en el otro están cruzados del 10 al 12. el conector de la izquierda va al interfaz y el otro a la unidad A.
Si necesitáis 2 unidades podéis insertar un conector entre ambos cruces para la unidad B. La mejor explicación sobre como funcionan los cables de disco flexible en https://retrocmp.de/fdd/general/floppy-cable.htm
En versiones posteriores añadí un jumper de selección de página ROM, pero en esta deberemos programar el ROM con una única opción de driver, el de «Angeisa» parece ser más estable pero FastDiskROM! es más moderno y más rápido. Puedes descargar ambos ficheros de aquí.
Primer sombrero para el OMEGA
Ahora ya tenía un circuito por puerto que funcionaba con el Omega, por tanto podía separar el programa ROM de la controladora, de modo que ya no necesitaría perder una ranura de cartucho para conectar la disquetera.
Había mandado fabricar también estas PCB a la vez que las de cartucho, pero en este caso con un diseño para ser conectado entre el Z80 y la placa base, tal como hacía el anterior diseño FM-HAT que tan buen resultado dió.

FDC HAT v1, instrucciones paso a paso.
Estas instrucciones sirven para corregir y construir las primeras 5 placas que ya vendí, no tiene sentido mostrarlo más que por un mero valor instructivo.
1- Para evitar problema tapa los agujeros de 2 componentes como se muestra. Deberás utilizar cinta con gran capacidad adhesiva, yo utilicé cinta americana.
2- Dobla un pin del cristal e insértalo como se muestra, procurando no salir del perímetro de la placa y evita que la carcasa metálica toque otros elementos del circuito.
3- Introduce el condensador, doblando el pin del agujero tapado como se muestra en la foto.

4- Suelda el pin recto del condensador primero para que no se mueva, suelda ahora los pines de ambos componentes y corta el sobrante. Este debería ser el resultado.

5- conviene soldar los pines del z80 y zócalo. Lo mejor es soldar tira de pin y tira de zócalo, apoyarse de un zócalo externo para que todo quede recto…

… y obtener este resultado:

6- El resto de componentes no tienen misterio, es cuestión de meter cada cosa en su sitio y soldarlo todo. Como siempre conviene soldar todo, incluidos los zócalos, comprobar que no hay cortocircuitos, montarla y comprobar que llega Vcc y GND a cada zócalo y probar el circuito por partes como describiré en las instrucciones de la versión actual.
7- El cable de esta versión es igual que el del interfaz y hay que parchearlo. Te puedes apoyar en la fotografía de arriba o en esta otra:

Tal como se muestra los pines 10 a 16 están cruzados en un extremo y en el otro están cruzados del 10 al 12. el conector de la izquierda va al interfaz y el otro a la unidad A.
Si necesitáis 2 unidades podéis insertar un conector entre ambos cruces para la unidad B. La mejor explicación sobre como funcionan los cables de disco flexible en https://retrocmp.de/fdd/general/floppy-cable.htm
Para grabar el software necesario para que funcione el HAT hay que añadir el programa a la BIOS del Omega. Os remito a las instrucciones Cocinando la ROM del Omega.
He aquí una muestra del interfaz interno funcionando…
Para aquellos que estéis interesados en un kit con estos dispositivos podéis contactarnos por email y os informaremos de las opciones.
Jordi Solís, miembro de MSXmakers.








