DivulgaciónRetroescena

Boriel Basic para ZX Spectrum

¿ Sabes programar con Boriel Basic ?

4.9
(7)

Con Boriel Basic y este libro, ya no hay escusas para no desarrollar juegos para ZX Spectrum y Next.

Corren buenos tiempos

Parece que corren buenos tiempos en la escena del Spectrum a nivel nacional en cuanto a producción de libros técnicos se refiere. Este año se han publicado dos libros de programación para nuestra calculadora más querida (no se me enfaden, mi alma es spectrumera): el primero de ellos nos invita a desarrollar un juego en ensamblador para ZX Spectrum y ha sido escrito por nuestro compañero Juan Antonio Rubio García (yo mismo, queda raro hablar de uno mismo en tercera persona), y el que acaba de salir, que nos enseña a programar con Boriel Basic, un Basic compilado obra de José Rodríguez «Boriel». En este último también he colaborado mínimamente, escribiendo un prólogo y revisando el texto en busca de posibles errores (espero que no se hayan escapado muchos).

Boriel Basic

¿Qué es Boriel Basic?

Boriel Basic no es algo nuevo, José Rodríguez lleva mucho tiempo trabajando en ello.

Aunque está basado, como no puede ser de otra manera, en el Basic de Sinclair, en la práctica no es lo mismo, Boriel Basic no es solo un compilador de Basic, es todo un lenguaje; José Rodríguez ha reescrito muchos de los tokens del Basic de Sinclair como PRINT, para que sean más óptimos y rápidos, lo cual es transparente para el programador ya que seguirá usando PRINT tal y como lo haría con el Basic de Sinclair.

El compilador de Boriel convierte a código ensamblador el código fuente Boriel Basic, contenido en un archivo de texto plano, y lo ensambla convirtiéndolo en código máquina; el resultado en cuanto al rendimiento de los programas es asombroso.

Boriel Basic posee múltiples librerías para manejo de sprites, scroll, desarrollar para ZX Spectrum Next, etc.

Para terminar esta pequeña introducción a Boriel, señalar que en algunos foros se ha abierto la posibilidad de que Boriel Basic sea adaptado para generar código para otras máquinas, como nuestro amado Amstrad CPC o MSX, por nombrar las que comparten microprocesador, aunque haría falta la ayuda de personas que controlen estos sistemas.

Multiplataforma

Técnicamente, Boriel Basic ya es multiplataforma, se puede programar para ZX Spectrum clásico o para ZX Spectrum Next. Yo he estado haciendo pruebas y los resultados son excelentes, es como si realmente los programas se hubieran desarrollado en ensamblador, y lo más importante, por un buen desarrollador.

Sería realmente alucinante que se llevara a otras plataformas como Amstrad CPC, Amstrad Plus, MSX, MSX2, etc., pero que esto no sirviera para volver a la técnica del port directo, por favor, no volvamos otra vez ahí.

Boriel Basic para ZX Spectrum. Manual para torpes… y para los que no lo son tanto

Hemos llegado al motivo de este artículo, la publicación del libro «Boriel Basic para ZX Spectrum. Manual para torpes… y para los que no lo son tanto», escrito por Juan Segura Duran (Duefectu), y que tiene como objetivo enseñarnos a desarrollar con Boriel Basic tanto para ZX Spectrum (todos los modelos), como para ZX Spectrum Next.

Y cuando digo que también podréis aprender a desarrollar para ZX Spectrum Next, no es hablar por hablar, Duefectu ya tiene publicado algún juego para el sistema.

Boriel Basic portada
Boriel Basic

¿Qué encontraréis en este libro?

La mejor y más sencilla manera de ilustrar el contenido de un libro es viendo su índice, así que vamos allá.

  • 0. Prólogos
    • Juan Antonio Rubio García
    • José Rodríguez «Boriel»
    • Javier Ortiz Carrasco – El Spectrumero
    • Juan Segura Duran – Duefectu
      • Como empecé en esto del Spectrum
      • ¿Por qué Boriel Sinclair Basic?
  • 1. Introducción
    • Agradecimientos
    • Objetivos del libro
    • ¿A quién va dirigido este libro?
    • Conceptos asumidos
  • 2. Calentando motores
    • El tractor para arar, el Twingo para la ciudad y el Ferrarri para la autopista
    • El compilador
    • El IDE
      • Bloc de notas, Notepad++ y similares
      • ZX Basic Studio
      • Visual Studio Code
    • El emulador
    • Gráficos
      • ZX Paintbrush
      • ZX Graphics
      • ResourceDesigner
      • Remy Sharp
    • Sonido
      • Beepola
      • BeepFX
      • Vortex Tracker
      • WYZTracker
      • AYFX
    • Otras herramientas
      • Tapir
      • TAPonDsk
  • 3. El compilador Boriel Basic
    • Compilando nuestro primer programa
    • Parámetros de la línea de comandos
    • Ejemplos de compilación
      • ¿En que dirección compilar?
      • Ajustando el HEAP para reducir memoria
      • Optimizando nuestro código
      • El mapa de memoria
      • Generando el ensamblador
  • 4. Variables y tipos
    • Los nombres de las variables
    • Tipos de variables
    • Variables numéricas
      • Los límites
      • Operaciones entre tipos de datos diferentes
    • Variables de texto (alfanuméricas)
    • Matrices
      • Trabajando con matrices
      • Matrices bidimensionales
      • Matrices tridimensionales
  • 5. El lenguaje Boriel Basic
    • Números de línea vs etiquetas
    • Condiciones (IF… END IF)
      • Condiciones
      • Condiciones avanzadas
      • Optimizando condiciones
    • Bucles e iteraciones
      • Bucle con GOTO
      • FOR… NEXT
      • WHILE… WEND
      • DO… LOOP
      • Saliendo de los bucles de manera forzada
      • Excepciones durante la iteración
    • Subrutinas y Funciones
      • Subrutinas (SUB)
      • Funciones (FUNCTION)
      • Variables locales y ámbitos
    • Librerías
    • Directivas del compilador
      • #INCLUDE {fichero}
      • #DEFINE {nombre} [{valor}]
      • #IFDEF… #ELSE… #ENDIF
      • #PRAGMA
    • Ensamblador
      • Utilizando parámetros
      • Compartiendo variables
  • 6. La memoria
    • ZX Spectrum 16K, 48K y +
      • ROM
      • RAM
      • Memoria contenida
    • ZX Spectrum 128K, +2 y +3
      • ROM
      • RAM
      • Conmutando que es gerundio
      • Simple radical
      • El mundo real
    • ZX Spectrum Next / N-GO
      • Conmutando en Next
  • 7. La pantalla en el ZX Spectrum
    • ZX Spectrum «clásico»
      • Borde
      • Pixels
      • Atributos
      • Color clash
    • GDUs / UDGs
      • GUDs con ZX Basic Studio y ZXGraphics
    • Fuentes
      • ASCII
      • Fuentes con ZX Basic Studio y ZXGraphics
      • Múltiples bancos y mucha imaginación
    • Sprites
      • PutChars
      • ¡Moviendo el esqueleto!
    • Tiles y mapas
      • Detección de colisiones con el mapeado
    • Sprites con máscara
      • Como funciona la máscara
    • Scroll al píxel
    • Scroll al carácter
    • Doble buffer
    • Pantallas comprimidas
    • Todo junto en la olla
      • Los gráficos
      • El código
  • 8. La pantalla en el Next/N-GO
    • Layer 2
    • Sprites
      • Atributo 2 del sprite
      • Atributo 4 del sprite
    • Tiles y mapas
    • Scroll
    • Overlay
  • 9. Colisiones
    • Colisión por límites de área
    • Colisiones por atributo
    • Colisiones por mapa
    • Colisiones (y movimiento) al píxel
      • Sprites
      • Fuente personalizada
      • El código
      • Detección de colisiones
  • 10. Controlando el Spectrum
    • El teclado
      • Detección de múltiples teclas pulsadas
      • Redefinir teclas
    • El joystick
      • Interface o norma
      • Atari
      • Sinclair
      • Protocolos
      • Selección de protocolo en Next
      • Kempston
      • Sinclair
      • Cursor joystick
    • El ratón
      • Recursos gráficos
      • El código
  • 11. Las interrupciones
    • IM 2
    • Un horizonte de interrupciones
  • 12. El Beeper
    • Codificando el sonido
      • Tono
      • Duración
      • Convirtiendo una partitura
    • Efectos de sonido simples
    • Efectos de sonido con BeepFX
      • Compilando los efectos
      • Reproduciendo efectos desde Boriel
    • Música con Beepola
      • Motores soportados por Beepola
      • Estructura de una canción
      • Componiendo
      • Compilando la canción
      • Ejemplo prácticos con Beepola
    • Un reproductor estándar de Beepola
      • Aislando el motor
      • Añadiendo una canción
      • Añadiendo más canciones
      • Consumiendo la librería
  • 13. El chip AY-3-8912
    • El chip AY-3-8912 por dentro
    • ¡Un piano!
      • Los gráficos
      • El código
    • Música con Vortex Tracker II
      • Usando Vortex Tracker
      • Exportando a Boriel Basic
    • Efectos de sonido con AYFX
      • Funcionamiento de AYFX
      • Efectos de sonido en Boriel Basic
  • 14. Arquitectura
    • Consejos de un perro viejo y apaleado
    • Diagrama de un juego típico
    • El mapa de memoria de nuestro juego
    • Un juego típico de 48K
    • Aprovechando el 128K (paginación de memoria)
      • Siendo creativos
      • Módulo de control (Control.bas)
      • Variables comunes (Vars.bas)
      • Módulo de menú (Menu.bas)
      • Módulo de juego (Juego.bas)
      • Módulo de minijuegos (Minijuego.bas)
      • Módulo Game Over (GameOver.bas)
      • Compilando todo esto
    • Multicarga
    • ZX Spectrum Next (carga dinámica desde disco)
  • 15. Creando el producto final
    • Cinta de casete
      • Cargador Basic
      • La pantalla de carga
      • Nuestro programa
      • Cargas adicionales
      • Creando el fichero Master.tap
      • Editando nuestro .tap
    • Creando nuestro disco para +3
    • Tarjeta SD para Next/N-GO
    • Distribución
  • Anexo A: librerías incluidas con Boriel Basic
  • Anexo B: directivas predefinidas
    • #DEFINE
    • #PRAGMA
  • Anexo C: códigos de las teclas
  • Anexo D: decimal, binario y hexadecimal
    • Conversiones entre sistemas
      • Binario a decimal
      • Decimal a binario
      • Hexadecimal a decimal y binario
      • Decimal a hexadecimal
  • Anexo E: operaciones binarias
    • Puertas lógicas
      • NOT
      • AND
      • OR
      • XOR
      • Aplicación práctica
    • Desplazamientos bit a bit
  • Bibliografía y atribuciones
  • Recursos
    • Boriel Basic
    • IDEs
      • ZX Basic Studio
      • Visual Studio Code
      • KliveIDE
    • Emuladores
      • ZXSpin
      • ZEsarUX
      • CSpect
      • Retro Virtual Machine
    • Sonido
      • Beepola
      • BeepFX
    • Gráficos
      • ZXPaintBrush
      • Gimp
    • Utilidades varias
      • Remy Sharp
      • TAPonDSK
      • Tapir
      • ZX0

Largo verdad, menudo pedazo de índice. No en vano el libro tiene 692 páginas y, según el propio autor, se ha quedado material fuera, así que es posible que tengamos un segundo volumen.

Con este índice os podéis hacer una idea de todo lo que contiene este libro, que es mucho, y seguro que de aquí salen muchos juegos para Spectrum.

¿Dónde comprar el libro?

El libro se ha autopublicado a través de Amazon y está disponible en tres ediciones:

  • Tapa blanda: 692 páginas, con unas dimensiones de 15.24 x 3.96 x 22.86 cm (aproximadamente A5) y un precio de 22,99€.
  • Tapa dura: 549 páginas, con una dimensiones de 17.78 x 3.63 x 25.4 cm (aproximadamente A4) y un precio de 44,99€.
  • Kindle: 766 páginas, con un tamaño de 31 MB y un precio de 9,09€.

Aunque el número de páginas es distinto, el contenido de las tres ediciones es el mismo, el número de páginas cambia debido al tamaño de las mismas.

Los precios son de Amazon España, en el resto de Amazon pueden variar dependiendo de los impuestos aplicados. El tapa blanda está en casi todos los Amazon, el tapa dura no y en México, India y Brasil solo está en Kindle (cosas de Amazon).

En el siguiente enlace puedes leer una muestra del libro, como el prólogo de un servidor.

Conclusión

Puedo hablar del libro en primera persona, ya que me lo he leído entero antes de que se publicara, y os puedo decir que es bastante asequible si lo que quieres es aprender a programar juegos para ZX Spectrum o Next. En muy poco tiempo podrás ver avances y como tus ideas van tomando forma.

Yo, como sabéis, soy más de ensamblador. Cuando estuve revisando el libro, estuve haciendo pruebas de las misma cosas desarrolladas en Boriel Basic y en ensamblador, y me sorprendió muy gratamente Boriel Basic, hasta el punto de hacerme dudar si cambiar de lenguaje, aunque la cabra siempre tira para el monte.

Otra cosa que puedes hacer en Boriel Basic es incrustar código ensamblador, de igual modo que se hace en C, así que todo son ventajas.

La optimización es muy buena, y pese a incluir librerías en tu código, solo compila aquellas rutinas que se usan, con el ahorro tan necesario que eso supone en estas máquinas.

Si te interesa aprender a programar para Spectrum, poder hacer un juego con scroll y pasártelo en grande, no lo dudes, este es tu libro, tu autorregalo perfecto para estas fechas.

Galería de imágenes

  • Boriel Basic
  • Boriel Basic
  • Boriel Basic
  • Boriel Basic
  • Boriel Basic

¿Te ha Resultado útil este artículo?

Ayúdanos a mejorar y danos tu opinión:

Mostrar más

2 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Publicaciones relacionadas

Botón volver arriba