Página 1 de 1

¿El Basic con BASin es una nueva versión del lenguaje?

Publicado: 28 Dic 2016, 12:31
por Spectro
Hola de nuevo!

Ayer por casualidad encontre un enlace para descargar el software BASin. Osea, para programar lenguaje Basic del ZX Spectrum. La duda que tengo es si el Basic es el mismo que se utilizaba en la maquina fisica. Lo que recuerdo de este lenguaje son los listados que copiaba de la MicroHobby. Haciendo algunas pruebas vi que en el condicional IF se pueden poner mas instrucciones en el cuerpo del mismo. Y que no era tan necesario usar GOSUB para llamar a subrutinas. Aunque igual estoy equivocado. La duda es si se pude coger algun libro BASIC de la epoca y utilizar BASin. O si por el contrario han habido cambios en la sintaxis o estructura de dicho lenguaje.

Saludos! :D

Re: ¿El Basic con BASin es una nueva versión del lenguaje?

Publicado: 28 Dic 2016, 13:37
por na_th_an
BasIn es un entorno integrado con emulador toqueteado para ayudarte a programar en BASIC del Spectrum. El resultado tendrás que ejecutarlo en un emulador, en un Spectrum, o en el propio BasIn para que funcione.

Vamos, que lo que estás haciendo es programar en BASIC de Spectrum, pero en un entorno más agradable.

Re: ¿El Basic con BASin es una nueva versión del lenguaje?

Publicado: 28 Dic 2016, 19:09
por Spectro
na_th_an escribió:BasIn es un entorno integrado con emulador toqueteado para ayudarte a programar en BASIC del Spectrum. El resultado tendrás que ejecutarlo en un emulador, en un Spectrum, o en el propio BasIn para que funcione.

Vamos, que lo que estás haciendo es programar en BASIC de Spectrum, pero en un entorno más agradable.


Si, bueno...eso lo tenia mas o menos claro. Me referia si ha cambiado el Basic del Spectrum en estos años. Osea, si se ha introducido algun cambio en la estructura del lenguaje. Yo utilizo Python. Y desde que se creo, ha sufrido modificaciones. Me gustaria probar algunos scripts que tengo con Python con el Basic de nuestro Spectrum. Aunque claro, algunas cosas no se podran hacer. Por de pronto, creo, que no se pueden anidar ciclos FOR. Y los IFs tampoco tiene clausulas tipo ELSE.

Para resumir, si yo cojo una revista o libro de la epoca del Spectrum ¿Podre usar el BASin o emuladores? ¿O por contra me dara error de sintaxis?

Re: ¿El Basic con BASin es una nueva versión del lenguaje?

Publicado: 28 Dic 2016, 19:46
por zup
Lo dudo mucho. Los emuladores replican exactamente la máquina, así que si el Spectrum lo tragaba el emulador tiene que tragarlo también.

Los principales problemas que puedes tener:
- El "tokenizer" (esto también pasaba en el Spectrum 128k). El "tokenizer" es la rutina que traduce palabras reservadas en tokens. Si intentas escribir una línea tipo 10 LET poke=23609, tanto BASIN como un Spectrum en modo 128k te protestarán porque creen que ese poke es una palabra reservada. (Ojo, si esto lo escribes en un 48k, lo salvas y lo ejecutas en un 128k, funcionará bien). Ejemplo práctico... la base de datos que publicó Microhobby en el número 203 no puede ser tecleada por completo en un 128k.
- Que el programa emplee rutinas en c/m. No sé hasta qué punto BASIN lo soporta.

Ahora bien, aunque el BASIC de Sinclair no evolucionó demasiado, hay otros "dialectos" del BASIC del Spectrum que a veces incluyen mejoras. Por ejemplo, tienes el SE BASIC y el de Boriel. El primero se ejecuta con una ROM modificada del Spectrum, y el segundo se puede compilar a código máquina. Ambos introducen variaciones/extensiones que pueden hacer que los programas escritos en estos BASIC no funcionen en un Spectrum (o emulador) tal cual. Tampoco sé si BASIN tragaría directamente con programas escritos en estos BASIC.

Re: ¿El Basic con BASin es una nueva versión del lenguaje?

Publicado: 30 Dic 2016, 09:14
por na_th_an
Spectro escribió:
na_th_an escribió:BasIn es un entorno integrado con emulador toqueteado para ayudarte a programar en BASIC del Spectrum. El resultado tendrás que ejecutarlo en un emulador, en un Spectrum, o en el propio BasIn para que funcione.

Vamos, que lo que estás haciendo es programar en BASIC de Spectrum, pero en un entorno más agradable.


Si, bueno...eso lo tenia mas o menos claro. Me referia si ha cambiado el Basic del Spectrum en estos años. Osea, si se ha introducido algun cambio en la estructura del lenguaje. Yo utilizo Python. Y desde que se creo, ha sufrido modificaciones. Me gustaria probar algunos scripts que tengo con Python con el Basic de nuestro Spectrum. Aunque claro, algunas cosas no se podran hacer. Por de pronto, creo, que no se pueden anidar ciclos FOR. Y los IFs tampoco tiene clausulas tipo ELSE.

Para resumir, si yo cojo una revista o libro de la epoca del Spectrum ¿Podre usar el BASin o emuladores? ¿O por contra me dara error de sintaxis?


Creía que había contestado a esa pregunta con mi mensaje :D

BasIn sirve para crear programas en el dialecto de BASIC conocido como Sinclair BASIC que se ejecutan en un ZX Spectrum, o sea, que los ejecuta el intérprete que hay en la ROM del Spectrum. El intérprete de la ROM no ha cambiado en todos estos años, sólo se añadieron dos comandos nuevos en los modelos de 128K. Puedes coger cualquier revista o manual de la época y programar sin problemas.

BasIn es sólo un IDE, no compila ni interpreta. De la ejecución se encarga un Spectrum normal y corriente de los de toda la vida :)

Sí se pueden anidar ciclos FOR en Sinclair BASIC. No existen construcciones ELSE. Sí se pueden "anidar" IFs de forma limitada (porque los IFs van todos en una misma linea, pero nada te impide colocar otro IF tras el THEN)

Re: ¿El Basic con BASin es una nueva versión del lenguaje?

Publicado: 30 Dic 2016, 12:31
por Spectro
na_th_an escribió:
BasIn es sólo un IDE, no compila ni interpreta. De la ejecución se encarga un Spectrum normal y corriente de los de toda la vida :)



Bueno, algo si ejecuta el BASin (ahora he descargado el BASinC que tiene mejor pinta). Lo digo por que cuando creamos algun codigo con el BASin, si lo ejecutamos, se ve el resultado en otra ventana del mismo programa. E incluso podemos introducir datos si usamos algun INPUT en nuestro codigo.

Re: ¿El Basic con BASin es una nueva versión del lenguaje?

Publicado: 30 Dic 2016, 12:57
por na_th_an
BasIn trae un emulador parcheado para ejecutar, usando la ROM del Spectrum, tu programa. Pero sigue siendo el intérprete de la ROM del Spectrum, ejecutándose en un espacio de memoria de 48K y a la velocidad de un Spectrum.

También tienes la opción de juguetear con SpecBas, del mismo autor. https://sites.google.com/site/pauldunn/home Esta vez se trata de un intérprete para plataformas modernas de un dialecto de BASIC basado en Sinclair BASIC. En este intérprete sí podrás usar estructuras más complejas como DO...LOOP, DO...WHILE, procedimientos, tipos de datos, manejo de cadenas con LEFT$, RIGHT$, etc.