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

Re: Scroll horizontal carácter a carácter

Notapor climacus el 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/como-escribir-juegos-para-el-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
Avatar de Usuario
climacus
Sabreman
 
Mensajes: 405
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Notapor Kodaly el 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.
Kodaly
Herbert
 
Mensajes: 68
Registrado: Lun Jul 23, 2012 1:55 pm

Re: Scroll horizontal carácter a carácter

Notapor climacus el 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
Avatar de Usuario
climacus
Sabreman
 
Mensajes: 405
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Notapor Kodaly el Mie 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.
Kodaly
Herbert
 
Mensajes: 68
Registrado: Lun Jul 23, 2012 1:55 pm

Re: Scroll horizontal carácter a carácter

Notapor climacus el Mie 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
Avatar de Usuario
climacus
Sabreman
 
Mensajes: 405
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Scroll horizontal carácter a carácter

Notapor Kodaly el 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!
Kodaly
Herbert
 
Mensajes: 68
Registrado: Lun Jul 23, 2012 1:55 pm

Previo

Volver a Programación y nuevos desarrollos

¿Quién está conectado?

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