private static void AddTemporaryLabels() { List <int> addMe = new List <int>(); int pointer = 0; while (pointer < Data.GetROMSize()) { int length = GetLineByteLength(pointer); Data.FlagType flag = Data.GetFlag(pointer); if (unlabeled == FormatUnlabeled.ShowAll) { addMe.Add(Util.ConvertPCtoSNES(pointer)); } else if (unlabeled != FormatUnlabeled.ShowNone && (flag == Data.FlagType.Opcode || flag == Data.FlagType.Pointer16Bit || flag == Data.FlagType.Pointer24Bit || flag == Data.FlagType.Pointer32Bit)) { int ia = Util.GetIntermediateAddressOrPointer(pointer); if (ia >= 0 && Util.ConvertSNEStoPC(ia) >= 0) { addMe.Add(ia); } } pointer += length; } // TODO +/- labels for (int i = 0; i < addMe.Count; i++) { Data.AddLabel(addMe[i], Util.GetDefaultLabel(addMe[i]), false); } }
private void table_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e) { int row = e.RowIndex + viewOffset; if (row >= Data.GetROMSize()) { return; } switch (e.ColumnIndex) { case 0: e.Value = Data.GetLabel(Util.ConvertPCtoSNES(row)); break; case 1: e.Value = Util.NumberToBaseString(Util.ConvertPCtoSNES(row), Util.NumberBase.Hexadecimal, 6); break; case 2: e.Value = (char)Data.GetROMByte(row); break; case 3: e.Value = Util.NumberToBaseString(Data.GetROMByte(row), DisplayBase); break; case 4: e.Value = Util.PointToString(Data.GetInOutPoint(row)); break; case 5: int len = Manager.GetInstructionLength(row); if (row + len <= Data.GetROMSize()) { e.Value = Util.GetInstruction(row); } else { e.Value = ""; } break; case 6: int ia = Util.GetIntermediateAddressOrPointer(row); if (ia >= 0) { e.Value = Util.NumberToBaseString(ia, Util.NumberBase.Hexadecimal, 6); } else { e.Value = ""; } break; case 7: e.Value = Util.TypeToString(Data.GetFlag(row)); break; case 8: e.Value = Util.NumberToBaseString(Data.GetDataBank(row), Util.NumberBase.Hexadecimal, 2); break; case 9: e.Value = Util.NumberToBaseString(Data.GetDirectPage(row), Util.NumberBase.Hexadecimal, 4); break; case 10: e.Value = Util.BoolToSize(Data.GetMFlag(row)); break; case 11: e.Value = Util.BoolToSize(Data.GetXFlag(row)); break; case 12: e.Value = Data.GetComment(Util.ConvertPCtoSNES(row)); break; } }
private void GoToIntermediateAddress(int offset) { int ia = Util.GetIntermediateAddressOrPointer(offset); if (ia >= 0) { int pc = Util.ConvertSNEStoPC(ia); if (pc >= 0) { SelectOffset(pc, 1); } } }
// length forced to 6 private static string GetIntermediateAddress(int offset, int length) { int ia = Util.GetIntermediateAddressOrPointer(offset); return(ia >= 0 ? Util.NumberToBaseString(ia, Util.NumberBase.Hexadecimal, 6) : " "); }