- 嵌入式
- 固件
【免费下载链接】Apollo-11
Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules.
本篇技术指南以仓库中的 README.da.md(丹麦语版项目说明)为主体,系统梳理 Apollo 11 阿波罗制导计算机(AGC)原始源码的仓库结构与核心信息。读者读完后将掌握:Command Module(指挥舱)与 Lunar Module(登月舱)两套 AGC 程序(Comanche055 与 Luminary099)的源码组织方式、版本与契约背景、公共领域授权与数字化来源,以及使用 yaYUL/Virtual AGC 工具链编译并校验源码的实践路径。
一、仓库定位:人类首次登月的机载计算机源码
本仓库保存的是Apollo 11 阿波罗制导计算机(Apollo Guidance Computer,AGC)的原始源码,分为两个独立程序:
| 目录 | 对应程序 | 搭载设备 | 构建标识 |
|---|---|---|---|
| Comanche055/ | Colossus 2A(汇编修订版 055) | Command Module(指令舱,CM) | Assemble revision 055 of AGC program Comanche by NASA,2021113-051. 10:28 APR. 1, 1969 |
| Luminary099/ | Luminary 1A(汇编修订版 001) | Lunar Module(登月舱,LM) | Assemble revision 001 of AGC program LMY99 by NASA,2021112-061. 16:27 JUL. 14, 1969 |
两套源码分别承载着绕月飞行中的导航、姿态控制(指挥舱)以及着陆、上升全流程的制导与控制(登月舱)。源码中的文件头精确记录了两套程序的汇编时间与修订号,例如 Comanche055/ASSEMBLY_AND_OPERATION_INFORMATION.agc 中明确记载了上述 Comanche 055 的装配信息,Luminary099/ASSEMBLY_AND_OPERATION_INFORMATION.agc 则记载了 LMY99 的16:27 JULY 14, 1969装配信息。
二、源码结构:从汇编清单到各功能模块
与常规软件仓库不同,AGC 源码全部以.agc汇编源文件形式组织。以 Luminary099/MAIN.agc 的汇编清单为例,程序由近 90 个源文件按固定顺序拼装而成,覆盖了登月任务所需的全部功能域:
- 系统核心:
INTERRUPT_LEAD_INS、T4RUPT_PROGRAM、EXECUTIVE、WAITLIST、FRESH_START_AND_RESTART、RESTART_TABLES - 制导导航:
P20-P25(着陆导航)、ASCENT_GUIDANCE(上升制导)、LUNAR_LANDING_GUIDANCE_EQUATIONS、STABLE_ORBIT、ORBITAL_INTEGRATION、KALMAN_FILTER - 推进控制:
BURN_BABY_BURN--MASTER_IGNITION_ROUTINE(主点火)、THROTTLE_CONTROL_ROUTINES(油门控制)、P-AXIS_RCS_AUTOPILOT、Q_R-AXIS_RCS_AUTOPILOT、SPS_BACK-UP_RCS_CONTROL - 人机交互:
PINBALL_GAME_BUTTONS_AND_LIGHTS(DSKY 按键与指示灯)、DISPLAY_INTERFACE_ROUTINES、EXTENDED_VERBS、PINBALL_NOUN_TABLES - 基础设施:
INTERPRETER(解释器)、FIXED_FIXED_CONSTANT_POOL、ERASABLE_ASSIGNMENTS、SINGLE_PRECISION_SUBROUTINES、INTER-BANK_COMMUNICATION
从源码结构看,MAIN.agc本质上是整个 AGC 程序的“装配清单”,每一行$文件名.agc对应实际仓库中同名源文件,这种设计让后人能够按图索骥地查阅任意模块的实现细节。
三、契约与审批背景(Contract and Approvals)
原文的“Contract and Approvals”一节给出了该程序的官方契约背景,这是理解 AGC 程序性质的权威资料:
- 本 AGC 程序正式名称为Colossus 2A,按报告
R-577的规定用于 Command Module(指令舱)。 - 项目在DSR 项目
55-23870下编制,由 NASA 载人航天器中心(Manned Spacecraft Center)通过合同NAS 9-4065资助,执行方为马萨诸塞理工学院(MIT)仪器实验室。
Comanche055/CONTRACT_AND_APPROVALS.agc 以纯 ASCII 框图形式保存了这段声明原文,并在 Comanche055/CONTRACT_AND_APPROVALS.agc 记录了完整的签署矩阵。原文的审批表可直接译为下表:
| 提交/批准人 | 职务 | 日期 |
|---|---|---|
| Margaret H. Hamilton | Colossus 程序设计组长(Colossus Programming Leader),Apollo 制导与导航 | 1969-03-28 |
| Daniel J. Lickly | 任务程序开发主任,Apollo 制导与导航计划 | 1969-03-28 |
| Fred H. Martin | Colossus 项目经理,Apollo 制导与导航计划 | 1969-03-28 |
| Norman E. Sears | 任务开发主任,Apollo 制导与导航计划 | 1969-03-28 |
| Richard H. Battin | 任务开发主任,Apollo 制导与导航计划 | 1969-03-28 |
| David G. Hoag | Apollo 制导与导航计划主任 | 1969-03-28 |
| Ralph R. Ragan | 仪器实验室副主任 | 1969-03-28 |
四、编译:使用 yaYUL 与 Virtual AGC
README 明确给出编译入口:如需编译原始源码,请参见 Virtual AGC。README 的属性表(Attribution)标注了两套源码统一使用的汇编器为yaYUL——它是 Virtual AGC 项目提供的 AGC 汇编器,能够把本仓库中的.agc源文件编译为 AGC 可执行的二进制程序。
编译相关的关键前提(来自仓库内部证据):
- 源码文件头均以
# Assembler: yaYUL声明汇编器,例如 Comanche055/ASSEMBLY_AND_OPERATION_INFORMATION.agc 与 Luminary099/ASSEMBLY_AND_OPERATION_INFORMATION.agc。 MAIN.agc作为装配清单是编译入口:yaYUL 会依次处理其中列出的全部$*.agc文件,最终生成完整的 AGC 程序镜像。- 若要自行在仓库中做文本层面的质量检查,可复用 package.json 中声明的
markdownlint-cli2脚本(npm run lint),该脚本覆盖根目录与Translations/、Comanche055/、Luminary099/下的 Markdown 文档。
需要说明的是,当前仓库只保存源码文本;实际的 yaYUL 工具链与仿真器运行环境需要另行获取 Virtual AGC 项目,本仓库内并未包含可直接执行的编译器二进制。
五、数字化来源与公共领域授权
原文属性表给出了该仓库内容的可信来源链路:
| 项目 | 说明 |
|---|---|
| 版权 | 公共领域(Public domain) |
| 数字化来源 | 由 MIT 博物馆提供的纸质副本的数字化图像转写而成;扫描数字化由 Paul Fjeld 完成,馆方安排人为 Deborah Douglas |
| 组织方 | Virtual AGC 与 MIT 博物馆 |
| 联系方式 | Ron Burkey info@sandroid.org |
| 官网 | www.ibiblio.org/apollo |
所有.agc源文件头部都保留了这段来源声明。以 Luminary099/ASSEMBLY_AND_OPERATION_INFORMATION.agc 为例,明确注明“该源码由 MIT 博物馆纸质副本的数字化图像转写或改编而来”,并提醒读者如需更高质量图像可联系作者获取。
关于授权,LICENSE.md 采用Public Domain Mark 1.0:作品已被认定为不受已知版权限制约束,允许复制、修改、分发与商业使用,无需请求许可;同时保留声明——部分司法辖区可能仍存在相关权利(如专利、商标、公开权),且作品不附带任何担保。
六、参与贡献与多语言生态
README 明确欢迎提交 PR,目标是让本仓库与原始扫描件(Luminary 099、Comanche 055)逐字一致。具体要求在 CONTRIBUTING.md 中,任何在转写与原始扫描之间发现的差异,以及遗漏的文件,都可以通过 PR 提交修正。
该仓库还建立了完整的多语言生态:根目录 README.md 为英文主版,Translations/目录下提供了包括 中文简体版、中文繁体版、本文所依据的 丹麦语版 等 30 余种语言的项目说明,贡献说明(CONTRIBUTING)同样提供多语言版本,便于全球开发者无障碍参与转写校对工作。
七、给读者的实践建议
- 快速上手:从 Comanche055/ 与 Luminary099/ 两个目录入手,先读各自的
ASSEMBLY_AND_OPERATION_INFORMATION.agc与MAIN.agc,理解程序组织脉络后再深入具体模块。 - 编译验证:获取 Virtual AGC / yaYUL 工具链,以
MAIN.agc为入口对两套源码进行汇编,验证转录正确性。 - 交叉校对:对照 README 中的原始扫描链接(Luminary 099 与 Comanche 055 扫描件),如有出入,按 CONTRIBUTING.md 流程提交 PR。
- 权限确认:仓库内容属公共领域,可自由复制、修改与商用,但引用时应注明数字化来源(MIT 博物馆、Paul Fjeld、Virtual AGC 团队),且不暗示任何官方背书。
这份仓库既是阿波罗 11 号任务制导软件的权威存档,也是一份可编译、可校验、可参与的活历史代码库——通过它,你仍可以逐行重读人类登月时运行在 2KB 内存、36K 固定存储中的真实飞行软件。
- 嵌入式
- 固件
【免费下载链接】Apollo-11
Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules.
相关推荐
5行代码搞定pypdf PDF元数据:常规与XMP元数据读取修改快速入门
5行代码搞定pypdf PDF元数据:常规与XMP元数据读取修改快速入门 pypdf 是一个纯 Python 的 PDF 库,能拆分、合并、转换 PDF 页面。
嵌入式固件Apollo-11 阿波罗11号制导计算机(AGC)原始源码库全解析:Comanche055、Luminary099 与 yaYUL 汇编
Apollo 11 阿波罗11号制导计算机(AGC)原始源码库全解析:Comanche055、Luminary099 与 yaYUL 汇编 本文以 Apollo
嵌入式固件Presenton:开源 AI 演示文稿生成器,从一句提示词到可编辑 PPTX 的完整上手指南
Presenton:开源 AI 演示文稿生成器,从一句提示词到可编辑 PPTX 的完整上手指南 Presenton 是一个开源 AI 演示文稿生成器,定位为 G
嵌入式固件
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考