У миссий Аполлона была технология, не более сложная, чем карманный калькулятор.
По ссылке здесь есть информация о Apollo Guidance Computer (AGC)
Бортовой компьютер Apollo Guidance Computer (AGC) был около 1 кубического фута с 2K 16-битной оперативной памяти и 36K жесткой памяти сердечника и веревки с медными проводами, пронизанными или не пропущенными через крошечные магнитные сердечники. 16-битные слова обычно были 14 битами данных (или двумя кодами операций), 1 знаковым битом и 1 битом четности. Время цикла составило 11,7 микросекунды. Программирование проводилось на ассемблере и на интерпретирующем языке, на обратном польском.
Итак, я наткнулся на некоторый исходный код, когда я исследовал то, что там было, и я заметил отличные комментарии (например, ВРЕМЕННЫЕ, Я НАДЕЖДА, НАДЕЖДА, НАДЕЖДА)
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 ... это заняло бы дни, даже недели. Я серьезно сомневаюсь, что программисты тогда оставили все на волю случая.