From 2e31d6ae4405ac118599e5fc9c767fcb6f43be7f Mon Sep 17 00:00:00 2001 From: Ian C Date: Mon, 27 Feb 2012 22:23:13 +0000 Subject: Added initial files for Z80 tests. --- Noddybox.Emulation.Native.sln | 34 + .../Noddybox.Emulation.EightBit.Z80.Test.csproj | 82 + .../Program.cs | 35 + .../Properties/AssemblyInfo.cs | 36 + native/Noddybox.Emulation.EightBit.Z80.Test/README | 73 + .../TestDevice.cs | 37 + .../TestMemory.cs | 39 + .../tests.expected | 18395 +++++++++++++++++++ .../Noddybox.Emulation.EightBit.Z80.Test/tests.in | 9011 +++++++++ 9 files changed, 27742 insertions(+) create mode 100644 native/Noddybox.Emulation.EightBit.Z80.Test/Noddybox.Emulation.EightBit.Z80.Test.csproj create mode 100644 native/Noddybox.Emulation.EightBit.Z80.Test/Program.cs create mode 100644 native/Noddybox.Emulation.EightBit.Z80.Test/Properties/AssemblyInfo.cs create mode 100644 native/Noddybox.Emulation.EightBit.Z80.Test/README create mode 100644 native/Noddybox.Emulation.EightBit.Z80.Test/TestDevice.cs create mode 100644 native/Noddybox.Emulation.EightBit.Z80.Test/TestMemory.cs create mode 100644 native/Noddybox.Emulation.EightBit.Z80.Test/tests.expected create mode 100644 native/Noddybox.Emulation.EightBit.Z80.Test/tests.in diff --git a/Noddybox.Emulation.Native.sln b/Noddybox.Emulation.Native.sln index 43e61aa..14ebbc1 100644 --- a/Noddybox.Emulation.Native.sln +++ b/Noddybox.Emulation.Native.sln @@ -7,24 +7,58 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Noddybox.Emulation.EightBit EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Noddybox.Emulation.EightBit.Z80", "native\Noddybox.Emulation.EightBit.Z80\Noddybox.Emulation.EightBit.Z80.csproj", "{1E0BEBC1-AB7A-4844-AC1E-B1A0239B63CF}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Noddybox.Emulation.EightBit.Z80.Test", "native\Noddybox.Emulation.EightBit.Z80.Test\Noddybox.Emulation.EightBit.Z80.Test.csproj", "{63894EA6-1E8D-43EC-B150-AEE77197F0D7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {1817A6AA-8E7A-424D-9741-934CD00A5D30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1817A6AA-8E7A-424D-9741-934CD00A5D30}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1817A6AA-8E7A-424D-9741-934CD00A5D30}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {1817A6AA-8E7A-424D-9741-934CD00A5D30}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {1817A6AA-8E7A-424D-9741-934CD00A5D30}.Debug|x86.ActiveCfg = Debug|Any CPU {1817A6AA-8E7A-424D-9741-934CD00A5D30}.Release|Any CPU.ActiveCfg = Release|Any CPU {1817A6AA-8E7A-424D-9741-934CD00A5D30}.Release|Any CPU.Build.0 = Release|Any CPU + {1817A6AA-8E7A-424D-9741-934CD00A5D30}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {1817A6AA-8E7A-424D-9741-934CD00A5D30}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {1817A6AA-8E7A-424D-9741-934CD00A5D30}.Release|x86.ActiveCfg = Release|Any CPU {C40AC553-8D22-4C04-8F2F-58D9A0EBD119}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C40AC553-8D22-4C04-8F2F-58D9A0EBD119}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C40AC553-8D22-4C04-8F2F-58D9A0EBD119}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {C40AC553-8D22-4C04-8F2F-58D9A0EBD119}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {C40AC553-8D22-4C04-8F2F-58D9A0EBD119}.Debug|x86.ActiveCfg = Debug|Any CPU {C40AC553-8D22-4C04-8F2F-58D9A0EBD119}.Release|Any CPU.ActiveCfg = Release|Any CPU {C40AC553-8D22-4C04-8F2F-58D9A0EBD119}.Release|Any CPU.Build.0 = Release|Any CPU + {C40AC553-8D22-4C04-8F2F-58D9A0EBD119}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {C40AC553-8D22-4C04-8F2F-58D9A0EBD119}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {C40AC553-8D22-4C04-8F2F-58D9A0EBD119}.Release|x86.ActiveCfg = Release|Any CPU {1E0BEBC1-AB7A-4844-AC1E-B1A0239B63CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1E0BEBC1-AB7A-4844-AC1E-B1A0239B63CF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E0BEBC1-AB7A-4844-AC1E-B1A0239B63CF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {1E0BEBC1-AB7A-4844-AC1E-B1A0239B63CF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {1E0BEBC1-AB7A-4844-AC1E-B1A0239B63CF}.Debug|x86.ActiveCfg = Debug|Any CPU {1E0BEBC1-AB7A-4844-AC1E-B1A0239B63CF}.Release|Any CPU.ActiveCfg = Release|Any CPU {1E0BEBC1-AB7A-4844-AC1E-B1A0239B63CF}.Release|Any CPU.Build.0 = Release|Any CPU + {1E0BEBC1-AB7A-4844-AC1E-B1A0239B63CF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {1E0BEBC1-AB7A-4844-AC1E-B1A0239B63CF}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {1E0BEBC1-AB7A-4844-AC1E-B1A0239B63CF}.Release|x86.ActiveCfg = Release|Any CPU + {63894EA6-1E8D-43EC-B150-AEE77197F0D7}.Debug|Any CPU.ActiveCfg = Debug|x86 + {63894EA6-1E8D-43EC-B150-AEE77197F0D7}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {63894EA6-1E8D-43EC-B150-AEE77197F0D7}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {63894EA6-1E8D-43EC-B150-AEE77197F0D7}.Debug|x86.ActiveCfg = Debug|x86 + {63894EA6-1E8D-43EC-B150-AEE77197F0D7}.Debug|x86.Build.0 = Debug|x86 + {63894EA6-1E8D-43EC-B150-AEE77197F0D7}.Release|Any CPU.ActiveCfg = Release|x86 + {63894EA6-1E8D-43EC-B150-AEE77197F0D7}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {63894EA6-1E8D-43EC-B150-AEE77197F0D7}.Release|Mixed Platforms.Build.0 = Release|x86 + {63894EA6-1E8D-43EC-B150-AEE77197F0D7}.Release|x86.ActiveCfg = Release|x86 + {63894EA6-1E8D-43EC-B150-AEE77197F0D7}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/native/Noddybox.Emulation.EightBit.Z80.Test/Noddybox.Emulation.EightBit.Z80.Test.csproj b/native/Noddybox.Emulation.EightBit.Z80.Test/Noddybox.Emulation.EightBit.Z80.Test.csproj new file mode 100644 index 0000000..4744ad0 --- /dev/null +++ b/native/Noddybox.Emulation.EightBit.Z80.Test/Noddybox.Emulation.EightBit.Z80.Test.csproj @@ -0,0 +1,82 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {63894EA6-1E8D-43EC-B150-AEE77197F0D7} + Exe + Properties + Noddybox.Emulation.EightBit.Z80.Test + Noddybox.Emulation.EightBit.Z80.Test + v4.0 + Client + 512 + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + {1E0BEBC1-AB7A-4844-AC1E-B1A0239B63CF} + Noddybox.Emulation.EightBit.Z80 + + + {C40AC553-8D22-4C04-8F2F-58D9A0EBD119} + Noddybox.Emulation.EightBit + + + {1817A6AA-8E7A-424D-9741-934CD00A5D30} + Noddybox.Emulation + + + + + + Always + + + Always + + + + + \ No newline at end of file diff --git a/native/Noddybox.Emulation.EightBit.Z80.Test/Program.cs b/native/Noddybox.Emulation.EightBit.Z80.Test/Program.cs new file mode 100644 index 0000000..5e708ea --- /dev/null +++ b/native/Noddybox.Emulation.EightBit.Z80.Test/Program.cs @@ -0,0 +1,35 @@ +// This file is part of the Noddybox.Emulation C# suite. +// +// Noddybox.Emulation is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Noddybox.Emulation is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Noddybox.Emulation. If not, see . +// +// Copyright (c) 2012 Ian Cowburn +// +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Noddybox.Emulation.EightBit.Z80.Test +{ + /// + /// This program drives the tests for the Z80 emulation. The tests are based on the test + /// suite from the FUSE emulator; http://fuse-emulator.sourceforge.net/ + /// + class Program + { + static void Main(string[] args) + { + } + } +} diff --git a/native/Noddybox.Emulation.EightBit.Z80.Test/Properties/AssemblyInfo.cs b/native/Noddybox.Emulation.EightBit.Z80.Test/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..769c55b --- /dev/null +++ b/native/Noddybox.Emulation.EightBit.Z80.Test/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Noddybox.Emulation.EightBit.Z80.Test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Noddybox.Emulation.EightBit.Z80.Test")] +[assembly: AssemblyCopyright("Copyright © 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("6b56889f-ecae-4e3d-bc61-2417793b9398")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/native/Noddybox.Emulation.EightBit.Z80.Test/README b/native/Noddybox.Emulation.EightBit.Z80.Test/README new file mode 100644 index 0000000..ecb4c18 --- /dev/null +++ b/native/Noddybox.Emulation.EightBit.Z80.Test/README @@ -0,0 +1,73 @@ +File formats +============ + +tests.in +-------- + +Each test has the format: + + +AF BC DE HL AF' BC' DE' HL' IX IY SP PC +I R IFF1 IFF2 IM + + specifies whether the Z80 is halted. + specifies the number of tstates to run the test for, in + decimal; the number actually executed may be higher, as the final + instruction is allowed to complete. + +Then followed by lines specifying the initial memory setup. Each has +the format: + + ... -1 + +eg + +1234 56 78 9a -1 + +says to put 0x56 at 0x1234, 0x78 at 0x1235 and 0x9a at 0x1236. + +Finally, -1 to end the test. Blank lines may follow before the next test. + +tests.expected +-------------- + +Each test output starts with the test description, followed by a list +of 'events': each has the format + +