public static DataTable getRegisterTable(Cpu cpu) { DataTable table = new DataTable(); table.Columns.Add("Register"); table.Columns.Add("Hex Value"); table.Columns.Add("Value"); string[] registers = new[]{ "A", "B", "C", "X", "Y", "Z", "I", "J", }; for (int i = 0; i < registers.Length; i++) { string register = registers[i]; Register reg; Enum.TryParse(register, false, out reg); ushort value = cpu.register[(int) reg]; table.Rows.Add(); table.Rows[i][0] = string.Format("{0}", register); table.Rows[i][1] = string.Format("0x{0:X4}", value); table.Rows[i][2] = string.Format("{0}", value); } table.Rows.Add(); table.Rows[registers.Length][0] = string.Format("{0}", "PC"); table.Rows[registers.Length][1] = string.Format("0x{0:X4}", cpu.PC); table.Rows[registers.Length][2] = string.Format("{0}", cpu.PC); return table; }
public static void updateTables(DataGridView registerTable, DataGridView memoryTable, Cpu cpu, Main comInterface) { registerTable.DataSource = null; registerTable.RowTemplate.Height = 16; registerTable.DataSource = TableFactory.getRegisterTable(cpu); dataGridHelper.showChanged(registerTable); memoryTable.DataSource = null; memoryTable.RowTemplate.Height = 16; memoryTable.DataSource = TableFactory.getMemoryTable(comInterface.Host); int curRow = (int) Math.Floor((double) (cpu.PC/0x10)), curCell = (cpu.PC%0x10) + 1; if (memoryTable.ColumnCount == 0x10 + 1) { memoryTable.CurrentCell = memoryTable.Rows[curRow].Cells[curCell]; memoryTable.ClearSelection(); } memoryTable.Rows[curRow].Cells[curCell].Style.BackColor = Color.Yellow; if (lastCell != null) lastCell.Style = lastRow.DefaultCellStyle; lastRow = memoryTable.Rows[curRow]; lastCell = lastRow.Cells[curCell]; }
public DebuggerForm(Main comInterface) { this.comInterface = comInterface; cpu = new Cpu(comInterface.Host); InitializeComponent(); }