El 20 de julio de 2009, en honor al 40 aniversario del alunizaje, se digitalizaron y publicaron en Internet impresiones con el código fuente del programa para la computadora de a bordo Apollo Guidance Computer (AGC) . Han pasado siete años, y ahora este ejemplo único de historia de la computadora ha recibido una segunda vida. Hoy, el código fuente de AGC en ensamblador se publica en Github en su totalidad, abierto para búsqueda, comentarios, tenedores, etc. En el código puede encontrar las llamadas de los famosos errores con los códigos 1201 y 1202 , que tanto preocupaban a Neil Armstrong, y mucho más.En Github, el repositorio Apollo-11 despegó rápidamente en el primer lugar en la lista de los repositorios más populares por día (no hay duda de que en la clasificación semanal tendrá el primer lugar mañana). Realmente hay algo para ver. Es especialmente interesante leer algunos nombres de procedimientos ( BURN_BABY_BURN - MASTER_IGNITION_ROUTINE.s ) y comentarios en el código original.CAF CODE500 # ASTRONAUT: PLEASE CRANK THE
TC BANKCALL # SILLY THING AROUND
CADR GOPERF1
TCF GOTOP00H # TERMINATE
TCF P63SPOT3 # PROCEED SEE IF HE'S LYING
TC BANKCALL # ENTER INITIALIZE LANDING RADAR
CADR SETPOS1
TC POSTJUMP # OFF TO SEE THE WIZARD ...
CADR BURNBABY
El programa tiene un código "temporal", como en muchos programas modernos.TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE
CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE
TC DOWNFLAG # PERMIT X-AXIS OVERRIDE
Y aquí está la versión de 1969 del comentario popular, "Esto nunca debe suceder".CA A
El primer ticket ya se creó en el repositorio de Github , una discusión sobre el "error" que debe corregirse en el programa.El desarrollador de SilverWingedSeraph escribe: "Un usuario tuvo un problema bastante serio con la mezcla criogénica en tanques de oxígeno con la aparición de un mensaje de falla". Para reproducir el error en el programa, repita la siguiente secuencia de acciones:- Construye un módulo de servicio.
- Vuela a la órbita lunar.
- En la órbita lunar, comience a mezclar en tanques de oxígeno.
“Si hay un problema con el cableado en el módulo, entonces el error puede reproducirse. Tenga cuidado, porque la situación puede ser peligrosa para un probador que está tratando de reproducir el error ", dijo el desarrollador en Github, no sin sentido del humor.Por supuesto, se refiere al famoso accidente con el equipo del módulo de servicio Apollo 13, después del cual el módulo tuvo que ser devuelto urgentemente a la Tierra mediante maniobras extraordinarias.En general, hasta la fecha, solo se ha conservado una copia física de las impresiones del programa del módulo lunar. Se conserva un libro impreso en el Museo del Instituto de Tecnología de Massachusetts.El código del programa fue escrito por Don Isles.con colegas Isles personalmente es el autor de unas 2.000 líneas de código que fueron responsables del aterrizaje del módulo lunar.Puede intentar ejecutar los comandos de control de Apollo en el emulador (esto es solo un simulador de computadora, sin la nave espacial en sí). Emulador de
computadora de la nave espacial
Apollo Instrucciones del emulador de Apolo Las computadorasdel Módulo de Comando Apollo (CM) y el Módulo Lunar (LM) aterrizaron automáticamente en la superficie lunar. La computadora controlaba los motores y servomotores en tiempo real. Computadora de control a bordo de la
nave espacial Apollo
Pantalla de computadora de control a bordoLa gestión fue realizada por Apollo Guidance Computer (AGC). La computadora de a bordo estaba equipada con un sistema operativo en tiempo real con soporte para subprocesos múltiples, controlaba todos los sistemas y recibía señales de radares, telescopios, giroscopios y acelerómetros.El libro " Apolo digital " describe bien cómo el programa priorizó y asignó el tiempo de CPU.
Especificaciones técnicas de la computadora de control a bordo de la nave espacial ApolloLos estándares de tiempo AGC fueron establecidos por un resonador de cuarzo con una frecuencia de 2.048 MHz. La memoria de la computadora consistía en 2048 palabras de RAM regrabable y 36 K palabras de ROM con muestreo lineal en múltiples núcleos cosidos. El ciclo de lectura y escritura de RAM y ROM tomó 11.72 μs. La longitud de la palabra era de 16 bits: 15 bits de datos y 1 bit de paridad. El formato de palabra de 16 bits del procesador incluía 14 bits de datos, un bit de desbordamiento y un bit de signo.Ver también:Guía de programación de computadoras Apollo Guidance