Activa las notificaciones para estar al tanto de lo más nuevo en tecnología.

La historia del BASIC de Apple II: Applesoft (parte II)

Applesoft fue el BASIC de punto flotante para las máquinas de 8 bits de Apple. La historia atrás del desarrollo involucró a Microsoft, que en...

applesoft2

Applesoft fue el BASIC de punto flotante para las máquinas de 8 bits de Apple. La historia atrás del desarrollo involucró a Microsoft, que en ese entonces vendía sus intérpretes de BASIC para los microprocesadores más populares.

Como habíamos dicho, en diciembre de 1977 se perdió toda la información del trabajo de Wigginton sobre el intérprete e BASIC de punto flotante, por un error de la empresa donde se alojaba todo el desarrollo. Quien salvó la situación fue Cliff Huston y su computadora IMSAI. Cuando empezó a trabajar en Apple, Huston llevaba su propia computadora porque en ese entonces tenía todo lo que necesitaba para trabajar en ella. Había incluso escrito su propios programas y tenía una lectora de papel. Wigginton y otros habían criticado a Huston por usar equipo que era de otra compañía en las oficinas de Apple, en donde además, la IMSAI se consideraba de mucho menos poder que las Apple II. Sin embargo, gracias a la lectora de papel, Huston pudo leer el código original del BASIC comprado a Microsoft , partirlo en muchos segmentos y permitir así a Wigginton poder continuar con su trabajo. Para ello este último usó el ensamblador cruzado de la IMSAI (el cual corre en una máquina pero genera código ejecutable para otro procesador).

Hay que decir que la capacidad de los discos flexibles era tan poca que el código a ensamblar estaba en varios discos y sólo había una unidad lectora, por lo que cuando se procedía a ensamblar el código, había que ir intercambiando discos en el proceso. No obstante esta incomodidad, el ensamblador hacía la tarea en unos 6 minutos y no en las dos horas usando el servicio “Call Computer”. Mike Scott, para ese entonces, presidente de Apple, trajo una impresora Centronics para usarse con la IMSAI y entonces Wigginton pudo imprimir todo el código fuente en unos 35 minutos. Curiosamente Apple le pagó a Huston una renta por dos años por el uso de su computadora.

Así, la fecha de entrega pudo cumplirse y Applesoft BASIC se lanzó en enero de 987 en cassette. Era un programa de 10K que s parecía en mucho al Integer BASIC (al menos en el look&feel). A esto se le llamó Applesoft I. Sin embargo, la necesidad de tener que cargar el lenguaje en cassette llevaba varios minutos. A pesar de todos estos inconvenientes, esta era la única manera práctica de usar un lenguaje con operaciones de punto flotante en la Apple II. Cuando se cargaba el intérprete y corría éste, aparecía una leyenda que indicaba que Applesoft estaba cargado además de poner la leyenda Copyright (C) 1977 Apple and Microsoft.

Debido a cuestiones de diseño, el intérprete se alojaba precisamente en la memoria que estaba dedicada a las gráficas de “alta resolución” de la Apple II, por lo que con esta versión no se podía hacer nada gráfico. Applesoft I de hecho no tenía ningún comando para manejar gráficas. Así pues, hubo necesidad de una nueva versión de firmware de Applesoft para poder acomodar las características gráficas y poder así usar el intérprete.

Algunos grupos de aficionados a la programación entonces notaron que las instrucciones LET y REM, la primera para asignar el valor a una variable, por ejemplo, LET A=3 y la segunda para poner comentarios: REM este es un comentario, podían ser eliminadas, lo que en principio podía ahorrar valiosos bytes en el código fuente. Así salieron algunos parches que mejoraron la ejecución de Applesoft.

Cabe señalar que Microsoft encontró y corrigió muchos errores en la versión 1.1 de su 6502 BASIC y muchos meses después de terminar el año 1977, salieron con la versión 2 de su Microsoft 6502 BASIC, que incluía un número importante de correcciones que hacían al software mucho más eficiente.

En la primavera de 1978, Randy Wigginton y otros trabajaron sobre la nueva versión de BASIC de Microsoft e hicieron algunos cambios para mejorar el Applesoft. Ahora usaron un ensamblador cruzado en una máquina North Star Horizon (que tenía un Z-80). Corrigieron los errores conocidos y añadieron otros comandos de control únicos para la Apple II. Entre ellos estaba los que permitían manipular gráficas. A esta versión se le denominó Applesoft II y eventualmente salió en cassette, diskette, como firmware (ROM), en la tarjeta del lenguaje (RAM) y finalmente como ROM en las Apple II plus.

Toda esta historia tiene además mucho que ver con las limitaciones de la propia computadora. Hoy en día, con la cantidad de memoria RAM disponible, muchas veces no nos fijamos en estos detalles, pero aquí, el ahorrar bytes en una parte, y otros bytes en otra parte, podían hacer la diferencia entre un programa funcional y otro que simplemente se congelara o no corriera. Para colmo, había que pensar en acomodar el sistema operativo (DOS) que requeriría también memoria. Piénsese que el sistema no podía tener más de 64K bytes de memoria.

Esta nueva versión de Applesoft tenía un manual de usuario y referencia mucho más comprensible que los que Apple sacó para la versión I de Applesoft. Además, permitía incorporar una serie de pequeñas rutinas en ensamblador por parte del usuario usando lo que se llamaba el “ampersand hook”, el cual era el símbolo & el cual al encontrarlo el programa en ejecución, hacía que el sistema brincara a una parte de la memoria y ahí es donde el programador ponía el código que quería ejecutar (en código de máquina, no BASIC). Con esta idea se incorporaron una buena cantidad de herramientas de programación que hacían uso de este truco.

Para 1985 Apple estaba empezando su historia con sus líneas Macintosh y Lisa. Para poder financiar estos proyectos se requería seguir vendiendo las Apple II, IIplus, IIe y IIc. La licencia de uso del BASIC de Microsoft estaba por expirar y Apple sabía que tendría que seguir pagando esta licencia a Gates. Pero éste en lugar de llegar a un acuerdo financiero, ofreció darles 8 años más de licencia a cambio de que Apple pusiese en su nueva línea de computadoras el sistema MacBASIC. De hecho, este producto ya estaba en desarrollo por Apple pero progresaba muy lentamente. Microsoft era casi el proveedor oficial de intérpretes de BASIC y era importante estar en la línea de productos Mac. Jobs no tuvo opción y les dio el código de MacBASIC a Microsoft aunque el desarrollo de este software no fue crítico para la Mac como en el caso de Applesoft para la Apple II.

Comentarios