martes, 5 de abril de 2016

HI-RES en un ZX81 usando Expansiones de Memoria Originales

Las rutinas que utilizan gráficos de alta resolución o True Hi-Res Graphics  (HRG o HI-RES) no funcionan correctamente con las ampliaciones de memoria o rampack originales, como las de Sinclair, Timex o Memotech.

Esto es debido a que esas rutinas HI-RES necesitan de 6 kB y que la RAM esté disponible durante el refresco de la memoria. Realizando una modificación que aisle las señales RFSH y RD del rampack, justo en la zona del conector de expansión y antes del rampack, se consigue que cada ciclo de refresco se convierta en uno de lectura.

Wilt Ritger en el tutorial de su web sobre el sistema de video del ZX81, explica como realizar esa modificación.

ZX-Team en su web modifica ligeramente el valor de la resistencia de pull-up.

Si bien es fácil encontrar referencias a ambas propuestas, no he encontrado experiencias de usuarios que hayan implementado alguna de las modificaciones. Aprovechando una petición de un usuario de poder tener gráficos HI-RES sin manipular la placa original de su ZX81 y usando una ampliación original de Sinclair, me propuse comprobar una de las propuestas. En particular, he realizado la modificación propuesta por ZX-Team.




Lo único necesario son dos diodos 1N34A y dos resistencias de 10K. Necesitaba también algo que me permitiera poner estos componentes entre el puerto de expansión del ZX81 y la ampliación de memoria de manera que no manipulara ni el ZX81, ni el rampack. La "extender board" ZX81XT es la extensión que yo he utilizado. A veces hay unidades disponibles en la web Sell My Retro.




Primero hay que identificar los pines asociados a las señales RFSH y RD y aislarlos de las pistas del rampack.




Luego se prepara el montaje según el circuito y quedaría de esta manera.


Para comprobar el funcionamiento he cargado diferentes opciones de software disponible.

Primero, el programa del 25 Aniversario, que es un "True HI-RES":




El software Cartoons, también "True HI-RES":


El algoritmo "HRG-ms" y el software "upperlowerfont":




Se nota cierta distorsión en algunas zonas de la imagen. Esto lo atribuyo a que estoy probando la placa en un ZX81 con la ULA 2C210E en un TV LCD, que no obtiene una imagen de calidad. 

Después, he probado un "pseudo-HI-RES" como es el juego Manic Miner:



También he probado el software "No Limits":




Con esto se demuestra que el circuito propuesto funciona.