菜单

准确性指南

相关源文件

目的与范围

本文档概述了为 Apollo-11 存储库贡献代码的关键准确性要求。鉴于阿波罗制导计算机 (AGC) 源代码的历史意义,保持与原始纸质打印输出完全一致至关重要。这些指南旨在确保数字化代码保留原始 NASA 文物的真实特性,包括其奇特之处和特殊性。

有关贡献的格式标准和技术要求的信息,请参阅格式标准

来源:CONTRIBUTING.md65-70

原始源代码材料

Apollo-11 存储库的源代码是手动从纸质打印输出中数字化的,因此容易出现转录错误。所有修改都必须与以下扫描件保持一致:

  • Comanche055(指令舱)的 AGC 打印输出
  • Luminary099(登月舱)的 AGC 打印输出

可以使用以下工具轻松浏览这些扫描件:https://28gpc.csb.app/

来源:CONTRIBUTING.md65-70

准确性要求

注释保真度

转录代码中的注释**必须**与扫描件**完全**匹配。这是保持代码库历史准确性最关键的方面之一。

来源:CONTRIBUTING.md112-115

排版错误

在某些地方,原始开发者在注释中犯了排版错误。这些错误应予以保留,以维护历史准确性。

场景需要采取的行动
原始扫描件有错别字,数字版拼写正确恢复原始错别字
数字版有原始扫描件中没有的错别字纠正错别字以匹配扫描件
两者都有相同的错别字保持不变

例如,如果数字化注释包含 SPACECRAFT,但扫描件中打印的是 SPAECRAFT,则数字化内容必须更正为 SPAECRAFT(缺少 C)。

来源:CONTRIBUTING.md118-124

间距约定

注释中字符之间的间距应与扫描件精确匹配。在大多数情况下,遵循以下模式:

  • 新单词使用单个空格
  • 新句子使用双倍空格
  • 缩进使用三倍空格

如果扫描件偏离此模式,则数字版应与扫描件匹配,而非遵循通用规则。

来源:CONTRIBUTING.md126-134

换行符准确性

必须仔细处理换行符

换行符类型要求
第 1 列中有 R0000 的行必须与扫描件完全匹配
第 1 列中没有 R0000 的行应只包含连续 1-2 个空行

如果第 1 列中没有 R0000 的行连续超过 2 个空行,则应删除多余的换行符。第 1 列中包含 R0000 的行不计入此限制。

换行符更正示例

换行符过多的原始代码

R0819   SUBROUTINE TO SKIP...
R0820



 0821   LAMPTEST  CS  IMODES33

格式正确的代码

R0819   SUBROUTINE TO SKIP...
R0820


 0820   LAMPTEST  CS  IMODES33

来源:CONTRIBUTING.md136-163

验证流程

准确性验证过程应遵循以下步骤:

来源:CONTRIBUTING.md108-110 CONTRIBUTING.md166-167

代码实体与原始源映射

下图说明了存储库中代码实体与原始源文档中对应部分之间的关系:

来源:CONTRIBUTING.md65-70 CONTRIBUTING.md112-134

准确性工具

网址 https://28gpc.csb.app/ 提供了一种方便用户浏览扫描件的方式,使验证更加容易。

语法高亮扩展

GitHub 内置了对 AGC 汇编语言的语法支持。此外,以下编辑器提供了语法高亮扩展,可帮助保持正确的格式:

编辑器扩展自动格式化
Atomlanguage-agc
CodeBlocksAGC Syntax Highlight
EclipseAGC Syntax Highlight
KateAGC Syntax Highlight
ProgrammersNotepadAGC Syntax Highlight
Sublime Text 3AGC-Assembly
TextPadAGC Syntax Highlight
Vimvim-assembly
Visual Studio Codeagc-assembly
jEditAGC Syntax Highlight

使用这些工具时,请确保:

  • 使用制表符缩进
  • 制表符宽度设置为 8
  • 尾随空格已修剪

来源:CONTRIBUTING.md71-98 CONTRIBUTING.md100-107

最终验证检查

在提交包含更改的拉取请求之前,务必进行最终检查,以确保您的更改与原始扫描文档保持一致。这是准确性验证过程中最关键的一步。

来源:CONTRIBUTING.md166-167