6502MCP
6502MCP是一个项目,它为VirtualKim iOS应用程序完成工作,并将6502仿真器和汇编器提取到可重用的Swift包中,然后通过MCP(模型上下文协议)服务器公开它们。
通过使用6502MCP,Codex或Claude Code等LLM可以通过MCP工具调用比单独使用模型推理更准确地编写、组装、运行、调试和检查6502程序。
这在调试自己的6502代码时应该很有用。
我还没有尝试过,但在提示(或最好是配置文件)中描述基于6502的特定硬件(使用零页、有用的ROM调用等)可能会让一些特定于机器的项目工作。
Screenshot of the MCP Server being used to test 6502
这个项目做什么
- 仿真器6502(库):6502 CPU、内存映射、双通道汇编程序(带列表和符号表)、KIM-1和Apple 1 ROM加载器、MOS 6532 RIOT仿真和实用程序加载器。
- MCPServer(可执行):基于stdio的MCP JSON-RPC服务器,将仿真器和汇编器作为工具公开。
Mac快速入门(bash)
#!/usr/bin/env bash
set -euo pipefail
# Install Xcode Command Line Tools if needed.
xcode-select --install || true
# Clone and build.
cd ~/Developer
git clone https://github.com/GrantMeStrength/6502MCP.git
cd 6502MCP
swift build
swift testClaude代码设置(bash)
#!/usr/bin/env bash
set -euo pipefail
cd ~/Developer/6502MCP
claude mcp add --transport stdio 6502mcp -- swift run MCPServer
claudeCodex设置(bash)
#!/usr/bin/env bash
set -euo pipefail
cd ~/Developer/6502MCP
codex mcp add 6502mcp -- swift run MCPServer
codex构建
swift build运行MCP服务器(stdio)
swift run MCPServer服务器通过stdio使用MCP JSON-RPC进行通信 Content-Length 构建并写入模拟器日志 标准错误 因此JSON保留在stdout上。
MCP客户端配置示例(stdio)
- 命令:
swift - 参数:
run MCPServer - 工作目录:
~/Developer/6502MCP
包含的工具
| 工具 | 说明 | 必需参数 | 可选参数 |
|---|---|---|---|
assemble | 将6502源代码汇编成目标代码和列表。返回原点、对象代码、列表和符号表。 | source (字符串) | -- |
assemble_and_load | 组装6502源,将其加载到内存中,并将PC设置为原点。 | source (字符串) | -- |
load | 将原始字节加载到给定源地址的内存中。 | origin (int), bytes (int数组) | -- |
reset | 重置模拟器并重新加载默认内存映射。 | — | computer ("KIM1" 违约,或 "APL" 苹果1) |
set_pc | 设置程序计数器。 | address (int) | -- |
run | 运行CPU多个步骤。BRK早停。 | -- | steps (int,默认值1000), startAddress (int) |
read_memory | 读取一系列内存。返回十进制字节和十六进制字符串 | address (int), length (int) | -- |
write_memory | 将字节写入内存。 | address (int), bytes (int数组) | -- |
get_registers | 获取CPU寄存器值(A、X、Y、SP、PC)、状态标志和十六进制表示。 | — | — |
测试
swift testLLM提示示例
在注册服务器后,将这些与任何启用MCP的LLM一起使用:
- 写入+测试
- “编写一个6502程序,将两个数字加在$00和$01,并将总和存储在$02。组装它,运行20步,然后读取$00–$02以验证结果。”
- 调试
- “这是我的6502循环,应该递增10美元10倍。它没有。组装并运行它,检查寄存器和10美元,解释问题所在,并修复代码。”
- 测试线束
- “创建一个6502例程,将一个4字节数组(20-23美元)求和为30美元。包括一个小的测试线束,组装并加载它,运行并使用read_memory验证输出。”
- 追踪错误
- “组装此代码,步骤30说明,然后显示PC、A、X、Y和$00-$0F,这样我就可以看到它偏离了轨道的地方。”
