アポロのプログラムは、銅線で編まれていた
「アポロ11号のコードを読む」のレッスン 2 / 8・約5分
2隻の船に載った2つのプログラムと、打ち上げたら二度と書き換えられないメモリの仕組みを見ます。
このレッスンで学ぶこと
- 固定メモリと書き換えメモリ
レッスンの内容
月へ行ったのは2隻
アポロ11号は、月を回り続ける司令船コロンビアと、月面へ降りる着陸船イーグルの2隻でした。
イーグルは月面から飛び立ち、もう一度コロンビアに戻ります。
船ごとに、別のプログラム
2隻には同じ型の誘導コンピューターが載っていましたが、中のプログラムは別物でした。
コロンビアはComanche055、イーグルはLuminary099。仕事が違えば必要な計算も違うためです。
月面から飛び立ち、コロンビアへ戻る上昇。これを計算したのはどちらのプログラム?
問題:月面から飛び立ち、コロンビアへ戻る上昇。これを計算したのはどちらのプログラム?
- Luminary099(正解)
- Comanche055
- 地上の管制室のプログラム
解説:上昇するのはイーグル自身なので、着陸船のLuminary099です。降下も上昇も、イーグルの仕事でした。
これがプログラムの正体

写真はコアロープメモリです。小さな輪の列に細い銅線を通して作ります。
輪を通せば1、通さなければ0。プログラムは文字通り「編まれて」いました。
1と0を、銅線で編む
輪をタップして、銅線を通すかよけるかを決めましょう。目標の数ができたら「編み込む」を押してください。
編んだら、もう変えられない
編み上げた銅線は入れ替えられません。飛行中にプログラム本体を直す方法はありませんでした。
そのため、打ち上げ前に完成させて工場で編み込んでおく必要がありました。
○か✕か
○か✕か:飛行中にバグが見つかったら、地上からLuminary099のプログラム本体を書き換えられた。
答え:✕。✕です。プログラム本体は編まれた固定メモリにあり、飛行中は変えられませんでした。地上から送れたのは、書き換えメモリに置くデータです。
書き換えられるのは、ほんの少し
固定メモリは36,864語。計算の途中を書き込める書き換えメモリは2,048語だけです。
位置や速度など飛行中に変わる値は、すべてこの小さな机に置くしかありません。
同じ1語を、2つの名前で
ERASABLE_ASSIGNMENTS.agcには置き場所が1語ずつ決めてあります。
「WAITEXIT」と「EXECTEM1」は同じ1語の別名。同時には動かないWaitlistとExecutiveが分け合っていました。
書き換えメモリの同じ1語に、2つの名前を付けて使い回したのはなぜ?
問題:書き換えメモリの同じ1語に、2つの名前を付けて使い回したのはなぜ?
- 2,048語しかなく、置き場所が足りないから(正解)
- 名前を覚えやすくするため
- 固定メモリの中身を守るため
解説:置き場所が足りなかったからです。同時に使わない値どうしで、同じ1語を分け合いました。
机が小さいと、順番が要る
着陸中は計算や表示などの仕事が次々に来ますが、同時に広げる余裕はありません。
この小さな机をどう分け合ったかが、のちの1202警報の謎を解く鍵になります。
2隻と、編まれたプログラム
- コロンビアはComanche055、イーグルはLuminary099で動いた
- プログラムは銅線で編んだ固定メモリにあり、飛行中は変えられない
- 書き換えメモリは2,048語だけ。同じ1語を別名で分け合った
アポロ11号のコンピューターで、飛行中に書き換えられたのはどれ?
問題:アポロ11号のコンピューターで、飛行中に書き換えられたのはどれ?
- 書き換えメモリに置いた位置や速度(正解)
- コアロープに編んだプログラム本体
- Luminary099の命令の並び
解説:位置や速度の値です。次は、宇宙飛行士がこのコンピューターにどう話しかけたかを見ます。キーボードに文字はなく、使えたのは数字だけでした。
用語
- 司令船(Command Module)
- 月を回って待ち、3人を乗せて地球へ帰る船。アポロ11号ではコロンビアです。
- 着陸船(Lunar Module)
- 月面へ降りて飛び立つ小さな船。アポロ11号ではイーグルと呼ばれました。
- Comanche055(Comanche 055)
- アポロ11号の司令船に載ったプログラム。月の周回や地球への帰還を担いました。
- Luminary099(Luminary 099)
- アポロ11号の着陸船に載ったプログラム。月面への降下や上昇を担いました。
- 書き換えメモリ(Erasable memory)
- 計算の途中の値を書き直せるメモリ。アポロでは2,048語しかありませんでした。
- コアロープメモリ(Core rope memory)
- 小さな輪に銅線を通すかよけるかで1と0を表すメモリ。一度編むと変えられません。
- 誘導コンピューター(Apollo Guidance Computer (AGC))
- 船の位置と速さを計算しエンジンの向きを決める機器。宇宙飛行士も操作しました。