Un compilador de ZX Spectrum BASIC

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: Un compilador de ZX Spectrum BASIC

Mensaje por Boriel » Mar Jun 08, 2010 2:08 pm

Calculé mal. El 1er mensaje sobre la idea del compilador fue en este mismo hilo, y es de Enero de 2008. Así que 2 años y medio. Bueno... :roll: Me da la nostalgia esa... :P :lol:

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

Re: Un compilador de ZX Spectrum BASIC

Mensaje por Boriel » Vie Dic 10, 2010 11:34 pm

Bueno, ya ha salido del horno la versión 1.2.6-stable del compilador. Y la verdad, es que creo que ya es un producto maduro.
Es probable que empiece una rama 2.0 en unos meses, que incluya tipos definidos por el usuario y punteros, como na_th_an sugirió. :wink: Y además, lo empiece a portar a otras arquitecturas Z80.

Se puede descargar de aquí: http://www.boriel.com/wiki/en/index.php ... IC:Archive
También se han ido comentando cosas (me han ayudado :roll: ).

sromero
Nonamed
Mensajes: 1221
Registrado: Mar Abr 17, 2007 12:35 pm
Ubicación: Valencia
Contactar:

Re: Un compilador de ZX Spectrum BASIC

Mensaje por sromero » Sab Dic 11, 2010 9:01 am

Hola.

Como estoy corrigiendo erratas y ampliando todo lo posible el Curso de Ensamblador de Compiler Software (publicado en el wiki de Speccy.org), voy a aprovechar para editar el primer artículo (donde se nombra a MCODER como una mejor opción al BASIC interpretado) y a añadir allí referencias a ZXB Compiler.

Un saludo :-)
NoP / Compiler

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

Re: Un compilador de ZX Spectrum BASIC

Mensaje por Boriel » Sab Dic 11, 2010 12:06 pm

Pues si te puedo echar una manilla (de plátanos, que estoy en Canarias y todo el rollo es), avisa! :lol:

Avatar de Usuario
JBGV
Manic Miner
Mensajes: 279
Registrado: Vie Feb 11, 2011 9:16 am

Re: Un compilador de ZX Spectrum BASIC

Mensaje por JBGV » Vie Feb 11, 2011 11:06 am

Hola, hace poco que he descubierto este compilador y me parece GENIAL.

Resulta que hace poco me dio por terminar un programa que empecé hace 24 años en basic y que nunca acabé. Empecé hacerlo con un emulador usando el basic original, hasta que encontré este compilador ... que ENORME DIFERENCIA DE VELOCIDAD.

Todo iba fenomenal hasta que me he topado con un problema, a ver si alguien puede ayudarme, llevo varios dias dandome cabezazos con este asunto:

Creo una matriz de 13 x 4 y asigno sus valores:

Código: Seleccionar todo

9715 DIM p1(12,3) AS UBYTE => {{1,1,6,11},{1,1,9,4},{1,1,13,6},{1,2,8,13},{1,2,12,8},{1,3,8,14},{1,3,11,6},{1,4,5,5},{1,4,12,14},{1,5,4,5},{1,6,12,18},{1,7,4,10},{1,7,8,16}}


Luego quiero leer datos de esa matriz si se cumplen determinadas condiciones (si "x" e "y" coinciden con determinados valores de la matriz, entonces dibuja en coordenadas que tambien son datos de esa matriz.)

Código: Seleccionar todo

9007 FOR n=0 TO 12
9008 IF p1(n,0)=x AND p1(n,1)=y THEN PRINT INK 4;AT p1(n,2),p1(n,3);"\e\f"; INK 2;AT p1(n,2)+1,p1(n,3);"\g\h": END IF
9009 NEXT n


Al intentar compilar , ( zxb siete.bas -T -B -a ), sale un mensaje de error diciendome que p1, la matriz, es una función, no una variable ???? cuando no está definida como función:

ocho.bas:215: identifier 'p1' is a function, not a var

No lo entiendo, con el Basic del propio ZX Spectrum esa sentencias funcionan.

MUCHAS GRACIAS.

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

Re: Un compilador de ZX Spectrum BASIC

Mensaje por Boriel » Vie Feb 11, 2011 11:27 am

Hola, JGBV. Bueno, leyendo el listado, parece que declaras la matriz DESPUÉS de haberla utilizado. Es decir, la inicialización de las matrices por ahora son estáticas, no son como en el BASIC del Spectrum (que se hacen durante la ejecución). Tienes que ponerlas en el código antes de que se usen por primera vez, y sólo se podrán declarar una vez (por ahora). Más adelante incluiré matrices dinámicas.

En tu caso, la usas en la línea 9008, pero las declaras en la línea 9715 (DIM). Tienes que poner el DIM antes de la linea 9008. Incluso puedes ponerlo arriba del todo.
Prueba y me dices.

Por último, como este hilo es muy largo ya, he creado un foro para soporte del compilador en http://www.boriel.com/forum/zx-basic-compiler/ (en Castellano e Inglés).

Avatar de Usuario
JBGV
Manic Miner
Mensajes: 279
Registrado: Vie Feb 11, 2011 9:16 am

Re: Un compilador de ZX Spectrum BASIC

Mensaje por JBGV » Vie Feb 11, 2011 12:09 pm

Hola Boriel, MUCHAS GRACIAS, en efecto, FUNCIONA como me dices.

El caso es que usaba Gosub para ir de un lado a otro, tengo que seguir actualizándome.

Consultaré ahora el nuevo foro, este mensaje aqui es sólo para darte las gracias.

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

Re: Un compilador de ZX Spectrum BASIC

Mensaje por Boriel » Vie Feb 11, 2011 1:07 pm

JBGV escribió:Hola Boriel, MUCHAS GRACIAS, en efecto, FUNCIONA como me dices.

El caso es que usaba Gosub para ir de un lado a otro, tengo que seguir actualizándome.

Consultaré ahora el nuevo foro, este mensaje aqui es sólo para darte las gracias.


Gracias a tí. Cuanto más gente lo use mejor.
Quiero hacer un juego con el compilador, yo también :!: pero es que no tengo mucho tiempo.
No me importa que la gente pregunte por aquí, pero este hilo es taaaan laaargo, que creo que ya es inmanejable, no??

Avatar de Usuario
na_th_an
Nonamed
Mensajes: 1889
Registrado: Lun May 07, 2007 10:16 am
Ubicación: Andalucía

Re: Un compilador de ZX Spectrum BASIC

Mensaje por na_th_an » Mar Feb 15, 2011 3:58 pm

Yo tengo tres cosas empezadas, a ver si saco rato :-D

A JBGV le recomendaría que abandonase los números de linea. No sirven para nada más que para embarullarlo todo. Si tu programa necesita moverse con GOTOs, usa etiquetas:

Código: Seleccionar todo

principio:
   PRINT "Hola ";
   GOTO principio

Avatar de Usuario
JBGV
Manic Miner
Mensajes: 279
Registrado: Vie Feb 11, 2011 9:16 am

Re: Un compilador de ZX Spectrum BASIC

Mensaje por JBGV » Mié Feb 16, 2011 4:33 pm

na_th_an escribió:Yo tengo tres cosas empezadas, a ver si saco rato :-D

A JBGV le recomendaría que abandonase los números de linea. No sirven para nada más que para embarullarlo todo. Si tu programa necesita moverse con GOTOs, usa etiquetas:

Código: Seleccionar todo

principio:
   PRINT "Hola ";
   GOTO principio


Hola Na_th_an, gracias por el consejo, el próximo irá sin números de línea.

Estoy de acuerdo en que lo mas complicado es encontrar tiempo :D. Pero poco a poco.

Por cierto que estoy sorprendido de ver que todavía seamos tantos los interesados en el ZX S.

Avatar de Usuario
oblo
Sabreman
Mensajes: 327
Registrado: Lun Feb 07, 2011 9:53 am

Re: Un compilador de ZX Spectrum BASIC

Mensaje por oblo » Lun Jun 27, 2011 3:24 pm

Hola a todos

Estoy empezando a descubrir esta herramienta y me está dejando muy buen sabor de boca por lo que he visto hasta el momento (muchas gracias a Boriel por esto) :) Ahora bien, hasta la fecha he utilizado Basin tanto por su sencillez como por su todo en uno integrado, así que lo que estoy haciendo casi de forma instintiva es buscar herramientas similares que me permitan tener lo mismo que Basin pero para programar con ZXBasic, o al menos tener un editor que reconozca los comandos y la sintaxis del ZXBasic.
He buscado por el post y han salido dos nombres: TommyGun (que no lo he usado) y Notepad++ (me encanta pero no sé si reconoce los comandos del ZXBasic) ¿Me recomendáis alguno de estos o hay algún otro IDE que merezca la pena mirar?

Gracias y saludos

Avatar de Usuario
compiuter
Sabreman
Mensajes: 337
Registrado: Vie May 18, 2007 9:00 pm
Ubicación: Palma de Mallorca

Re: Un compilador de ZX Spectrum BASIC

Mensaje por compiuter » Mar Jun 28, 2011 7:51 am

Aqui se hablo algo de eso.
http://www.speccy.org/foro/viewtopic.php?f=6&t=492&p=17088&hilit=crimson#p17088
Aun asi yo te recomendaria el que uso. Crimson editor.
Es un buen editor, en una zona del crimson llamada tools o algo asi puedes lanzar unos 9 archivos bat en el msdos que contengan las rutas para compilar y luego ejecutar tu juego, asi solo programas y luego le das a F8 por ejemplo y hace todo el resto y te presenta tu juego ejecutandose. Ademas tienes el marcador de sintaxis z80 para crimson que anda por ahi.

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

Re: Un compilador de ZX Spectrum BASIC

Mensaje por Boriel » Mar Jun 28, 2011 8:49 am

oblo escribió:Hola a todos

Estoy empezando a descubrir esta herramienta y me está dejando muy buen sabor de boca por lo que he visto hasta el momento (muchas gracias a Boriel por esto) :)

Antes que nada, *GRACIAS*, y me alegro de que te guste el compilador. Ahora mismo estoy muy liado en el curro, y no he podido continuarlo, pero espero poder retomarlo el mes que viene.

También comentar que hay un IDE alternativo que uno de los usuarios del compilador, LCD, ha creado:
http://members.inode.at/838331/index.html
No lo he probado, pero tiene buena pinta. ¿Por qué no lo pruebas? El autor es buen tío y seguro que si el comentas (habla alemán e inglés) mejoras o ideas, las meterá en el IDE.

Avatar de Usuario
oblo
Sabreman
Mensajes: 327
Registrado: Lun Feb 07, 2011 9:53 am

Re: Un compilador de ZX Spectrum BASIC

Mensaje por oblo » Mar Jun 28, 2011 9:37 am

Gracias a los dos :-) Voy a bajarlos y a probar para ver cual es más cómodo y lo comento.

salu2

Avatar de Usuario
oblo
Sabreman
Mensajes: 327
Registrado: Lun Feb 07, 2011 9:53 am

Re: Un compilador de ZX Spectrum BASIC

Mensaje por oblo » Mar Jun 28, 2011 9:29 pm

Bueno, ya he probado ambos y mientras que el Crimson no está mal (igual llevo mucho tiempo usando el Notepad++ y eso crea hábito), BorIDE apunta maneras al ser un IDE orientado a usar ZXBasic como compilador. Le encuentro lo siguiente:

Pros:
-Que alguien se haya molestado en crearlo, sin duda es el PRO más importante de todos.
-Soporte built-in de la sintaxis del ZXBasic
-Conversor integrado de números (binario-decimal-hex) y letras (mays-minus) Parecerá una tonteria pero personalmente me ahorra trabajo y provee de fluidez.
-La configuración de ZXbasic como compilador y de un emulador para las pruebas (Spectaculator en mi caso) es muy sencilla y las pruebas del código se hacen muy rápidas.
-Anidamiento de condiciones y funciones. BASIN no lo trae y es algo que echaba de menos.

Contras:
-La versión para descarga es una preview y se le nota que le faltan cosas. De hecho hay muchas herramientas que no están implementadas, como el editor de sprites o el gestor de interrupciones.
-Da la sensación de poder llevar una programación ordenada, con el código por un lado, los sprites por otro, las fuentes, los cargadores, incluso la pantalla de carga... pero tampoco está implementado, o al menos no me deja/no sé como hacerlo, lo que me lleva al siguiente punto.
-No trae ayuda. Vale, están los foros pero se echa de menos tenerlo todo centralizado, aunque sea lo básico.
-Se cuelga bastante, sobre todo a partir de la segunda o tercera vez que se lanza la orden Compilar&Ejecutar. También es posible que sea debido a que lo uso en máquinas virtuales (XP y 7) y puede que BorIDE no se lleve bien con eso.

Conclusión: le queda bastante por mejorar pero apunta buenas maneras; claro que tampoco es para quejarse ya que hacer un IDE lleva su tiempo y más si encima se hace por amor al arte.

salu2

Responder

¿Quién está conectado?

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