阿尔忒弥斯2号任务顺利收官,尽管本次飞行并未真正实现绕月,但它标志着美国重返月球计划迈出了至关重要的一步。然而,许多公众心中仍存有疑问:当年阿波罗登月一气呵成、精准稳健,为何时隔半个多世纪,重返月球的道路却显得如此曲折坎坷?
原因自然十分复杂,绝非三言两语能够说清,甚至坊间一直有传闻称,部分原始技术资料已经遗失。不过,好消息是:核心的软件代码并没有丢失。
就在近期,相关机构正式向公众开放了当年支撑阿波罗11号登月任务的制导计算机程序源码——任何人都可以自由查阅和下载。
此次公开的代码主要分为两大模块:一是指令舱使用的“Comanche055”,对应制导计算机中Colossus 2A版本的指令模块;二是登月舱使用的“Luminary099”,即Luminary 1A版本的登月模块。这两套代码均运行在阿波罗制导计算机(AGC)上,采用yaYUL汇编语言编写。
在“Comanche055”中,有一个名为ALARM_AND_ABORT.agc的文件尤其值得关注。开头是标准的技术说明,后面则清晰标明了功能——该程序专门负责监控系统警报状态,一旦出现异常便会触发警示灯,并对中止类与非中止类警报进行分级处理。文件名本身已经将作用说得非常明确。
这些代码是由虚拟阿波罗制导计算机项目团队与科技博物馆合作,基于原始印刷文档,通过图像扫描、人工识别、校验和格式化等步骤,一步步重建而成的数字化版本。
如果仅看源码仍觉得不过瘾,还可以使用配套的Virtual AGC仿真工具进行实际编译,甚至直接运行体验。该工具兼容性良好,Windows XP、Mac OS X 10.3、主流Linux发行版以及部分FreeBSD系统均可使用。
此外,网上还流传过一段阿波罗11号导航系统的经典代码——仅三十行汇编程序,专门用于实时计算正弦、余弦等超越函数。别小看这几行代码,它实际上是飞行轨迹控制的核心算法之一。
回顾20世纪60年代的阿波罗制导计算机,其硬件规格以今天的标准来衡量简直可以用“寒酸”来形容:内存仅3840字节(约3.75KB),只读存储器69120字节(约67.5KB),每秒最多执行8.5万条指令。整机尺寸为61.595×31.580×15.174厘米,重31.8公斤,体积与现在的台式游戏主机相近。指令舱配备了两套DSKY显示与键盘控制器,登月舱则配备了一套。
就是这样一套在今天看来极其简陋的技术装备,硬是让一代科学家和工程师完成了人类历史上首次载人登月。那份沉静而坚定的智慧与毅力,直到今天依然令人由衷敬佩。
