Z88DK (curso Radastan) - Dudas Varias

Soporte técnico sobre los lanzamientos de MojonTwins y comentarios sobre los güegos. Ofrecemos soporte técnico con Fourspriter, te ayudamos con ZX Basic o Z88DK, te damos pistas some cómo saltarse un bicho y cosas así.

Moderador: na_th_an

Avatar de Usuario
Hark0
Mensajes: 96
Registrado: Mar, 28 Ene 2014, 07:42
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Z88DK (curso Radastan) - Dudas Varias

Mensajepor Hark0 » Mié, 14 May 2014, 13:06

Buenas!

Estoy usando printf() para sacarme por pantalla las variables...

Tengo una rutina que cuando pulso D, me pinta en pantalla con printf las variables que me interesa...

AHora bien, cada print lo hace en la posición contigua del texto...

Estoy usando \n para "saltar" a la línea siguiente...



Ahora bien... ¿Como borro la "consola" o "Modo terminal"?

Gracias 1000
Última edición por Hark0 el Vie, 16 May 2014, 11:16, editado 1 vez en total.
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Z88DK - Borrar "consola" - Printf

Mensajepor na_th_an » Mié, 14 May 2014, 13:34

Ni idea. Podrías borrar el área de bitmap de la pantalla con un poco de ensamblador.

Código: Seleccionar todo

#asm
   ld hl, 16384
   ld (hl), 0
   ld de, 16385
   ld bc, 6143
   ldir ; ZASCA!
#endasm


Luego creo que puedes ponerte arriba del todo de nuevo imprimiendo el código de AT y la posición. Supongo que imprimiendo \x16\x00\x00 te vale, pero no recuerdo bien.

Te recomiendo que pases de printf y te hagas el tuyo propio... Si no quieres ingentes cantidades de código comiéndose tu binario con mil características que realmente no necesitas.
Como diría Rorshach: "Urm..."
Avatar de Usuario
Hark0
Mensajes: 96
Registrado: Mar, 28 Ene 2014, 07:42
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: Z88DK - Borrar "consola" - Printf

Mensajepor Hark0 » Mié, 14 May 2014, 13:49

Es a modo de debug solamente... pruebo ese asm...

;)
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica
Avatar de Usuario
Hark0
Mensajes: 96
Registrado: Mar, 28 Ene 2014, 07:42
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: Z88DK - Borrar "consola" - Printf

Mensajepor Hark0 » Mié, 14 May 2014, 18:53

He añadido la función "zasca"... al motorzx.h del amigo Radastan :mrgreen:

Código: Seleccionar todo

void zasca (void)
{
#asm
   ld hl, 16384
   ld (hl), 0
   ld de, 16385
   ld bc, 6143
   ldir ; ZASCA!
#endasm
}


Hace un bonito CLS, pero no restaura la posición del cursor...

Nada, no te preocupes, es modo "debug"... solo para mis ojos... ;)
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Z88DK - Borrar "consola" - Printf

Mensajepor na_th_an » Mié, 14 May 2014, 19:30

Claro, eso sólo rellena de ceros todo el bitmap. Para volver arriba puedes probar a hacer un printf posterior con el código de at y la posición ,0,0 tal y como te puse en el anterior mensaje.

Enviado desde mi LT18i usando Tapatalk 2
Como diría Rorshach: "Urm..."
Avatar de Usuario
Hark0
Mensajes: 96
Registrado: Mar, 28 Ene 2014, 07:42
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: Z88DK - Borrar "consola" - Printf

Mensajepor Hark0 » Jue, 15 May 2014, 07:46

Lo pruebo! ;)
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Z88DK - Borrar "consola" - Printf

Mensajepor na_th_an » Jue, 15 May 2014, 08:00

También puedes usar la rutina de la ROM, que vuelve el cursor arriba del todo. Probablemente la E/S de consola de z88dk emplée las variables del sistema para saber dónde imprimir, con lo que te valdría con un simple:

Código: Seleccionar todo

#asm
    call 3435
#endasm


Para borrar la pantalla y volver arriba del todo. Pero claro, para usarlo necesitas la ROM del Spectrum. No podrás poner tu juego en un cartucho o usarlo en clones misteriosos, pero eso creo que es lo de menos.
Como diría Rorshach: "Urm..."
Avatar de Usuario
Hark0
Mensajes: 96
Registrado: Mar, 28 Ene 2014, 07:42
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: Z88DK - Borrar "consola" - Printf

Mensajepor Hark0 » Vie, 16 May 2014, 10:07

Pues no resetea la consola!

Curioso...
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica
Avatar de Usuario
na_th_an
Mensajes: 26412
Registrado: Vie, 09 Ene 2009, 12:18

Re: Z88DK - Borrar "consola" - Printf

Mensajepor na_th_an » Vie, 16 May 2014, 10:18

Pregunta en z88dk.org, entonces. La verdad es que no tengo ni idea de cómo funciona la consola. Quizás en la wiki... http://www.z88dk.org/wiki/doku.php?id=library:stdio

¿Has probado lo que te dije al principio del AT 0,0?
Como diría Rorshach: "Urm..."
Avatar de Usuario
Hark0
Mensajes: 96
Registrado: Mar, 28 Ene 2014, 07:42
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: Z88DK - Borrar "consola" - Printf

Mensajepor Hark0 » Vie, 16 May 2014, 10:55

Si y tampoco.... pero como te digo no te preocupes...

Es solo debug/test... amén que añadir "printf" y cadenas está engordando la cinta que da gusto... :jias:


PD tengo algunas dudas más sobre Z88DK (esta vez sobre carga de mapas)... ¿hago un hilo nuevo o sigo aqui y renombro el hilo? :P

Por cierto, añado la cinta por si alguien la quiere catar:

https://dl.dropboxusercontent.com/u/556 ... _blog3.tap

Teclas:
Enter -> jugar
qaop -> mover
espacio -> accion
d -> debug
0 -> menu

Entrar a jugar, salir al menu y volver a entrar NO resetea nada del mapa :P
Última edición por Hark0 el Vie, 16 May 2014, 10:59, editado 2 veces en total.
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

Volver a “Ayuda”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados