El código fuente del Apollo disponible en Google Code

YouTube Preview Image

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)

Compartir Compartir
Publicado por Franco Catrin el 21 de July 2009 en la categoría Destacados, Software con los tags , , . Tiene 46 comentarios.

46 Comentarios

El código fuente del Apollo disponible en Google Code

Deja tu Comentario ↓

Ver Comentario... El código fuente del Apollo disponible en Google Code : Blogografia dijo el 21-7-2009 a las 15:39 ...

Angelfire

DesaprobarAprobar3Angelfire dijo el 21-7-2009 a las 15:42:

2

Que excelente noticia, después de todo google no es tan malo, ya me cae un poco mejor :D

lol

DesaprobarAprobar7lol dijo el 21-7-2009 a las 15:43:

3

xD i hope hope hope… fue la parte mas chistosa del codigo, le voy a hechar una mirada

leopard

DesaprobarAprobar14leopard dijo el 21-7-2009 a las 15:44:

4

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.

LaLo

DesaprobarAprobar6LaLo dijo el 21-7-2009 a las 15:47:

5

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

LaLo

DesaprobarAprobar-13LaLo dijo el 21-7-2009 a las 15:48:

6

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/

Eduado

DesaprobarAprobar14Eduado dijo el 21-7-2009 a las 15:49:

7

Esto es arqueologia computacional.

Pandurris

DesaprobarAprobar17Pandurris dijo el 21-7-2009 a las 15:50:

8

Catrín publica más cosas porfa, siempre salvando el dia!!!

frosstatx

DesaprobarAprobar3frosstatx dijo el 21-7-2009 a las 16:04:

9

jaja, igual no es muy distinto de ASM, todavia me acuerdo de algunos pogramillas en ASM

Marcelificus

DesaprobarAprobar-5Marcelificus dijo el 21-7-2009 a las 16:14:

10

Que mal, no esta completo u.u

sub7

DesaprobarAprobar0sub7 dijo el 21-7-2009 a las 16:22:

11

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.

The Cellular

DesaprobarAprobar7The Cellular dijo el 21-7-2009 a las 16:24:

12

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

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.

sub7

DesaprobarAprobar4sub7 dijo el 21-7-2009 a las 16:27:

14

Gracias, poco a poco voy aprendiendo.

pcesar

DesaprobarAprobar5pcesar dijo el 21-7-2009 a las 16:28:

15

Esta interesante!… y pensar que hay gente que no cree esta tremenda hazaña

me

DesaprobarAprobar3me dijo el 21-7-2009 a las 16:44:

16

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?

supreme

DesaprobarAprobar5supreme dijo el 21-7-2009 a las 16:50:

17

@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.

Eduardo RG

DesaprobarAprobar2Eduardo RG dijo el 21-7-2009 a las 16:54:

18

Impresionante !

leopard

DesaprobarAprobar3leopard dijo el 21-7-2009 a las 16:58:

19

@sub7 … el lector de feeds de Opera permite ver los videos incrustados ;-)

CHAMO

DesaprobarAprobar0CHAMO dijo el 21-7-2009 a las 17:09:

20

Sin Palabras

jejejeje

pato

DesaprobarAprobar-2pato dijo el 21-7-2009 a las 17:23:

21

con que software hablo el tipo de la demo? emula una voz tipo astronauta

Fredy H.

DesaprobarAprobar10Fredy H. dijo el 21-7-2009 a las 18:01:

22

@Franco Catrin, Como siempre Salvando a FayerWayer con articulos inteligentes e interesantes, Me saco el Sombrero…….

Sergio

DesaprobarAprobar-2Sergio dijo el 21-7-2009 a las 18:33:

24

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

subzero79

DesaprobarAprobar0subzero79 dijo el 21-7-2009 a las 18:57:

25

Brillante articulo…tomen nota los demás editores.

feeze

DesaprobarAprobar2feeze dijo el 21-7-2009 a las 19:33:

27

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.

pinochet

DesaprobarAprobar-1pinochet dijo el 21-7-2009 a las 19:44:

28

Franco es el mejor

Andrés

DesaprobarAprobar0Andrés dijo el 21-7-2009 a las 20:29:

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

Luis León Cárdenas Graide

DesaprobarAprobar1Luis León Cárdenas Graide dijo el 22-7-2009 a las 00:08:

30

Es un ejemplo de cómo puede haber vidas en juego dependiendo de un buen software.

Deja tu Comentario

XHTML: Puedes usar: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Previsualizar comentario?