Como parte de la conmemoración de los 40 años de la llegada del hombre a la Luna, se ha publicado el código fuente de los programas del Módulo de Comandos y Módulo Lunar utilizados en el Apollo.
Se trata de código que se transcribió desde copias impresas que fueron digitalizadas y se encuentran disponibles en PDF. El código transcrito ahora se encuentra en los repositorios de Google Code y se puede ejecutar sobre Virtual AGC (Apollo Guidance Computer), un emulador del AGC que se muestra en el video y que puede correr sobre Linux, MacOSX y Windows entre otros.
El código fuente se trata de un lenguaje muy cercano al código de máquina que se interpretaba en el AGC. Por restricciones de memoria no convenía escribir el código directamente en lenguaje ensamblador o assembly del AGC, por lo que se creó un interprete que funcionaba un poco más lento pero cumplía con las condiciones especiales de estas máquinas. Algunas gracias del código interpretado es que contenía instrucciones para manejar vectores y funciones trigonométricas, algo muy importante en aplicaciones de este tipo.
El código se grababa como firmware y sólo se podían hacer pequeñas modificaciones en caliente. Es notable el hecho de que estas modificaciones no solo se podían recibir desde la tierra, sino que los astronautas también estaban capacitados para meter su propio código en caso de ser necesario.
Aquellos que entiendan código assembly de procesadores antiguos como el MOS6502 (Atari, Commodore, Apple) o Z80 (Spectrum, MSX) no tendrán problemas en entender el del Apollo. Increíblemente el lenguaje interpretado es el que necesita un poco más de habilidad.
Aunque no lo lleguen a ejecutar en sus computadores, es bastante interesante ver cómo se programaban estas máquinas, sobre todo considerando qué tan crítico era la calidad del código. Aún así, se pueden encontrar segmentos que los astronautas no hubieran querido ver:
TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE
CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE
TC DOWNFLAG # PERMIT X-AXIS OVERRIDE
Links:
- Apollo 11 mission’s 40th Anniversary: One large step for open source code… (blog de Google Code)
- Virtual AGC and AGS emulation (proyecto en Google Code)
- The Apollo Guidance Computer A Kinder, Gentler Introduction (Virtual AGC Home page)
Publicado por Franco Catrin el 21 de July 2009 en la categoría Destacados, Software con los tags Apollo, NASA, Open Source. Tiene 46 comentarios.
46 Comentarios
El código fuente del Apollo disponible en Google Code
Ver Comentario... El código fuente del Apollo disponible en Google Code : Blogografia dijo el 21-7-2009 a las 15:39 ...

3Angelfire dijo el 21-7-2009 a las 15:42:
Que excelente noticia, después de todo google no es tan malo, ya me cae un poco mejor

7lol dijo el 21-7-2009 a las 15:43:
xD i hope hope hope… fue la parte mas chistosa del codigo, le voy a hechar una mirada

14leopard dijo el 21-7-2009 a las 15:44:
impresionante…
y hasta esta el diagrama en bloques del circuito del AGC. No deja de impresionarme que la capacidad de proceso de un Pendrive actual es muy superior a la del AGC y sin embargo cumplia a la perfeccion el objetivo para el que fue diseñado. Simplemente me saco el sombrero ante los ingenieros que diseñaron y programaron el artefacto ese.

6LaLo dijo el 21-7-2009 a las 15:47:
Y yo apenas intentando programar (y hacer el programador) mi PIC16F84A-20/P, haber si me animo, quiero hacer al menos un carrito controlado inalambricamente por computadora, y un micro tetris que vi en Youtube

-13LaLo dijo el 21-7-2009 a las 15:48:
Fayerwayer si se quieren quitar la fama de Applewayer publiquen esta nota http://es.engadget.com/2009/07/21/acusan-a-apple-de-conspirar-con-la-mafia-y-colocar-receptores-oc/

17Pandurris dijo el 21-7-2009 a las 15:50:
Catrín publica más cosas porfa, siempre salvando el dia!!!

3frosstatx dijo el 21-7-2009 a las 16:04:
jaja, igual no es muy distinto de ASM, todavia me acuerdo de algunos pogramillas en ASM

0sub7 dijo el 21-7-2009 a las 16:22:
Alguien me puede explicar que significado tiene esto:
[...] Click here to view the embedded video. [...]
Ojo no la traduccion se que quiere decir, pero no le encuentro logica ya que lo veo en muchos comentarios en los articulos.

7The Cellular dijo el 21-7-2009 a las 16:24:
Con esto podemos decir que el mundo de la Informática siempre estuvo ligado a la Era Espacial, qué impresionante ver un código que llega como una leyenda para conocimiento de nosotros y un código que participó en parte de nuestra historia…
Franco Catrin dijo el 21-7-2009 a las 16:24:
13@sub7
Es porque ese texto lo toma el feed RSS y no tiene como distinguirlo del contenido. En otras palabras, el sistema automático que publica la noticia a otros sitios convierte el video a ese texto, y los sitios que lo toman lo publican tal cual.

5pcesar dijo el 21-7-2009 a las 16:28:
Esta interesante!… y pensar que hay gente que no cree esta tremenda hazaña

3me dijo el 21-7-2009 a las 16:44:
A quienes no cachan esa area, podran explicar que significan los primeros comandos con el comentario temporary, I hope? onda “usese en caso de emergencia?

5supreme dijo el 21-7-2009 a las 16:50:
@me: no significa algo “úsese en caso de emergencia”, sino que el código es tan raro y “chanta” que el programador esperaba realmente que ese “parchecito” fuera temporal jajaja. Respecto al propósito de las instrucciones, no tengo idea, lo siento.

3leopard dijo el 21-7-2009 a las 16:58:
@sub7 … el lector de feeds de Opera permite ver los videos incrustados

-2pato dijo el 21-7-2009 a las 17:23:
con que software hablo el tipo de la demo? emula una voz tipo astronauta

10Fredy H. dijo el 21-7-2009 a las 18:01:
@Franco Catrin, Como siempre Salvando a FayerWayer con articulos inteligentes e interesantes, Me saco el Sombrero…….

-2MacroHW » Blog Archive » El código fuente del Apollo disponible en Google Code dijo el 21-7-2009 a las 18:29:
[...] Via FayerWayer [...]

-2Sergio dijo el 21-7-2009 a las 18:33:
Al parecer el gobierno de Obama no va a permitir que ocurra un nuevo monopolio de google y ha tomado en serio la idea de frenarlo, no ocurrira un googlopoly http://www.wired.com/techbiz/it/magazine/17-08/mf_googlopoly

-2Google Code exhibe el código fuente del Apollo XI | Techmez dijo el 21-7-2009 a las 19:04:
[...] Fuente. [...]

2feeze dijo el 21-7-2009 a las 19:33:
Excelente que publiquen este código, le eché un vistazo y se ve bastante bien, código bien indentado, bien documentado. Son sólo muuuchas subrutinas casi-ensamblador, podremos entender un poco el código pero creo que muchos de esos algoritmos se salen del nivel educación del nivel que tenemos actualmente muchos lectores de FW.
El proyecto de GoogleCode trae varias cosas interesantes, por ejemplo plugins (o similares) para distintas aplicaciones para el resaltado de sintaxis de los archivos *.aea y *.agc, yo probé el de vim y funciona bien. También está el wiki (http://code.google.com/p/virtualagc/w/list) que contiene información teórica.
Otra cosa curiosa es ver que utilizaban SOs tipo Unix, esto lo “deduzco” de ver el archivo Makefile y ver las instrucciones que contiene.

0Andrés dijo el 21-7-2009 a las 20:29:
assembler o asembly? = programar en eso es uff mil pega me da ZzZzzZzZz…… hasta pensar la media tarea que se dieron = he programado en el, pero para imprir pantallas y una que otra formula pero de aqui a programar algo para ir a la luna uff se pasaron jajajaja

1Luis León Cárdenas Graide dijo el 22-7-2009 a las 00:08:
Es un ejemplo de cómo puede haber vidas en juego dependiendo de un buen software.
Ver Todos Páginas: [1] 2 Próximos 30 Comentarios →
Ver Todos Páginas: [1] 2 Próximos 30 Comentarios →