Example #1
0
        /// -------------------------------------------------------------------------------------------------
        /// <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);
        }
Example #2
0
        // -------------------------------------------------------------------------------------------------
        // 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();
        }
Example #3
0
        // -------------------------------------------------------------------------------------------------
        // 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);
        }
Example #4
0
        /// -------------------------------------------------------------------------------------------------
        /// <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);
        }
Example #5
0
 public BreakpointDisplay()
 {
     nextAddress = new NextAddress(0, 0);
 }