アポロの任務には、電卓ほど複雑な技術はなかった。
こちらのリンクから、Apollo Guidance Computer(AGC)に関する情報があります。
オンボードのApollo Guidance Computer(AGC)は約1立方フィートで、2Kの16ビットRAMと36Kのハードコアコアロープメモリで、銅線は小さな磁気コアに通されているか、通されていません。16ビットワードは通常、14ビットのデータ(または2つのオペコード)、1符号ビット、1パリティビットでした。サイクルタイムは11.7マイクロ秒でした。プログラミングはアセンブリ言語と逆ポーランド語の解釈言語で行われました。
そのため、そこにあるものを調査したときにいくつかのソースコードに出くわし、素晴らしいコメントに気付きました(たとえば、TEMPORARY、I HOPE HOPE HOPE)
VRTSTART TS WCHVERT
# Page 801
CAF TWO # WCHPHASE = 2 ---> VERTICAL: P65,P66,P67
TS WCHPHOLD
TS WCHPHASE
TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE
CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE
TC DOWNFLAG # PERMIT X-AXIS OVERRIDE
ADRES XOVINFLG
TC DOWNFLAG
ADRES REDFLAG
TCF VERTGUID
宇宙船の実際のプログラムはコアロープメモリに格納されていました。コアメモリは、(文字通り)布/ロープを織り込んで作られた古代のメモリ技術で、ビットはフェライト材料の物理的なリングでした。「コア」メモリは宇宙線に耐性があります。宇宙空間で放射線が照射されても、コアビットの状態は変わりません。
Virtual Apollo Guidance Computer(AGC)ソフトウェアもGITHUBにあります!
すばらしいコメント付きのソースコードの別のサンプル。
033911,000064: 32,3017 06037 FLAGORGY TC INTPRET # DIONYSIAN FLAG WAVING
034090,000243: 32,3241 13247 BZF P63SPOT4 # BRANCH IF ANTENNA ALREADY IN POSITION 1
034091,000244:
034092,000245: 32,3242 33254 CAF CODE500 # ASTRONAUT: PLEASE CRANK THE
034093,000246: 32,3243 04616 TC BANKCALL # SILLY THING AROUND
034094,000247: 32,3244 20623 CADR GOPERF1
034095,000248: 32,3245 16001 TCF GOTOP00H # TERMINATE
034096,000249: 32,3246 13235 TCF P63SPOT3 # PROCEED SEE IF HE'S LYING
034101,000254: 32,3251 04635 TC POSTJUMP # OFF TO SEE THE WIZARD ...
034102,000255: 32,3252 74126 CADR BURNBABY
ここに私の質問はこれです:
- 当時のツールを考えると、チームはどのくらいこの量のコードを書いて機能させることができましたか?
Apollo 11で使用されたコードを大量にコンパイルすると...数日、数週間もかかるからです。私は、プログラマーが当時のすべてを偶然に残していたことを真剣に疑っています。