diff options
-rw-r--r-- | AssemblyInfo.cs | 33 | ||||
-rw-r--r-- | Hardsid.cs | 100 | ||||
-rw-r--r-- | HardsidInterface.cmbx | 16 | ||||
-rw-r--r-- | HardsidInterface.prjx | 25 |
4 files changed, 174 insertions, 0 deletions
diff --git a/AssemblyInfo.cs b/AssemblyInfo.cs new file mode 100644 index 0000000..965e66d --- /dev/null +++ b/AssemblyInfo.cs @@ -0,0 +1,33 @@ +// $Id$ +using System.Reflection; +using System.Runtime.CompilerServices; + +// Information about this assembly is defined by the following +// attributes. +// +// change them to the information which is associated with the assembly +// you compile. + +[assembly: AssemblyTitle("")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// The assembly version has following format : +// +// Major.Minor.Build.Revision +// +// You can specify all values by your own or you can build default build and revision +// numbers with the '*' character (the default): + +[assembly: AssemblyVersion("1.0.*")] + +// The following attributes specify the key for the sign of your assembly. See the +// .NET Framework documentation for more information about signing. +// This is not required, if you don't want signing let these attributes like they're. +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] diff --git a/Hardsid.cs b/Hardsid.cs new file mode 100644 index 0000000..74d80bc --- /dev/null +++ b/Hardsid.cs @@ -0,0 +1,100 @@ +// C# Hardsid interface +// Copyright (C) 2004 Ian Cowburn +// +// This program 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 2 +// of the License, or (at your option) any later version. +// +// This program 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 this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// +// $Id$ +// +using System; +using System.Runtime.InteropServices; + +namespace HardsidInterface +{ + /// <summary> + /// Main Hardsid class + /// </summary> + public class Hardsid + { + public delegate void DebugEvent(uint device, uint reg, uint val); + + public static event DebugEvent DebugWrite; + + public static void Init() + { + InitHardSID_Mapper(); + } + + public static int Count + { + get {return (int)GetHardSIDCount();} + } + + public static void Write(uint reg, uint val) + { + //System.Diagnostics.Debugger.Break(); + WriteToHardSID(0,Cast(reg),Cast(val)); + + if (DebugWrite!=null) + { + DebugWrite(0,reg,val); + } + } + + public static void Write(uint device, uint reg, uint val) + { + WriteToHardSID(Cast(device),Cast(reg),Cast(val)); + + if (DebugWrite!=null) + { + DebugWrite(device,reg,val); + } + } + + public static uint Read(uint device, uint reg) + { + return ReadFromHardSID(Cast(device),Cast(reg)); + } + + public static byte Read(uint reg) + { + return ReadFromHardSID(0,Cast(reg)); + } + + public static void DLLDebug(int i) + { + SetDebug(i); + } + + private static byte Cast(uint v) + { + return (byte)(v&0xffu); + } + + [DllImport ("HARDSID.DLL")] + private static extern byte GetHardSIDCount(); + + [DllImport ("HARDSID.DLL")] + private static extern void WriteToHardSID(byte id, byte reg, byte data); + + [DllImport ("HARDSID.DLL")] + private static extern byte ReadFromHardSID(byte id, byte reg); + + [DllImport ("HARDSID.DLL")] + private static extern byte InitHardSID_Mapper(); + + [DllImport ("HARDSID.DLL")] + private static extern void SetDebug(int i); + } +} diff --git a/HardsidInterface.cmbx b/HardsidInterface.cmbx new file mode 100644 index 0000000..302c4b8 --- /dev/null +++ b/HardsidInterface.cmbx @@ -0,0 +1,16 @@ +<Combine fileversion="1.0" name="HardsidInterface" description=""> + <StartMode startupentry="HardsidInterface" single="True"> + <Execute entry="HardsidInterface" type="None" /> + </StartMode> + <Entries> + <Entry filename=".\.\HardsidInterface.prjx" /> + </Entries> + <Configurations active="Debug"> + <Configuration name="Release"> + <Entry name="HardsidInterface" configurationname="Debug" build="False" /> + </Configuration> + <Configuration name="Debug"> + <Entry name="HardsidInterface" configurationname="Debug" build="False" /> + </Configuration> + </Configurations> +</Combine>
\ No newline at end of file diff --git a/HardsidInterface.prjx b/HardsidInterface.prjx new file mode 100644 index 0000000..29c5ade --- /dev/null +++ b/HardsidInterface.prjx @@ -0,0 +1,25 @@ +<Project name="HardsidInterface" standardNamespace="HardsidInterface" description="" newfilesearch="None" enableviewstate="True" version="1.1" projecttype="C#"> + <Contents> + <File name=".\AssemblyInfo.cs" subtype="Code" buildaction="Compile" dependson="" data="" /> + <File name=".\Hardsid.cs" subtype="Code" buildaction="Compile" dependson="" data="" /> + </Contents> + <References /> + <DeploymentInformation target="" script="" strategy="File" /> + <Configuration runwithwarnings="True" name="Debug"> + <CodeGeneration runtime="MsNet" compiler="Csc" compilerversion="" warninglevel="4" nowarn="" includedebuginformation="True" optimize="False" unsafecodeallowed="False" generateoverflowchecks="True" mainclass="" target="Library" definesymbols="" generatexmldocumentation="False" win32Icon="" noconfig="False" nostdlib="False" /> + <Execution commandlineparameters="" consolepause="False" /> + <Output directory="..\bin\HardsidInterface\Debug" assembly="HardsidInterface" executeScript="" executeBeforeBuild="" executeAfterBuild="" executeBeforeBuildArguments="" executeAfterBuildArguments="" /> + </Configuration> + <Configurations active="Debug"> + <Configuration runwithwarnings="True" name="Debug"> + <CodeGeneration runtime="MsNet" compiler="Csc" compilerversion="" warninglevel="4" nowarn="" includedebuginformation="True" optimize="False" unsafecodeallowed="False" generateoverflowchecks="True" mainclass="" target="Library" definesymbols="" generatexmldocumentation="False" win32Icon="" noconfig="False" nostdlib="False" /> + <Execution commandlineparameters="" consolepause="False" /> + <Output directory="..\bin\HardsidInterface\Debug" assembly="HardsidInterface" executeScript="" executeBeforeBuild="" executeAfterBuild="" executeBeforeBuildArguments="" executeAfterBuildArguments="" /> + </Configuration> + <Configuration runwithwarnings="True" name="Release"> + <CodeGeneration runtime="MsNet" compiler="Csc" compilerversion="" warninglevel="4" nowarn="" includedebuginformation="False" optimize="True" unsafecodeallowed="False" generateoverflowchecks="False" mainclass="" target="Library" definesymbols="" generatexmldocumentation="False" win32Icon="" noconfig="False" nostdlib="False" /> + <Execution commandlineparameters="" consolepause="False" /> + <Output directory=".\bin\Release" assembly="HardsidInterface" executeScript="" executeBeforeBuild="" executeAfterBuild="" executeBeforeBuildArguments="" executeAfterBuildArguments="" /> + </Configuration> + </Configurations> +</Project>
\ No newline at end of file |