Add asynchronous machine over and out to shared MCP

This commit is contained in:
Александр Петров
2026-09-17 23:32:46 +03:00
parent 259c782190
commit a8d0692eb2
15 changed files with 241 additions and 19 deletions
+11 -3
View File
@@ -82,7 +82,8 @@ MCP-сервером MAME и удаляет socket. Закрытие самог
`list_breakpoints`, `clear_breakpoint`, `clear_my_breakpoints`,
`claim_control`, `release_control`,
`continue_execution`,
`pause_execution`, `step_instruction`, `step_source`. Ответы SDK 2.x содержат
`pause_execution`, `step_instruction`, `step_over_instruction`,
`step_out_instruction`, `step_source`. Ответы SDK 2.x содержат
`structuredContent`. `step_source` принимает `into`, `over` или `out` и
возвращает принятие команды; итоговую остановку получите через
`recent_events` с курсором `last`. Логи `SDBG_LOG` приходят как события
@@ -90,9 +91,16 @@ MCP-сервером MAME и удаляет socket. Закрытие самог
`step_instruction(count)` синхронно выполняет 1..64 машинных шагов
(`count=1` по умолчанию) и возвращает позицию остановки. Если раньше
сработает breakpoint, выполнение может остановиться до заданного числа.
Команды DAP F11/F10/Shift+F11 сохраняют прежнюю C-семантику.
`step_over_instruction(count=1..64)` и `step_out_instruction()` дают именно
машинную семантику MAME. Они отвечают сразу `accepted`; итоговую остановку
получайте через `recent_events` или `session_status`, при долгом вызове
доступен `pause_execution`. Например, `out` из `___sdcc_enter_ix` не
останавливается быстро: этот helper возвращает управление через `jp (hl)`,
а не через `ret`. Живой тест проверил `over` через такой вызов и `out` из
возвращаемого `_gettextmode`. Команды DAP F11/F10/Shift+F11 сохраняют
прежнюю C-семантику.
Число 29 в attach-режиме (31 в автономном с `start_session`/`stop_session`)
Число 31 в attach-режиме (33 в автономном с `start_session`/`stop_session`)
не означает полного переноса более нового `-plugin mamebridge`:
его `src/mame_mcp.py` публикует 30 raw-инструментов, ориентированных на
машину MAME. Здесь инструменты сгруппированы по операциям C-сессии, а