Página 1 de 1

Detectar soporte modo Timex HiRes

Publicado: 21 Dic 2016, 11:19
por Uto
Hola,

Me gustaría que un programa que estoy haciendo activara el modo Timex HiRes si este estuviera disponible, y obviamente a partir de ese momento usara otras rutinas de gráficos. Sin embargo no encuentro ninguna manera de detectar el modo Timex en si mismo.

He probado a hacer IN del puerto 255 pero su lectura no es satisfactoria, supongo que devuelve el dato del bus flotante y no el último dato escrito, porque yo pongo un 2 ahí, lo leo de manera inmediata y no hay un 2.

El modo Radastan puedes hacerlo, porque sí puedes leer el registro y encontrarte con lo que has escrito (o no, en cuyo caso ya sabes que no hay soporte) y la ULAPlus no lo he probado, pero supongo que puedes escribir paleta/leer paleta. ¿Alguna opción para los modos Timex?

Particularmente preferiría detectarlo y actuar en consecuencia a tener que hacer dos versiones.

Re: Detectar soporte modo Timex HiRes

Publicado: 21 Dic 2016, 13:05
por chernandezba
Hola

Cuando tienes una máquina con soporte de video timex, la lectura del puerto FFH siempre retorna el último valor enviado a dicho puerto.
Si estás leyendo valores del bus floatante es que no tienes modo timex activado en emulador/máquina física o lo que sea donde lo estés probando.

Re: Detectar soporte modo Timex HiRes

Publicado: 21 Dic 2016, 13:23
por Uto
chernandezba escribió:Hola

Cuando tienes una máquina con soporte de video timex, la lectura del puerto FFH siempre retorna el último valor enviado a dicho puerto.
Si estás leyendo valores del bus floatante es que no tienes modo timex activado en emulador/máquina física o lo que sea donde lo estés probando.
Hmmm... pues acabo de probar en ZX-Uno (real) este programa:

10 OUT 255,6
20 PRINT IN 255

El resultado es que cambia al modo Timex HiRes (se ve de manera obvia en pantalla), y aparece en pantalla "255".

Sin embargo tienes razón en que con ZesarUX funciona, el mismo programa cambia al modo HiRes y muestra un 6.

¿Bug del ZX-Uno?

Nota: lo pruebo con HiRes porque en HiColor como la zona de atributos está rellena de 0s y por tanto es negro sobre negro no se ve el número, pero es lo mismo teóricamente.

Re: Detectar soporte modo Timex HiRes

Publicado: 21 Dic 2016, 13:34
por chernandezba
Si, entiendo que es un bug del zx-uno.
Aquí lo explica mas o menos bien:

http://speccy.wikia.com/wiki/Timex_Tech ... nformation

Es mas, siempre se ha dicho que el Arkanoid no funciona bien con máquinas Timex, ya que al leer el puerto FFH no lee el bus flotante (como espera el Arkanoid) sino que devolverá el valor del puerto timex (que al arranque estará como 0)

Re: Detectar soporte modo Timex HiRes

Publicado: 21 Dic 2016, 14:00
por Uto
Me dice McLeod por otro lado que si el MMU de Timex no está habilitado devuelve el bus flotante. Ese era el caso, una vez habilitado sí me devuelve un 6, pero entonces no me vale ese método para detectar disponibilidad de modo HiRes, porque el modo estaba disponible, pero el OUT/IN me decía que no :-(

Re: Detectar soporte modo Timex HiRes

Publicado: 21 Dic 2016, 17:48
por chernandezba
ah eso tiene lógica.
De todas maneras, está claro que en máquinas reales Timex, la mmu y los modos de video están ambos presentes y ese puerto retorna lo que debe.
Luego, en otros dispositivos (emuladores, zxuno), puedes tener modos timex de video pero sin la mmu de timex. En ese caso qué debería devolver? Yo creo que los bits de ese puerto correspondientes a modos de video deberían retornar valores acorde al modo de video, y no lo que está haciendo el zxuno.
Yo si fuese tú haría una "feature request" al team zx-uno :silbando: