
嵌入式固件【免费下载链接】Apollo-11Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules.项目地址https://gitcode.com/GitHub_Trending/ap/Apollo-11点击查看免费下载本文聚焦 GitHub 精选项目 Apollo-11一份由 NASA 阿波罗 11 号任务真实飞行的指令舱Command Module制导计算机AGC与登月舱Lunar Module制导计算机原始汇编源码仓库。文章将带你完整了解仓库的两大源码集合 Comanche055Colossus 2A与 Luminary099Luminary 1A的来历、文件组织方式、编译工具链yaYUL/Virtual AGC、贡献校对规范以及这份代码的合同批准与署名背景让你既能读懂仓库结构也能自行基于扫描原件进行核验与编译。仓库定位飞行代码的原始真身根据仓库根目录的 README.md 及其阿拉伯语版本 Translations/README.ar.md 的说明这个仓库保存的是Apollo 11 制导计算机AGC的原始源代码分为两套系统Comanche055指令舱Command ModuleCM所用的 AGC 程序属于Colossus 2A系统Luminary099登月舱Lunar ModuleLM所用的 AGC 程序属于Luminary 1A系统。这两套源码由 Virtual AGC 项目的参与者和 MIT 博物馆数字化整理而来。仓库的目标定位非常明确——作为 Apollo 11 原始源码的存档仓库因此对任何与原始扫描件存在差异的转录内容都欢迎提交 PR 进行修正。换言之这不是一个重新实现的项目而是一个忠实还原历史代码的工程。版本标识与汇编时间两套代码各自保留了 NASA 官方装配清单上的版本标注见 Comanche055/README.md 与 Luminary099/README.md源码集合所属系统装配记录对应源码文件Comanche055Colossus 2A指令舱 AGCAssemble revision 055 of AGC program Comanche by NASA2021113-051. 10:28 APR. 1, 1969Comanche055/CONTRACT_AND_APPROVALS.agcLuminary099Luminary 1A登月舱 AGCASSEMBLE REVISION 001 OF AGC PROGRAM LMY99 BY NASA16:27 JULY 14, 1969Luminary099/README.md其中 Luminary099 的日期是硬拷贝制作日期并非程序修订或装配的日期这一点在 Luminary099/README.md 中专门做了说明。数字化背景从 MIT 博物馆纸档到 GitHub 仓库仓库源码并非直接来自 NASA 磁带而是从MIT 博物馆馆藏的一份程序纸质硬拷贝的扫描图片逐行转录而来数字化工作由Paul Fjeld完成协调工作由 MIT 博物馆的Deborah Douglas负责转录与转换由Virtual AGC项目与相关贡献者共同完成。这一背景在 README.md 的 Attribution署名表中明确记录在 Comanche055/CONTRACT_AND_APPROVALS.agc 等源码文件头部的版权说明中也反复出现。正因为是手工转录代码中难免会引入与原扫描件不一致的笔误或空格差异这正是仓库开放贡献校对的根本原因。源码组织单块Monolithic构建与 include 机制一个值得注意的工程事实是原始的 AGC 开发团队没有链接器他们的构建方式是单块的monolithic——把所有源码模块按照固定顺序拼接在一起。仓库忠实还原了这一方式所有分散的模块通过MAIN.agc文件中的$include 指令按顺序汇合。以指令舱为例Comanche055/MAIN.agc 的开头如下$CONTRACT_AND_APPROVALS.agc # p. 1 $ASSEMBLY_AND_OPERATION_INFORMATION.agc # pp. 2-26 $TAGS_FOR_RELATIVE_SETLOC.agc # pp. 27-35登月舱则使用 Luminary099/MAIN.agc 作为总入口$ASSEMBLY_AND_OPERATION_INFORMATION.agc # pp. 1-27 $TAGS_FOR_RELATIVE_SETLOC.agc # pp. 28-37这种文件切分并非随意为之而是对应代码天然的子程序边界。每个.agc文件后的# p.注释直接标注了它在原始汇编清单中的页码便于与扫描件逐页校对。子程序分区以 Comanche055 为例从 Comanche055/ASSEMBLY_AND_OPERATION_INFORMATION.agc 的 SUBROUTINE CALLS 清单可以看出Colossus 2A 整体划分为若干功能区段区段代表性模块说明COMERASEERASABLE_ASSIGNMENTS可擦写存储器变量地址分配COMAIDINTERRUPT_LEAD_INS、T4RUPT_PROGRAM、DOWNLINK_LISTS、FRESH_START_AND_RESTART、RESTART_TABLES、EXTENDED_VERBS、PINBALL_NOUN_TABLES、CSM_GEOMETRY、IMU_COMPENSATION_PACKAGE、PINBALL_GAME_BUTTONS_AND_LIGHTS、R60/R62、GIMBAL_LOCK_AVOIDANCE、KALCMANU_STEERING、IMU_CALIBRATION_AND_ALIGNMENT 等中断处理、显示与键盘Pinball、IMU 校准等辅助程序COMEKISSGROUND_TRACKING_DETERMINATION_PROGRAMP21、P34-P35/P74-P75、R31、P76、R30、STABLE_ORBITP38-P39轨道确定与稳定轨道相关程序TROUBLEP11、TPI_SEARCH、P20-P25、P30/P37、P32-P33/P72-P73、P40-P47、P51-P53、P61-P67、SERVICER207、ENTRY_LEXICON、REENTRY_CONTROL、CM_BODY_ATTITUDE、P37/P70、S-BAND_ANTENNA_FOR_CM任务阶段程序如交会、再入、月面着陆准备TVCDAPSTVCINITIALIZE、TVCEXECUTIVE、TVCMASSPROP、TVCRESTARTS、TVCDAPS、TVCROLLDAP、RCS-CSM_DIGITAL_AUTOPILOT、AUTOMATIC_MANEUVERS、JET_SELECTION_LOGIC、CM_ENTRY_DIGITAL_AUTOPILOT推力矢量控制TVC与数字自动驾驶仪DAPCHIEFTANDOWN-TELEMETRY_PROGRAM、INTER-BANK_COMMUNICATION、INTERPRETER、EXECUTIVE、WAITLIST、CONIC_SUBROUTINES、ORBITAL_INTEGRATION、DISPLAY_INTERFACE_ROUTINES 等解释器、执行程序、轨道积分等核心运行时登月舱侧Luminary099的模块划分可参见 Luminary099/README.md 中的完整源码索引表其中包含登月专属模块如 BURN_BABY_BURN--MASTER_IGNITION_ROUTINE、THE_LUNAR_LANDING、THROTTLE_CONTROL_ROUTINES、LUNAR_LANDING_GUIDANCE_EQUATIONS、ASCENT_GUIDANCE、TRIM_GIMBAL_CONTROL_SYSTEM 等覆盖了从点火、月面下降到上升离月的关键任务阶段。复用方式纸卡时代插入式复用原文档Comanche055/README.md 与 Luminary099/README.md还揭示了一个有趣的工程史细节当时的代码复用并非通过链接库实现而是把你的穿孔卡片叠插入别人的卡片叠的相应位置实际上后来改用了磁带库模块从磁带库中混搭组合原理相同。因此仓库采用的文件包含方式是对当年开发方式的忠实再现——唯一的改进是不必再担心把卡片叠掉在地上。编译与运行从 YUL/GAP 到 yaYUL 与 Virtual AGC汇编器沿革文档明确指出最初的 Apollo AGC 汇编器YUL已经无法获取到 Apollo 11 时期它其实已被另一款汇编器GAP取代但 GAP 同样无法获取。因此仓库源码被调整为面向现代替代汇编器yaYUL的格式——yaYUL 接受的源码格式与 YUL/GAP 略有差异这也是所有.agc文件头部都标注Assembler: yaYUL的原因见 Comanche055/CONTRACT_AND_APPROVALS.agc。编译方法原文档README.md 的 Compiling 章节给出的编译指引是如果你想编译这些原始源码请查看 Virtual AGC 项目。也就是说仓库本身不包含编译脚本实际编译依赖 Virtual AGC 工具链yaYUL 汇编器 AGC 模拟器编译产物可在模拟器上运行这段历史飞行软件。另外值得留意的是扫描件中还包含大量由 GAP 生成的、以页码交叉引用的表格GAP-generated tables这些表格 yaYUL 不会自动生成因此即便手上已有源码文件扫描件本身仍有很高的查阅价值。贡献规范逐字逐行与扫描件对齐仓库对贡献有非常严格的约束核心原则是代码必须修改得与扫描打印件完全一致。具体规则详见 CONTRIBUTING.md注释必须与扫描件逐字完全一致包括扫描件中存在的笔误如SPACECRAFT应保留为扫描件中的SPAECRAFT——数字转录过程中既有人为修正原始笔误的情况也引入了扫描件中没有的新笔误两种情况都必须修正回扫描件的原貌空格规则新单词之间用单空格新句子之间用双空格缩进用三空格若扫描件只有单空格则跟随扫描件换行规则第 1 列带有R0000的行必须与扫描件精确一致不带R0000的行之间只允许 12 个空行多余空行应删除。原始纸张上第 8 列未打印的数字控制着空行数量——2强制双倍行距单空行、3强制三倍行距双空行4~8被定义但从未使用提 PR 前务必自查改动必须与扫描件一致。若你想为仓库贡献请先阅读 Translations/CONTRIBUTING.ar.md阿拉伯语版本或英文版 CONTRIBUTING.md再对照 Comanche 与 Luminary 的 AGC 扫描打印件进行逐页校对。署名与合同批准Colossus 2A 的法律与工程背书仓库保留了当年 NASA 的正式合同与批准记录派生自 Comanche055/CONTRACT_AND_APPROVALS.agc本 AGC 程序正式命名为Colossus 2A用途按R-577报告规定用于指令舱CM项目编号DSR 项目55-23870资助方NASA 载人航天器中心Manned Spacecraft Center合同NAS 9-4065与位于美国马萨诸塞州剑桥市的麻省理工学院仪器实验室Instrumentation Laboratory签订。提交与批准人员1969 年 3 月 28 日提交人职务Margaret H. HamiltonColossus 编程负责人阿波罗制导与导航计划批准人职务Daniel J. Lickly任务程序开发主任阿波罗制导与导航计划Fred H. MartinColossus 项目经理阿波罗制导与导航计划Norman E. Sears任务开发主任阿波罗制导与导航计划Richard H. Battin任务开发主任阿波罗制导与导航计划David G. Hoag主任阿波罗制导与导航计划Ralph R. Ragan副主任仪器实验室版权状态根据 README.md 的署名表本仓库代码的版权为公有领域Public domain联系人为 Ron Burkeyinfosandroid.org相关网站为 www.ibiblio.org/apollo。在源码文件头部的 Copyright 声明如 Comanche055/CONTRACT_AND_APPROVALS.agc中同样标注了Public domain。快速上手仓库目录导航Apollo-11/ ├── README.md # 英文主文档仓库总览、署名、合同与批准 ├── CONTRIBUTING.md # 贡献与校对规范 ├── Translations/ # 多语言翻译含 README.ar.md、CONTRIBUTING.ar.md 等 ├── Comanche055/ # 指令舱 AGC 源码Colossus 2AMAIN.agc 为汇编入口 │ ├── MAIN.agc │ ├── ASSEMBLY_AND_OPERATION_INFORMATION.agc │ ├── CONTRACT_AND_APPROVALS.agc │ └── ...90 个 .agc 模块 └── Luminary099/ # 登月舱 AGC 源码Luminary 1AMAIN.agc 为汇编入口 ├── MAIN.agc ├── THE_LUNAR_LANDING.agc ├── BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.agc └── ...90 个 .agc 模块中文读者可以对照 Translations/README.zh_cn.md 阅读阿拉伯语读者可阅读本文档对应的 Translations/README.ar.md。若想本地查看可通过git clone拉取仓库后结合 Virtual AGC 工具链在模拟器中编译并运行这段人类首次登月的制导软件。赞分享嵌入式固件【免费下载链接】Apollo-11Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules.项目地址https://gitcode.com/GitHub_Trending/ap/Apollo-11点击查看免费下载相关推荐notepad-- 中文编码编辑器从编译到日常用法notepad 中文编码编辑器从编译到日常用法 notepad 是一个用 C 与 Qt5 编写的跨平台文本编辑器覆盖 Windows、Linux 与 m嵌入式固件Apollo-11 仓库技术导读Apollo 11 制导计算机AGC指令舱与登月舱源码全解析Apollo 11 仓库技术导读Apollo 11 制导计算机AGC指令舱与登月舱源码全解析 本仓库完整收录了阿波罗 11 号任务中两台制导计算机AGC嵌入式固件Apollo-11 仓库深度解读阿波罗 11 号制导计算机AGC原始源码 Comanche055 与 Luminary099Apollo 11 仓库深度解读阿波罗 11 号制导计算机AGC原始源码 Comanche055 与 Luminary099 导读 本文围绕 Apollo嵌入式固件上一篇探索VerbalExpressions简化JavaScript正则表达式的利器下一篇OpenWifi性能调优终极指南如何实现40-50Mbps TCP吞吐量创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考