Este proyecto consiste en recrear el hardware de los viejos cartuchos para MSX y tener una placa con un zócalo donde poner una EPROM o Flash EPROM con el contenido de un archivo .ROM, para fabricar cartuchos con juegos favoritos, o bien crear cartuchos con programas propios. El circuito es bastante simple y permite utilizar memorias 2764, 27128, 27256 y 27512 para grabar ROMs de 8kB, 16kB, 32kB, 48kB y 64kB.
ESQUEMÁTICO
Esquemático Cartridge MSX
FUNCIONAMIENTO
Hay tres grupos de jumpers (G, r14, r15) donde se deberá poner un único jumper por grupo. La configuración dependerá del tamaño de la ROM a grabar y a qué página de memoria RAM deberá volcarse el contenido de la ROM.
Para saber que configuración corresponde a cada caso, debe entenderse como funciona el puerto de cartuchos de la MSX.
Señales CS
Los 64kB de direccionamiento de la memoria se dividen en cuatro bancos consecutivos de 16kB, el primero (banco 0) va de la dirección h0000 a h3FFF, el segundo (banco 1) de h4000 a h7FFF, el tercero (banco 2) de h8000 a hBFFF y por último (banco 3) de hC000 a hFFFF. El primer banco suele reservarse y el contenido del cartucho direccionarse en el segundo y tercer segmento. Para esto, hay tres señales en el puerto de expansión que indican que se está referenciando a un dispositivo externo, en qué rango de direcciones y cuantos segmentos se usan, tienen el nombre de CS1, CS2 y CS12 y se crearon para simplificar la lógica en los cartuchos.
La señal CS1 se activa cuando se pretende leer una dirección de un puerto de expansión (cartucho en este caso), dentro del rango de direcciones de h4000 a h7FFF (banco 1). En el caso de CS2 el rango será desde h8000 a hBFFF (banco 2) por último CS12 desde h4000 a hBFFF (bancos 1 o 2 combinados).
MEMORIAS EPROM Y FLASH EPROM
Tienen una cantidad de líneas de dirección (entrada) que dependen de su capacidad:
* 2764: 8kB, 13 líneas de dirección, de A0 a A12;
* 27128: 16kB, 14 líneas de dirección, de A0 a A13;
* 27256: 32kB, 15 líneas de dirección, de A0 a A14;
* 27512: 64kB, 16 líneas de dirección, de A0 a A15
Además tienen ocho líneas de datos (salida) y dos señales de control G y E (entrada). El proceso de lectura es simple, cuando G y E están ambas seleccionadas, la ROM devuelve por las ocho líneas de datos, el dato que está grabado en la dirección que corresponde a las n líneas de dirección.
Habilitación de Lectura
La norma MSX dicta que al menos dos puertos de expansión deben ser externos. Un periférico (o cartucho) identifica que se está accediendo al puerto en el que está enchufado cuando se activa su señal SLTSL. Por ende, una de las condiciones necesarias para la lectura del cartridge será que la señal SLTSL se active. Por esto se conecta esta señal a uno de los pines de activación de la EPROM (E por ejemplo).
El otro pin de activación (G en este caso), se configurará mediante una de las cuatro opciones posibles: CS1, CS2, CS12 y RD (las tres primeras señales combinan la señal RD con algún banco específico).
DISTINTOS TIPOS DE CARTUCHO, CONFIGURACIÓN Y CONTENIDO DE LAS EPROM
Cartucho de 8kB y 16kB:
Para este tamaño de ROM no debe usarse CS12 en G en ninguna de las combinaciones a describir:
Para memorias EPROM 2764 ó 27128 se deberá seleccionar CS1 para G y VCC para r14 y r15.
Para memorias EPROM 27256 se deberá elegir VCC para r15 y CS1 para G. Las opciones son:
* GND para r14 y la imagen ROM grabada en la primer mitad de la EPROM;
* VCC para r14 y con la imagen ROM grabada en la segunda mitad de la EPROM;
* SW para r14, con lo cual podrá grabar una ROM de 8kB o 16kB en cada mitad de la EPROM y conmutarlas con el switch s14.
Para memorias EPROM 27512, se pueden grabar hasta cuatro ROMs de 8kB ó 16kB, una en cada cuarto de la EPROM y los jumpers deben ser CS1 para G, SW para r14 y r15. Las cuatro combinaciones de los dos switch nos dará acceso a cada una de las ROM. Si desea grabarse una sola ROM de 8kB ó 16kB, se deberán poner GND en r14 y r15; Para dos ROMS, SW en r14 y GND en r15.
Cartucho de 32kB:
Para este tamaño de ROM debe usarse CS12 en G para todas las combinaciones a describir:
Para memorias EPROM 27256 se deberá elegir VCC para r15 y A14 para r14. La ROM no podrá grabarse en forma directa, ya que la primer mitad del archivo deberá grabarse en la segunda mitad de la EPROM y viceversa.
Para memorias EPROM 27512, se pueden grabar hasta dos ROMs de 32kB, una en cada mitad de la EPROM y los jumpers deben ser A14 para r14 y SW para r15. El switch s15 nos dará acceso a cada una de las ROM. Ambas ROMs deberán ser preparadas de la misma manera que en el punto anterior, la segunda mitad de la primer ROM deberá grabarse en el primer cuarto de la EPROM, la primer mitad de la primer ROM en el segundo cuarto, la segunda mitad de la segunda ROM en el tercer cuarto y la primer mitad de la segunda ROM en el último cuarto. Si desea grabarse una sola ROM de 32kB, se deberán poner GND en r15.
Cartucho de 48kB:
Para este tamaño de ROM debe usarse RD en G, A14 en r14 y A15 en r15. Solo podrá usarse memorias EPROM 27512. Los primeros 16kB de la ROM deberá grabarse en el segundo cuarto de la EPROM, los segundos 16kB en el tercer cuarto y los terceros 16kB en el primer cuarto.
Antes de intercambiar los bancos de 16kB chequear si el típico encabezado "AB" no se encuentra ya en la dirección h4000.
Cartucho de 64kB:
Se configurará de la misma manera de el de 48k grabando los cuartos 16kB en la última parte de la EPROM.
PROTOTIPO
Prueba de las distintas configuraciones de EPROMs y archivos ROM.
Prototipo
Archivos del proyecto