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 | 
