BizHawk/BizHawk.Emulation/CPUs/Native68000/Musashi.cs

73 lines
3.4 KiB
C#
Raw Normal View History

using System;
using System.Runtime.InteropServices;
namespace Native68000
{
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
delegate int VdpCallback(int i);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
delegate uint ReadCallback(uint a);
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
delegate void WriteCallback(uint a, uint v);
public class Musashi
{
[DllImport("MusashiDLL.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void RegisterVdpCallback(IntPtr callback);
[DllImport("MusashiDLL.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void RegisterRead8(IntPtr callback);
[DllImport("MusashiDLL.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void RegisterRead16(IntPtr callback);
[DllImport("MusashiDLL.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void RegisterRead32(IntPtr callback);
[DllImport("MusashiDLL.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void RegisterWrite8(IntPtr callback);
[DllImport("MusashiDLL.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void RegisterWrite16(IntPtr callback);
[DllImport("MusashiDLL.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void RegisterWrite32(IntPtr callback);
[DllImport("MusashiDLL.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void Init();
[DllImport("MusashiDLL.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void Reset();
[DllImport("MusashiDLL.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void SetIRQ(int level);
[DllImport("MusashiDLL.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int Execute(int cycles);
[DllImport("MusashiDLL.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int QueryCpuState(int regcode);
public static int D0 { get { return QueryCpuState(0); } }
public static int D1 { get { return QueryCpuState(1); } }
public static int D2 { get { return QueryCpuState(2); } }
public static int D3 { get { return QueryCpuState(3); } }
public static int D4 { get { return QueryCpuState(4); } }
public static int D5 { get { return QueryCpuState(5); } }
public static int D6 { get { return QueryCpuState(6); } }
public static int D7 { get { return QueryCpuState(7); } }
public static int A0 { get { return QueryCpuState(8); } }
public static int A1 { get { return QueryCpuState(9); } }
public static int A2 { get { return QueryCpuState(10); } }
public static int A3 { get { return QueryCpuState(11); } }
public static int A4 { get { return QueryCpuState(12); } }
public static int A5 { get { return QueryCpuState(13); } }
public static int A6 { get { return QueryCpuState(14); } }
public static int A7 { get { return QueryCpuState(15); } }
public static int PC { get { return QueryCpuState(16); } }
public static int SR { get { return QueryCpuState(17); } }
public static int SP { get { return QueryCpuState(18); } }
}
}