Está en la página 1de 3

Applesoft BASIC

Ir a la navegaciónIr a la búsqueda

Información general

Tipo de programa intérprete

Lanzamiento inicial 1977

Información técnica

Plataformas Apple II
admitidas

[editar datos en Wikidata]

El Applesoft BASIC era un dialecto del lenguaje de


programación BASIC suministrado de serie con los microcomputadores Apple II.
Reemplazó al Integer BASIC y era el BASIC en ROM en todas las computadoras de
la serie de Apple II después del modelo original. También fue referido
como FP (por punto flotante) debido al comando usado para invocarlo, a diferencia
de comando INT para el Integer BASIC. El Applesoft BASIC fue suministrado
por Microsoft y su nombre se deriva de los nombres de Apple y Microsoft. Los
empleados de Apple, incluyendo Randy Wigginton, adaptaron el interpretador de
Microsoft para el Apple II y agregaron varias características. La primera versión de
Applesoft fue lanzada en 1977 solamente en cinta de casete y carecía de soporte
apropiado para los gráficos de alta resolución. El Applesoft II, que estaba disponible
en casete, disco y en la ROM del Apple II Plus y modelos subsecuentes, fue lanzado
en 1978. Es esta última versión, que tiene algunas diferencias de sintaxis con
respecto a la primera así como soporte para los modos gráficos de alta resolución
del Apple II, la que la mayoría de la gente entiende por el término "Applesoft".

Índice

 1Antecedentes
 2Código de ejemplo
 3Apple Business BASIC
 4Véase también
 5Enlaces externos
Antecedentes[editar]
Los clientes de Apple exigían una versión de BASIC que soportara cálculos de punto
flotante. Como Steve Wozniak, el creador del Integer BASIC y la única persona que
lo entendían suficientemente bien para agregar las características de punto flotante,
estaba ocupado con la unidad de disco Disk II y con el Apple DOS, Apple buscó a
Microsoft, que era el vendedor de BASIC preferido después de su éxito con el Altair
BASIC, y licenció una versión de 10 KB de BASIC escrita en lenguaje
ensamblador denominada "Applesoft". Se informa que Apple obtuvo de Microsoft
una licencia de ocho años para el Applesoft BASIC por un honorario plano de
$21.000, renovándolo en 1985 con un arreglo que dio a Microsoft los derechos y el
código fuente para la versión de BASIC del Macintosh de Apple.
Applesoft era similar, y de hecho tenía una base de código común, con las
implementaciones en otros computadores basados en el 6502, tales como
el Commodore BASIC: usó números de línea, y los espacios no eran necesarios en
las líneas. Mientras que Applesoft era más lento que el Integer BASIC, tenía muchas
características que carecía éste:

 Strings atómicos: Un string ya no es más un arreglo de caracteres (como


en el Integer BASIC y el C); en lugar de ello, es un objeto de recolección
de basura (como en Scheme y Java). Esto permite arreglos de string;  DIM
A$(10)  resulta en un arreglo de once variables de string numeradas de 0
a 10.
 Arreglos multidimensionales
 variables de punto flotante de simple precisión con 8 bits de exponente y
una parte significativa de 31 bits y capacidades de matemáticas
mejoradas, incluyendo funciones trigonométricas y logarítmicas
 Comandos para gráficos de alta resolución
 Funciones  CHR$ ,  STR$ , y  VAL  para convertir entre los tipos de strings y
numéricos (ambos lenguajes tenían la función  ASC )
 Funciones definidas por el usuario: funciones simples de una sola línea
escritas en BASIC, con un solo parámetro
 Intercepción de errores, permitiendo a los programas BASIC manejar
errores inesperados por medio de una subrutina escrita en BASIC
Inversamente, el Applesoft careció al operador  MOD  (residuo de la división) que había
estado presente en el Integer BASIC.
Considerando que Wozniak se refería originalmente a su Integer BASIC como
"Game BASIC" (BASIC de juego), habiéndolo escrito así para poder escribir un clon
del Breakout para su nueva computadora, pocos juegos de acción fueron escritos en
el Applesoft BASIC por varias razones:

 En esa era de cuidadosamente contar ciclos de reloj y de memoria


limitada, era ineficiente escribir programas dependientes de la velocidad
que corrieran en un interpretador de tiempo de ejecución.
 El uso de los números reales (punto flotante) para todas las operaciones
de matemáticas creó sobrecargas innecesarias y degradó el desempeño.
El Applesoft convertía números enteros a reales antes de realizar
operaciones en ellos, convirtiendo el resultado de nuevo a un número
entero solamente si debía ser asignado a una variable de número entero
(de 16 bits con signo).
 Las shape tables eran una alternativa lenta a los bitmaps. No había
provisión para mezclar texto y gráficos, a excepción de una limitada
"pantalla dividida por hardware" del Apple II (cuatro líneas de texto en la
parte inferior de la pantalla). Así, muchos programas gráficos contuvieron
sus propias rutinas generador de caracteres por bitmap. No se agregó
ninguna provisión en los interpretadores BASIC de los modelos Apple
IIe de 128 KB y Apple IIc para los gráficos de doble resolución y memoria
extendida de las nuevas máquinas, o para el modo de 16 colores
del Apple IIGS. (Beagle Bros ofreció soluciones alternativas en lenguaje
de máquina para estos problemas).
 El programa era almacenado como una lista enlazada de líneas;
un  GOTO  o un  GOSUB  tomaba tiempo lineal O(n), y aunque los programas
de Applesoft no eran muy largos comparados al software de hoy, en un
6502 de 1 MHz esto podía ser un embotellamiento significativo. Los
programas grandes a menudo fueron escritos con las subrutinas más
usadas en el tope del programa para reducir el tiempo de procesamiento
para las llamadas de GOSUB.
 No había ningún soporte para sonido aparte de un comando PEEK que
podía ser usado para chascar (click) el altavoz, aunque se podía también
usar  PRINT  de un carácter bell del ASCII para producir la señal sonora de
alarma del sistema (beep). De todos modos el lenguaje no era
suficientemente rápido para producir más que un zumbido de barítono por
medio de clicks repetidos. Sin embargo, podía ser ejecutada música a
través de varias octavas usando llamadas repetidas a un generador de
tono en lenguaje de máquina.

También podría gustarte