From 998b64d14c9d055562d8c1611813d40af4cb030b Mon Sep 17 00:00:00 2001 From: Ian C Date: Fri, 9 Mar 2012 23:01:13 +0000 Subject: Further bug fixes to Z80. Now starts the Spectrum ROM OK. --- .../Z80CpuDecodeShiftedCB.cs | 888 +++++++++------------ 1 file changed, 384 insertions(+), 504 deletions(-) (limited to 'src/Noddybox.Emulation.EightBit.Z80/Z80CpuDecodeShiftedCB.cs') diff --git a/src/Noddybox.Emulation.EightBit.Z80/Z80CpuDecodeShiftedCB.cs b/src/Noddybox.Emulation.EightBit.Z80/Z80CpuDecodeShiftedCB.cs index 731e474..ee86817 100644 --- a/src/Noddybox.Emulation.EightBit.Z80/Z80CpuDecodeShiftedCB.cs +++ b/src/Noddybox.Emulation.EightBit.Z80/Z80CpuDecodeShiftedCB.cs @@ -37,7 +37,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RLC(ref result); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0x01: // RLC (ix+d) -> C @@ -45,7 +45,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RLC(ref result); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0x02: // RLC (ix+d) -> D @@ -53,7 +53,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RLC(ref result); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0x03: // RLC (ix+d) -> E @@ -61,7 +61,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RLC(ref result); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0x04: // RLC (ix+d) -> H @@ -69,7 +69,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RLC(ref result); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0x05: // RLC (ix+d) -> L @@ -77,14 +77,14 @@ namespace Noddybox.Emulation.EightBit.Z80 RLC(ref result); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0x06: // RLC (ix+d) result = memory.Read(addr); RLC(ref result); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0x07: // RLC (ix+d) -> A @@ -92,7 +92,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RLC(ref result); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0x08: // RRC (ix+d) -> B @@ -100,7 +100,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RRC(ref result); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0x09: // RRC (ix+d) -> C @@ -108,7 +108,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RRC(ref result); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0x0a: // RRC (ix+d) -> D @@ -116,7 +116,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RRC(ref result); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0x0b: // RRC (ix+d) -> E @@ -124,7 +124,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RRC(ref result); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0x0c: // RRC (ix+d) -> H @@ -132,7 +132,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RRC(ref result); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0x0d: // RRC (ix+d) -> L @@ -140,14 +140,14 @@ namespace Noddybox.Emulation.EightBit.Z80 RRC(ref result); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0x0e: // RRC (ix+d) result = memory.Read(addr); RRC(ref result); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0x0f: // RRC (ix+d) -> A @@ -155,7 +155,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RRC(ref result); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0x10: // RL (ix+d) -> B @@ -163,7 +163,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RL(ref result); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0x11: // RL (ix+d) -> C @@ -171,7 +171,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RL(ref result); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0x12: // RL (ix+d) -> D @@ -179,7 +179,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RL(ref result); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0x13: // RL (ix+d) -> E @@ -187,7 +187,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RL(ref result); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0x14: // RL (ix+d) -> H @@ -195,7 +195,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RL(ref result); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0x15: // RL (ix+d) -> L @@ -203,14 +203,14 @@ namespace Noddybox.Emulation.EightBit.Z80 RL(ref result); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0x16: // RL (ix+d) result = memory.Read(addr); RL(ref result); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0x17: // RL (ix+d) -> A @@ -218,7 +218,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RL(ref result); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0x18: // RR (ix+d) -> B @@ -226,7 +226,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RR(ref result); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0x19: // RR (ix+d) -> C @@ -234,7 +234,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RR(ref result); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0x1a: // RR (ix+d) -> D @@ -242,7 +242,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RR(ref result); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0x1b: // RR (ix+d) -> E @@ -250,7 +250,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RR(ref result); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0x1c: // RR (ix+d) -> H @@ -258,7 +258,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RR(ref result); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0x1d: // RR (ix+d) -> L @@ -266,14 +266,14 @@ namespace Noddybox.Emulation.EightBit.Z80 RR(ref result); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0x1e: // RR (ix+d) result = memory.Read(addr); RR(ref result); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0x1f: // RR (ix+d) -> A @@ -281,7 +281,7 @@ namespace Noddybox.Emulation.EightBit.Z80 RR(ref result); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0x20: // SLA (ix+d) -> B @@ -289,7 +289,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SLA(ref result); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0x21: // SLA (ix+d) -> C @@ -297,7 +297,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SLA(ref result); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0x22: // SLA (ix+d) -> D @@ -305,7 +305,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SLA(ref result); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0x23: // SLA (ix+d) -> E @@ -313,7 +313,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SLA(ref result); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0x24: // SLA (ix+d) -> H @@ -321,7 +321,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SLA(ref result); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0x25: // SLA (ix+d) -> L @@ -329,14 +329,14 @@ namespace Noddybox.Emulation.EightBit.Z80 SLA(ref result); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0x26: // SLA (ix+d) result = memory.Read(addr); SLA(ref result); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0x27: // SLA (ix+d) -> A @@ -344,7 +344,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SLA(ref result); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0x28: // SRA (ix+d) -> B @@ -352,7 +352,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SRA(ref result); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0x29: // SRA (ix+d) -> C @@ -360,7 +360,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SRA(ref result); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0x2a: // SRA (ix+d) -> D @@ -368,7 +368,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SRA(ref result); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0x2b: // SRA (ix+d) -> E @@ -376,7 +376,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SRA(ref result); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0x2c: // SRA (ix+d) -> H @@ -384,7 +384,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SRA(ref result); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0x2d: // SRA (ix+d) -> L @@ -392,14 +392,14 @@ namespace Noddybox.Emulation.EightBit.Z80 SRA(ref result); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0x2e: // SRA (ix+d) result = memory.Read(addr); SRA(ref result); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0x2f: // SRA (ix+d) -> A @@ -407,7 +407,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SRA(ref result); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0x30: // SLL (ix+d) -> B @@ -415,7 +415,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SLL(ref result); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0x31: // SLL (ix+d) -> C @@ -423,7 +423,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SLL(ref result); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0x32: // SLL (ix+d) -> D @@ -431,7 +431,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SLL(ref result); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0x33: // SLL (ix+d) -> E @@ -439,7 +439,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SLL(ref result); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0x34: // SLL (ix+d) -> H @@ -447,7 +447,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SLL(ref result); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0x35: // SLL (ix+d) -> L @@ -455,14 +455,14 @@ namespace Noddybox.Emulation.EightBit.Z80 SLL(ref result); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0x36: // SLL (ix+d) result = memory.Read(addr); SLL(ref result); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0x37: // SLL (ix+d) -> A @@ -470,7 +470,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SLL(ref result); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0x38: // SRL (ix+d) -> B @@ -478,7 +478,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SRL(ref result); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0x39: // SRL (ix+d) -> C @@ -486,7 +486,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SRL(ref result); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0x3a: // SRL (ix+d) -> D @@ -494,7 +494,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SRL(ref result); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0x3b: // SRL (ix+d) -> E @@ -502,7 +502,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SRL(ref result); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0x3c: // SRL (ix+d) -> H @@ -510,7 +510,7 @@ namespace Noddybox.Emulation.EightBit.Z80 SRL(ref result); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0x3d: // SRL (ix+d) -> L @@ -518,14 +518,14 @@ namespace Noddybox.Emulation.EightBit.Z80 SRL(ref result); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0x3e: // SRL (ix+d) result = memory.Read(addr); SRL(ref result); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0x3f: // SRL (ix+d) -> A @@ -533,511 +533,391 @@ namespace Noddybox.Emulation.EightBit.Z80 SRL(ref result); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; - case 0x40: // BIT 0,(ix+d) -> B + case 0x40: // BIT 0,(ix+d) result = memory.Read(addr); - BIT(ref result, 0); - memory.Write(addr, result); - BC.high = result; - clock.Add(20); + BIT(ref result, 0, addr); + clock.Add(8); break; - case 0x41: // BIT 0,(ix+d) -> C + case 0x41: // BIT 0,(ix+d) result = memory.Read(addr); - BIT(ref result, 0); - memory.Write(addr, result); - BC.low = result; - clock.Add(20); + BIT(ref result, 0, addr); + clock.Add(8); break; - case 0x42: // BIT 0,(ix+d) -> D + case 0x42: // BIT 0,(ix+d) result = memory.Read(addr); - BIT(ref result, 0); - memory.Write(addr, result); - DE.high = result; - clock.Add(20); + BIT(ref result, 0, addr); + clock.Add(8); break; - case 0x43: // BIT 0,(ix+d) -> E + case 0x43: // BIT 0,(ix+d) result = memory.Read(addr); - BIT(ref result, 0); - memory.Write(addr, result); - DE.low = result; - clock.Add(20); + BIT(ref result, 0, addr); + clock.Add(8); break; - case 0x44: // BIT 0,(ix+d) -> H + case 0x44: // BIT 0,(ix+d) result = memory.Read(addr); - BIT(ref result, 0); - memory.Write(addr, result); - HL.high = result; - clock.Add(20); + BIT(ref result, 0, addr); + clock.Add(8); break; - case 0x45: // BIT 0,(ix+d) -> L + case 0x45: // BIT 0,(ix+d) result = memory.Read(addr); - BIT(ref result, 0); - memory.Write(addr, result); - HL.low = result; - clock.Add(20); + BIT(ref result, 0, addr); + clock.Add(8); break; - case 0x46: // BIT 0,(ix+d) + case 0x46: // BIT 0,(ix+d) result = memory.Read(addr); - BIT(ref result, 0); - memory.Write(addr, result); - clock.Add(20); + BIT(ref result, 0, addr); + clock.Add(8); break; - case 0x47: // BIT 0,(ix+d) -> A + case 0x47: // BIT 0,(ix+d) result = memory.Read(addr); - BIT(ref result, 0); - memory.Write(addr, result); - A = result; - clock.Add(20); + BIT(ref result, 0, addr); + clock.Add(8); break; - case 0x48: // BIT 1,(ix+d) -> B + case 0x48: // BIT 1,(ix+d) result = memory.Read(addr); - BIT(ref result, 1); - memory.Write(addr, result); - BC.high = result; - clock.Add(20); + BIT(ref result, 1, addr); + clock.Add(8); break; - case 0x49: // BIT 1,(ix+d) -> C + case 0x49: // BIT 1,(ix+d) result = memory.Read(addr); - BIT(ref result, 1); - memory.Write(addr, result); - BC.low = result; - clock.Add(20); + BIT(ref result, 1, addr); + clock.Add(8); break; - case 0x4a: // BIT 1,(ix+d) -> D + case 0x4a: // BIT 1,(ix+d) result = memory.Read(addr); - BIT(ref result, 1); - memory.Write(addr, result); - DE.high = result; - clock.Add(20); + BIT(ref result, 1, addr); + clock.Add(8); break; - case 0x4b: // BIT 1,(ix+d) -> E + case 0x4b: // BIT 1,(ix+d) result = memory.Read(addr); - BIT(ref result, 1); - memory.Write(addr, result); - DE.low = result; - clock.Add(20); + BIT(ref result, 1, addr); + clock.Add(8); break; - case 0x4c: // BIT 1,(ix+d) -> H + case 0x4c: // BIT 1,(ix+d) result = memory.Read(addr); - BIT(ref result, 1); - memory.Write(addr, result); - HL.high = result; - clock.Add(20); + BIT(ref result, 1, addr); + clock.Add(8); break; - case 0x4d: // BIT 1,(ix+d) -> L + case 0x4d: // BIT 1,(ix+d) result = memory.Read(addr); - BIT(ref result, 1); - memory.Write(addr, result); - HL.low = result; - clock.Add(20); + BIT(ref result, 1, addr); + clock.Add(8); break; - case 0x4e: // BIT 1,(ix+d) + case 0x4e: // BIT 1,(ix+d) result = memory.Read(addr); - BIT(ref result, 1); - memory.Write(addr, result); - clock.Add(20); + BIT(ref result, 1, addr); + clock.Add(8); break; - case 0x4f: // BIT 1,(ix+d) -> A + case 0x4f: // BIT 1,(ix+d) result = memory.Read(addr); - BIT(ref result, 1); - memory.Write(addr, result); - A = result; - clock.Add(20); + BIT(ref result, 1, addr); + clock.Add(8); break; - case 0x50: // BIT 2,(ix+d) -> B + case 0x50: // BIT 2,(ix+d) result = memory.Read(addr); - BIT(ref result, 2); - memory.Write(addr, result); - BC.high = result; - clock.Add(20); + BIT(ref result, 2, addr); + clock.Add(8); break; - case 0x51: // BIT 2,(ix+d) -> C + case 0x51: // BIT 2,(ix+d) result = memory.Read(addr); - BIT(ref result, 2); - memory.Write(addr, result); - BC.low = result; - clock.Add(20); + BIT(ref result, 2, addr); + clock.Add(8); break; - case 0x52: // BIT 2,(ix+d) -> D + case 0x52: // BIT 2,(ix+d) result = memory.Read(addr); - BIT(ref result, 2); - memory.Write(addr, result); - DE.high = result; - clock.Add(20); + BIT(ref result, 2, addr); + clock.Add(8); break; - case 0x53: // BIT 2,(ix+d) -> E + case 0x53: // BIT 2,(ix+d) result = memory.Read(addr); - BIT(ref result, 2); - memory.Write(addr, result); - DE.low = result; - clock.Add(20); + BIT(ref result, 2, addr); + clock.Add(8); break; - case 0x54: // BIT 2,(ix+d) -> H + case 0x54: // BIT 2,(ix+d) result = memory.Read(addr); - BIT(ref result, 2); - memory.Write(addr, result); - HL.high = result; - clock.Add(20); + BIT(ref result, 2, addr); + clock.Add(8); break; - case 0x55: // BIT 2,(ix+d) -> L + case 0x55: // BIT 2,(ix+d) result = memory.Read(addr); - BIT(ref result, 2); - memory.Write(addr, result); - HL.low = result; - clock.Add(20); + BIT(ref result, 2, addr); + clock.Add(8); break; - case 0x56: // BIT 2,(ix+d) + case 0x56: // BIT 2,(ix+d) result = memory.Read(addr); - BIT(ref result, 2); - memory.Write(addr, result); - clock.Add(20); + BIT(ref result, 2, addr); + clock.Add(8); break; - case 0x57: // BIT 2,(ix+d) -> A + case 0x57: // BIT 2,(ix+d) result = memory.Read(addr); - BIT(ref result, 2); - memory.Write(addr, result); - A = result; - clock.Add(20); + BIT(ref result, 2, addr); + clock.Add(8); break; - case 0x58: // BIT 3,(ix+d) -> B + case 0x58: // BIT 3,(ix+d) result = memory.Read(addr); - BIT(ref result, 3); - memory.Write(addr, result); - BC.high = result; - clock.Add(20); + BIT(ref result, 3, addr); + clock.Add(8); break; - case 0x59: // BIT 3,(ix+d) -> C + case 0x59: // BIT 3,(ix+d) result = memory.Read(addr); - BIT(ref result, 3); - memory.Write(addr, result); - BC.low = result; - clock.Add(20); + BIT(ref result, 3, addr); + clock.Add(8); break; - case 0x5a: // BIT 3,(ix+d) -> D + case 0x5a: // BIT 3,(ix+d) result = memory.Read(addr); - BIT(ref result, 3); - memory.Write(addr, result); - DE.high = result; - clock.Add(20); + BIT(ref result, 3, addr); + clock.Add(8); break; - case 0x5b: // BIT 3,(ix+d) -> E + case 0x5b: // BIT 3,(ix+d) result = memory.Read(addr); - BIT(ref result, 3); - memory.Write(addr, result); - DE.low = result; - clock.Add(20); + BIT(ref result, 3, addr); + clock.Add(8); break; - case 0x5c: // BIT 3,(ix+d) -> H + case 0x5c: // BIT 3,(ix+d) result = memory.Read(addr); - BIT(ref result, 3); - memory.Write(addr, result); - HL.high = result; - clock.Add(20); + BIT(ref result, 3, addr); + clock.Add(8); break; - case 0x5d: // BIT 3,(ix+d) -> L + case 0x5d: // BIT 3,(ix+d) result = memory.Read(addr); - BIT(ref result, 3); - memory.Write(addr, result); - HL.low = result; - clock.Add(20); + BIT(ref result, 3, addr); + clock.Add(8); break; - case 0x5e: // BIT 3,(ix+d) + case 0x5e: // BIT 3,(ix+d) result = memory.Read(addr); - BIT(ref result, 3); - memory.Write(addr, result); - clock.Add(20); + BIT(ref result, 3, addr); + clock.Add(8); break; - case 0x5f: // BIT 3,(ix+d) -> A + case 0x5f: // BIT 3,(ix+d) result = memory.Read(addr); - BIT(ref result, 3); - memory.Write(addr, result); - A = result; - clock.Add(20); + BIT(ref result, 3, addr); + clock.Add(8); break; - case 0x60: // BIT 4,(ix+d) -> B + case 0x60: // BIT 4,(ix+d) result = memory.Read(addr); - BIT(ref result, 4); - memory.Write(addr, result); - BC.high = result; - clock.Add(20); + BIT(ref result, 4, addr); + clock.Add(8); break; - case 0x61: // BIT 4,(ix+d) -> C + case 0x61: // BIT 4,(ix+d) result = memory.Read(addr); - BIT(ref result, 4); - memory.Write(addr, result); - BC.low = result; - clock.Add(20); + BIT(ref result, 4, addr); + clock.Add(8); break; - case 0x62: // BIT 4,(ix+d) -> D + case 0x62: // BIT 4,(ix+d) result = memory.Read(addr); - BIT(ref result, 4); - memory.Write(addr, result); - DE.high = result; - clock.Add(20); + BIT(ref result, 4, addr); + clock.Add(8); break; - case 0x63: // BIT 4,(ix+d) -> E + case 0x63: // BIT 4,(ix+d) result = memory.Read(addr); - BIT(ref result, 4); - memory.Write(addr, result); - DE.low = result; - clock.Add(20); + BIT(ref result, 4, addr); + clock.Add(8); break; - case 0x64: // BIT 4,(ix+d) -> H + case 0x64: // BIT 4,(ix+d) result = memory.Read(addr); - BIT(ref result, 4); - memory.Write(addr, result); - HL.high = result; - clock.Add(20); + BIT(ref result, 4, addr); + clock.Add(8); break; - case 0x65: // BIT 4,(ix+d) -> L + case 0x65: // BIT 4,(ix+d) result = memory.Read(addr); - BIT(ref result, 4); - memory.Write(addr, result); - HL.low = result; - clock.Add(20); + BIT(ref result, 4, addr); + clock.Add(8); break; - case 0x66: // BIT 4,(ix+d) + case 0x66: // BIT 4,(ix+d) result = memory.Read(addr); - BIT(ref result, 4); - memory.Write(addr, result); - clock.Add(20); + BIT(ref result, 4, addr); + clock.Add(8); break; - case 0x67: // BIT 4,(ix+d) -> A + case 0x67: // BIT 4,(ix+d) result = memory.Read(addr); - BIT(ref result, 4); - memory.Write(addr, result); - A = result; - clock.Add(20); + BIT(ref result, 4, addr); + clock.Add(8); break; - case 0x68: // BIT 5,(ix+d) -> B + case 0x68: // BIT 5,(ix+d) result = memory.Read(addr); - BIT(ref result, 5); - memory.Write(addr, result); - BC.high = result; - clock.Add(20); + BIT(ref result, 5, addr); + clock.Add(8); break; - case 0x69: // BIT 5,(ix+d) -> C + case 0x69: // BIT 5,(ix+d) result = memory.Read(addr); - BIT(ref result, 5); - memory.Write(addr, result); - BC.low = result; - clock.Add(20); + BIT(ref result, 5, addr); + clock.Add(8); break; - case 0x6a: // BIT 5,(ix+d) -> D + case 0x6a: // BIT 5,(ix+d) result = memory.Read(addr); - BIT(ref result, 5); - memory.Write(addr, result); - DE.high = result; - clock.Add(20); + BIT(ref result, 5, addr); + clock.Add(8); break; - case 0x6b: // BIT 5,(ix+d) -> E + case 0x6b: // BIT 5,(ix+d) result = memory.Read(addr); - BIT(ref result, 5); - memory.Write(addr, result); - DE.low = result; - clock.Add(20); + BIT(ref result, 5, addr); + clock.Add(8); break; - case 0x6c: // BIT 5,(ix+d) -> H + case 0x6c: // BIT 5,(ix+d) result = memory.Read(addr); - BIT(ref result, 5); - memory.Write(addr, result); - HL.high = result; - clock.Add(20); + BIT(ref result, 5, addr); + clock.Add(8); break; - case 0x6d: // BIT 5,(ix+d) -> L + case 0x6d: // BIT 5,(ix+d) result = memory.Read(addr); - BIT(ref result, 5); - memory.Write(addr, result); - HL.low = result; - clock.Add(20); + BIT(ref result, 5, addr); + clock.Add(8); break; - case 0x6e: // BIT 5,(ix+d) + case 0x6e: // BIT 5,(ix+d) result = memory.Read(addr); - BIT(ref result, 5); - memory.Write(addr, result); - clock.Add(20); + BIT(ref result, 5, addr); + clock.Add(8); break; - case 0x6f: // BIT 5,(ix+d) -> A + case 0x6f: // BIT 5,(ix+d) result = memory.Read(addr); - BIT(ref result, 5); - memory.Write(addr, result); - A = result; - clock.Add(20); + BIT(ref result, 5, addr); + clock.Add(8); break; - case 0x70: // BIT 6,(ix+d) -> B + case 0x70: // BIT 6,(ix+d) result = memory.Read(addr); - BIT(ref result, 6); - memory.Write(addr, result); - BC.high = result; - clock.Add(20); + BIT(ref result, 6, addr); + clock.Add(8); break; - case 0x71: // BIT 6,(ix+d) -> C + case 0x71: // BIT 6,(ix+d) result = memory.Read(addr); - BIT(ref result, 6); - memory.Write(addr, result); - BC.low = result; - clock.Add(20); + BIT(ref result, 6, addr); + clock.Add(8); break; - case 0x72: // BIT 6,(ix+d) -> D + case 0x72: // BIT 6,(ix+d) result = memory.Read(addr); - BIT(ref result, 6); - memory.Write(addr, result); - DE.high = result; - clock.Add(20); + BIT(ref result, 6, addr); + clock.Add(8); break; - case 0x73: // BIT 6,(ix+d) -> E + case 0x73: // BIT 6,(ix+d) result = memory.Read(addr); - BIT(ref result, 6); - memory.Write(addr, result); - DE.low = result; - clock.Add(20); + BIT(ref result, 6, addr); + clock.Add(8); break; - case 0x74: // BIT 6,(ix+d) -> H + case 0x74: // BIT 6,(ix+d) result = memory.Read(addr); - BIT(ref result, 6); - memory.Write(addr, result); - HL.high = result; - clock.Add(20); + BIT(ref result, 6, addr); + clock.Add(8); break; - case 0x75: // BIT 6,(ix+d) -> L + case 0x75: // BIT 6,(ix+d) result = memory.Read(addr); - BIT(ref result, 6); - memory.Write(addr, result); - HL.low = result; - clock.Add(20); + BIT(ref result, 6, addr); + clock.Add(8); break; - case 0x76: // BIT 6,(ix+d) + case 0x76: // BIT 6,(ix+d) result = memory.Read(addr); - BIT(ref result, 6); - memory.Write(addr, result); - clock.Add(20); + BIT(ref result, 6, addr); + clock.Add(8); break; - case 0x77: // BIT 6,(ix+d) -> A + case 0x77: // BIT 6,(ix+d) result = memory.Read(addr); - BIT(ref result, 6); - memory.Write(addr, result); - A = result; - clock.Add(20); + BIT(ref result, 6, addr); + clock.Add(8); break; - case 0x78: // BIT 7,(ix+d) -> B + case 0x78: // BIT 7,(ix+d) result = memory.Read(addr); - BIT(ref result, 7); - memory.Write(addr, result); - BC.high = result; - clock.Add(20); + BIT(ref result, 7, addr); + clock.Add(8); break; - case 0x79: // BIT 7,(ix+d) -> C + case 0x79: // BIT 7,(ix+d) result = memory.Read(addr); - BIT(ref result, 7); - memory.Write(addr, result); - BC.low = result; - clock.Add(20); + BIT(ref result, 7, addr); + clock.Add(8); break; - case 0x7a: // BIT 7,(ix+d) -> D + case 0x7a: // BIT 7,(ix+d) result = memory.Read(addr); - BIT(ref result, 7); - memory.Write(addr, result); - DE.high = result; - clock.Add(20); + BIT(ref result, 7, addr); + clock.Add(8); break; - case 0x7b: // BIT 7,(ix+d) -> E + case 0x7b: // BIT 7,(ix+d) result = memory.Read(addr); - BIT(ref result, 7); - memory.Write(addr, result); - DE.low = result; - clock.Add(20); + BIT(ref result, 7, addr); + clock.Add(8); break; - case 0x7c: // BIT 7,(ix+d) -> H + case 0x7c: // BIT 7,(ix+d) result = memory.Read(addr); - BIT(ref result, 7); - memory.Write(addr, result); - HL.high = result; - clock.Add(20); + BIT(ref result, 7, addr); + clock.Add(8); break; - case 0x7d: // BIT 7,(ix+d) -> L + case 0x7d: // BIT 7,(ix+d) result = memory.Read(addr); - BIT(ref result, 7); - memory.Write(addr, result); - HL.low = result; - clock.Add(20); + BIT(ref result, 7, addr); + clock.Add(8); break; - case 0x7e: // BIT 7,(ix+d) + case 0x7e: // BIT 7,(ix+d) result = memory.Read(addr); - BIT(ref result, 7); - memory.Write(addr, result); - clock.Add(20); + BIT(ref result, 7, addr); + clock.Add(8); break; - case 0x7f: // BIT 7,(ix+d) -> A + case 0x7f: // BIT 7,(ix+d) result = memory.Read(addr); - BIT(ref result, 7); - memory.Write(addr, result); - A = result; - clock.Add(20); + BIT(ref result, 7, addr); + clock.Add(8); break; case 0x80: // RES 0,(ix+d) -> B @@ -1045,7 +925,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 0); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0x81: // RES 0,(ix+d) -> C @@ -1053,7 +933,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 0); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0x82: // RES 0,(ix+d) -> D @@ -1061,7 +941,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 0); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0x83: // RES 0,(ix+d) -> E @@ -1069,7 +949,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 0); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0x84: // RES 0,(ix+d) -> H @@ -1077,7 +957,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 0); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0x85: // RES 0,(ix+d) -> L @@ -1085,14 +965,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 0); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0x86: // RES 0,(ix+d) result = memory.Read(addr); BIT_RES(ref result, 0); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0x87: // RES 0,(ix+d) -> A @@ -1100,7 +980,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 0); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0x88: // RES 1,(ix+d) -> B @@ -1108,7 +988,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 1); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0x89: // RES 1,(ix+d) -> C @@ -1116,7 +996,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 1); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0x8a: // RES 1,(ix+d) -> D @@ -1124,7 +1004,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 1); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0x8b: // RES 1,(ix+d) -> E @@ -1132,7 +1012,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 1); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0x8c: // RES 1,(ix+d) -> H @@ -1140,7 +1020,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 1); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0x8d: // RES 1,(ix+d) -> L @@ -1148,14 +1028,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 1); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0x8e: // RES 1,(ix+d) result = memory.Read(addr); BIT_RES(ref result, 1); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0x8f: // RES 1,(ix+d) -> A @@ -1163,7 +1043,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 1); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0x90: // RES 2,(ix+d) -> B @@ -1171,7 +1051,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 2); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0x91: // RES 2,(ix+d) -> C @@ -1179,7 +1059,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 2); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0x92: // RES 2,(ix+d) -> D @@ -1187,7 +1067,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 2); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0x93: // RES 2,(ix+d) -> E @@ -1195,7 +1075,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 2); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0x94: // RES 2,(ix+d) -> H @@ -1203,7 +1083,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 2); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0x95: // RES 2,(ix+d) -> L @@ -1211,14 +1091,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 2); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0x96: // RES 2,(ix+d) result = memory.Read(addr); BIT_RES(ref result, 2); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0x97: // RES 2,(ix+d) -> A @@ -1226,7 +1106,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 2); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0x98: // RES 3,(ix+d) -> B @@ -1234,7 +1114,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 3); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0x99: // RES 3,(ix+d) -> C @@ -1242,7 +1122,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 3); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0x9a: // RES 3,(ix+d) -> D @@ -1250,7 +1130,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 3); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0x9b: // RES 3,(ix+d) -> E @@ -1258,7 +1138,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 3); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0x9c: // RES 3,(ix+d) -> H @@ -1266,7 +1146,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 3); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0x9d: // RES 3,(ix+d) -> L @@ -1274,14 +1154,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 3); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0x9e: // RES 3,(ix+d) result = memory.Read(addr); BIT_RES(ref result, 3); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0x9f: // RES 3,(ix+d) -> A @@ -1289,7 +1169,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 3); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0xa0: // RES 4,(ix+d) -> B @@ -1297,7 +1177,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 4); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0xa1: // RES 4,(ix+d) -> C @@ -1305,7 +1185,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 4); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0xa2: // RES 4,(ix+d) -> D @@ -1313,7 +1193,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 4); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0xa3: // RES 4,(ix+d) -> E @@ -1321,7 +1201,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 4); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0xa4: // RES 4,(ix+d) -> H @@ -1329,7 +1209,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 4); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0xa5: // RES 4,(ix+d) -> L @@ -1337,14 +1217,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 4); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0xa6: // RES 4,(ix+d) result = memory.Read(addr); BIT_RES(ref result, 4); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0xa7: // RES 4,(ix+d) -> A @@ -1352,7 +1232,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 4); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0xa8: // RES 5,(ix+d) -> B @@ -1360,7 +1240,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 5); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0xa9: // RES 5,(ix+d) -> C @@ -1368,7 +1248,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 5); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0xaa: // RES 5,(ix+d) -> D @@ -1376,7 +1256,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 5); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0xab: // RES 5,(ix+d) -> E @@ -1384,7 +1264,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 5); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0xac: // RES 5,(ix+d) -> H @@ -1392,7 +1272,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 5); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0xad: // RES 5,(ix+d) -> L @@ -1400,14 +1280,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 5); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0xae: // RES 5,(ix+d) result = memory.Read(addr); BIT_RES(ref result, 5); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0xaf: // RES 5,(ix+d) -> A @@ -1415,7 +1295,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 5); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0xb0: // RES 6,(ix+d) -> B @@ -1423,7 +1303,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 6); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0xb1: // RES 6,(ix+d) -> C @@ -1431,7 +1311,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 6); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0xb2: // RES 6,(ix+d) -> D @@ -1439,7 +1319,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 6); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0xb3: // RES 6,(ix+d) -> E @@ -1447,7 +1327,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 6); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0xb4: // RES 6,(ix+d) -> H @@ -1455,7 +1335,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 6); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0xb5: // RES 6,(ix+d) -> L @@ -1463,14 +1343,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 6); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0xb6: // RES 6,(ix+d) result = memory.Read(addr); BIT_RES(ref result, 6); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0xb7: // RES 6,(ix+d) -> A @@ -1478,7 +1358,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 6); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0xb8: // RES 7,(ix+d) -> B @@ -1486,7 +1366,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 7); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0xb9: // RES 7,(ix+d) -> C @@ -1494,7 +1374,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 7); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0xba: // RES 7,(ix+d) -> D @@ -1502,7 +1382,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 7); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0xbb: // RES 7,(ix+d) -> E @@ -1510,7 +1390,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 7); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0xbc: // RES 7,(ix+d) -> H @@ -1518,7 +1398,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 7); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0xbd: // RES 7,(ix+d) -> L @@ -1526,14 +1406,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 7); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0xbe: // RES 7,(ix+d) result = memory.Read(addr); BIT_RES(ref result, 7); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0xbf: // RES 7,(ix+d) -> A @@ -1541,7 +1421,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_RES(ref result, 7); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0xc0: // SET 0,(ix+d) -> B @@ -1549,7 +1429,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 0); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0xc1: // SET 0,(ix+d) -> C @@ -1557,7 +1437,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 0); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0xc2: // SET 0,(ix+d) -> D @@ -1565,7 +1445,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 0); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0xc3: // SET 0,(ix+d) -> E @@ -1573,7 +1453,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 0); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0xc4: // SET 0,(ix+d) -> H @@ -1581,7 +1461,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 0); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0xc5: // SET 0,(ix+d) -> L @@ -1589,14 +1469,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 0); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0xc6: // SET 0,(ix+d) result = memory.Read(addr); BIT_SET(ref result, 0); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0xc7: // SET 0,(ix+d) -> A @@ -1604,7 +1484,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 0); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0xc8: // SET 1,(ix+d) -> B @@ -1612,7 +1492,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 1); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0xc9: // SET 1,(ix+d) -> C @@ -1620,7 +1500,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 1); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0xca: // SET 1,(ix+d) -> D @@ -1628,7 +1508,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 1); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0xcb: // SET 1,(ix+d) -> E @@ -1636,7 +1516,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 1); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0xcc: // SET 1,(ix+d) -> H @@ -1644,7 +1524,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 1); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0xcd: // SET 1,(ix+d) -> L @@ -1652,14 +1532,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 1); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0xce: // SET 1,(ix+d) result = memory.Read(addr); BIT_SET(ref result, 1); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0xcf: // SET 1,(ix+d) -> A @@ -1667,7 +1547,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 1); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0xd0: // SET 2,(ix+d) -> B @@ -1675,7 +1555,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 2); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0xd1: // SET 2,(ix+d) -> C @@ -1683,7 +1563,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 2); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0xd2: // SET 2,(ix+d) -> D @@ -1691,7 +1571,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 2); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0xd3: // SET 2,(ix+d) -> E @@ -1699,7 +1579,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 2); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0xd4: // SET 2,(ix+d) -> H @@ -1707,7 +1587,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 2); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0xd5: // SET 2,(ix+d) -> L @@ -1715,14 +1595,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 2); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0xd6: // SET 2,(ix+d) result = memory.Read(addr); BIT_SET(ref result, 2); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0xd7: // SET 2,(ix+d) -> A @@ -1730,7 +1610,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 2); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0xd8: // SET 3,(ix+d) -> B @@ -1738,7 +1618,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 3); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0xd9: // SET 3,(ix+d) -> C @@ -1746,7 +1626,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 3); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0xda: // SET 3,(ix+d) -> D @@ -1754,7 +1634,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 3); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0xdb: // SET 3,(ix+d) -> E @@ -1762,7 +1642,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 3); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0xdc: // SET 3,(ix+d) -> H @@ -1770,7 +1650,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 3); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0xdd: // SET 3,(ix+d) -> L @@ -1778,14 +1658,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 3); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0xde: // SET 3,(ix+d) result = memory.Read(addr); BIT_SET(ref result, 3); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0xdf: // SET 3,(ix+d) -> A @@ -1793,7 +1673,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 3); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0xe0: // SET 4,(ix+d) -> B @@ -1801,7 +1681,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 4); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0xe1: // SET 4,(ix+d) -> C @@ -1809,7 +1689,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 4); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0xe2: // SET 4,(ix+d) -> D @@ -1817,7 +1697,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 4); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0xe3: // SET 4,(ix+d) -> E @@ -1825,7 +1705,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 4); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0xe4: // SET 4,(ix+d) -> H @@ -1833,7 +1713,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 4); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0xe5: // SET 4,(ix+d) -> L @@ -1841,14 +1721,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 4); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0xe6: // SET 4,(ix+d) result = memory.Read(addr); BIT_SET(ref result, 4); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0xe7: // SET 4,(ix+d) -> A @@ -1856,7 +1736,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 4); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0xe8: // SET 5,(ix+d) -> B @@ -1864,7 +1744,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 5); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0xe9: // SET 5,(ix+d) -> C @@ -1872,7 +1752,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 5); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0xea: // SET 5,(ix+d) -> D @@ -1880,7 +1760,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 5); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0xeb: // SET 5,(ix+d) -> E @@ -1888,7 +1768,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 5); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0xec: // SET 5,(ix+d) -> H @@ -1896,7 +1776,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 5); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0xed: // SET 5,(ix+d) -> L @@ -1904,14 +1784,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 5); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0xee: // SET 5,(ix+d) result = memory.Read(addr); BIT_SET(ref result, 5); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0xef: // SET 5,(ix+d) -> A @@ -1919,7 +1799,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 5); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0xf0: // SET 6,(ix+d) -> B @@ -1927,7 +1807,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 6); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0xf1: // SET 6,(ix+d) -> C @@ -1935,7 +1815,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 6); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0xf2: // SET 6,(ix+d) -> D @@ -1943,7 +1823,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 6); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0xf3: // SET 6,(ix+d) -> E @@ -1951,7 +1831,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 6); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0xf4: // SET 6,(ix+d) -> H @@ -1959,7 +1839,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 6); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0xf5: // SET 6,(ix+d) -> L @@ -1967,14 +1847,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 6); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0xf6: // SET 6,(ix+d) result = memory.Read(addr); BIT_SET(ref result, 6); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0xf7: // SET 6,(ix+d) -> A @@ -1982,7 +1862,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 6); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; case 0xf8: // SET 7,(ix+d) -> B @@ -1990,7 +1870,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 7); memory.Write(addr, result); BC.high = result; - clock.Add(23); + clock.Add(11); break; case 0xf9: // SET 7,(ix+d) -> C @@ -1998,7 +1878,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 7); memory.Write(addr, result); BC.low = result; - clock.Add(23); + clock.Add(11); break; case 0xfa: // SET 7,(ix+d) -> D @@ -2006,7 +1886,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 7); memory.Write(addr, result); DE.high = result; - clock.Add(23); + clock.Add(11); break; case 0xfb: // SET 7,(ix+d) -> E @@ -2014,7 +1894,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 7); memory.Write(addr, result); DE.low = result; - clock.Add(23); + clock.Add(11); break; case 0xfc: // SET 7,(ix+d) -> H @@ -2022,7 +1902,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 7); memory.Write(addr, result); HL.high = result; - clock.Add(23); + clock.Add(11); break; case 0xfd: // SET 7,(ix+d) -> L @@ -2030,14 +1910,14 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 7); memory.Write(addr, result); HL.low = result; - clock.Add(23); + clock.Add(11); break; case 0xfe: // SET 7,(ix+d) result = memory.Read(addr); BIT_SET(ref result, 7); memory.Write(addr, result); - clock.Add(23); + clock.Add(11); break; case 0xff: // SET 7,(ix+d) -> A @@ -2045,7 +1925,7 @@ namespace Noddybox.Emulation.EightBit.Z80 BIT_SET(ref result, 7); memory.Write(addr, result); A = result; - clock.Add(23); + clock.Add(11); break; } } -- cgit v1.3