本文档概述了为 Apollo-11 存储库贡献代码的关键准确性要求。鉴于阿波罗制导计算机 (AGC) 源代码的历史意义,保持与原始纸质打印输出完全一致至关重要。这些指南旨在确保数字化代码保留原始 NASA 文物的真实特性,包括其奇特之处和特殊性。
有关贡献的格式标准和技术要求的信息,请参阅格式标准。
Apollo-11 存储库的源代码是手动从纸质打印输出中数字化的,因此容易出现转录错误。所有修改都必须与以下扫描件保持一致:
可以使用以下工具轻松浏览这些扫描件:https://28gpc.csb.app/
转录代码中的注释**必须**与扫描件**完全**匹配。这是保持代码库历史准确性最关键的方面之一。
在某些地方,原始开发者在注释中犯了排版错误。这些错误应予以保留,以维护历史准确性。
| 场景 | 需要采取的行动 |
|---|---|
| 原始扫描件有错别字,数字版拼写正确 | 恢复原始错别字 |
| 数字版有原始扫描件中没有的错别字 | 纠正错别字以匹配扫描件 |
| 两者都有相同的错别字 | 保持不变 |
例如,如果数字化注释包含 SPACECRAFT,但扫描件中打印的是 SPAECRAFT,则数字化内容必须更正为 SPAECRAFT(缺少 C)。
注释中字符之间的间距应与扫描件精确匹配。在大多数情况下,遵循以下模式:
如果扫描件偏离此模式,则数字版应与扫描件匹配,而非遵循通用规则。
必须仔细处理换行符
| 换行符类型 | 要求 |
|---|---|
第 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.md108-110 CONTRIBUTING.md166-167
下图说明了存储库中代码实体与原始源文档中对应部分之间的关系:
来源:CONTRIBUTING.md65-70 CONTRIBUTING.md112-134
网址 https://28gpc.csb.app/ 提供了一种方便用户浏览扫描件的方式,使验证更加容易。
GitHub 内置了对 AGC 汇编语言的语法支持。此外,以下编辑器提供了语法高亮扩展,可帮助保持正确的格式:
| 编辑器 | 扩展 | 自动格式化 |
|---|---|---|
| Atom | language-agc | 是 |
| CodeBlocks | AGC Syntax Highlight | 否 |
| Eclipse | AGC Syntax Highlight | 否 |
| Kate | AGC Syntax Highlight | 否 |
| ProgrammersNotepad | AGC Syntax Highlight | 否 |
| Sublime Text 3 | AGC-Assembly | 是 |
| TextPad | AGC Syntax Highlight | 否 |
| Vim | vim-assembly | 否 |
| Visual Studio Code | agc-assembly | 是 |
| jEdit | AGC Syntax Highlight | 否 |
使用这些工具时,请确保:
来源:CONTRIBUTING.md71-98 CONTRIBUTING.md100-107
在提交包含更改的拉取请求之前,务必进行最终检查,以确保您的更改与原始扫描文档保持一致。这是准确性验证过程中最关键的一步。