Haplo escribió:Hola Yombo, yo uso la paginación normal, esa que vas rotando el último bloque de 16K. Pero lo que pagino son siempre zonas de datos, no de código. El código principal está en el bloque entre 32768 y 49152, así que puedo jugar con la paginación sin preocuparme.
Yo estuve siguiendo este tutorial al respecto:
http://wiki.speccy.org/cursos/ensamblad ... acion_128k
Pensé en usar el modo AllRAM exclusivo de los +2A/+3 pero al final me pareció más práctico el modo normal combinado con el modo Timex de 2 pantallas entre 16384 y 32768.
Cierto, después de postear vi lo de las dos pantallas en las direcciones $4000 y $6000.
He estado probando (en Zesarux), y no me funciona el cambio de pantalla, se comporta como si no lo hiciera en absoluto (mis gráficos se mueven a la mitad de frames ya que yo pinto en ambas pantallas alternativamente, pero sólo se me visualiza la primera, $4000, todo el rato). Si desactivo el cambio de página y dibujo sólo en $4000, los gráficos van el doble de fluidos (pero siguen parpadeando, ya que borro su rectángulo anterior)
Según el hilo que define el modo radastaniano (
viewtopic.php?f=14&t=142), tan sólo hay que escribir un 1 en el bit 0 del puerto $FF. Me surgen tres preguntas:
Se refiere al puerto $00FF a pelo? (es decir no al registro $FF de ulaplus ni al registro $FF de zxuno)
¿Es necesario leer el puerto antes, para preservar los otros 7 bits intactos? (o se puede directamente hacer out( FF, 1 ) ?
¿Se refiere a escribir siempre un 1, o a ir escribiendo alternativamente un 1 o un 0 por turnos? (por lo que he podido leer de timex, es esto último)
He probado todas las posibilidades y no me funciona.
Un código de ejemplo de cambio de pantalla en ASM o el lenguaje que sea me vendría de perlas.
mcleod_ideafix escribió:Os recuerdo que además se puede cambiar la frecuencia de la CPU a 7MHz, por si necesitas un empujón de megahercios adicional para alguna tarea que se te resista.
Más detalles, aquí (registro $0B):
http://www.zxuno.com/wiki/index.php/ZX_ ... _de_ZX-Uno
Sí, eso lo sabía, jeje. Lástima que Zesarux no lo implementa todavía, aunque se puede simular subiendo a 200% la cpu manualmente.
Y mi prototipo v2 supongo que tampoco lo implementa, ya que el turbo lo introdujiste con el scandoubler y eso fue posterior a mi prototipo. (no?)