Efecto extraño transformando un zx80 en un zx81
Publicado: Sab Jul 16, 2016 3:00 pm
Pues ando liado con un proyecto para hacer placas de zx80 del mismo tamaño que las originales, pero modificando la salida de vídeo y añadiéndoles un selector para poder convertirlo en un zx81. Además, para que la experiencia sea completa, estoy buscando la manera de dotarle de una caja lo más similar posible a la original del zx80 y la posibilidad de cambiar el overlay para cuando trabajemos en modo zx81.
Estoy basandome en el excelente trabajo de Searle Hostei publicado aquí: http://searle.hostei.com/grant/zx80/zx80.html
El 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 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?
Estoy basandome en el excelente trabajo de Searle Hostei publicado aquí: http://searle.hostei.com/grant/zx80/zx80.html
El 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 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?