diff --git a/src/vm.py b/src/vm.py index 6394b23..7cb4196 100644 --- a/src/vm.py +++ b/src/vm.py @@ -23,9 +23,19 @@ class VMCC(IntFlag): NEGATIVE = 1 << 1 ZERO = 1 << 0 +@dataclass class Breakpoint(Exception): address: int +class VMExceptionType(Enum): + END_OF_MEM = auto() + INVALID_OPCODE = auto() + +@dataclass +class VMException(Exception): + cause: VMExceptionType + pc: int + @dataclass class VM: instr_callbacks: ClassVar[dict[OpcodeDescription, Callable]]