# Atari BASIC

Atari BASIC es un intérprete del lenguaje de programación de computadoras BASIC para la familia Atari de 8 bits (basada en el microprocesador 6502). Al igual que otros BASIC era un lenguaje interpretado. Esto permitía que las sentencias de programa pudieran ser ejecutadas y probadas inmediatamente al ser ingresadas, sin necesidad de etapas intermedias de compilación o de enlace. Tenía un tamaño de 8 Kilobytes y venía en un cartucho ROM para los Atari modelo 400 y 800, pero estaba en el ROM interno del computador en los modelos posteriores. En los Atari XL/XE, el BASIC podía ser deshabilitado manteniendo presionada la tecla OPTION mientras el computador arrancaba.
El código fuente comentado, así como las especificaciones de diseño del Atari BASIC, fueron publicadas en el libro The Atari BASIC Source Book en 1983.
Atari BASIC también es una denominación común para otros productos: Atari Microsoft Basic es un producto independiente de funcionalidades similares desarrollado por Microsoft para Atari, Atari ST Basic es otro intérprete para Atari ST, y Atari Basic Programming que fue un juego didáctico para la enseñanza del BASIC usando Atari 2600.

## Antecedentes

Atari inicialmente empezó un proyecto para crear una segunda generación de consola de videojuegos para reemplazar la Atari 2600. Sin embargo, el entonces flamante presidente de Atari, Ray Kassar, decidió competir con Apple y más bien usar el nuevo diseño para construir una computadora doméstica. Esta decisión creó una nueva necesidad ya que toda máquina de este tipo tenía una cosa en común por esa época: todas venían con BASIC.
Ante esta eventualidad Atari hizo lo que otras compañías de computadoras domésticas habían hecho: compraron el código fuente de una versión del Microsoft 8K BASIC para el 6502 con la intención de adaptarlo en sus nuevas máquinas. Sin embargo, aunque la versión original para los microprocesadores Intel 8080 era de 8K, la conversión al 6502 ocupaba más de 11K. Los ingenieros de Atari se vieron ante un gran problema al intentar reducir el BASIC y hacerlo caber en los cartuchos Atari de 8K.
Atari requería tener su nueva computadora lista para el Consumer Electronics Show (CES) que se acercaba (enero de 1979) y decidieron buscar ayuda.

### Shepardson Microsystems

En septiembre de 1978 Atari se contactó con la compañía Shepardson Microsystems (SMI) para que completara el BASIC dentro del límite de 8K. SMI había escrito varios programas para la Apple II (que también usaba el microprocesador 6502) y estaba terminando una versión avanzada de BASIC (Cromemco 32K Structured BASIC) para microcomputadoras basadas en el bus S-100 de la compañía Cromemco. El equipo de SMI examinó el código del Microsoft BASIC disponible y decidió que era más conveniente desarrollar una versión completamente nueva que pudiera caber en 8K. Atari estuvo de acuerdo y completaron las especificaciones en octubre de 1978.
Las siguientes personas trabajaron en el proyecto que resultaría en una versión diferente de BASIC, conocida como ATARI BASIC:
    Paul Laughton (autor del Apple DOS) - Líder del proyecto y contribuidor principal.
    Kathleen O'Brien - contribuidora principal.
    Bill Wilkinson - diseño del esquema de punto flotante.
    Paul Krasno - escribió la biblioteca de funciones matemáticas.
    Bob Shepardson - Modificó el Assembler IMP-16 para aceptar tablas sintáxicas especiales inventadas por Paul Krasno
    Mike Peters - operador y programador junior.
Una de las principales diferencias entre el Atari BASIC y la versión de Microsoft fue la manera diferente de manejar las secuencia de caracteres. La versión de Microsoft lo hacía siguiendo el modelo del DEC BASIC, en cambio el Atari BASIC imitó en esto al BASIC de Data General.
El contrato con SMI especificaba el 6 de abril de 1979 como la fecha de entrega, e incluía también un programa de controlador de archivos (que luego sería conocido como DOS 1.0). Atari había planeado llevar una versión inicial del Microsoft BASIC en 8K al CES de enero, para luego cambiarlo por el Atari BASIC antes de sacar el producto al mercado. Sin embargo SMI tuvo listo el cartucho con el Atari BASIC antes de tiempo estipulado, por lo tanto, fue esta versión la que llevó al CES.
Hubo tres revisiones del Atari BASIC:
* Rev A - cartucho usado por las computadoras modelo 400/800/1200XL
* Rev B - estaba integrado de fábrica en los modelos 600XL/800XL, pero también estuvo disponible en cartuchos.
* Rev C - integrado en los modelos más nuevos de 800XL y en todos los /65XE/130XE/800XE/XE Game System. Corregía algunas incompatibilidades entre las revisiones A y B anteriores. También se podía comprar como un cartucho independientes.