From 9bfd65fbb1e05bb09097926531d0254ffaff10be Mon Sep 17 00:00:00 2001 From: Adrian Conlon Date: Sat, 24 Oct 2026 21:41:12 +0100 Subject: [PATCH] * Update nuget packages * Namespace z80 a little better * Add some benchmarks --- EightBit.Benchmark/BenchmarkBus.cs | 34 ++++ EightBit.Benchmark/BenchmarkClockedChip.cs | 75 ++++++++ .../BenchmarkLittleEndianProcessor.cs | 168 ++++++++++++++++++ EightBit.Benchmark/BenchmarkRegister16.cs | 32 ++++ EightBit.Benchmark/EightBit.Benchmark.csproj | 18 ++ EightBit.Benchmark/Program.cs | 3 + EightBit.Benchmark/SealedBus.cs | 24 +++ .../EightBit.UnitTest.csproj | 8 +- EightBitNet.sln | 16 +- Gaming/Gaming.csproj | 2 +- LR35902/SM83.HarteTest/SM83.HarteTest.csproj | 8 +- M6502/M6502.HarteTest/M6502.HarteTest.csproj | 8 +- MC6809/MC6809.UnitTest/MC6809.UnitTest.csproj | 8 +- Z80/Disassembler.cs | 2 +- Z80/Labels.cs | 2 +- Z80/RefreshRegister.cs | 2 +- Z80/RegisterIndex.cs | 2 +- Z80/StatusBits.cs | 2 +- Z80/Z80.FuseTest/Program.cs | 2 +- Z80/Z80.FuseTest/RegisterState.cs | 2 +- Z80/Z80.FuseTest/TestRunner.cs | 3 +- Z80/Z80.FuseTest/TestSuite.cs | 2 +- ...eTest.csproj => Zilog.Z80.FuseTest.csproj} | 2 +- Z80/Z80.HarteTest/Checker.cs | 2 +- Z80/Z80.HarteTest/Cycle.cs | 2 +- Z80/Z80.HarteTest/OpcodeTestSuite.cs | 2 +- Z80/Z80.HarteTest/Port.cs | 2 +- Z80/Z80.HarteTest/SingleStepTests.cs | 2 +- Z80/Z80.HarteTest/State.cs | 2 +- Z80/Z80.HarteTest/Test.cs | 2 +- Z80/Z80.HarteTest/TestRunner.cs | 3 +- .../Zilog.Z80.HarteTest.csproj} | 12 +- Z80/Z80.Test/Board.cs | 2 +- Z80/Z80.Test/Configuration.cs | 2 +- Z80/Z80.Test/Program.cs | 2 +- ...{Z80.Test.csproj => Zilog.Z80.Test.csproj} | 2 +- Z80/Z80.UnitTests/Board.cs | 3 +- Z80/Z80.UnitTests/HaltTests.cs | 3 +- Z80/Z80.UnitTests/IffTests.cs | 3 +- Z80/Z80.UnitTests/IntTests.cs | 3 +- Z80/Z80.UnitTests/NmiTests.cs | 3 +- Z80/Z80.UnitTests/ResetTests.cs | 3 +- .../Zilog.Z80.UnitTests.csproj} | 10 +- Z80/Z80.cs | 4 +- Z80/{Z80.csproj => Zilog.csproj} | 0 45 files changed, 431 insertions(+), 63 deletions(-) create mode 100644 EightBit.Benchmark/BenchmarkBus.cs create mode 100644 EightBit.Benchmark/BenchmarkClockedChip.cs create mode 100644 EightBit.Benchmark/BenchmarkLittleEndianProcessor.cs create mode 100644 EightBit.Benchmark/BenchmarkRegister16.cs create mode 100644 EightBit.Benchmark/EightBit.Benchmark.csproj create mode 100644 EightBit.Benchmark/Program.cs create mode 100644 EightBit.Benchmark/SealedBus.cs rename Z80/Z80.FuseTest/{Z80.FuseTest.csproj => Zilog.Z80.FuseTest.csproj} (94%) rename Z80/{Z80.UnitTests/Z80.UnitTests.csproj => Z80.HarteTest/Zilog.Z80.HarteTest.csproj} (86%) rename Z80/Z80.Test/{Z80.Test.csproj => Zilog.Z80.Test.csproj} (93%) rename Z80/{Z80.HarteTest/Z80.HarteTest.csproj => Z80.UnitTests/Zilog.Z80.UnitTests.csproj} (88%) rename Z80/{Z80.csproj => Zilog.csproj} (100%) diff --git a/EightBit.Benchmark/BenchmarkBus.cs b/EightBit.Benchmark/BenchmarkBus.cs new file mode 100644 index 0000000..59e4ce5 --- /dev/null +++ b/EightBit.Benchmark/BenchmarkBus.cs @@ -0,0 +1,34 @@ +namespace EightBit.Benchmark +{ + using BenchmarkDotNet.Attributes; + + public class BenchmarkBus + { + private readonly SealedBus _contents = new(); + + [GlobalSetup] + public void GlobalSetup() + { + for (ushort i = 0; i < ushort.MaxValue; ++i) + { + this._contents.Poke(i, (byte)(i % 256)); + } + this._contents.Address.Joined = 0; + this._contents.Data = 123; + } + + [Benchmark] + public long Reading() + { + this._contents.Read(); + return this._contents.Data; + } + + [Benchmark] + public long Writing() + { + this._contents.Write(); + return this._contents.Data; + } + } +} \ No newline at end of file diff --git a/EightBit.Benchmark/BenchmarkClockedChip.cs b/EightBit.Benchmark/BenchmarkClockedChip.cs new file mode 100644 index 0000000..6525bdd --- /dev/null +++ b/EightBit.Benchmark/BenchmarkClockedChip.cs @@ -0,0 +1,75 @@ +namespace EightBit.Benchmark +{ + using BenchmarkDotNet.Attributes; + + class ClockingChip : ClockedChip + { + public void Reset() => this.ResetCycles(); + + public void Bump() => this.Cycles++; + } + + public class BenchmarkClockedChip + { + private readonly ClockingChip _contents = new(); + + //////////////////////////////////////////// + + [IterationSetup] + public void IterationSetup() => this._contents.Reset(); + + [IterationCleanup] + public void IterationCleanup() => this._contents.Reset(); + + //////////////////////////////////////////// + + [GlobalSetup(Target = nameof(TickWithSubscribers))] + public void GlobalSetupSingle() => this._contents.Ticked += this.Contents_Ticked; + + [GlobalCleanup(Target = nameof(TickWithSubscribers))] + public void GlobalCleanupSingle() => this._contents.Ticked -= this.Contents_Ticked; + + [Benchmark] + public int TickWithSubscribers() + { + this._contents.Tick(); + return this._contents.Cycles; + } + + //////////////////////////////////////////// + + [GlobalSetup(Target = nameof(TickMultipleWithSubscribers))] + public void GlobalSetupMultiple() => this._contents.Ticked += this.Contents_Ticked; + + [GlobalCleanup(Target = nameof(TickMultipleWithSubscribers))] + public void GlobalCleanupMultiple() => this._contents.Ticked -= this.Contents_Ticked; + + [Benchmark] + public int TickMultipleWithSubscribers() + { + this._contents.Tick(4); + return this._contents.Cycles; + } + + //////////////////////////////////////////// + + [Benchmark] + public int TickWithoutSubscribers() + { + this._contents.Tick(); + return this._contents.Cycles; + } + + [Benchmark] + public int TickMultipleWithoutSubscribers() + { + this._contents.Tick(4); + return this._contents.Cycles; + } + + private void Contents_Ticked(object? sender, EventArgs e) + { + this._contents.Bump(); + } + } +} \ No newline at end of file diff --git a/EightBit.Benchmark/BenchmarkLittleEndianProcessor.cs b/EightBit.Benchmark/BenchmarkLittleEndianProcessor.cs new file mode 100644 index 0000000..11dc39f --- /dev/null +++ b/EightBit.Benchmark/BenchmarkLittleEndianProcessor.cs @@ -0,0 +1,168 @@ +namespace EightBit.Benchmark +{ + using BenchmarkDotNet.Attributes; + + internal class SealedLittleEndianProcessor : LittleEndianProcessor + { + private readonly Bus _contents; + + public SealedLittleEndianProcessor(Bus contents) + : base(contents) + { + _contents = contents; + } + + public override void PoweredStep() + { + this.Execute(this.FetchInstruction()); + } + + public override void Execute() + { + this.Tick(); + this.MemoryWrite(this.PC, 1); + } + + protected override void Push(byte value) + { + } + + protected override void Pop() + { + } + + protected override void MemoryRead() + { + this.OnReadingMemory(); + base.MemoryRead(); + this.OnReadMemory(); + } + + protected override void MemoryWrite() + { + this.OnWritingMemory(); + base.MemoryWrite(); + this.OnWrittenMemory(); + } + } + + public class BenchmarkLittleEndianProcessor + { + private readonly SealedBus _bus = new(); + private readonly SealedLittleEndianProcessor _processor; + + public BenchmarkLittleEndianProcessor() + { + this._processor = new(this._bus); + } + + //////////////////////////////////////////// + + [Benchmark] + public long Step() + { + this._processor.Step(); + return this._processor.Cycles; + } + + //////////////////////////////////////////// + + [GlobalSetup(Target = nameof(StepWithMemoryEvents))] + public void GlobalSetupStepWithMemoryEvents() => this.AddMemoryEvents(); + + [GlobalCleanup(Target = nameof(StepWithMemoryEvents))] + public void GlobalCleanupStepWithMemoryEvents() => this.RemoveMemoryEvents(); + + [Benchmark] + public long StepWithMemoryEvents() => this.Step(); + + //////////////////////////////////////////// + + [GlobalSetup(Target = nameof(StepWithExecutionEvents))] + public void GlobalSetupStepWithExecutionEvents() => this.AddExecutionEvents(); + + [GlobalCleanup(Target = nameof(StepWithExecutionEvents))] + public void GlobalCleanupStepWithExecutionEvents() => this.RemoveExecutionEvents(); + + [Benchmark] + public long StepWithExecutionEvents() => this.Step(); + + //////////////////////////////////////////// + + [GlobalSetup(Target = nameof(StepWithEvents))] + public void GlobalSetupStepWithEvents() => this.AddEvents(); + + [GlobalCleanup(Target = nameof(StepWithEvents))] + public void GlobalCleanupStepWithEvents() => this.RemoveEvents(); + + [Benchmark] + public long StepWithEvents() => this.Step(); + + /////////////////////////////////////////////////// + + private void AddEvents() + { + this.AddMemoryEvents(); + this.AddExecutionEvents(); + } + + private void RemoveEvents() + { + this.RemoveMemoryEvents(); + this.RemoveExecutionEvents(); + } + + /////////////////////////////////////////////////// + + private int _preExecute = 0; + private int _postExecute = 0; + + private void RemoveExecutionEvents() + { + this._processor.ExecutingInstruction -= Processor_ExecutingInstruction; + this._processor.ExecutedInstruction -= Processor_ExecutedInstruction; + } + + private void AddExecutionEvents() + { + this._processor.ExecutingInstruction += Processor_ExecutingInstruction; + this._processor.ExecutedInstruction += Processor_ExecutedInstruction; + } + + private void Processor_ExecutedInstruction(object? sender, EventArgs e) =>this._postExecute++; + + private void Processor_ExecutingInstruction(object? sender, EventArgs e) => this._preExecute++; + + /////////////////////////////////////////////////// + + private int _preReads = 0; + private int _postReads = 0; + + private int _preWrites = 0; + private int _postWrites = 0; + + private void RemoveMemoryEvents() + { + this._processor.ReadingMemory -= Processor_ReadingMemory; + this._processor.ReadMemory -= Processor_ReadMemory; + this._processor.WritingMemory -= Processor_WritingMemory; + this._processor.WrittenMemory -= Processor_WrittenMemory; + } + + private void AddMemoryEvents() + { + this._processor.ReadingMemory += Processor_ReadingMemory; + this._processor.ReadMemory += Processor_ReadMemory; + this._processor.WritingMemory += Processor_WritingMemory; + this._processor.WrittenMemory += Processor_WrittenMemory; + } + + private void Processor_ReadingMemory(object? sender, EventArgs e) => this._preReads++; + + private void Processor_ReadMemory(object? sender, EventArgs e) => this._postReads++; + + private void Processor_WrittenMemory(object? sender, EventArgs e) =>this._postWrites++; + + private void Processor_WritingMemory(object? sender, EventArgs e) =>this._preWrites++; + } +} \ No newline at end of file diff --git a/EightBit.Benchmark/BenchmarkRegister16.cs b/EightBit.Benchmark/BenchmarkRegister16.cs new file mode 100644 index 0000000..3498e3c --- /dev/null +++ b/EightBit.Benchmark/BenchmarkRegister16.cs @@ -0,0 +1,32 @@ +using BenchmarkDotNet.Attributes; + +namespace EightBit.Benchmark +{ + public class BenchmarkRegister16 + { + private readonly Register16 _contents = new(0xde, 0xad); + private readonly Register16 _source = new(0xbe, 0xef); + + [Benchmark] + public ushort Increment() + { + this._contents.Increment(); + return this._contents.Joined; + } + + [Benchmark] + public ushort AssignViaRegister() + { + this._source.Increment(); + this._contents.Assign(this._source); + return this._contents.Joined; + } + + [Benchmark] + public ushort AssignViaValues() + { + this._contents.Assign(0x01, 0x02); + return this._contents.Joined; + } + } +} \ No newline at end of file diff --git a/EightBit.Benchmark/EightBit.Benchmark.csproj b/EightBit.Benchmark/EightBit.Benchmark.csproj new file mode 100644 index 0000000..1d66880 --- /dev/null +++ b/EightBit.Benchmark/EightBit.Benchmark.csproj @@ -0,0 +1,18 @@ + + + + Exe + net10.0 + enable + enable + + + + + + + + + + + diff --git a/EightBit.Benchmark/Program.cs b/EightBit.Benchmark/Program.cs new file mode 100644 index 0000000..989d570 --- /dev/null +++ b/EightBit.Benchmark/Program.cs @@ -0,0 +1,3 @@ +using BenchmarkDotNet.Running; + +var summary = BenchmarkRunner.Run(typeof(Program).Assembly); diff --git a/EightBit.Benchmark/SealedBus.cs b/EightBit.Benchmark/SealedBus.cs new file mode 100644 index 0000000..fb38b93 --- /dev/null +++ b/EightBit.Benchmark/SealedBus.cs @@ -0,0 +1,24 @@ +using BenchmarkDotNet.Attributes; + +namespace EightBit.Benchmark +{ + class SealedBus : Bus + { + private readonly Ram _ram = new(0x10000); + private readonly MemoryMapping _mapping; + + public SealedBus() + { + this._mapping = new(this._ram, 0, Mask.Fifteen, AccessLevel.ReadWrite); + } + + public override MemoryMapping Mapping(ushort absolute) + { + return this._mapping; + } + + public override void Initialize() + { + } + } +} \ No newline at end of file diff --git a/EightBit/EightBit.UnitTest/EightBit.UnitTest.csproj b/EightBit/EightBit.UnitTest/EightBit.UnitTest.csproj index 18b2ce6..689bf0e 100644 --- a/EightBit/EightBit.UnitTest/EightBit.UnitTest.csproj +++ b/EightBit/EightBit.UnitTest/EightBit.UnitTest.csproj @@ -26,10 +26,10 @@ - - - - + + + + diff --git a/EightBitNet.sln b/EightBitNet.sln index 95b3a80..eb8215d 100644 --- a/EightBitNet.sln +++ b/EightBitNet.sln @@ -29,11 +29,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MC6809.Test", "MC6809\MC680 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MC6850", "MC6850\MC6850.csproj", "{1609FDDB-123C-4F4C-ABF2-8B9467D21679}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Z80", "Z80\Z80.csproj", "{BFA64991-7EDE-4871-93B2-F6B3704C3889}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Zilog", "Z80\Zilog.csproj", "{BFA64991-7EDE-4871-93B2-F6B3704C3889}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Z80.FuseTest", "Z80\Z80.FuseTest\Z80.FuseTest.csproj", "{7124884D-0D57-4C8D-848F-A75AC73BA595}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Zilog.Z80.FuseTest", "Z80\Z80.FuseTest\Zilog.Z80.FuseTest.csproj", "{7124884D-0D57-4C8D-848F-A75AC73BA595}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Z80.Test", "Z80\Z80.Test\Z80.Test.csproj", "{E6AE640E-4A42-4D8F-8ECE-2FBEBC29741B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Zilog.Z80.Test", "Z80\Z80.Test\Zilog.Z80.Test.csproj", "{E6AE640E-4A42-4D8F-8ECE-2FBEBC29741B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "M6502.HarteTest", "M6502\M6502.HarteTest\M6502.HarteTest.csproj", "{8686B0DC-A431-4239-836E-ABC90BD69920}" EndProject @@ -43,12 +43,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SM83.HarteTest", "LR35902\S EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EightBit.UnitTest", "EightBit\EightBit.UnitTest\EightBit.UnitTest.csproj", "{A8B3D819-0E84-4586-ADB1-D57AB1A8165B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Z80.UnitTests", "Z80\Z80.UnitTests\Z80.UnitTests.csproj", "{DB313D5B-9DC3-4844-9916-925678967112}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Zilog.Z80.UnitTests", "Z80\Z80.UnitTests\Zilog.Z80.UnitTests.csproj", "{DB313D5B-9DC3-4844-9916-925678967112}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Z80.HarteTest", "Z80\Z80.HarteTest\Z80.HarteTest.csproj", "{63132DC1-94BC-4B00-9AE3-B95A9C9BC663}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Zilog.Z80.HarteTest", "Z80\Z80.HarteTest\Zilog.Z80.HarteTest.csproj", "{63132DC1-94BC-4B00-9AE3-B95A9C9BC663}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gaming", "Gaming\Gaming.csproj", "{C659EDDC-5DC6-4BFB-839F-7B810F924B55}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EightBit.Benchmark", "EightBit.Benchmark\EightBit.Benchmark.csproj", "{670DCC51-9820-436D-9977-EC5FD7FD646D}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -147,6 +149,10 @@ Global {C659EDDC-5DC6-4BFB-839F-7B810F924B55}.Debug|Any CPU.Build.0 = Debug|Any CPU {C659EDDC-5DC6-4BFB-839F-7B810F924B55}.Release|Any CPU.ActiveCfg = Release|Any CPU {C659EDDC-5DC6-4BFB-839F-7B810F924B55}.Release|Any CPU.Build.0 = Release|Any CPU + {670DCC51-9820-436D-9977-EC5FD7FD646D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {670DCC51-9820-436D-9977-EC5FD7FD646D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {670DCC51-9820-436D-9977-EC5FD7FD646D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {670DCC51-9820-436D-9977-EC5FD7FD646D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Gaming/Gaming.csproj b/Gaming/Gaming.csproj index ecb55e0..8eacf4f 100644 --- a/Gaming/Gaming.csproj +++ b/Gaming/Gaming.csproj @@ -19,7 +19,7 @@ - + diff --git a/LR35902/SM83.HarteTest/SM83.HarteTest.csproj b/LR35902/SM83.HarteTest/SM83.HarteTest.csproj index d8d0428..790ad69 100644 --- a/LR35902/SM83.HarteTest/SM83.HarteTest.csproj +++ b/LR35902/SM83.HarteTest/SM83.HarteTest.csproj @@ -24,10 +24,10 @@ - - - - + + + + diff --git a/M6502/M6502.HarteTest/M6502.HarteTest.csproj b/M6502/M6502.HarteTest/M6502.HarteTest.csproj index 663cd3e..8e8325a 100644 --- a/M6502/M6502.HarteTest/M6502.HarteTest.csproj +++ b/M6502/M6502.HarteTest/M6502.HarteTest.csproj @@ -24,10 +24,10 @@ - - - - + + + + diff --git a/MC6809/MC6809.UnitTest/MC6809.UnitTest.csproj b/MC6809/MC6809.UnitTest/MC6809.UnitTest.csproj index c9d9c55..2cada99 100644 --- a/MC6809/MC6809.UnitTest/MC6809.UnitTest.csproj +++ b/MC6809/MC6809.UnitTest/MC6809.UnitTest.csproj @@ -28,10 +28,10 @@ - - - - + + + + diff --git a/Z80/Disassembler.cs b/Z80/Disassembler.cs index 51737db..23dac4d 100644 --- a/Z80/Disassembler.cs +++ b/Z80/Disassembler.cs @@ -2,7 +2,7 @@ // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80 +namespace Zilog { using EightBit; using System.Globalization; diff --git a/Z80/Labels.cs b/Z80/Labels.cs index 99c0786..b2f0ce1 100644 --- a/Z80/Labels.cs +++ b/Z80/Labels.cs @@ -1,4 +1,4 @@ -namespace Z80 +namespace Zilog { using System.Diagnostics; using System.Globalization; diff --git a/Z80/RefreshRegister.cs b/Z80/RefreshRegister.cs index 59b3ff4..0ef7dca 100644 --- a/Z80/RefreshRegister.cs +++ b/Z80/RefreshRegister.cs @@ -2,7 +2,7 @@ // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80 +namespace Zilog { using EightBit; diff --git a/Z80/RegisterIndex.cs b/Z80/RegisterIndex.cs index 7e61d3a..b25573d 100644 --- a/Z80/RegisterIndex.cs +++ b/Z80/RegisterIndex.cs @@ -2,7 +2,7 @@ // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80 +namespace Zilog { public enum RegisterIndex { diff --git a/Z80/StatusBits.cs b/Z80/StatusBits.cs index f0412b8..2c6882a 100644 --- a/Z80/StatusBits.cs +++ b/Z80/StatusBits.cs @@ -2,7 +2,7 @@ // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80 +namespace Zilog { using EightBit; diff --git a/Z80/Z80.FuseTest/Program.cs b/Z80/Z80.FuseTest/Program.cs index 0a6c806..c4e71d8 100644 --- a/Z80/Z80.FuseTest/Program.cs +++ b/Z80/Z80.FuseTest/Program.cs @@ -2,7 +2,7 @@ // Copyright (c) Adrian Conlon. All rights reserved. // -using Z80.FuseTest; +using Zilog.FuseTest; var suite = new TestSuite("fuse-tests\\tests"); suite.Read(); diff --git a/Z80/Z80.FuseTest/RegisterState.cs b/Z80/Z80.FuseTest/RegisterState.cs index 1b38255..40d5c3e 100644 --- a/Z80/Z80.FuseTest/RegisterState.cs +++ b/Z80/Z80.FuseTest/RegisterState.cs @@ -2,7 +2,7 @@ // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80.FuseTest +namespace Zilog.FuseTest { using Fuse; using System.Globalization; diff --git a/Z80/Z80.FuseTest/TestRunner.cs b/Z80/Z80.FuseTest/TestRunner.cs index 62cac83..faa34bb 100644 --- a/Z80/Z80.FuseTest/TestRunner.cs +++ b/Z80/Z80.FuseTest/TestRunner.cs @@ -2,11 +2,12 @@ // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80.FuseTest +namespace Zilog.FuseTest { using Fuse; using System.Collections.Generic; using System.Diagnostics; + using Zilog; internal enum Register { diff --git a/Z80/Z80.FuseTest/TestSuite.cs b/Z80/Z80.FuseTest/TestSuite.cs index db3d00e..940aad4 100644 --- a/Z80/Z80.FuseTest/TestSuite.cs +++ b/Z80/Z80.FuseTest/TestSuite.cs @@ -2,7 +2,7 @@ // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80.FuseTest +namespace Zilog.FuseTest { using Fuse; diff --git a/Z80/Z80.FuseTest/Z80.FuseTest.csproj b/Z80/Z80.FuseTest/Zilog.Z80.FuseTest.csproj similarity index 94% rename from Z80/Z80.FuseTest/Z80.FuseTest.csproj rename to Z80/Z80.FuseTest/Zilog.Z80.FuseTest.csproj index 490eefd..d477ed4 100644 --- a/Z80/Z80.FuseTest/Z80.FuseTest.csproj +++ b/Z80/Z80.FuseTest/Zilog.Z80.FuseTest.csproj @@ -21,7 +21,7 @@ - + diff --git a/Z80/Z80.HarteTest/Checker.cs b/Z80/Z80.HarteTest/Checker.cs index 3541bdd..15cce37 100644 --- a/Z80/Z80.HarteTest/Checker.cs +++ b/Z80/Z80.HarteTest/Checker.cs @@ -1,4 +1,4 @@ -namespace Z80.HarteTest +namespace Zilog.HarteTest { using EightBit; using System.Collections.Generic; diff --git a/Z80/Z80.HarteTest/Cycle.cs b/Z80/Z80.HarteTest/Cycle.cs index 0c316be..dbf15ab 100644 --- a/Z80/Z80.HarteTest/Cycle.cs +++ b/Z80/Z80.HarteTest/Cycle.cs @@ -1,4 +1,4 @@ -namespace Z80.HarteTest +namespace Zilog.HarteTest { using System.Diagnostics; diff --git a/Z80/Z80.HarteTest/OpcodeTestSuite.cs b/Z80/Z80.HarteTest/OpcodeTestSuite.cs index b742108..d9cdc14 100644 --- a/Z80/Z80.HarteTest/OpcodeTestSuite.cs +++ b/Z80/Z80.HarteTest/OpcodeTestSuite.cs @@ -1,4 +1,4 @@ -namespace Z80.HarteTest +namespace Zilog.HarteTest { using System.Runtime.CompilerServices; using System.Text.Json; diff --git a/Z80/Z80.HarteTest/Port.cs b/Z80/Z80.HarteTest/Port.cs index 1e89b87..c073266 100644 --- a/Z80/Z80.HarteTest/Port.cs +++ b/Z80/Z80.HarteTest/Port.cs @@ -1,6 +1,6 @@ using System.Diagnostics; -namespace Z80.HarteTest +namespace Zilog.HarteTest { // Cycle-by-cycle breakdown of bus activity internal sealed class Port diff --git a/Z80/Z80.HarteTest/SingleStepTests.cs b/Z80/Z80.HarteTest/SingleStepTests.cs index 41f8fbe..ca4ec57 100644 --- a/Z80/Z80.HarteTest/SingleStepTests.cs +++ b/Z80/Z80.HarteTest/SingleStepTests.cs @@ -1,7 +1,7 @@ // // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80.HarteTest +namespace Zilog.HarteTest { using System.Reflection; diff --git a/Z80/Z80.HarteTest/State.cs b/Z80/Z80.HarteTest/State.cs index efdef05..ce033d7 100644 --- a/Z80/Z80.HarteTest/State.cs +++ b/Z80/Z80.HarteTest/State.cs @@ -1,4 +1,4 @@ -namespace Z80.HarteTest +namespace Zilog.HarteTest { [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "CA1812:Avoid uninstantiated internal classes", Justification = "Instantiated by JSON deserializer")] internal sealed class State diff --git a/Z80/Z80.HarteTest/Test.cs b/Z80/Z80.HarteTest/Test.cs index 58f6577..27f25df 100644 --- a/Z80/Z80.HarteTest/Test.cs +++ b/Z80/Z80.HarteTest/Test.cs @@ -1,4 +1,4 @@ -namespace Z80.HarteTest +namespace Zilog.HarteTest { [System.Diagnostics.CodeAnalysis.SuppressMessage("Performance", "CA1812:Avoid uninstantiated internal classes", Justification = "Instantiated by JSON deserializer")] internal sealed class Test diff --git a/Z80/Z80.HarteTest/TestRunner.cs b/Z80/Z80.HarteTest/TestRunner.cs index 952a07a..ff48980 100644 --- a/Z80/Z80.HarteTest/TestRunner.cs +++ b/Z80/Z80.HarteTest/TestRunner.cs @@ -1,6 +1,7 @@ -namespace Z80.HarteTest +namespace Zilog.HarteTest { using EightBit; + using Zilog; internal sealed class TestRunner : Bus { diff --git a/Z80/Z80.UnitTests/Z80.UnitTests.csproj b/Z80/Z80.HarteTest/Zilog.Z80.HarteTest.csproj similarity index 86% rename from Z80/Z80.UnitTests/Z80.UnitTests.csproj rename to Z80/Z80.HarteTest/Zilog.Z80.HarteTest.csproj index 130b909..5629e81 100644 --- a/Z80/Z80.UnitTests/Z80.UnitTests.csproj +++ b/Z80/Z80.HarteTest/Zilog.Z80.HarteTest.csproj @@ -1,4 +1,4 @@ - + net10.0 @@ -24,15 +24,15 @@ - - - - + + + + - + diff --git a/Z80/Z80.Test/Board.cs b/Z80/Z80.Test/Board.cs index 14eca16..a9c11f6 100644 --- a/Z80/Z80.Test/Board.cs +++ b/Z80/Z80.Test/Board.cs @@ -2,7 +2,7 @@ // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80.Test +namespace Zilog.Test { using EightBit; using System.Globalization; diff --git a/Z80/Z80.Test/Configuration.cs b/Z80/Z80.Test/Configuration.cs index 74288f7..736fb79 100644 --- a/Z80/Z80.Test/Configuration.cs +++ b/Z80/Z80.Test/Configuration.cs @@ -2,7 +2,7 @@ // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80.Test +namespace Zilog.Test { using EightBit; diff --git a/Z80/Z80.Test/Program.cs b/Z80/Z80.Test/Program.cs index bb1e017..57aceec 100644 --- a/Z80/Z80.Test/Program.cs +++ b/Z80/Z80.Test/Program.cs @@ -2,7 +2,7 @@ // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80.Test +namespace Zilog.Test { using EightBit; diff --git a/Z80/Z80.Test/Z80.Test.csproj b/Z80/Z80.Test/Zilog.Z80.Test.csproj similarity index 93% rename from Z80/Z80.Test/Z80.Test.csproj rename to Z80/Z80.Test/Zilog.Z80.Test.csproj index 77c418c..caa1e4b 100644 --- a/Z80/Z80.Test/Z80.Test.csproj +++ b/Z80/Z80.Test/Zilog.Z80.Test.csproj @@ -20,7 +20,7 @@ - + diff --git a/Z80/Z80.UnitTests/Board.cs b/Z80/Z80.UnitTests/Board.cs index 4c267c8..8ea0965 100644 --- a/Z80/Z80.UnitTests/Board.cs +++ b/Z80/Z80.UnitTests/Board.cs @@ -1,9 +1,10 @@ // // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80.UnitTests +namespace Zilog.Z80.UnitTests { using EightBit; + using Zilog; public sealed class Board : Bus { diff --git a/Z80/Z80.UnitTests/HaltTests.cs b/Z80/Z80.UnitTests/HaltTests.cs index c1aa15e..d833198 100644 --- a/Z80/Z80.UnitTests/HaltTests.cs +++ b/Z80/Z80.UnitTests/HaltTests.cs @@ -1,9 +1,10 @@ // // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80.UnitTests +namespace Zilog.Z80.UnitTests { using Microsoft.VisualStudio.TestTools.UnitTesting; + using Zilog; [TestClass] public class HaltTests diff --git a/Z80/Z80.UnitTests/IffTests.cs b/Z80/Z80.UnitTests/IffTests.cs index 7006e25..a4ef024 100644 --- a/Z80/Z80.UnitTests/IffTests.cs +++ b/Z80/Z80.UnitTests/IffTests.cs @@ -1,9 +1,10 @@ // // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80.UnitTests +namespace Zilog.Z80.UnitTests { using Microsoft.VisualStudio.TestTools.UnitTesting; + using Zilog; [TestClass] public class IffTests diff --git a/Z80/Z80.UnitTests/IntTests.cs b/Z80/Z80.UnitTests/IntTests.cs index 1178252..e2f5895 100644 --- a/Z80/Z80.UnitTests/IntTests.cs +++ b/Z80/Z80.UnitTests/IntTests.cs @@ -1,9 +1,10 @@ // // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80.UnitTests +namespace Zilog.Z80.UnitTests { using Microsoft.VisualStudio.TestTools.UnitTesting; + using Zilog; [TestClass] public class IntTests diff --git a/Z80/Z80.UnitTests/NmiTests.cs b/Z80/Z80.UnitTests/NmiTests.cs index ab42205..63b45c9 100644 --- a/Z80/Z80.UnitTests/NmiTests.cs +++ b/Z80/Z80.UnitTests/NmiTests.cs @@ -1,9 +1,10 @@ // // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80.UnitTests +namespace Zilog.Z80.UnitTests { using Microsoft.VisualStudio.TestTools.UnitTesting; + using Zilog; [TestClass] public class NmiTests diff --git a/Z80/Z80.UnitTests/ResetTests.cs b/Z80/Z80.UnitTests/ResetTests.cs index 7583292..1636b45 100644 --- a/Z80/Z80.UnitTests/ResetTests.cs +++ b/Z80/Z80.UnitTests/ResetTests.cs @@ -1,9 +1,10 @@ // // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80.UnitTests +namespace Zilog.Z80.UnitTests { using Microsoft.VisualStudio.TestTools.UnitTesting; + using Zilog; [TestClass] public class ResetTests diff --git a/Z80/Z80.HarteTest/Z80.HarteTest.csproj b/Z80/Z80.UnitTests/Zilog.Z80.UnitTests.csproj similarity index 88% rename from Z80/Z80.HarteTest/Z80.HarteTest.csproj rename to Z80/Z80.UnitTests/Zilog.Z80.UnitTests.csproj index 130b909..08b58b3 100644 --- a/Z80/Z80.HarteTest/Z80.HarteTest.csproj +++ b/Z80/Z80.UnitTests/Zilog.Z80.UnitTests.csproj @@ -24,15 +24,15 @@ - - - - + + + + - + diff --git a/Z80/Z80.cs b/Z80/Z80.cs index ff5023f..3fe982b 100644 --- a/Z80/Z80.cs +++ b/Z80/Z80.cs @@ -1,8 +1,8 @@ -// +// // Copyright (c) Adrian Conlon. All rights reserved. // -namespace Z80 +namespace Zilog { using EightBit; using System.Diagnostics; diff --git a/Z80/Z80.csproj b/Z80/Zilog.csproj similarity index 100% rename from Z80/Z80.csproj rename to Z80/Zilog.csproj