PCE - implement IDebuggable.SetCpuRegister, and add flags to IDebuggable.GetCpuFlagsAndRegisters(), move logic to HuC6280
This commit is contained in:
parent
ae872d5c4f
commit
0b388d669d
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using BizHawk.Common;
|
||||
using BizHawk.Emulation.Common;
|
||||
|
||||
|
@ -96,6 +97,104 @@ namespace BizHawk.Emulation.Cores.Components.H6280
|
|||
ser.EndSection();
|
||||
}
|
||||
|
||||
public IDictionary<string, RegisterValue> GetCpuFlagsAndRegisters()
|
||||
{
|
||||
return new Dictionary<string, RegisterValue>
|
||||
{
|
||||
["A"] = A,
|
||||
["X"] = X,
|
||||
["Y"] = Y,
|
||||
["PC"] = PC,
|
||||
["S"] = S,
|
||||
["MPR-0"] = MPR[0],
|
||||
["MPR-1"] = MPR[1],
|
||||
["MPR-2"] = MPR[2],
|
||||
["MPR-3"] = MPR[3],
|
||||
["MPR-4"] = MPR[4],
|
||||
["MPR-5"] = MPR[5],
|
||||
["MPR-6"] = MPR[6],
|
||||
["MPR-7"] = MPR[7],
|
||||
["Flag C"] = FlagC,
|
||||
["Flag Z"] = FlagZ,
|
||||
["Flag I"] = FlagI,
|
||||
["Flag D"] = FlagD,
|
||||
["Flag B"] = FlagB,
|
||||
["Flag T"] = FlagT,
|
||||
["Flag V"] = FlagV,
|
||||
["Flag N"] = FlagN
|
||||
};
|
||||
}
|
||||
|
||||
public void SetCpuRegister(string register, int value)
|
||||
{
|
||||
switch (register)
|
||||
{
|
||||
default:
|
||||
throw new InvalidOperationException();
|
||||
|
||||
case "A":
|
||||
A = (byte)value;
|
||||
break;
|
||||
case "X":
|
||||
X = (byte)value;
|
||||
break;
|
||||
case "Y":
|
||||
Y = (byte)value;
|
||||
break;
|
||||
case "PC":
|
||||
PC = (byte)value;
|
||||
break;
|
||||
case "MPR-0":
|
||||
MPR[0] = (byte)value;
|
||||
break;
|
||||
case "MPR-1":
|
||||
MPR[1] = (byte)value;
|
||||
break;
|
||||
case "MPR-2":
|
||||
MPR[2] = (byte)value;
|
||||
break;
|
||||
case "MPR-3":
|
||||
MPR[3] = (byte)value;
|
||||
break;
|
||||
case "MPR-4":
|
||||
MPR[4] = (byte)value;
|
||||
break;
|
||||
case "MPR-5":
|
||||
MPR[5] = (byte)value;
|
||||
break;
|
||||
case "MPR-6":
|
||||
MPR[6] = (byte)value;
|
||||
break;
|
||||
case "MPR-7":
|
||||
MPR[7] = (byte)value;
|
||||
break;
|
||||
case "FlagC":
|
||||
FlagC = value > 0;
|
||||
break;
|
||||
case "FlagZ":
|
||||
FlagZ = value > 0;
|
||||
break;
|
||||
case "FlagI":
|
||||
FlagI = value > 0;
|
||||
break;
|
||||
case "FlagD":
|
||||
FlagD = value > 0;
|
||||
break;
|
||||
case "FlagB":
|
||||
FlagB = value > 0;
|
||||
break;
|
||||
case "FlagT":
|
||||
FlagT = value > 0;
|
||||
break;
|
||||
case "FlagV":
|
||||
FlagV = value > 0;
|
||||
break;
|
||||
case "FlagN":
|
||||
FlagN = value > 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// ==== Interrupts ====
|
||||
|
||||
private const ushort ResetVector = 0xFFFE;
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using BizHawk.Emulation.Common;
|
||||
|
||||
namespace BizHawk.Emulation.Cores.PCEngine
|
||||
|
@ -8,30 +7,10 @@ namespace BizHawk.Emulation.Cores.PCEngine
|
|||
public sealed partial class PCEngine : IDebuggable
|
||||
{
|
||||
public IDictionary<string, RegisterValue> GetCpuFlagsAndRegisters()
|
||||
{
|
||||
return new Dictionary<string, RegisterValue>
|
||||
{
|
||||
["A"] = Cpu.A,
|
||||
["X"] = Cpu.X,
|
||||
["Y"] = Cpu.Y,
|
||||
["PC"] = Cpu.PC,
|
||||
["S"] = Cpu.S,
|
||||
["MPR-0"] = Cpu.MPR[0],
|
||||
["MPR-1"] = Cpu.MPR[1],
|
||||
["MPR-2"] = Cpu.MPR[2],
|
||||
["MPR-3"] = Cpu.MPR[3],
|
||||
["MPR-4"] = Cpu.MPR[4],
|
||||
["MPR-5"] = Cpu.MPR[5],
|
||||
["MPR-6"] = Cpu.MPR[6],
|
||||
["MPR-7"] = Cpu.MPR[7]
|
||||
};
|
||||
}
|
||||
=> Cpu.GetCpuFlagsAndRegisters();
|
||||
|
||||
[FeatureNotImplemented]
|
||||
public void SetCpuRegister(string register, int value)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
=> Cpu.SetCpuRegister(register, value);
|
||||
|
||||
public IMemoryCallbackSystem MemoryCallbacks { get; } = new MemoryCallbackSystem(new[] { "System Bus" });
|
||||
|
||||
|
|
Loading…
Reference in New Issue