Karoshi MSX Community

Desarrollo MSX => Desarrollo (Español/Spanish) => Mensaje iniciado por: burguera en 23 de Octubre de 2006, 11:16:30 am



Título: Problemillas con asMSX
Publicado por: burguera en 23 de Octubre de 2006, 11:16:30 am
Una parte del código de mi juego es tal que asín:

Código:
@@RGHT: inc     hl
        inc     hl
        ld      e, [hl]
        inc     hl
        ld      a, [hl]
        or      a
        ret     z
        dec     hl
        ld      [CUSO], hl
        ret

Necesito hacer un pequeño cambio. Básicamente, cambiar el "ret z" por un "jr z, @@RGT2". El problema aparece cuando, haciendo este cambio (y, siendo @@RGT2 una etiqueta local a esta subrutina) al ensamblar me da el error "line 55: undefined identifier". Cuando la linea 55 no tiene nada que ver con este código (este se encuentra en la 1579). Tampoco es un problema de que en la linea 55 haga un "jr" a una etiqueta a la que no llega (en la 55 hay un call a una subrutina mía). De hecho, por probar, si pongo algo así como

Código:
ret z
jr  z, @@RGT2

El código se ensambla sin errores. Pero en cuanto quito el ret z, me da el error que mencionaba.

Alguna idea?


Título: Re: Problemillas con asMSX
Publicado por: SapphiRe en 23 de Octubre de 2006, 11:20:05 am
Aunque te parezca una tontería... prueba a meter un NOP por ahí a ver si se soluciona.

De todas formas sin ver el código entero no te puedo decir mucho más :-\

Suerte!


Título: Re: Problemillas con asMSX
Publicado por: burguera en 23 de Octubre de 2006, 11:29:40 am
Con el NOP funciona bien... se trata de un bug del asMSX, entonces?
Si quieres, puedo mandarte el código en un mensaje privado. Se trata de mi primer juego en asm, y aún está bastante verde, con lo que no se si sacarías nada en claro salvo mi incompetencia con el Z80 ;-)


Título: Re: Problemillas con asMSX
Publicado por: Jon_Cortazar en 23 de Octubre de 2006, 11:33:30 am
¿Que versión del asMSX utilizas? -por saber...-  ;)


Título: Re: Problemillas con asMSX
Publicado por: SapphiRe en 23 de Octubre de 2006, 11:34:45 am
Con el NOP funciona bien... se trata de un bug del asMSX, entonces?

Sip

Citar
Si quieres, puedo mandarte el código en un mensaje privado. Se trata de mi primer juego en asm, y aún está bastante verde, con lo que no se si sacarías nada en claro salvo mi incompetencia con el Z80 ;-)

Si quieres que te eche una mano no tienes más que decírmelo :)


Título: Re: Problemillas con asMSX
Publicado por: burguera en 23 de Octubre de 2006, 11:38:37 am
La versión 0.12c, Viejo archivero


Título: Re: Problemillas con asMSX
Publicado por: pitpan en 23 de Octubre de 2006, 12:00:20 pm
Es un problema endémico del asMSX, que se resuelve poniendo un NOP en CUALQUIER parte del código fuente. Ni idea de qué pasa en las obtusas tripas del asMSX, no he conseguido pillar el error, pero en ocasiones algunas etiquetas parecen "desaparecer".

En cualquier caso, te recomiendo que utilices la versión 0.12e, que es algo más estable que la versión 0.12c y -además- tiene su propia documentación.

Donde siempre: http://www.robsy.net


Título: Re: Problemillas con asMSX
Publicado por: pentacour en 23 de Octubre de 2006, 12:21:15 pm
No sabía lo del NOP. Yo lo soluciono inventándome una nueva etiqueta en cualquier parte del código (aunque a veces no funciona a la primera y tengo que cambiarla de sitio).
Pero vamos, teniendo controlado este pequeño detalle, el asMSX va muy bien.


Título: Re: Problemillas con asMSX
Publicado por: burguera en 23 de Octubre de 2006, 06:01:12 pm
Esto de las etiquetas parece mejor que lo de los NOP... más que nada porque así no se pierde ni un solo ciclo  8


Título: Re: Problemillas con asMSX
Publicado por: SapphiRe en 23 de Octubre de 2006, 06:09:20 pm
Hombre, lo del NOP no deja de ser un paño caliente para ir probando. Es mucho más rápido meter un NOP por ahí que andar cambiando nombres de etiquetas y tal.


Título: Re: Problemillas con asMSX
Publicado por: Jon_Cortazar en 24 de Octubre de 2006, 06:44:09 am
Además, a veces, sigues programando y luego quitas el NOP que habías puesto de relleno y vuelve a funcionar bien  ;). Cosillas que tiene el asMSX, aunque de momento el 0.12e no me ha dado ningún error, y mira que le estoy dando cera...  ;)


Título: Re: Problemillas con asMSX
Publicado por: pitpan en 24 de Octubre de 2006, 11:07:36 am
A ver si consigo depurar este molesto bug para la siguiente versión...

Pero en lo que me gustaría concentrarme es en las herramientas de apoyo, para hacerlas un poco más completas y flexibles.

En cuanto al ensamblador, habrá algún cambio adicional y más funcionalidades.

Eso sí, de momento no he recibido ningún feedback sobre el soporte para MegaROMs. ¿Os parece útil? ¿Os parece sencillo? ¿Creéis que se puede plantear de otra forma? ¿Funciona bien?

Por preguntar que no quede.


Título: Re: Problemillas con asMSX
Publicado por: Jon_Cortazar en 24 de Octubre de 2006, 03:52:20 pm
Yo, de momento, como este año no estoy preparando MegaROMS, pues...  :-[


Título: Re: Problemillas con asMSX
Publicado por: SapphiRe en 24 de Octubre de 2006, 04:09:44 pm
Yo, de momento, como este año no estoy preparando MegaROMS, pues...  :-[

Lo mismo me pasa a mí... eerr... bueno, ya sabeis que no es estrictamente hablando un megarom y ... bla bla bla bla...  :-X :-X

Estooo... no he dicho nada ;D ;D ;D ;D ;D


Título: Re: Problemillas con asMSX
Publicado por: Dioniso en 24 de Octubre de 2006, 04:29:28 pm
Eso sí, de momento no he recibido ningún feedback sobre el soporte para MegaROMs. ¿Os parece útil? ¿Os parece sencillo? ¿Creéis que se puede plantear de otra forma? ¿Funciona bien?

Le eché un ojo en cuanto salió a la luz. Es un tema que me interesa y tras echarle un ojo al código ... creo que no puede ser más fácil y sencillito el tema de montar las "megarons". Un gran paso adelante, sin duda.


Título: Re: Problemillas con asMSX
Publicado por: pitpan en 24 de Octubre de 2006, 07:39:50 pm
Gracias por los comentarios, Dioniso. Espero que algún día podamos ver algún megaROM preparado en tu factoría ;D


Título: Re: Problemillas con asMSX
Publicado por: burguera en 24 de Octubre de 2006, 08:20:19 pm
De momento poco puedo decir del soporte megarom... mira que le voy metiendo cosas a mi jueguecillo y, nada, que se resiste a ocupar más de 8KB. En cualquier caso, la ojeadilla que le he echado al programa de ejemplo (megarom), la cosa parece bastante bien parida.

Por cierto, una curiosidad... he estado reestructurando mi código, y con tanto sube y baja me han aparecido algunos errores de los que comentaba. Pero... es posible que algún error de este tipo no se detecte? Quiero decir... podría pasar que el asMSX cambiara la dirección de una etiqueta por otra o por un valor no válido sin dar error de ensamblado? Repito, es curiosidad. No me ha pasado en ningún momento nada que me lo haga sospechar.


Título: Re: Problemillas con asMSX
Publicado por: pentacour en 24 de Octubre de 2006, 08:32:13 pm
En comparación a algunos de por aquí yo he programado poco con el asMSX, pero comerse errores no me lo ha hecho nunca. Y mira que alguna vez que el código no hacía lo que yo quería ya le estaba echando la culpa al asMSX y al programador que lo parió, pero un nuevo repaso me hacía ver que no era eso :-X


Título: Re: Problemillas con asMSX
Publicado por: pitpan en 25 de Octubre de 2006, 07:13:45 pm
No, en principio el valor de las etiquetas es siempre correcto (bueno, salvo que hagas auténticas aberraciones con PHASE/DEPHASE y alguna cosilla más). Había un problema de referencias cruzadas en la versión 0.11, pero ahora funcionan correctamente (hasta donde sé).

Espero poder pillar ese error de etiquetas desaparecidas pronto para quedarme un poco más tranquilo.


Título: Re: Problemillas con asMSX
Publicado por: SapphiRe en 25 de Octubre de 2006, 08:23:13 pm
Espero poder pillar ese error de etiquetas desaparecidas pronto para quedarme un poco más tranquilo.

Tranqui, Robsy... yo tengo una idea para solucionarlo en la próxima versión remozada del asMSX :P


Título: Re: Problemillas con asMSX
Publicado por: burguera en 25 de Octubre de 2006, 10:55:22 pm
Estupendo, robsy. Ultimamente le estoy metiendo bastante caña al asMSX y, aparte de eso, va mu fino.


Título: Re: Problemillas con asMSX
Publicado por: burguera en 13 de Noviembre de 2006, 08:46:24 pm
Aún no me he metido con el tema megaroms (espero tener suficiente con 32KB o 48 a lo sumo), pero me he encontrado con un nuevo problema.

Estaba haciendo unas pruebas para poder reubicar algunos datos de mi juego. El tema es que tengo en un fichero llamado "grobjects.asm" una serie de datos tal que así:

Código:
SGROBJ:
; Special object graphics for gamescreen
ROFULL: db 2,2,84,85,86,87
ROEMPTY: db 2,2,88,89,90,91
; Normal object gamescreen patterns       
NOFULL: db 2,2,76,77,78,79
NOEMPTY: db 2,2,80,81,82,83
...

Y en el fichero principal del programa, tengo

Código:
; Graphic object list
RPATINDEX: dw ROFULL,ROEMPTY,NOFULL,NOEMPTY,...

Mi intención es tener todos los datos de "grobjects.asm" comprimidos en ROM y descomprimirlos en RAM. Mi primera prueba consiste, simplemente, en copiar los datos de ROM a la posición GROBJ en RAM. Esto con un ldir se soluciona. El tema es que, para tener la lista de punteros RPATINDEX apuntando a los datos en RAM, se me ha ocurrido que podría hacer esto:

Código:
; Graphic object list
RPATINDEX: dw ROFULL-SGROBJ+GROBJ,ROEMPTY-SGROBJ+GROBJ,NOFULL-SGROBJ+GROBJ,NOEMPTY-SGROBJ+GROBJ,...

El problema aparece cuando, ensamblando esto, el asMSX se cuelga durante el EXPANDING SYSTEM MACROS. ¿Alguna idea sobre como
solucionar esto o bien como hacerlo de otra forma? ¿con un PHASE/DEPHASE pueden hacerse este tipo de cosas en asMSX?

Saludos


Título: Re: Problemillas con asMSX
Publicado por: pitpan en 13 de Noviembre de 2006, 09:32:59 pm
 ???

No tengo ni idea de qué puede estar pasando. Busca la cadena de texto REPT dentro del código fuente, incluso como parte del nombre de una etiqueta o algo así, porque podría darte algunos problemas. Si no, no entiendo qué puede estar pasando.


Título: Re: Problemillas con asMSX
Publicado por: burguera en 13 de Noviembre de 2006, 09:52:46 pm
No hay ningún REPT... bueno, cuando he dicho "colgar" no era exactamente "colgar". Lo que pasaba es que aparecía la ventanita de Windows tal que "la aplicación asMSX.exe ha producido un error que bla bla bla... desea usted enviar informe de errores..."

De todas formas, acabo de probar

Código:
POFF2=GROBJ-SGROBJ
RPATINDEX: dw ROFULL+POFF2,ROEMPTY+POFF2,NOFULL+POFF2,NOEMPTY+POFF2,RPAT1+POFF2,RB1+POFF2,RB2+POFF2,RB3+POFF2,RB4+POFF2,RB5+POFF2,RB6+POFF2,RB7+POFF2,RB8+POFF2,RB9+POFF2,RB10+POFF2,RB11+POFF2,RB12+POFF2,RB13+POFF2,RBLAD+POFF2,RBMURTANCAT+POFF2

Y ya no se "cuelga".