zmakebas no convierte bien los DEF FN

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

zmakebas no convierte bien los DEF FN

Notapor programandala.net el Jue Mar 19, 2015 10:11 pm

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.
Marcos Cruz (programandala.net)
Avatar de Usuario
programandala.net
Manic Miner
 
Mensajes: 202
Registrado: Mie Ago 04, 2010 9:20 pm
Ubicación: España

Re: zmakebas no convierte bien los DEF FN

Notapor antoniovillena el Jue Mar 19, 2015 10:40 pm

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
Imagen
Avatar de Usuario
antoniovillena
Nonamed
 
Mensajes: 1162
Registrado: Dom Ene 09, 2011 9:55 am

Re: zmakebas no convierte bien los DEF FN

Notapor antoniovillena el Jue Mar 19, 2015 10:53 pm

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)
Imagen
Avatar de Usuario
antoniovillena
Nonamed
 
Mensajes: 1162
Registrado: Dom Ene 09, 2011 9:55 am

Re: zmakebas no convierte bien los DEF FN

Notapor antoniovillena el Vie Mar 20, 2015 8:37 pm

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
Imagen
Avatar de Usuario
antoniovillena
Nonamed
 
Mensajes: 1162
Registrado: Dom Ene 09, 2011 9:55 am

Re: zmakebas no convierte bien los DEF FN

Notapor programandala.net el Vie Mar 20, 2015 10:22 pm

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?
Marcos Cruz (programandala.net)
Avatar de Usuario
programandala.net
Manic Miner
 
Mensajes: 202
Registrado: Mie Ago 04, 2010 9:20 pm
Ubicación: España

Re: zmakebas no convierte bien los DEF FN

Notapor antoniovillena el Vie Mar 20, 2015 11:25 pm

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.
Imagen
Avatar de Usuario
antoniovillena
Nonamed
 
Mensajes: 1162
Registrado: Dom Ene 09, 2011 9:55 am

Re: zmakebas no convierte bien los DEF FN

Notapor antoniovillena el Vie Mar 20, 2015 11:28 pm

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
Imagen
Avatar de Usuario
antoniovillena
Nonamed
 
Mensajes: 1162
Registrado: Dom Ene 09, 2011 9:55 am


Volver a Programación y nuevos desarrollos

¿Quién está conectado?

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