+/* CPU reset and Gtk UI update */
+static void
+emugtk_Reset(void)
+{
+ cpu8051_Reset();
+ regwin_Show();
+ pgmwin_Disasm();
+ memwin_DumpD("00");
+}
+
+/* Signal ResetEvent (ResetButton) */
+static void
+emugtk_ResetEvent(GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+#ifdef EMU8051_DEBUG
+ g_print("emugtk_ResetEvent(...)\n");
+#endif
+ emugtk_stop_running();
+ emugtk_Reset();
+}
+
+/* CPU Step and Gtk UI update */
+static void
+emugtk_Step(void)
+{
+ cpu8051_Exec();
+ regwin_Show();
+ pgmwin_Disasm();
+ memwin_DumpD("00");
+}
+
+/* Signal RunEvent (RunButton) */
+static void
+emugtk_RunEvent(GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+#ifdef EMU8051_DEBUG
+ g_print("emugtk_RunEvent(...)\n");
+#endif
+ if (running)
+ emugtk_stop_running();
+ else
+ emugtk_start_running();
+}
+
+/* Signal StopEvent (StopButton) */
+static void
+emugtk_StopEvent(GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+#ifdef EMU8051_DEBUG
+ g_print("emugtk_StopEvent(...)\n");
+#endif
+ emugtk_stop_running();
+}
+
+/* Signal StepEvent (StepButton) */
+static void
+emugtk_StepEvent(GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+#ifdef EMU8051_DEBUG
+ g_print("emugtk_StepEvent(...)\n");
+#endif
+ emugtk_stop_running();
+ emugtk_Step();
+}