stringtranslate.com

BASICODO

Afirmación de BASICODE " Esperanto para ordenadores", de la publicación de Alemania del Este Radio Fernsehen Elektronik .

BASICODE fue un proyecto informático cuyo objetivo era crear un estándar unificado para el lenguaje de programación BASIC . BASIC estaba disponible en muchos ordenadores domésticos populares , pero existían innumerables variantes que, en su mayoría, eran incompatibles entre sí. El proyecto fue iniciado en 1980 por Hobbyscoop, un programa de radio de la organización de radiodifusión holandesa Nederlandse Omroep Stichting (NOS).

Las implementaciones del lenguaje eran aplicaciones de utilidad específicas de la arquitectura que ejecutaban llamadas a subrutinas para texto y audio definidas en el estándar del lenguaje BASICODE, adaptadas según las capacidades del sistema informático anfitrión. Estas aplicaciones, llamadas Bascoders , también permitían compartir datos y programas entre diferentes plataformas informáticas al definir un formato de datos para las cintas de casete que se utilizaban regularmente como medio de almacenamiento en la década de 1980. [1] Un programa BASICODE almacenado en casete podía cargarse y ejecutarse en cualquier computadora que admitiera el lenguaje. BASICODE a menudo se llamaba " Esperanto para computadoras" por esa razón. [2]

BASICODO

La situación a principios de los años 1980

Comodoro 64
Atari 800 XL

Desde finales de los años 1970 hasta finales de los años 1980, los ordenadores domésticos basados ​​en procesadores de 8 bits fueron populares. Los modelos más conocidos en los EE. UU. incluían el TRS-80 , el PET 2001 , el VIC-20 , el Commodore 64 y los ordenadores Atari de 8 bits . En Europa, también estaban los ZX80 , ZX81 , ZX Spectrum , los micros Acorn/BBC, varios sistemas Amstrad, el Dragon 32/64 de Dragon Data y la familia KC85 , popular en la República Democrática Alemana . Todos estos ordenadores tenían una CPU de la MOS Technology 6502 o Zilog Z80 , o una variante de la misma. La mayoría se suministraban con (o podían actualizarse a) al menos 16 kilobytes de RAM , aunque muchos se suministraban con mucho más. La mayoría proporcionarían conectores para una unidad de casete o tendrían una incorporada para el almacenamiento de datos, y un intérprete BASIC que generalmente se almacenaba en ROM . La curva de aprendizaje plana de BASIC, que había sido diseñada teniendo en mente a los recién llegados a la programación, y la disponibilidad instantánea del lenguaje en todas estas computadoras llevaron a que muchos usuarios escribieran y compartieran sus propios programas.

Un problema era que era difícil compartir programas y datos entre ordenadores de distintos fabricantes, porque los distintos dialectos del BASIC solían ser incompatibles en algunas áreas. Muchos utilizaban comandos BASIC diferentes para conseguir el mismo resultado (como limpiar la pantalla, dibujar un píxel o reproducir un sonido), lo que significaba que, por ejemplo, era poco probable que un programa BASIC escrito para el C64 funcionara en un Atari XL sin modificaciones y viceversa. Otra dificultad era el hecho de que, aunque estos ordenadores eran similares, seguían diferenciándose en aspectos clave del hardware, como la resolución de pantalla, la paleta de colores disponible o las capacidades de audio. Por último, los formatos de datos utilizados para almacenar datos en casetes también eran incompatibles.

El primer estándar

Espectro Sinclair ZX

En 1979, la emisora ​​holandesa NOS comenzó a transmitir programas de ordenador por radio. Como los programas y los datos se almacenaban como audio en casetes compactos, era posible grabar una transmisión de este tipo en cinta y cargarla en el ordenador más tarde. Sin embargo, debido a los problemas mencionados anteriormente, el programa también tuvo que ser adaptado para una variedad de ordenadores populares y retransmitido varias veces. Como el casete compacto tiene una densidad de datos muy baja en comparación con los medios de almacenamiento actuales, la grabación de los programas llevaba bastante tiempo y solo se podía emitir un número limitado de programas por programa. Por lo tanto, la emisión adicional de diferentes versiones de los mismos programas era un gran inconveniente. [1]

En 1982, los ejecutivos de NOS decidieron desarrollar un formato de datos unificado. Una aplicación específica para cada modelo de computadora, llamada Bascoder , se encargaba de recuperar y almacenar programas y datos en este formato unificado desde la cinta. Los Bascoder también fueron transmitidos por NOS, pero también se podían comprar a NOS en casete y compartir entre amigos y conocidos. El formato, que estaba muy bien protegido contra interferencias, podía ser leído y escrito por muchos sistemas informáticos domésticos populares. La robustez del formato también hizo posible la transmisión a través de radio de onda media , lo que aumentó el alcance y, a su vez, el número de usuarios potenciales. Por ejemplo, los datos transmitidos por la estación de radio holandesa Hilversum podían recibirse en grandes partes de la República Democrática Alemana .

BASICODIO 2

ZX81
Manzana II

El estándar resolvió uno de los problemas antes mencionados, la incompatibilidad de formatos de datos. Sin embargo, los programas todavía tenían que ser adaptados al dialecto BASIC de cada computadora y a las capacidades del hardware. Limitar los programas a usar solo instrucciones comunes a todos los dialectos significó grandes limitaciones en términos de funcionalidad, por ejemplo, abstenerse completamente de usar gráficos y sonido, al tiempo que se limitaba la funcionalidad para la entrada de datos mediante el teclado y la salida de caracteres en la pantalla. Por estas razones, en 1983 se creó el estándar mejorado BASICODE 2. [1] Los codificadores basic que usaban este estándar no solo contenían rutinas para la entrada y salida de datos a cinta. Además de un conjunto de aproximadamente 50 comandos, funciones y operadores BASIC que eran comunes a todos los dialectos BASIC, el estándar de lenguaje BASICODE 2 definía una biblioteca de subrutinas que emulaban las mismas capacidades en todas las computadoras compatibles.

Para lograr esto, todas las líneas de programa por debajo de 1000 estaban reservadas para el Bascoder, y los programas BASICODE solo podían comenzar en la línea número 1000. Las subrutinas del Bascoder en las líneas por debajo de 1000 se llamaban con un comando GOSUB . [1] Los argumentos necesarios se pasaban al Bascoder usando variables predefinidas especiales que estaban reservadas para su uso por el Bascoder. El estándar contenía una serie de reglas adicionales que se hicieron necesarias debido a las limitaciones de algunos modelos de computadora. Por ejemplo, en una computadora de la serie KC, una línea de código no podía tener más de 60 caracteres. Estas limitaciones debían aplicarse a todos los programas BASICODE para garantizar la independencia de la plataforma, porque el Bascoder era interpretado por el mismo intérprete BASIC específico de la computadora que el propio programa BASICODE.

De esta forma, los Bascoders se cargaban en los distintos ordenadores como programas normales y, al ejecutarse, proporcionaban las rutinas adicionales para la entrada/salida estándar y de casete comunes. Los programas escritos en BASICODE sólo se podían utilizar después de haber cargado e iniciado el Bascoder. Sin embargo, en algunos ordenadores los programas BASICODE se podían fusionar con las rutinas de los Bascoders y guardar en el formato de datos nativo. El programa resultante ya no era independiente de la plataforma, pero debido a la mayor densidad de datos de la mayoría de los formatos nativos se podía cargar mucho más rápido que el mismo programa en formato BASICODE. Además, como no era necesario cargar el Bascoder completo para ejecutar el programa, quedaba más RAM disponible en el momento de la ejecución.

Existían codificadores Basicode 2 para Exidy Sorcerer , Colour Genie , PET , VIC-20 , Commodore 64 , Amiga , ZX81 , ZX Spectrum , Sinclair QL , Acorn Atom , BBC Micro , Electron , TRS-80 , MSX , Oric Atmos , P2000T , Grundy NewBrain , Amstrad CPC , IBM PC , Apple II , TI-99/4A , Aquarius y otros. Además, los usuarios avanzados podían escribir su propio codificador Basicode para el sistema de su elección, ya que el estándar de lenguaje y el formato de datos eran abiertos y estaban bien documentados. El estándar BASICODE 2 hizo posible el desarrollo de programas independientes de la plataforma con capacidades avanzadas (para la época). Además, BASICODE se utilizó para transmitir y compartir información como noticias de la escena informática a través de la radio, en forma de los llamados "diarios". De manera similar, los tutoriales de codificación BASICODE y otra documentación también podrían transmitirse de esta manera.

BASICODIO 3 / 3C

En 1986 se desarrolló el nuevo estándar BASICODE 3. [1] Las adiciones más importantes fueron rutinas para gráficos monocromos simples, lectura y escritura de datos desde dentro de los programas y salida de sonido. Se publicó un folleto sobre el lenguaje, que venía con un casete que contenía codificadores Basicode para varios microordenadores. [3] BASICODE 3 hizo que BASICODE fuera popular en la escena informática de la RDA, y a partir de 1989 los programas BASICODE se transmitieron por radio en toda la RDA. Además, se publicó un libro que incluía un disco de vinilo con codificadores Basicode para todos los ordenadores comunes en la RDA. [4] La última revisión de BASICODE, que incluía gráficos en color, se publicó como BASICODE 3C en 1991.

El fin de BASICODE

A partir de 1990, la popularidad de BASICODE disminuyó rápidamente debido al auge de los ordenadores de 16 y 32 bits, como el Atari ST, el CBM Amiga, el Acorn Archimedes y la plétora de clones compatibles con IBM-PC. Aunque existían codificadores Bascoder para estas máquinas, BASICODE era demasiado limitado para aprovechar los recursos que proporcionaba la nueva generación de ordenadores. A medida que el hardware, los sistemas operativos y el software de los nuevos ordenadores se volvían cada vez más complejos, muchos usuarios no podían o estaban menos inclinados a escribir sus propios programas. El auge de varias interfaces gráficas de usuario sofisticadas pero incompatibles y la caída de la popularidad de los ordenadores de 8 bits redujeron la utilidad de BASICODE y provocaron su desaparición.

El sucesor de la emisora ​​estatal de la RDA, la Deutschlandsender Kultur (que más tarde se convirtió en parte de la nueva Deutschlandradio ), continuó transmitiendo programas BASICODE hasta aproximadamente 1992. Un estándar planificado llamado BASICODE 4 nunca se hizo realidad, porque NOS dejó de apoyar el proyecto poco después de que se lanzara BASICODE 3C. BASICODE todavía es utilizado por entusiastas, en particular fanáticos de los ordenadores de 8 bits, por valor nostálgico, pero no tiene ninguna relevancia práctica.

Importancia histórica

BASICODE fue un intento temprano de crear un estándar para el intercambio de programas y datos entre sistemas informáticos domésticos mutuamente incompatibles. Es más o menos contemporáneo al estándar MSX desarrollado por Microsoft , que especificaba una plataforma de hardware compartida además de un dialecto BASIC común. Estos ordenadores fueron vendidos por varias empresas y compitieron directamente con otros ordenadores domésticos populares. MSX tuvo éxito principalmente en los mercados domésticos de los fabricantes, por ejemplo Japón , Corea del Sur , los Países Bajos y Brasil . A diferencia de MSX, BASICODE no hizo ningún esfuerzo por estandarizar el hardware en el que se ejecutaba, sino que ofreció un subconjunto estandarizado del omnipresente lenguaje de programación BASIC y un formato de datos común para cintas de casete que se podían leer y escribir en todos los ordenadores para los que BASICODE estaba disponible. Como resultado de esta independencia de dispositivo, a diferencia de MSX, BASICODE no estaba limitado a ordenadores de fabricantes específicos. La base instalada de BASICODE es difícil de estimar, porque tanto los Basicoders como los programas escritos en BASICODE estaban generalmente disponibles de forma gratuita. Estaban disponibles para una gran cantidad de ordenadores domésticos vendidos durante esta era. Aunque no era un producto comercial, varios vendedores ofrecían versiones en cinta que podían comprarse a bajo precio, presumiblemente dirigidas a aquellos que no podían recibir transmisiones de radio BASICODE.

Cabe señalar que BASICODE, por diseño, no podía utilizar las capacidades de los ordenadores anfitriones en toda su extensión. El estándar de lenguaje definido por BASICODE era el mínimo común denominador de todos los sistemas informáticos relevantes. Este concepto se abandonó parcialmente solo con BASICODE3/3C, ya que algunos ordenadores o variantes de ordenadores como el ZX80 / ZX81 y el KC87 no eran capaces de utilizar gráficos y color y las nuevas secciones de BASICODE que utilizaban estas capacidades no se podían utilizar en ellos. Especialmente para aplicaciones que dependían de la sincronización y los gráficos o el sonido, por ejemplo los videojuegos , BASICODE era claramente inferior a los programas escritos en BASIC "nativo" o en código de máquina . Los puntos fuertes de BASICODE estaban en las áreas de diseño de aplicaciones, software educativo y compartición de datos. El formato BASICODE también se utilizó para programas Pascal . Pascal era un lenguaje mucho más consistente en todos los sistemas, pero los compiladores estaban disponibles solo para muy pocos tipos de ordenadores domésticos.

El concepto subyacente de BASICODE, que es la definición de un estándar de lenguaje para el desarrollo de software independiente de la plataforma y la implementación de dicho estándar como entornos de ejecución específicos del sistema (Bascoder), fue revisado más tarde en el lenguaje de programación Java , a través de máquinas virtuales Java específicas del sistema operativo que ejecutan programas Java. Además, la distribución de datos e información en el formato de datos BASICODE recuerda a los tipos de documentos actuales independientes de la plataforma, como el formato de documento portátil (PDF) y las aplicaciones de lectura de PDF que requiere.

El formato de datos BASICODE

Un casete de audio compacto BASICODE, el típico medio de almacenamiento de datos BASICODE .

En el formato BASICODE, la grabación de programas es análoga a la grabación de datos. Por lo tanto, al grabar programas, los comandos no se leen y escriben en forma de unidades de un solo byte ( tokens ), sino carácter por carácter.

Un bloque de datos comienza con el carácter 02 (STX, inicio del texto) y termina con el carácter 03 (ETX, fin del texto). Después de ETX, se transmite un byte de control formado por los bytes anteriores, incluidos STX y ETX, mediante la adición binaria (XOR). Un carácter 0D (decimal 13) marca el final de una línea durante la transmisión. Los archivos de datos creados por programas pueden utilizar todos los caracteres como datos y no deben contener caracteres de control.

Cada byte se transmite en la secuencia "1 bit de inicio - 8 bits de datos - 2 bits de parada". Los bits de datos se envían con el bit menos significativo primero. El bit más significativo se transmite invertido y siempre es 0 (transmitido como 1) porque BASICODE utiliza solo caracteres ASCII . Por lo tanto, otra forma de describir la secuencia de transmisión es "1 bit de inicio - 7 bits de datos - 3 bits de parada". La redundancia resultante tiene como objetivo maximizar la compatibilidad con diferentes computadoras.

Para las señales de audio se utilizan ondas cuadradas en forma de una onda de 1200 Hz para un bit "0" y dos ondas de 2400 Hz para un bit "1", lo que da como resultado un tiempo de 1/1200 segundos para cada bit. Una pausa de más de 1/1800 segundos entre ondas marca el comienzo de un byte, haciendo que la siguiente onda sea el bit de inicio. Después del bit de inicio y antes de los ocho bits de datos hay otra pausa de al menos 1/1800 segundos. Una señal de 2400 Hz con una duración de cinco segundos marca el comienzo de una transmisión y se utiliza para la sincronización del programa de lectura. Al final de la transmisión, se envía una señal de 2400 Hz con una duración de un segundo.

La velocidad de datos teórica de este formato es de 1200 bits por segundo. Si se tienen en cuenta la transmisión de tres bits adicionales por byte de datos y las pausas antes y después del bit de inicio, se obtiene una velocidad de datos utilizable de 102 bytes por segundo y unos 6 kilobytes por minuto.

Descodificación de casetes de audio

En una computadora moderna, los casetes de audio Basicode se pueden decodificar utilizando minimodem, un módem de software disponible gratuitamente. Por ejemplo, para un casete convertido a un archivo WAV , basicode.wav se puede decodificar a sus bytes de datos correspondientes mediante el comando:

minimodem --rx 1200 -S 1200 -M 2400 --bits de inicio 1 -7 --bits de parada 3 -f basicode.wav >basicode.txt

Véase también

Referencias

  1. ^ abcde ¡ Weet ik! Octubre de 1991, 'Basiscode-3' de Bob Munniksma
  2. ^ Aarde & Kosmos número 7, 1986, 'BASICODE-3, uitgebreid esperanto voor komputers' por Rien van Dongen
  3. ^ Basicode-3 de Hermine Bakker, 1986, ISBN 90-201-1949-4
  4. ^ BASICODE Mit Programmen auf Schallplatte für Heimcomputer por Horst Völz, 1990, ISBN 3-341-00895-0

Lectura adicional

Enlaces externos