stringtranslate.com

Atari Microsoft BÁSICO

Las variantes Atari Microsoft BASIC y Atari Microsoft BASIC II de la versión 6502 de Microsoft BASIC portadas a las computadoras Atari de 8 bits . La primera versión, lanzada en 1981, requería 32 KB de RAM y se suministraba en disquete . La segunda versión, lanzada el año siguiente, tenía la mayor parte del código en un cartucho ROM con funciones adicionales en un disquete opcional.

Atari Microsoft BASIC era altamente compatible con los BASIC contemporáneos como Applesoft BASIC y Commodore BASIC , en contraste con su propio Atari BASIC , que era un dialecto algo diferente e incompatible en muchos sentidos. Al igual que Atari BASIC, Atari Microsoft BASIC incluyó una serie de nuevos comandos y funciones para aprovechar la plataforma Atari. Estos eran sólo parcialmente compatibles con características similares de Atari BASIC.

Historia

Cuando Microsoft portó su BASIC originalmente basado en Intel 8080 al 6502, se tomaron el tiempo para expandir el formato de punto flotante del formato original de 32 bits a un formato opcional de 40 bits para mejorar la precisión. Ambas versiones podrían compilarse a partir del mismo código proporcionando indicadores del compilador; si se usaba el formato de 32 bits, el código resultante tenía poco menos de 8 KB de longitud, si se usaba el formato de 40 bits, estaba más cerca de los 9 KB.

Las computadoras domésticas Atari de 8 bits fueron diseñadas con una ranura para un  cartucho ROM de 8 KB . Los programadores de Atari lucharon por encajar el BASIC de Microsoft en un solo cartucho y al mismo tiempo agregar funciones para aprovechar la plataforma. En el verano de 1978, Atari decidió subcontratar el esfuerzo de portabilidad para que BASIC estuviera listo a tiempo para el lanzamiento del sistema en 1979, y esto los llevó a Shepardson Microsystems Inc. (SMI). SMI rápidamente decidió que el trabajo era imposible y, en su lugar, propuso crear una versión completamente nueva de BASIC. Esto se convirtió en Atari BASIC y se lanzó con Atari 400 y 800 en 1979. [1]

Atari continuó trabajando con el código MS y lanzó una versión en disquete en 1981. Además de la gama ampliada de comandos estándar en MS en comparación con Atari BASIC, la nueva versión agregó una serie de comandos adicionales para gráficos y sonido y otros. características de la plataforma. También incluía variables enteras y un paquete matemático completo de números enteros [a] que ofrecía un rendimiento mejorado. Sin embargo, como requería al menos 32 KB de RAM y solo se ejecutaba desde un disco, nunca fue particularmente popular.

Una segunda versión, Atari Microsoft BASIC II, trasladó la mayor parte del código a un cartucho ampliado de 16 KB y colocó 11 KB adicionales de código menos utilizado en el disco, lo que significa que muchos programas destinados al uso multiplataforma ahora se podían ejecutar desde el cartucho solo. Lanzado en 1982, BASIC II también tuvo poco uso en el mundo real.

Detalles

El intérprete subyacente se basó en el mismo código MOS 6502 de 9 KB que también formó la base de Commodore BASIC y AppleSoft BASIC , y era en gran medida compatible con ellos. Un aspecto clave de esto fue el sistema de manejo de cadenas, que se basó en el mismo código que esas plataformas. Por el contrario, Atari BASIC usaba un sistema completamente diferente que trataba las cadenas como matrices de caracteres y no era compatible con la mayoría de los otros sistemas ni se podía portar fácilmente desde ellos.

Conservó la biblioteca aritmética de punto flotante en formato de 40 bits original que reemplazó a la notoriamente lenta en las ROM del sistema operativo del sistema y, por lo tanto, ejecutó código matemático a la misma velocidad que otras plataformas y mucho más rápido que Atari BASIC. También incluía un paquete matemático de números enteros adicional para mayor rendimiento. El sistema matemático de números enteros se activaba cuando la asignación era a una variable entera o los valores literales eran todos números enteros. Si alguno de los dos no fuera cierto, los valores enteros se convertirían a punto flotante, se usaría el código de punto flotante para el cálculo y luego se volverían a convertir a números enteros para su almacenamiento.

Otra mejora notable relacionada con el rendimiento estuvo relacionada con FOR...NEXTlos bucles. Atari BASIC los realizó colocando el número de línea de FORen la pila de ejecución, de modo que cuando NEXTse encontrara el asociado pudiera encontrar a qué línea regresar. Por el contrario, MS BASIC siempre había colocado la ubicación de memoria de esa línea en la pila, lo que le permitía volver a ella FORsin tener que buscar en todo el programa la línea coincidente. Esta rareza en Atari BASIC es una de las principales razones de su lento rendimiento y, como esto no era cierto en Atari Microsoft BASIC, generalmente corría mucho más rápido que Atari BASIC.

A diferencia de Atari BASIC, que analizaba y tokenizaba líneas enteras cuando se escribían, los MS BASIC solo tokenizaban parcialmente el código fuente . Cuando se ingresaba una línea, el número de línea se convertía de ASCII a un entero de 16 bits, la primera declaración del programa se convertía en un valor de un solo byte y luego el resto de la línea se dejaba como formato de texto. El último carácter tenía su bit alto configurado para indicar el final de la línea. Dependiendo del caso de uso, la tokenización completa de la línea por parte de Atari BASIC podría dar como resultado que se utilice menos memoria para almacenar el programa. Esta diferencia también significaba que muchos errores de sintaxis sólo se notarían en tiempo de ejecución en el código de MS, a diferencia de la versión de Atari donde se verificaba toda la línea en el momento de la edición. En teoría, la compilación en tiempo de edición debería haber hecho que Atari BASIC fuera mucho más rápido que MS, que vuelve a tokenizar la línea cada vez que se encuentra, pero esta ventaja fue eliminada por los otros problemas de rendimiento mencionados anteriormente.

MS BASIC no incluía un sistema para ingresar formas cortas de palabras clave, a diferencia de Atari BASIC, que permitía abreviarlas con un punto durante la entrada. Cuando se LISTeditara el programa, las palabras clave se ampliarían. La versión de Commodore que agregó la finalización del carácter de control con el mismo fin.

Atari Microsoft BASIC agregó una serie de características nuevas para aprovechar la plataforma. Una adición interesante es AFTER (600) GOTO 100que esperó el número especificado de "jiffies", 1/60 de segundo, y luego realizó el FOR. También incluía el WAITque, en cambio, se detuvo mientras esperaba que cambiara una dirección de memoria antes de pasar a la siguiente línea. WAIThabía sido parte de las primeras versiones de MS BASIC pero no se había utilizado ampliamente.

Atari Microsoft BASIC incluía la mayoría de los comandos de gráficos y sonido de Atari BASIC. Curiosamente, el original DRAWTOse fusionó PLOTutilizando el formato opcional PLOT...TO.... Esto significa que el código de gráficos para Atari BASIC no era compatible. Atari Microsoft BASIC agregó una serie de comandos adicionales para manejar gráficos de jugadores/misiles y conjuntos de caracteres definidos por el usuario que no estaban disponibles en Atari BASIC.

Atari Microsoft BASIC vino en dos paquetes:

Aunque tiene más funciones que Atari BASIC, Microsoft BASIC nunca tuvo la popularidad que tuvo Atari BASIC. Los mayores problemas fueron:

La versión de cartucho eliminó los dos primeros requisitos, pero se necesitaba una unidad de disco para todas sus funciones.

Notas

  1. ^ A diferencia de las versiones de MS BASIC de Commodore, que incluían variables enteras pero realizaban matemáticas convirtiendo los valores a formato de punto flotante.

Referencias

  1. ^ "Dentro de Atari DOS - Introducción".

enlaces externos