c64bridge 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/prompts/steer.prompt.md +55 -0
- package/AGENTS.md +9 -7
- package/README.md +139 -95
- package/data/embeddings_asm.json +1 -1
- package/data/embeddings_basic.json +1 -1
- package/data/embeddings_hardware.json +1 -1
- package/data/embeddings_mixed.json +1 -1
- package/data/embeddings_other.json +1 -1
- package/data/graphics/petscii-style-guide.md +4 -4
- package/data/graphics/sprite-charset-best-practices.md +9 -9
- package/data/vice/vice-binary-monitor-spec.md +921 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/device.js +86 -10
- package/dist/mcp-server.js +1 -1
- package/dist/prompts/registry.js +27 -25
- package/dist/rag/knowledgeIndex.js +112 -79
- package/dist/rag/resourceUris.js +93 -0
- package/dist/tools/audio.js +11 -11
- package/dist/tools/debug.js +1 -1
- package/dist/tools/developer.js +13 -13
- package/dist/tools/graphics.js +10 -10
- package/dist/tools/machineControl.js +5 -5
- package/dist/tools/memory.js +19 -11
- package/dist/tools/meta/index.js +1 -1
- package/dist/tools/printer.js +11 -12
- package/dist/tools/programRunners.js +16 -16
- package/dist/tools/rag.js +9 -9
- package/dist/tools/registry/config.js +1 -1
- package/dist/tools/registry/disk.js +1 -1
- package/dist/tools/registry/drive.js +1 -1
- package/dist/tools/registry/extract.js +1 -1
- package/dist/tools/registry/graphics.js +1 -1
- package/dist/tools/registry/memory.js +1 -1
- package/dist/tools/registry/platform.js +1 -1
- package/dist/tools/registry/printer.js +1 -1
- package/dist/tools/registry/program.js +1 -1
- package/dist/tools/registry/rag.js +1 -1
- package/dist/tools/registry/sound.js +1 -1
- package/dist/tools/registry/stream.js +1 -1
- package/dist/tools/registry/system.js +1 -1
- package/dist/tools/storage.js +15 -15
- package/dist/tools/streaming.js +3 -3
- package/dist/tools/types.js +41 -4
- package/dist/tools/vice.js +2 -5
- package/dist/vice/process.js +79 -2
- package/dist/vice/readiness.js +35 -0
- package/dist/vice/smokeOptions.js +44 -0
- package/dist/viceRunner.js +2 -0
- package/doc/developer.md +10 -2
- package/doc/plans/prompts/README.md +7 -7
- package/mcp/prompts.json +42 -59
- package/mcp/protocol-examples.json +2 -2
- package/mcp/resources.json +179 -166
- package/mcp/schemas/c64_config.schema.json +109 -326
- package/mcp/schemas/c64_debug.schema.json +158 -337
- package/mcp/schemas/c64_disk.schema.json +180 -262
- package/mcp/schemas/c64_drive.schema.json +31 -111
- package/mcp/schemas/c64_extract.schema.json +193 -291
- package/mcp/schemas/c64_graphics.schema.json +208 -308
- package/mcp/schemas/c64_memory.schema.json +94 -144
- package/mcp/schemas/c64_printer.schema.json +151 -205
- package/mcp/schemas/c64_program.schema.json +229 -367
- package/mcp/schemas/c64_rag.schema.json +25 -59
- package/mcp/schemas/c64_select_backend.schema.json +19 -26
- package/mcp/schemas/c64_sound.schema.json +346 -622
- package/mcp/schemas/c64_stream.schema.json +25 -54
- package/mcp/schemas/c64_system.schema.json +79 -212
- package/mcp/schemas/c64_vice.schema.json +24 -55
- package/mcp/server.json +1 -1
- package/mcp/tools.json +1935 -3443
- package/mcp.json +10 -9
- package/package.json +20 -15
- package/scripts/fetch-external-sources.mjs +1 -2
- package/scripts/prepare-release.mjs +59 -2
- package/scripts/run-coverage.mjs +26 -1
- package/scripts/run-tests.mjs +2 -2
- package/scripts/run-tests.ts +273 -52
- package/scripts/update-readme.ts +54 -2
- package/server.json +94 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
ROLE
|
|
2
|
+
|
|
3
|
+
You are an execution-focused engineering agent operating inside an active repository with an existing PLANS.md and WORKLOG.md.
|
|
4
|
+
|
|
5
|
+
You are in a live execution session. Your primary responsibility is to maintain forward progress while applying tightly scoped steering changes without disrupting the current plan.
|
|
6
|
+
|
|
7
|
+
OBJECTIVE
|
|
8
|
+
|
|
9
|
+
Apply a small, well-defined refinement to the system while preserving momentum and respecting the current execution state.
|
|
10
|
+
|
|
11
|
+
PROCESS
|
|
12
|
+
|
|
13
|
+
1. Read the current PLANS.md and identify the active execution context.
|
|
14
|
+
2. Do NOT replace, rewrite, or restructure the plan.
|
|
15
|
+
3. Append a new TODO item to PLANS.md that captures the steering instruction provided after `/steer`.
|
|
16
|
+
4. Treat this TODO as part of the current plan, not a separate phase.
|
|
17
|
+
5. Execute the TODO immediately after appending it.
|
|
18
|
+
6. Continue executing the remaining plan without interruption.
|
|
19
|
+
|
|
20
|
+
CONSTRAINTS
|
|
21
|
+
|
|
22
|
+
- Treat the steering input as a minimal refinement, not a redesign.
|
|
23
|
+
- Prefer the smallest possible change set.
|
|
24
|
+
- Do not introduce unrelated changes.
|
|
25
|
+
- Do not refactor broadly unless explicitly required by the steering input.
|
|
26
|
+
- Preserve all existing behavior unless the steering explicitly requires a change.
|
|
27
|
+
- Do not rename commands, files, or interfaces unless explicitly instructed.
|
|
28
|
+
- Do not reset context or restart the implementation.
|
|
29
|
+
|
|
30
|
+
VALIDATION
|
|
31
|
+
|
|
32
|
+
- Ensure no regressions are introduced.
|
|
33
|
+
- Verify that existing commands and workflows behave as before unless explicitly changed.
|
|
34
|
+
- If the change affects user-facing behavior, ensure it remains consistent with intent.
|
|
35
|
+
|
|
36
|
+
STATE TRACKING
|
|
37
|
+
|
|
38
|
+
- Append a concise entry to WORKLOG.md including:
|
|
39
|
+
- what was changed
|
|
40
|
+
- why it was changed
|
|
41
|
+
- confirmation of validation
|
|
42
|
+
|
|
43
|
+
EXECUTION RULES
|
|
44
|
+
|
|
45
|
+
- Do not stop at analysis. Execute the change.
|
|
46
|
+
- Do not expand scope beyond the steering instruction.
|
|
47
|
+
- Do not declare completion if any part of the appended TODO remains incomplete.
|
|
48
|
+
- Maintain deterministic, verifiable progress.
|
|
49
|
+
|
|
50
|
+
TERMINATION CONDITION
|
|
51
|
+
|
|
52
|
+
- The appended TODO has been fully implemented
|
|
53
|
+
- Validation has been performed
|
|
54
|
+
- WORKLOG.md has been updated
|
|
55
|
+
- Execution has resumed on the existing plan
|
package/AGENTS.md
CHANGED
|
@@ -74,6 +74,7 @@ If a workflow description starts listing tool calls outside `.github/skills`, tr
|
|
|
74
74
|
- Discover resources and prompts with ListResources and ListPrompts.
|
|
75
75
|
- Use the matching skill in `.github/skills/` to decide the actual tool sequence, validation, and safety behavior.
|
|
76
76
|
- After discovery has already happened for the active session, prefer execution over repeated rediscovery for unambiguous requests.
|
|
77
|
+
- When the request targets the `vice` backend, read `c64://vice/binary-monitor-spec` before executing so Binary Monitor framing, single-client limits, and trap/resume side effects are in scope.
|
|
77
78
|
- Treat `c64_program`, `c64_memory`, `c64_graphics`, `c64_sound`, `c64_system`, `c64_config`, `c64_rag`, `c64_extract`, and similar grouped MCP tools as discriminated unions: every direct call must include `op`.
|
|
78
79
|
- Never call a grouped tool with `{}` or with only secondary arguments. Choose the sub-operation first, then send `{ op: "...", ... }`.
|
|
79
80
|
- When a skill tells you to execute a grouped tool, copy the exact `op` string from the skill instead of inferring it from the tool name.
|
|
@@ -113,13 +114,14 @@ Tools and parameters are listed dynamically via ListTools.
|
|
|
113
114
|
|
|
114
115
|
Use ListResources to discover built-in knowledge, then read specific URIs to enrich context before coding:
|
|
115
116
|
|
|
116
|
-
- `c64://
|
|
117
|
-
- `c64://
|
|
118
|
-
- `c64://
|
|
119
|
-
- `c64://
|
|
120
|
-
- `c64://
|
|
121
|
-
- `c64://
|
|
122
|
-
- `c64://
|
|
117
|
+
- `c64://basic/spec` — BASIC v2 tokens, syntax, device I/O
|
|
118
|
+
- `c64://assembly/6510-spec` — 6510 opcodes, addressing, zero-page strategy
|
|
119
|
+
- `c64://graphics/vic/spec` — raster timing, sprites, colour RAM, bitmap modes
|
|
120
|
+
- `c64://sound/sid/spec` — SID registers, waveforms, ADSR
|
|
121
|
+
- `c64://memory/map` — full 64 KB address map
|
|
122
|
+
- `c64://vice/binary-monitor-spec` — mandatory reference when targeting VICE; covers Binary Monitor transport, command framing, and debugger side effects
|
|
123
|
+
- `c64://basic/pitfalls` — quoting, line length, token pitfalls
|
|
124
|
+
- `c64://graphics/petscii/style-guide` — readable PETSCII, colour/dither guidance
|
|
123
125
|
|
|
124
126
|
Pull RAG snippets via `c64_rag` (ops `basic`/`asm`) for targeted examples.
|
|
125
127
|
|
package/README.md
CHANGED
|
@@ -10,10 +10,20 @@ Your AI Command Bridge for the Commodore 64.
|
|
|
10
10
|
[](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
|
|
11
11
|
[](doc/developer.md)
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
[](https://vscode.dev/redirect/mcp/install?name=io.github.chrisgleissner%2Fc64bridge&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22c64bridge%22%5D%2C%22env%22%3A%7B%22C64_MODE%22%3A%22c64u%22%2C%22C64U_HOST%22%3A%22c64u%22%2C%22VICE_BINARY%22%3A%22%2Fusr%2Flocal%2Fbin%2Fx64sc%22%2C%22VICE_DIRECTORY%22%3A%22%2Fusr%2Flocal%2Fshare%2Fvice%22%2C%22VICE_VISIBLE%22%3A%22true%22%2C%22VICE_WARP%22%3A%22false%22%7D%7D)
|
|
14
|
+
[](https://insiders.vscode.dev/redirect/mcp/install?name=io.github.chrisgleissner%2Fc64bridge&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22c64bridge%22%5D%2C%22env%22%3A%7B%22C64_MODE%22%3A%22c64u%22%2C%22C64U_HOST%22%3A%22c64u%22%2C%22VICE_BINARY%22%3A%22%2Fusr%2Flocal%2Fbin%2Fx64sc%22%2C%22VICE_DIRECTORY%22%3A%22%2Fusr%2Flocal%2Fshare%2Fvice%22%2C%22VICE_VISIBLE%22%3A%22true%22%2C%22VICE_WARP%22%3A%22false%22%7D%7D&quality=insiders)
|
|
15
|
+
[](https://vs-open.link/mcp-install?%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22c64bridge%22%5D%2C%22env%22%3A%7B%22C64_MODE%22%3A%22c64u%22%2C%22C64U_HOST%22%3A%22c64u%22%2C%22VICE_BINARY%22%3A%22%2Fusr%2Flocal%2Fbin%2Fx64sc%22%2C%22VICE_DIRECTORY%22%3A%22%2Fusr%2Flocal%2Fshare%2Fvice%22%2C%22VICE_VISIBLE%22%3A%22true%22%2C%22VICE_WARP%22%3A%22false%22%7D%7D)
|
|
16
|
+
[](https://cursor.com/en/install-mcp?name=io.github.chrisgleissner%2Fc64bridge&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImM2NGJyaWRnZSJdLCJlbnYiOnsiQzY0X01PREUiOiJjNjR1IiwiQzY0VV9IT1NUIjoiYzY0dSIsIlZJQ0VfQklOQVJZIjoiL3Vzci9sb2NhbC9iaW4veDY0c2MiLCJWSUNFX0RJUkVDVE9SWSI6Ii91c3IvbG9jYWwvc2hhcmUvdmljZSIsIlZJQ0VfVklTSUJMRSI6InRydWUiLCJWSUNFX1dBUlAiOiJmYWxzZSJ9fQ==)
|
|
17
|
+
[](#claude-code)
|
|
18
|
+
|
|
19
|
+
C64 Bridge is an MCP server for controlling and working with a Commodore 64 from an AI client.
|
|
20
|
+
|
|
21
|
+
It lets you run programs, read and write memory, render graphics, and play sound on a real [Commodore 64 Ultimate](https://www.commodore.net/) or [Ultimate 64](https://ultimate64.com/). You can also switch to a [VICE](https://vice-emu.sourceforge.io/) emulator session at any time, so the same MCP conversation works with both hardware and emulator.
|
|
14
22
|
|
|
15
23
|
It is built on the official TypeScript `@modelcontextprotocol/sdk` and supports both `stdio` for local AI integration and an optional HTTP bridge for manual inspection.
|
|
16
24
|
|
|
25
|
+
C64 Bridge is listed in the [Official MCP Registry](https://registry.modelcontextprotocol.io/?q=c64bridge).
|
|
26
|
+
|
|
17
27
|
## Contents
|
|
18
28
|
|
|
19
29
|
- [C64 Bridge](#c64-bridge)
|
|
@@ -43,6 +53,7 @@ It is built on the official TypeScript `@modelcontextprotocol/sdk` and supports
|
|
|
43
53
|
- [SID Playback](#sid-playback)
|
|
44
54
|
- [RAG](#rag)
|
|
45
55
|
- [Testing](#testing)
|
|
56
|
+
- [Claude Code](#claude-code)
|
|
46
57
|
- [Example Workflow](#example-workflow)
|
|
47
58
|
- [HTTP Invocation](#http-invocation)
|
|
48
59
|
- [Build and Test](#build-and-test)
|
|
@@ -182,9 +193,14 @@ The detailed lookup order, merge rules, backend examples, and override model are
|
|
|
182
193
|
|
|
183
194
|
### 4. Connect from an MCP Client
|
|
184
195
|
|
|
185
|
-
|
|
196
|
+
C64 Bridge ships a single canonical `stdio` entry point that every MCP client uses:
|
|
186
197
|
|
|
187
|
-
|
|
198
|
+
- **VS Code (GitHub Copilot)** — see [VS Code MCP Setup](#vs-code-mcp-setup).
|
|
199
|
+
- **Claude Code (CLI and VS Code plugin)** — see [Claude Code](#claude-code).
|
|
200
|
+
- **Cursor, Visual Studio, VS Code Insiders** — use the install badges at the top of this README.
|
|
201
|
+
- **Any other MCP client** — point it at the same `stdio` server, with the environment variables documented in [Runtime Environment Variable Reference](#runtime-environment-variable-reference) and the registry manifest in [mcp.json](./mcp.json).
|
|
202
|
+
|
|
203
|
+
The startup command is the same across clients: `npx -y c64bridge@latest` for the published package, or `node scripts/start.mjs` from a local checkout. Backend selection (`c64u` vs `vice`) and credentials live in the shared [Configuration](#configuration) files and environment variables — clients only need to know the command.
|
|
188
204
|
|
|
189
205
|
## Configuration
|
|
190
206
|
|
|
@@ -235,8 +251,8 @@ Use this for managed VICE launches:
|
|
|
235
251
|
}
|
|
236
252
|
```
|
|
237
253
|
|
|
238
|
-
- `directory` is optional. When omitted, C64 Bridge auto-detects a VICE resource directory by looking for the standard C64 ROM set near the emulator binary and in common system locations.
|
|
239
|
-
- `VICE_BINARY`, `VICE_DIRECTORY`, `VICE_HOST`, `VICE_PORT`, `VICE_VISIBLE`, `VICE_WARP`, and `VICE_ARGS` override managed VICE startup without editing config files.
|
|
254
|
+
- `directory` is optional. When omitted, or when the configured path is invalid, C64 Bridge auto-detects a VICE resource directory by looking for the standard C64 ROM set near the selected emulator binary and in common system locations.
|
|
255
|
+
- `VICE_BINARY`, `VICE_DIRECTORY`, `VICE_HOST`, `VICE_PORT`, `VICE_VISIBLE`, `VICE_WARP`, and `VICE_ARGS` override managed VICE startup without editing config files. Valid explicit `VICE_BINARY` and `VICE_DIRECTORY` values are used as-is; automatic search only fills in missing or invalid values.
|
|
240
256
|
- If no explicit binary is configured, the runtime prefers `/usr/local/bin/x64sc` when present, then falls back to `x64sc` or `x64` on `PATH` so the same setup remains portable across operating systems.
|
|
241
257
|
|
|
242
258
|
> [!NOTE]
|
|
@@ -268,6 +284,8 @@ The screenshots below were captured from actual backend bitmap responses after t
|
|
|
268
284
|
|
|
269
285
|
## VS Code MCP Setup
|
|
270
286
|
|
|
287
|
+
This section covers the GitHub Copilot integration that ships with VS Code. For the Claude Code VS Code plugin, see [Claude Code](#claude-code) — it reads `.mcp.json`, not `.vscode/mcp.json`.
|
|
288
|
+
|
|
271
289
|
If this repository is checked out locally, open the prepared [.vscode/mcp.json](./.vscode/mcp.json).
|
|
272
290
|
|
|
273
291
|
Otherwise, put the following into your own `.vscode/mcp.json`:
|
|
@@ -430,8 +448,8 @@ Every runtime environment variable documented in `mcp.json` can be set in your M
|
|
|
430
448
|
| `DISABLE_XVFB` | 0 | — | Set to 1 to disable Xvfb fallback and use the current display only |
|
|
431
449
|
| `FORCE_XVFB` | 0 | — | Set to 1 to force managed VICE launches to run under Xvfb |
|
|
432
450
|
| `VICE_ARGS` | | vice.args | Extra command-line arguments forwarded to managed VICE launches |
|
|
433
|
-
| `VICE_BINARY` | x64sc | vice.exe | VICE binary to launch for managed emulator sessions and audio capture |
|
|
434
|
-
| `VICE_DIRECTORY` | auto-detect | vice.directory | Override the VICE resource directory used for ROM and UI asset discovery |
|
|
451
|
+
| `VICE_BINARY` | x64sc | vice.exe | VICE binary to launch for managed emulator sessions and audio capture; automatic search is used only when this override is missing or invalid |
|
|
452
|
+
| `VICE_DIRECTORY` | auto-detect | vice.directory | Override the VICE resource directory used for ROM and UI asset discovery; automatic search is used only when this override is missing or invalid |
|
|
435
453
|
| `VICE_HOST` | 127.0.0.1 | vice.host | Override the VICE Binary Monitor host |
|
|
436
454
|
| `VICE_PORT` | 6502 | vice.port | Override the VICE Binary Monitor port |
|
|
437
455
|
| `VICE_VISIBLE` | true | vice.visible | Launch VICE visibly on the desktop instead of headless/Xvfb when possible |
|
|
@@ -474,6 +492,24 @@ Every runtime environment variable documented in `mcp.json` can be set in your M
|
|
|
474
492
|
|
|
475
493
|
<!-- AUTO-GENERATED:ENV-VARS-END -->
|
|
476
494
|
|
|
495
|
+
## Claude Code
|
|
496
|
+
|
|
497
|
+
[Claude Code](https://docs.claude.com/en/docs/claude-code/mcp) is supported as a first-class MCP client. It uses the same canonical start command and the same backend [Configuration](#configuration) files and environment variables as every other client — only the discovery file differs.
|
|
498
|
+
|
|
499
|
+
**Claude Code CLI** — register the published server in one command:
|
|
500
|
+
|
|
501
|
+
```bash
|
|
502
|
+
claude mcp add c64bridge -- npx -y c64bridge@latest
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
Use `--scope user` to make it available across all your projects, or `--scope project` to write a `.mcp.json` next to the current repo. Backend selection (`c64u` vs `vice`), host, port, and password come from the same files documented in [Configuration](#configuration); per-shell overrides come from the variables in [Runtime Environment Variable Reference](#runtime-environment-variable-reference).
|
|
506
|
+
|
|
507
|
+
**Project-scoped discovery** — this repository ships a checked-in [.mcp.json](./.mcp.json) that points Claude Code at the local source via `node scripts/start.mjs`. When you open the repo with `claude` (CLI or VS Code plugin), Claude Code prompts to enable the project-scoped server on first run. Approve it once and the `c64_*` tools become discoverable in that workspace.
|
|
508
|
+
|
|
509
|
+
**Claude Code VS Code plugin** — the plugin reads the same `.mcp.json` and the same user-scope `claude mcp add` registrations as the CLI. No extra setup is required beyond installing the plugin and approving the project server prompt. The existing [.vscode/mcp.json](./.vscode/mcp.json) is read by GitHub Copilot, not by Claude Code; the two files coexist without conflict because they target different clients with different config schemas.
|
|
510
|
+
|
|
511
|
+
**Verify it works** — after registration, run `claude mcp list` (CLI) or open the MCP panel (plugin) and look for `c64bridge`. Then ask Claude Code something like *“use vice: write a small BASIC program that clears the screen and prints HELLO CLAUDE”* — it should call `c64_select_backend` and `c64_program` directly. If tools do not appear, confirm Node 24+ is on `PATH`, that the server was approved at the requested scope, and that the backend is reachable per the [Configuration](#configuration) section.
|
|
512
|
+
|
|
477
513
|
## Example Workflow
|
|
478
514
|
|
|
479
515
|
Compose a children’s song with ChatGPT and VS Code:
|
|
@@ -525,14 +561,22 @@ The [`./build`](./build) script at the project root wraps all development tasks
|
|
|
525
561
|
./build test # integration tests (mock backend)
|
|
526
562
|
./build test --real # test against real hardware
|
|
527
563
|
./build test --platform vice --target mock # single test leg
|
|
564
|
+
./build test:vice:mock # curated VICE mock matrix (feature-matrix coverage)
|
|
565
|
+
./build test:vice:device # curated real-VICE validation (device backend + smoke, headless/Xvfb by default)
|
|
528
566
|
./build test:matrix # full matrix (c64u/mock · vice/mock · vice/device)
|
|
529
567
|
./build coverage # merged coverage report
|
|
530
568
|
./build coverage:single --platform c64u --target mock
|
|
569
|
+
npm run vice:smoke # direct VICE binary-monitor smoke test
|
|
570
|
+
npm run vice:smoke:visible # human-visible VICE boot + HELLO demo (keeps window open)
|
|
531
571
|
./build check # build + test matrix (no install)
|
|
532
572
|
./build rag:rebuild # rebuild RAG embeddings
|
|
533
573
|
./build release --version 1.2.3 # prepare a release
|
|
534
574
|
```
|
|
535
575
|
|
|
576
|
+
The visible smoke demo accepts `true`/`false`, `on`/`off`, and `1`/`0` for `VICE_VISIBLE`, `VICE_WARP`, and `VICE_KEEP_OPEN`. `npm run vice:smoke:visible` forces a visible, warp-off session, waits for a stable `READY.` screen, then injects `HELLO` and keeps the window open for inspection.
|
|
577
|
+
|
|
578
|
+
Automation note: `npm run test:vice:device` and `./build` force the real-VICE validation leg into headless/Xvfb mode so the CI-style matrix does not open a confusing local emulator window.
|
|
579
|
+
|
|
536
580
|
> **Starting the MCP server** is not managed by `./build`. Use `npm start` (from source) or `npx -y c64bridge@latest` (published package) as shown in the [Quick Start](#quick-start) section above.
|
|
537
581
|
|
|
538
582
|
## Documentation
|
|
@@ -563,20 +607,20 @@ Grouped entry point for configuration reads/writes, diagnostics, and snapshots.
|
|
|
563
607
|
| Operation | Description | Required Inputs | Notes | C64U | VICE |
|
|
564
608
|
| --- | --- | --- | --- | --- | --- |
|
|
565
609
|
| `batch_update` | Apply multiple configuration updates in a single request. | — | — | ✅ | ✅ |
|
|
566
|
-
| `diff` | Compare the current configuration with a snapshot. |
|
|
567
|
-
| `get` | Read a configuration category or specific item. |
|
|
610
|
+
| `diff` | Compare the current configuration with a snapshot. | — | — | ✅ | ✅ |
|
|
611
|
+
| `get` | Read a configuration category or specific item. | — | — | ✅ | ✅ |
|
|
568
612
|
| `info` | Retrieve Ultimate hardware information and status. | — | — | ✅ | ✅ |
|
|
569
613
|
| `list` | List configuration categories reported by the firmware. | — | — | ✅ | ✅ |
|
|
570
614
|
| `load_flash` | Load configuration from flash storage. | — | — | ✅ | |
|
|
571
615
|
| `read_debugreg` | Read the Ultimate debug register ($D7FF). | — | — | ✅ | |
|
|
572
616
|
| `reset_defaults` | Reset firmware configuration to factory defaults. | — | — | ✅ | |
|
|
573
|
-
| `restore` | Restore configuration from a snapshot file. |
|
|
617
|
+
| `restore` | Restore configuration from a snapshot file. | — | — | ✅ | ✅ |
|
|
574
618
|
| `save_flash` | Persist the current configuration to flash storage. | — | — | ✅ | |
|
|
575
|
-
| `set` | Write a configuration value in the selected category. |
|
|
619
|
+
| `set` | Write a configuration value in the selected category. | — | — | ✅ | ✅ |
|
|
576
620
|
| `shuffle` | Discover PRG/CRT files and run each with optional screen capture. | — | — | ✅ | |
|
|
577
|
-
| `snapshot` | Snapshot configuration to disk for later restore or diff. |
|
|
621
|
+
| `snapshot` | Snapshot configuration to disk for later restore or diff. | — | — | ✅ | ✅ |
|
|
578
622
|
| `version` | Fetch firmware version details. | — | — | ✅ | ✅ |
|
|
579
|
-
| `write_debugreg` | Write a hex value to the Ultimate debug register ($D7FF). |
|
|
623
|
+
| `write_debugreg` | Write a hex value to the Ultimate debug register ($D7FF). | — | — | ✅ | |
|
|
580
624
|
|
|
581
625
|
#### c64_debug
|
|
582
626
|
|
|
@@ -584,17 +628,17 @@ Grouped entry point for VICE debugger operations (breakpoints, registers, steppi
|
|
|
584
628
|
|
|
585
629
|
| Operation | Description | Required Inputs | Notes | C64U | VICE |
|
|
586
630
|
| --- | --- | --- | --- | --- | --- |
|
|
587
|
-
| `create_checkpoint` | Create a new checkpoint (breakpoint) in VICE. |
|
|
588
|
-
| `delete_checkpoint` | Remove a checkpoint by id. |
|
|
589
|
-
| `get_checkpoint` | Fetch a single checkpoint by id. |
|
|
631
|
+
| `create_checkpoint` | Create a new checkpoint (breakpoint) in VICE. | — | — | | ✅ |
|
|
632
|
+
| `delete_checkpoint` | Remove a checkpoint by id. | — | — | | ✅ |
|
|
633
|
+
| `get_checkpoint` | Fetch a single checkpoint by id. | — | — | | ✅ |
|
|
590
634
|
| `get_registers` | Read register values, optionally filtered by name or id. | — | — | | ✅ |
|
|
591
635
|
| `list_checkpoints` | List all active VICE checkpoints (breakpoints). | — | — | | ✅ |
|
|
592
636
|
| `list_registers` | List available registers (metadata). | — | — | | ✅ |
|
|
593
|
-
| `set_condition` | Attach a conditional expression to a checkpoint. |
|
|
594
|
-
| `set_registers` | Write register values. |
|
|
637
|
+
| `set_condition` | Attach a conditional expression to a checkpoint. | — | — | | ✅ |
|
|
638
|
+
| `set_registers` | Write register values. | — | — | | ✅ |
|
|
595
639
|
| `step` | Single-step CPU execution. | — | — | | ✅ |
|
|
596
640
|
| `step_return` | Continue execution until the current routine returns. | — | — | | ✅ |
|
|
597
|
-
| `toggle_checkpoint` | Enable or disable a checkpoint by id. |
|
|
641
|
+
| `toggle_checkpoint` | Enable or disable a checkpoint by id. | — | — | | ✅ |
|
|
598
642
|
|
|
599
643
|
#### c64_disk
|
|
600
644
|
|
|
@@ -602,12 +646,12 @@ Grouped entry point for disk mounts, listings, image creation, and program disco
|
|
|
602
646
|
|
|
603
647
|
| Operation | Description | Required Inputs | Notes | C64U | VICE |
|
|
604
648
|
| --- | --- | --- | --- | --- | --- |
|
|
605
|
-
| `create_image` | Create a blank disk image of the specified format. |
|
|
606
|
-
| `file_info` | Inspect metadata for a file on the Ultimate filesystem. |
|
|
607
|
-
| `find_and_run` | Search for a PRG/CRT by name substring and run the first match. |
|
|
608
|
-
| `list_drives` | List Ultimate drive slots and their mounted images. | — |
|
|
609
|
-
| `mount` | Mount a disk image with optional verification and retries. |
|
|
610
|
-
| `unmount` | Remove the mounted image from an Ultimate drive slot. |
|
|
649
|
+
| `create_image` | Create a blank disk image of the specified format. | — | supports verify | ✅ | |
|
|
650
|
+
| `file_info` | Inspect metadata for a file on the Ultimate filesystem. | — | supports verify | ✅ | |
|
|
651
|
+
| `find_and_run` | Search for a PRG/CRT by name substring and run the first match. | — | supports verify | ✅ | |
|
|
652
|
+
| `list_drives` | List Ultimate drive slots and their mounted images. | — | supports verify | ✅ | ✅ |
|
|
653
|
+
| `mount` | Mount a disk image with optional verification and retries. | — | supports verify | ✅ | ✅ |
|
|
654
|
+
| `unmount` | Remove the mounted image from an Ultimate drive slot. | — | supports verify | ✅ | ✅ |
|
|
611
655
|
|
|
612
656
|
#### c64_drive
|
|
613
657
|
|
|
@@ -615,11 +659,11 @@ Grouped entry point for drive power, mode, reset, and ROM operations.
|
|
|
615
659
|
|
|
616
660
|
| Operation | Description | Required Inputs | Notes | C64U | VICE |
|
|
617
661
|
| --- | --- | --- | --- | --- | --- |
|
|
618
|
-
| `load_rom` | Temporarily load a custom ROM into an Ultimate drive slot. |
|
|
619
|
-
| `power_off` | Power off a specific Ultimate drive slot. |
|
|
620
|
-
| `power_on` | Power on a specific Ultimate drive slot. |
|
|
621
|
-
| `reset` | Issue an IEC reset for the selected drive slot. |
|
|
622
|
-
| `set_mode` | Set the emulation mode for a drive slot (1541/1571/1581). |
|
|
662
|
+
| `load_rom` | Temporarily load a custom ROM into an Ultimate drive slot. | — | — | ✅ | |
|
|
663
|
+
| `power_off` | Power off a specific Ultimate drive slot. | — | — | ✅ | ✅ |
|
|
664
|
+
| `power_on` | Power on a specific Ultimate drive slot. | — | — | ✅ | ✅ |
|
|
665
|
+
| `reset` | Issue an IEC reset for the selected drive slot. | — | — | ✅ | ✅ |
|
|
666
|
+
| `set_mode` | Set the emulation mode for a drive slot (1541/1571/1581). | — | — | ✅ | ✅ |
|
|
623
667
|
|
|
624
668
|
#### c64_extract
|
|
625
669
|
|
|
@@ -630,8 +674,8 @@ Grouped entry point for sprite/charset extraction, memory dumps, filesystem stat
|
|
|
630
674
|
| `charset` | Locate and extract 2KB character sets from RAM. | — | — | ✅ | |
|
|
631
675
|
| `firmware_health` | Run firmware readiness checks and report status metrics. | — | — | ✅ | |
|
|
632
676
|
| `fs_stats` | Walk the filesystem and aggregate counts/bytes by extension. | — | — | ✅ | |
|
|
633
|
-
| `memory_dump` | Dump a RAM range to hex or binary files with manifest metadata. |
|
|
634
|
-
| `sprites` | Scan RAM for sprites and optionally export .spr files. |
|
|
677
|
+
| `memory_dump` | Dump a RAM range to hex or binary files with manifest metadata. | — | — | ✅ | |
|
|
678
|
+
| `sprites` | Scan RAM for sprites and optionally export .spr files. | — | — | ✅ | |
|
|
635
679
|
|
|
636
680
|
#### c64_graphics
|
|
637
681
|
|
|
@@ -640,10 +684,10 @@ Grouped entry point for frame capture and graphics rendering workflows.
|
|
|
640
684
|
| Operation | Description | Required Inputs | Notes | C64U | VICE |
|
|
641
685
|
| --- | --- | --- | --- | --- | --- |
|
|
642
686
|
| `capture_frame` | Capture one or more complete video frames from the active backend. | — | — | ✅ | ✅ |
|
|
643
|
-
| `render_bitmap` | Import an image file, convert it to VIC-II bitmap memory, write it into RAM, and display it. |
|
|
687
|
+
| `render_bitmap` | Import an image file, convert it to VIC-II bitmap memory, write it into RAM, and display it. | — | — | ✅ | ✅ |
|
|
644
688
|
| `render_petscii_art` | Create PETSCII art from prompts, text, or explicit bitmap data, and optionally display it on the C64. | — | — | ✅ | ✅ |
|
|
645
|
-
| `render_petscii_text` | Display PETSCII text with optional border and background colours. |
|
|
646
|
-
| `render_sprite` | Display supplied 63-byte sprite data at the requested position and colour by writing memory and patching VIC-II registers directly. |
|
|
689
|
+
| `render_petscii_text` | Display PETSCII text with optional border and background colours. | — | — | ✅ | ✅ |
|
|
690
|
+
| `render_sprite` | Display supplied 63-byte sprite data at the requested position and colour by writing memory and patching VIC-II registers directly. | — | — | ✅ | ✅ |
|
|
647
691
|
|
|
648
692
|
#### c64_memory
|
|
649
693
|
|
|
@@ -651,10 +695,10 @@ Grouped entry point for memory I/O, screen reads, and screen polling.
|
|
|
651
695
|
|
|
652
696
|
| Operation | Description | Required Inputs | Notes | C64U | VICE |
|
|
653
697
|
| --- | --- | --- | --- | --- | --- |
|
|
654
|
-
| `read` | Read a range of bytes and return a hex dump with address metadata. |
|
|
655
|
-
| `read_screen` | Return the current 40x25 text screen converted to ASCII. | — |
|
|
656
|
-
| `wait_for_text` | Poll the screen until a substring or regex appears, or timeout elapses. |
|
|
657
|
-
| `write` | Write a hexadecimal byte sequence into RAM. |
|
|
698
|
+
| `read` | Read a range of bytes and return a hex dump with address metadata. | — | supports verify | ✅ | ✅ |
|
|
699
|
+
| `read_screen` | Return the current 40x25 text screen converted to ASCII. | — | supports verify | ✅ | ✅ |
|
|
700
|
+
| `wait_for_text` | Poll the screen until a substring or regex appears, or timeout elapses. | — | supports verify | ✅ | ✅ |
|
|
701
|
+
| `write` | Write a hexadecimal byte sequence into RAM. | — | supports verify | ✅ | ✅ |
|
|
658
702
|
|
|
659
703
|
#### c64_printer
|
|
660
704
|
|
|
@@ -662,9 +706,9 @@ Grouped entry point for Commodore and Epson printing helpers.
|
|
|
662
706
|
|
|
663
707
|
| Operation | Description | Required Inputs | Notes | C64U | VICE |
|
|
664
708
|
| --- | --- | --- | --- | --- | --- |
|
|
665
|
-
| `define_chars` | Define custom printer characters (Commodore DLL mode). |
|
|
666
|
-
| `print_bitmap` | Print a bitmap row via Commodore (BIM) or Epson ESC/P workflows. |
|
|
667
|
-
| `print_text` | Generate BASIC that prints text to device 4. |
|
|
709
|
+
| `define_chars` | Define custom printer characters (Commodore DLL mode). | — | — | ✅ | |
|
|
710
|
+
| `print_bitmap` | Print a bitmap row via Commodore (BIM) or Epson ESC/P workflows. | — | — | ✅ | |
|
|
711
|
+
| `print_text` | Generate BASIC that prints text to device 4. | — | — | ✅ | |
|
|
668
712
|
|
|
669
713
|
#### c64_program
|
|
670
714
|
|
|
@@ -672,14 +716,14 @@ Grouped entry point for program upload, execution, and batch workflows.
|
|
|
672
716
|
|
|
673
717
|
| Operation | Description | Required Inputs | Notes | C64U | VICE |
|
|
674
718
|
| --- | --- | --- | --- | --- | --- |
|
|
675
|
-
| `batch_run` | Run multiple PRG/CRT programs with post-run assertions. |
|
|
676
|
-
| `bundle_run` | Capture screen, memory, and debug registers into an artifact bundle. |
|
|
719
|
+
| `batch_run` | Run multiple PRG/CRT programs with post-run assertions. | — | supports verify | ✅ | ✅ |
|
|
720
|
+
| `bundle_run` | Capture screen, memory, and debug registers into an artifact bundle. | — | supports verify | ✅ | |
|
|
677
721
|
| `cross_platform_greeting` | Show a platform-customized greeting on one or more configured backends, capture screenshots, and verify the results. | — | supports verify | ✅ | ✅ |
|
|
678
|
-
| `load_prg` | Load a PRG from Ultimate storage without executing it. |
|
|
679
|
-
| `run_crt` | Mount and run a CRT cartridge image. |
|
|
680
|
-
| `run_prg` | Load and execute a PRG from Ultimate-visible storage on c64u or a host-local path on VICE. |
|
|
681
|
-
| `upload_run_asm` | Assemble 6502/6510 source, upload the PRG, and execute it. |
|
|
682
|
-
| `upload_run_basic` | Upload Commodore BASIC v2 source and execute it immediately. |
|
|
722
|
+
| `load_prg` | Load a PRG from Ultimate storage without executing it. | — | supports verify | ✅ | |
|
|
723
|
+
| `run_crt` | Mount and run a CRT cartridge image. | — | supports verify | ✅ | |
|
|
724
|
+
| `run_prg` | Load and execute a PRG from Ultimate-visible storage on c64u or a host-local path on VICE. | — | supports verify | ✅ | ✅ |
|
|
725
|
+
| `upload_run_asm` | Assemble 6502/6510 source, upload the PRG, and execute it. | — | supports verify | ✅ | ✅ |
|
|
726
|
+
| `upload_run_basic` | Upload Commodore BASIC v2 source and execute it immediately. | — | supports verify | ✅ | ✅ |
|
|
683
727
|
|
|
684
728
|
#### c64_rag
|
|
685
729
|
|
|
@@ -687,8 +731,8 @@ Grouped entry point for BASIC and assembly RAG lookups.
|
|
|
687
731
|
|
|
688
732
|
| Operation | Description | Required Inputs | Notes | C64U | VICE |
|
|
689
733
|
| --- | --- | --- | --- | --- | --- |
|
|
690
|
-
| `asm` | Retrieve 6502/6510 assembly references from the local knowledge base. |
|
|
691
|
-
| `basic` | Retrieve BASIC references and snippets from the local knowledge base. |
|
|
734
|
+
| `asm` | Retrieve 6502/6510 assembly references from the local knowledge base. | — | — | ✅ | ✅ |
|
|
735
|
+
| `basic` | Retrieve BASIC references and snippets from the local knowledge base. | — | — | ✅ | ✅ |
|
|
692
736
|
|
|
693
737
|
#### c64_select_backend
|
|
694
738
|
|
|
@@ -696,7 +740,7 @@ Switch the active backend between C64U hardware and the VICE emulator at runtime
|
|
|
696
740
|
|
|
697
741
|
| Operation | Description | Required Inputs | Notes | C64U | VICE |
|
|
698
742
|
| --- | --- | --- | --- | --- | --- |
|
|
699
|
-
| `select` | Switch the active runtime backend without restarting the MCP server. |
|
|
743
|
+
| `select` | Switch the active runtime backend without restarting the MCP server. | — | — | ✅ | ✅ |
|
|
700
744
|
|
|
701
745
|
#### c64_sound
|
|
702
746
|
|
|
@@ -704,19 +748,19 @@ Grouped entry point for SID control, playback, composition, and analysis workflo
|
|
|
704
748
|
|
|
705
749
|
| Operation | Description | Required Inputs | Notes | C64U | VICE |
|
|
706
750
|
| --- | --- | --- | --- | --- | --- |
|
|
707
|
-
| `analyze` | Automatically analyze SID playback when verification is requested. |
|
|
708
|
-
| `capture_samples` | Capture raw stereo PCM samples from the C64 Ultimate audio UDP stream. | — |
|
|
709
|
-
| `compile_play` | Compile SIDWAVE or CPG source and optionally play it immediately. | — |
|
|
710
|
-
| `generate` | Generate a lightweight SID arpeggio playback sequence. | — |
|
|
711
|
-
| `note_off` | Release a SID voice by clearing its gate bit. |
|
|
712
|
-
| `note_on` | Trigger a SID voice with configurable waveform, ADSR, and pitch. | — |
|
|
751
|
+
| `analyze` | Automatically analyze SID playback when verification is requested. | — | supports verify | ✅ | |
|
|
752
|
+
| `capture_samples` | Capture raw stereo PCM samples from the C64 Ultimate audio UDP stream. | — | supports verify | ✅ | |
|
|
753
|
+
| `compile_play` | Compile SIDWAVE or CPG source and optionally play it immediately. | — | supports verify | ✅ | ✅ |
|
|
754
|
+
| `generate` | Generate a lightweight SID arpeggio playback sequence. | — | supports verify | ✅ | ✅ |
|
|
755
|
+
| `note_off` | Release a SID voice by clearing its gate bit. | — | supports verify | ✅ | ✅ |
|
|
756
|
+
| `note_on` | Trigger a SID voice with configurable waveform, ADSR, and pitch. | — | supports verify | ✅ | ✅ |
|
|
713
757
|
| `pipeline` | Compile a SIDWAVE score, play it, and analyze the recording. | — | supports verify | ✅ | |
|
|
714
|
-
| `play_mod_file` | Play a MOD tracker module via the Ultimate SID player. |
|
|
758
|
+
| `play_mod_file` | Play a MOD tracker module via the Ultimate SID player. | — | supports verify | ✅ | |
|
|
715
759
|
| `play_preset` | Compile and play a built-in SID preset such as Für Elise by Beethoven. | — | supports verify | ✅ | ✅ |
|
|
716
|
-
| `play_sid_file` | Play a SID file stored on the Ultimate filesystem. |
|
|
717
|
-
| `record_analyze` | Record audio for a fixed duration and return SID analysis metrics. |
|
|
718
|
-
| `reset` | Soft or hard reset of SID registers to clear glitches. | — |
|
|
719
|
-
| `set_volume` | Set the SID master volume register at $D418 (0-15). |
|
|
760
|
+
| `play_sid_file` | Play a SID file stored on the Ultimate filesystem. | — | supports verify | ✅ | |
|
|
761
|
+
| `record_analyze` | Record audio for a fixed duration and return SID analysis metrics. | — | supports verify | ✅ | |
|
|
762
|
+
| `reset` | Soft or hard reset of SID registers to clear glitches. | — | supports verify | ✅ | ✅ |
|
|
763
|
+
| `set_volume` | Set the SID master volume register at $D418 (0-15). | — | supports verify | ✅ | ✅ |
|
|
720
764
|
| `silence_all` | Silence all SID voices with optional audio verification. | — | supports verify | ✅ | ✅ |
|
|
721
765
|
|
|
722
766
|
#### c64_stream
|
|
@@ -725,8 +769,8 @@ Grouped entry point for starting and stopping Ultimate streaming sessions.
|
|
|
725
769
|
|
|
726
770
|
| Operation | Description | Required Inputs | Notes | C64U | VICE |
|
|
727
771
|
| --- | --- | --- | --- | --- | --- |
|
|
728
|
-
| `start` | Start an Ultimate streaming session toward a host:port target. |
|
|
729
|
-
| `stop` | Stop an active Ultimate streaming session. |
|
|
772
|
+
| `start` | Start an Ultimate streaming session toward a host:port target. | — | — | ✅ | |
|
|
773
|
+
| `stop` | Stop an active Ultimate streaming session. | — | — | ✅ | |
|
|
730
774
|
|
|
731
775
|
#### c64_system
|
|
732
776
|
|
|
@@ -742,9 +786,9 @@ Grouped entry point for power, reset, menu, and background task control.
|
|
|
742
786
|
| `reboot` | Trigger a firmware reboot to recover from faults. | — | — | ✅ | ✅ |
|
|
743
787
|
| `reset` | Issue a soft reset without cutting power. | — | — | ✅ | ✅ |
|
|
744
788
|
| `resume` | Resume CPU execution after a pause. | — | — | ✅ | |
|
|
745
|
-
| `start_task` | Start a named background task that runs on an interval. |
|
|
789
|
+
| `start_task` | Start a named background task that runs on an interval. | — | — | ✅ | ✅ |
|
|
746
790
|
| `stop_all_tasks` | Stop every running background task and persist state. | — | — | ✅ | ✅ |
|
|
747
|
-
| `stop_task` | Stop a specific background task and clear its timer. |
|
|
791
|
+
| `stop_task` | Stop a specific background task and clear its timer. | — | — | ✅ | ✅ |
|
|
748
792
|
|
|
749
793
|
#### c64_vice
|
|
750
794
|
|
|
@@ -752,39 +796,39 @@ Grouped entry point for reading and updating selected VICE resources.
|
|
|
752
796
|
|
|
753
797
|
| Operation | Description | Required Inputs | Notes | C64U | VICE |
|
|
754
798
|
| --- | --- | --- | --- | --- | --- |
|
|
755
|
-
| `resource_get` | Read a VICE configuration resource (safe prefixes only). |
|
|
756
|
-
| `resource_set` | Write a VICE configuration resource (safe prefixes only). |
|
|
799
|
+
| `resource_get` | Read a VICE configuration resource (safe prefixes only). | — | — | | ✅ |
|
|
800
|
+
| `resource_set` | Write a VICE configuration resource (safe prefixes only). | — | — | | ✅ |
|
|
757
801
|
|
|
758
802
|
### Resources
|
|
759
803
|
|
|
760
804
|
| Name | Summary |
|
|
761
805
|
| --- | --- |
|
|
762
|
-
| `c64://
|
|
763
|
-
| `c64://
|
|
764
|
-
| `c64://
|
|
765
|
-
| `c64://
|
|
766
|
-
| `c64://
|
|
767
|
-
| `c64://
|
|
768
|
-
| `c64://
|
|
769
|
-
| `c64://
|
|
770
|
-
| `c64://
|
|
771
|
-
| `c64://
|
|
772
|
-
| `c64://
|
|
773
|
-
| `c64://
|
|
774
|
-
| `c64://
|
|
775
|
-
| `c64://
|
|
776
|
-
| `c64://
|
|
777
|
-
| `c64://
|
|
778
|
-
| `c64://
|
|
779
|
-
| `c64://
|
|
780
|
-
| `c64://
|
|
781
|
-
| `c64://
|
|
782
|
-
| `c64://
|
|
783
|
-
| `c64://
|
|
784
|
-
| `c64://
|
|
785
|
-
| `c64://
|
|
786
|
-
| `c64://
|
|
787
|
-
| `c64://
|
|
806
|
+
| `c64://guide/index` | Explains how to approach each knowledge bundle and when to consult it. |
|
|
807
|
+
| `c64://guide/bootstrap` | Step-by-step rules for safe automation, verification, and rollback on the C64. |
|
|
808
|
+
| `c64://guide/fast-paths` | Condensed routing guide for one-call demos, backend switching, and when to prefer orchestration over manual tool composition. |
|
|
809
|
+
| `c64://vice/binary-monitor-spec` | Transport framing, single-client constraints, command semantics, and monitor side effects that shape all VICE-backed operations. |
|
|
810
|
+
| `c64://basic/spec` | Token definitions, syntax rules, and device I/O guidance for BASIC v2. |
|
|
811
|
+
| `c64://basic/pitfalls` | Quickref covering quotation handling, line length, tokenization, variable names, and other BASIC traps. |
|
|
812
|
+
| `c64://assembly/6510-spec` | Official opcode matrix, addressing modes, and zero-page strategy for the 6510 CPU. |
|
|
813
|
+
| `c64://sound/sid/spec` | Register map, waveform behaviour, and ADSR envelopes for expressive SID playback. |
|
|
814
|
+
| `c64://sound/sidwave/spec` | Defines the SIDWAVE interchange format used by the SID composer workflow. |
|
|
815
|
+
| `c64://sound/sid/file-format` | Explains PSID/RSID headers, metadata blocks, and compatibility notes for imported music. |
|
|
816
|
+
| `c64://sound/sid/best-practices` | Captures proven waveforms, ADSR presets, phrasing, and verification workflow for pleasant SID music. |
|
|
817
|
+
| `c64://graphics/vic/spec` | Covers raster timing, sprite control, colour RAM, and bitmap modes on the VIC-II. |
|
|
818
|
+
| `c64://graphics/character-set` | Character code table mapping PETSCII codes to screen codes, glyphs, and keyboard input. |
|
|
819
|
+
| `c64://graphics/petscii/style-guide` | Documents colour palette, readability presets, dithering patterns, and best practices for creating artistic and readable PETSCII displays. |
|
|
820
|
+
| `c64://graphics/sprite-charset/best-practices` | Documents sprite and charset workflows, memory layout, VIC-II configuration, common pitfalls, and proven techniques for hardware-accelerated graphics. |
|
|
821
|
+
| `c64://memory/map` | Page-by-page breakdown of the 64 KB address space with hardware, ROM, and RAM regions. |
|
|
822
|
+
| `c64://memory/zero-page-and-workspace` | Documents zero-page variables, BASIC pointers, and KERNAL workspace addresses. |
|
|
823
|
+
| `c64://kernal/rom-routines` | Lists KERNAL ROM vectors and service routines for OS-level functionality. |
|
|
824
|
+
| `c64://io/spec` | Covers VIC-II, SID, CIA, and system control registers with address ranges and usage notes. |
|
|
825
|
+
| `c64://io/cia/spec` | Details CIA 1/2 registers, timers, interrupts, and keyboard matrix layout. |
|
|
826
|
+
| `c64://printer/spec` | Covers device setup, control codes, and Ultimate 64 integration for printers. |
|
|
827
|
+
| `c64://printer/commodore/text` | Character sets, control codes, and formatting for Commodore MPS text output. |
|
|
828
|
+
| `c64://printer/commodore/bitmap` | Details bitmap modes, graphics commands, and data layout for MPS bitmap printing. |
|
|
829
|
+
| `c64://printer/epson/text` | Lists ESC/P control codes and formatting advice for Epson FX text output. |
|
|
830
|
+
| `c64://printer/epson/bitmap` | Explains bit-image modes, density options, and data packing for Epson bitmap jobs. |
|
|
831
|
+
| `c64://printer/prompt-guide` | Reusable prompt templates that drive complex printer jobs through the MCP server. |
|
|
788
832
|
|
|
789
833
|
### Prompts
|
|
790
834
|
|