private static void AddTemporaryLabels() { List <int> addMe = new List <int>(); int pointer = 0; while (pointer < Data.GetROMSize()) { int length = GetLineByteLength(pointer); if (unlabeled == FormatUnlabeled.ShowAll) { addMe.Add(pointer); } else if (unlabeled != FormatUnlabeled.ShowNone) { int ea = Util.GetEffectiveAddressOrPointer(pointer); int pc = Util.ConvertSNEStoPC(ea); if (pc >= 0) { addMe.Add(pc); } } 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(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: e.Value = Util.GetInstruction(row); break; case 6: int ea = Util.GetEffectiveAddressOrPointer(row); if (ea >= 0) { e.Value = Util.NumberToBaseString(ea, 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(row); break; } }
// length forced to 6 private static string GetEffectiveAddress(int offset, int length) { int ea = Util.GetEffectiveAddressOrPointer(offset); return(ea >= 0 ? Util.NumberToBaseString(ea, Util.NumberBase.Hexadecimal, 6) : " "); }