MULTIFACE TWO AMSTRAD CPC
Fotos
Esquema y PCB
Esquema del Multiface Two:
Placa del Multiface Two:
Funcionamiento
El Multiface two tiene 3 PAL en su diseño 2 PAL16L8 y una PAL16R4. La más importante es
la PAL16R4 porque determinada como funciona el interface. Por ello los diseñadores, además de protegerla contra
lectura, utilizaron un par de trucos para ofuscar el diseño y hacer algo más difícil comprender como
funciona. Entender la PAL16R4, sortear las trampas de los diseñadores y sacar un JED para clonar la
PAL original ha llevado tiempo y esfuerzo. El material utilizado lo podeís ver aquí.
Los 2 trucos que usaron fueron:
- Usar una patilla configurada como salida también como entrada.
- Jugar, a su favor, con los tiempos de propagación de las puertas.
Una vez sorteado estos obstáculos, se ha elaborado un diagrama de estados del funcionamiento de esta PAL.
0000: (1) Encendemos el CPC.
0100: Nada más encender, la señal de reloj arranca pero i5 (reset) está pasando
de 0 a 1 por lo que la PAL pasa de 0000 a 0100. o19="1" y las salidas RF17-RF14
están en triestado.
El estado 0100 es muy importante porque el interface permanecerá aquí hasta que pasen 2
cosas:
- Se pulse el botón de STOP.
- Queremos acceder nosotros al interface mediante el uso de los puertos 0xFEE8
(activar) y 0xFEEA (desactivar). Es el estado 0110.
1100-1101: Estando en el estado 0100 pulsamos el botón de STOP. El interface pasa
al estado 1100 donde activa la salida o18 (MNI del ordenador) y, en el siguiente ciclo de reloj, pasa al
estado 1101. Ahora el interface esta esperando a que ocurra un momento muy concreto (paso por 0x66H) en el que o19 pasa de
"1" a "0". En ese momento las salidas RF17-RF14 son visibles y la ROM del interface se activa y pasamos al estado 1111.
1111: El interface está empezando a tomar el control del CPC. o19 se activa y
desactiva constantemente (RF17-RF14 y la ROM se activan y desactivan), o18 sigue a "0" (indicando al CPC que tiene NMI
activo) y o12 también puede activarse.
1011: Tras pasar otra vez por 0x66H, el interface ya tiene el control del CPC. Desactiva la señal
o18 y rf16. En el siguiente ciclo de reloj pasa a 1010.
1010: Aparece en pantalla el menú del interface y permanecemos aquí hasta que
queramos salir.
0010: Iniciamos el proceso para salir.
0000: (2) Hemos salido y el interface está desactivado. No podemos pasar al estado
0100 (necesitaríamos resetear el CPC) ni activar el interface por el puerto 0xFEE8 (estados 0010 o
0110). Sólo podemos pasar al estado 1100 si pulsamos el botón de STOP.
Documentación
Ficheros eagle. Esquema y pcb.
Eprom 2764.
PAL. Ecuaciones y jed.
Links
CPC Wiki.
Grimware.
CPC Hardware (web archive).
Dedicatoria
Para Rafa.
2014 José Leandro Novellón