HispaMSX

Re: [hispamsx] Fw: scrolles

2001-12-12 22:09:24
El Mié 12 Dic 2001 10:40, escribiste:

Hola Ramoni!
Gracias por la ayudilla pero eso de la sentencia del Turbo Basic me lo
tienes que aclarar un poco ya que así no me entero, aunque sino recuerdo
mal el set scroll se pega de ostias con el Turbo Basic con lo que tendré
que hacerlo fuera del turbobloque, pero todo es probarlo. En lo refererente
a lo de la zona oculta supongo que te refieres a poner la última opción del
set scroll en 1,no?
Na más nos vemos, un Saludo!

ufff... Por partes:

1. sentencia del turbo basic:

1 screen 5:cls: set page 0,1
10 _turboon
20 '#C+
30 copy(0,0)-(255,44),0 to(0,211),0
40 ' Aquí ya tienes la zona oculta limpia

(Haz la prueba con #C+ o #C-, que no estoy seguro)

2. zona oculta: esa gran desconocida

una página de screen 5 "mide" 256x256 pero solo se ven 256x212. En la parte 
inferior quedan 44 lineas ocultas, que solo son visibles al hacer el scroll 
por hardware.
Eso es la zona oculta, y es la parte que saldrá con guarrería a menos que la 
borres.

3. Set Scroll vs Turbo Basic

creo que Turbo Basic se lleva mal con todos los "SET algo", pero eso no es un 
problema (recuerda lo del camino a la derecha :)

Lo mismo que hace el set scroll se puede hacer jugando con los registros del 
VDP.
En este caso son dos registros: el "27" y "28", y se usan tal que asi:
VDP(28)=x
esto te deja mover la pantalla pixel a pixel en sentido horizontal en un 
rango de 0 a 7.
vdp(27)=xx
y este otro te mueve la pantalla de 8 en 8 pixels. xx va de 0 a 63.

Si lo que quieres es hacer un scroll total, ete aquí una forma fácil:

for x=0 to 255: vdp(28)=xmod8: vdp(27)=x\8: nextx

Y otro registro: el "26"
-si quieres que el scroll se haga mediante la misma página (es decir, a lo 
"rodillo" :
        vdp(26)=vdp(26) and &b11111110
si quieres que se usen dos páginas (una tras otra).
        vdp(26)=vdp(26) or 1

- para enmascarar una franja de 8 pixels en el extremo izquierdo:
        vdp(26)=vdp(26) and &b11111101
sino
        vdp(26)=vdp(26) or 2


4. Y a todo esto, el scroll vertical qué?

pues supongo que este ya está claro, pero por si acaso:

for y=0 to 255: vdp(24)=y: next y

En este caso el scroll solo puede ser de la misma página (lástima), pero el 
tener esas 44 lineas ocultas te da mucho juego.


Y esto es todo. Espero haberte ayudado lo suficiente para que vayas probando 
como va el tema.

Ramón




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