domingo, 19 de febrero de 2017

Interface de ROM Externa para ZX81 (I)

El diseño del bus de direcciones y datos del ZX81 presenta diferencias notables con respecto al ZX Spectrum. Las señales que salen por el bus de expansión son diferentes a las que se encuentran en el zócalo de la ROM, por lo que no se puede replicar un montaje basado en una EPROM en el zócalo, con la misma EPROM en una interface conectada al bus de expansión.

Las líneas del bus de direcciones A0-A8 que salen por el puerto de expansión son las mismas que llegan al Z80, pero no son las mismas que acceden a la ROM o a la ULA. Entre Z80 y ROM hay unas resistencias (R18-R26) de 1K. Estas líneas del bus de direcciones por el lado de la ULA solo están disponibles en el zócalo de la ROM, no salen por el bus de expansión.

La señal /ROMCS que sale por el puerto de expansión (23B) es la misma señal que la de la ROM, pero no que la de la ULA; ya que hay una resistencia entre la ROM y la ULA (R28: 680 ohm).

La ULA debe tener acceso a los bits bajos del bus de direcciones para tener acceso al conjunto de caracteres de la ROM durante el ciclo de refresco.


SEÑALES ULA CPU ROM RAM EXPANSION
D0 - D7 si si no no no
D0´- D7´ no no si si si
A0 - A8 no si no si si
A0´- A8´ si no si no no
A9 - A15 si si si si si
ROMCS no - si - si

La señal M1 (Machine Cycle 1) conecta la CPU con la ULA, y la señal sale por el puerto de expansión (pin 22A). Los ciclos T3 y T4 de M1 se usan para refrescar las memorias dinámicas. Los 7 bits más bajos del bus de direcciones contienen la dirección de memoria a refrescar y la señal RFSH se activa. Esta conexión CPU-ULA no existe en el ZX Spectrum.






















Para todos los montajes que se harán en las próximas entregas, se utilizará una EPROM 27c128 (16 kB), en la que los pines Vpp (pin 1), Vcc (pin 28) y PGM (pin 27) se conectan a +5V. La línea A13 (pin 26) se usará para seleccionar el banco de la EPROM que queremos, por lo que se ubica un selector a +5V y a GND.