Página 1 de 1

zmakebas no convierte bien los DEF FN

NotaPublicado: Jue Mar 19, 2015 10:11 pm
por programandala.net
Recientemente he descubierto que zmakebas no traduce bien las definiciones de funciones. Cualquier intento de llamada a una función produce el error de BASIC "Q Parameter error". Editar la línea en que está el DEF FN con el editor del sistema, sin hacer cambios, soluciona el problema.

Bastó examinar un TAP creado por zmakebas, usando un editor hexadecimal, para ver dónde estaba el fallo: En la representación interna de los parámetros solo están sus nombres, no los cinco octetos que deben ir a continuación de cada uno para guardar sus valores durante la ejecución de la función (tanto números como cadenas).

¿Alguien lo había notado?

Tengo instalado el paquete de Raspbian/Debian. Es la versión más reciente que existe de zmakebas, la 1.2. Me he bajado las fuentes para echar un vistazo.

Mientras, está la alternativa de BAS2TAP, aunque carece de algunas funcionalidades útiles de zmakebas.

Re: zmakebas no convierte bien los DEF FN

NotaPublicado: Jue Mar 19, 2015 10:40 pm
por antoniovillena
Yo tengo un fork del zmakebas y más o menos sé cómo funciona el código fuente. Si no te importa pon un programa de ejemplo para que pueda detectar el bug. El enlace al código fuente de mi fork es este:

http://sourceforge.net/p/emuscriptoria/ ... ZMakeBas.c

Re: zmakebas no convierte bien los DEF FN

NotaPublicado: Jue Mar 19, 2015 10:53 pm
por antoniovillena
antoniovillena escribió:Yo tengo un fork del zmakebas y más o menos sé cómo funciona el código fuente. Si no te importa pon un programa de ejemplo para que pueda detectar el bug. El enlace al código fuente de mi fork es este:

http://sourceforge.net/p/emuscriptoria/ ... ZMakeBas.c


Vale, con este simple programa me muestra el error, lo estoy investigando.

Código: Seleccionar todo
10 DEF FN r(x)= INT (x+O.5)
20 PRINT FN r(2.9)

Re: zmakebas no convierte bien los DEF FN

NotaPublicado: Vie Mar 20, 2015 8:37 pm
por antoniovillena
Ya he arreglado el bug. La última versión está aquí (es el mismo enlace de arriba, si quieres ponlo en marcadores porque es donde estará siempre la última versión del ZMakeBas):

http://sourceforge.net/p/emuscriptoria/ ... ZMakeBas.c

Re: zmakebas no convierte bien los DEF FN

NotaPublicado: Vie Mar 20, 2015 10:22 pm
por programandala.net
antoniovillena escribió:Ya he arreglado el bug. La última versión está aquí (es el mismo enlace de arriba, si quieres ponlo en marcadores porque es donde estará siempre la última versión del ZMakeBas):


Muchas gracias. Voy a probarlo.

Sabía que tenías una versión propia, y la tenía descargada en mi archivo, pero estaba usando la 1.2 que viene con Raspbian/Debian porque, si no estoy equivocado, la tuya está basada en la versión de 1998, que debe de ser la 1.0 o 1.1.

Este fallo es importante y habría que corregirlo en la última versión disponible en las distros que lo incluyen. Pero, por lo que sé, este programa ya no es mantenido por su autor y no hay un único lugar en que esté la fuente original, ¿no?

Re: zmakebas no convierte bien los DEF FN

NotaPublicado: Vie Mar 20, 2015 11:25 pm
por antoniovillena
Pues no tengo ni idea de qué versión partí, supongo que busqué la más moderna pero lo mismo no estaba disponible. Como trabajo en un repositorio, en este enlace está la primera versión que subí:

http://sourceforge.net/p/emuscriptoria/ ... ZMakeBas.c

Puedes compararla con la versión que tienes para ver de cuál se trata.

Re: zmakebas no convierte bien los DEF FN

NotaPublicado: Vie Mar 20, 2015 11:28 pm
por antoniovillena
Esta es la 1.2 de zmakebas.

https://github.com/catseye/zmakebas/blo ... zmakebas.c

Edito: Comparando los archivos concluyo que partí de la versión 1.2