emulator improvements
This commit is contained in:
34
h8536/emulator/cpu.py
Normal file
34
h8536/emulator/cpu.py
Normal file
@@ -0,0 +1,34 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass, field
|
||||
|
||||
|
||||
@dataclass
|
||||
class CPUState:
|
||||
pc: int = 0
|
||||
sr: int = 0
|
||||
br: int = 0
|
||||
regs: list[int] = field(default_factory=lambda: [0] * 8)
|
||||
cycles: int = 0
|
||||
steps: int = 0
|
||||
z: bool = False
|
||||
c: bool = False
|
||||
n: bool = False
|
||||
v: bool = False
|
||||
interrupt_depth: int = 0
|
||||
|
||||
|
||||
def s8(value: int) -> int:
|
||||
return value - 0x100 if value & 0x80 else value
|
||||
|
||||
|
||||
def s16(value: int) -> int:
|
||||
return value - 0x10000 if value & 0x8000 else value
|
||||
|
||||
|
||||
def mask(size: int) -> int:
|
||||
return 0xFFFF if size == 2 else 0xFF
|
||||
|
||||
|
||||
def sign_bit(size: int) -> int:
|
||||
return 0x8000 if size == 2 else 0x80
|
||||
Reference in New Issue
Block a user