summaryrefslogtreecommitdiff
path: root/native/Noddybox.Emulation.EightBit.Z80.Test/TestMachine.cs
diff options
context:
space:
mode:
authorIan C <ianc@noddybox.co.uk>2012-03-05 23:55:51 +0000
committerIan C <ianc@noddybox.co.uk>2012-03-05 23:55:51 +0000
commit7a79ba9eb1e7cbee6386d8c8e019fdc4738228a4 (patch)
tree71d09422590cc23aebe364e4c6f000567942eacb /native/Noddybox.Emulation.EightBit.Z80.Test/TestMachine.cs
parent788b8cc4dd404a826ce881c020ee6ca0388a5975 (diff)
None compiling safe-keeping commit. Started on Z80 disassembler.
Diffstat (limited to 'native/Noddybox.Emulation.EightBit.Z80.Test/TestMachine.cs')
-rw-r--r--native/Noddybox.Emulation.EightBit.Z80.Test/TestMachine.cs21
1 files changed, 20 insertions, 1 deletions
diff --git a/native/Noddybox.Emulation.EightBit.Z80.Test/TestMachine.cs b/native/Noddybox.Emulation.EightBit.Z80.Test/TestMachine.cs
index b5d7810..a876826 100644
--- a/native/Noddybox.Emulation.EightBit.Z80.Test/TestMachine.cs
+++ b/native/Noddybox.Emulation.EightBit.Z80.Test/TestMachine.cs
@@ -19,6 +19,8 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using System.Diagnostics;
+using Noddybox.Emulation.EightBit.Z80.Disassembler;
namespace Noddybox.Emulation.EightBit.Z80.Test
{
@@ -26,6 +28,7 @@ namespace Noddybox.Emulation.EightBit.Z80.Test
{
private readonly byte[] mem = new byte[0x10000];
private readonly Z80Cpu z80 = new Z80Cpu();
+ private readonly Z80Disassembler disassembler = new Z80Disassembler();
private readonly Clock clock = new Clock(uint.MaxValue, uint.MaxValue);
private void Output(ConsoleColor pen, ConsoleColor paper, string format, params object[] p)
@@ -115,16 +118,30 @@ namespace Noddybox.Emulation.EightBit.Z80.Test
if (line.Count > 1)
{
+ ushort start;
ushort addr = line.Dequeue().reg;
+ start = addr;
foreach (Register16 b in line)
{
mem[addr++] = b.low;
}
+
+ while(start < addr)
+ {
+ string a, b, c;
+ start = disassembler.Disassemble(start, out a, out b, out c);
+ Output(ConsoleColor.Yellow, ConsoleColor.Blue, "{0}: {1} ; {2}", a, b, c);
+ }
}
}
- while(clock.Ticks < cyclesToRun)
+ if (Debugger.IsAttached && name == "09")
+ {
+ Debugger.Break();
+ }
+
+ while (clock.Ticks < cyclesToRun)
{
z80.Step();
}
@@ -318,6 +335,8 @@ namespace Noddybox.Emulation.EightBit.Z80.Test
public TestMachine()
{
z80.Initialise(this, this, clock);
+ z80.Reset();
+ disassembler.Initialise(this);
}
}
}