2009年7月20日,为纪念登月40周年,将带有阿波罗制导计算机(AGC)机载计算机程序源代码的打印输出数字化并发布到了互联网上。七年过去了-现在,这个计算机历史独特的例子有了第二次生命。如今,汇编器中AGC的源代码已全部发布在Github上,可以进行搜索,注释,派生等。在代码中,您可以找到带有代码1201和1202的著名错误的调用,这是尼尔·阿姆斯特朗非常担心的,还有更多。在Github上,Apollo-11资料库迅速在每天最受欢迎的资料库列表中排名第一(毫无疑问,在每周评级中,明天它将排名第一)。确实有什么值得一看的。读取一些过程名称(BURN_BABY_BURN-MASTER_IGNITION_ROUTINE.s)和原始代码中的注释尤其有趣。CAF CODE500 # ASTRONAUT: PLEASE CRANK THE
TC BANKCALL # SILLY THING AROUND
CADR GOPERF1
TCF GOTOP00H # TERMINATE
TCF P63SPOT3 # PROCEED SEE IF HE'S LYING
TC BANKCALL # ENTER INITIALIZE LANDING RADAR
CADR SETPOS1
TC POSTJUMP # OFF TO SEE THE WIZARD ...
CADR BURNBABY
与许多现代程序一样,该程序具有“临时”代码。TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE
CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE
TC DOWNFLAG # PERMIT X-AXIS OVERRIDE
这是1969年流行评论“这个绝不能发生”的版本。CA A
第一张票
已在Github存储库中创建-有关“错误”的讨论,需要在程序中进行修复。SilverWingedSeraph的开发人员写道:“一个用户在氧气罐中进行低温混合时出现了一个相当严重的问题,出现了故障消息。” 要在程序中重现该错误,请重复以下操作序列:- 构建服务模块。
- 飞向月球轨道。
- 在月球轨道上,开始在氧气罐中混合。
“如果模块中的接线出现问题,则可以重现该错误。小心一点,因为这种情况对于试图重现错误的测试人员可能是危险的,” Github上的开发人员说,这并非毫无幽默感。当然,他指的是阿波罗13号服务模块设备发生的著名事故,此后必须通过非常规操作将模块紧急返回地球。通常,迄今为止,仅保留了月球模块程序打印输出的一个物理副本。一本印刷版的书保存在麻省理工学院博物馆。程序代码由Don Isles编写与同事。 Isles亲自编写了约2000行代码,负责着陆登月舱。您可以尝试在模拟器中运行Apollo控制命令(这只是计算机模拟器,而没有航天器本身)。
Apollo航天器计算机
模拟器Apollo模拟器指令Apollo命令模块(CM)和月球模块(LM)计算机自动降落在月球表面。计算机实时控制电动机和伺服电动机。
阿波罗航天器
车载控制计算机车载控制计算机显示器管理由Apollo指导计算机(AGC)进行。车载计算机配备了支持多线程的实时操作系统,可控制所有系统,并接收来自雷达,望远镜,陀螺仪和加速度计的信号。“ Digital Apollo ” 一书很好地描述了程序如何确定优先级并分配CPU时间。
阿波罗航天器机载控制计算机的技术规范AGC时间标准由石英谐振器设定,其频率为2.048 MHz。计算机存储器由2048字的可擦写RAM和36 K的ROM组成,并在多个针脚上进行线性采样。RAM和ROM的读写周期为11.72μs。字长为16位:15位数据和1位奇偶校验。处理器的16位字格式包括14个数据位,一个溢出位和一个符号位。另请参阅:《Apollo指导计算机编程指南》