stringtranslate.com

IBM BASIC

Cinco chips DIP de 8 KB de ROM y un zócalo de expansión de 8 KB de ROM vacío en una placa base IBM PC . Cuatro chips contienen Cassette BASIC y uno contiene el BIOS .

IBM Personal Computer Basic , comúnmente abreviado como IBM BASIC , es un lenguaje de programación lanzado por primera vez por IBM con el IBM Personal Computer, Model 5150 (IBM PC) en 1981. IBM lanzó cuatro versiones diferentes del intérprete Microsoft BASIC , licenciadas por Microsoft para PC y PCjr . Se conocen como Cassette BASIC, Disk BASIC, Advanced BASIC (BASICA) y Cartridge BASIC. Las versiones de Disk BASIC y Advanced BASIC se incluyeron con IBM PC DOS hasta PC DOS 4. Además de las características de un BASIC estándar ANSI , las versiones de IBM ofrecían soporte para el hardware de gráficos y sonido de la línea IBM PC. El código fuente se podía ingresar con un editor de pantalla completa y se proporcionaban funciones limitadas para la depuración rudimentaria de programas . IBM también lanzó una versión del compilador Microsoft BASIC para PC simultáneamente con el lanzamiento de PC DOS 1.10 en 1982.

Fondo

IBM licenció Microsoft BASIC para IBM Personal Computer a pesar de que ya contaba con su propia versión de BASIC para los mainframes de la empresa. Don Estridge dijo: "Microsoft BASIC tenía cientos de miles de usuarios en todo el mundo. ¿Cómo se puede discutir eso?" [1]

Casete IBM BASIC

IBM Cassette BASIC venía en 32 kilobytes (KB) de memoria de sólo lectura (ROM), separada de la ROM BIOS de 8 KB del IBM PC original, y no requería un sistema operativo para funcionar. Cassette BASIC proporcionaba la interfaz de usuario predeterminada invocada por el BIOS a través de INT 18h si no había una unidad de disquete instalada o si el código de arranque no encontraba un disquete de arranque al encender. El nombre Cassette BASIC proviene de su uso de cintas de casete en lugar de disquetes para almacenar programas y datos. Cassette BASIC estaba integrado en las ROM del PC y XT originales y de los primeros modelos de la línea PS/2 . Admite cargar y guardar programas solo en la interfaz de cinta de casete de IBM , que no está disponible en los modelos posteriores al Modelo 5150 original. La versión de nivel de entrada del 5150 venía con solo 16 KB de memoria de acceso aleatorio (RAM), que era suficiente para ejecutar Cassette BASIC. Sin embargo, Cassette BASIC se utilizó muy poco porque se vendían pocas PC sin unidad de disco y la mayoría se vendían con PC DOS y suficiente RAM para al menos ejecutar Disk BASIC (muchas también podían ejecutar Advanced BASIC). Hay tres versiones de Cassette BASIC: C1.00 (que se encontraba en las primeras IBM PC con placas base de 16-64K), C1.10 (que se encuentra en todas las IBM PC posteriores, XT, AT y PS/2) y C1.20 (que se encuentra en la PCjr).

Disco IBM BASIC

IBM Disk BASIC (BASIC.COM) se incluyó en el IBM PC DOS original . Debido a que utilizaba la ROM Cassette BASIC de 32 KB, [2] BASIC.COM no se ejecutaba ni siquiera en clones de PC altamente compatibles , como Compaq Portable . [3] El nombre Disk BASIC proviene de su uso de disquetes y cintas de casete para almacenar programas y datos. El código basado en disco corrigió erratas en el código residente en ROM y agregó soporte para disquetes y puertos serie .

Disk BASIC se puede identificar por el uso de la letra D que precede al número de versión. Añade soporte para discos y algunas características que faltan en Cassette BASIC, pero no incluye las funciones extendidas de sonido o gráficos de BASICA. El propósito principal de Disk BASIC era ser una versión "light" para IBM PC con sólo 48 KB de memoria: BASIC.COM tendría entonces unos 23 KB libres para código de usuario, mientras que BASICA tendría sólo unos 17 KB. En 1986, todos los nuevos PC se entregaban con al menos 256k, y las versiones de DOS posteriores a la 3.00 redujeron Disk BASIC a sólo un pequeño trozo que llamaba a BASICA.COM para compatibilidad con archivos por lotes. Incluso con todo este exceso de RAM, BASIC todavía asignaría y administraría sólo unos 61 KB para programas de usuario, ya fuera Cassette BASIC, BASIC.COM o BASICA.

BASIC avanzado de IBM

IBM Advanced BASIC (BASICA.COM) también se incluyó en el IBM PC DOS original y requería el código residente en ROM de Cassette BASIC. [2] Añadió funciones como acceso a archivos de disquete, almacenamiento de programas en disco, sonido monofónico utilizando el altavoz integrado del PC, funciones gráficas para configurar y borrar píxeles , funciones similares para dibujar líneas y círculos y para configurar colores, y manejo de eventos para comunicaciones y pulsaciones de joystick. BASICA no se ejecutará en computadoras que no sean IBM (incluso en las denominadas máquinas "100% compatibles") o modelos IBM posteriores, porque carecen del ROM BASIC necesario.

Las versiones de BASICA son las mismas que las de sus respectivos DOS, comenzando con la v1.00 y terminando con la v3.30. Las primeras versiones de BASICA no soportaban subdirectorios, y algunos comandos gráficos funcionaban de forma ligeramente diferente. Por ejemplo, si la LINEinstrucción se utilizaba para dibujar líneas que salían de la pantalla, BASIC simplemente las intersectaba con la línea adyacente más cercana, mientras que en BASIC 2.x y posteriores, las líneas salían de la pantalla y no se intersectaban. El PAINTcomando en BASIC 1.x comenzaba a rellenar en la coordenada especificada y se expandía hacia afuera alternando direcciones arriba y abajo, mientras que en BASIC 2.x rellenaba todo lo que estaba por debajo de la coordenada inicial y luego, después de terminar, todo lo que estaba por encima de ella. PAINTEl comando de BASIC 1.x también hacía uso de la pila del sistema para el almacenamiento y al rellenar áreas complejas podía producir un OVERFLOWerror. Para remediar esto, la CLEARinstrucción podía utilizarse para expandir la pila de BASIC (128 bytes es el tamaño predeterminado). BASIC 2.x no utilizaba la pila al pintar y, por lo tanto, estaba libre de este problema.

Compaq BASIC 1.13 fue el primer BASIC independiente para PC (que no requería Cassette BASIC para ejecutarse) así como también la única versión de BASIC además de IBM BASICA 1.00 y 1.10 que usaba FCB [ aclaración necesaria ] e incluía la declaración LINE original con líneas que se intersectaban (la PAINTdeclaración en Compaq BASIC 1.13 funcionaba como en todas las versiones posteriores de BASICA/GW-BASIC: usaba el nuevo algoritmo de relleno y no tenía pila).

Las primeras versiones de PC DOS incluían varios programas BASIC de muestra que demostraban las capacidades de la PC, incluido el juego BASICA DONKEY.BAS .

GW-BASIC es idéntico a BASICA, con la excepción de incluir el código Cassette BASIC en el programa, lo que le permite ejecutarse en computadoras que no sean IBM y en modelos IBM posteriores que carecen de Cassette BASIC en ROM.

Cartucho IBM PCjr BASIC

Una versión de cartucho ROM de BASIC estaba disponible solo en el IBM PCjr , enviado en 1984, y admitía los modos gráficos adicionales y las capacidades de sonido posibles en esa máquina. [4] Es un superconjunto de BASIC avanzado. [5] El BASIC de cartucho podía funcionar solo dentro de los primeros 128 KB de memoria en el PCjr y no funcionaba con RAM de expansión, es decir , la función DEF SEG no se puede usar para señalar segmentos de memoria por encima de &H1FF0.

El cartucho BASIC se activaba escribiendo BASICA en el indicador de DOS. Por el contrario, las versiones 2.1 y posteriores de IBM BASICA se negaban a ejecutarse si detectaban un PCjr, pero se podían parchear para solucionar esta limitación.

Operación

Cassette BASIC se carga cuando se inicia un PC o PCjr sin un disco o cartucho de arranque. Disk BASIC y Advanced BASIC se cargan cuando se escribe su nombre de comando (BASIC y BASICA respectivamente) en un indicador de comandos DOS (excepto en un PCjr, que activa Cartridge BASIC en su lugar), con algunos parámetros opcionales para controlar la asignación de memoria. Cuando se carga, un mensaje de identificación de inicio de sesión muestra el número de versión del programa y se inicia un editor de texto de pantalla completa (ver imágenes a la derecha). A las teclas de función se les asignan comandos comunes, que se muestran en la parte inferior de la pantalla. Se pueden escribir comandos para cargar o guardar programas, y se pueden escribir expresiones y ejecutarlas en modo directo (inmediato) . Si una línea de entrada comienza con un número, el sistema de lenguaje almacena la siguiente línea de texto como parte del código fuente del programa, lo que permite que un programador ingrese un programa completo línea por línea, con números de línea antes de cada instrucción. Cuando se enumeran en la pantalla, las líneas se muestran en orden creciente de número de línea. Se pueden realizar cambios en una línea de código fuente de un programa que se muestra moviendo el cursor a la línea con las teclas del cursor y escribiendo sobre el texto que aparece en pantalla. El código fuente del programa se almacena internamente en un formato tokenizado en el que las palabras reservadas se reemplazan con un token de un solo byte para ahorrar espacio y tiempo de ejecución. Los programas se pueden guardar en un formato tokenizado compacto u opcionalmente como archivos de texto ASCII de DOS [6] que se pueden ver y editar con otros programas. Como la mayoría de las demás aplicaciones de DOS, IBM BASIC es un programa en modo texto y no tiene funciones para ventanas, íconos, soporte para mouse o edición de cortar y pegar .

Legado

GW-BASIC , lanzado en 1983, es un producto de Microsoft basado en disco que se distribuyó con computadoras MS-DOS que no eran IBM y admite todos los modos gráficos y características de BASICA en computadoras que no tienen IBM Cassette BASIC.

El sucesor de BASICA para las versiones MS-DOS y PC DOS, ahora descontinuado, es QBasic , lanzado en 1991. Es una versión reducida del compilador QuickBASIC de Microsoft : QBasic es un intérprete y no puede compilar archivos fuente, mientras que QuickBASIC puede compilar y guardar los programas en el formato de archivo ejecutable .EXE . QuickBASIC también incluye algunas instrucciones y funciones de lenguaje avanzadas (que involucran principalmente la interfaz del sistema operativo y la programación de lenguaje de máquina de bajo nivel ), admite programas de múltiples módulos e incluye características de depuración avanzadas, todas las cuales están ausentes en QBASIC.

Referencias

  1. ^ Curran, Lawrence J.; Shuford, Richard S. (noviembre de 1983). "IBM's Estridge". BYTE . págs. 88–97 . Consultado el 19 de marzo de 2016 .
  2. ^ ab Williams, Gregg (enero de 1982). "Una mirada más cercana a la computadora personal IBM". BYTE . p. 36 . Consultado el 19 de octubre de 2013 .
  3. ^ Dahmke, Mark (enero de 1983). "The Compaq Portable". BYTE . págs. 30–36 . Consultado el 27 de julio de 2013 .
  4. ^ Comentarios de los lectores: versiones de IBM BASIC, Compute! Magazine , n.º 78, noviembre de 1986, pág. 8, consultado el 23 de diciembre de 2011
  5. ^ IBM. Carta de anuncio de cartuchos PCjr . 1 de noviembre de 1983 ([1]).
  6. ^ Los archivos de texto DOS terminan cada línea con un par de caracteres CR ( retorno de carro , ASCII 13) y LF ( salto de línea , ASCII 10), en ese orden.

Enlaces externos