c64bridge 0.9.2 → 1.0.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/AGENTS.md +24 -3
- package/README.md +271 -161
- package/data/basic/rom-routines.md +269 -0
- package/data/context/bootstrap.md +1 -1
- package/data/io/cia-spec.md +2 -2
- package/data/{memory/kernal-memory-map.md → kernal/rom-routines.md} +3 -2
- package/data/memory/low-memory-map.md +1 -0
- package/data/memory/memory-map.md +13 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/c64Client.js +127 -12
- package/dist/config.js +34 -8
- package/dist/device.js +75 -45
- package/dist/mcp-server.js +28 -8
- package/dist/platform.js +13 -2
- package/dist/rag/knowledgeIndex.js +54 -9
- package/dist/rag/resourceUris.js +2 -0
- package/dist/tools/audio.js +1 -1
- package/dist/tools/developer.js +6 -6
- package/dist/tools/graphics.js +4 -4
- package/dist/tools/input.js +129 -12
- package/dist/tools/machineControl.js +85 -6
- package/dist/tools/memory.js +1 -1
- package/dist/tools/meta/index.js +1 -1
- package/dist/tools/programRunners.js +5 -5
- package/dist/tools/rag.js +1 -1
- package/dist/tools/registry/batch.js +1 -1
- package/dist/tools/registry/config.js +5 -5
- package/dist/tools/registry/disk.js +2 -2
- package/dist/tools/registry/drive.js +2 -2
- package/dist/tools/registry/graphics.js +2 -2
- package/dist/tools/registry/memory.js +2 -2
- package/dist/tools/registry/platform.js +7 -5
- package/dist/tools/registry/program.js +5 -5
- package/dist/tools/registry/rag.js +1 -1
- package/dist/tools/registry/sound.js +4 -4
- package/dist/tools/registry/system.js +13 -3
- package/dist/tools/storage.js +1 -1
- package/doc/c64u/c64-openapi.yaml +1130 -774
- package/doc/developer.md +3 -2
- package/doc/u2/u2-openapi.yaml +1192 -0
- package/generated/c64/index.js +142 -9
- package/generated/openapi/c64u/index.js +1117 -0
- package/generated/openapi/u2/index.js +929 -0
- package/mcp/resources.json +60 -7
- package/mcp/schemas/c64_graphics.schema.json +3 -3
- package/mcp/schemas/c64_input.schema.json +247 -6
- package/mcp/schemas/c64_memory.schema.json +3 -3
- package/mcp/schemas/c64_program.schema.json +3 -3
- package/mcp/schemas/c64_select_backend.schema.json +2 -0
- package/mcp/schemas/c64_system.schema.json +41 -1
- package/mcp/server.json +1 -1
- package/mcp/tools.json +382 -41
- package/mcp.json +21 -5
- package/package.json +14 -8
- package/scripts/mockC64Server.mjs +40 -0
- package/scripts/prepare-release.mjs +13 -2
- package/scripts/update-readme.ts +19 -30
- package/server.json +2 -2
package/AGENTS.md
CHANGED
|
@@ -17,19 +17,28 @@ On startup the server probes connectivity (REST + zero-page read) and announces
|
|
|
17
17
|
|
|
18
18
|
The server resolves config in this order: `C64BRIDGE_CONFIG` → `./.c64bridge.json` → `~/.c64bridge.json` → defaults (`host=c64u`, `port=80`).
|
|
19
19
|
|
|
20
|
-
Example:
|
|
20
|
+
Example C64U/U64 configuration:
|
|
21
21
|
|
|
22
22
|
```json
|
|
23
23
|
{ "c64u": { "host": "c64u", "port": 80, "networkPassword": "secret" } }
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
+
U2, U2+, and U2+L use the `u2` profile, which is a firmware-defined subset of the C64U/U64 API:
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{ "u2": { "host": "u2", "port": 80, "networkPassword": "secret" } }
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Use `C64_MODE=u2` to select that profile. U2-family cartridges support the shared REST operations, including configuration and `machine:menu_screen`, but not `machine:input`, debug-register access, power-off, or streaming.
|
|
33
|
+
|
|
26
34
|
When Ultimate firmware network protection is enabled, `networkPassword` is sent as the `X-Password` header on every REST request.
|
|
27
35
|
|
|
28
36
|
### Runtime Backend Switching
|
|
29
37
|
|
|
30
|
-
When
|
|
38
|
+
When any combination of `c64u`, `u2`, and `vice` is configured, the server can keep the configured backends live at the same time.
|
|
31
39
|
Use `c64_select_backend` to switch the active backend without restarting the MCP server.
|
|
32
40
|
The `c64://platform/status` resource always reports the currently active backend and the configured backend set.
|
|
41
|
+
Before using physical `machine:input`, `machine:menu_screen`, or C64U/U64 `power_cycle`, read it for native endpoint availability. If `machine:input` is unavailable or unknown, use `key` or `write_text` for ordinary C64 input; do not attempt physical matrix injection. `machine:menu_screen` is only confirmed while an Ultimate menu is visible.
|
|
33
42
|
State the desired backend directly in the prompt when you want to pin execution, for example: `use vice`, `vice: load this PRG`, `use c64u`, or `run this on hardware`.
|
|
34
43
|
When using the VS Code `C64` agent, keep the backend request in the same prompt so tool routing can call `c64_select_backend` before backend-specific operations.
|
|
35
44
|
|
|
@@ -84,7 +93,7 @@ If a workflow description starts listing tool calls outside `.github/skills`, tr
|
|
|
84
93
|
- Program runners: `c64_program` (`upload_run_basic`, `upload_run_asm`, `run_prg`, `run_crt`, `bundle_run`, `batch_run`)
|
|
85
94
|
- Fast demo workflow: `c64_program` (`cross_platform_greeting`) for one-call greetings on VICE and/or C64U with screenshot capture and verification
|
|
86
95
|
- Screen & memory: `c64_memory` (`read`, `write`, `read_screen`, `wait_for_text`)
|
|
87
|
-
- System control: `c64_system` (`pause`, `resume`, `reset`, `reboot`, `poweroff`, `menu`, tasks)
|
|
96
|
+
- System control: `c64_system` (`pause`, `resume`, `reset`, `reboot`, `poweroff`, `power_cycle`, `menu`, tasks)
|
|
88
97
|
- Configuration: `c64_config` (get/set, `batch_update`, `snapshot`, `restore`, `diff`, `shuffle`)
|
|
89
98
|
- Drives & files: `c64_disk`, `c64_drive`
|
|
90
99
|
- SID / music: `c64_sound` (`play_preset`, playback, generate, analyze)
|
|
@@ -93,6 +102,13 @@ If a workflow description starts listing tool calls outside `.github/skills`, tr
|
|
|
93
102
|
|
|
94
103
|
Tools and parameters are listed dynamically via ListTools.
|
|
95
104
|
|
|
105
|
+
### Configuration and menu navigation
|
|
106
|
+
|
|
107
|
+
Change C64U/U64/U2 configuration through `c64_config` REST operations; do not navigate configuration menus with injected keyboard input.
|
|
108
|
+
`c64_input` `key` is PETSCII/KERNAL-queue input, while `keyboard` sends physical key combinations through Ultimate REST input.
|
|
109
|
+
Keyboard menu navigation is reserved for device features with no REST equivalent, for example the machine code monitor, visual SID editor, or Tool Menu.
|
|
110
|
+
`power_cycle` is the deliberate Tool Menu exception on C64U/U64: it reads `machine:menu_screen` after every navigation step and stops rather than blindly selecting an unverified item. It uses REST reboot on U2-family cartridges and a fresh VICE start on VICE.
|
|
111
|
+
|
|
96
112
|
## Skill Routing
|
|
97
113
|
|
|
98
114
|
| Intent | Skill |
|
|
@@ -115,12 +131,17 @@ Tools and parameters are listed dynamically via ListTools.
|
|
|
115
131
|
Use ListResources to discover built-in knowledge, then read specific URIs to enrich context before coding:
|
|
116
132
|
|
|
117
133
|
- `c64://basic/spec` — BASIC v2 tokens, syntax, device I/O
|
|
134
|
+
- `c64://basic/rom-routines` — BASIC ROM routines, parser/evaluator helpers, numeric/string machinery
|
|
118
135
|
- `c64://assembly/6510-spec` — 6510 opcodes, addressing, zero-page strategy
|
|
119
136
|
- `c64://graphics/vic/spec` — raster timing, sprites, colour RAM, bitmap modes
|
|
120
137
|
- `c64://sound/sid/spec` — SID registers, waveforms, ADSR
|
|
121
138
|
- `c64://memory/map` — full 64 KB address map
|
|
139
|
+
- `c64://memory/zero-page-and-workspace` — zero page, stack, page-2 buffers, page-3 vectors
|
|
122
140
|
- `c64://vice/binary-monitor-spec` — mandatory reference when targeting VICE; covers Binary Monitor transport, command framing, and debugger side effects
|
|
123
141
|
- `c64://basic/pitfalls` — quoting, line length, token pitfalls
|
|
142
|
+
- `c64://kernal/rom-routines` — KERNAL ROM routines, jump table, vectors, serial/tape/screen services
|
|
143
|
+
- `c64://io/spec` — memory-mapped VIC-II, SID, CIA, colour RAM, and expansion I/O registers
|
|
144
|
+
- `c64://io/cia/spec` — CIA timers, keyboard matrix, serial bus, TOD, IRQ/NMI details
|
|
124
145
|
- `c64://graphics/petscii/style-guide` — readable PETSCII, colour/dither guidance
|
|
125
146
|
|
|
126
147
|
Pull RAG snippets via `c64_rag` (ops `basic`/`asm`) for targeted examples.
|