Beta BASIC es un intérprete de BASIC para el microordenador Sinclair Research ZX Spectrum , escrito por el Dr. Andrew Wright [ 2 ] [ 3 ] en 1983 y vendido por su empresa de software unipersonal BetaSoft. [ 1 ] [ 4 ] [ 5 ] BetaSoft también produjo un boletín/revista periódico, BetaNews.
Originalmente comenzó como un conjunto de herramientas BASIC , pero con el tiempo se convirtió en un reemplazo completo.
Instalaciones
Beta BASIC reemplazó por completo a Sinclair BASIC , que, como era habitual en aquella época, también era el sistema operativo que proporcionaba una interfaz de línea de comandos (CLI). De este modo, Beta BASIC ofrecía una CLI y un editor nuevos y mejorados.
Admitía el peculiar sistema de entrada de teclas únicas de Sinclair para las palabras clave de BASIC, pero también permitía escribirlas letra por letra. Esto eliminaba la necesidad de memorizar las combinaciones de teclas, a veces complejas, necesarias para introducir palabras clave de BASIC menos comunes . Además, el sistema de entrada de teclas únicas se amplió asignando los caracteres gráficos del Spectrum a las nuevas palabras clave de Beta BASIC. Para pasar de la entrada de palabras clave a la entrada escrita, bastaba con pulsar un espacio, lo que hacía que el cursor cambiara de K (palabra clave) a L (minúscula) o C (mayúscula). ( KEYWORDSTambién se podía usar la instrucción para modificar este comportamiento, por ejemplo, desactivando el modo K).
Al listar el código, el editor podía formatearlo automáticamente de forma opcional . Si bien esto se podía hacer manualmente en Sinclair BASIC, la indentación automática tiene la ventaja de resaltar ciertos tipos de errores de codificación, principalmente aquellos relacionados con el cierre incorrecto de las estructuras. Otras mejoras en la edición incluían el resaltado automático del indicador de la línea actual (un pequeño ajuste, pero desproporcionadamente útil) y la posibilidad de mover el cursor hacia arriba y hacia abajo, además de hacia la izquierda y hacia la derecha, lo que resultaba muy práctico al editar líneas largas. Combinadas con la visualización de 64 columnas (véase la sección "Nueva funcionalidad" más abajo), estas mejoras convirtieron a Beta BASIC en un entorno mucho más productivo, incluso para programar en Sinclair BASIC estándar sin utilizar las extensiones de lenguaje de BetaSoft.
Beta BASIC también era un intérprete independiente , que prescindía de la ROM del Spectrum , a la que utilizaba como biblioteca. Ocasionalmente, realizaba llamadas a la ROM para acceder a funciones que no merecía la pena reimplementar, ya fuera porque las rutinas de la ROM eran suficientemente buenas o por cuestiones de espacio: Beta BASIC tenía que ejecutarse en los 48 KB de memoria disponibles en un Spectrum y aún así dejar espacio para el código del usuario.
Cambios de idioma
Para su época, Beta BASIC era sofisticado. Ofrecía programación estructurada completa con procedimientos y funciones con nombre , incluyendo variables locales , lo que permitía programar mediante recursión . Si bien admitía números de línea, estos no eran necesarios y ofrecía un modo de funcionamiento que suprimía por completo su visualización.
En los ordenadores Spectrum de 128 KB, Beta BASIC ofrecía funciones ampliadas que permitían a los programadores acceder a la memoria adicional del ordenador, que se presentaba en forma de disco RAM . Además de permitir al programador guardar y cargar programas, bloques de memoria o imágenes de pantalla en el disco RAM y catalogar su contenido, Beta BASIC también proporcionaba comandos para la creación y el uso de matrices almacenadas en el disco RAM, lo que permitía a los programas que se ejecutaban en los aproximadamente 30 KB de memoria libre del Spectrum manipular matrices de casi 80 KB, una cantidad significativa de espacio adicional para los estándares de la década de 1980 y superior a casi cualquier otro BASIC de 8 bits, que generalmente estaban limitados a 64 KB de programa y datos combinados.
Nueva funcionalidad
Beta BASIC también controlaba directamente la pantalla de 256x192 píxeles del Spectrum , eliminando las limitaciones de la visualización de texto de 32 columnas de la ROM. Beta BASIC ofrecía fuentes de pantalla escalables , con una fuente suave especial de tan solo 4 píxeles de ancho, pero aún legible. Esto significaba que Beta BASIC podía mostrar 64 columnas de texto en la pantalla, lo que la hacía más comparable a las pantallas tradicionales de 80 columnas de los terminales de ordenador y las máquinas CP/M típicas, tanto para aficionados como para profesionales . (Algunos ordenadores domésticos de los años 80 también podían mostrar 80 columnas). Si el usuario estaba dispuesto a tolerar que los caracteres se mostraran sin espacios entre ellos, era posible una pantalla de 85 columnas. Esto no era muy legible, pero permitía portar fácilmente aplicaciones BASIC diseñadas para una pantalla de 80 columnas. El tamaño del texto se podía controlar mediante programación, de modo que parte de la pantalla de un programa podía usar texto de 64 columnas, parte de 32 columnas y tamaños intermedios ampliados o reducidos.
Limitaciones
Beta BASIC sufría de algunas limitaciones. Al igual que otros microprocesadores de 8 bits, el Spectrum solo podía direccionar 64 KB de memoria contigua debido a las restricciones de direccionamiento de la CPU Zilog Z80 del Spectrum . De esta memoria, 16 KB eran ocupados por la ROM de Sinclair BASIC, dejando 48 KB para la RAM. Parte de esta memoria se destinaba a la pantalla, así como a las áreas utilizadas para almacenar las estructuras de datos internas del intérprete. Beta BASIC ocupaba entre 11 y 12 KB del resto, dejando en algunos casos tan solo unos 20 KB para los programas de usuario.
La sustitución del editor de Sinclair impidió el uso del editor BASIC a pantalla completa de la ROM Spectrum de 128 KB. No existía ningún compilador para el código Beta BASIC, y los compiladores Sinclair BASIC existentes, como HiSoft BASIC, no podían manejar las palabras clave y funciones extendidas de Beta BASIC.
Otra limitación que aún persistía en Sinclair BASIC era que solo se podían usar nombres de variables de una sola letra para cadenas, matrices y otros tipos.
Muy pocos otros BASIC de 8 bits incluían soporte para programación estructurada; el más utilizado era BBC BASIC . En Beta BASIC, los procedimientos con nombre no necesitaban ser llamados con la palabra clave PROC como en BBC BASIC, convirtiéndose así en nuevas palabras clave del lenguaje y permitiendo su extensión. Sin embargo, BBC BASIC era considerablemente más rápido: el intérprete de BASIC más veloz de la época. Beta BASIC no era especialmente rápido, aunque incluía reemplazos más rápidos para rutinas ROM particularmente lentas, como el código para dibujar círculos y arcos.
Versiones
- BetaBasic V1.0 - 1983 [ 4 ]
- BetaBasic V1.8 - 1984 [ 4 ]
- BetaBasic V1.9 - 1984 [ 4 ]
- BetaBasic V3.0 - 1985 [ 4 ]
- BetaBasic V3.1 - 1985 [ 4 ]
- BetaBasic V4.0 - 1987 [ 4 ]
Se produjeron versiones especiales para los usuarios de Interface 1 y ZX Microdrive , y posteriormente también para aquellos con las interfaces de disco Opus Discovery , DISCiPLE y PlusD . Durante un tiempo, también se consideró una versión para Amstrad Spectrum +3 , pero Wright descartó el proyecto.
Desarrollo posterior
Durante el desarrollo de su sofisticado sucesor del Spectrum, el SAM Coupé , Alan Miles y Bruce Gordon de Miles Gordon Technology se acercaron a BetaSoft y contrataron a Wright para que proporcionara el BASIC para la nueva máquina. Wright proporcionó un intérprete BASIC completo que se basaba ampliamente en Beta BASIC, pero con una estructura diferente, ya que se trataba de un lenguaje independiente y no contaba con una ROM de Sinclair a la que recurrir o con la que trabajar. SAM BASIC [ 6 ] era en gran medida compatible con Beta BASIC y funcionaba de manera muy similar, excepto en áreas donde el hardware del SAM era significativamente diferente, como la pantalla y la memoria extendida. Posteriormente, BetaSoft lanzó una extensión para SAM BASIC, llamada MasterBASIC. [ 7 ] [ 8 ]
Referencias
- 1 2 Beta Básico - Mundo de Spectrum
- ↑ "Andrew Wright" . Spectrum Computing - Juegos, software y hardware para ZX Spectrum . Consultado el 30 de noviembre de 2022 .
- ↑ "Andy Wright" . Mundo de SAM . Consultado el 30 de noviembre de 2022 .
- 1 2 3 4 5 6 7 "Beta Basic" . Spectrum Computing - Juegos, software y hardware de Sinclair ZX Spectrum . Recuperado el 30 de noviembre de 2022 .
- ↑ "BETASOFT" . Spectrum Computing - Juegos, software y hardware para ZX Spectrum . Consultado el 30 de noviembre de 2022 .
- ↑ Croucher, Mel (1989). Manual de usuario del SAM Coupé (PDF) . MILES GORDON TECHNOLOGY plc.
- ↑ Wright, Andy (1990). MasterBASIC para el manual de usuario de SAM COUPÉ . Betasoft.
- ↑ "MasterBasic" . Spectrum Computing - Juegos, software y hardware de Sinclair ZX Spectrum . Consultado el 30 de noviembre de 2022 .
- Extensiones BÁSICAS
- Software ZX Spectrum
- Intérpretes BÁSICOS
- Familia de lenguajes de programación BASIC