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; } }
// trim to length private static string GetCode(int offset, int length) { int bytes = GetLineByteLength(offset); string code = ""; switch (Data.GetFlag(offset)) { case Data.FlagType.Opcode: code = Util.GetInstruction(offset); break; case Data.FlagType.Unreached: case Data.FlagType.Operand: case Data.FlagType.Data8Bit: case Data.FlagType.Graphics: case Data.FlagType.Music: case Data.FlagType.Empty: code = Util.GetFormattedBytes(offset, 1, bytes); break; case Data.FlagType.Data16Bit: code = Util.GetFormattedBytes(offset, 2, bytes); break; case Data.FlagType.Data24Bit: code = Util.GetFormattedBytes(offset, 3, bytes); break; case Data.FlagType.Data32Bit: code = Util.GetFormattedBytes(offset, 4, bytes); break; case Data.FlagType.Pointer16Bit: code = Util.GetPointer(offset, 2); break; case Data.FlagType.Pointer24Bit: code = Util.GetPointer(offset, 3); break; case Data.FlagType.Pointer32Bit: code = Util.GetPointer(offset, 4); break; case Data.FlagType.Text: code = Util.GetFormattedText(offset, bytes); break; } return(string.Format("{0," + (length * -1) + "}", code)); }