Scroll horizontal carácter a carácter

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

Avatar de Usuario
climacus
Sabreman
Mensajes: 411
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Mensaje por climacus » Lun May 16, 2016 7:20 pm

Kodaly escribió:Pues, climacus, creo que el problema va a ser debido a lo que dices tú porque he corregido lo del puntero y el problema sigue.

A raíz de la sugerencia que hiciste del doble buffer para solucionar lo del parpadeo al inicio del post, busqué y encontré en http://old8bits.blogspot.com.es/2016/05 ... -zx_3.html una forma de hacerlo con pop y push. De esta forma lo he hecho.

SEG1 equ 16514
SEG2 equ 18434
SEG3 equ 20482

P0 equ 0
P1 equ 256
P2 equ 512
P3 equ 768
P4 equ 1024
P5 equ 1280
P6 equ 1536
P7 equ 1792

C0 equ 0
C1 equ 32
C2 equ 64
C3 equ 96
C4 equ 128
C5 equ 160
C6 equ 192
C7 equ 224


xfer ld (stptr),sp ; guardar puntero de pila.

; Character line 0.

ld sp,WINDOW ; inicio del búferde la linea.
pop af
pop bc
pop de
pop hl
exx
pop bc
pop de
pop hl
ld sp,SEG1+C0+P0+14 ; final de la línea de la pantalla.
push hl
push de
push bc
exx
push hl
push de
push bc
push af

.
.

ld sp,WINDOW+4784 ; inicio del búfer de la linea.
pop af
pop bc
pop de
pop hl
exx
pop bc
pop de
pop hl
ld sp,SEG3+C7+P7+28 ; final de la línea de la pantalla.
push hl
push de
push bc
exx
push hl
push de
push bc
push af

okay ld sp,(stptr) ; restaurar el puntero de pila.
ret
Interesante la página...
Se me ocurre otro posible fallo: Antes de usar la pila para volcar datos a la pantalla, deshabilitas las interruciones, no?
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php

Kodaly
Herbert
Mensajes: 75
Registrado: Lun Jul 23, 2012 1:55 pm

Re: Scroll horizontal carácter a carácter

Mensaje por Kodaly » Lun May 16, 2016 10:58 pm

climacus escribió:

Interesante la página...
Se me ocurre otro posible fallo: Antes de usar la pila para volcar datos a la pantalla, deshabilitas las interruciones, no?
Grande climacus!! Pues era eso. No había hecho lo de las interrupciones. He puesto un DI antes de usar la pila para volcar datos y un EI al final de la rutina y ha funcionado. :D Problema resuelto. No me machaca la memoria entonces por otro lado, ¿no?

Hay qué ver el quebradero de cabeza por sólo 4 letras de m...Las cosas del ensamblador.

Muchísimas gracias. Ya puedo seguir con el proyecto hasta el próximo atasco con alguna otra cosa.

Avatar de Usuario
climacus
Sabreman
Mensajes: 411
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Mensaje por climacus » Mar May 17, 2016 8:35 am

Kodaly escribió:
climacus escribió:

Interesante la página...
Se me ocurre otro posible fallo: Antes de usar la pila para volcar datos a la pantalla, deshabilitas las interruciones, no?
Grande climacus!! Pues era eso. No había hecho lo de las interrupciones. He puesto un DI antes de usar la pila para volcar datos y un EI al final de la rutina y ha funcionado. :D Problema resuelto. No me machaca la memoria entonces por otro lado, ¿no?

Hay qué ver el quebradero de cabeza por sólo 4 letras de m...Las cosas del ensamblador.

Muchísimas gracias. Ya puedo seguir con el proyecto hasta el próximo atasco con alguna otra cosa.
Estas cosas pasan :)

De todas formas, a no ser de que las uses para algo, quita las interrupciones al principio del programa y solo ponlas cuando hagas el HALT (si es que lo haces). Y mucho cuidado: si usas las interrupciones de la ROM, ten en cuenta que actualizan el valor de IY, osea que si utilizas IY, ponlo a cero (por ejemplo) antes que hagas el HALT.

Código: Seleccionar todo

LD IY,0
EI
HALT
DI
Me alegro de que puedas seguir adelante.
Y por favor, informa!!!!
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php

Kodaly
Herbert
Mensajes: 75
Registrado: Lun Jul 23, 2012 1:55 pm

Re: Scroll horizontal carácter a carácter

Mensaje por Kodaly » Mié May 18, 2016 1:08 pm

Gracias, climacus. Lo he hecho como decías: DI al principio y todo bien.

Os tendré informados. También soy aficionado a los juegos de mesa y quiero llevar algunas mecánicas al spectrum. Por ahí van los tiros. Tendré que hacerme yo mismo el juego que me gustaría que ya existiese.

Tengo una duda importante de novato. A ver, ya consigo mover un sprite de 4x4 caracteres de forma fluida con el scroll. La cuestión es si intento meterle máscaras o mejor paso de los fondos para no meterme en muchas complicaciones por ahora. Es que me temo que el tema de las máscaras es complejo.

Avatar de Usuario
climacus
Sabreman
Mensajes: 411
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Mensaje por climacus » Mié May 18, 2016 4:23 pm

Kodaly escribió:Gracias, climacus. Lo he hecho como decías: DI al principio y todo bien.

Os tendré informados. También soy aficionado a los juegos de mesa y quiero llevar algunas mecánicas al spectrum. Por ahí van los tiros. Tendré que hacerme yo mismo el juego que me gustaría que ya existiese.

Tengo una duda importante de novato. A ver, ya consigo mover un sprite de 4x4 caracteres de forma fluida con el scroll. La cuestión es si intento meterle máscaras o mejor paso de los fondos para no meterme en muchas complicaciones por ahora. Es que me temo que el tema de las máscaras es complejo.
Yo de momento seguiría a ver cómo va resultando. Si al final te sobra velocidad, puedes meter máscaras.
No es muy complicado.
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php

Kodaly
Herbert
Mensajes: 75
Registrado: Lun Jul 23, 2012 1:55 pm

Re: Scroll horizontal carácter a carácter

Mensaje por Kodaly » Jue May 19, 2016 9:06 pm

Tenías razón, climacus. No es complicado lo de las máscaras. Me he puesto a ello y sin problemas. Me lo esperaba muchísimo peor. Pues ya puedo empezar!

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado