{
  "added_at": "2026-11-10",
  "additional_evidence_urls": [
    "https://web.archive.org/web/20260714091141/https://www.qotile.net/minidig/"
  ],
  "category": "reconstruction-cases",
  "class": "game",
  "description_en": "A commented 6502 assembly listing reconstructs Combat, the Atari 2600 tank, biplane and jet game, aiming to explain every instruction, memory location and table. Assembled with DASM it yields an image that differs from the cartridge ROM only in the unwritten padding bytes before the startup vectors. The header maps all 27 game variations to their missile, maze and cloud options, and main-loop routines carry Atari's original names, taken from presentation notes.",
  "description_zh": "这份带注释的 6502 汇编清单重建了 Atari 2600 坦克、双翼机与喷气机对战游戏 Combat，目标是讲清每条指令、每个内存地址和每张表的用途。用 DASM 汇编后得到的镜像与卡带 ROM 仅在启动向量前未写入的填充字节上有差别。文件头给出 27 种游戏变体与导弹、迷宫、云层选项的对照表，主循环例程采用演示笔记中披露的 Atari 原始名称。",
  "entry_url": "https://awesomerea.org/resources/combat-atari-2600-disassembly-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/combat-atari-2600-disassembly-case/",
  "evidence_url": "https://web.archive.org/web/20250715155012/https://www.qotile.net/minidig/disassembly/dicombat.asm",
  "group": "cases",
  "id": "combat-atari-2600-disassembly-case",
  "json_url": "https://awesomerea.org/resources/combat-atari-2600-disassembly-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/combat-atari-2600-disassembly-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/combat-atari-2600-disassembly-case/index.md",
  "name": "Combat: an annotated Atari 2600 disassembly",
  "name_zh": "Combat：Atari 2600 游戏注释反汇编",
  "reconstruction_method": "decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "prerequisites",
    "testing",
    "scope",
    "license"
  ],
  "requirements": [
    "DASM and the vcs.h header that the listing includes.",
    "The assembled image matches the cartridge ROM except for a few unwritten bytes before the startup vectors, which DASM sets to zero and the cartridge holds as $FF.",
    "Some introductory VCS programming and historical comments were removed; the listing assumes basic familiarity with VCS programming.",
    "No licence stated on the project page."
  ],
  "requirements_zh": [
    "需要 DASM 和清单引用的 vcs.h 头文件。",
    "汇编出的镜像与卡带 ROM 基本一致，只有启动向量前少数未写入的字节不同：DASM 填 0，卡带中为 $FF。",
    "清单删去了部分 VCS 编程入门和历史背景注释，读者需具备基本的 VCS 编程知识。",
    "项目页面未声明许可证。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://www.qotile.net/minidig/disassembly/dicombat.asm",
  "verification": "source-reviewed",
  "verified_at": "2026-11-09"
}
