/// ------------------------------------------------------------------------------------------------- /// <summary> Gets closest valid code address. </summary> /// /// <remarks> 18/09/2018. </remarks> /// /// <param name="addr"> The address. </param> /// <param name="bank"> The bank. </param> /// /// <returns> The closest valid code address. </returns> /// ------------------------------------------------------------------------------------------------- private LineData _GetCloestValidCodeAddress(int addr, int bank) { int longaddr = NextAddress.MakeLongAddress(bank, addr); LineData best = null; int bestdiff = int.MaxValue; if (lines.Count <= 0) { return(null); } for (int i = 0; i < lines.Count - 1; i++) { int diff = Math.Abs(lines[i].nextAddress.GetLongAddress() - longaddr); //found exact if (diff == 0) { return(lines[i]); } if (diff < bestdiff && diff < 4) { bestdiff = diff; best = lines[i]; } } return(best); }
// ------------------------------------------------------------------------------------------------- // Context clear breakpoint // // \param sender // Source of the event. // \param e // Event information. // ------------------------------------------------------------------------------------------------- private void ContextClearBreakpoint(object sender, EventArgs e) { CustomMenuItem customMenuItem = sender as CustomMenuItem; int longaddr = (int)customMenuItem.value; NextAddress na = new NextAddress(longaddr); Program.serialport.RemoveBreakpoint(null, na.GetAddr(), na.GetBank()); MainForm.myBreakpoints.RequestUpdate(); }
// ------------------------------------------------------------------------------------------------- // Gets line datafrom address // // \param na The na. // // \return The line datafrom address. // ------------------------------------------------------------------------------------------------- public static LineData GetLineDatafromAddr(NextAddress na) { foreach (TraceFile t in traceFiles) { LineData ld = t.DoesFileHaveAddress(na.GetAddr(), na.GetBank()); if (ld != null) { return(ld); } } return(null); }
/// ------------------------------------------------------------------------------------------------- /// <summary> Does file have address. </summary> /// /// <remarks> 05/09/2018. </remarks> /// /// <param name="addr"> The address. </param> /// /// <returns> A LineData. </returns> /// ------------------------------------------------------------------------------------------------- public LineData DoesFileHaveAddress(int addr, int bank) { int longaddr = NextAddress.MakeLongAddress(bank, addr); if (lines.Count <= 0) { return(null); } for (int i = 0; i < lines.Count - 1; i++) { if (lines[i].nextAddress.GetLongAddress() == longaddr) // && lines[ i+1 ].address > addr) { return(lines[i]); } } return(null); }
public BreakpointDisplay() { nextAddress = new NextAddress(0, 0); }