Decepción con el BASIC del Spectrum

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Decepción con el BASIC del Spectrum

Mensajepor mcleod_ideafix » 16 Jun 2016, 12:15

zup escribió:Tres preguntas...
- ¿Por qué precisamente Mallard BASIC y no otros compiladores BASIC?

Mallard BASIC no es un compilador sino un intérprete. No conozco más intérpretes de BASIC aparte del propio que trae la ROM y éste, que viene con el CP/M.

zup escribió:- ¿Alguien ha hecho una comparativa de BASICs para Spectrum?

De los interpretados, la estás viendo :D De los compilados, que yo sepa no la hay. Quizás alguna revista publicara algo en la época. Ni idea.

zup escribió:- ¿Penalizan mucho las interrupciones del +2A/+3 la ejecución del BASIC con respecto al 48k pelado? (Imagino que las del 128k también, pero menos)
[/quote]
Poco... 1730 ciclos de reloj por cada 70908 ciclos (lo que dura un frame). Eso es 0,48774 milisegundos por cada 19,99154 milisegundos. O dicho de otra forma, en cada segundo, las interrupciones roban 24,3978 milisegundos de tiempo.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Uto
MSX Turbo R
MSX Turbo R
Mensajes: 444
Registrado: 28 Abr 2014, 15:50
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: TV Games/Pong Clone
Gracias dadas: 5 veces
Gracias recibidas: 26 veces

Re: Decepción con el BASIC del Spectrum

Mensajepor Uto » 16 Jun 2016, 12:36

zup escribió:Tres preguntas...
- ¿Por qué precisamente Mallard BASIC y no otros compiladores BASIC?

Supongo que porque hablan de intérpretes de BASIC, no de compiladores. Si usas compiladores lo que ejecutas no es BASIC, sino C/M.

- ¿Alguien ha hecho una comparativa de BASICs para Spectrum?

Sería un artículo interesante desde luego, características, posibilidades, y por que no, velocidad de ejecución (pero separando compiladores de intérpretes claro). Seguro que hay más, pero yo recuerdo el Colt como compilador y el Beta Basic, que creo que era intérprete ¿no? (me falla ya la memoria)
http://www.ngpaws.com
Twitter: @uto_dev

Avatar de Usuario
jltursan
Amiga 2500
Amiga 2500
Mensajes: 4028
Registrado: 13 Oct 2006, 19:45
Sistema Favorito: MSX
primer_sistema: Dragon
Ubicación: Serracines, Madrid, España
Gracias dadas: 57 veces
Gracias recibidas: 157 veces
Contactar:

Re: Decepción con el BASIC del Spectrum

Mensajepor jltursan » 16 Jun 2016, 16:31

Pues es una tontá; pero hablando del resultado del MSX-BASIC, se puede rascar una pizca definiendo las variables como de precisión simple (en lugar de doble por defecto). El resultado es de 1,26 segundos, 0,02 mejor :-)

No se si sería justo dado que no conozco la precisión de los otros BASIC; pero la del MSX tiene fama por lo excesiva para un lenguaje con la orientación del BASIC.

dancresp
Amiga 1200
Amiga 1200
Mensajes: 1393
Registrado: 23 Dic 2008, 17:53
Sistema Favorito: MSX
primer_sistema: ZX81
Primera consola: Atari 2600
Gracias dadas: 3 veces
Gracias recibidas: 20 veces

Re: Decepción con el BASIC del Spectrum

Mensajepor dancresp » 16 Jun 2016, 17:15

jltursan escribió:Pues es una tontá; pero hablando del resultado del MSX-BASIC, se puede rascar una pizca definiendo las variables como de precisión simple (en lugar de doble por defecto). El resultado es de 1,26 segundos, 0,02 mejor :-)

Me he peleado bastante con el MSX-BASIC y sin duda es el más equilibrado, ya que aplicado a juegos, lo que pierde en velocidad lo ganas sobradamente si usas SPRITES.

Yo mis tres ejemplos de los que más orgulloso me siento son "Star Wars - The Empire Strikes Back", "K.C. Munchkin" y el "Jaw Breaker".

No creo que exista ningún BASIC de 8 bits que mueva estos juegos con esa velocidad y esa suavidad.

La única duda es algún equipo que lleve el mismo chip de vídeo (¿ MTX-512 ?)

Añado los enlaces a las páginas de ZdP donde podéis bajar el ".cas", pero por desgracia todas las imágenes están corrompidas, y he intentado subir imágenes a este post pero no me deja, y eso que ocupan menos de 50KB. ¿Que pasa?

Videos:



Buscando la IP de la W.O.P.R.

Avatar de Usuario
jltursan
Amiga 2500
Amiga 2500
Mensajes: 4028
Registrado: 13 Oct 2006, 19:45
Sistema Favorito: MSX
primer_sistema: Dragon
Ubicación: Serracines, Madrid, España
Gracias dadas: 57 veces
Gracias recibidas: 157 veces
Contactar:

Re: Decepción con el BASIC del Spectrum

Mensajepor jltursan » 16 Jun 2016, 19:03

Jeje, grandisimos ejemplos. Tú mejor que nadie conoce el resultado de hacer un "DEFINT A-Z" al comienzo del programa (si uno se lo puede permitir, claro).

Como curiosidad, la práctica totalidad de equipos japoneses llevan un Microsoft BASIC, más o menos parecido al del MSX (¿por qué, oh, porqué Microsoft, no incluiste en el MSX-BASIC 1 los comandos PUT y GET gráficos que tiene todo el mundo?). Los trucos del DEFINT o de los NEXT obran maravillas.

En fin, por no desvirtuar más el hilo, el BASIC del Spectrum siempre me pareció divertido, poco ortodoxo y gamberro, muy Perl. No conozco muchos dialectos BASIC que permitan emplear una variable como salto de un GOTO :D. Y efectivamente, la pantalla es un auténtico lastre, especialmente cuando no está orientada a imprimir caracteres (modo texto específico) o ni siquiera es fácil volcarlos gráficamente (una organización optimizada como la del PCW)

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Decepción con el BASIC del Spectrum

Mensajepor mcleod_ideafix » 16 Jun 2016, 21:54

jltursan escribió:el BASIC del Spectrum siempre me pareció divertido, poco ortodoxo y gamberro, muy Perl. No conozco muchos dialectos BASIC que permitan emplear una variable como salto de un GOTO :D

A mi las cosas que más me gustan del BASIC del Spectrum (y que he usado y abusado durante el tiempo que lo usé) son:
- Los GOTOs con variable
- El manejo de cadenas al modo "procrusteano" (bueno, en realidad me refiero a la notación para hacer el slicing de cadenas)
- La potencia de VAL que te permite evaluar una expresión desde el BASIC
- Ditto con VAL$ (aunque ésta la he usado bastante menos)
- Las expresiones condicionales, al estilo del operador ternario ?: del lenguaje C

Todas ellas son cosas que no he visto en otros intérpretes de BASIC.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

dancresp
Amiga 1200
Amiga 1200
Mensajes: 1393
Registrado: 23 Dic 2008, 17:53
Sistema Favorito: MSX
primer_sistema: ZX81
Primera consola: Atari 2600
Gracias dadas: 3 veces
Gracias recibidas: 20 veces

Re: Decepción con el BASIC del Spectrum

Mensajepor dancresp » 16 Jun 2016, 23:06

mcleod_ideafix escribió:A mi las cosas que más me gustan del BASIC del Spectrum (y que he usado y abusado durante el tiempo que lo usé) son:
- Los GOTOs con variable
- El manejo de cadenas al modo "procrusteano" (bueno, en realidad me refiero a la notación para hacer el slicing de cadenas)
- La potencia de VAL que te permite evaluar una expresión desde el BASIC
- Ditto con VAL$ (aunque ésta la he usado bastante menos)
- Las expresiones condicionales, al estilo del operador ternario ?: del lenguaje C

Todas ellas son cosas que no he visto en otros intérpretes de BASIC.

Totalmente de acuerdo.

En el Spectrum he abusado más o menos poco, pero en el ZX-81 (que tiene una versión del BASIC reducida) es lo que me ha permitido hacer lo que he llegado a hacer y que en otros intérpretes habría sido más laborioso.

De tu lista me quedo son el tratamiento de cadenas y la versatilidad de la función VAL.
Bueno, me quedo con todo...
Buscando la IP de la W.O.P.R.

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 2970
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 68 veces
Gracias recibidas: 326 veces
Contactar:

Re: Decepción con el BASIC del Spectrum

Mensajepor zup » 17 Jun 2016, 11:50

dancresp escribió:Me he peleado bastante con el MSX-BASIC y sin duda es el más equilibrado, ya que aplicado a juegos, lo que pierde en velocidad lo ganas sobradamente si usas SPRITES.


Esas diferencias en velocidad gráfica y lo del texto son dos cosas bastante interesantes. Habría que lanzar una serie de tests del estilo:
- Cálculo matemático (entero y flotante).
- Escritura de texto en pantalla.
- Acceso a variables.
- Salida gráfica.
- Todo combinado.

Algunas ideas:
- ¿Hay equipos que diferencien números enteros y coma flotante? Si usas Pascal o C, sí que hay diferencias pero no estoy seguro de que algún BASIC los diferencie.
- La salida gráfica tendría que ser (en principio) con primitivas tipo PLOT y DRAW, que son los puntos comunes entre casi todos los BASIC.
- Los tests 1 y 4 se podrían combinar dibujando fractales, aunque el tiempo gastado en dibujar puntos va a ser una nimiedad comparado con el tiempo gastado en cálculos.
- El acceso a las variables también podría ser importante. Un test sería crear una matriz enorme, llenarla y hacer un gran número de intercambios al azar. Se podría intentar combinar con el test 1 haciendo transformaciones u ordenaciones sobre ella, pero para este tipo de tests habría que hacer una matriz "estándar" para que el contenido no influya en el test.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

Avatar de Usuario
antligen
Spectrum 48K Plus
Spectrum 48K Plus
Mensajes: 38
Registrado: 16 Ene 2014, 19:44
Sistema Favorito: Spectrum +2
primer_sistema: Spectrum +2
consola_favorita: Sony PlayStation 1
Primera consola: Atari 2600
Ubicación: Castellón
Gracias dadas: 6 veces
Gracias recibidas: 1 vez
Contactar:

Re: Decepción con el BASIC del Spectrum

Mensajepor antligen » 18 Jun 2016, 15:46

Pues que lástima.
Algunos en nuestra infancia intentamos (y algunas veces conseguimos) programar en BASIC algún juego que aunque rudimentario pudiera tener su gracia e incluso ser entretenido, pero siempre estaba el tema de la lentitud y muchos no estábamos por la labor de meternos en el código máquina. Si el BASIC del Spectrum hubiera tenido una velocidad similar a otros sistemas equiparables de la época nuestros juegos BASIC podrían haber sido bastante más resultones.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 53 veces
Contactar:

Re: Decepción con el BASIC del Spectrum

Mensajepor mcleod_ideafix » 19 Jun 2016, 14:54

antligen escribió:Pues que lástima.
Algunos en nuestra infancia intentamos (y algunas veces conseguimos) programar en BASIC algún juego que aunque rudimentario pudiera tener su gracia e incluso ser entretenido, pero siempre estaba el tema de la lentitud y muchos no estábamos por la labor de meternos en el código máquina. Si el BASIC del Spectrum hubiera tenido una velocidad similar a otros sistemas equiparables de la época nuestros juegos BASIC podrían haber sido bastante más resultones.


Puede que no fuera rápido, pero se pueden hacer juegos interesantes. Radastan organizó varias ediciones de concurso de juegos en BASIC, y hay entre ellos auténticas virguerías. Echale un vistazo...
http://www.bytemaniacos.com/?page_id=2

PD: yo participé con tres programas: una versión en BASIC puro de la maquinita "Fire!" de Nintendo, un juego de laberintos inspirado en el programa "Leo contra todos", y un programa para ayudarte a resolver Sudokus. Los dos primeros iban bien con la lentitud del BASIC. El tercero quizás fue el que más se resintió, por motivos obvios :D
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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