From 788b8cc4dd404a826ce881c020ee6ca0388a5975 Mon Sep 17 00:00:00 2001 From: Ian C Date: Thu, 1 Mar 2012 00:02:07 +0000 Subject: Initial working version of test suite. Fixed INC8 and DEC8 with results. --- src/Noddybox.Emulation.EightBit.Z80/Z80Cpu.cs | 45 ++++++++---------- .../Z80CpuBaseOpcodes.cs | 9 +++- .../Z80CpuEventArgs.cs | 55 ---------------------- src/Noddybox.Emulation/Clock.cs | 8 ++++ 4 files changed, 35 insertions(+), 82 deletions(-) (limited to 'src') diff --git a/src/Noddybox.Emulation.EightBit.Z80/Z80Cpu.cs b/src/Noddybox.Emulation.EightBit.Z80/Z80Cpu.cs index 676a1b1..a2e6fed 100644 --- a/src/Noddybox.Emulation.EightBit.Z80/Z80Cpu.cs +++ b/src/Noddybox.Emulation.EightBit.Z80/Z80Cpu.cs @@ -334,6 +334,24 @@ namespace Noddybox.Emulation.EightBit.Z80 set { HL = value; } } + /// + /// The current state of the IX register pair. + /// + public Register16 IX_Register + { + get { return IX; } + set { IX = value; } + } + + /// + /// The current state of the IY register pair. + /// + public Register16 IY_Register + { + get { return IY; } + set { IY = value; } + } + /// /// The current state of the stack pointer. /// @@ -400,7 +418,7 @@ namespace Noddybox.Emulation.EightBit.Z80 /// /// The state of the IFF1 register. /// - public bool IFF1_Regsiter + public bool IFF1_Register { get { return IFF1; } set { IFF1 = value; } @@ -409,7 +427,7 @@ namespace Noddybox.Emulation.EightBit.Z80 /// /// The state of the IFF2 register. /// - public bool IFF2_Regsiter + public bool IFF2_Register { get { return IFF2; } set { IFF2 = value; } @@ -490,17 +508,6 @@ namespace Noddybox.Emulation.EightBit.Z80 Z80CpuEventArgs e = new Z80CpuEventArgs { Opcode = opcode, - A = this.A, - F = this.F, - BC = this.BC, - DE = this.DE, - HL = this.HL, - SP = this.SP, - PC = this.PC, - AF_ = this.AF_, - BC_ = this.BC_, - DE_ = this.DE_, - HL_ = this.HL_ }; switch(type) @@ -513,18 +520,6 @@ namespace Noddybox.Emulation.EightBit.Z80 OnEDNopEvent(e); break; } - - A = e.A; - F = e.F; - BC = e.BC; - DE = e.DE; - HL = e.HL; - SP = e.SP; - PC = e.PC; - AF_ = e.AF_; - BC_ = e.BC_; - DE_ = e.DE_; - HL_ = e.HL_; } #endregion diff --git a/src/Noddybox.Emulation.EightBit.Z80/Z80CpuBaseOpcodes.cs b/src/Noddybox.Emulation.EightBit.Z80/Z80CpuBaseOpcodes.cs index 389ba41..24f8093 100644 --- a/src/Noddybox.Emulation.EightBit.Z80/Z80CpuBaseOpcodes.cs +++ b/src/Noddybox.Emulation.EightBit.Z80/Z80CpuBaseOpcodes.cs @@ -369,7 +369,7 @@ namespace Noddybox.Emulation.EightBit.Z80 { reg++; - F = Z80Flags.Carry; + F &= Z80Flags.Carry; if (reg == 0x80) { @@ -380,6 +380,8 @@ namespace Noddybox.Emulation.EightBit.Z80 { F |= Z80Flags.HalfCarry; } + + F |= SZtable[reg] | H35table[reg]; } /// @@ -390,7 +392,8 @@ namespace Noddybox.Emulation.EightBit.Z80 { reg--; - F = Z80Flags.Carry | Z80Flags.Neg; + F &= Z80Flags.Carry; + F |= Z80Flags.Neg; if (reg == 0x7f) { @@ -401,6 +404,8 @@ namespace Noddybox.Emulation.EightBit.Z80 { F |= Z80Flags.HalfCarry; } + + F |= SZtable[reg] | H35table[reg]; } /// diff --git a/src/Noddybox.Emulation.EightBit.Z80/Z80CpuEventArgs.cs b/src/Noddybox.Emulation.EightBit.Z80/Z80CpuEventArgs.cs index fb0173a..84edfa1 100644 --- a/src/Noddybox.Emulation.EightBit.Z80/Z80CpuEventArgs.cs +++ b/src/Noddybox.Emulation.EightBit.Z80/Z80CpuEventArgs.cs @@ -28,60 +28,5 @@ namespace Noddybox.Emulation.EightBit.Z80 /// The opcode that was executed to trigger the event. /// public byte Opcode {get; set;} - - /// - /// The current state of the accumulator. - /// - public byte A {get; set;} - - /// - /// The current state of the flag register. - /// - public Z80Flags F {get; set;} - - /// - /// The current state of the BC register pair. - /// - public Register16 BC {get; set;} - - /// - /// The current state of the DE register pair. - /// - public Register16 DE {get; set;} - - /// - /// The current state of the HL register pair. - /// - public Register16 HL {get; set;} - - /// - /// The current state of the stack pointer. - /// - public ushort SP {get; set;} - - /// - /// The current state of the program counter. - /// - public ushort PC {get; set;} - - /// - /// The alternate AF' register. - /// - public Register16 AF_ {get; set;} - - /// - /// The alternate BC' register. - /// - public Register16 BC_ {get; set;} - - /// - /// The alternate DE' register. - /// - public Register16 DE_ {get; set;} - - /// - /// The alternate HL' register. - /// - public Register16 HL_ {get; set;} } } diff --git a/src/Noddybox.Emulation/Clock.cs b/src/Noddybox.Emulation/Clock.cs index 72a2cc8..379287e 100644 --- a/src/Noddybox.Emulation/Clock.cs +++ b/src/Noddybox.Emulation/Clock.cs @@ -57,6 +57,14 @@ namespace Noddybox.Emulation } } + /// + /// Gets the ticks this frame so far. + /// + public uint Ticks + { + get {return frameCount;} + } + #endregion #region Public members -- cgit v1.2.3