尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Apollo-11 贡献指南:AGC 汇编源码数字化转写的校对规范与编辑器配置

Apollo-11 贡献指南:AGC 汇编源码数字化转写的校对规范与编辑器配置 嵌入式固件【免费下载链接】Apollo-11Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules.项目地址https://gitcode.com/GitHub_Trending/ap/Apollo-11点击查看免费下载Apollo-11 仓库保存的是阿波罗 11 号制导计算机AGC的原始源码其中Comanche055对应指令舱Command Module的 Colossus 2A 程序Luminary099对应登月舱Lunar Module的 Luminary 1A 程序。本文基于仓库的德文版贡献指南 Translations/CONTRIBUTING.de.md其英文原版见 CONTRIBUTING.md系统讲解这批手工数字化转写的汇编代码的校对方法、格式规范、空行与空格规则以及为常见编辑器配置 AGC 语法高亮的具体方案帮助你提交与原始扫描件完全一致的补丁。背景为什么这份源码需要专门校对本仓库的所有.agc文件均由纸质打印件人工数字化转写而来转写工作由 Virtual AGC 社区与 MIT 博物馆协作完成详见 README.md 的 Attribution 一节因此转写过程中不可避免地引入了拼写错误与各种差异。仓库维护的目标是让源码与以下两份扫描打印件逐字一致Comanche 055 的 AGC 打印件对应Comanche055目录Luminary 099 的 AGC 打印件对应Luminary099目录仓库中每个源码文件头部都带有版权、文件名、用途、汇编器yaYUL及 Mod history 注释例如 Comanche055/FRESH_START_AND_RESTART.agc 标注了Comanche, build 055与pp. 181-210的页码引用并在文件内以# Page 181、# Page 182的形式标记每个扫描页面的起点如 Comanche055/AGC_BLOCK_TWO_SELF-CHECK.agc 中的# Page 1394。这些页面标记正是逐页比对扫描件时的定位锚点。实用提示贡献指南还提供了在线浏览工具可以很方便地在两个程序集的扫描件中定位翻页便于快速对照。校对的核心任务消除转写与扫描件之间的差异贡献指南明确要求检查的范畴是扫描件与仓库源码之间的所有差异。这包括转写时遗漏的字符、误增的字符、注释排版不一致等。在提交 Pull Request 之前务必确认你的修改与扫描件保持一致这正是文档最后Anmerkung一节的叮嘱。注释Kommentare必须与扫描件逐字精确一致转写源码中的注释必须与扫描件完全一致MUST这是所有校对规则中优先级最高的一条。指南特别指出两类需要警惕的常见错误排版性拼写错误Typographische Fehler原始开发者有时会在注释中留下排版性拼写错误而最初转写时有人好心地把它们改正了导致转写结果与扫描件不符——必须把转写内容还原成扫描件中的错误写法。反之如果某个词在转写中出现了扫描件里没有的拼写错误则该错误必须被修正。文档给出的示例极具说服力若转写注释中是SPACECRAFT而扫描件上印的是SPAECRAFT漏了一个C则转写必须被改回SPAECRAFT即便它语法上错误。这条规则的目的是忠实保留历史文档的原貌而不是修正历史。空格Leerzeichen注释中两个字符之间的空格应当SHOULD与扫描件吻合。在大多数情况下详见 #316 的讨论遵循以下约定单空格用于分隔新单词双空格用于新句子开头三空格用于缩进。注意扫描件并非每一页都遵守这一泛化规则——如果扫描件中只有单空格而约定是双空格那么以扫描件为准使用单空格。也就是说扫描件是第一权威。仓库中的真实注释很好地印证了这一规则。例如 Comanche055/T4RUPT_PROGRAM.agcLAMPTEST CS IMODES33 # BIT 1 OF IMODES33 1 IF LAMP TEST IN MASK BIT1 # PROGRESS.这条# BIT 1 OF IMODES33 1 IF LAMP TEST IN注释将句子在页内拆行续写续行注释以单个空格起始而在 Comanche055/FRESH_START_AND_RESTART.agc 中可以看到大量以双空格甚至更多空格对齐的缩进注释块体现了扫描件中新句子双空格、缩进多空格的排印习惯。空行规则ZeilenumbrücheR0000 列与列 8 的秘密空行规则是本指南中技术含量最高的一部分它涉及早期 AGC 汇编打印件特殊的行号编码机制。规则分两种情况带R0000的行凡是在第 1 列出现R0000的行其换行空行数量必须与扫描件精确一致MUST。带R0000的空行不参与下面第 2 条的计数。不带R0000的行这类行之间的空行应当只保留连续 12 个空行1 or 2 blank lines in a row。如果空行超过 2 个删除多余的空行带R0000的行不计算在内。深层原理列 8 中未打印的数字指南揭示了一个有趣的原始机制在源图像扫描件中这些多余的空白行是由第 8 列一个未打印的数字造成的第 8 列为2时强制产生双倍空格即在视觉上表现为 1 个空行第 8 列为3时强制产生三倍空格表现为 2 个空行值为4到8之间的情况虽然有定义但从未被使用过。更多背景可参见 #159。规范示例文档给出了一个完整的改前/改后示例原始内容为R0819 SUBROUTINE TO SKIP... R0820 0821 LAMPTEST CS IMODES33应被规范化为R0819 SUBROUTINE TO SKIP... R0820 0820 LAMPTEST CS IMODES33这个示例包含两层含义将连续 3 个空行缩减为 2 个空行满足最多 2 个空行的规则且R0820行不计入计数第 1 列从0821纠正为0820——正是列 8 中未打印数字机制所导致的行号位移需要以扫描件为准还原。该示例中的指令在仓库中真实存在Comanche055/T4RUPT_PROGRAM.agc 处正是LAMPTEST CS IMODES33其上方第 1033 行注释# SUBROUTINE TO SKIP IF LAMP TEST NOT IN PROGRESS.与示例中的SUBROUTINE TO SKIP...一脉相承可视为该规则在真实代码库中的直接落点。格式规范FormatierungTab、宽度与尾随空格贡献指南对源码文件的机械格式提出了三条硬性要求GitHub 的 AGC 语法支持和下文提到的部分编辑器扩展会自动保证这些规范使用 Tab 缩进Use tab indentationTab 宽度为 8Use tab width of 8去除行尾空格Trim trailing whitespace。这些规范在仓库源码中体现得十分明显所有.agc文件的操作码与操作数之间均使用制表符对齐例如 Comanche055/T4RUPT_PROGRAM.agc 中的IFAILJMP TCF ITURNON、30RDMSK OCT 76400等指令标签列、操作码列、操作数列在 Tab 宽度 8 的对齐下整齐排布。之所以要求 Tab 而非空格正是为了与当年打印件上的列对齐方式一致使逐行比对扫描件成为可能。编辑器配置AGC 汇编语法高亮扩展GitHub 已内置 AGC 汇编语言的语法高亮支持但本地的代码编辑器默认没有。贡献指南为以下编辑器列出了可用的 AGC 语言扩展标注 † 的支持自动格式化能自动落实上面的格式规范编辑器扩展 / 语法方案自动格式化Atomlanguage-agc†CodeBlocksVirtual AGC 贡献的语法高亮—EclipseVirtual AGC 贡献的语法高亮—KateVirtual AGC 贡献的语法高亮—ProgrammersNotepadVirtual AGC 贡献的语法高亮—Sublime Text 3AGC-Assembly†TextPadVirtual AGC 贡献的语法高亮—Vimvim-assembly—Visual Studio Codeagc-assembly†jEditVirtual AGC 贡献的语法高亮—其中Atomlanguage-agc、Sublime Text 3AGC-Assembly和 Visual Studio Codeagc-assembly三个扩展同时提供自动格式化能力Virtual AGC 项目即负责扫描转写的社区则为 CodeBlocks、Eclipse、Kate、ProgrammersNotepad、TextPad、jEdit 贡献了对应的语法高亮方案。若你使用 Visual Studio Code还可以参考agc-assembly扩展的用户设置项来调整高亮与格式化行为。提交 PR 前的最终检查贡献指南在结尾给出了一条总括性叮嘱在创建 Pull Request 之前请确保你的修改与扫描件一致。结合全文可以整理出一份提交前自查清单注释是否与扫描件逐字一致包括保留历史拼写错误注释空格是否为新词单空格、新句双空格、缩进三空格且以扫描件实际排版为准带R0000的行的空行数量是否与扫描件完全一致不带R0000的行的连续空行是否已控制在 12 个是否使用了 Tab 缩进、Tab 宽度 8、并清除了行尾空格按照这套规范校对既能保证仓库源码与历史扫描件的逐字节一致也为 AGC 汇编代码的自动化比对如 yàYUL 汇编与 diff 校验提供了稳定的文本基础。你可以先在仓库中浏览 Comanche055 与 Luminary099 两个目录下的任意.agc文件对照# Page NNNN标记与扫描件逐页核验再提交你的第一份贡献。赞分享嵌入式固件【免费下载链接】Apollo-11Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules.项目地址https://gitcode.com/GitHub_Trending/ap/Apollo-11点击查看免费下载相关推荐OpenRAG API 参考大全REST 端点完整清单与调用示例OpenRAG API 参考大全REST 端点完整清单与调用示例 OpenRAG 是一个基于 Langflow、Docling 和 OpenSearch 构建嵌入式固件Apollo-11 仓库 AGC 汇编源码的转录校对与贡献规范让扫描件与代码逐字符一致Apollo 11 仓库 AGC 汇编源码的转录校对与贡献规范让扫描件与代码逐字符一致 本指南基于 Apollo 11 仓库官方贡献文档整理系统讲解 Com嵌入式固件OpenReel Video 音频效果全解均衡器、压缩器、混响、延迟与失真完整使用指南OpenReel Video 音频效果全解均衡器、压缩器、混响、延迟与失真完整使用指南 OpenReel Video 是一款 100% 基于浏览器的开源视频编嵌入式固件上一篇如何在5分钟内安全解锁WeMod专业版功能Wand-Enhancer完整使用指南下一篇CAP OpenTelemetry终极集成指南实现分布式链路追踪和性能监控的10个关键步骤创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表