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(); } }
public void OberflaecheAktualisieren() { // Zeile highlighten var a = box_CodeView.SelectionStart; if (programm.befehle.Count > 0 && programm.PCCounter < programm.befehle.Count) { 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 = a; box_CodeView.SelectionLength = 0; // Memory aktualisieren for (int y = 0; y < 16; y++) { for (int x = 0; x < 16; x++) { string nummer = string.Format("{0:X2}", programm.GetRegisterOhneBank((uint)(y * 16 + x))); if (nummer != lvMemory.Items[y].SubItems[x + 1].Text) { lvMemory.Items[y].SubItems[x + 1].Text = nummer; } } } // Spezialregister aktualisieren lvSpecial.Items[0].SubItems[1].Text = string.Format("0x{0:X2}", programm.Register_W); lvSpecial.Items[1].SubItems[1].Text = string.Format("{0,4}", programm.PCCounter); lvSpecial.Items[2].SubItems[1].Text = string.Format("0b{0}", Convert.ToString(programm.GetRegisterOhneBank(PICProgramm.ADDR_STATUS), 2).PadLeft(8, '0')); lvSpecial.Items[3].SubItems[1].Text = string.Format("0b{0}", Convert.ToString(programm.GetRegisterOhneBank(PICProgramm.ADDR_OPTION), 2).PadLeft(8, '0')); lvSpecial.Items[4].SubItems[1].Text = string.Format("0b{0}", Convert.ToString(programm.GetRegisterOhneBank(PICProgramm.ADDR_INTCON), 2).PadLeft(8, '0')); lvSpecial.Items[5].SubItems[1].Text = string.Format("{0}ms", programm.Stepcount * int.Parse(insertTime.Text)); lvSpecial.Items[6].SubItems[1].Text = "0b" + Convert.ToString(programm.Latch_RA, 2).PadLeft(8, '0'); lvSpecial.Items[7].SubItems[1].Text = "0b" + Convert.ToString(programm.Latch_RB, 2).PadLeft(8, '0'); lvSpecial.Items[8].SubItems[1].Text = programm.GetRegisterOhneBank(PICProgramm.ADDR_STATUS, PICProgramm.STATUS_BIT_C) ? "1" : "0"; lvSpecial.Items[9].SubItems[1].Text = programm.GetRegisterOhneBank(PICProgramm.ADDR_STATUS, PICProgramm.STATUS_BIT_DC) ? "1" : "0"; lvSpecial.Items[10].SubItems[1].Text = programm.GetRegisterOhneBank(PICProgramm.ADDR_STATUS, PICProgramm.STATUS_BIT_Z) ? "1" : "0"; lvSpecial.Items[11].SubItems[1].Text = string.Format("{0:0.000}ms", programm.WatchDog.time * 1000); lbStack.Items.Clear(); foreach (var u in programm.Stack) { lbStack.Items.Add(u.ToString()); } // RA + RB aktualisieren btn_RA_0.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_A, 0) ? 1 : 0).ToString(); btn_RA_1.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_A, 1) ? 1 : 0).ToString(); btn_RA_2.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_A, 2) ? 1 : 0).ToString(); btn_RA_3.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_A, 3) ? 1 : 0).ToString(); btn_RA_4.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_A, 4) ? 1 : 0).ToString(); btn_RA_5.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_A, 5) ? 1 : 0).ToString(); btn_RA_6.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_A, 6) ? 1 : 0).ToString(); btn_RA_7.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_A, 7) ? 1 : 0).ToString(); btn_RA_Tris_0.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_A, 0) ? "i" : "o"); btn_RA_Tris_1.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_A, 1) ? "i" : "o"); btn_RA_Tris_2.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_A, 2) ? "i" : "o"); btn_RA_Tris_3.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_A, 3) ? "i" : "o"); btn_RA_Tris_4.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_A, 4) ? "i" : "o"); btn_RA_Tris_5.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_A, 5) ? "i" : "o"); btn_RA_Tris_6.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_A, 6) ? "i" : "o"); btn_RA_Tris_7.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_A, 7) ? "i" : "o"); btn_RB_0.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_B, 0) ? 1 : 0).ToString(); btn_RB_1.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_B, 1) ? 1 : 0).ToString(); btn_RB_2.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_B, 2) ? 1 : 0).ToString(); btn_RB_3.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_B, 3) ? 1 : 0).ToString(); btn_RB_4.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_B, 4) ? 1 : 0).ToString(); btn_RB_5.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_B, 5) ? 1 : 0).ToString(); btn_RB_6.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_B, 6) ? 1 : 0).ToString(); btn_RB_7.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_PORT_B, 7) ? 1 : 0).ToString(); btn_RB_Tris_0.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_B, 0) ? "i" : "o"); btn_RB_Tris_1.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_B, 1) ? "i" : "o"); btn_RB_Tris_2.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_B, 2) ? "i" : "o"); btn_RB_Tris_3.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_B, 3) ? "i" : "o"); btn_RB_Tris_4.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_B, 4) ? "i" : "o"); btn_RB_Tris_5.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_B, 5) ? "i" : "o"); btn_RB_Tris_6.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_B, 6) ? "i" : "o"); btn_RB_Tris_7.Text = (programm.GetRegisterOhneBank(PICProgramm.ADDR_TRIS_B, 7) ? "i" : "o"); if (btnWD1.Font.Bold != programm.WatchDog.Aktiviert) { btnWD1.Font = new Font(btnWD1.Font, programm.WatchDog.Aktiviert ? FontStyle.Bold : FontStyle.Regular); } if (btnWD0.Font.Bold == programm.WatchDog.Aktiviert) { btnWD0.Font = new Font(btnWD0.Font, programm.WatchDog.Aktiviert ? FontStyle.Regular : FontStyle.Bold); } if (btnClockStart.Font.Bold != programm.TaktgeberAktiviert) { btnClockStart.Font = new Font(btnClockStart.Font, programm.TaktgeberAktiviert ? FontStyle.Bold : FontStyle.Regular); } }