Articulo de referencia

BBC BÁSICO

Acorn Archimedes (ARM) Acorn RISC PC (ARM / StrongARM)"},"operating system":{"wt":"Acorn 6502 MOS Acorn RISC OS"},"license":{"wt":""},"file ext":{"wt":""},"file format":{"wt":""...

BBC BASIC es una versión interpretada del lenguaje de programación BASIC . Fue desarrollado por Acorn Computers Ltd. cuando la BBC los seleccionó para suministrar el ordenador para su proyecto de alfabetización informática en 1981.

Originalmente, se suministraba en una ROM instalada para el microordenador BBC , que utilizaba un microprocesador 6502. Cuando Acorn lanzó el ordenador Archimedes , que utilizaba su procesador ARM , se produjeron versiones adicionales de BBC BASIC. Acorn incluyó un ensamblador integrado , primero para el 6502 y posteriormente para el procesador ARM2 .

Inicialmente, la BBC especificó la compatibilidad con Microsoft BASIC . Acorn ya estaba ampliando su anterior Atom BASIC para incluir construcciones de programación estructurada . En particular, en los ordenadores Archimedes posteriores, a medida que se reducían las limitaciones de memoria, BBC BASIC incorporó un conjunto más completo de construcciones de programación estructurada, comunes en el grupo de lenguajes de programación ALGOL 60 .

Además de la versión de BBC BASIC de Acorn para el Archimedes, otras compañías desarrollaron versiones compiladas del lenguaje. Tras la desaparición de Acorn Computers Ltd, el desarrollo y el soporte continuaron para ordenadores más modernos basados ​​en ARM. BBC BASIC ahora está disponible en otras plataformas, ya sea mediante emuladores como Microsoft Windows o de forma nativa.

Historia

Lenguas precursoras

En el Dartmouth College , dos profesores de matemáticas [ 1 ] querían que todos los estudiantes supieran programar en la nueva computadora de la universidad. Los lenguajes de alto nivel existentes, como FORTRAN y COBOL , eran utilizados por profesionales y no resultaban adecuados para la programación introductoria por parte de usuarios no técnicos. En 1964, crearon Dartmouth BASIC [ 2 ] (abreviatura de Beginner's All-Purpose Symbolic Instruction Code, Código de Instrucción Simbólica de Propósito General para Principiantes) para que fuera un lenguaje de programación que cualquiera pudiera usar. Con una estructura sintáctica basada en fórmulas , es una versión simplificada de FORTRAN. [ 3 ]

Una combinación de factores llevó a que BASIC se convirtiera en un lenguaje importante a finales de la década de 1960, y en la década de 1970, cuando se construían los primeros microordenadores , ya era el estándar de facto para sistemas pequeños. La introducción del Altair 8800 consolidó la posición de BASIC como el primer lenguaje de programación introducido para la plataforma, Altair BASIC de Paul Allen y Bill Gates . A medida que se introducían nuevos microordenadores, casi todos ellos ejecutaban alguna variación de BASIC como su interfaz principal. [ 3 ]

La participación de la BBC

Durante la década de 1970, el Departamento de Educación Continua de la BBC analizó cómo los avances en la tecnología informática impactarían en la sociedad británica. Su Informe sobre Microelectrónica [ 4 ] de 1979, presentado a la Comisión de Servicios de Mano de Obra, describe formalmente su preocupación por la creciente polarización y alienación en el ámbito laboral.

La BBC necesitaba un microordenador que pudiera utilizarse para demostraciones en su programación y que el público en general pudiera adquirir para que los espectadores pudieran experimentar por sí mismos. Decidieron que dicho microordenador debía ser robusto, tener capacidad de expansión y una implementación de BASIC compatible con Microsoft BASIC VN5 . [ 5 ]

El gobierno y la BBC, de forma conjunta, pusieron en marcha una campaña de sensibilización y educación pública. Este proyecto de alfabetización informática (1980-1989) [ 6 ] utilizó el microordenador BBC Microcomputer, fabricado por Acorn Computers Ltd., elegido por la BBC . BBC BASIC fue fundamental para la experiencia de programación del usuario.

La participación de Acorn

Acorn desarrolló inicialmente System BASIC y Atom BASIC para sus primeras computadoras con microprocesador 6502 [ 7 ] , que se vendían a clientes que las ensamblaban en kit. Con el desarrollo del Proton como procesador frontal , Acorn estaba diseñando para una computación más potente.

Para producir un ordenador que cumpliera con las especificaciones de la BBC, el Proton se convirtió en el BBC Microcomputer, utilizable como ordenador independiente. Al conservar la capacidad de conectarse a un ordenador Z80 , Acorn pudo cumplir con el requisito de un ordenador compatible con CP/M . [ 8 ]

Sophie Wilson desarrolló las implementaciones de BASIC en Acorn. [ 9 ] El dialecto en el BBC Microcomputer se volvió compatible con Microsoft BASIC y, por lo tanto, fue aceptado por la BBC. Ya contaba con características del grupo de lenguajes de programación ALGOL 60 que Wilson agregó para permitir el uso de cierta metodología de programación estructurada.

Plataformas y versiones

BBC Micro

Mensaje BASIC en el BBC Micro después del encendido o reinicio completo.

La lista completa de versiones está disponible aquí: [ 10 ]

BASIC I, la versión original, venía incluida en los primeros ordenadores BBC Micro .

BASIC II se utilizó en los Acorn Electron y BBC Micro enviados después de 1982, incluido el Modelo B. Añadió las palabras clave OPENUPy OSCLI, junto con el ensamblaje offset y correcciones de errores. [ 11 ]

BASIC III se produjo en una versión para el Reino Unido y otra para el mercado estadounidense, en el intento fallido de Acorn por entrar en el mercado informático transatlántico. Aparte de algunas correcciones de errores, el único cambio con respecto a BASIC II fue que el COLOURcomando también podía escribirse como COLOR: independientemente de cuál se introdujera, la versión del Reino Unido siempre lo mostraba como COLOUR, la versión estadounidense como COLOR. El lugar principal donde se puede encontrar BASIC III es como la versión HI-BASIC para el segundo procesador externo.

BASIC IV, también conocido como CMOS BASIC, disponible en las máquinas BBC Master , se modificó para utilizar las nuevas instrucciones disponibles en el procesador 65SC12, reduciendo el tamaño del código y permitiendo así la inclusión de LIST IF, EXT#como instrucción, EDIT, TIME$, ON PROC, | en VDUinstrucciones y un punto flotante más rápido. Se incluyeron nuevamente correcciones de errores.

BASIC IV (1986) supuso una mejora adicional de BASIC IV y se incluyó en la máquina Master Compact. La versión de BASIC para la Compact incluía rutinas matemáticas recodificadas, que, según se decía, proporcionaban un aumento de velocidad del 30 % con respecto a la versión incluida en el resto de la serie Master. [ 12 ]

HI-BASIC estaba disponible en dos versiones: la primera basada en BASIC III y la segunda en BASIC IV. Ambas se diseñaron para ejecutarse desde una dirección más alta (&B800) en el segundo procesador, en lugar de la dirección habitual &8000 del BBC  B. Esto permitía disponer de más espacio de programa en los segundos procesadores 6502, tanto externos como internos. Se introdujo una versión compatible con el segundo procesador Zilog Z80 . [ 13 ]

Otra versión de BBC BASIC, denominada BAS128, se suministraba en cinta y disco con los ordenadores BBC Master y Master Compact; se cargaba en la memoria RAM principal y utilizaba los 64  KB de RAM lateral para los programas de usuario. Esto permitía ejecutar programas mucho más grandes, aunque a costa de ser mucho más lento que la versión normal basada en ROM.

El intérprete puede manejar tanto BASIC como el lenguaje ensamblador 6502, que se puede incluir entre los caracteres [ y ]. Esto contribuyó a la popularidad del sistema entre ingenieros industriales y de investigación. [ 14 ]

Más detalles/determinación de la versión BASIC

Dado que BBC  MOS y RISC  OS generalmente se distribuían en ROM, se puede suponer que una versión específica del sistema operativo contenía una versión específica de BASIC. Por lo tanto, no hay una forma sencilla de determinar qué versión de BASIC se está ejecutando, salvo consultando la identidad del sistema operativo y, por consiguiente, haciendo una suposición.

Tenga en cuenta que todos los Electron, y los microordenadores BBC posteriores, tienen BASIC2; los primeros microordenadores BBC tienen BASIC1. Si no está seguro de qué versión de BASIC tiene su máquina, escriba REPORT después de que BASIC se haya iniciado (después de un BREAK o *BASIC) para que se muestre el mensaje de copyright. Si la fecha es 1981, tiene BASIC1; si es 1982, tiene BASIC2. Las máquinas estadounidenses, o aquellas con un segundo procesador, pueden tener US BASIC o HIBASIC: las rutinas de la ROM no estarán en la misma ubicación para estas ROM.GUÍA DE USUARIO DE LA ROM BÁSICA

Véase también la entrada de BeebWiki para INKEY.

En la familia de procesadores BBC, es posible ejecutar tanto el BASIC estándar como el HIBASIC mejorado en el segundo procesador 6502. Para determinar si un programa se ejecuta en el segundo procesador, basta con observar el valor inicial de PAGE, que será &800. Para distinguir entre BASIC e HIBASIC, se debe examinar el valor inicial de HIMEM. Este será &8000 para BASIC ejecutándose en el segundo procesador y &B800 para HIBASIC en el segundo procesador.

En RISC OS existe una situación similar, donde puede haber BASIC normal o BASIC64 (que ofrece operaciones matemáticas de mayor precisión). BASIC normal se identifica como "BASIC V" y BASIC64 como "BASIC VI"; por lo tanto, lo siguiente (utilizado antes de que se produzca cualquier error) permitirá distinguirlos:

SI INSTR ( REPORT$ , "VI" ) ENTONCES IMPRIMIR "BASIC64" SINO IMPRIMIR "BASIC"

Existen mejores maneras de hacerlo. Consulta la BeebWiki . En casi todos los casos, no deberías necesitar comprobar en qué BASIC o plataforma se ejecuta tu programa; simplemente realiza la llamada, lee los datos que se devuelvan y procesa con ellos.

Acorn Archimedes (RISC OS)

Con el cambio a la CPU ARM de 32 bits y la eliminación del  límite de 16 KB en el tamaño del código BASIC, se agregaron muchas características nuevas. [ 15 ] BASIC V versión 1.04 tenía 61  KB de longitud. Las versiones actuales de RISC OS todavía contienen un intérprete de BBC BASIC V. El código fuente de la versión de BBC BASIC V para RISC OS 5 ha sido publicado bajo la licencia Apache 2.0 por RISC OS Open .

Entre los nuevos comandos y funciones compatibles se encontraban:

  • WHILE-ENDWHILE
  • IF-THEN-ELSE-ENDIF
  • CASE-OF-WHEN-OTHERWISE-ENDCASE,
  • RETURNparámetros en los procedimientos,
  • matrices locales,
  • bibliotecas de procedimientos ( LIBRARY, INSTALLy OVERLAY),
  • LOCAL DATAy LOCAL ERRORadiestradores,
  • un pariente RESTORE,
  • operaciones de matrices ,
  • nuevos operadores,
  • STEP TRACE,
  • Comandos para el nuevo sistema de sonido, ratón y gráficos.

Los comandos gráficos eran totalmente compatibles con versiones anteriores , el sonido no tanto; por ejemplo, la ENVELOPEpalabra clave de BASIC V en adelante es un comando que toma catorce parámetros numéricos y en la práctica no hace nada, como en versiones anteriores, llama a OS_Word 8, pero eso no hace nada en RISC OS. [ 16 ] El ensamblador 6502 en línea fue reemplazado por un ensamblador ARM . Acorn afirmó que BASIC V era "sin duda el BASIC interpretado más rápido del mundo" y "probablemente el BASIC más potente que se encuentra en cualquier computadora".

BASIC VI es una versión de BASIC V que admite números reales en formato IEEE 754 de 8 bytes, a diferencia del formato estándar de 5 bytes introducido en BASIC I.

BBC BASIC V y VI venían incluidos de serie en el Acorn Archimedes y el RiscPC . También existía una versión de BBC BASIC V para ejecutarse en el segundo procesador ARM del BBC Micro.

Paul Fellows, líder del equipo de desarrollo de Arthur OS, creó un compilador para BBC BASIC V llamado Archimedes BASIC Compiler, publicado inicialmente por DABS Press. [ 17 ] ABC implementaba casi todo el lenguaje, con la obvia excepción de la función EVAL, que inevitablemente requería interpretación programática en tiempo de ejecución. Como prueba de su completitud, admitía la sintaxis de ensamblador en línea. El compilador estaba escrito en BBC BASIC V. Muchas aplicaciones escritas inicialmente para ejecutarse con el intérprete se beneficiaron de la mejora de rendimiento que este proporcionaba, lo que situó a BBC BASIC V al mismo nivel que otros lenguajes para el desarrollo de aplicaciones serias.

Otras plataformas

BBC BASIC también se ha adaptado a muchas otras plataformas. [ 18 ]

Una versión NS32016 de BBC BASIC se suministraba con el coprocesador Acorn 32016 y el Acorn ABC.

Además de la versión de BBC BASIC suministrada con el segundo procesador Zilog Z80 del BBC Micro , también existe una versión de BBC BASIC basada en Z80 para sistemas basados ​​en CP/M . Una versión de BBC BASIC Zilog Z80 también se utilizó en el ordenador de sobremesa Tiki 100 , el portátil Cambridge Z88 y los ordenadores portátiles Amstrad NC100 Notepad y Amstrad NC200 Notebook. Esta versión se ha implementado en las calculadoras gráficas de las series TI-83 Plus y TI-84 Plus . Gracias a los esfuerzos de J. G. Harston (también responsable de una versión para PDP-11 [ 19 ] actualizada en 2025; que implementa BBC BASIC V IV y algunas adiciones de las extensiones de BBC BASIC V [ 20 ] ), se lanzó una versión de BBC BASIC para el ZX Spectrum en enero de 2002, con muchas mejoras realizadas en versiones posteriores. 

BBC BASIC también se implementó para MS-DOS como BBCBASIC (86) , que buscaba la máxima compatibilidad con BBC Micro, y BBasic con sus propias mejoras basadas en BASIC II.

En 2001 se lanzó BBC BASIC para Windows , una versión de BBC BASIC integrada con la interfaz gráfica de usuario de Windows , creada por Richard Russell , desarrollador de las versiones para Z80 y x86 . Si bien admite casi por completo la especificación original de BBC BASIC (BASIC IV), la versión para Windows admite gran parte de la sintaxis de BASIC V/VI, así como algunas características avanzadas propias. Entre las características exclusivas de BBC BASIC para Windows se incluyen la compatibilidad del intérprete con tipos de registro/estructura y la capacidad de llamar a rutinas de la API de Windows o a las de una DLL externa . Las versiones recientes han incorporado características avanzadas comparables con lenguajes como C , y una biblioteca externa ha añadido recientemente compatibilidad con objetos.

BBC BASIC para SDL también fue desarrollado por Richard T. Russell y es en gran medida compatible con la versión anterior de BBC BASIC para Windows, compartiendo con este dialecto muchas características nuevas y avanzadas, como estructuras de datos, variables PRIVATE, una instrucción EXIT, cadenas largas, interrupciones de eventos, un operador de dirección, variables de byte, un carácter de continuación de línea, llamadas indirectas a procedimientos y funciones, y una mayor precisión numérica. La primera versión se lanzó en febrero de 2019 y continúa en desarrollo activo a fecha de septiembre de 2025. . [ 21 ] [ 22 ] BBC BASIC para SDL 2.0 admite Windows, MacOS, Linux, Raspberry Pi OS, Android, iOS y dispositivos móviles que admiten la biblioteca SDL, [ 9 ] así como una versión que permite ejecutar programas BBC BASIC como applets en una página web a través del marco Web Assembly. Los programas se pueden ejecutar a través del intérprete o compilarse en un paquete de aplicación independiente que se ejecutará sin necesidad de instalar BBC BASIC (archivo .exe en Windows, archivo .dmg en MacOS, archivo .zip en Linux o Raspberry Pi OS y archivo .apk en Android). También se conserva un alto grado de compatibilidad con el BBC Microcomputer, incluida la emulación de las instrucciones SOUND y ENVELOPE, y el modo de pantalla MODE 7 (teletexto). BBC BASIC para SDL 2.0 incorpora un ensamblador que depende de la CPU en la plataforma: x86 (32 bits o 64 bits) para Windows, MacOS o Linux; Para Raspberry Pi, se utiliza ARM (de 32 o 64 bits). En el caso de Android, el ensamblador es ARM o x86, según corresponda. Se puede acceder a las funciones de la interfaz de programación de aplicaciones (API) desde BASIC y desde código ensamblador, lo que permite a un programador experimentado crear aplicaciones sofisticadas.

También está disponible un clon GPL de BBC BASIC llamado Brandy , escrito en C portable . [ 23 ] [ 24 ] Una bifurcación de este, Matrix Brandy , sigue en desarrollo activo. [ 25 ]

Ariadne Software desarrolló un emulador del BBC Micro para Amiga , destinado a CBM (Reino Unido). Si bien era extremadamente rápido, no emulaba el 6502 a su máxima velocidad, por lo que el código ensamblador se ejecutaba más lento que en un BBC real, mientras que los programas BASIC se ejecutaban mucho más rápido. Debido a la interacción entre el BASIC optimizado y la emulación del 6502, casi ningún juego comercial funcionaba, pero el código bien estructurado y el software educativo generalmente sí lo hacían. Además, utilizaba un formato numérico de coma flotante ligeramente menos preciso . Durante un tiempo, se incluyó en un paquete académico especial del Amiga 500 , con la esperanza de que las escuelas reemplazaran sus antiguos BBC B por Amiga 500.

Benjamin Ryves también ha creado una versión de BBC BASIC V (Z80) para las calculadoras TI-83/84+ de Texas Instruments .

Una versión de Shado para Commodore 64 fue producida por una pequeña empresa de software, Aztec Software, a principios de la década de 1980. [ 26 ] También se han ejecutado experimentalmente versiones parcheadas de HI-BASIC basado en 6502 de Acorn en C64, con una interfaz al núcleo de C64, reemplazando las llamadas MOS de Acorn que de otro modo se harían.

También se han realizado esfuerzos para que la versión de BBC BASIC basada en el microprocesador 6502 esté disponible para el Apple II . Applecorn es uno de esos esfuerzos.

BBC BASIC es el lenguaje de programación utilizado en el Agon Light, un ordenador de placa única y microcontrolador de código abierto de 8 bits basado en Z80 diseñado por Bernardo Kastrup y lanzado en 2022. [ 27 ]

Código de ejemplo

REM Versión de Acorn Archimedes ON ERR OR : ON ERR OR OFF : PRINT REPORT$ ; " en la línea " ; ERL : END MODE MODE : REM limpia la pantalla PROC _triangle ( 700 , 700 , 500 , 200 , 500 , 900 , "F" ) ENDDEF PROC _triangle ( x1% , y1% , x2% , y2% , x3% , y3% , fill$ ) LOCAL triangle_fill_plot_code% triangle_fill_plot_code% = &55 MOVE x1% , y1% DRAW x2% , y2% IF fill$ = "F" THEN PLOT triangle_fill_plot_code% , x3% , y3% ELSE DRAW x3% , y3% : DRAW x1% , y1% ENDIF ENDPROC : REM de PROC_triangle()

Referencias

  1. "Historial de eventos" . Dartmouth College . Consultado el 7 de enero de 2024 .
  2. "Manual de instrucciones BÁSICAS de Dartmouth College" (PDF) . Dartmouth College . Consultado el 7 de enero de 2024 .
  3. 1 2 McCracken, Harry (29 de abril de 2014). "Cincuenta años de BASIC, el lenguaje de programación que hizo que las computadoras fueran personales" . Recuperado el 7 de enero de 2024 .
  4. "Informe sobre microelectrónica" (PDF) . Departamento de Educación Continua de la BBC . Consultado el 14 de enero de 2024 .
  5. "Especificaciones del microordenador de la BBC" . BBC . Consultado el 14 de enero de 2024 .
  6. "Proyecto de Alfabetización Informática" . BBC . Consultado el 14 de enero de 2024 .
  7. Ian Sinclair (abril de 1981). "Investigación atómica" (PDF) . Computing Today. págs. 21–24 . Consultado el 21 de enero de 2024 . 
  8. "BBC Micro reaviva recuerdos de revolución" . BBC News. 21 de marzo de 2008. Consultado el 21 de enero de 2024 .
  9. 1 2 Purdy, Kevin (29 de noviembre de 2023). "BBC BASIC sigue siendo una herramienta de aprendizaje extraordinaria, y ahora está disponible en todas partes" . Ars Technica . Recuperado el 5 de agosto de 2024 .
  10. Lista de versiones de BBC BASIC
  11. "Lo antiguo y lo nuevo" . Curso avanzado de informática doméstica . N.° 52. Orbis Publishing Limited. 1984. págs. 1037–1039 . ISSN 0265-2919 . Consultado el 11 de mayo de 2024 .   
  12. "Desvelando los secretos del Master Compact" . Acorn User . Octubre de 1986. págs. 15, 17–18 . Consultado el 5 de septiembre de 2020 . 
  13. Smith, Bruce (noviembre de 1984). A & B Computing . Londres: Argus specialist Publications. pág. 6. 
  14. Marsh, David (5 de diciembre de 2005). "ARM apunta al dominio automotriz e industrial" . EDN Europe . Recuperado el 1 de agosto de 2012 .
  15. Roger Wilson (3 de julio de 1989). "Cambios de BASIC V 1.02 frente a 1.04 (¡para Richard Lloyd!)" . Grupo de noticias : eunet.micro.acorn . Usenet: 807@acorn.co.uk . Consultado el 14 de junio de 2011 .  
  16. "Asunto: Comando de sobre en Basic V" .
  17. "ABC - Archimedes BASIC Compiler - Software - Computing History" . www.computinghistory.org.uk . Consultado el 9 de noviembre de 2025 .
  18. BBC BASIC - MDFS::Software.$.BBCBasic
  19. BBC BASIC para PDP-11
  20. "BBC BASIC para PDP11" .
  21. "BBC BASIC para SDL 2.0" . bbcbasic.co.uk . Consultado el 5 de agosto de 2024 .
  22. rtrussell. "Commits · rtrussell/BBCSDL" . GitHub . Consultado el 10 de octubre de 2025 .
  23. "Brandy" . Archivado del original el 17 de julio de 2011. Consultado el 6 de julio de 2011 .
  24. "Brandy Basic V Intérprete" . Consultado el 6 de julio de 2011 .
  25. "Matrix Brandy BASIC VI" . Consultado el 21 de agosto de 2023 .
  26. "Commodore 64 BBC BASIC - MDFS::Software.BBCBasic.C64" .
  27. "Olimex se inspira en el Agon Light de Bernardo Kastrup y ofrece un diseño de ordenador de placa única Z80 modificado" . Hackster.io . Consultado el 24 de diciembre de 2022 .
  • El hogar de BBC BASIC
  • El hogar de BBC BASIC: Productos
  • BBC BASIC por CPU/Sistema Operativo
  • Implementación TI-83+ y TI-84+ de BBC BASIC
  • Sitio web de usuarios de Amstrad NC
  • Guía de programación de libros electrónicos con métodos de interfaz
  • Manual de referencia de BBC BASIC (para RISC OS)
  • Guía del usuario del microordenador BBC (HTML)
  • Guía del usuario del microordenador BBC (PDF)
  • Código Python frente a BBC Basic para Windows
  • El Z80 BBC Basic de RT Russell ya está disponible como código abierto en GitHub.
Obtenido de " https://en.wikipedia.org/w/index.php?title=BBC_BASIC&oldid=1324256566 "