EMualtor adjustments
This commit is contained in:
@@ -278,15 +278,17 @@ class H8536Emulator:
|
||||
self._set_logic_flags(result, size)
|
||||
elif op == 0x16:
|
||||
self._set_logic_flags(self._read_ea(ea, size), size)
|
||||
elif op == 0x10:
|
||||
value = self._read_ea(ea, size)
|
||||
result = ((value & 0xFF) << 8) | ((value >> 8) & 0xFF)
|
||||
self._write_ea(ea, result, 2)
|
||||
elif op in (0x10, 0x11, 0x12) and ea["mode"] == "reg" and size == 1:
|
||||
reg = int(ea["reg"])
|
||||
value = self.cpu.regs[reg] & 0xFFFF
|
||||
if op == 0x10:
|
||||
result = ((value & 0x00FF) << 8) | ((value >> 8) & 0x00FF)
|
||||
elif op == 0x11:
|
||||
result = s8(value & 0xFF) & 0xFFFF
|
||||
else:
|
||||
result = value & 0x00FF
|
||||
self.cpu.regs[reg] = result
|
||||
self._set_logic_flags(result, 2)
|
||||
elif op == 0x12:
|
||||
value = self._read_ea(ea, size) & 0xFF
|
||||
self._write_ea(ea, value, 2 if size == 2 else 1)
|
||||
self._set_logic_flags(value, size)
|
||||
elif op == 0x1A:
|
||||
value = self._read_ea(ea, size)
|
||||
result = (value << 1) & mask(size)
|
||||
|
||||
Reference in New Issue
Block a user