Construyendo un MSX. Parte 1: los componentes

Por Palver

Rookie (21)

Imagen del Palver

15-11-2019, 18:27

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:

Multicomputer by Grant Searle

VHDL implementation of the 8255 PIO

TMS9918A

Conversor VGA-HDMI

A simulation model of YM2149

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.

Login sesión o register para postear comentarios

Por aranya

Supporter (7)

Imagen del aranya

24-11-2019, 13:25

Ostras que pasada. Imagino que para hacer todo esto se necesitan conocimientos de soldar/electrónica avanzados. ¿Cuanto precio de coste te sale este MSX FPGA?.

Gracias!.

Por Palver

Rookie (21)

Imagen del Palver

24-11-2019, 22:24

aranya wrote:

Ostras que pasada. Imagino que para hacer todo esto se necesitan conocimientos de soldar/electrónica avanzados. ¿Cuanto precio de coste te sale este MSX FPGA?.

Gracias!.

Gracias aranya!

Ahora este MSX está formado por un FPGA de 180 € y una raspberry pi de 35€ para el teclado. En cuanto a conocimientos, como se funciona por esquemas, hay que saber algo de electrónica digital. Sí que echo en falta algo más de información sobre el mundo de las FPGA's. Al menos con las de marca xilinx, la documentación es bastante regular. Pero cuando se consigue tener algo funcionando la cosa mejora.

Lo bueno es que no hace falta soldar nada. Todo se hace a nivel de programa. Donde en analógico se hace esto:

https://www.msx.org/wiki/images/f/f2/TMS9928A_01.jpg

en fpga se hace esto:

https://drive.google.com/open?id=1FZrHOs3I0C4PAxqi6-Ku-OtOjS376LD9

Empecé con el MSX para aprender y la verdad es que me lo estoy pasando muy bien.