Introducción
El interface 2 fue un dispositivo creado por la empresa
Sinclair que permitía a los Spectrum la utilización de cartuchos
ROM y dotaba al Spectrum de 2 puertos para joystick. En los cartuchos ROM
se podían almacenar programas ocupaban el espacio de la ROM original
permitiendo una carga casi instantánea. Este era el aspecto del
IF2 Y de los cartuchos:
( foto extraída de planet sinclair )
No fue un invento con mucho existo. Tenía
como ventaja el tiempo de carga casi instantáneo pero como gran
desventaja el coste de los cartuchos (en comparación con el precio
de los juegos en cinta). Solo se producieron 10 juegos para este formato.
Su diseño es bastante simple y limitado. Una señal inhabilita la ROM interna y en su lugar funciona la ROM del programa. Esto presenta el problema de que solo podemos usar programas de 16K y, debido a su sencillo diseño, las patillas que presenta el cartucho está exenta de muchos señales del bus de datos.
La falta de estas señales provoca que no sea fácil crear cartuchos más grandes de 16K. Con esta idea nació este proyecto, crear un cartucho que permita almacenar varios programas ( de 16K) seleccionable por el usuario.
Diseño
La idea que se me ocurrió fue la utilización
de parte de la primera ROM como direccionamiento. Es decir, cuando el programa
software accediese a ciertas direcciones, el hardware entraría en
funcionamiento. Esta zona de funcionamiento está situada en los
8 K superiores de la página 0 ( a partir de la dirección
2000h). dejando los primero 8K para un programa usuario.
El primer prototipo no llegó a funcionar.
Explicación
de porque no funciona
Con los resultados del primer prototipo, se llego a la segunda implementación que si funciona aunque es menos potente y requiere más hardware. El esquema básico es el siguiente :
Fa se puede escribir como Fa
= A14 + A15 + MERQ. Con esta señal habilitaremos la lectura
de la ROM.
Fb es el reloj del circuito
hardware y puede ser escrito como Fb
= A14 + A15 + MERQ + /A13 + Circuito bloqueo.
El circuito de bloqueo tiene una misión sencilla. Cuando se
halla seleccionado una ROM, la salida dará un nivel alto ( dado
que las páginas validas son de la 1 a la 15) y impedirá que
el reloj CLK cambie de valor. Puede ser expresada como Circuito
bloqueo = A14 + A15 + A16 + A17.
Esta versión si funciona. Explicación de porque si funciona
Funcionamiento teórico.
Paso 1. Cuando se enciende el Spectrum, la resistencia y el condensador
permiten a los flip-flop D resetearse a 0. Pasado un tiempo el condensador
se carga y permite a los flip-flop funcionar
Paso 2. El programa software ejecuta una instrucción como esta: LD (2009h),A. Lo que realmente estamos haciendo es poner el valor '9' en las líneas de direcciones A0-A3 y el circuito hardware se prepara para almacenarlo.
Paso 3. MERQ pasa de 0 a 1 disparando los flip-flop. Los primeros 4 cargan el valor '9' y los 4 segundos el valor ' 0'
Paso 4. Realizamos la instrucción JP 2000h. Con esto provocamos que el circuito hardware se prepare para saltar.
Paso 5. El Z-80 lee la instrucción almacena en la dirección 2000h y pasa MERQ de 0 a 1 disparando los flip-flop. Los 4 primeros cargan un valor ( indiferente) y los 4 segundos cargan el valor '9'
Paso 6. Al tener un valor distinto de 0 los 4 segundos flip-flop bloquean el reloj dado que siempre tendrá un valor '1'. No será posible cambiar los valores de los flip-flop permitiendo al programa almacenado en la página 9 correr libremente.
Software
El programa necesario es muy sencillo. En forma de organigrama nos queda así:
MUY IMPORTANTE : La instrucción
que existe en la posición 2000h es JP
HL. HL debe tener
el valor '0000'. De esta manera se ejecutará un salto a la posición
cero y comenzará a leer el programa que vamos a utilizar. La razón
de usar JP HL es que esta instrución solo ocupa un byte ( E9) y
el Z-80 no tiene que leer más posiciones de memoria para ejecutar
la instrucción. Si la instrucción ocupase 2 byte no funcionaría
porque leería el contenido de la 2001H ¡¡ de la página
seleccionada !!
Introducción
Diseño con TTL
Diseño con GAL
Funcionamiento y documentación