public static string GetInstruction(int offset) { switch (Data.GetArchitechture(offset)) { case Data.Architechture.CPU65C816: return(CPU65C816.GetInstruction(offset)); case Data.Architechture.APUSPC700: return(""); case Data.Architechture.GPUSuperFX: return(""); } return(""); }
public static int GetEffectiveAddress(int offset) { switch (Data.GetArchitechture(offset)) { case Data.Architechture.CPU65C816: return(CPU65C816.GetEffectiveAddress(offset)); case Data.Architechture.APUSPC700: return(-1); case Data.Architechture.GPUSuperFX: return(-1); } return(-1); }
public static int GetIntermediateAddress(int offset, bool resolve = false) { // FIX ME: log and generation of dp opcodes. search references switch (Data.GetArchitechture(offset)) { case Data.Architechture.CPU65C816: return(CPU65C816.GetIntermediateAddress(offset, resolve)); case Data.Architechture.APUSPC700: return(-1); case Data.Architechture.GPUSuperFX: return(-1); } return(-1); }
public static int Step(int offset, bool branch, bool force, int prevOffset) { Project.unsavedChanges = true; switch (Data.GetArchitechture(offset)) { case Data.Architechture.CPU65C816: return(CPU65C816.Step(offset, branch, force, prevOffset)); case Data.Architechture.APUSPC700: return(offset); case Data.Architechture.GPUSuperFX: return(offset); } return(offset); }
public static void RescanInOutPoints() { for (int i = 0; i < Data.GetROMSize(); i++) { Data.ClearInOutPoint(i); } for (int i = 0; i < Data.GetROMSize(); i++) { if (Data.GetFlag(i) == Data.FlagType.Opcode) { switch (Data.GetArchitechture(i)) { case Data.Architechture.CPU65C816: CPU65C816.MarkInOutPoints(i); break; case Data.Architechture.APUSPC700: break; case Data.Architechture.GPUSuperFX: break; } } } Project.unsavedChanges = true; }
private static int GetLineByteLength(int offset) { int max = 1, step = 1; int size = Data.GetROMSize(); switch (Data.GetFlag(offset)) { case Data.FlagType.Opcode: switch (Data.GetArchitechture(offset)) { case Data.Architechture.CPU65C816: return(CPU65C816.GetInstructionLength(offset)); case Data.Architechture.APUSPC700: return(1); case Data.Architechture.GPUSuperFX: return(1); } return(1); case Data.FlagType.Unreached: case Data.FlagType.Operand: case Data.FlagType.Data8Bit: case Data.FlagType.Graphics: case Data.FlagType.Music: case Data.FlagType.Empty: max = dataPerLine; break; case Data.FlagType.Text: max = 21; break; case Data.FlagType.Data16Bit: step = 2; max = dataPerLine; break; case Data.FlagType.Data24Bit: step = 3; max = dataPerLine; break; case Data.FlagType.Data32Bit: step = 4; max = dataPerLine; break; case Data.FlagType.Pointer16Bit: step = 2; max = 2; break; case Data.FlagType.Pointer24Bit: step = 3; max = 3; break; case Data.FlagType.Pointer32Bit: step = 4; max = 4; break; } int min = step, myBank = offset / bankSize; while ( min < max && offset + min < size && Data.GetFlag(offset + min) == Data.GetFlag(offset) && Data.GetLabel(Util.ConvertPCtoSNES(offset + min)) == "" && (offset + min) / bankSize == myBank ) { min += step; } return(min); }