Impresión rápida de caracteres con ZX Basic

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
Imanolea
Mensajes: 6
Registrado: Sab, 18 Ene 2014, 00:48

Re: Impresión rápida de caracteres con ZX Basic

Mensajepor Imanolea » Mar, 04 Feb 2014, 16:21

Hola na_th_an,
Pues ando intentando ahora poner en práctica el tema de usar variables de Basic en asm con la parte del juego en la que se elije la nota a tocar en un piano, con el objetivo de optimizarla de paso. El problema es que no me acaba de funcionar.

Sin meterme en detalles pongo la base esquemática en código.

Antes la selección era bastante chapucera, de este estilo:

$this->bbcode_second_pass_code('', '
sub play (pos as uByte)
if (pos = 1)
asm
LD B, 1
end asm
elseif (pos = 2)
asm
LD B, 2
end asm
...
end if
end sub')

Ahora estoy intentando aprovechar lo que me has enseñado para pasar una variable en esa asignación. Este sería un esquema del código ahora:

$this->bbcode_second_pass_code('', 'sub play (pos as uByte)
dim nota as Byte
...
poke @datosRutina, nota

asm
call tocarNota
end asm

...
end sub

Sub tocarNotaContainer
Asm
tocarNota:
ld b, (nota) ;; Aquí si sustituimos nota por un número sí que reacciona en función de él
...
ret
End Asm
datosRutina:
Asm
nota:
db 0
End Asm
End Sub')

Por lo que he estado probando en ld b, (nota) siempre se pasa el mismo valor, independientemente del valor que hayamos pokeado en el dato. ¿Estoy metiendo la gamba en alguna parte?
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Impresión rápida de caracteres con ZX Basic

Mensajepor na_th_an » Mar, 04 Feb 2014, 16:56

La verdad es que yo no veo ninguna gamba... A lo mejor Antonio Villena nos puede echar una mano...

¿Puede ser que estés repitiendo algún identificador y el compilador no se de cuenta y luego se haga un lío? Si el código que me has puesto se parece al completo, "nota" lo estás usando como variable en un sitio y como etiqueta en otro.

No sé, aparte de eso no veo nada raro.
Como diría Rorshach: "Urm..."
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: Impresión rápida de caracteres con ZX Basic

Mensajepor antoniovillena » Mar, 04 Feb 2014, 19:27

El problema es que ld b,(xxxx) no existe como instrucción en el Z80. Tendrías que escribir ld a,(xxxx) y luego un ld b,a
antoniovillena
Mensajes: 494
Registrado: Jue, 24 Oct 2013, 15:52

Re: Impresión rápida de caracteres con ZX Basic

Mensajepor antoniovillena » Mar, 04 Feb 2014, 19:29

O también te valdría un ld bc,(xxxx-1) aunque es más rápido el que te he dicho antes. En ambos casos machacas otro registro (a ó c).
Avatar de Usuario
Imanolea
Mensajes: 6
Registrado: Sab, 18 Ene 2014, 00:48

Re: Impresión rápida de caracteres con ZX Basic

Mensajepor Imanolea » Mar, 04 Feb 2014, 22:10

Perfecto, pasándolo primero al otro registro va, gracias.

Ahora voy a investigar sobre cómo imprimir caracteres en ensamblador en base a vuestros consejos y el código que ya tengo. Luego tocará adaptarlo, pero de momento me centro en eso.
Avatar de Usuario
Imanolea
Mensajes: 6
Registrado: Sab, 18 Ene 2014, 00:48

Re: Impresión rápida de caracteres con ZX Basic

Mensajepor Imanolea » Mié, 19 Feb 2014, 19:53

Aupa,
El desarrollo del juego ha terminado.

El tema de pintado de caracteres en ensamblador se queda pendiente, pero creo que para este juego concreto es mejor así, ya tendré tiempo de aprender código máquina en condiciones y entender como poder hacerlo en futuros proyectos. Agradezco en cualquier caso vuestros consejos y los tendré en cuenta.

He hecho un pequeño Trailer. Si hay algún interesado el juego estará disponible para descarga este viernes en Imanolea's Games (http://imanoleasgames.blogspot.com.es/).

http://youtu.be/_tT0l7pAU0I
Avatar de Usuario
na_th_an
Mensajes: 26413
Registrado: Vie, 09 Ene 2009, 12:18

Re: Impresión rápida de caracteres con ZX Basic

Mensajepor na_th_an » Mié, 19 Feb 2014, 20:44

Te felicito. Me encanta el aspecto del juego. Estéticamente es delicioso y el concepto de los puzzles me parece muy atractivo. ¡Ya tengo ganas de echarle el guante!
Como diría Rorshach: "Urm..."

Volver a “Ayuda”

¿Quién está conectado?

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