Add bounded logical Z80 disassembly to shared MCP
This commit is contained in:
+12
-3
@@ -74,7 +74,8 @@ MCP-сервером MAME и удаляет socket. Закрытие самог
|
||||
непосредственно из UI Codex и Claude ещё не проверено.
|
||||
|
||||
Доступные инструменты: `session_status`, `where`, `read_registers`,
|
||||
`read_memory`, `read_program_memory`, `list_ports`, `list_shares`, `read_share`, `read_vram`,
|
||||
`read_memory`, `read_program_memory`, `disassemble_logical`, `list_ports`,
|
||||
`list_shares`, `read_share`, `read_vram`,
|
||||
`read_screen_pixels`, `screenshot`, `press_key`, `list_variables`, `read_variable`, `recent_events`,
|
||||
`mame_console_tail`, `set_line_breakpoint`, `set_function_breakpoint`,
|
||||
`list_breakpoints`, `clear_breakpoint`, `clear_my_breakpoints`,
|
||||
@@ -86,7 +87,7 @@ MCP-сервером MAME и удаляет socket. Закрытие самог
|
||||
`recent_events` с курсором `last`. Логи `SDBG_LOG` приходят как события
|
||||
`output`; журнал ограничен 1024 событиями и сообщает `first`/`last`/`lost`.
|
||||
|
||||
Число 27 в attach-режиме (29 в автономном с `start_session`/`stop_session`)
|
||||
Число 28 в attach-режиме (30 в автономном с `start_session`/`stop_session`)
|
||||
не означает полного переноса более нового `-plugin mamebridge`:
|
||||
его `src/mame_mcp.py` публикует 30 raw-инструментов, ориентированных на
|
||||
машину MAME. Здесь инструменты сгруппированы по операциям C-сессии, а
|
||||
@@ -98,7 +99,7 @@ MCP-сервером MAME и удаляет socket. Закрытие самог
|
||||
| `setmem`, raw `debugger_command`, watchpoints | Проверка прав, банка, диапазона и согласование с DAP-точками; произвольная debugger-команда может нарушить состояние сессии |
|
||||
| VRAM/shares, screen pixels, screenshot | Реализованы через общий `sdbgbridge`; точный tag, пределы 4096 байт/8192 пикселя, PNG только в каталоге сессии |
|
||||
| Клавиатура, мышь, type/press | `list_ports` и одиночный `press_key` уже перенесены; набор строки, произвольные поля портов и мышь требуют отдельного контракта ввода |
|
||||
| Raw disassembly | Связать адрес/банк с проверенной C-картой; не выдавать физический адрес за logical |
|
||||
| Raw disassembly | Текущее окно logical Z80 уже доступно через `disassemble_logical`; адреса raw program вне отображённого банка требуют отдельного безопасного режима |
|
||||
|
||||
Это следующий этап, а не запрет на функции raw MCP. Нельзя просто загрузить
|
||||
`mamebridge` рядом с `sdbgbridge`: два независимых обработчика начнут менять
|
||||
@@ -120,6 +121,14 @@ generation и страницы банков; диапазон не может п
|
||||
и битовые маски; результат ограничен 512 портами/4096 полями и помечает
|
||||
`truncated`, если достигнут предел. Оба инструмента проверены в живом MAME.
|
||||
|
||||
`disassemble_logical` принимает числовой адрес (десятичный или `0xHEX`) и
|
||||
длину 1..256 байт в текущем logical Z80 пространстве, только при stop.
|
||||
Сервер сверяет загруженный C-код, вызывает фиксированную читающую команду
|
||||
MAME `dasm` во временном каталоге сессии и возвращает текст, generation и
|
||||
текущие `bank_pages`. Это не произвольная debugger-команда. Дизассемблирование
|
||||
raw program вне текущих банков пока не поддержано. На живом `hello` ответ
|
||||
начинался с адреса `8224`, соответствующего `main`.
|
||||
|
||||
`list_shares` возвращает точные tag/размеры. `read_share` требует полный tag,
|
||||
`read_vram` выбирает единственный VRAM share; обе операции читают до 4096
|
||||
байт без Z80 bank mapping. `read_screen_pixels` возвращает pen16-значения
|
||||
|
||||
Reference in New Issue
Block a user