16 on_new_file1_activate (GtkMenuItem *menuitem,
24 on_open1_activate (GtkMenuItem *menuitem,
32 on_save1_activate (GtkMenuItem *menuitem,
40 on_save_as1_activate (GtkMenuItem *menuitem,
48 on_exit1_activate (GtkMenuItem *menuitem,
56 on_preferences1_activate (GtkMenuItem *menuitem,
64 on_about1_activate (GtkMenuItem *menuitem,
67 GtkWidget *about = create_about_win();
68 gtk_widget_show(about);
73 on_load_btn_clicked (GtkButton *button,
81 on_reset_btn_clicked (GtkButton *button,
91 on_stop_btn_clicked (GtkButton *button,
94 if( sh4_isrunning() ) {
101 on_step_btn_clicked (GtkButton *button,
104 sh4_execute_instruction();
109 void run( debug_info_t data, uint32_t target ) {
110 if( ! sh4_isrunning() ) {
115 sh4_runto(target, 1000000);
118 while( gtk_events_pending() )
119 gtk_main_iteration();
121 } while( sh4_isrunning() );
126 on_run_btn_clicked (GtkButton *button,
129 debug_info_t data = get_debug_info(GTK_WIDGET(button));
135 on_runto_btn_clicked (GtkButton *button,
138 debug_info_t data = get_debug_info(GTK_WIDGET(button));
139 if( selected_pc == -1 )
140 WARN( "No address selected, so can't run to it", NULL );
142 INFO( "Running until %08X...", selected_pc );
143 run( data, selected_pc );
149 on_break_btn_clicked (GtkButton *button,
157 on_debug_win_delete_event (GtkWidget *widget,
167 on_disasm_list_select_row (GtkCList *clist,
173 debug_info_t data = get_debug_info(GTK_WIDGET(clist));
174 selected_pc = row_to_address(data, row);
179 on_disasm_list_unselect_row (GtkCList *clist,
185 debug_info_t data = get_debug_info(GTK_WIDGET(clist));
186 int pc = row_to_address(data,row);
187 if( selected_pc == pc ) selected_pc = -1;
192 on_mem_mapped_regs1_activate (GtkMenuItem *menuitem,
200 on_mmr_win_delete_event (GtkWidget *widget,
210 on_mmr_close_clicked (GtkButton *button,
218 on_mode_field_changed (GtkEditable *editable,
221 gchar *text = gtk_entry_get_text( GTK_ENTRY(editable) );
222 debug_info_t data = get_debug_info( GTK_WIDGET(editable) );
223 set_disassembly_cpu( data, text );
228 on_page_locked_btn_toggled (GtkToggleButton *togglebutton,
236 on_page_field_key_press_event (GtkWidget *widget,
240 if( event->keyval == GDK_Return || event->keyval == GDK_Linefeed ) {
241 debug_info_t data = get_debug_info(widget);
242 gchar *text = gtk_entry_get_text( GTK_ENTRY(widget) );
244 unsigned int val = strtoul( text, &endptr, 16 );
245 if( text == endptr ) { /* invalid input */
247 sprintf( buf, "%08X", row_to_address(data,0) );
248 gtk_entry_set_text( GTK_ENTRY(widget), buf );
250 set_disassembly_region(data, val);
258 on_output_list_select_row (GtkCList *clist,
264 if( event->type == GDK_2BUTTON_PRESS && event->button.button == 1 ) {
266 gtk_clist_get_text( clist, row, 1, &val );
267 if( val[0] != '\0' ) {
268 int addr = strtoul( val, NULL, 16 );
269 debug_info_t data = get_debug_info( GTK_WIDGET(clist) );
270 jump_to_disassembly( data, addr, TRUE );
277 on_jump_pc_btn_clicked (GtkButton *button,
280 debug_info_t data = get_debug_info( GTK_WIDGET(button) );
281 jump_to_pc( data, TRUE );
286 on_button_add_watch_clicked (GtkButton *button,
294 on_button_clear_all_clicked (GtkButton *button,
302 on_button_close_clicked (GtkButton *button,
310 on_view_memory_activate (GtkMenuItem *menuitem,
.