Breakpoints
This commit is contained in:
@@ -100,6 +100,15 @@ namespace PIC_Simulator
|
||||
box_CodeView.SelectionBackColor = Color.SteelBlue;
|
||||
}
|
||||
}
|
||||
void HighlightBreakpoint(int line)
|
||||
{
|
||||
int i1 = box_CodeView.GetFirstCharIndexFromLine(line);
|
||||
int i2 = box_CodeView.GetFirstCharIndexFromLine(line) + 4;
|
||||
|
||||
box_CodeView.SelectionStart = i1;
|
||||
box_CodeView.SelectionLength = i2 - i1;
|
||||
box_CodeView.SelectionBackColor = Color.Red;
|
||||
}
|
||||
|
||||
private void cmd_reset_Click(object sender, EventArgs e)
|
||||
{
|
||||
@@ -132,6 +141,8 @@ namespace PIC_Simulator
|
||||
|
||||
if (finished) { quartztimer.Stop(); MessageBox.Show("Finished"); return; }
|
||||
|
||||
if (programm.Breakpoints.Contains(programm.befehle[programm.PCCounter].labelnummer)) quartztimer.Stop();
|
||||
|
||||
OberflaecheAktualisieren();
|
||||
}
|
||||
|
||||
@@ -144,6 +155,18 @@ namespace PIC_Simulator
|
||||
Highlight(programm.befehle[programm.PCCounter].zeilennummer);
|
||||
}
|
||||
|
||||
foreach (var bp in programm.Breakpoints)
|
||||
{
|
||||
PICBefehl b = programm.befehle.FirstOrDefault(i => i.labelnummer == bp);
|
||||
if (b != null)
|
||||
{
|
||||
HighlightBreakpoint(b.zeilennummer);
|
||||
}
|
||||
}
|
||||
|
||||
box_CodeView.SelectionStart = 0;
|
||||
box_CodeView.SelectionLength = 0;
|
||||
|
||||
// Memory aktualisieren
|
||||
|
||||
for (int y = 0; y < 16; y++)
|
||||
@@ -165,6 +188,23 @@ namespace PIC_Simulator
|
||||
lbStack.Items.Clear();
|
||||
foreach (var u in programm.Stack) lbStack.Items.Add(u.ToString());
|
||||
}
|
||||
|
||||
private void box_CodeView_DoubleClick(object sender, EventArgs e)
|
||||
{
|
||||
int line = box_CodeView.GetLineFromCharIndex(box_CodeView.SelectionStart);
|
||||
|
||||
PICBefehl b = programm.befehle.FirstOrDefault(i => i.zeilennummer == line);
|
||||
|
||||
if (b != null)
|
||||
{
|
||||
if (programm.Breakpoints.Contains(b.labelnummer))
|
||||
programm.Breakpoints.Remove(b.labelnummer);
|
||||
else
|
||||
programm.Breakpoints.Add(b.labelnummer);
|
||||
|
||||
OberflaecheAktualisieren();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user