From b72cfed09a06d9229e2d7bf2c1eb6c43bb7250cd Mon Sep 17 00:00:00 2001 From: damdoum Date: Fri, 5 Jan 2007 13:39:45 +0000 Subject: [PATCH] dtools : io regs working now --- .../src/gtk-glade/dTools/callbacks_1_ioregs.c | 59 ++++++--- .../src/gtk-glade/dTools/callbacks_dtools.h | 1 + .../src/gtk-glade/glade/DeSmuMe_Dtools.glade | 123 ++++++++++-------- desmume/src/gtk-glade/globals.h | 1 + 4 files changed, 116 insertions(+), 68 deletions(-) diff --git a/desmume/src/gtk-glade/dTools/callbacks_1_ioregs.c b/desmume/src/gtk-glade/dTools/callbacks_1_ioregs.c index 95d02017f..654f9182a 100755 --- a/desmume/src/gtk-glade/dTools/callbacks_1_ioregs.c +++ b/desmume/src/gtk-glade/dTools/callbacks_1_ioregs.c @@ -1,25 +1,52 @@ #include "callbacks_dtools.h" /* ***** ***** IO REGISTERS ***** ***** */ +static int cpu=0; +static u32 address; +static BOOL hword; + +static GtkLabel * reg_address; +static GtkEntry * reg_value; + +void display_current_reg() { + char text_address[16]; + char text_value[16]; + char * patt = "0x%08X"; + u32 w = MMU_read32(cpu,address); + + if (hword) { patt = "0x%04X"; w &= 0xFFFF; } + sprintf(text_address, "0x%08X", address); + sprintf(text_value, patt, w); + gtk_label_set_text(reg_address, text_address); + gtk_entry_set_text(reg_value, text_value); +} + +void display_reg(u32 address_, BOOL hword_) { + address = address_; + hword = hword_; + display_current_reg(); +} + + +void on_wtools_1_combo_cpu_changed (GtkComboBox *widget, gpointer user_data) { + /* c == 0 means ARM9 */ + cpu=gtk_combo_box_get_active(widget); + display_current_reg(); +} void on_wtools_1_IOregs_show (GtkWidget *widget, gpointer user_data) { GtkWidget * b = glade_xml_get_widget(xml_tools, "wtools_1_r_ime"); - // do as if we had selected this button + GtkWidget * combo = glade_xml_get_widget(xml_tools, "wtools_1_combo_cpu"); + reg_address = (GtkLabel*)glade_xml_get_widget(xml_tools, "wtools_1_REGADRESS"); + reg_value = (GtkEntry*)glade_xml_get_widget(xml_tools, "wtools_1_REGVALUE"); + // do as if we had selected this button and ARM7 cpu gtk_toggle_button_set_active((GtkToggleButton*)b, TRUE); + gtk_combo_box_set_active((GtkComboBox*)combo, 0); } -/* c == 0 means ARM9 */ -static u32 val_REG_IME(int c) { return MMU.reg_IME[c]; } -static u32 val_REG_IE(int c) { return MMU.reg_IE[c]; } -static u32 val_REG_IF(int c) { return MMU.reg_IF[c]; } -static u32 val_REG_IPCFIFOCNT(int c) { return ((u16 *)(MMU.MMU_MEM[c][0x40]))[0x184>>1]; } -static u32 val_POWER_CR(int c) { return ((u16 *)(MMU.MMU_MEM[c][0x40]))[0x304>>1]; } -static u32 val_REG_SPICNT(int c) { return ((u16 *)(MMU.MMU_MEM[c][0x40]))[0x1C0>>1]; } - -void on_wtools_1_r_ipcfifocnt_toggled (GtkToggleButton *togglebutton, gpointer user_data); -void on_wtools_1_r_spicnt_toggled (GtkToggleButton *togglebutton, gpointer user_data); -void on_wtools_1_r_ime_toggled (GtkToggleButton *togglebutton, gpointer user_data) { printf("hello\n");} -void on_wtools_1_r_ie_toggled (GtkToggleButton *togglebutton, gpointer user_data); -void on_wtools_1_r_if_toggled (GtkToggleButton *togglebutton, gpointer user_data); -void on_wtools_1_r_power_cr_toggled (GtkToggleButton *togglebutton, gpointer user_data); - +void on_wtools_1_r_ipcfifocnt_toggled (GtkToggleButton *togglebutton, gpointer user_data) { display_reg(REG_IPCFIFOCNT,TRUE); } +void on_wtools_1_r_spicnt_toggled (GtkToggleButton *togglebutton, gpointer user_data) { display_reg(REG_SPICNT,TRUE); } +void on_wtools_1_r_ime_toggled (GtkToggleButton *togglebutton, gpointer user_data) { display_reg(REG_IME,TRUE); } +void on_wtools_1_r_ie_toggled (GtkToggleButton *togglebutton, gpointer user_data) { display_reg(REG_IE,FALSE); } +void on_wtools_1_r_if_toggled (GtkToggleButton *togglebutton, gpointer user_data) { display_reg(REG_IF,FALSE); } +void on_wtools_1_r_power_cr_toggled (GtkToggleButton *togglebutton, gpointer user_data) { display_reg(REG_POWCNT1,TRUE); } diff --git a/desmume/src/gtk-glade/dTools/callbacks_dtools.h b/desmume/src/gtk-glade/dTools/callbacks_dtools.h index f46c2d8bf..91f7172b8 100755 --- a/desmume/src/gtk-glade/dTools/callbacks_dtools.h +++ b/desmume/src/gtk-glade/dTools/callbacks_dtools.h @@ -2,6 +2,7 @@ /* ***** ***** IO REGISTERS ***** ***** */ +void on_wtools_1_combo_cpu_changed (GtkComboBox *widget, gpointer user_data); void on_wtools_1_IOregs_show (GtkWidget *widget, gpointer user_data); void on_wtools_1_r_ipcfifocnt_toggled (GtkToggleButton *togglebutton, gpointer user_data); void on_wtools_1_r_spicnt_toggled (GtkToggleButton *togglebutton, gpointer user_data); diff --git a/desmume/src/gtk-glade/glade/DeSmuMe_Dtools.glade b/desmume/src/gtk-glade/glade/DeSmuMe_Dtools.glade index 49ef58728..4659cdc64 100755 --- a/desmume/src/gtk-glade/glade/DeSmuMe_Dtools.glade +++ b/desmume/src/gtk-glade/glade/DeSmuMe_Dtools.glade @@ -57,7 +57,7 @@ True - 2 + 3 2 False 0 @@ -108,57 +108,9 @@ 1 2 - 1 - 2 - - - - - - True - (0xADDRESS) - False - False - GTK_JUSTIFY_LEFT - False - False - 0 - 0.5 - 0 - 0 - PANGO_ELLIPSIZE_NONE - -1 - False - 0 - - - 0 - 1 - 0 - 1 + 2 + 3 fill - - - - - - - True - True - False - True - 0 - (0xVALUE) - True - - False - - - 1 - 2 - 0 - 1 - @@ -293,13 +245,80 @@ + + 0 + 1 + 2 + 3 + fill + fill + + + + + + True + (0xADDRESS) + False + False + GTK_JUSTIFY_LEFT + False + False + 0 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + 0 1 1 2 fill - fill + + + + + + + True + True + False + True + 0 + (0xVALUE) + True + + False + + + 1 + 2 + 1 + 2 + + + + + + + True + cpu : ARM7 +cpu : ARM9 + False + True + + + + 0 + 1 + 0 + 1 + fill diff --git a/desmume/src/gtk-glade/globals.h b/desmume/src/gtk-glade/globals.h index b37157ee6..d7bea592d 100755 --- a/desmume/src/gtk-glade/globals.h +++ b/desmume/src/gtk-glade/globals.h @@ -13,6 +13,7 @@ #include #include "../MMU.h" +#include "../registers.h" #include "../armcpu.h" #include "../NDSSystem.h" #include "../cflash.h"