12 #include "dreamcast.h"
17 on_new_file1_activate (GtkMenuItem *menuitem,
25 on_open1_activate (GtkMenuItem *menuitem,
28 open_file_dialog( "Open...", open_file, NULL, NULL );
33 on_save1_activate (GtkMenuItem *menuitem,
41 on_save_as1_activate (GtkMenuItem *menuitem,
49 on_exit1_activate (GtkMenuItem *menuitem,
57 on_preferences1_activate (GtkMenuItem *menuitem,
65 on_about1_activate (GtkMenuItem *menuitem,
68 GtkWidget *about = create_about_win();
69 gtk_widget_show(about);
74 on_load_btn_clicked (GtkButton *button,
77 open_file_dialog( "Open...", open_file, NULL, NULL );
82 on_reset_btn_clicked (GtkButton *button,
92 on_stop_btn_clicked (GtkButton *button,
95 if( sh4_isrunning() ) {
102 on_step_btn_clicked (GtkButton *button,
105 sh4_execute_instruction();
110 void run( debug_info_t data, uint32_t target ) {
111 if( ! sh4_isrunning() ) {
116 sh4_runto(target, 1000000);
119 while( gtk_events_pending() )
120 gtk_main_iteration();
122 } while( sh4_isrunning() );
127 on_run_btn_clicked (GtkButton *button,
130 debug_info_t data = get_debug_info(GTK_WIDGET(button));
136 on_runto_btn_clicked (GtkButton *button,
139 debug_info_t data = get_debug_info(GTK_WIDGET(button));
140 if( selected_pc == -1 )
141 WARN( "No address selected, so can't run to it", NULL );
143 INFO( "Running until %08X...", selected_pc );
144 run( data, selected_pc );
150 on_break_btn_clicked (GtkButton *button,
158 on_debug_win_delete_event (GtkWidget *widget,
168 on_disasm_list_select_row (GtkCList *clist,
174 debug_info_t data = get_debug_info(GTK_WIDGET(clist));
175 selected_pc = row_to_address(data, row);
180 on_disasm_list_unselect_row (GtkCList *clist,
186 debug_info_t data = get_debug_info(GTK_WIDGET(clist));
187 int pc = row_to_address(data,row);
188 if( selected_pc == pc ) selected_pc = -1;
193 on_mem_mapped_regs1_activate (GtkMenuItem *menuitem,
201 on_mmr_win_delete_event (GtkWidget *widget,
211 on_mmr_close_clicked (GtkButton *button,
219 on_mode_field_changed (GtkEditable *editable,
222 const gchar *text = gtk_entry_get_text( GTK_ENTRY(editable) );
223 debug_info_t data = get_debug_info( GTK_WIDGET(editable) );
224 set_disassembly_cpu( data, text );
229 on_page_locked_btn_toggled (GtkToggleButton *togglebutton,
237 on_page_field_key_press_event (GtkWidget *widget,
241 if( event->keyval == GDK_Return || event->keyval == GDK_Linefeed ) {
242 debug_info_t data = get_debug_info(widget);
243 const gchar *text = gtk_entry_get_text( GTK_ENTRY(widget) );
245 unsigned int val = strtoul( text, &endptr, 16 );
246 if( text == endptr ) { /* invalid input */
248 sprintf( buf, "%08X", row_to_address(data,0) );
249 gtk_entry_set_text( GTK_ENTRY(widget), buf );
251 set_disassembly_region(data, val);
259 on_output_list_select_row (GtkCList *clist,
265 if( event->type == GDK_2BUTTON_PRESS && event->button.button == 1 ) {
267 gtk_clist_get_text( clist, row, 1, &val );
268 if( val[0] != '\0' ) {
269 int addr = strtoul( val, NULL, 16 );
270 debug_info_t data = get_debug_info( GTK_WIDGET(clist) );
271 jump_to_disassembly( data, addr, TRUE );
278 on_jump_pc_btn_clicked (GtkButton *button,
281 debug_info_t data = get_debug_info( GTK_WIDGET(button) );
282 jump_to_pc( data, TRUE );
287 on_button_add_watch_clicked (GtkButton *button,
295 on_button_clear_all_clicked (GtkButton *button,
303 on_button_close_clicked (GtkButton *button,
311 on_view_memory_activate (GtkMenuItem *menuitem,
319 on_loadstate_button_clicked (GtkToolButton *toolbutton,
322 open_file_dialog( "Load state...", dreamcast_load_state, "*.dst", "DreamOn Save State (*.dst)" );
327 on_savestate_button_clicked (GtkToolButton *toolbutton,
330 save_file_dialog( "Save state...", dreamcast_save_state, "*.dst", "DreamOn Save State (*.dst)" );
.