Add bounded logical Z80 disassembly to shared MCP

This commit is contained in:
Александр Петров
2026-09-17 23:11:08 +03:00
parent 113d468c48
commit 958ad0ae0f
13 changed files with 103 additions and 16 deletions
+12 -1
View File
@@ -224,7 +224,8 @@ class SessionController:
self._emit('control', {'owner': None})
return {'released': owner}
if self.running and method in ('where', 'registers', 'read_memory',
'read_program_memory', 'read_variable',
'read_program_memory', 'disassemble_logical',
'read_variable',
'break_line', 'break_function'):
raise SessionError('Операция требует остановленного CPU; сначала Pause')
if method == 'status':
@@ -328,6 +329,16 @@ class SessionController:
result = self.session.bridge.request('program_memory',
address=address, length=length)
return {**result, 'bank_pages': mapping.bank_pages}
if method == 'disassemble_logical':
address = int(arguments['address'])
length = int(arguments['length'])
if address < 0 or address > 0xffff or length < 1 or length > 256 or \
address + length > 0x10000:
raise SessionError('Дизассемблирование: адрес 0..0xffff, длина 1..256')
mapping = self.session.refresh()
result = self.session.bridge.request('disassemble_logical',
address=address, length=length)
return {**result, 'bank_pages': mapping.bank_pages}
if method == 'variables':
return self.session.model.variables
if method == 'read_variable':