From fb4dd47eb1c021bd9aa3bf1c4d422e416fb7e189 Mon Sep 17 00:00:00 2001 From: Ian C Date: Fri, 21 Jan 2005 01:12:34 +0000 Subject: Initial checkin --- AssemblyInfo.cs | 33 +++++++++++++++++ Hardsid.cs | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++ HardsidInterface.cmbx | 16 ++++++++ HardsidInterface.prjx | 25 +++++++++++++ 4 files changed, 174 insertions(+) create mode 100644 AssemblyInfo.cs create mode 100644 Hardsid.cs create mode 100644 HardsidInterface.cmbx create mode 100644 HardsidInterface.prjx 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 +{ + /// + /// Main Hardsid class + /// + 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 @@ + + + + + + + + + + + + + + + + \ 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- cgit v1.2.3