void reset() noexcept override
Resets the CPU's internal state (flags, etc.).
RegisterValue flags() const noexcept
Returns the current comparison flags.
Cpu & operator=(const Cpu &)=delete
std::unique_ptr< Impl > impl_
Interrupt step(RegisterFile ®s) override
Performs a single fetch-decode-execute cycle.
Cpu(IMemory &memory)
Constructs a CPU connected to the given memory.
Abstract interface for linear addressable memory.
The CPU's register bank — holds REGISTER_COUNT (16) registers.
ICPU — abstract interface for the CPU simulation.
IMemory interface — abstract linear addressable memory.
Interrupt
Interrupt codes used by the CPU and kernel.
std::int32_t RegisterValue
Value stored in a CPU register.