diff --git a/DotN64/DotN64.csproj b/DotN64/DotN64.csproj
index acf1b10..0dbdc43 100644
--- a/DotN64/DotN64.csproj
+++ b/DotN64/DotN64.csproj
@@ -104,6 +104,7 @@
+
diff --git a/DotN64/RCP/MI/RealityCoprocessor.MIPSInterface.InterruptPins.cs b/DotN64/RCP/MI/RealityCoprocessor.MIPSInterface.InterruptPins.cs
new file mode 100644
index 0000000..b1e181f
--- /dev/null
+++ b/DotN64/RCP/MI/RealityCoprocessor.MIPSInterface.InterruptPins.cs
@@ -0,0 +1,23 @@
+namespace DotN64.RCP
+{
+ public partial class RealityCoprocessor
+ {
+ public partial class MIPSInterface
+ {
+ [System.Flags]
+ public enum InterruptPins : byte
+ {
+ /// RCP interrupt asserted.
+ RCP = 1 << 0,
+ /// A peripherial has generated an interrupt.
+ Cartridge = 1 << 1,
+ /// User has pushed reset button on console.
+ PreNMI = 1 << 2,
+ /// Indy has read the value in the RDB port.
+ RDBRead = 1 << 3,
+ /// Indy has written a value to the RDB port.
+ RDBWrite = 1 << 4
+ }
+ }
+ }
+}
diff --git a/DotN64/RCP/MI/RealityCoprocessor.MIPSInterface.cs b/DotN64/RCP/MI/RealityCoprocessor.MIPSInterface.cs
index d39dca6..b6aa708 100644
--- a/DotN64/RCP/MI/RealityCoprocessor.MIPSInterface.cs
+++ b/DotN64/RCP/MI/RealityCoprocessor.MIPSInterface.cs
@@ -8,10 +8,6 @@ namespace DotN64.RCP
{
public partial class MIPSInterface : Interface
{
- #region Fields
- private const byte InterruptPin = 1 << 0;
- #endregion
-
#region Properties
private VR4300 CPU => rcp.nintendo64.CPU;
@@ -113,9 +109,9 @@ namespace DotN64.RCP
private void UpdateInterrupt()
{
if ((Interrupt & InterruptMask) != 0)
- CPU.Int |= InterruptPin;
+ CPU.Int |= (byte)InterruptPins.RCP;
else
- CPU.Int &= unchecked((byte)~InterruptPin);
+ CPU.Int &= (byte)~InterruptPins.RCP;
}
#endregion
}