Apollo Guidance Computer - CEAL

Anuncio
Apollo Guidance Computer
1 El AGC en el Apolo
El Computador de Navegación del Apolo ó Apollo
Guidance Computer (en adelante AGC) era un elemento fundamental del programa Apolo. Su papel en el programa espacial fue proporcionar la capacidad de cálculo
necesaria para controlar la orientación, y la navegación
del módulo de mando (CM, de Command Module) y del
módulo lunar (LM, de Lunar Module). Este ordenador
destaca por haber sido uno de los primeros computadores basados en CIs.
Cada vuelo a la Luna (a excepción del Apolo 8, que no llevó módulo lunar en su misión a la órbita lunar) tenía dos
AGCs, uno en el módulo de mando y otro en el módulo
lunar. El AGC del módulo de mando estaba situado en
el centro del sistema de navegación y orientación (G&C)
de la nave. El AGC del módulo lunar llevaba su propio
sistema primario de orientación, control y navegación del
El AGC y su interfaz DSKY se desarrollaron a principios Apolo, conocido por el acrónimo de PGNCS (pronunde los 1960s por el MIT Instrumentation Laboratory para ciado como pings).
el programa Apolo.
Cada misión lunar tuvo dos ordenadores adicionales:
• El computador digital de la lanzadera (LVDC) en el
anillo de instrumentación del propulsor Saturn V, y
• el sistema de orientación para aborto (AGS) del módulo lunar, para su uso en caso de fallo eventual del
LM PGNCS. El AGS se podía usar para despegar
desde la Luna, y para reencontrarse con el módulo
de mando, pero no para alunizar.
2 Diseño
El AGC se diseñó en el MIT Instrumentation Laboratory
bajo la dirección de Charles Stark Draper, con el diseño hardware a cargo de Eldon C. Hall.[1] Los primeros
trabajos sobre la arquitectura llegaron de manos de J.H.
Laning Jr., Albert Hopkins, Ramon Alonso,[2] [3] y Hugh
Blair-Smith.[4] La empresa Raytheon fabricó el hardware
de vuelo, y Herb Thaler[5] también estaba en el equipo de
diseño.
La interfaz de pantalla y teclado (DSKY) del Apolo Guidance
Computer montada en el panel de control del módulo de mando,
con el Flight Director Attitude Indicator (FDAI) encima.
El computador de vuelo del Apolo fue el primero en
usar circuitos integrados (CIs). Mientras que la versión
Block I usaba 4100 CIs, conteniendo cada uno una sencilla puerta NOR de 3 entradas, la versión posterior Block II
(usada en los vuelos tripulados) empleó 2800 CIs, cada
uno con dos puertas NOR de 3 entradas.[1]:34 Los CIs,
de Fairchild Semiconductor, se implementaron usando
lógica resistencia-transistor (RTL) en un flat-pack. Fueron conectados mediante wire wrap, y luego el cableado se incorporó en un molde plástico de epoxy. Al usar
un único tipo de integrado (las doble NOR3) para todo
el AGC, se evitaron los problemas que plagaban los primeros diseños de computadores basados en CIs, como
el computador de guiado Minuteman II , que usaba una
mezcla de puertas con lógica diodo-transistor y otras con
lógica diodo-resistor.
Lista parcial de los códigos numéricos para verbos y nombres
en el Apollo Guidance Computer. Fueron impresos en un panel
lateral como guía de referencia rápida.
1
2
2
El computador tenía 2048 palabras de memoria de núcleos magnéticos borrable y 36 kilopalabras de memoria
de núcleos cableados de solo lectura. Ambas tenían un
ciclo de 11,72 micro-segundos. La longitud de la palabra
de memoria era de 16 bits: 15 bits de datos y 1 bit de paridad impar. El formato de palabra de la CPU de 16 bits
eran 14 bits de datos, 1 bit de overflow, y 1 bit de signo
(en representación complemento a uno).
2.1
Interfaz DSKY
DISEÑO
relés electromecánicos que limitaban su velocidad de refresco (la versión posterior Block II usaban rectificadores
controlados de silicio más veloces). En ellos se podían visualizar tres números de 5 dígitos con signo en base octal
o decimal, y se usaban típicamente para mostrar vectores
tales como la actitud del vehículo espacial o un cambio
de velocidad necesario (delta-V). Aunque los datos se almacenaban internamente en unidades métricas, estos se
mostraban según el sistema anglosajón de unidades. Esta
interfaz tipo calculadora[nb 1] fue la primera de su clase, y
el prototipo para todas la interfaces de paneles de control
similares.
El módulo de mando tenía dos DSKYs conectadas a su
AGC; una situado en el panel de instrumentos principal y
una segunda en la bahía de equipos cerca de un sextante
que se usaba para alinear la plataforma de navegación
inercial. El módulo lunar tenía una única interfaz DSKY
para su AGC. Unos indicadores de actitud (FDAI), controlados por el AGC, se situaban sobre la DSKY en la
consola del comandante y en el LM.
En 2009, se vendió un DSKY por $50788 en la subasta
pública organizada por Heritage Auctions.[6]
2.2 Temporización
Interfaz de usuario DSKY del computador del Apolo.
Gimbal Lock
(yellow)
Temperature
caution light
(yellow)
Program
condition light
(yellow)
Computer Activity
status light
(green)
Verb code
display
Program number
display
Uplink Activity
status light (white)
Noun code display
No Attitude
status light (white)
Data display (register 1)
Standby status
light (white)
Data display (register 2)
Key Release
status light (white)
Data display (register 3)
+
Operator Error
status light (white)
Clear Data pushbutton
Restart condition
light (yellow)
Enter Data pushbutton
Tracker condition
light (yellow)
Proceed pushbutton
LR Altitude Data
No Good caution
light (yellow)
Reset pushbutton
LR Velocity Data
No Good caution
light (yellow)
Verb pushbutton
Key Release pushbutton
Noun
pushbutton
Diagrama de la interfaz DSKY del LM.
La interfaz de usuario con la que se accedía al AGC era
la DSKY ( abreviatura del inglés display and keyboard,
que en castellano significa teclado y pantalla), pronunciado comúnmente como dis-key. Poseía un vector de indicadores luminosos, varios visualizadores numéricos y
un teclado tipo calculadora. Los comandos se introducían
como números de dos dígitos: Verbo, y Nombre. El Verbo describía el tipo de la acción a realizar y el Nombre
especificaba el dato afectado por la acción indicada por
dicho verbo.
El cristal oscilador del reloj del AGC tenía una frecuencia
de unos 2.048 MHz. Esta señal se dividía por dos para
producir un reloj de 1.024 MHz de cuatro fases que usaba
el AGC para realizar las operaciones internas. Además, la
señal de 1.024 MHz se dividía por dos para producir una
señal de 512 kHz denominada frecuencia maestra; esta
señal se usaba para sincronizar los sistemas externos del
Apolo.
A su vez, la frecuencia maestra primero se dividía mediante un escalador por cinco, usando un contador en anillo para producir una señal de 102.4 kHz. Luego era dividida por dos a través de 17 etapas consecutivas: desde F1
(51.2 kHz) hasta F17 (0.78125 Hz). La etapa F10 (100
Hz) era retroalimentada hacia el AGC para incrementar
el reloj en tiempo real y otros contadores involuntarios
usando el Pinc (detallado a continuación). La etapa F17
se usaba para cargar intermitentemente el AGC cuando
trabajaba en modo standby.
2.3 Registros centrales
El AGC tenía cuatro registros de 16 bits con propósitos
computacionales conocidos como los registros centrales:
También había cuatro posiciones en la memoria central,
en las direcciones 20-23, denominadas posiciones de edición porque lo que estuviera almacenado allí sería devuelto desplazado o rotado un bit, excepto para lo que fuera
Los numerales se mostraban a través de visualizadores de desplazado a la derecha 7 bits, para extraer uno de los
siete segmentos electroluminescentes de alto voltaje de 2 códigos de operación de 7 bits empaquetados en una
color verde. Para controlar estos visualizadores se usaban palabra. Esto era común a los AGCs del Bloque I y del
2.5
Conjunto de instrucciones
3
Bloque II.
2.4
Otros registros
Módulo lógico del Bloque II, con integrados flat-pack.
Doble puerta NOR del AGC
El DSKY y el AGC en una exposición en el Computer History Museum. El AGC está desmontado mostrando sus módulos lógicos.
Esquema de la doble puerta NOR del AGC
Prototipo de módulo lógico del Bloque I de AGC.
un tipo especial de la instrucción INDEX llamada EXTEND, justo antes de la instrucción. Las instrucciones
del AGC de Block I son:
El AGC tenía varios registros adicionales que se usaban TC (transfer control) Salto incondicional a la dirección
especificada en la instrucción. La dirección de reinternamente durante el transcurso de una operación:
torno se almacenaba automáticamente en el registro
Q, de forma que la instrucción TC se podía emplear
para llamar a subrutinas.
2.5 Conjunto de instrucciones
El formato de las instrucciones emplea 3 bits para el có- CCS (count, compare, and skip) Instrucción de salto
digo de operación y 12 bits para las direcciones. Block I
condicional complejo. El registro A se cargaba con
tenía 11 instrucciones: TC, CCS, INDEX, XCH, CS, TS,
datos recuperados de la dirección especificada en la
AD, y MASK (básicas), y SU, MP y DV (extras). Las
instrucción. (Debido a que el AGC usa la notación
ocho primeras, llamadas instrucciones básicas eran utilide complemento a 1, existen dos representaciones
zadas directamente por el código de operación de 3 bits.
del 0. Cuando todos sus bits están a 0, se llama +0
El acceso a las últimas tres instrucciones era a través de
[más cero]. Si todos los bits están a 1, se llama −0
4
2
DISEÑO
[menos cero].) El valor absoluto disminuido (DABS) CS (clear and subtract) Carga el registro A con el
se operaba y se almacenaba en el registro A. Si el
complemento a 1 del dato referenciado en la direcnúmero era mayor de 0, el DABS decrementaba el
ción de memoria especificada.
valor en 1; si el número era negativo se calculaba su
complemento antes de ser decrementado (ese es el TS (transfer to storage) Almacena el registro A en una
valor absoluto). Por disminuido se entiende “decredirección de memoria específica. TS además detecmentado pero no por debajo de cero”. Por lo tanto,
ta y corrige desbordamientos de tal forma que puede
cuando el AGC ejecuta la función DABS, los núpropagar el acarreo de bits en una suma/resta multi
meros positivos tenderán a +0 y también lo harán
precisión. Si el resultado no produce desbordamienlos negativos, pero después de informar su valor neto (los dos bits izquierdos de A con el mismo vagativo a través del salto de cuatro vías (a continualor) no ocurre nada especial; si hay desbordamiento
ción). El último paso en CCS es el salto de cuatro
(esos dos bits distintos), el 1 más a la izquierda se llevías, dependiendo del dato del registro A antes del
va a la memoria como el bit de signo y el registro A
DBAS. Si el registro A era mayor que 0, CCS saltase cambia a +1 o −1 según corresponda, y el control
ba a la primera instrucción inmediatamente después
salta a la segunda instrucción después de TS. Code CCS. Si el registro A contenía +0, CCS saltamo siempre es posible (aunque anormal) que suceba a la segunda instrucción después de CCS, y −0
da un desbordamiento, la instrucción TS se sigue de
saltaba a la cuarta instrucción después de CCS. El
una TC a la lógica de no desbordamiento; cuando es
objetivo principal de la cuenta era facilitar los buuna posibilidad normal (como en sumas/restas mulcles sencillos, controlados por un contador posititi precisión), la instrucción TS va seguida por CAF
vo, para acabar en un CCS, y un TC al principio
ZERO (CAF = XCH a memoria fija) para compledel bucle, equivalente al BCT del IBM 360. La funtar la formación del bit de acarreo (+1, 0 o −1) en
ción de valor absoluto se consideró suficientemente
la siguiente palabra de alta precisión. Los ángulos se
importante para ser incorporada dentro de esta insmantenían en precisión simple, mientras que las distrucción; cuando se usa para solamente esta función,
tancias y velocidades se almacenaban en doble prela secuencia después de CCS era TC *+2, TC*+2,
cisión y el tiempo transcurrido en tripe precisión.
AD ONE. Un efecto colateral curioso era la creación y uso de agujeros CCS cuando se sabía que el
valor probado nunca sería positivo, que ocurría más AD (add) Añade el contenido de la memoria al registro
A y almacena el resultado en A. Los dos bits más a
a menudo de lo que se esperaba. Eso dejaba dos pala izquierda de A pueden ser diferentes (desbordalabras completas desocupadas y era responsabilidad
miento) antes o después de AD. El hecho de que el
de un comité especial ubicar valores constantes en
desbordamiento sea un estado más que un evento,
esos agujeros.
perdona amplía las limitaciones del desbordamiento cuando se suman más de dos números siempre y
INDEX Suma el dato recuperado de la dirección especuando ninguno de los totales intermedios supera el
cificada en la instrucción, a la siguiente instrucción.
doble de la capacidad de una palabra.
INDEX se puede usar para sumar o restar un índice
a la dirección base especificada por el operando de
la instrucción siguiente a INDEX. Este método se MASK Ejecuta un AND de bits (booleano) de la memoria con el registro A y almacena el resultado en
usa para implementar vectores, matrices y tablas de
el registro A.
búsqueda; desde que la suma se hace en ambas palabras completas, también se usaba para modificar el
código de operación en una instrucción extra, y en MP (multiply) Multiplica el contenido del registro A
raras ocasiones ambas funciones a la vez.
por el dato de la dirección de memoria referenciada
y almacena la parte más significativa del producto en
el registro A y la menos significativa en el registro
RESUME Una particularidad de INDEX (INDEX 25).
LP. Ambas partes del producto comparten el signo.
Esta es la instrucción usada para volver de una interrupción. Provoca que la ejecución vuelva al punto
de la interrupción.
DV (divide) Divide el contenido del registro A por el dato referenciado en la dirección de memoria. AlmaXCH (exchange) Intercambie el contenido de la memocena el cociente en el registro A y el valor absoluto
ria con el contenido del registro A. Si la dirección de
del resto en el registro Q. De forma distinta a las mámemoria especificada es de memoria de sólo lectuquinas modernas, los números reales se trataban cora, el contenido de la memoria no se ve afectado, y la
mo fracciones (punto decimal justo a la derecha del
instrucción únicamente carga el registro A. Si es una
bit de signo), de manera que se podía producir bamemoria borrable, se alcanza la corrección de dessura si el divisor no era tan largo como el dividendo;
bordamiento (overflow) almacenando el bit más a la
no había protección frente a estas situaciones. En el
izquierda de los 16 bits de A como el bit de signo.
AGC del Block II, un dividendo de doble precisión
2.7
Modo Standby
comenzaba en A y L (el registro LP del Block II), y
el resto, con su signo, se dejaba en L. Esto simplificaba considerablemente la subrutina para la división
de doble precisión.
5
del AGC durante los TP7 a TP10. Después del TP10, el
dato existente en el registro G se escribía en la memoria.
Los 15 bits más bajos de cada palabra contenían instrucciones AGC o datos, usando el bit 16 como bit de paridad.
Este bit se ponía a 0 o 1 a través de un circuito de generaSU (subtract) Resta (complemento a 1) el dato en la podor de paridad de forma que la suma de 1 en cada palabra
sición de memoria referencia del contenido del reen la memoria, siempre fuera un número impar.
gistro A, almacenando el resultado en A.
Para verificar el bit de paridad, se disponía de un circuito
Las instrucciones se implementaban en grupos de 12 pa- de chequeo de paridad que se encargaba de la verificasos, llamados pulsos de temporización (timing pulses). ción en cada ciclo de memoria; si el bit no tenía el valor
Los pulsos se nombraban de TP1 a TP12. Cada conjunto esperado, se asumía que el dato estaba corrompido y se
de 12 pulsos se llamaba subsecuencia de instrucción. Las iluminaba la luz de alarma de paridad en el panel.
instrucciones simples, como TC, se ejecutaban en una sola subsecuencia de 12 pulsos. Las instrucciones más complejas necesitaban varias subsecuencias. La instrucción 2.7 Modo Standby
de multiplicación (MP) usaba 8 subsecuencias: una inicial
llamapa MP0, seguida de una subsecuencia MP repetida El AGC tenía un modo de ahorro de energía controlado
6 veces y terminada por MP3. Se redujo a 3 subsecuen- por un interruptor de standby. Este modo cortaba la cocias en Block II. Cada pulso de temporización (TP) en rriente del AGC excepto al reloj de 2,048 MHz y al conuna subsecuencia podía disparar hasta 5 pulsos de control. tador de impulsos. La señal F17 del contador de impulsos
Los pulsos de control eran señales que hacía en trabajo encendía y apagaba el AGC en intervalos de 1,28 segunde la instrucción, como leer el contenido de un registro dos. En este modo, el AGC ejecutaba funciones esenciales, chequeaba el interruptor de standby y si estaba pulsaen el bus, o escribir datos del bus en un registro.
do, cortaba la corriente y volvía a dormir hasta la siguiente señal F17.
2.6
Memoria
La memoria del AGC Block I estaba organizada en bancos de 1K palabras (KP). El primer banco (banco 0) era
de memoria borrable (RAM). Todos los siguientes bancos eran memoria fija (ROM).
Cada instrucción AGC tenía un campo de direccionamiento de 12 bits. Los bits más bajos (1-10) direccionan
la memoria dentro de cada banco. Los bits 11 y 12 seleccionan el banco: 00 selecciona el banco RAM (banco 0),
01 el banco 1 (ROM), 10 el siguiente (banco 2, ROM) y
11 selecciona el registro de banco, que se puede usar para
seleccionar cualquier banco por encima del 2. Los bancos
1 y 2 se denominaban bancos de memoria fijo-fijo porque siempre estaban disponibles independientemente del
contenido del registro de banco. Los bancos 3 y superior e
llamaban fijo-seleccionable porque el banco seleccionado
se seleccionaba por el registro de banco.
Originalmente, el AGC Block I tenía 12KP de memoria fija, pero se incrementó posteriormente a 24 KP. El
Block II tenía 32 KP de memoria fija y 4 KP de memoria
RAM. El AGC transfería datos desde y hacia la memoria a través del registro G en un proceso llamado ciclo de
memoria. El ciclo de memoria duraba 12 pulsos de temporización (11,72 μs), comenzando en el TP1 cuando el
AGC cargaba la dirección de memoria a ser leída en el
registro S. El hardware de la memoria recuperaba el dato/la palabra de la memoria de la dirección especificada
en el registro S. Las palabras de la RAM se depositaban
en el registro G en el TP6; las palabras de la ROM estaban
disponibles en el TP7. La palabra recuperada de la memoria quedaba disponible en el registro G para el acceso
En el modo standby el AGC permanecía dormido la mayor parte del tiempo, por lo que no se despertaba para
ejecutar la instrucción Pinc necesaria para actualizar el
reloj en tiempo real del AGC a intervalos de 10 ms. Para
compensarlo, una de las funciones ejecutadas por el AGC
cada vez que se despertaba era actualizar el reloj en tiempo real en 1,28 segundos.
El modo standby se diseñó para reducir el consumo de
energía de 5 a 10 W (sobre 70W) durante el curso medio
del vuelo, cuando el AGC no era necesario. Sin embargo,
en la práctica, el AGC se dejó encendido en todas las fases
de la misión y nunca se usó esta característica.
2.8 Buses de datos
El ACG tenía un buses de lectura y escritura de 16 bits.
Los datos de los registros centrales (A, Q, Z o LP), u otros
registros internos se podían colocar en el bus de lectura
con una señal de control. El bus de lectura se conectaba
con el bus de escritura a través de un búfer, de forma que
cualquier dato que aparecía en el bus de lectura, también
aparecía en el de escritura. Otras señales de control podían copiar los datos del bus de escritura en los registros.
Las transferencias de datos se comportaban de la siguiente manera: para mover la dirección de la siguiente instrucción desde el registro B al registro S, se empleaba una
señal de control RB (READ B). Esto causaba que la dirección se moviese del registro B al bus de lectura y de
ahí al bus de escritura. Una señal de control WS (WRITE
S) movía la dirección desde el bus de escritura al registro
S.
6
7
Existía la posibilidad de leer simultáneamente varios registros en el bus de lectura. Cuando esto ocurría, los datos
de cada registro se incorporaban al bus a por medio de un
OR (inclusivo). Este OR se usó para implementar la instrucción MASK que era una operación AND lógica. Debido a que el AGC no tenía posibilidad de hacer un AND
lógico, pero sí un OR lógico a través del bus, y se puede
invertir datos a través del registro C, según el teorema de
De Morgan, se podía implementar un AND lógico a base
de OR lógico y NOT, invirtiendo ambos operandos, ejecutando un OR lógico en el bus e invirtiendo el resultado.
2.9
VÉASE TAMBIÉN
tenía ninguna aplicación más prioritaria, por lo que la luz
se encontraba apagada. La aplicación dummy se cancelaba si existía alguna tarea de mayor prioridad pendiente
de ejecutar, lo que se indicaba mediante el encendido de
la luz de iluminación de la actividad del ordenador.
Software
Margaret Hamilton, durante el periodo como principal ingeniera
de software de vuelo del proyecto Apolo.
Cuando se terminaron de definir los requisitos de diseño
del AGC, el software necesario para su desarrollo, así como las técnicas de programación apropiadas no existían,
por lo que tuvieron que ser diseñadas desde cero.
El software AGC estaba escrito en lenguaje de programación AGC, y era almacenado en memoria de núcleos
cableados. Existía un simple sistema operativo de tiempo
real que consistía en el Exec, un sistema de ordenamiento de procesos que podía ejecutar hasta ocho 'tareas’ a la
vez usando una arquitectura cooperativa multitarea (cada
tarea debía periódicamente devolver el control al Exec,
que entonces comprobaba si había alguna tarea pendiente con mayor prioridad). También existía un componente de interrupción llamado Waitlist, que podía programar
múltiples tareas de una duración determinada. Estos procesos eran cortas listas de código de ejecución que podía
autoprogramarse para una nueva ejecución en el Waitlist,
o podía lanzar una operación mayor, al iniciar una 'tarea'
con el Exec.
La ejecución de los procesos del Exec se basaban en su
prioridad. La tarea de menor prioridad, llamada dummy
job, se encontraba siempre presente. Realizaba chequeos
de diagnóstico y controlaba una luz verde relacionada con
la actividad del ordenador en el DSKY: si la aplicación
dummy estaba en marcha, significaba que el ordenador no
Hamilton durante el proyecto Apolo, con una columna de tomos
conteniendo el lenguaje de programación del AGC.
El AGC también disponía de un sofisticado intérprete de
software, desarrollado por el MIT Instrumentation Laboratory, que implementaba una máquina virtual de mayor
complejidad y capacidad de pseudo-instrucciones que el
AGC nativo. Estas instrucciones simplificaban los programas navigacionales. El código interpretado, que permitía trigonometría de doble precisión, aritmética escalar
y vectorial (16 y 24 bits), e incluso instrucciones MXV
(matriz × vector), podía mexclarse con código AGC nativo.
3 El bloque II
4 EL problema del PGNCS
5 Código de error 00404
6 Aplicaciones después del Apollo
7 Véase también
• Apollo PGNCS - el sistema primario de navegación
10.2
Documentación del diseño del hardware del AGC, y particularmente el uso de los nuevos circuitos integrados en lugar de transistores 7
y orientación del Apollo
• AP-101 - computadores (derivados del IBM S/360)
que se usaron en el transbordador espacial
• Historia del hardware de computador
8
Notas
[1] The first advanced desktop calculators hit the market in
roughly the same time frame, with scientific and then programmable pocket calculators appearing during the following decade. The first programmable handheld calculator,
the HP-65, was tried on backup computations aboard the
Apollo Command/Service Module in the Apollo-Soyuz
Test Project in 1975.
9
Referencias
[1] Hall, Eldon C. (1996), Journey to the Moon: The History
of the Apollo Guidance Computer, Reston, Virginia, USA:
AIAA, p. 196, ISBN 156347185X
[2] «Ramon Alonso’s introduction», AGC History Project
(Caltech archive, original site closed) (MIT), 27 de julio
de 2001, consultado el 30 de agosto de 2009
[3] «Ramon Alonso’s interview (Spanish)», Ramón Alonso, el
argentino que llevó a la Apollo 11 a la Luna (Diario La
Nacion), 7 de marzo de 2010
[4] «Hugh Blair-Smith biography», AGC History Project (Caltech archive, original site closed) (MIT), January, 2002,
consultado el 30 de agosto de 2009
[5] «Herb Thaler introduction», AGC History Project (Caltech
archive, original site closed) (MIT), 14 de septiembre de
2001, consultado el 30 de agosto de 2009
[6]
10
•
Enlaces externos
Wikimedia Commons alberga contenido
multimedia sobre Apollo Guidance Computer.
Commons
10.1
Documentación sobre el AGC y su
desarrollo
• Computers Take Flight – By James Tomayko
• The Apollo Guidance Computer - A Users View
(PDF) – By David Scott, Apollo mission astronaut
• Lunar Module Attitude Controller Assembly Input
Processing (PDF) – By José Portillo Lugo, History
of Technology
• The MIT AGC Project – With comprehensive document archive
• Luminary software source code listing, for Lunar Module guidance computer. (nb. 622 Mb)
• Colossus software source code listing, for
Command Module guidance computer. (nb.
83 Mb)
• National Air and Space Museum’s AGC Block I and
Dsky
• Annotations to Eldon Hall’s Journey to the Moon –
An AGC system programmer discusses some obscure details of the development of AGC, including
specifics of Ed’s Interrupt
10.2 Documentación del diseño del hardware del AGC, y particularmente el
uso de los nuevos circuitos integrados
en lugar de transistores
• Apollo Guidance Computer Schematics
• AGC Integrated Circuit Packages
• Integrated Circuits in the Apollo Guidance Computer
10.3 Documentación del software operativo del AGC
• Delco Electronics, Apollo 15 - Manual for CSM and
LEM AGC software used on the Apollo 15 mission,
including detailed user interface procedures, explanation of many underlying algorithms and limited
hardware information. Note that this document has
over 500 pages and is over 150 megabytes in size.
• AGC4 Memo #9, Block II Instructions – The infamous memo that served as de facto official documentation of the instruction set
• Stengel, R., Manual Attitude Control of the Lunar
Module, J. Spacecraft and Rockets, Vol. 7, No. 8,
Aug 1970, pp. 941–948.
• Computers in Spaceflight: The NASA Experience – By
James Tomayko (Chapter 2, Part 5, The Apollo guidance computer: Hardware)
• Source code for Command Module code (Comanche054) and Lunar Module code (Luminary099) as
text.
8
10 ENLACES EXTERNOS
10.4
Algunos proyectos y simuladores basados en el AGC
• AGC Replica – John Pultorak’s successful project to
build a hardware replica of the Block I AGC in his
basement. Mirror site: AGC Replica.
• Virtual AGC Home Page – Ronald Burkey’s AGC
simulator, plus source and binary code recovery for
the Colossus (CSM) and Luminary (LEM) SW
• Project Apollo for Orbiter – Addon for Orbiter spaceflight simulator, working towards a full simulation
of the CSM and LEM including the Virtual AGC.
• Eagle Lander 3D Shareware Lunar Lander Simulator with a working AGC and DSKY (Windows only)
10.5
Reportajes
• Weaving the way to the Moon (BBC News)
9
11
Origen del texto y las imágenes, colaboradores y licencias
11.1
Texto
• Apollo Guidance Computer Fuente: https://es.wikipedia.org/wiki/Apollo_Guidance_Computer?oldid=89560729 Colaboradores: GermanX, Hanjin, VolkovBot, Chuox, Drinibot, Bigsus-bot, Enen, Jerowiki, KLBot2, Invadibot, Elvisor, Makecat-bot, BenjaBot, Arreglaora,
Ks-M9 y Anónimos: 4
11.2
Imágenes
• Archivo:AGC_user_interface.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/c/cb/AGC_user_interface.jpg Licencia:
Public domain Colaboradores: http://www.nasa.gov/centers/dryden/about/Organizations/Technology/Facts/TF-2001-02-DFRC_prt.htm
Artista original: NASA
• Archivo:AGClogicmodule.agr.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/f/fc/AGClogicmodule.agr.jpg Licencia:
CC BY-SA 3.0 Colaboradores: Trabajo propio Artista original: ArnoldReinhold
• Archivo:Agc_mount.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/f/fc/Agc_mount.jpg Licencia: Public domain Colaboradores: NASA (pd) Artista original: The original uploader was Grabert de Wikipedia en alemán
• Archivo:Agc_nor2.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/f/f2/Agc_nor2.jpg Licencia: Public domain Colaboradores: Transferido desde de.wikipedia a Commons por henristosch. Artista original: The original uploader was Grabert de Wikipedia en
alemán
• Archivo:Agc_nor2a.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/5/59/Agc_nor2a.jpg Licencia: Public domain Colaboradores: Transferido desde de.wikipedia a Commons por henristosch. Artista original: The original uploader was Grabert de Wikipedia
en alemán
• Archivo:Agc_verb-noun-list.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/e/e8/Agc_verb-noun-list.jpg Licencia: Public domain Colaboradores: Trabajo propio Artista original: Brandrodungswanderfeldhackbau
• Archivo:Agc_view.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/7/79/Agc_view.jpg Licencia: Public domain Colaboradores: Transferido desde de.wikipedia a Commons por henristosch. Artista original: The original uploader was Grabert de Wikipedia en
alemán
• Archivo:ApolloGuidanceComputerwithDSKY.agr.jpg
Fuente:
https://upload.wikimedia.org/wikipedia/commons/d/dd/
ApolloGuidanceComputerwithDSKY.agr.jpg Licencia: CC BY-SA 3.0 Colaboradores: Trabajo propio Artista original: ArnoldReinhold
• Archivo:Apollo_DSKY_interface.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/f/f1/Apollo_DSKY_interface.svg Licencia: Public domain Colaboradores: Self-made in Inkscape; based on the Apollo Operations Handbook (File:DSKYS interface.jpg,
by NASA) and a NASA photo from http://www.nasa.gov/centers/dryden/about/Organizations/Technology/Facts/TF-2001-02-DFRC_prt.
htm Artista original: Oona Räisänen & NASA
• Archivo:Commons-logo.svg Fuente: https://upload.wikimedia.org/wikipedia/commons/4/4a/Commons-logo.svg Licencia: Public domain Colaboradores: This version created by Pumbaa, using a proper partial circle and SVG geometry features. (Former versions used
to be slightly warped.) Artista original: SVG version was created by User:Grunt and cleaned up by 3247, based on the earlier PNG version,
created by Reidab.
• Archivo:Dsky.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/e/e2/Dsky.jpg Licencia: Public domain Colaboradores:
• eigene Arbeit
• own work
Artista original: Brandrodungswanderfeldhackbau
• Archivo:Margaret_Hamilton.gif Fuente: https://upload.wikimedia.org/wikipedia/commons/2/2e/Margaret_Hamilton.gif Licencia: Public domain Colaboradores: http://threefingeredfox.net/?p=143 Artista original: NASA
• Archivo:Margaret_Hamilton_in_action.jpg Fuente: https://upload.wikimedia.org/wikipedia/commons/a/aa/Margaret_Hamilton_in_
action.jpg Licencia: Public domain Colaboradores: http://www.nasa.gov/50th/50th_magazine/scientists.html Artista original: NASA
11.3
Licencia del contenido
• Creative Commons Attribution-Share Alike 3.0
Descargar