Compilador ZX Basic 1.4 (beta) liberado

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

Moderador: Sir Cilve Sinclair

Boriel
Sabreman
Mensajes: 351
Registrado: Lun May 28, 2007 9:55 am
Ubicación: Tenerife
Contactar:

Re: Compilador ZX Basic 1.4 (beta) liberado

Mensaje por Boriel » Lun Feb 10, 2014 11:44 am

El error está en la parte de ensamblador.
Esto es una rutina de ensamblador 100% :P y lamentablemente, por ahora, ZX BASIC no entiende mucho de asm (no está integrado con el parser de asm del todo y le cuesta encontrar los errores de asm).

El error lo tienes en la línea:

Código: Seleccionar todo

ld a, (iy)

Debería ser

Código: Seleccionar todo

ld a, (iy + 0)

(Más arriba lo hiciste bien con ix).

El (iy + 0) debería ser explícito por sintaxis (en mi modesta opinión) para resaltar el hecho de que (iy + 0) siempre gastará un byte más para la indirección, aunque sea 0.

Avatar de Usuario
Imanolea
rst 0
Mensajes: 9
Registrado: Lun Feb 10, 2014 7:40 am
Ubicación: Bilbao

Re: Compilador ZX Basic 1.4 (beta) liberado

Mensaje por Imanolea » Lun Feb 10, 2014 12:39 pm

Gracias por la respuesta Boriel.

Aprovechando me gustaría agradecerte primero la creación de este compilador que me ha ayudado mucho a realizar el juego para ZX Spectrum sin necesidad de controlar de ensamblador. Y segundo consultar unas dudas que me han quedado pendientes y nunca me han quedado claras.

Por ejemplo, en muchas ocasiones me he encontrado con que al ejecutar el .tap o bien el ordenador se resetea (el spectrum) o bien (la más común de todas) me saca por pantalla 30:1 C nosense in basic. La forma de solucionarlo ha sido optimizar recursos y código pero nunca he llegado a entender cuál es la razón exacta de que esto ocurra o cómo prevenirla. Es decir, se debe a una sobrecarga de la ram, demasiadas líneas de código... La verdad es que siempre ha sido un poco misterioso para mí.
Última edición por Imanolea el Lun Feb 10, 2014 12:57 pm, editado 1 vez en total.

Boriel
Sabreman
Mensajes: 351
Registrado: Lun May 28, 2007 9:55 am
Ubicación: Tenerife
Contactar:

Re: Compilador ZX Basic 1.4 (beta) liberado

Mensaje por Boriel » Lun Feb 10, 2014 12:51 pm

Me alegro de que te guste. :wink: Yo no encuentro tiempo para hacer un jueguito. :cry:

Y en cuanto al error...
:shock: Si consigue reproducir eso, contáctame y analizamos el código.
Lás causas más probables son:
  • Un desbordamiento de pila (ej. muchos gosub o llamadas a funcion / sub anidados)
  • Indice de array no válido (usa el flag que hay apra comprobarlo)
  • Falta de memoria para otras cosas (como el Heap - gestión de cadenas). Hay un flag para comprobarlo
  • Un bug en el compilador (oh, no!) :oops:
Los flag de depuración te hacen el programa más lento, pero sirven para detectar errores. Mira a ver si lo pillas.
Lo más probable sea falta de memoria. Prueba a cambiar el org más abajo, a 26000 por ejemplo (ganarás un par de Kb). O a encoger el heap. ZX Basic intenta optimizar por velocidad, no por memoria pero estoy cambiando eso para poder dar a elegir al usuario (normalmente el código que ahorra memoria es más lento).

Avatar de Usuario
Imanolea
rst 0
Mensajes: 9
Registrado: Lun Feb 10, 2014 7:40 am
Ubicación: Bilbao

Re: Compilador ZX Basic 1.4 (beta) liberado

Mensaje por Imanolea » Lun Feb 10, 2014 1:34 pm

Sobre el juego, voy detallando el desarrollo aquí por si a alguien le interesa: http://imanoleasgames.blogspot.com.es/search/label/The%20Subject.

Gracias por la información. Como dices intuyo que tendrá que ver con memoria y no con una parte de código en concreto.
Sobre el resultado del programa otra salida típica ha sido imprimir únicamente un signo de interrogación como resultado o un reseteo tras llenar la pantalla de caracteres.
Aunque todos tienen algo en común, se han producido al añadir "x", pero al quitar "y" volvía a funcionar con normalidad. Es decir, el error nunca se ha asociado a un fragmento de código específico.
Si hay alguna prueba concreta con la que pueda colaborar para analizar la acción del compilador me comentas :wink: .

Boriel
Sabreman
Mensajes: 351
Registrado: Lun May 28, 2007 9:55 am
Ubicación: Tenerife
Contactar:

Re: Compilador ZX Basic 1.4 (beta) liberado

Mensaje por Boriel » Jue Feb 13, 2014 11:31 am

He sacado una nueva versión, que corrige algunas cosas, e introduce algunas mejoras:
http://www.boriel.com/wiki/en/index.php ... nt_Version

Responder

¿Quién está conectado?

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