From 2b8d49726e448e22b5055da5ba4395d043030984 Mon Sep 17 00:00:00 2001 From: Ian C Date: Sun, 1 Jan 2012 14:21:26 +0000 Subject: Moved sources to help in compilation for other platforms and isolated phone projects. --- src/Noddybox.Emulation.EightBit/ICpu.cs | 57 +++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/Noddybox.Emulation.EightBit/ICpu.cs (limited to 'src/Noddybox.Emulation.EightBit/ICpu.cs') diff --git a/src/Noddybox.Emulation.EightBit/ICpu.cs b/src/Noddybox.Emulation.EightBit/ICpu.cs new file mode 100644 index 0000000..dc2f811 --- /dev/null +++ b/src/Noddybox.Emulation.EightBit/ICpu.cs @@ -0,0 +1,57 @@ +// +// 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); + } +} -- cgit v1.3