Vaya por delante que este post habla de FPGA’s. El mundo del MSX es un entorno estupendo para empezar con este tipo de dispositivos, porque todo lo necesario ya está disponible en internet, sólo hay que buscar los trozos y unirlos. Para los que no conozcan, simplemente decir que las FPGA’s son elementos programables que, en vez de con código, se programan con puertas lógicas. Si colocamos en una FPGA el esquema de un Z80, lo que tenemos no es una emulación, sino un Z80 casi de verdad. Y esa es la ventaja de usar este tipo de componentes.
Así que la idea es construir un MSX casi de verdad, utilizando módulos ya diseñados y que estén disponibles para todo el mundo.
Los componentes utilizados son:
VHDL implementation of the 8255 PIO
El componente más importante es el multiordenador de Grant Searle. Es un diseño completo y modular, pensado para intercambiar periféricos e incluso el microprocesador. Incluye una versión modificada del Microsoft Basic 4.7 que ocupa 8 Kb y que utiliza el puerto serie como entrada/salida. ¿Qué tiene que ver esto con un MSX? Que utiliza un Basic parecido, y poco más. Pero se puede utilizar este diseño como punto de partida sobre el que añadir los circuitos que forman un MSX. Además, al tener un Basic, podemos comprobar que todo funciona usando instrucciones inp, out, peek y poke.
La configuración mínima del multiordenador está formada por un Z80, la ROM de 8Kb, una memoria RAM de 4Kb y un puerto serie que hace las veces de teclado y monitor:
https://drive.google.com/open?id=1pP8uy6IZP2PfB8GOtXA9gyy8rw...
Este es el mensaje de presentación al arrancar:
https://drive.google.com/open?id=1BBBV67boD06SwqW7cfNL8JMJqX...
Al diseño original se le añade el PPI, y con él la lógica de los slots de memoria.
https://drive.google.com/open?id=1P95MSbNfgCSEfwdM3IhQ3JmmMZ...
Probando que los slots funcionan:
https://drive.google.com/open?id=1wdfoCTnIxsX2TfoQvtDHlS87-u...
Después se conectan el TMS9918A y el YM2149.
https://drive.google.com/open?id=1l95Gzp1pihPOxxV0W4kq9wm9Ug...
https://drive.google.com/open?id=1es1TdDrmm_XC8TNzdjxcMa-ue5...
Y por último, se cambia la ROM del Basic 4.7 y se sustituye por la de mi querido SVI-728.
https://drive.google.com/open?id=1QEzoY0UTq89BaC6Ija00NduCoy...
Y este es el resultado:
https://drive.google.com/open?id=1bT6wK9r7CS_3y2JnncwYwG_hr1...
Las características de este ordenador son:
• Microprocesador T80 a 3.6 MHz
• 32 KB ROM SVI-728 en español, Slot 0
• 64 KB RAM, Slot 3
• PPI I82C55
• VDP TMS9918A con salidas VGA y HDMI, 640x480x60 Hz
• PSG YM2149
• Puerto serie
• Entrada de cassette
Además de esto se añade un ciclo de espera en los accesos a memoria, para que la CPU tenga la misma velocidad que el original. Hablando de velocidades, como ventaja añadida, el hecho de que la salida del VDP sea de 60 Hz permite ver y oír los juegos japoneses como fueron diseñados.
Lo que no tenemos por ahora es un teclado. Y claro, ¿dónde se ha visto un MSX sin teclado? La solución, en el próximo capítulo.