Una vez probadas todas las modificaciones referentes al modo zx80, me he puesto a probar el modo zx81.
Como ya he comentado, para el presente proyecto estoy basándome en el excelente trabajo de Searle Hostei publicado aquí:
http://searle.hostei.com/grant/zx80/zx80.htmlEl hecho es que hecho la modificación que se describe para generar las NMI por hardware y me ocurre un efecto muy curioso. Cuando las NMI están desactivadas con el selector el funcionamiento es normal, tanto con la ROM del zx80 como con la ROM del zx81, pero el problema viene al activar la NMI para utilizar el modo slow del zx81.
Cuando estamos en modo slow el efecto es que se ve como si hubieramos rotado los bytes verticalmente en la matriz de 8x8 de cada caracter.
Una imagen vale más que mil palabras.
Es como si se trastocara el contador vertical de acceso a la ROM y empezara a partir de la línea 3 en lugar de empezar en la 0.
El esquema es el siguiente:
Como he utilizado un transistor BSX21 en lugar de un BSX20, en principio sospechaba de que no fuera suficientemente rápida la transición de la puerta lógica implementada con este, pero he echado mano del analizador lógico y parece que el funcionamiento es el correcto en tiempo y forma, por lo que parece que los tiros no van por ahí.
Como se puede observar en el cronograma, el disparo de la /NMI solo se activa (en baja) cuando la señal de /WAIT está en baja y la de /HALT está en alta. Además el momento es el exacto, por lo que parece que lo está haciendo bien.
Es como si el reset del contador de filas (IC21) no lo estuviera haciendo en el momento adecuado, pero he repasado todo y aparenta estar todo correcto.
¿Alguien se le ocurre alguna idea de lo que me puede estar pasando?
"Nada viaja a mayor velocidad que luz con la posible excepción de las malas noticias las cuales obedecen a sus propias leyes."
Douglas Adams. Guía de autoestopista galáctico.