summaryrefslogtreecommitdiff
path: root/native/Noddybox.Emulation.EightBit.Z80.Test/Program.cs
diff options
context:
space:
mode:
authorIan C <ianc@noddybox.co.uk>2012-03-09 23:01:13 +0000
committerIan C <ianc@noddybox.co.uk>2012-03-09 23:01:13 +0000
commit998b64d14c9d055562d8c1611813d40af4cb030b (patch)
treeecb3402a5c7302d86c5a364308b6d0b173e00e5c /native/Noddybox.Emulation.EightBit.Z80.Test/Program.cs
parent31203bc854656ff92844364903de9abee9daea8b (diff)
Further bug fixes to Z80. Now starts the Spectrum ROM OK.
Diffstat (limited to 'native/Noddybox.Emulation.EightBit.Z80.Test/Program.cs')
-rw-r--r--native/Noddybox.Emulation.EightBit.Z80.Test/Program.cs44
1 files changed, 35 insertions, 9 deletions
diff --git a/native/Noddybox.Emulation.EightBit.Z80.Test/Program.cs b/native/Noddybox.Emulation.EightBit.Z80.Test/Program.cs
index 43dab10..cad9031 100644
--- a/native/Noddybox.Emulation.EightBit.Z80.Test/Program.cs
+++ b/native/Noddybox.Emulation.EightBit.Z80.Test/Program.cs
@@ -20,6 +20,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
+using System.Diagnostics;
namespace Noddybox.Emulation.EightBit.Z80.Test
{
@@ -60,6 +61,26 @@ namespace Noddybox.Emulation.EightBit.Z80.Test
return q;
}
+ static bool Run(Queue<string> test, Queue<string> expected, bool stop)
+ {
+ bool ok = true;
+
+ if (test.Peek() != expected.Peek())
+ {
+ throw new Exception(String.Format("Test name {0}, expected name {1}", test.Peek(), expected.Peek()));
+ }
+
+ TestMachine m = new TestMachine();
+ expected.Dequeue();
+
+ if (!m.Run(test.Dequeue(), test, expected, stop))
+ {
+ ok = false;
+ }
+
+ return ok;
+ }
+
static void Main(string[] args)
{
try
@@ -74,17 +95,22 @@ namespace Noddybox.Emulation.EightBit.Z80.Test
if (t.Count > 0)
{
- if (t.Peek() != e.Peek())
- {
- throw new Exception(String.Format("Test name {0}, expected name {1}", t.Peek(), e.Peek()));
- }
-
- TestMachine m = new TestMachine();
- e.Dequeue();
+ Queue<string> t2 = new Queue<string>(t);
+ Queue<string> e2 = new Queue<string>(t);
- if (!m.Run(t.Dequeue(), t, e))
+ if (!Run(t, e, false))
{
- Console.ReadKey(true);
+ if (!Debugger.IsAttached)
+ {
+ if (Console.ReadKey(true).Key == ConsoleKey.Q)
+ {
+ return;
+ }
+ }
+ else
+ {
+ Run(t2, e2, true);
+ }
}
}
}