HispaMSX

Re: [hispamsx] preguntilia

2001-04-02 13:38:45


"Fernandez D. Sopra-Bull" wrote:

Hola!

Sabe alguien si hay forma de leer/escribir el valor de un pixel (en concreto 
en screen5) desde basic, sin utilizar las instrucciones POINT y PSET?? (con 
algun PEEK o POKE)

Es muy sencillo.

Lo que pasa es que en Screen 5, cada byte representa 2 puntos. Es decir el 
nibble alto representa el primer punto y el nibble bajo el segundo.

Así que si haces un VPOKE dir,algo tienes que tener presente en cual de los 2 
puntos quieres escribir.

Pero es sencillo.

Si tienes una X par es el primer nibble y si no el segundo.

Pero antes has de hacer un vpeek de esa dirección para ver como es el otro 
punto, ya que si no la fastidias.

Asi puedes hacer :

a =  vpeek ((int(x/2)*2)+(y*128))

if (x mod 2) = 0 then pixel  = (a and &h0F) + (16*pixel)
if (x mod 2) <> 0 then pixel = (a and &hF0) + pixel

vpoke ((int(x/2)*2)+(y*128)),pixel

Y esto para la página 0. Si lo quieres hacer en la 1, súmale &h8000, y si lo 
quieres hacer en la 2 o 3, ya te las tienes que ingeniar de otra forma, por que 
el VPOKE y VPEEK
no permite direcciones superiores a 16 bits (0-&hFFFF).

Esto lo he escrito así a lo bestia, e igual no funciona, pero bueno ... es para 
que pilles la idea ...

Ej que si me sacas del asm me matas.

--
Un saludo,

Armando Pérez Abad
HELIO YAGO, S.L.
http://www.bogamari.com
Tlf: (96) 363 43 17
Fax: (96) 390 27 17



<Anterior en la conversación] Conversación actual [Siguiente en la conversación>