Microhistoria: Código fuente de Microsoft BASIC para 6502

Bill-Gates-and-Paul-Allen-19811.jpg

Ya sabemos todos como fueron los inicios de Microsoft, o debería decir Micro-Soft.

Básicamente el primer producto que Microsoft creó fue el Altair Basic, un intérprete de Basic para Altair 8800. A partir de éste, la empresa de Redmon empezó a crear versiones de dicho intérprete para otras arquitecturas como el 6800 de Motorola, Z80 o el MOS 6502, entre otros.

La creación de Microsoft Basic, empezando con su versión para Altair 8800, fue creado en un PDP-10, por lo tanto Microsoft no sólo tenía que crear el propio intérprete sino también el código de emulación para cada una de las arquitecturas para las que lo desarrollaron.

En el código fuente de la versión para MOS 6502 fue escrito usando el lenguaje ensamblador MACRO-10. En el mismo se pueden ver las distintas rutinas o macros para facilitar ciertas partes del desarrollo del intérprete, ciertas constantes para personalizar la compilación del mismo, entre las que se encuentra una llamada: REALIO.

REALIO=4 ;5=STM ;4=APPLE. ;3=COMMODORE. ;2=OSI ;1=MOS TECH,KIM ;0=PDP-10 SIMULATING 6502

 

Esta constante es donde definimos la plataforma para la que queremos compilar.

Entre las distintas arquitecturas tenemos:

Valor Comentario Banner Máquina
0 PDP-10 SIMULATING 6502 SIMULATED BASIC FOR THE 6502 V1.1 Paul Allen’s Simulator on PDP-10
1 MOS TECH,KIM KIM BASIC V1.1 MOS KIM-1
2 OSI OSI 6502 BASIC VERSION 1.1 OSI Model 500
3 COMMODORE ### COMMODORE BASIC ### Commodore PET 2001
4 APPLE APPLE BASIC V1.1 Apple II
5 STM STM BASIC V1.1 (unreleased)
Por lo que conocemos sobre el Altair Basic y el de la versión para 8080, el código de este intérprete fue escrito por Bill Gates, Paul Allen y Monte Davidoff. Paul Allen se encargó de las rutinas de emulación, las macros y código de soporte, Davidoff fue contratado para escribir principalmente las rutinas de operaciones en coma flotante y parece que escribió la librería matemáticas y Bill Gates escribió el resto con la ayuda de Ric Weiland, como se puede ver en los comentarios.

A través del código se pueden ver otras curiosidades, incluido el huevo de pascua introducido por Bill Gates en la versión para Commodore PET, en la que si escribes “WAIT6502,1″, aparece MICROSOFT! en la parte superior izquierda, sobrescribiendo la palabra COMMODORE.

pet2.png pet3.png

En la web pagetable.com hacen un repaso mucho más detallado y técnico, así que no dejes de visitar el enlace si quieres conocer más al respecto.