// // Copyright (c) 2012 Ian Cowburn // using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; namespace Noddybox.Emulation.EightBit { /// /// Defines an 8-bit CPU. /// public interface ICpu { /// /// Initialise the CPU to give it access to memory and devices. /// /// The memory to access. /// The devices to access. /// The clock to use. void Initialise(IMemory memory, IDevice device, Clock clock); /// /// Resets the CPU to its initial state. /// void Reset(); /// /// Runs the next instruction. /// void Step(); /// /// Runs the CPU until the next frame flyback. /// void Run(); /// /// Generates a maskable interrupt to the CPU. /// /// Optional value from an interrupting device. May be ignored depending on the CPU type. void MaskableInterrupt(byte value); /// /// Generates a non-maskable interrupt to the CPU. /// /// Optional value from an interrupting device. May be ignored depending on the CPU type. void NonMaskableInterrupt(byte value); } }