home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.7z / ftp.whtech.com / emulators / v9t9 / linux / sources / V9t9 / source / gtkinterface.c < prev    next >
Encoding:
C/C++ Source or Header  |  2006-10-19  |  148.4 KB  |  3,076 lines

  1. /*
  2.  * DO NOT EDIT THIS FILE - it is generated by Glade.
  3.  */
  4.  
  5. #ifdef HAVE_CONFIG_H
  6. #  include <config.h>
  7. #endif
  8.  
  9. #include <sys/types.h>
  10. #include <sys/stat.h>
  11. #include <unistd.h>
  12. #include <string.h>
  13.  
  14. #include <gdk/gdkkeysyms.h>
  15. #include <gtk/gtk.h>
  16.  
  17. #include "gtkcallbacks.h"
  18. #include "gtkinterface.h"
  19. #include "gtksupport.h"
  20.  
  21. GtkWidget*
  22. create_v9t9_window (void)
  23. {
  24.   GtkWidget *v9t9_window;
  25.   GtkWidget *v9t9_drawing_area;
  26.  
  27.   v9t9_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  28.   gtk_object_set_data (GTK_OBJECT (v9t9_window), "v9t9_window", v9t9_window);
  29.   GTK_WIDGET_SET_FLAGS (v9t9_window, GTK_CAN_DEFAULT);
  30.   gtk_widget_set_events (v9t9_window, GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK);
  31.   gtk_window_set_title (GTK_WINDOW (v9t9_window), "V9t9");
  32.   gtk_window_set_policy (GTK_WINDOW (v9t9_window), TRUE, TRUE, FALSE);
  33.   gtk_window_set_wmclass (GTK_WINDOW (v9t9_window), "v9t9", "V9t9");
  34.  
  35.   v9t9_drawing_area = gtk_drawing_area_new ();
  36.   gtk_widget_ref (v9t9_drawing_area);
  37.   gtk_object_set_data_full (GTK_OBJECT (v9t9_window), "v9t9_drawing_area", v9t9_drawing_area,
  38.                             (GtkDestroyNotify) gtk_widget_unref);
  39.   gtk_widget_show (v9t9_drawing_area);
  40.   gtk_container_add (GTK_CONTAINER (v9t9_window), v9t9_drawing_area);
  41.   GTK_WIDGET_SET_FLAGS (v9t9_drawing_area, GTK_CAN_FOCUS);
  42.   GTK_WIDGET_SET_FLAGS (v9t9_drawing_area, GTK_CAN_DEFAULT);
  43.   gtk_widget_set_events (v9t9_drawing_area, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_RELEASE_MASK | GDK_ENTER_NOTIFY_MASK);
  44.  
  45.   gtk_signal_connect (GTK_OBJECT (v9t9_window), "configure_event",
  46.                       GTK_SIGNAL_FUNC (on_v9t9_window_configure_event),
  47.                       NULL);
  48.   gtk_signal_connect_after (GTK_OBJECT (v9t9_window), "enter_notify_event",
  49.                             GTK_SIGNAL_FUNC (on_v9t9_window_enter_notify_event),
  50.                             NULL);
  51.   gtk_signal_connect (GTK_OBJECT (v9t9_window), "destroy",
  52.                       GTK_SIGNAL_FUNC (on_v9t9_window_destroy),
  53.                       NULL);
  54.   gtk_signal_connect (GTK_OBJECT (v9t9_drawing_area), "configure_event",
  55.                       GTK_SIGNAL_FUNC (on_v9t9_draw_area_configure_event),
  56.                       GTK_WIDGET(v9t9_window));
  57.   gtk_signal_connect (GTK_OBJECT (v9t9_drawing_area), "expose_event",
  58.                       GTK_SIGNAL_FUNC (on_v9t9_draw_area_expose_event),
  59.                       NULL);
  60.   gtk_signal_connect_after (GTK_OBJECT (v9t9_drawing_area), "key_press_event",
  61.                             GTK_SIGNAL_FUNC (on_v9t9_key_press_event),
  62.                             NULL);
  63.   gtk_signal_connect_after (GTK_OBJECT (v9t9_drawing_area), "key_release_event",
  64.                             GTK_SIGNAL_FUNC (on_v9t9_key_release_event),
  65.                             NULL);
  66.   gtk_signal_connect (GTK_OBJECT (v9t9_drawing_area), "size_request",
  67.                       GTK_SIGNAL_FUNC (on_v9t9_draw_area_size_request),
  68.                       NULL);
  69.   gtk_signal_connect (GTK_OBJECT (v9t9_drawing_area), "enter_notify_event",
  70.                       GTK_SIGNAL_FUNC (on_v9t9_draw_area_enter_notify_event),
  71.                       NULL);
  72.   gtk_signal_connect (GTK_OBJECT (v9t9_drawing_area), "button_press_event",
  73.                       GTK_SIGNAL_FUNC (on_v9t9_drawing_area_button_press_event),
  74.                       NULL);
  75.  
  76.   gtk_widget_grab_focus (v9t9_drawing_area);
  77.   gtk_widget_grab_default (v9t9_drawing_area);
  78.   return v9t9_window;
  79. }
  80.  
  81. GtkWidget*
  82. create_quit_dialog (void)
  83. {
  84.   GtkWidget *quit_dialog;
  85.   GtkWidget *dialog_vbox1;
  86.   GtkWidget *quit_message_text;
  87.   GtkWidget *dialog_action_area1;
  88.   guint die_button_key;
  89.   GtkWidget *die_button;
  90.   guint save_button_key;
  91.   GtkWidget *save_button;
  92.   guint cancel_button_key;
  93.   GtkWidget *cancel_button;
  94.   GtkAccelGroup *accel_group;
  95.  
  96.   accel_group = gtk_accel_group_new ();
  97.  
  98.   quit_dialog = gtk_dialog_new ();
  99.   gtk_object_set_data (GTK_OBJECT (quit_dialog), "quit_dialog", quit_dialog);
  100.   gtk_window_set_title (GTK_WINDOW (quit_dialog), "Quit V9t9");
  101.   GTK_WINDOW (quit_dialog)->type = GTK_WINDOW_DIALOG;
  102.   gtk_window_set_position (GTK_WINDOW (quit_dialog), GTK_WIN_POS_CENTER);
  103.   gtk_window_set_modal (GTK_WINDOW (quit_dialog), TRUE);
  104.   gtk_window_set_policy (GTK_WINDOW (quit_dialog), TRUE, TRUE, FALSE);
  105.  
  106.   dialog_vbox1 = GTK_DIALOG (quit_dialog)->vbox;
  107.   gtk_object_set_data (GTK_OBJECT (quit_dialog), "dialog_vbox1", dialog_vbox1);
  108.   gtk_widget_show (dialog_vbox1);
  109.  
  110.   quit_message_text = gtk_label_new ("Are you sure you want to quit V9t9?\n\nIf you do, your current session will be saved in \"session.cnf\"");
  111.   gtk_widget_ref (quit_message_text);
  112.   gtk_object_set_data_full (GTK_OBJECT (quit_dialog), "quit_message_text", quit_message_text,
  113.                             (GtkDestroyNotify) gtk_widget_unref);
  114.   gtk_widget_show (quit_message_text);
  115.   gtk_box_pack_start (GTK_BOX (dialog_vbox1), quit_message_text, TRUE, TRUE, 0);
  116.   gtk_misc_set_padding (GTK_MISC (quit_message_text), 16, 16);
  117.  
  118.   dialog_action_area1 = GTK_DIALOG (quit_dialog)->action_area;
  119.   gtk_object_set_data (GTK_OBJECT (quit_dialog), "dialog_action_area1", dialog_action_area1);
  120.   gtk_widget_show (dialog_action_area1);
  121.   gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area1), 10);
  122.  
  123.   die_button = gtk_button_new_with_label ("");
  124.   die_button_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (die_button)->child),
  125.                                    "Just _Quit");
  126.   gtk_widget_add_accelerator (die_button, "clicked", accel_group,
  127.                               die_button_key, GDK_MOD1_MASK, 0);
  128.   gtk_widget_ref (die_button);
  129.   gtk_object_set_data_full (GTK_OBJECT (quit_dialog), "die_button", die_button,
  130.                             (GtkDestroyNotify) gtk_widget_unref);
  131.   gtk_widget_show (die_button);
  132.   gtk_box_pack_start (GTK_BOX (dialog_action_area1), die_button, FALSE, TRUE, 0);
  133.   GTK_WIDGET_SET_FLAGS (die_button, GTK_CAN_DEFAULT);
  134.   gtk_widget_add_accelerator (die_button, "clicked", accel_group,
  135.                               GDK_space, 0,
  136.                               GTK_ACCEL_VISIBLE);
  137.   gtk_widget_add_accelerator (die_button, "clicked", accel_group,
  138.                               GDK_Return, 0,
  139.                               GTK_ACCEL_VISIBLE);
  140.   gtk_widget_add_accelerator (die_button, "clicked", accel_group,
  141.                               GDK_Q, 0,
  142.                               GTK_ACCEL_VISIBLE);
  143.  
  144.   save_button = gtk_button_new_with_label ("");
  145.   save_button_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (save_button)->child),
  146.                                    "_Save and Quit");
  147.   gtk_widget_add_accelerator (save_button, "clicked", accel_group,
  148.                               save_button_key, GDK_MOD1_MASK, 0);
  149.   gtk_widget_ref (save_button);
  150.   gtk_object_set_data_full (GTK_OBJECT (quit_dialog), "save_button", save_button,
  151.                             (GtkDestroyNotify) gtk_widget_unref);
  152.   gtk_widget_show (save_button);
  153.   gtk_box_pack_start (GTK_BOX (dialog_action_area1), save_button, FALSE, TRUE, 0);
  154.   GTK_WIDGET_SET_FLAGS (save_button, GTK_CAN_DEFAULT);
  155.   gtk_widget_add_accelerator (save_button, "clicked", accel_group,
  156.                               GDK_Return, GDK_SHIFT_MASK,
  157.                               GTK_ACCEL_VISIBLE);
  158.   gtk_widget_add_accelerator (save_button, "clicked", accel_group,
  159.                               GDK_S, GDK_SHIFT_MASK,
  160.                               GTK_ACCEL_VISIBLE);
  161.  
  162.   cancel_button = gtk_button_new_with_label ("");
  163.   cancel_button_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (cancel_button)->child),
  164.                                    "_Cancel");
  165.   gtk_widget_add_accelerator (cancel_button, "clicked", accel_group,
  166.                               cancel_button_key, GDK_MOD1_MASK, 0);
  167.   gtk_widget_ref (cancel_button);
  168.   gtk_object_set_data_full (GTK_OBJECT (quit_dialog), "cancel_button", cancel_button,
  169.                             (GtkDestroyNotify) gtk_widget_unref);
  170.   gtk_widget_show (cancel_button);
  171.   gtk_box_pack_start (GTK_BOX (dialog_action_area1), cancel_button, FALSE, TRUE, 0);
  172.   GTK_WIDGET_SET_FLAGS (cancel_button, GTK_CAN_DEFAULT);
  173.   gtk_widget_add_accelerator (cancel_button, "clicked", accel_group,
  174.                               GDK_Escape, 0,
  175.                               GTK_ACCEL_VISIBLE);
  176.   gtk_widget_add_accelerator (cancel_button, "clicked", accel_group,
  177.                               GDK_C, 0,
  178.                               GTK_ACCEL_VISIBLE);
  179.  
  180.   gtk_signal_connect (GTK_OBJECT (die_button), "clicked",
  181.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked),
  182.                       (gpointer *)"Die\n");
  183.   gtk_signal_connect (GTK_OBJECT (save_button), "clicked",
  184.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked),
  185.                       (gpointer *)"Quit\n");
  186.   gtk_signal_connect (GTK_OBJECT (cancel_button), "clicked",
  187.                       GTK_SIGNAL_FUNC (on_v9t9_button_cancel),
  188.                       quit_dialog);
  189.  
  190.   gtk_widget_grab_focus (cancel_button);
  191.   gtk_widget_grab_default (cancel_button);
  192.   gtk_window_add_accel_group (GTK_WINDOW (quit_dialog), accel_group);
  193.  
  194.   return quit_dialog;
  195. }
  196.  
  197. GtkWidget*
  198. create_command_log_font_selector (void)
  199. {
  200.   GtkWidget *command_log_font_selector;
  201.   GtkWidget *ok_button1;
  202.   GtkWidget *cancel_button1;
  203.   GtkWidget *apply_button1;
  204.   GtkAccelGroup *accel_group;
  205.  
  206.   accel_group = gtk_accel_group_new ();
  207.  
  208.   command_log_font_selector = gtk_font_selection_dialog_new ("Select Font");
  209.   gtk_object_set_data (GTK_OBJECT (command_log_font_selector), "command_log_font_selector", command_log_font_selector);
  210.   gtk_container_set_border_width (GTK_CONTAINER (command_log_font_selector), 4);
  211.   gtk_window_set_policy (GTK_WINDOW (command_log_font_selector), FALSE, TRUE, TRUE);
  212.  
  213.   ok_button1 = GTK_FONT_SELECTION_DIALOG (command_log_font_selector)->ok_button;
  214.   gtk_object_set_data (GTK_OBJECT (command_log_font_selector), "ok_button1", ok_button1);
  215.   gtk_widget_show (ok_button1);
  216.   GTK_WIDGET_SET_FLAGS (ok_button1, GTK_CAN_DEFAULT);
  217.   gtk_widget_add_accelerator (ok_button1, "clicked", accel_group,
  218.                               GDK_Return, 0,
  219.                               GTK_ACCEL_VISIBLE);
  220.  
  221.   cancel_button1 = GTK_FONT_SELECTION_DIALOG (command_log_font_selector)->cancel_button;
  222.   gtk_object_set_data (GTK_OBJECT (command_log_font_selector), "cancel_button1", cancel_button1);
  223.   gtk_widget_show (cancel_button1);
  224.   GTK_WIDGET_SET_FLAGS (cancel_button1, GTK_CAN_DEFAULT);
  225.   gtk_widget_add_accelerator (cancel_button1, "clicked", accel_group,
  226.                               GDK_Escape, 0,
  227.                               GTK_ACCEL_VISIBLE);
  228.  
  229.   apply_button1 = GTK_FONT_SELECTION_DIALOG (command_log_font_selector)->apply_button;
  230.   gtk_object_set_data (GTK_OBJECT (command_log_font_selector), "apply_button1", apply_button1);
  231.   gtk_widget_show (apply_button1);
  232.   GTK_WIDGET_SET_FLAGS (apply_button1, GTK_CAN_DEFAULT);
  233.   gtk_widget_add_accelerator (apply_button1, "clicked", accel_group,
  234.                               GDK_space, 0,
  235.                               GTK_ACCEL_VISIBLE);
  236.  
  237.   gtk_signal_connect (GTK_OBJECT (ok_button1), "clicked",
  238.                       GTK_SIGNAL_FUNC (on_command_log_font_selector_ok_button1_clicked),
  239.                       NULL);
  240.   gtk_signal_connect (GTK_OBJECT (cancel_button1), "clicked",
  241.                       GTK_SIGNAL_FUNC (on_command_log_font_cancel1_button_clicked),
  242.                       NULL);
  243.   gtk_signal_connect (GTK_OBJECT (apply_button1), "clicked",
  244.                       GTK_SIGNAL_FUNC (on_command_log_font_selector_apply_button1_clicked),
  245.                       NULL);
  246.  
  247.   gtk_window_add_accel_group (GTK_WINDOW (command_log_font_selector), accel_group);
  248.  
  249.   return command_log_font_selector;
  250. }
  251.  
  252. GtkWidget*
  253. create_command_dialog (void)
  254. {
  255.   GtkWidget *command_dialog;
  256.   GtkWidget *hpaned2;
  257.   GtkWidget *vbox6;
  258.   GtkWidget *menubar1;
  259.   guint tmp_key;
  260.   GtkWidget *menuitem2;
  261.   GtkWidget *menu1;
  262.   GtkAccelGroup *menu1_accels;
  263.   GtkWidget *menuitem3;
  264.   GtkWidget *menuitem4;
  265.   GtkWidget *log_text_window;
  266.   GtkWidget *log_text_box;
  267.   GtkWidget *command_text_entry;
  268.   GtkWidget *progress_label;
  269.   GtkWidget *v9t9_button_vbox;
  270.   GtkWidget *reboot_button;
  271.   GtkWidget *hseparator3;
  272.   GtkWidget *pause_button;
  273.   GtkWidget *hseparator1;
  274.   GtkWidget *quick_save_button;
  275.   GtkWidget *quick_load_button;
  276.   GtkWidget *hseparator2;
  277.   GtkWidget *button60;
  278.   GtkWidget *button16;
  279.   GtkWidget *module_button;
  280.   GtkWidget *disks_button;
  281.   GtkWidget *button37;
  282.   GtkWidget *quit_button;
  283.   GtkWidget *button74;
  284.   GtkWidget *frame12;
  285.   GtkWidget *hbox11;
  286.   GtkWidget *disk_access_drawing_area;
  287.   GtkWidget *rs232_access_drawing_area;
  288.   GtkAccelGroup *accel_group;
  289.   GtkTooltips *tooltips;
  290.  
  291.   tooltips = gtk_tooltips_new ();
  292.  
  293.   accel_group = gtk_accel_group_new ();
  294.  
  295.   command_dialog = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  296.   gtk_object_set_data (GTK_OBJECT (command_dialog), "command_dialog", command_dialog);
  297.   gtk_window_set_title (GTK_WINDOW (command_dialog), "Command Central");
  298.  
  299.   hpaned2 = gtk_hpaned_new ();
  300.   gtk_widget_ref (hpaned2);
  301.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "hpaned2", hpaned2,
  302.                             (GtkDestroyNotify) gtk_widget_unref);
  303.   gtk_widget_show (hpaned2);
  304.   gtk_container_add (GTK_CONTAINER (command_dialog), hpaned2);
  305.   gtk_paned_set_gutter_size (GTK_PANED (hpaned2), 10);
  306.   gtk_paned_set_position (GTK_PANED (hpaned2), 0);
  307.  
  308.   vbox6 = gtk_vbox_new (FALSE, 0);
  309.   gtk_widget_ref (vbox6);
  310.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "vbox6", vbox6,
  311.                             (GtkDestroyNotify) gtk_widget_unref);
  312.   gtk_widget_show (vbox6);
  313.   gtk_paned_pack1 (GTK_PANED (hpaned2), vbox6, FALSE, FALSE);
  314.   gtk_widget_set_usize (vbox6, 400, -2);
  315.  
  316.   menubar1 = gtk_menu_bar_new ();
  317.   gtk_widget_ref (menubar1);
  318.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "menubar1", menubar1,
  319.                             (GtkDestroyNotify) gtk_widget_unref);
  320.   gtk_widget_show (menubar1);
  321.   gtk_box_pack_start (GTK_BOX (vbox6), menubar1, FALSE, FALSE, 0);
  322.  
  323.   menuitem2 = gtk_menu_item_new_with_label ("");
  324.   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menuitem2)->child),
  325.                                    "_Options");
  326.   gtk_widget_add_accelerator (menuitem2, "activate_item", accel_group,
  327.                               tmp_key, GDK_MOD1_MASK, 0);
  328.   gtk_widget_ref (menuitem2);
  329.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "menuitem2", menuitem2,
  330.                             (GtkDestroyNotify) gtk_widget_unref);
  331.   gtk_widget_show (menuitem2);
  332.   gtk_container_add (GTK_CONTAINER (menubar1), menuitem2);
  333.  
  334.   menu1 = gtk_menu_new ();
  335.   gtk_widget_ref (menu1);
  336.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "menu1", menu1,
  337.                             (GtkDestroyNotify) gtk_widget_unref);
  338.   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem2), menu1);
  339.   menu1_accels = gtk_menu_ensure_uline_accel_group (GTK_MENU (menu1));
  340.  
  341.   menuitem3 = gtk_menu_item_new_with_label ("");
  342.   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menuitem3)->child),
  343.                                    "_Flush Log");
  344.   gtk_widget_add_accelerator (menuitem3, "activate_item", menu1_accels,
  345.                               tmp_key, 0, 0);
  346.   gtk_widget_ref (menuitem3);
  347.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "menuitem3", menuitem3,
  348.                             (GtkDestroyNotify) gtk_widget_unref);
  349.   gtk_widget_show (menuitem3);
  350.   gtk_container_add (GTK_CONTAINER (menu1), menuitem3);
  351.  
  352.   menuitem4 = gtk_menu_item_new_with_label ("");
  353.   tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menuitem4)->child),
  354.                                    "_Select Font...");
  355.   gtk_widget_add_accelerator (menuitem4, "activate_item", menu1_accels,
  356.                               tmp_key, 0, 0);
  357.   gtk_widget_ref (menuitem4);
  358.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "menuitem4", menuitem4,
  359.                             (GtkDestroyNotify) gtk_widget_unref);
  360.   gtk_widget_show (menuitem4);
  361.   gtk_container_add (GTK_CONTAINER (menu1), menuitem4);
  362.  
  363.   log_text_window = gtk_scrolled_window_new (NULL, NULL);
  364.   gtk_widget_ref (log_text_window);
  365.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "log_text_window", log_text_window,
  366.                             (GtkDestroyNotify) gtk_widget_unref);
  367.   gtk_widget_show (log_text_window);
  368.   gtk_box_pack_start (GTK_BOX (vbox6), log_text_window, TRUE, TRUE, 0);
  369.   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (log_text_window), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
  370.  
  371.   log_text_box = gtk_text_new (NULL, NULL);
  372.   gtk_widget_ref (log_text_box);
  373.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "log_text_box", log_text_box,
  374.                             (GtkDestroyNotify) gtk_widget_unref);
  375.   gtk_widget_show (log_text_box);
  376.   gtk_container_add (GTK_CONTAINER (log_text_window), log_text_box);
  377.   GTK_WIDGET_UNSET_FLAGS (log_text_box, GTK_CAN_FOCUS);
  378.   gtk_text_insert (GTK_TEXT (log_text_box), NULL, NULL, NULL,
  379.                    "\n", 1);
  380.  
  381.   command_text_entry = gtk_entry_new ();
  382.   gtk_widget_ref (command_text_entry);
  383.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "command_text_entry", command_text_entry,
  384.                             (GtkDestroyNotify) gtk_widget_unref);
  385.   gtk_widget_show (command_text_entry);
  386.   gtk_box_pack_start (GTK_BOX (vbox6), command_text_entry, FALSE, FALSE, 0);
  387.   GTK_WIDGET_SET_FLAGS (command_text_entry, GTK_CAN_DEFAULT);
  388.  
  389.   progress_label = gtk_label_new ("Welcome to V9t9!");
  390.   gtk_widget_ref (progress_label);
  391.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "progress_label", progress_label,
  392.                             (GtkDestroyNotify) gtk_widget_unref);
  393.   gtk_widget_show (progress_label);
  394.   gtk_box_pack_start (GTK_BOX (vbox6), progress_label, FALSE, FALSE, 2);
  395.   gtk_label_set_justify (GTK_LABEL (progress_label), GTK_JUSTIFY_LEFT);
  396.   gtk_misc_set_alignment (GTK_MISC (progress_label), 0, 0.5);
  397.   gtk_misc_set_padding (GTK_MISC (progress_label), 4, 0);
  398.  
  399.   v9t9_button_vbox = gtk_vbox_new (FALSE, 2);
  400.   gtk_widget_ref (v9t9_button_vbox);
  401.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "v9t9_button_vbox", v9t9_button_vbox,
  402.                             (GtkDestroyNotify) gtk_widget_unref);
  403.   gtk_widget_show (v9t9_button_vbox);
  404.   gtk_paned_pack2 (GTK_PANED (hpaned2), v9t9_button_vbox, FALSE, FALSE);
  405.   gtk_widget_set_usize (v9t9_button_vbox, 80, -2);
  406.   gtk_container_set_border_width (GTK_CONTAINER (v9t9_button_vbox), 4);
  407.  
  408.   reboot_button = gtk_button_new_with_label ("Reboot");
  409.   gtk_widget_ref (reboot_button);
  410.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "reboot_button", reboot_button,
  411.                             (GtkDestroyNotify) gtk_widget_unref);
  412.   gtk_widget_show (reboot_button);
  413.   gtk_box_pack_start (GTK_BOX (v9t9_button_vbox), reboot_button, FALSE, FALSE, 0);
  414.   GTK_WIDGET_UNSET_FLAGS (reboot_button, GTK_CAN_FOCUS);
  415.   gtk_tooltips_set_tip (tooltips, reboot_button, "Reset emulated 99/4A", NULL);
  416.  
  417.   hseparator3 = gtk_hseparator_new ();
  418.   gtk_widget_ref (hseparator3);
  419.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "hseparator3", hseparator3,
  420.                             (GtkDestroyNotify) gtk_widget_unref);
  421.   gtk_widget_show (hseparator3);
  422.   gtk_box_pack_start (GTK_BOX (v9t9_button_vbox), hseparator3, FALSE, FALSE, 2);
  423.  
  424.   pause_button = gtk_button_new_with_label ("Pause");
  425.   gtk_widget_ref (pause_button);
  426.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "pause_button", pause_button,
  427.                             (GtkDestroyNotify) gtk_widget_unref);
  428.   gtk_widget_show (pause_button);
  429.   gtk_box_pack_start (GTK_BOX (v9t9_button_vbox), pause_button, FALSE, FALSE, 0);
  430.   GTK_WIDGET_UNSET_FLAGS (pause_button, GTK_CAN_FOCUS);
  431.   gtk_tooltips_set_tip (tooltips, pause_button, "Pause execution of V9t9", NULL);
  432.  
  433.   hseparator1 = gtk_hseparator_new ();
  434.   gtk_widget_ref (hseparator1);
  435.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "hseparator1", hseparator1,
  436.                             (GtkDestroyNotify) gtk_widget_unref);
  437.   gtk_widget_show (hseparator1);
  438.   gtk_box_pack_start (GTK_BOX (v9t9_button_vbox), hseparator1, FALSE, FALSE, 2);
  439.  
  440.   quick_save_button = gtk_button_new_with_label ("Save...");
  441.   gtk_widget_ref (quick_save_button);
  442.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "quick_save_button", quick_save_button,
  443.                             (GtkDestroyNotify) gtk_widget_unref);
  444.   gtk_widget_show (quick_save_button);
  445.   gtk_box_pack_start (GTK_BOX (v9t9_button_vbox), quick_save_button, FALSE, FALSE, 0);
  446.   GTK_WIDGET_UNSET_FLAGS (quick_save_button, GTK_CAN_FOCUS);
  447.   gtk_tooltips_set_tip (tooltips, quick_save_button, "Save machine state to \"savesession.cnf\"", NULL);
  448.  
  449.   quick_load_button = gtk_button_new_with_label ("Load...");
  450.   gtk_widget_ref (quick_load_button);
  451.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "quick_load_button", quick_load_button,
  452.                             (GtkDestroyNotify) gtk_widget_unref);
  453.   gtk_widget_show (quick_load_button);
  454.   gtk_box_pack_start (GTK_BOX (v9t9_button_vbox), quick_load_button, FALSE, FALSE, 0);
  455.   GTK_WIDGET_UNSET_FLAGS (quick_load_button, GTK_CAN_FOCUS);
  456.   gtk_tooltips_set_tip (tooltips, quick_load_button, "Load session from \"savesession.cnf\"", NULL);
  457.  
  458.   hseparator2 = gtk_hseparator_new ();
  459.   gtk_widget_ref (hseparator2);
  460.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "hseparator2", hseparator2,
  461.                             (GtkDestroyNotify) gtk_widget_unref);
  462.   gtk_widget_show (hseparator2);
  463.   gtk_box_pack_start (GTK_BOX (v9t9_button_vbox), hseparator2, FALSE, FALSE, 2);
  464.  
  465.   button60 = gtk_button_new_with_label ("Options...");
  466.   gtk_widget_ref (button60);
  467.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "button60", button60,
  468.                             (GtkDestroyNotify) gtk_widget_unref);
  469.   gtk_widget_show (button60);
  470.   gtk_box_pack_start (GTK_BOX (v9t9_button_vbox), button60, FALSE, FALSE, 0);
  471.   GTK_WIDGET_UNSET_FLAGS (button60, GTK_CAN_FOCUS);
  472.   gtk_tooltips_set_tip (tooltips, button60, "Set basic configuration options", NULL);
  473.  
  474.   button16 = gtk_button_new_with_label ("Debugger...");
  475.   gtk_widget_ref (button16);
  476.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "button16", button16,
  477.                             (GtkDestroyNotify) gtk_widget_unref);
  478.   gtk_widget_show (button16);
  479.   gtk_box_pack_start (GTK_BOX (v9t9_button_vbox), button16, FALSE, FALSE, 0);
  480.   GTK_WIDGET_UNSET_FLAGS (button16, GTK_CAN_FOCUS);
  481.   gtk_tooltips_set_tip (tooltips, button16, "Control emulated 99/4A and trace execution", NULL);
  482.  
  483.   module_button = gtk_button_new_with_label ("Modules...");
  484.   gtk_widget_ref (module_button);
  485.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "module_button", module_button,
  486.                             (GtkDestroyNotify) gtk_widget_unref);
  487.   gtk_widget_show (module_button);
  488.   gtk_box_pack_start (GTK_BOX (v9t9_button_vbox), module_button, FALSE, FALSE, 0);
  489.   GTK_WIDGET_UNSET_FLAGS (module_button, GTK_CAN_FOCUS);
  490.   gtk_tooltips_set_tip (tooltips, module_button, "Load or unload modules", NULL);
  491.  
  492.   disks_button = gtk_button_new_with_label ("Disks...");
  493.   gtk_widget_ref (disks_button);
  494.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "disks_button", disks_button,
  495.                             (GtkDestroyNotify) gtk_widget_unref);
  496.   gtk_widget_show (disks_button);
  497.   gtk_box_pack_start (GTK_BOX (v9t9_button_vbox), disks_button, FALSE, FALSE, 0);
  498.   GTK_WIDGET_UNSET_FLAGS (disks_button, GTK_CAN_FOCUS);
  499.   gtk_tooltips_set_tip (tooltips, disks_button, "Assign drives to local directories or files", NULL);
  500.  
  501.   button37 = gtk_button_new_with_label ("Memory...");
  502.   gtk_widget_ref (button37);
  503.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "button37", button37,
  504.                             (GtkDestroyNotify) gtk_widget_unref);
  505.   gtk_widget_show (button37);
  506.   gtk_box_pack_start (GTK_BOX (v9t9_button_vbox), button37, FALSE, FALSE, 0);
  507.   GTK_WIDGET_UNSET_FLAGS (button37, GTK_CAN_FOCUS);
  508.   gtk_tooltips_set_tip (tooltips, button37, "Assign files to ROM or RAM segments of the memory map", NULL);
  509.  
  510.   quit_button = gtk_button_new_with_label ("Quit");
  511.   gtk_widget_ref (quit_button);
  512.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "quit_button", quit_button,
  513.                             (GtkDestroyNotify) gtk_widget_unref);
  514.   gtk_widget_show (quit_button);
  515.   gtk_box_pack_end (GTK_BOX (v9t9_button_vbox), quit_button, FALSE, FALSE, 0);
  516.   GTK_WIDGET_UNSET_FLAGS (quit_button, GTK_CAN_FOCUS);
  517.  
  518.   button74 = gtk_button_new_with_label ("Logging...");
  519.   gtk_widget_ref (button74);
  520.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "button74", button74,
  521.                             (GtkDestroyNotify) gtk_widget_unref);
  522.   gtk_widget_show (button74);
  523.   gtk_box_pack_start (GTK_BOX (v9t9_button_vbox), button74, FALSE, FALSE, 0);
  524.   GTK_WIDGET_UNSET_FLAGS (button74, GTK_CAN_FOCUS);
  525.   gtk_tooltips_set_tip (tooltips, button74, "Modify log levels for debugging", NULL);
  526.  
  527.   frame12 = gtk_frame_new (NULL);
  528.   gtk_widget_ref (frame12);
  529.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "frame12", frame12,
  530.                             (GtkDestroyNotify) gtk_widget_unref);
  531.   gtk_widget_show (frame12);
  532.   gtk_box_pack_end (GTK_BOX (v9t9_button_vbox), frame12, FALSE, FALSE, 0);
  533.  
  534.   hbox11 = gtk_hbox_new (FALSE, 0);
  535.   gtk_widget_ref (hbox11);
  536.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "hbox11", hbox11,
  537.                             (GtkDestroyNotify) gtk_widget_unref);
  538.   gtk_widget_show (hbox11);
  539.   gtk_container_add (GTK_CONTAINER (frame12), hbox11);
  540.  
  541.   disk_access_drawing_area = gtk_drawing_area_new ();
  542.   gtk_widget_ref (disk_access_drawing_area);
  543.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "disk_access_drawing_area", disk_access_drawing_area,
  544.                             (GtkDestroyNotify) gtk_widget_unref);
  545.   gtk_widget_show (disk_access_drawing_area);
  546.   gtk_box_pack_start (GTK_BOX (hbox11), disk_access_drawing_area, TRUE, TRUE, 2);
  547.   gtk_widget_set_usize (disk_access_drawing_area, -2, 4);
  548.  
  549.   rs232_access_drawing_area = gtk_drawing_area_new ();
  550.   gtk_widget_ref (rs232_access_drawing_area);
  551.   gtk_object_set_data_full (GTK_OBJECT (command_dialog), "rs232_access_drawing_area", rs232_access_drawing_area,
  552.                             (GtkDestroyNotify) gtk_widget_unref);
  553.   gtk_widget_show (rs232_access_drawing_area);
  554.   gtk_box_pack_start (GTK_BOX (hbox11), rs232_access_drawing_area, TRUE, TRUE, 2);
  555.   gtk_widget_set_usize (rs232_access_drawing_area, -2, 4);
  556.  
  557.   gtk_signal_connect (GTK_OBJECT (command_dialog), "key_press_event",
  558.                       GTK_SIGNAL_FUNC (on_command_dialog_key_press_event),
  559.                       command_text_entry);
  560.   gtk_signal_connect (GTK_OBJECT (command_dialog), "destroy",
  561.                       GTK_SIGNAL_FUNC (on_command_dialog_destroy),
  562.                       NULL);
  563.   gtk_signal_connect (GTK_OBJECT (menuitem3), "activate",
  564.                       GTK_SIGNAL_FUNC (on_flush_item_activate),
  565.                       NULL);
  566.   gtk_signal_connect (GTK_OBJECT (menuitem4), "activate",
  567.                       GTK_SIGNAL_FUNC (on_font_item_activate),
  568.                       NULL);
  569.   gtk_signal_connect (GTK_OBJECT (log_text_box), "realize",
  570.                       GTK_SIGNAL_FUNC (on_log_text_box_realize_event),
  571.                       NULL);
  572.   gtk_signal_connect (GTK_OBJECT (command_text_entry), "activate",
  573.                       GTK_SIGNAL_FUNC (on_command_text_entry_activate),
  574.                       log_text_box);
  575.   gtk_signal_connect_after (GTK_OBJECT (command_text_entry), "key_press_event",
  576.                             GTK_SIGNAL_FUNC (on_command_text_entry_key_press_event),
  577.                             NULL);
  578.   gtk_signal_connect (GTK_OBJECT (reboot_button), "clicked",
  579.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked),
  580.                       (gpointer *)"ResetComputer\n");
  581.   gtk_signal_connect (GTK_OBJECT (pause_button), "clicked",
  582.                       GTK_SIGNAL_FUNC (on_v9t9_pause_button_clicked),
  583.                       NULL);
  584.   gtk_signal_connect (GTK_OBJECT (quick_save_button), "clicked",
  585.                       GTK_SIGNAL_FUNC (on_v9t9_quick_load_save_button_clicked),
  586.                       (gpointer)GTK_QUICK_SAVE);
  587.   gtk_signal_connect (GTK_OBJECT (quick_load_button), "clicked",
  588.                       GTK_SIGNAL_FUNC (on_v9t9_quick_load_save_button_clicked),
  589.                       (gpointer)GTK_QUICK_LOAD);
  590.   gtk_signal_connect (GTK_OBJECT (button60), "clicked",
  591.                       GTK_SIGNAL_FUNC (on_v9t9_window_options_button_clicked),
  592.                       NULL);
  593.   gtk_signal_connect (GTK_OBJECT (button16), "clicked",
  594.                       GTK_SIGNAL_FUNC (on_v9t9_debug_button_clicked),
  595.                       NULL);
  596.   gtk_signal_connect (GTK_OBJECT (module_button), "clicked",
  597.                       GTK_SIGNAL_FUNC (on_v9t9_window_module_button_clicked),
  598.                       NULL);
  599.   gtk_signal_connect (GTK_OBJECT (disks_button), "clicked",
  600.                       GTK_SIGNAL_FUNC (on_v9t9_window_disks_button_clicked),
  601.                       NULL);
  602.   gtk_signal_connect (GTK_OBJECT (button37), "clicked",
  603.                       GTK_SIGNAL_FUNC (on_v9t9_window_memory_button_clicked),
  604.                       NULL);
  605.   gtk_signal_connect (GTK_OBJECT (quit_button), "clicked",
  606.                       GTK_SIGNAL_FUNC (on_quit_button_clicked),
  607.                       NULL);
  608.   gtk_signal_connect (GTK_OBJECT (button74), "clicked",
  609.                       GTK_SIGNAL_FUNC (on_v9t9_window_logging_button_clicked),
  610.                       NULL);
  611.  
  612.   gtk_widget_grab_focus (command_text_entry);
  613.   gtk_widget_grab_default (command_text_entry);
  614.   gtk_object_set_data (GTK_OBJECT (command_dialog), "tooltips", tooltips);
  615.  
  616.   gtk_window_add_accel_group (GTK_WINDOW (command_dialog), accel_group);
  617.  
  618.   return command_dialog;
  619. }
  620.  
  621. GtkWidget*
  622. create_disks_dialog (void)
  623. {
  624.   GtkWidget *disks_dialog;
  625.   GtkWidget *dialog_vbox3;
  626.   GtkWidget *disk_options_notebook;
  627.   GtkWidget *disk_info_table;
  628.   guint label18_key;
  629.   GtkWidget *label18;
  630.   guint label19_key;
  631.   GtkWidget *label19;
  632.   guint label20_key;
  633.   GtkWidget *label20;
  634.   guint label21_key;
  635.   GtkWidget *label21;
  636.   guint label22_key;
  637.   GtkWidget *label22;
  638.   GtkWidget *button25;
  639.   GtkWidget *button27;
  640.   GtkWidget *button28;
  641.   GtkWidget *button29;
  642.   GtkWidget *dsk1_entry;
  643.   GtkWidget *dsk2_entry;
  644.   GtkWidget *dsk3_entry;
  645.   GtkWidget *dsk4_entry;
  646.   GtkWidget *dsk5_entry;
  647.   GtkWidget *button32;
  648.   GtkWidget *label23;
  649.   GtkWidget *fiad_options_vbox;
  650.   GtkWidget *hbox6;
  651.   guint checkbutton2_key;
  652.   GtkWidget *checkbutton2;
  653.   GtkWidget *fiad_file_format_hbox;
  654.   GSList *fiad_format_radio_buttons_group = NULL;
  655.   guint radiobutton2_key;
  656.   GtkWidget *radiobutton2;
  657.   guint radiobutton3_key;
  658.   GtkWidget *radiobutton3;
  659.   guint checkbutton5_key;
  660.   GtkWidget *checkbutton5;
  661.   guint checkbutton6_key;
  662.   GtkWidget *checkbutton6;
  663.   guint checkbutton7_key;
  664.   GtkWidget *checkbutton7;
  665.   guint checkbutton8_key;
  666.   GtkWidget *checkbutton8;
  667.   guint checkbutton9_key;
  668.   GtkWidget *checkbutton9;
  669.   GtkWidget *frame8;
  670.   GtkWidget *table1;
  671.   GtkWidget *emu_lone_dsr_entry;
  672.   GtkWidget *emu_shared_dsr_entry;
  673.   guint label26_key;
  674.   GtkWidget *label26;
  675.   guint label27_key;
  676.   GtkWidget *label27;
  677.   GtkWidget *button30;
  678.   GtkWidget *button31;
  679.   GtkWidget *label24;
  680.   GtkWidget *doad_options_vbox;
  681.   GtkWidget *frame9;
  682.   GtkWidget *table2;
  683.   guint label29_key;
  684.   GtkWidget *label29;
  685.   GtkWidget *button34;
  686.   GtkWidget *real_disk_dsr_entry;
  687.   GtkWidget *label25;
  688.   GtkWidget *hbox8;
  689.   GtkWidget *checkbutton3;
  690.   GtkWidget *checkbutton4;
  691.   GtkWidget *dialog_action_area3;
  692.   GtkWidget *close_button;
  693.   GtkAccelGroup *accel_group;
  694.  
  695.   accel_group = gtk_accel_group_new ();
  696.  
  697.   disks_dialog = gtk_dialog_new ();
  698.   gtk_object_set_data (GTK_OBJECT (disks_dialog), "disks_dialog", disks_dialog);
  699.   gtk_window_set_title (GTK_WINDOW (disks_dialog), "Disks");
  700.  
  701.   dialog_vbox3 = GTK_DIALOG (disks_dialog)->vbox;
  702.   gtk_object_set_data (GTK_OBJECT (disks_dialog), "dialog_vbox3", dialog_vbox3);
  703.   gtk_widget_show (dialog_vbox3);
  704.  
  705.   disk_options_notebook = gtk_notebook_new ();
  706.   gtk_widget_ref (disk_options_notebook);
  707.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "disk_options_notebook", disk_options_notebook,
  708.                             (GtkDestroyNotify) gtk_widget_unref);
  709.   gtk_widget_show (disk_options_notebook);
  710.   gtk_box_pack_start (GTK_BOX (dialog_vbox3), disk_options_notebook, TRUE, TRUE, 0);
  711.   gtk_container_set_border_width (GTK_CONTAINER (disk_options_notebook), 4);
  712.   gtk_notebook_set_show_border (GTK_NOTEBOOK (disk_options_notebook), FALSE);
  713.  
  714.   disk_info_table = gtk_table_new (5, 3, FALSE);
  715.   gtk_widget_ref (disk_info_table);
  716.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "disk_info_table", disk_info_table,
  717.                             (GtkDestroyNotify) gtk_widget_unref);
  718.   gtk_widget_show (disk_info_table);
  719.   gtk_container_add (GTK_CONTAINER (disk_options_notebook), disk_info_table);
  720.   gtk_container_set_border_width (GTK_CONTAINER (disk_info_table), 8);
  721.  
  722.   label18 = gtk_label_new ("");
  723.   label18_key = gtk_label_parse_uline (GTK_LABEL (label18),
  724.                                    "DSK_1");
  725.   gtk_widget_ref (label18);
  726.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "label18", label18,
  727.                             (GtkDestroyNotify) gtk_widget_unref);
  728.   gtk_widget_show (label18);
  729.   gtk_table_attach (GTK_TABLE (disk_info_table), label18, 0, 1, 0, 1,
  730.                     (GtkAttachOptions) (0),
  731.                     (GtkAttachOptions) (0), 16, 8);
  732.  
  733.   label19 = gtk_label_new ("");
  734.   label19_key = gtk_label_parse_uline (GTK_LABEL (label19),
  735.                                    "DSK_2");
  736.   gtk_widget_ref (label19);
  737.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "label19", label19,
  738.                             (GtkDestroyNotify) gtk_widget_unref);
  739.   gtk_widget_show (label19);
  740.   gtk_table_attach (GTK_TABLE (disk_info_table), label19, 0, 1, 1, 2,
  741.                     (GtkAttachOptions) (0),
  742.                     (GtkAttachOptions) (0), 16, 8);
  743.  
  744.   label20 = gtk_label_new ("");
  745.   label20_key = gtk_label_parse_uline (GTK_LABEL (label20),
  746.                                    "DSK_3");
  747.   gtk_widget_ref (label20);
  748.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "label20", label20,
  749.                             (GtkDestroyNotify) gtk_widget_unref);
  750.   gtk_widget_show (label20);
  751.   gtk_table_attach (GTK_TABLE (disk_info_table), label20, 0, 1, 2, 3,
  752.                     (GtkAttachOptions) (0),
  753.                     (GtkAttachOptions) (0), 16, 8);
  754.  
  755.   label21 = gtk_label_new ("");
  756.   label21_key = gtk_label_parse_uline (GTK_LABEL (label21),
  757.                                    "DSK_4");
  758.   gtk_widget_ref (label21);
  759.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "label21", label21,
  760.                             (GtkDestroyNotify) gtk_widget_unref);
  761.   gtk_widget_show (label21);
  762.   gtk_table_attach (GTK_TABLE (disk_info_table), label21, 0, 1, 3, 4,
  763.                     (GtkAttachOptions) (0),
  764.                     (GtkAttachOptions) (0), 16, 8);
  765.  
  766.   label22 = gtk_label_new ("");
  767.   label22_key = gtk_label_parse_uline (GTK_LABEL (label22),
  768.                                    "DSK_5");
  769.   gtk_widget_ref (label22);
  770.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "label22", label22,
  771.                             (GtkDestroyNotify) gtk_widget_unref);
  772.   gtk_widget_show (label22);
  773.   gtk_table_attach (GTK_TABLE (disk_info_table), label22, 0, 1, 4, 5,
  774.                     (GtkAttachOptions) (0),
  775.                     (GtkAttachOptions) (0), 16, 8);
  776.  
  777.   button25 = gtk_button_new_with_label ("Choose...");
  778.   gtk_widget_ref (button25);
  779.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "button25", button25,
  780.                             (GtkDestroyNotify) gtk_widget_unref);
  781.   gtk_widget_show (button25);
  782.   gtk_table_attach (GTK_TABLE (disk_info_table), button25, 2, 3, 1, 2,
  783.                     (GtkAttachOptions) (0),
  784.                     (GtkAttachOptions) (0), 0, 0);
  785.   gtk_container_set_border_width (GTK_CONTAINER (button25), 4);
  786.   GTK_WIDGET_UNSET_FLAGS (button25, GTK_CAN_FOCUS);
  787.  
  788.   button27 = gtk_button_new_with_label ("Choose...");
  789.   gtk_widget_ref (button27);
  790.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "button27", button27,
  791.                             (GtkDestroyNotify) gtk_widget_unref);
  792.   gtk_widget_show (button27);
  793.   gtk_table_attach (GTK_TABLE (disk_info_table), button27, 2, 3, 3, 4,
  794.                     (GtkAttachOptions) (0),
  795.                     (GtkAttachOptions) (0), 0, 0);
  796.   gtk_container_set_border_width (GTK_CONTAINER (button27), 4);
  797.   GTK_WIDGET_UNSET_FLAGS (button27, GTK_CAN_FOCUS);
  798.  
  799.   button28 = gtk_button_new_with_label ("Choose...");
  800.   gtk_widget_ref (button28);
  801.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "button28", button28,
  802.                             (GtkDestroyNotify) gtk_widget_unref);
  803.   gtk_widget_show (button28);
  804.   gtk_table_attach (GTK_TABLE (disk_info_table), button28, 2, 3, 4, 5,
  805.                     (GtkAttachOptions) (0),
  806.                     (GtkAttachOptions) (0), 0, 0);
  807.   gtk_container_set_border_width (GTK_CONTAINER (button28), 4);
  808.   GTK_WIDGET_UNSET_FLAGS (button28, GTK_CAN_FOCUS);
  809.  
  810.   button29 = gtk_button_new_with_label ("Choose...");
  811.   gtk_widget_ref (button29);
  812.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "button29", button29,
  813.                             (GtkDestroyNotify) gtk_widget_unref);
  814.   gtk_widget_show (button29);
  815.   gtk_table_attach (GTK_TABLE (disk_info_table), button29, 2, 3, 0, 1,
  816.                     (GtkAttachOptions) (0),
  817.                     (GtkAttachOptions) (0), 16, 0);
  818.   gtk_container_set_border_width (GTK_CONTAINER (button29), 4);
  819.   GTK_WIDGET_UNSET_FLAGS (button29, GTK_CAN_FOCUS);
  820.  
  821.   dsk1_entry = gtk_entry_new ();
  822.   gtk_widget_ref (dsk1_entry);
  823.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "dsk1_entry", dsk1_entry,
  824.                             (GtkDestroyNotify) gtk_widget_unref);
  825.   gtk_widget_show (dsk1_entry);
  826.   gtk_table_attach (GTK_TABLE (disk_info_table), dsk1_entry, 1, 2, 0, 1,
  827.                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  828.                     (GtkAttachOptions) (0), 0, 0);
  829.  
  830.   dsk2_entry = gtk_entry_new ();
  831.   gtk_widget_ref (dsk2_entry);
  832.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "dsk2_entry", dsk2_entry,
  833.                             (GtkDestroyNotify) gtk_widget_unref);
  834.   gtk_widget_show (dsk2_entry);
  835.   gtk_table_attach (GTK_TABLE (disk_info_table), dsk2_entry, 1, 2, 1, 2,
  836.                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  837.                     (GtkAttachOptions) (0), 0, 0);
  838.  
  839.   dsk3_entry = gtk_entry_new ();
  840.   gtk_widget_ref (dsk3_entry);
  841.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "dsk3_entry", dsk3_entry,
  842.                             (GtkDestroyNotify) gtk_widget_unref);
  843.   gtk_widget_show (dsk3_entry);
  844.   gtk_table_attach (GTK_TABLE (disk_info_table), dsk3_entry, 1, 2, 2, 3,
  845.                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  846.                     (GtkAttachOptions) (0), 0, 0);
  847.  
  848.   dsk4_entry = gtk_entry_new ();
  849.   gtk_widget_ref (dsk4_entry);
  850.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "dsk4_entry", dsk4_entry,
  851.                             (GtkDestroyNotify) gtk_widget_unref);
  852.   gtk_widget_show (dsk4_entry);
  853.   gtk_table_attach (GTK_TABLE (disk_info_table), dsk4_entry, 1, 2, 3, 4,
  854.                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  855.                     (GtkAttachOptions) (0), 0, 0);
  856.  
  857.   dsk5_entry = gtk_entry_new ();
  858.   gtk_widget_ref (dsk5_entry);
  859.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "dsk5_entry", dsk5_entry,
  860.                             (GtkDestroyNotify) gtk_widget_unref);
  861.   gtk_widget_show (dsk5_entry);
  862.   gtk_table_attach (GTK_TABLE (disk_info_table), dsk5_entry, 1, 2, 4, 5,
  863.                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  864.                     (GtkAttachOptions) (0), 0, 0);
  865.  
  866.   button32 = gtk_button_new_with_label ("Choose...");
  867.   gtk_widget_ref (button32);
  868.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "button32", button32,
  869.                             (GtkDestroyNotify) gtk_widget_unref);
  870.   gtk_widget_show (button32);
  871.   gtk_table_attach (GTK_TABLE (disk_info_table), button32, 2, 3, 2, 3,
  872.                     (GtkAttachOptions) (0),
  873.                     (GtkAttachOptions) (0), 0, 0);
  874.   gtk_container_set_border_width (GTK_CONTAINER (button32), 4);
  875.   GTK_WIDGET_UNSET_FLAGS (button32, GTK_CAN_FOCUS);
  876.  
  877.   label23 = gtk_label_new ("DSKx Mappings");
  878.   gtk_widget_ref (label23);
  879.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "label23", label23,
  880.                             (GtkDestroyNotify) gtk_widget_unref);
  881.   gtk_widget_show (label23);
  882.   gtk_notebook_set_tab_label (GTK_NOTEBOOK (disk_options_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (disk_options_notebook), 0), label23);
  883.  
  884.   fiad_options_vbox = gtk_vbox_new (FALSE, 0);
  885.   gtk_widget_ref (fiad_options_vbox);
  886.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "fiad_options_vbox", fiad_options_vbox,
  887.                             (GtkDestroyNotify) gtk_widget_unref);
  888.   gtk_widget_show (fiad_options_vbox);
  889.   gtk_container_add (GTK_CONTAINER (disk_options_notebook), fiad_options_vbox);
  890.  
  891.   hbox6 = gtk_hbox_new (FALSE, 0);
  892.   gtk_widget_ref (hbox6);
  893.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "hbox6", hbox6,
  894.                             (GtkDestroyNotify) gtk_widget_unref);
  895.   gtk_widget_show (hbox6);
  896.   gtk_box_pack_start (GTK_BOX (fiad_options_vbox), hbox6, FALSE, FALSE, 0);
  897.  
  898.   checkbutton2 = gtk_check_button_new_with_label ("");
  899.   checkbutton2_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (checkbutton2)->child),
  900.                                    "_Convert file headers to:");
  901.   gtk_widget_add_accelerator (checkbutton2, "clicked", accel_group,
  902.                               checkbutton2_key, GDK_MOD1_MASK, 0);
  903.   gtk_widget_ref (checkbutton2);
  904.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "checkbutton2", checkbutton2,
  905.                             (GtkDestroyNotify) gtk_widget_unref);
  906.   gtk_widget_show (checkbutton2);
  907.   gtk_box_pack_start (GTK_BOX (hbox6), checkbutton2, FALSE, FALSE, 0);
  908.  
  909.   fiad_file_format_hbox = gtk_hbox_new (FALSE, 0);
  910.   gtk_widget_ref (fiad_file_format_hbox);
  911.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "fiad_file_format_hbox", fiad_file_format_hbox,
  912.                             (GtkDestroyNotify) gtk_widget_unref);
  913.   gtk_widget_show (fiad_file_format_hbox);
  914.   gtk_box_pack_start (GTK_BOX (hbox6), fiad_file_format_hbox, TRUE, TRUE, 0);
  915.  
  916.   radiobutton2 = gtk_radio_button_new_with_label (fiad_format_radio_buttons_group, "");
  917.   radiobutton2_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (radiobutton2)->child),
  918.                                    "_V9t9");
  919.   gtk_widget_add_accelerator (radiobutton2, "clicked", accel_group,
  920.                               radiobutton2_key, GDK_MOD1_MASK, 0);
  921.   fiad_format_radio_buttons_group = gtk_radio_button_group (GTK_RADIO_BUTTON (radiobutton2));
  922.   gtk_widget_ref (radiobutton2);
  923.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "radiobutton2", radiobutton2,
  924.                             (GtkDestroyNotify) gtk_widget_unref);
  925.   gtk_widget_show (radiobutton2);
  926.   gtk_box_pack_start (GTK_BOX (fiad_file_format_hbox), radiobutton2, TRUE, FALSE, 0);
  927.  
  928.   radiobutton3 = gtk_radio_button_new_with_label (fiad_format_radio_buttons_group, "");
  929.   radiobutton3_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (radiobutton3)->child),
  930.                                    "_TIFILES");
  931.   gtk_widget_add_accelerator (radiobutton3, "clicked", accel_group,
  932.                               radiobutton3_key, GDK_MOD1_MASK, 0);
  933.   fiad_format_radio_buttons_group = gtk_radio_button_group (GTK_RADIO_BUTTON (radiobutton3));
  934.   gtk_widget_ref (radiobutton3);
  935.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "radiobutton3", radiobutton3,
  936.                             (GtkDestroyNotify) gtk_widget_unref);
  937.   gtk_widget_show (radiobutton3);
  938.   gtk_box_pack_start (GTK_BOX (fiad_file_format_hbox), radiobutton3, TRUE, FALSE, 0);
  939.  
  940.   checkbutton5 = gtk_check_button_new_with_label ("");
  941.   checkbutton5_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (checkbutton5)->child),
  942.                                    "Treat _unknown files as DIS/VAR 80");
  943.   gtk_widget_add_accelerator (checkbutton5, "clicked", accel_group,
  944.                               checkbutton5_key, GDK_MOD1_MASK, 0);
  945.   gtk_widget_ref (checkbutton5);
  946.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "checkbutton5", checkbutton5,
  947.                             (GtkDestroyNotify) gtk_widget_unref);
  948.   gtk_widget_show (checkbutton5);
  949.   gtk_box_pack_start (GTK_BOX (fiad_options_vbox), checkbutton5, FALSE, FALSE, 0);
  950.  
  951.   checkbutton6 = gtk_check_button_new_with_label ("");
  952.   checkbutton6_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (checkbutton6)->child),
  953.                                    "Allow \"DSKx.\" catalogs _longer than 127 filenames");
  954.   gtk_widget_add_accelerator (checkbutton6, "clicked", accel_group,
  955.                               checkbutton6_key, GDK_MOD1_MASK, 0);
  956.   gtk_widget_ref (checkbutton6);
  957.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "checkbutton6", checkbutton6,
  958.                             (GtkDestroyNotify) gtk_widget_unref);
  959.   gtk_widget_show (checkbutton6);
  960.   gtk_box_pack_start (GTK_BOX (fiad_options_vbox), checkbutton6, FALSE, FALSE, 0);
  961.  
  962.   checkbutton7 = gtk_check_button_new_with_label ("");
  963.   checkbutton7_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (checkbutton7)->child),
  964.                                    "_Repair damaged V9t9 files");
  965.   gtk_widget_add_accelerator (checkbutton7, "clicked", accel_group,
  966.                               checkbutton7_key, GDK_MOD1_MASK, 0);
  967.   gtk_widget_ref (checkbutton7);
  968.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "checkbutton7", checkbutton7,
  969.                             (GtkDestroyNotify) gtk_widget_unref);
  970.   gtk_widget_show (checkbutton7);
  971.   gtk_box_pack_start (GTK_BOX (fiad_options_vbox), checkbutton7, FALSE, FALSE, 0);
  972.  
  973.   checkbutton8 = gtk_check_button_new_with_label ("");
  974.   checkbutton8_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (checkbutton8)->child),
  975.                                    "_Fixup filenames for files created with V9t9 for DOS");
  976.   gtk_widget_add_accelerator (checkbutton8, "clicked", accel_group,
  977.                               checkbutton8_key, GDK_MOD1_MASK, 0);
  978.   gtk_widget_ref (checkbutton8);
  979.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "checkbutton8", checkbutton8,
  980.                             (GtkDestroyNotify) gtk_widget_unref);
  981.   gtk_widget_show (checkbutton8);
  982.   gtk_box_pack_start (GTK_BOX (fiad_options_vbox), checkbutton8, FALSE, FALSE, 0);
  983.  
  984.   checkbutton9 = gtk_check_button_new_with_label ("");
  985.   checkbutton9_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (checkbutton9)->child),
  986.                                    "_Generate filenames compatible with V9t9 for DOS");
  987.   gtk_widget_add_accelerator (checkbutton9, "clicked", accel_group,
  988.                               checkbutton9_key, GDK_MOD1_MASK, 0);
  989.   gtk_widget_ref (checkbutton9);
  990.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "checkbutton9", checkbutton9,
  991.                             (GtkDestroyNotify) gtk_widget_unref);
  992.   gtk_widget_show (checkbutton9);
  993.   gtk_box_pack_start (GTK_BOX (fiad_options_vbox), checkbutton9, FALSE, FALSE, 0);
  994.  
  995.   frame8 = gtk_frame_new ("DSR ROM Selection");
  996.   gtk_widget_ref (frame8);
  997.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "frame8", frame8,
  998.                             (GtkDestroyNotify) gtk_widget_unref);
  999.   gtk_widget_show (frame8);
  1000.   gtk_box_pack_start (GTK_BOX (fiad_options_vbox), frame8, TRUE, TRUE, 0);
  1001.   gtk_container_set_border_width (GTK_CONTAINER (frame8), 4);
  1002.  
  1003.   table1 = gtk_table_new (2, 3, FALSE);
  1004.   gtk_widget_ref (table1);
  1005.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "table1", table1,
  1006.                             (GtkDestroyNotify) gtk_widget_unref);
  1007.   gtk_widget_show (table1);
  1008.   gtk_container_add (GTK_CONTAINER (frame8), table1);
  1009.  
  1010.   emu_lone_dsr_entry = gtk_entry_new ();
  1011.   gtk_widget_ref (emu_lone_dsr_entry);
  1012.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "emu_lone_dsr_entry", emu_lone_dsr_entry,
  1013.                             (GtkDestroyNotify) gtk_widget_unref);
  1014.   gtk_widget_show (emu_lone_dsr_entry);
  1015.   gtk_table_attach (GTK_TABLE (table1), emu_lone_dsr_entry, 1, 2, 0, 1,
  1016.                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  1017.                     (GtkAttachOptions) (0), 0, 0);
  1018.  
  1019.   emu_shared_dsr_entry = gtk_entry_new ();
  1020.   gtk_widget_ref (emu_shared_dsr_entry);
  1021.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "emu_shared_dsr_entry", emu_shared_dsr_entry,
  1022.                             (GtkDestroyNotify) gtk_widget_unref);
  1023.   gtk_widget_show (emu_shared_dsr_entry);
  1024.   gtk_table_attach (GTK_TABLE (table1), emu_shared_dsr_entry, 1, 2, 1, 2,
  1025.                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  1026.                     (GtkAttachOptions) (0), 0, 0);
  1027.  
  1028.   label26 = gtk_label_new ("");
  1029.   label26_key = gtk_label_parse_uline (GTK_LABEL (label26),
  1030.                                    "_Lone");
  1031.   gtk_widget_ref (label26);
  1032.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "label26", label26,
  1033.                             (GtkDestroyNotify) gtk_widget_unref);
  1034.   gtk_widget_show (label26);
  1035.   gtk_table_attach (GTK_TABLE (table1), label26, 0, 1, 0, 1,
  1036.                     (GtkAttachOptions) (GTK_EXPAND),
  1037.                     (GtkAttachOptions) (0), 0, 0);
  1038.  
  1039.   label27 = gtk_label_new ("");
  1040.   label27_key = gtk_label_parse_uline (GTK_LABEL (label27),
  1041.                                    "_Shared");
  1042.   gtk_widget_ref (label27);
  1043.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "label27", label27,
  1044.                             (GtkDestroyNotify) gtk_widget_unref);
  1045.   gtk_widget_show (label27);
  1046.   gtk_table_attach (GTK_TABLE (table1), label27, 0, 1, 1, 2,
  1047.                     (GtkAttachOptions) (GTK_EXPAND),
  1048.                     (GtkAttachOptions) (0), 0, 0);
  1049.  
  1050.   button30 = gtk_button_new_with_label ("Choose...");
  1051.   gtk_widget_ref (button30);
  1052.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "button30", button30,
  1053.                             (GtkDestroyNotify) gtk_widget_unref);
  1054.   gtk_widget_show (button30);
  1055.   gtk_table_attach (GTK_TABLE (table1), button30, 2, 3, 0, 1,
  1056.                     (GtkAttachOptions) (GTK_EXPAND),
  1057.                     (GtkAttachOptions) (0), 0, 0);
  1058.   gtk_container_set_border_width (GTK_CONTAINER (button30), 4);
  1059.  
  1060.   button31 = gtk_button_new_with_label ("Choose...");
  1061.   gtk_widget_ref (button31);
  1062.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "button31", button31,
  1063.                             (GtkDestroyNotify) gtk_widget_unref);
  1064.   gtk_widget_show (button31);
  1065.   gtk_table_attach (GTK_TABLE (table1), button31, 2, 3, 1, 2,
  1066.                     (GtkAttachOptions) (GTK_EXPAND),
  1067.                     (GtkAttachOptions) (0), 0, 0);
  1068.   gtk_container_set_border_width (GTK_CONTAINER (button31), 4);
  1069.  
  1070.   label24 = gtk_label_new ("File Directory Options");
  1071.   gtk_widget_ref (label24);
  1072.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "label24", label24,
  1073.                             (GtkDestroyNotify) gtk_widget_unref);
  1074.   gtk_widget_show (label24);
  1075.   gtk_notebook_set_tab_label (GTK_NOTEBOOK (disk_options_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (disk_options_notebook), 1), label24);
  1076.  
  1077.   doad_options_vbox = gtk_vbox_new (FALSE, 0);
  1078.   gtk_widget_ref (doad_options_vbox);
  1079.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "doad_options_vbox", doad_options_vbox,
  1080.                             (GtkDestroyNotify) gtk_widget_unref);
  1081.   gtk_widget_show (doad_options_vbox);
  1082.   gtk_container_add (GTK_CONTAINER (disk_options_notebook), doad_options_vbox);
  1083.  
  1084.   frame9 = gtk_frame_new ("DSR ROM Selection");
  1085.   gtk_widget_ref (frame9);
  1086.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "frame9", frame9,
  1087.                             (GtkDestroyNotify) gtk_widget_unref);
  1088.   gtk_widget_show (frame9);
  1089.   gtk_box_pack_start (GTK_BOX (doad_options_vbox), frame9, FALSE, FALSE, 0);
  1090.   gtk_container_set_border_width (GTK_CONTAINER (frame9), 4);
  1091.  
  1092.   table2 = gtk_table_new (1, 3, FALSE);
  1093.   gtk_widget_ref (table2);
  1094.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "table2", table2,
  1095.                             (GtkDestroyNotify) gtk_widget_unref);
  1096.   gtk_widget_show (table2);
  1097.   gtk_container_add (GTK_CONTAINER (frame9), table2);
  1098.  
  1099.   label29 = gtk_label_new ("");
  1100.   label29_key = gtk_label_parse_uline (GTK_LABEL (label29),
  1101.                                    "S_hared");
  1102.   gtk_widget_ref (label29);
  1103.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "label29", label29,
  1104.                             (GtkDestroyNotify) gtk_widget_unref);
  1105.   gtk_widget_show (label29);
  1106.   gtk_table_attach (GTK_TABLE (table2), label29, 0, 1, 0, 1,
  1107.                     (GtkAttachOptions) (GTK_EXPAND),
  1108.                     (GtkAttachOptions) (0), 0, 0);
  1109.  
  1110.   button34 = gtk_button_new_with_label ("Choose...");
  1111.   gtk_widget_ref (button34);
  1112.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "button34", button34,
  1113.                             (GtkDestroyNotify) gtk_widget_unref);
  1114.   gtk_widget_show (button34);
  1115.   gtk_table_attach (GTK_TABLE (table2), button34, 2, 3, 0, 1,
  1116.                     (GtkAttachOptions) (GTK_EXPAND),
  1117.                     (GtkAttachOptions) (0), 0, 0);
  1118.   gtk_container_set_border_width (GTK_CONTAINER (button34), 4);
  1119.  
  1120.   real_disk_dsr_entry = gtk_entry_new ();
  1121.   gtk_widget_ref (real_disk_dsr_entry);
  1122.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "real_disk_dsr_entry", real_disk_dsr_entry,
  1123.                             (GtkDestroyNotify) gtk_widget_unref);
  1124.   gtk_widget_show (real_disk_dsr_entry);
  1125.   gtk_table_attach (GTK_TABLE (table2), real_disk_dsr_entry, 1, 2, 0, 1,
  1126.                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  1127.                     (GtkAttachOptions) (0), 0, 0);
  1128.  
  1129.   label25 = gtk_label_new ("Disk Image Options");
  1130.   gtk_widget_ref (label25);
  1131.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "label25", label25,
  1132.                             (GtkDestroyNotify) gtk_widget_unref);
  1133.   gtk_widget_show (label25);
  1134.   gtk_notebook_set_tab_label (GTK_NOTEBOOK (disk_options_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (disk_options_notebook), 2), label25);
  1135.  
  1136.   hbox8 = gtk_hbox_new (TRUE, 0);
  1137.   gtk_widget_ref (hbox8);
  1138.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "hbox8", hbox8,
  1139.                             (GtkDestroyNotify) gtk_widget_unref);
  1140.   gtk_widget_show (hbox8);
  1141.   gtk_box_pack_start (GTK_BOX (dialog_vbox3), hbox8, TRUE, TRUE, 0);
  1142.   gtk_container_set_border_width (GTK_CONTAINER (hbox8), 4);
  1143.  
  1144.   checkbutton3 = gtk_check_button_new_with_label ("Use file directories (FIAD)");
  1145.   gtk_widget_ref (checkbutton3);
  1146.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "checkbutton3", checkbutton3,
  1147.                             (GtkDestroyNotify) gtk_widget_unref);
  1148.   gtk_widget_show (checkbutton3);
  1149.   gtk_box_pack_start (GTK_BOX (hbox8), checkbutton3, FALSE, FALSE, 0);
  1150.  
  1151.   checkbutton4 = gtk_check_button_new_with_label ("Use disk images (DOAD)");
  1152.   gtk_widget_ref (checkbutton4);
  1153.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "checkbutton4", checkbutton4,
  1154.                             (GtkDestroyNotify) gtk_widget_unref);
  1155.   gtk_widget_show (checkbutton4);
  1156.   gtk_box_pack_start (GTK_BOX (hbox8), checkbutton4, FALSE, FALSE, 0);
  1157.  
  1158.   dialog_action_area3 = GTK_DIALOG (disks_dialog)->action_area;
  1159.   gtk_object_set_data (GTK_OBJECT (disks_dialog), "dialog_action_area3", dialog_action_area3);
  1160.   gtk_widget_show (dialog_action_area3);
  1161.   gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area3), 10);
  1162.  
  1163.   close_button = gtk_button_new_with_label ("Close");
  1164.   gtk_widget_ref (close_button);
  1165.   gtk_object_set_data_full (GTK_OBJECT (disks_dialog), "close_button", close_button,
  1166.                             (GtkDestroyNotify) gtk_widget_unref);
  1167.   gtk_widget_show (close_button);
  1168.   gtk_box_pack_start (GTK_BOX (dialog_action_area3), close_button, FALSE, FALSE, 4);
  1169.   gtk_container_set_border_width (GTK_CONTAINER (close_button), 4);
  1170.   gtk_widget_add_accelerator (close_button, "hide", accel_group,
  1171.                               GDK_Escape, 0,
  1172.                               GTK_ACCEL_VISIBLE);
  1173.  
  1174.   gtk_signal_connect (GTK_OBJECT (disk_info_table), "realize",
  1175.                       GTK_SIGNAL_FUNC (on_disk_info_table_realize),
  1176.                       NULL);
  1177.   gtk_signal_connect (GTK_OBJECT (button25), "clicked",
  1178.                       GTK_SIGNAL_FUNC (on_disk_choose_button_clicked),
  1179.                       (gpointer)2);
  1180.   gtk_signal_connect (GTK_OBJECT (button27), "clicked",
  1181.                       GTK_SIGNAL_FUNC (on_disk_choose_button_clicked),
  1182.                       (gpointer)4);
  1183.   gtk_signal_connect (GTK_OBJECT (button28), "clicked",
  1184.                       GTK_SIGNAL_FUNC (on_disk_choose_button_clicked),
  1185.                       (gpointer)5);
  1186.   gtk_signal_connect (GTK_OBJECT (button29), "clicked",
  1187.                       GTK_SIGNAL_FUNC (on_disk_choose_button_clicked),
  1188.                       (gpointer)1);
  1189.   gtk_signal_connect (GTK_OBJECT (dsk1_entry), "activate",
  1190.                       GTK_SIGNAL_FUNC (on_disk_combo_entry_activate),
  1191.                       (gpointer)1);
  1192.   gtk_signal_connect (GTK_OBJECT (dsk2_entry), "activate",
  1193.                       GTK_SIGNAL_FUNC (on_disk_combo_entry_activate),
  1194.                       (gpointer)2);
  1195.   gtk_signal_connect (GTK_OBJECT (dsk3_entry), "activate",
  1196.                       GTK_SIGNAL_FUNC (on_disk_combo_entry_activate),
  1197.                       (gpointer)3);
  1198.   gtk_signal_connect (GTK_OBJECT (dsk4_entry), "activate",
  1199.                       GTK_SIGNAL_FUNC (on_disk_combo_entry_activate),
  1200.                       (gpointer)4);
  1201.   gtk_signal_connect (GTK_OBJECT (dsk5_entry), "activate",
  1202.                       GTK_SIGNAL_FUNC (on_disk_combo_entry_activate),
  1203.                       (gpointer)5);
  1204.   gtk_signal_connect (GTK_OBJECT (button32), "clicked",
  1205.                       GTK_SIGNAL_FUNC (on_disk_choose_button_clicked),
  1206.                       (gpointer)3);
  1207.   gtk_signal_connect (GTK_OBJECT (checkbutton2), "toggled",
  1208.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_command_toggle_not),
  1209.                       (gpointer *)"KeepFileFormat");
  1210.   gtk_signal_connect (GTK_OBJECT (checkbutton2), "realize",
  1211.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_inactive),
  1212.                       (gpointer *)"KeepFileFormat");
  1213.   gtk_signal_connect (GTK_OBJECT (checkbutton2), "toggled",
  1214.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_widget_enable),
  1215.                       (gpointer)fiad_file_format_hbox);
  1216.   gtk_signal_connect (GTK_OBJECT (checkbutton2), "realize",
  1217.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_widget_enable),
  1218.                       (gpointer *)fiad_file_format_hbox);
  1219.   gtk_signal_connect (GTK_OBJECT (radiobutton2), "clicked",
  1220.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_clicked),
  1221.                       (gpointer *)"NewFileFormat F_V9t9\n");
  1222.   gtk_signal_connect (GTK_OBJECT (radiobutton2), "realize",
  1223.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_active),
  1224.                       (gpointer *)"NewFileFormat");
  1225.   gtk_signal_connect (GTK_OBJECT (radiobutton3), "clicked",
  1226.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_clicked),
  1227.                       (gpointer *)"NewFileFormat F_TIFILES\n");
  1228.   gtk_signal_connect (GTK_OBJECT (radiobutton3), "realize",
  1229.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_active),
  1230.                       (gpointer *)"NewFileFormat");
  1231.   gtk_signal_connect (GTK_OBJECT (checkbutton5), "toggled",
  1232.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_command_toggle),
  1233.                       (gpointer *)"UnknownFileIsText");
  1234.   gtk_signal_connect (GTK_OBJECT (checkbutton5), "realize",
  1235.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_active),
  1236.                       (gpointer *)"UnknownFileIsText");
  1237.   gtk_signal_connect (GTK_OBJECT (checkbutton6), "toggled",
  1238.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_command_toggle),
  1239.                       (gpointer *)"AllowLongCatalogs");
  1240.   gtk_signal_connect (GTK_OBJECT (checkbutton6), "realize",
  1241.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_active),
  1242.                       (gpointer *)"AllowLongCatalogs");
  1243.   gtk_signal_connect (GTK_OBJECT (checkbutton7), "toggled",
  1244.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_command_toggle),
  1245.                       (gpointer *)"RepairDamagedFiles");
  1246.   gtk_signal_connect (GTK_OBJECT (checkbutton7), "realize",
  1247.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_active),
  1248.                       (gpointer *)"RepairDamagedFiles");
  1249.   gtk_signal_connect (GTK_OBJECT (checkbutton8), "toggled",
  1250.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_command_toggle),
  1251.                       (gpointer *)"FixupOldV9t9Filenames");
  1252.   gtk_signal_connect (GTK_OBJECT (checkbutton8), "realize",
  1253.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_active),
  1254.                       (gpointer *)"FixupOldV9t9Filenames");
  1255.   gtk_signal_connect (GTK_OBJECT (checkbutton9), "toggled",
  1256.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_command_toggle),
  1257.                       (gpointer *)"GenerateOldV9t9Filenames");
  1258.   gtk_signal_connect (GTK_OBJECT (checkbutton9), "realize",
  1259.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_active),
  1260.                       (gpointer *)"GenerateOldV9t9Filenames");
  1261.   gtk_signal_connect (GTK_OBJECT (emu_lone_dsr_entry), "activate",
  1262.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_activate),
  1263.                       (gpointer *)"EmuDiskDSRFilename");
  1264.   gtk_signal_connect (GTK_OBJECT (emu_lone_dsr_entry), "realize",
  1265.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_realize),
  1266.                       (gpointer *)"EmuDiskDSRFilename");
  1267.   gtk_signal_connect (GTK_OBJECT (emu_shared_dsr_entry), "activate",
  1268.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_activate),
  1269.                       (gpointer *)"EmuDiskSharedDSRFilename");
  1270.   gtk_signal_connect (GTK_OBJECT (emu_shared_dsr_entry), "realize",
  1271.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_realize),
  1272.                       (gpointer *)"EmuDiskSharedDSRFilename");
  1273.   gtk_signal_connect (GTK_OBJECT (button30), "clicked",
  1274.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_button_clicked),
  1275.                       emu_lone_dsr_entry);
  1276.   gtk_signal_connect (GTK_OBJECT (button31), "clicked",
  1277.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_button_clicked),
  1278.                       emu_shared_dsr_entry);
  1279.   gtk_signal_connect (GTK_OBJECT (button34), "clicked",
  1280.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_button_clicked),
  1281.                       real_disk_dsr_entry);
  1282.   gtk_signal_connect (GTK_OBJECT (real_disk_dsr_entry), "activate",
  1283.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_activate),
  1284.                       (gpointer *)"DiskDSRFilename");
  1285.   gtk_signal_connect (GTK_OBJECT (real_disk_dsr_entry), "realize",
  1286.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_realize),
  1287.                       (gpointer *)"DiskDSRFilename");
  1288.   gtk_signal_connect (GTK_OBJECT (checkbutton3), "toggled",
  1289.                       GTK_SIGNAL_FUNC (on_emu_disk_cb_toggled),
  1290.                       (gpointer *)disk_info_table);
  1291.   gtk_signal_connect (GTK_OBJECT (checkbutton3), "realize",
  1292.                       GTK_SIGNAL_FUNC (on_emu_disk_cb_realize),
  1293.                       (gpointer *)disk_info_table);
  1294.   gtk_signal_connect (GTK_OBJECT (checkbutton3), "toggled",
  1295.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_widget_enable),
  1296.                       (gpointer)fiad_options_vbox);
  1297.   gtk_signal_connect (GTK_OBJECT (checkbutton3), "realize",
  1298.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_widget_enable),
  1299.                       (gpointer )fiad_options_vbox);
  1300.   gtk_signal_connect (GTK_OBJECT (checkbutton4), "toggled",
  1301.                       GTK_SIGNAL_FUNC (on_real_disk_cb_toggled),
  1302.                       (gpointer *)disk_info_table);
  1303.   gtk_signal_connect (GTK_OBJECT (checkbutton4), "realize",
  1304.                       GTK_SIGNAL_FUNC (on_real_disk_cb_realize),
  1305.                       (gpointer *)disk_info_table);
  1306.   gtk_signal_connect (GTK_OBJECT (checkbutton4), "toggled",
  1307.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_widget_enable),
  1308.                       (gpointer)doad_options_vbox);
  1309.   gtk_signal_connect (GTK_OBJECT (checkbutton4), "realize",
  1310.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_widget_enable),
  1311.                       (gpointer)doad_options_vbox);
  1312.   gtk_signal_connect (GTK_OBJECT (close_button), "clicked",
  1313.                       GTK_SIGNAL_FUNC (on_disk_dialog_close_button_clicked),
  1314.                       NULL);
  1315.  
  1316.   gtk_widget_add_accelerator (dsk1_entry, "grab_focus", accel_group,
  1317.                               label18_key, GDK_MOD1_MASK, 0);
  1318.   gtk_widget_add_accelerator (dsk2_entry, "grab_focus", accel_group,
  1319.                               label19_key, GDK_MOD1_MASK, 0);
  1320.   gtk_widget_add_accelerator (dsk3_entry, "grab_focus", accel_group,
  1321.                               label20_key, GDK_MOD1_MASK, 0);
  1322.   gtk_widget_add_accelerator (dsk4_entry, "grab_focus", accel_group,
  1323.                               label21_key, GDK_MOD1_MASK, 0);
  1324.   gtk_widget_add_accelerator (dsk5_entry, "grab_focus", accel_group,
  1325.                               label22_key, GDK_MOD1_MASK, 0);
  1326.   gtk_widget_add_accelerator (emu_lone_dsr_entry, "grab_focus", accel_group,
  1327.                               label26_key, GDK_MOD1_MASK, 0);
  1328.   gtk_widget_add_accelerator (emu_shared_dsr_entry, "grab_focus", accel_group,
  1329.                               label27_key, GDK_MOD1_MASK, 0);
  1330.   gtk_widget_add_accelerator (real_disk_dsr_entry, "grab_focus", accel_group,
  1331.                               label29_key, GDK_MOD1_MASK, 0);
  1332.  
  1333.   gtk_window_add_accel_group (GTK_WINDOW (disks_dialog), accel_group);
  1334.  
  1335.   return disks_dialog;
  1336. }
  1337.  
  1338. GtkWidget*
  1339. create_modules_dialog (void)
  1340. {
  1341.   GtkWidget *modules_dialog;
  1342.   GtkWidget *dialog_vbox2;
  1343.   GtkWidget *scrolledwindow2;
  1344.   GtkWidget *module_clist;
  1345.   GtkWidget *label_text_name;
  1346.   GtkWidget *label_tag;
  1347.   GtkWidget *label_commands;
  1348.   GtkWidget *dialog_action_area2;
  1349.   GtkWidget *vbox2;
  1350.   GtkWidget *hbox2;
  1351.   guint show_commands_cb_key;
  1352.   GtkWidget *show_commands_cb;
  1353.   guint reset_computer_cb_key;
  1354.   GtkWidget *reset_computer_cb;
  1355.   GtkWidget *hbox1;
  1356.   guint unload_current_button_key;
  1357.   GtkWidget *unload_current_button;
  1358.   GtkWidget *vseparator2;
  1359.   GtkWidget *close_button;
  1360.   guint load_button_key;
  1361.   GtkWidget *load_button;
  1362.   guint refresh_button_key;
  1363.   GtkWidget *refresh_button;
  1364.   GtkAccelGroup *accel_group;
  1365.   GtkTooltips *tooltips;
  1366.  
  1367.   tooltips = gtk_tooltips_new ();
  1368.  
  1369.   accel_group = gtk_accel_group_new ();
  1370.  
  1371.   modules_dialog = gtk_dialog_new ();
  1372.   gtk_object_set_data (GTK_OBJECT (modules_dialog), "modules_dialog", modules_dialog);
  1373.   gtk_window_set_title (GTK_WINDOW (modules_dialog), "Modules");
  1374.   gtk_window_set_default_size (GTK_WINDOW (modules_dialog), 400, 400);
  1375.  
  1376.   dialog_vbox2 = GTK_DIALOG (modules_dialog)->vbox;
  1377.   gtk_object_set_data (GTK_OBJECT (modules_dialog), "dialog_vbox2", dialog_vbox2);
  1378.   gtk_widget_show (dialog_vbox2);
  1379.  
  1380.   scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);
  1381.   gtk_widget_ref (scrolledwindow2);
  1382.   gtk_object_set_data_full (GTK_OBJECT (modules_dialog), "scrolledwindow2", scrolledwindow2,
  1383.                             (GtkDestroyNotify) gtk_widget_unref);
  1384.   gtk_widget_show (scrolledwindow2);
  1385.   gtk_box_pack_start (GTK_BOX (dialog_vbox2), scrolledwindow2, TRUE, TRUE, 0);
  1386.   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
  1387.  
  1388.   module_clist = gtk_clist_new (3);
  1389.   gtk_widget_ref (module_clist);
  1390.   gtk_object_set_data_full (GTK_OBJECT (modules_dialog), "module_clist", module_clist,
  1391.                             (GtkDestroyNotify) gtk_widget_unref);
  1392.   gtk_widget_show (module_clist);
  1393.   gtk_container_add (GTK_CONTAINER (scrolledwindow2), module_clist);
  1394.   GTK_WIDGET_SET_FLAGS (module_clist, GTK_CAN_DEFAULT);
  1395.   gtk_clist_set_column_width (GTK_CLIST (module_clist), 0, 216);
  1396.   gtk_clist_set_column_width (GTK_CLIST (module_clist), 1, 71);
  1397.   gtk_clist_set_column_width (GTK_CLIST (module_clist), 2, 512);
  1398.   gtk_clist_set_selection_mode (GTK_CLIST (module_clist), GTK_SELECTION_BROWSE);
  1399.   gtk_clist_column_titles_show (GTK_CLIST (module_clist));
  1400.  
  1401.   label_text_name = gtk_label_new ("Name");
  1402.   gtk_widget_ref (label_text_name);
  1403.   gtk_object_set_data_full (GTK_OBJECT (modules_dialog), "label_text_name", label_text_name,
  1404.                             (GtkDestroyNotify) gtk_widget_unref);
  1405.   gtk_widget_show (label_text_name);
  1406.   gtk_clist_set_column_widget (GTK_CLIST (module_clist), 0, label_text_name);
  1407.  
  1408.   label_tag = gtk_label_new ("Tag");
  1409.   gtk_widget_ref (label_tag);
  1410.   gtk_object_set_data_full (GTK_OBJECT (modules_dialog), "label_tag", label_tag,
  1411.                             (GtkDestroyNotify) gtk_widget_unref);
  1412.   gtk_widget_show (label_tag);
  1413.   gtk_clist_set_column_widget (GTK_CLIST (module_clist), 1, label_tag);
  1414.  
  1415.   label_commands = gtk_label_new ("Commands");
  1416.   gtk_widget_ref (label_commands);
  1417.   gtk_object_set_data_full (GTK_OBJECT (modules_dialog), "label_commands", label_commands,
  1418.                             (GtkDestroyNotify) gtk_widget_unref);
  1419.   gtk_widget_show (label_commands);
  1420.   gtk_clist_set_column_widget (GTK_CLIST (module_clist), 2, label_commands);
  1421.   gtk_misc_set_alignment (GTK_MISC (label_commands), 0, 0.5);
  1422.  
  1423.   dialog_action_area2 = GTK_DIALOG (modules_dialog)->action_area;
  1424.   gtk_object_set_data (GTK_OBJECT (modules_dialog), "dialog_action_area2", dialog_action_area2);
  1425.   gtk_widget_show (dialog_action_area2);
  1426.   gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area2), 10);
  1427.  
  1428.   vbox2 = gtk_vbox_new (TRUE, 0);
  1429.   gtk_widget_ref (vbox2);
  1430.   gtk_object_set_data_full (GTK_OBJECT (modules_dialog), "vbox2", vbox2,
  1431.                             (GtkDestroyNotify) gtk_widget_unref);
  1432.   gtk_widget_show (vbox2);
  1433.   gtk_box_pack_start (GTK_BOX (dialog_action_area2), vbox2, FALSE, TRUE, 0);
  1434.  
  1435.   hbox2 = gtk_hbox_new (FALSE, 0);
  1436.   gtk_widget_ref (hbox2);
  1437.   gtk_object_set_data_full (GTK_OBJECT (modules_dialog), "hbox2", hbox2,
  1438.                             (GtkDestroyNotify) gtk_widget_unref);
  1439.   gtk_widget_show (hbox2);
  1440.   gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, FALSE, 0);
  1441.  
  1442.   show_commands_cb = gtk_check_button_new_with_label ("");
  1443.   show_commands_cb_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (show_commands_cb)->child),
  1444.                                    "Show _setup commands");
  1445.   gtk_widget_add_accelerator (show_commands_cb, "clicked", accel_group,
  1446.                               show_commands_cb_key, GDK_MOD1_MASK, 0);
  1447.   gtk_widget_ref (show_commands_cb);
  1448.   gtk_object_set_data_full (GTK_OBJECT (modules_dialog), "show_commands_cb", show_commands_cb,
  1449.                             (GtkDestroyNotify) gtk_widget_unref);
  1450.   gtk_widget_show (show_commands_cb);
  1451.   gtk_box_pack_start (GTK_BOX (hbox2), show_commands_cb, TRUE, TRUE, 0);
  1452.   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (show_commands_cb), TRUE);
  1453.  
  1454.   reset_computer_cb = gtk_check_button_new_with_label ("");
  1455.   reset_computer_cb_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (reset_computer_cb)->child),
  1456.                                    "_Reset computer after load");
  1457.   gtk_widget_add_accelerator (reset_computer_cb, "clicked", accel_group,
  1458.                               reset_computer_cb_key, GDK_MOD1_MASK, 0);
  1459.   gtk_widget_ref (reset_computer_cb);
  1460.   gtk_object_set_data_full (GTK_OBJECT (modules_dialog), "reset_computer_cb", reset_computer_cb,
  1461.                             (GtkDestroyNotify) gtk_widget_unref);
  1462.   gtk_widget_show (reset_computer_cb);
  1463.   gtk_box_pack_start (GTK_BOX (hbox2), reset_computer_cb, TRUE, TRUE, 0);
  1464.   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (reset_computer_cb), TRUE);
  1465.  
  1466.   hbox1 = gtk_hbox_new (TRUE, 4);
  1467.   gtk_widget_ref (hbox1);
  1468.   gtk_object_set_data_full (GTK_OBJECT (modules_dialog), "hbox1", hbox1,
  1469.                             (GtkDestroyNotify) gtk_widget_unref);
  1470.   gtk_widget_show (hbox1);
  1471.   gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0);
  1472.  
  1473.   unload_current_button = gtk_button_new_with_label ("");
  1474.   unload_current_button_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (unload_current_button)->child),
  1475.                                    "_Unload");
  1476.   gtk_widget_add_accelerator (unload_current_button, "clicked", accel_group,
  1477.                               unload_current_button_key, GDK_MOD1_MASK, 0);
  1478.   gtk_widget_ref (unload_current_button);
  1479.   gtk_object_set_data_full (GTK_OBJECT (modules_dialog), "unload_current_button", unload_current_button,
  1480.                             (GtkDestroyNotify) gtk_widget_unref);
  1481.   gtk_widget_show (unload_current_button);
  1482.   gtk_box_pack_start (GTK_BOX (hbox1), unload_current_button, FALSE, TRUE, 0);
  1483.   gtk_container_set_border_width (GTK_CONTAINER (unload_current_button), 4);
  1484.   gtk_tooltips_set_tip (tooltips, unload_current_button, "Pull out the module while V9t9 is running", NULL);
  1485.   gtk_widget_add_accelerator (unload_current_button, "clicked", accel_group,
  1486.                               GDK_u, GDK_MOD1_MASK,
  1487.                               GTK_ACCEL_VISIBLE);
  1488.  
  1489.   vseparator2 = gtk_vseparator_new ();
  1490.   gtk_widget_ref (vseparator2);
  1491.   gtk_object_set_data_full (GTK_OBJECT (modules_dialog), "vseparator2", vseparator2,
  1492.                             (GtkDestroyNotify) gtk_widget_unref);
  1493.   gtk_widget_show (vseparator2);
  1494.   gtk_box_pack_start (GTK_BOX (hbox1), vseparator2, TRUE, TRUE, 0);
  1495.  
  1496.   close_button = gtk_button_new_with_label ("Close");
  1497.   gtk_widget_ref (close_button);
  1498.   gtk_object_set_data_full (GTK_OBJECT (modules_dialog), "close_button", close_button,
  1499.                             (GtkDestroyNotify) gtk_widget_unref);
  1500.   gtk_widget_show (close_button);
  1501.   gtk_box_pack_end (GTK_BOX (hbox1), close_button, FALSE, TRUE, 0);
  1502.   gtk_container_set_border_width (GTK_CONTAINER (close_button), 4);
  1503.   gtk_widget_add_accelerator (close_button, "clicked", accel_group,
  1504.                               GDK_Escape, 0,
  1505.                               GTK_ACCEL_VISIBLE);
  1506.  
  1507.   load_button = gtk_button_new_with_label ("");
  1508.   load_button_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (load_button)->child),
  1509.                                    "_Load");
  1510.   gtk_widget_add_accelerator (load_button, "clicked", accel_group,
  1511.                               load_button_key, GDK_MOD1_MASK, 0);
  1512.   gtk_widget_ref (load_button);
  1513.   gtk_object_set_data_full (GTK_OBJECT (modules_dialog), "load_button", load_button,
  1514.                             (GtkDestroyNotify) gtk_widget_unref);
  1515.   gtk_widget_show (load_button);
  1516.   gtk_box_pack_end (GTK_BOX (hbox1), load_button, FALSE, TRUE, 0);
  1517.   gtk_container_set_border_width (GTK_CONTAINER (load_button), 4);
  1518.   gtk_tooltips_set_tip (tooltips, load_button, "Insert module", NULL);
  1519.   gtk_widget_add_accelerator (load_button, "clicked", accel_group,
  1520.                               GDK_l, GDK_MOD1_MASK,
  1521.                               GTK_ACCEL_VISIBLE);
  1522.   gtk_widget_add_accelerator (load_button, "clicked", accel_group,
  1523.                               GDK_Return, 0,
  1524.                               GTK_ACCEL_VISIBLE);
  1525.  
  1526.   refresh_button = gtk_button_new_with_label ("");
  1527.   refresh_button_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (refresh_button)->child),
  1528.                                    "Re_fresh");
  1529.   gtk_widget_add_accelerator (refresh_button, "clicked", accel_group,
  1530.                               refresh_button_key, GDK_MOD1_MASK, 0);
  1531.   gtk_widget_ref (refresh_button);
  1532.   gtk_object_set_data_full (GTK_OBJECT (modules_dialog), "refresh_button", refresh_button,
  1533.                             (GtkDestroyNotify) gtk_widget_unref);
  1534.   gtk_widget_show (refresh_button);
  1535.   gtk_box_pack_end (GTK_BOX (hbox1), refresh_button, FALSE, TRUE, 0);
  1536.   gtk_container_set_border_width (GTK_CONTAINER (refresh_button), 4);
  1537.   gtk_tooltips_set_tip (tooltips, refresh_button, "Reload module database from \"modules.inf\"", NULL);
  1538.   gtk_widget_add_accelerator (refresh_button, "clicked", accel_group,
  1539.                               GDK_f, GDK_MOD1_MASK,
  1540.                               GTK_ACCEL_VISIBLE);
  1541.  
  1542.   gtk_signal_connect (GTK_OBJECT (module_clist), "click_column",
  1543.                       GTK_SIGNAL_FUNC (on_module_clist_click_column),
  1544.                       NULL);
  1545.   gtk_signal_connect (GTK_OBJECT (module_clist), "realize",
  1546.                       GTK_SIGNAL_FUNC (on_module_clist_realize),
  1547.                       NULL);
  1548.   gtk_signal_connect (GTK_OBJECT (module_clist), "event",
  1549.                       GTK_SIGNAL_FUNC (on_module_clist_event),
  1550.                       module_clist);
  1551.   gtk_signal_connect_after (GTK_OBJECT (module_clist), "key_press_event",
  1552.                             GTK_SIGNAL_FUNC (on_clist_key_press_event),
  1553.                             (gpointer)0);
  1554.   gtk_signal_connect_after (GTK_OBJECT (module_clist), "key_press_event",
  1555.                             GTK_SIGNAL_FUNC (on_clist_key_press_event),
  1556.                             (gpointer)1);
  1557.   gtk_signal_connect (GTK_OBJECT (module_clist), "key_release_event",
  1558.                       GTK_SIGNAL_FUNC (on_clist_key_release_event),
  1559.                       NULL);
  1560.   gtk_signal_connect (GTK_OBJECT (show_commands_cb), "toggled",
  1561.                       GTK_SIGNAL_FUNC (on_show_commands_cb_toggled),
  1562.                       module_clist);
  1563.   gtk_signal_connect (GTK_OBJECT (reset_computer_cb), "toggled",
  1564.                       GTK_SIGNAL_FUNC (on_reset_computer_cb_toggled),
  1565.                       NULL);
  1566.   gtk_signal_connect (GTK_OBJECT (unload_current_button), "clicked",
  1567.                       GTK_SIGNAL_FUNC (on_unload_current_button_clicked),
  1568.                       NULL);
  1569.   gtk_signal_connect (GTK_OBJECT (close_button), "clicked",
  1570.                       GTK_SIGNAL_FUNC (on_module_clist_close_button_clicked),
  1571.                       module_clist);
  1572.   gtk_signal_connect (GTK_OBJECT (load_button), "clicked",
  1573.                       GTK_SIGNAL_FUNC (on_module_clist_load_button_clicked),
  1574.                       module_clist);
  1575.   gtk_signal_connect (GTK_OBJECT (refresh_button), "clicked",
  1576.                       GTK_SIGNAL_FUNC (on_modules_refresh_button_clicked),
  1577.                       module_clist);
  1578.  
  1579.   gtk_widget_grab_focus (module_clist);
  1580.   gtk_object_set_data (GTK_OBJECT (modules_dialog), "tooltips", tooltips);
  1581.  
  1582.   gtk_window_add_accel_group (GTK_WINDOW (modules_dialog), accel_group);
  1583.  
  1584.   return modules_dialog;
  1585. }
  1586.  
  1587. GtkWidget*
  1588. create_debugger_window (void)
  1589. {
  1590.   GtkWidget *debugger_window;
  1591.   GtkWidget *vbox7;
  1592.   GtkWidget *hbox4;
  1593.   GtkWidget *registers_frame;
  1594.   GtkWidget *vbox8;
  1595.   GtkWidget *debugger_registers_table;
  1596.   GtkWidget *wp_edit_hbox;
  1597.   GtkWidget *label6;
  1598.   GtkWidget *debugger_wp_entry;
  1599.   GtkWidget *pc_edit_hbox;
  1600.   GtkWidget *label7;
  1601.   GtkWidget *debugger_pc_entry;
  1602.   GtkWidget *st_edit_hbox;
  1603.   GtkWidget *label8;
  1604.   GtkWidget *debugger_st_entry;
  1605.   GtkWidget *hpaned1;
  1606.   GtkWidget *instructions_frame;
  1607.   GtkWidget *instructions_scrolledwindow;
  1608.   GtkWidget *debugger_instruction_box;
  1609.   GtkWidget *vpaned1;
  1610.   GtkWidget *cpu_1_memory_frame;
  1611.   GtkWidget *text1;
  1612.   GtkWidget *vpaned2;
  1613.   GtkWidget *cpu_2_memory_frame;
  1614.   GtkWidget *text2;
  1615.   GtkWidget *vpaned3;
  1616.   GtkWidget *video_memory_frame;
  1617.   GtkWidget *text3;
  1618.   GtkWidget *vpaned4;
  1619.   GtkWidget *graphics_memory_frame;
  1620.   GtkWidget *text4;
  1621.   GtkWidget *speech_memory_frame;
  1622.   GtkWidget *text5;
  1623.   GtkWidget *hbox10;
  1624.   guint button40_key;
  1625.   GtkWidget *button40;
  1626.   guint button41_key;
  1627.   GtkWidget *button41;
  1628.   guint button42_key;
  1629.   GtkWidget *button42;
  1630.   guint button43_key;
  1631.   GtkWidget *button43;
  1632.   GtkWidget *button44;
  1633.   GtkWidget *debugger_status_bar;
  1634.   GtkAccelGroup *accel_group;
  1635.   GtkTooltips *tooltips;
  1636.  
  1637.   tooltips = gtk_tooltips_new ();
  1638.  
  1639.   accel_group = gtk_accel_group_new ();
  1640.  
  1641.   debugger_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  1642.   gtk_object_set_data (GTK_OBJECT (debugger_window), "debugger_window", debugger_window);
  1643.   gtk_window_set_title (GTK_WINDOW (debugger_window), "V9t9 Debugger");
  1644.   gtk_window_set_default_size (GTK_WINDOW (debugger_window), 600, -1);
  1645.   gtk_window_set_policy (GTK_WINDOW (debugger_window), TRUE, TRUE, FALSE);
  1646.  
  1647.   vbox7 = gtk_vbox_new (FALSE, 0);
  1648.   gtk_widget_ref (vbox7);
  1649.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "vbox7", vbox7,
  1650.                             (GtkDestroyNotify) gtk_widget_unref);
  1651.   gtk_widget_show (vbox7);
  1652.   gtk_container_add (GTK_CONTAINER (debugger_window), vbox7);
  1653.  
  1654.   hbox4 = gtk_hbox_new (FALSE, 0);
  1655.   gtk_widget_ref (hbox4);
  1656.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "hbox4", hbox4,
  1657.                             (GtkDestroyNotify) gtk_widget_unref);
  1658.   gtk_widget_show (hbox4);
  1659.   gtk_box_pack_start (GTK_BOX (vbox7), hbox4, TRUE, TRUE, 0);
  1660.  
  1661.   registers_frame = gtk_frame_new ("Registers");
  1662.   gtk_widget_ref (registers_frame);
  1663.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "registers_frame", registers_frame,
  1664.                             (GtkDestroyNotify) gtk_widget_unref);
  1665.   gtk_widget_show (registers_frame);
  1666.   gtk_box_pack_start (GTK_BOX (hbox4), registers_frame, FALSE, TRUE, 0);
  1667.   gtk_container_set_border_width (GTK_CONTAINER (registers_frame), 2);
  1668.  
  1669.   vbox8 = gtk_vbox_new (FALSE, 0);
  1670.   gtk_widget_ref (vbox8);
  1671.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "vbox8", vbox8,
  1672.                             (GtkDestroyNotify) gtk_widget_unref);
  1673.   gtk_widget_show (vbox8);
  1674.   gtk_container_add (GTK_CONTAINER (registers_frame), vbox8);
  1675.  
  1676.   debugger_registers_table = gtk_table_new (1, 2, TRUE);
  1677.   gtk_widget_ref (debugger_registers_table);
  1678.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "debugger_registers_table", debugger_registers_table,
  1679.                             (GtkDestroyNotify) gtk_widget_unref);
  1680.   gtk_widget_show (debugger_registers_table);
  1681.   gtk_box_pack_start (GTK_BOX (vbox8), debugger_registers_table, FALSE, TRUE, 0);
  1682.   gtk_container_set_border_width (GTK_CONTAINER (debugger_registers_table), 2);
  1683.   gtk_table_set_col_spacings (GTK_TABLE (debugger_registers_table), 2);
  1684.  
  1685.   wp_edit_hbox = gtk_hbox_new (TRUE, 0);
  1686.   gtk_widget_ref (wp_edit_hbox);
  1687.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "wp_edit_hbox", wp_edit_hbox,
  1688.                             (GtkDestroyNotify) gtk_widget_unref);
  1689.   gtk_widget_show (wp_edit_hbox);
  1690.   gtk_box_pack_start (GTK_BOX (vbox8), wp_edit_hbox, FALSE, TRUE, 0);
  1691.   gtk_container_set_border_width (GTK_CONTAINER (wp_edit_hbox), 2);
  1692.  
  1693.   label6 = gtk_label_new ("WP");
  1694.   gtk_widget_ref (label6);
  1695.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "label6", label6,
  1696.                             (GtkDestroyNotify) gtk_widget_unref);
  1697.   gtk_widget_show (label6);
  1698.   gtk_box_pack_start (GTK_BOX (wp_edit_hbox), label6, FALSE, FALSE, 4);
  1699.  
  1700.   debugger_wp_entry = gtk_entry_new_with_max_length (6);
  1701.   gtk_widget_ref (debugger_wp_entry);
  1702.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "debugger_wp_entry", debugger_wp_entry,
  1703.                             (GtkDestroyNotify) gtk_widget_unref);
  1704.   gtk_widget_show (debugger_wp_entry);
  1705.   gtk_box_pack_start (GTK_BOX (wp_edit_hbox), debugger_wp_entry, TRUE, TRUE, 2);
  1706.   gtk_entry_set_editable (GTK_ENTRY (debugger_wp_entry), FALSE);
  1707.  
  1708.   pc_edit_hbox = gtk_hbox_new (TRUE, 0);
  1709.   gtk_widget_ref (pc_edit_hbox);
  1710.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "pc_edit_hbox", pc_edit_hbox,
  1711.                             (GtkDestroyNotify) gtk_widget_unref);
  1712.   gtk_widget_show (pc_edit_hbox);
  1713.   gtk_box_pack_start (GTK_BOX (vbox8), pc_edit_hbox, FALSE, TRUE, 0);
  1714.   gtk_container_set_border_width (GTK_CONTAINER (pc_edit_hbox), 2);
  1715.  
  1716.   label7 = gtk_label_new ("PC");
  1717.   gtk_widget_ref (label7);
  1718.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "label7", label7,
  1719.                             (GtkDestroyNotify) gtk_widget_unref);
  1720.   gtk_widget_show (label7);
  1721.   gtk_box_pack_start (GTK_BOX (pc_edit_hbox), label7, FALSE, FALSE, 4);
  1722.  
  1723.   debugger_pc_entry = gtk_entry_new_with_max_length (6);
  1724.   gtk_widget_ref (debugger_pc_entry);
  1725.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "debugger_pc_entry", debugger_pc_entry,
  1726.                             (GtkDestroyNotify) gtk_widget_unref);
  1727.   gtk_widget_show (debugger_pc_entry);
  1728.   gtk_box_pack_start (GTK_BOX (pc_edit_hbox), debugger_pc_entry, TRUE, TRUE, 2);
  1729.   gtk_entry_set_editable (GTK_ENTRY (debugger_pc_entry), FALSE);
  1730.  
  1731.   st_edit_hbox = gtk_hbox_new (TRUE, 0);
  1732.   gtk_widget_ref (st_edit_hbox);
  1733.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "st_edit_hbox", st_edit_hbox,
  1734.                             (GtkDestroyNotify) gtk_widget_unref);
  1735.   gtk_widget_show (st_edit_hbox);
  1736.   gtk_box_pack_start (GTK_BOX (vbox8), st_edit_hbox, FALSE, TRUE, 0);
  1737.   gtk_container_set_border_width (GTK_CONTAINER (st_edit_hbox), 2);
  1738.  
  1739.   label8 = gtk_label_new ("Status");
  1740.   gtk_widget_ref (label8);
  1741.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "label8", label8,
  1742.                             (GtkDestroyNotify) gtk_widget_unref);
  1743.   gtk_widget_show (label8);
  1744.   gtk_box_pack_start (GTK_BOX (st_edit_hbox), label8, FALSE, FALSE, 0);
  1745.  
  1746.   debugger_st_entry = gtk_entry_new_with_max_length (6);
  1747.   gtk_widget_ref (debugger_st_entry);
  1748.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "debugger_st_entry", debugger_st_entry,
  1749.                             (GtkDestroyNotify) gtk_widget_unref);
  1750.   gtk_widget_show (debugger_st_entry);
  1751.   gtk_box_pack_start (GTK_BOX (st_edit_hbox), debugger_st_entry, TRUE, TRUE, 2);
  1752.   gtk_entry_set_editable (GTK_ENTRY (debugger_st_entry), FALSE);
  1753.  
  1754.   hpaned1 = gtk_hpaned_new ();
  1755.   gtk_widget_ref (hpaned1);
  1756.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "hpaned1", hpaned1,
  1757.                             (GtkDestroyNotify) gtk_widget_unref);
  1758.   gtk_widget_show (hpaned1);
  1759.   gtk_box_pack_start (GTK_BOX (hbox4), hpaned1, TRUE, TRUE, 0);
  1760.   gtk_container_set_border_width (GTK_CONTAINER (hpaned1), 1);
  1761.   gtk_paned_set_gutter_size (GTK_PANED (hpaned1), 8);
  1762.   gtk_paned_set_position (GTK_PANED (hpaned1), 0);
  1763.  
  1764.   instructions_frame = gtk_frame_new ("Instructions");
  1765.   gtk_widget_ref (instructions_frame);
  1766.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "instructions_frame", instructions_frame,
  1767.                             (GtkDestroyNotify) gtk_widget_unref);
  1768.   gtk_widget_show (instructions_frame);
  1769.   gtk_paned_pack1 (GTK_PANED (hpaned1), instructions_frame, TRUE, FALSE);
  1770.  
  1771.   instructions_scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
  1772.   gtk_widget_ref (instructions_scrolledwindow);
  1773.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "instructions_scrolledwindow", instructions_scrolledwindow,
  1774.                             (GtkDestroyNotify) gtk_widget_unref);
  1775.   gtk_widget_show (instructions_scrolledwindow);
  1776.   gtk_container_add (GTK_CONTAINER (instructions_frame), instructions_scrolledwindow);
  1777.   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (instructions_scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
  1778.  
  1779.   debugger_instruction_box = gtk_text_new (NULL, NULL);
  1780.   gtk_widget_ref (debugger_instruction_box);
  1781.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "debugger_instruction_box", debugger_instruction_box,
  1782.                             (GtkDestroyNotify) gtk_widget_unref);
  1783.   gtk_widget_show (debugger_instruction_box);
  1784.   gtk_container_add (GTK_CONTAINER (instructions_scrolledwindow), debugger_instruction_box);
  1785.   GTK_WIDGET_UNSET_FLAGS (debugger_instruction_box, GTK_CAN_FOCUS);
  1786.  
  1787.   vpaned1 = gtk_vpaned_new ();
  1788.   gtk_widget_ref (vpaned1);
  1789.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "vpaned1", vpaned1,
  1790.                             (GtkDestroyNotify) gtk_widget_unref);
  1791.   gtk_widget_show (vpaned1);
  1792.   gtk_paned_pack2 (GTK_PANED (hpaned1), vpaned1, TRUE, TRUE);
  1793.   gtk_paned_set_gutter_size (GTK_PANED (vpaned1), 10);
  1794.   gtk_paned_set_position (GTK_PANED (vpaned1), 0);
  1795.  
  1796.   cpu_1_memory_frame = gtk_frame_new ("CPU Memory 1");
  1797.   gtk_widget_ref (cpu_1_memory_frame);
  1798.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "cpu_1_memory_frame", cpu_1_memory_frame,
  1799.                             (GtkDestroyNotify) gtk_widget_unref);
  1800.   gtk_widget_show (cpu_1_memory_frame);
  1801.   gtk_paned_pack1 (GTK_PANED (vpaned1), cpu_1_memory_frame, TRUE, FALSE);
  1802.   gtk_widget_set_usize (cpu_1_memory_frame, -2, 64);
  1803.   gtk_container_set_border_width (GTK_CONTAINER (cpu_1_memory_frame), 2);
  1804.   gtk_frame_set_shadow_type (GTK_FRAME (cpu_1_memory_frame), GTK_SHADOW_NONE);
  1805.  
  1806.   text1 = gtk_text_new (NULL, NULL);
  1807.   gtk_widget_ref (text1);
  1808.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "text1", text1,
  1809.                             (GtkDestroyNotify) gtk_widget_unref);
  1810.   gtk_widget_show (text1);
  1811.   gtk_container_add (GTK_CONTAINER (cpu_1_memory_frame), text1);
  1812.  
  1813.   vpaned2 = gtk_vpaned_new ();
  1814.   gtk_widget_ref (vpaned2);
  1815.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "vpaned2", vpaned2,
  1816.                             (GtkDestroyNotify) gtk_widget_unref);
  1817.   gtk_widget_show (vpaned2);
  1818.   gtk_paned_pack2 (GTK_PANED (vpaned1), vpaned2, TRUE, TRUE);
  1819.   gtk_paned_set_gutter_size (GTK_PANED (vpaned2), 10);
  1820.   gtk_paned_set_position (GTK_PANED (vpaned2), 1);
  1821.  
  1822.   cpu_2_memory_frame = gtk_frame_new ("CPU Memory 2");
  1823.   gtk_widget_ref (cpu_2_memory_frame);
  1824.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "cpu_2_memory_frame", cpu_2_memory_frame,
  1825.                             (GtkDestroyNotify) gtk_widget_unref);
  1826.   gtk_widget_show (cpu_2_memory_frame);
  1827.   gtk_paned_pack1 (GTK_PANED (vpaned2), cpu_2_memory_frame, TRUE, FALSE);
  1828.   gtk_widget_set_usize (cpu_2_memory_frame, -2, 64);
  1829.   gtk_container_set_border_width (GTK_CONTAINER (cpu_2_memory_frame), 2);
  1830.   gtk_frame_set_shadow_type (GTK_FRAME (cpu_2_memory_frame), GTK_SHADOW_NONE);
  1831.  
  1832.   text2 = gtk_text_new (NULL, NULL);
  1833.   gtk_widget_ref (text2);
  1834.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "text2", text2,
  1835.                             (GtkDestroyNotify) gtk_widget_unref);
  1836.   gtk_widget_show (text2);
  1837.   gtk_container_add (GTK_CONTAINER (cpu_2_memory_frame), text2);
  1838.  
  1839.   vpaned3 = gtk_vpaned_new ();
  1840.   gtk_widget_ref (vpaned3);
  1841.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "vpaned3", vpaned3,
  1842.                             (GtkDestroyNotify) gtk_widget_unref);
  1843.   gtk_widget_show (vpaned3);
  1844.   gtk_paned_pack2 (GTK_PANED (vpaned2), vpaned3, TRUE, TRUE);
  1845.   gtk_paned_set_gutter_size (GTK_PANED (vpaned3), 10);
  1846.   gtk_paned_set_position (GTK_PANED (vpaned3), 0);
  1847.  
  1848.   video_memory_frame = gtk_frame_new ("VDP Memory");
  1849.   gtk_widget_ref (video_memory_frame);
  1850.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "video_memory_frame", video_memory_frame,
  1851.                             (GtkDestroyNotify) gtk_widget_unref);
  1852.   gtk_widget_show (video_memory_frame);
  1853.   gtk_paned_pack1 (GTK_PANED (vpaned3), video_memory_frame, TRUE, FALSE);
  1854.   gtk_widget_set_usize (video_memory_frame, -2, 64);
  1855.   gtk_container_set_border_width (GTK_CONTAINER (video_memory_frame), 2);
  1856.   gtk_frame_set_shadow_type (GTK_FRAME (video_memory_frame), GTK_SHADOW_NONE);
  1857.  
  1858.   text3 = gtk_text_new (NULL, NULL);
  1859.   gtk_widget_ref (text3);
  1860.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "text3", text3,
  1861.                             (GtkDestroyNotify) gtk_widget_unref);
  1862.   gtk_widget_show (text3);
  1863.   gtk_container_add (GTK_CONTAINER (video_memory_frame), text3);
  1864.  
  1865.   vpaned4 = gtk_vpaned_new ();
  1866.   gtk_widget_ref (vpaned4);
  1867.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "vpaned4", vpaned4,
  1868.                             (GtkDestroyNotify) gtk_widget_unref);
  1869.   gtk_widget_show (vpaned4);
  1870.   gtk_paned_pack2 (GTK_PANED (vpaned3), vpaned4, TRUE, TRUE);
  1871.   gtk_paned_set_gutter_size (GTK_PANED (vpaned4), 10);
  1872.   gtk_paned_set_position (GTK_PANED (vpaned4), 0);
  1873.  
  1874.   graphics_memory_frame = gtk_frame_new ("GROM/GRAM Memory");
  1875.   gtk_widget_ref (graphics_memory_frame);
  1876.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "graphics_memory_frame", graphics_memory_frame,
  1877.                             (GtkDestroyNotify) gtk_widget_unref);
  1878.   gtk_widget_show (graphics_memory_frame);
  1879.   gtk_paned_pack1 (GTK_PANED (vpaned4), graphics_memory_frame, TRUE, FALSE);
  1880.   gtk_widget_set_usize (graphics_memory_frame, -2, 64);
  1881.   gtk_container_set_border_width (GTK_CONTAINER (graphics_memory_frame), 2);
  1882.   gtk_frame_set_shadow_type (GTK_FRAME (graphics_memory_frame), GTK_SHADOW_NONE);
  1883.  
  1884.   text4 = gtk_text_new (NULL, NULL);
  1885.   gtk_widget_ref (text4);
  1886.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "text4", text4,
  1887.                             (GtkDestroyNotify) gtk_widget_unref);
  1888.   gtk_widget_show (text4);
  1889.   gtk_container_add (GTK_CONTAINER (graphics_memory_frame), text4);
  1890.  
  1891.   speech_memory_frame = gtk_frame_new ("Speech Memory");
  1892.   gtk_widget_ref (speech_memory_frame);
  1893.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "speech_memory_frame", speech_memory_frame,
  1894.                             (GtkDestroyNotify) gtk_widget_unref);
  1895.   gtk_widget_show (speech_memory_frame);
  1896.   gtk_paned_pack2 (GTK_PANED (vpaned4), speech_memory_frame, TRUE, FALSE);
  1897.   gtk_widget_set_usize (speech_memory_frame, -2, 64);
  1898.   gtk_container_set_border_width (GTK_CONTAINER (speech_memory_frame), 2);
  1899.   gtk_frame_set_shadow_type (GTK_FRAME (speech_memory_frame), GTK_SHADOW_NONE);
  1900.  
  1901.   text5 = gtk_text_new (NULL, NULL);
  1902.   gtk_widget_ref (text5);
  1903.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "text5", text5,
  1904.                             (GtkDestroyNotify) gtk_widget_unref);
  1905.   gtk_widget_show (text5);
  1906.   gtk_container_add (GTK_CONTAINER (speech_memory_frame), text5);
  1907.  
  1908.   hbox10 = gtk_hbox_new (TRUE, 0);
  1909.   gtk_widget_ref (hbox10);
  1910.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "hbox10", hbox10,
  1911.                             (GtkDestroyNotify) gtk_widget_unref);
  1912.   gtk_widget_show (hbox10);
  1913.   gtk_box_pack_start (GTK_BOX (vbox7), hbox10, FALSE, FALSE, 0);
  1914.  
  1915.   button40 = gtk_button_new_with_label ("");
  1916.   button40_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (button40)->child),
  1917.                                    "_Next");
  1918.   gtk_widget_add_accelerator (button40, "clicked", accel_group,
  1919.                               button40_key, GDK_MOD1_MASK, 0);
  1920.   gtk_widget_ref (button40);
  1921.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "button40", button40,
  1922.                             (GtkDestroyNotify) gtk_widget_unref);
  1923.   gtk_widget_show (button40);
  1924.   gtk_box_pack_start (GTK_BOX (hbox10), button40, FALSE, TRUE, 0);
  1925.   GTK_WIDGET_SET_FLAGS (button40, GTK_CAN_DEFAULT);
  1926.   gtk_tooltips_set_tip (tooltips, button40, "Execute the next instruction and stop", NULL);
  1927.   gtk_widget_add_accelerator (button40, "clicked", accel_group,
  1928.                               GDK_n, 0,
  1929.                               GTK_ACCEL_VISIBLE);
  1930.   gtk_widget_add_accelerator (button40, "clicked", accel_group,
  1931.                               GDK_n, GDK_MOD1_MASK,
  1932.                               GTK_ACCEL_VISIBLE);
  1933.  
  1934.   button41 = gtk_button_new_with_label ("");
  1935.   button41_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (button41)->child),
  1936.                                    "_Run");
  1937.   gtk_widget_add_accelerator (button41, "clicked", accel_group,
  1938.                               button41_key, GDK_MOD1_MASK, 0);
  1939.   gtk_widget_ref (button41);
  1940.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "button41", button41,
  1941.                             (GtkDestroyNotify) gtk_widget_unref);
  1942.   gtk_widget_show (button41);
  1943.   gtk_box_pack_start (GTK_BOX (hbox10), button41, FALSE, TRUE, 0);
  1944.   GTK_WIDGET_SET_FLAGS (button41, GTK_CAN_DEFAULT);
  1945.   gtk_tooltips_set_tip (tooltips, button41, "Execute emulator with minimal debugger refresh", NULL);
  1946.   gtk_widget_add_accelerator (button41, "clicked", accel_group,
  1947.                               GDK_r, 0,
  1948.                               GTK_ACCEL_VISIBLE);
  1949.   gtk_widget_add_accelerator (button41, "clicked", accel_group,
  1950.                               GDK_r, GDK_MOD1_MASK,
  1951.                               GTK_ACCEL_VISIBLE);
  1952.  
  1953.   button42 = gtk_button_new_with_label ("");
  1954.   button42_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (button42)->child),
  1955.                                    "_Walk");
  1956.   gtk_widget_add_accelerator (button42, "clicked", accel_group,
  1957.                               button42_key, GDK_MOD1_MASK, 0);
  1958.   gtk_widget_ref (button42);
  1959.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "button42", button42,
  1960.                             (GtkDestroyNotify) gtk_widget_unref);
  1961.   gtk_widget_show (button42);
  1962.   gtk_box_pack_start (GTK_BOX (hbox10), button42, FALSE, TRUE, 0);
  1963.   GTK_WIDGET_SET_FLAGS (button42, GTK_CAN_DEFAULT);
  1964.   gtk_tooltips_set_tip (tooltips, button42, "Execute emulator with maximum debugger refresh", NULL);
  1965.   gtk_widget_add_accelerator (button42, "clicked", accel_group,
  1966.                               GDK_w, GDK_MOD1_MASK,
  1967.                               GTK_ACCEL_VISIBLE);
  1968.   gtk_widget_add_accelerator (button42, "clicked", accel_group,
  1969.                               GDK_w, 0,
  1970.                               GTK_ACCEL_VISIBLE);
  1971.  
  1972.   button43 = gtk_button_new_with_label ("");
  1973.   button43_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (button43)->child),
  1974.                                    "_Stop");
  1975.   gtk_widget_add_accelerator (button43, "clicked", accel_group,
  1976.                               button43_key, GDK_MOD1_MASK, 0);
  1977.   gtk_widget_ref (button43);
  1978.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "button43", button43,
  1979.                             (GtkDestroyNotify) gtk_widget_unref);
  1980.   gtk_widget_show (button43);
  1981.   gtk_box_pack_start (GTK_BOX (hbox10), button43, FALSE, TRUE, 0);
  1982.   GTK_WIDGET_SET_FLAGS (button43, GTK_CAN_DEFAULT);
  1983.   gtk_tooltips_set_tip (tooltips, button43, "Stop emulator", NULL);
  1984.   gtk_widget_add_accelerator (button43, "clicked", accel_group,
  1985.                               GDK_s, GDK_MOD1_MASK,
  1986.                               GTK_ACCEL_VISIBLE);
  1987.   gtk_widget_add_accelerator (button43, "clicked", accel_group,
  1988.                               GDK_s, 0,
  1989.                               GTK_ACCEL_VISIBLE);
  1990.  
  1991.   button44 = gtk_button_new_with_label ("Close");
  1992.   gtk_widget_ref (button44);
  1993.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "button44", button44,
  1994.                             (GtkDestroyNotify) gtk_widget_unref);
  1995.   gtk_widget_show (button44);
  1996.   gtk_box_pack_start (GTK_BOX (hbox10), button44, FALSE, TRUE, 0);
  1997.   GTK_WIDGET_SET_FLAGS (button44, GTK_CAN_DEFAULT);
  1998.   gtk_widget_add_accelerator (button44, "clicked", accel_group,
  1999.                               GDK_Escape, 0,
  2000.                               GTK_ACCEL_VISIBLE);
  2001.  
  2002.   debugger_status_bar = gtk_statusbar_new ();
  2003.   gtk_widget_ref (debugger_status_bar);
  2004.   gtk_object_set_data_full (GTK_OBJECT (debugger_window), "debugger_status_bar", debugger_status_bar,
  2005.                             (GtkDestroyNotify) gtk_widget_unref);
  2006.   gtk_widget_show (debugger_status_bar);
  2007.   gtk_box_pack_start (GTK_BOX (vbox7), debugger_status_bar, FALSE, FALSE, 0);
  2008.  
  2009.   gtk_signal_connect (GTK_OBJECT (button40), "clicked",
  2010.                       GTK_SIGNAL_FUNC (on_debugger_next_button_clicked),
  2011.                       NULL);
  2012.   gtk_signal_connect (GTK_OBJECT (button41), "clicked",
  2013.                       GTK_SIGNAL_FUNC (on_debugger_run_button_clicked),
  2014.                       NULL);
  2015.   gtk_signal_connect (GTK_OBJECT (button42), "clicked",
  2016.                       GTK_SIGNAL_FUNC (on_debugger_walk_button_clicked),
  2017.                       NULL);
  2018.   gtk_signal_connect (GTK_OBJECT (button43), "clicked",
  2019.                       GTK_SIGNAL_FUNC (on_debugger_stop_button_clicked),
  2020.                       NULL);
  2021.   gtk_signal_connect (GTK_OBJECT (button44), "clicked",
  2022.                       GTK_SIGNAL_FUNC (on_debugger_close_button_clicked),
  2023.                       NULL);
  2024.  
  2025.   gtk_object_set_data (GTK_OBJECT (debugger_window), "tooltips", tooltips);
  2026.  
  2027.   gtk_window_add_accel_group (GTK_WINDOW (debugger_window), accel_group);
  2028.  
  2029.   return debugger_window;
  2030. }
  2031.  
  2032. GtkWidget*
  2033. create_memory_dialog (void)
  2034. {
  2035.   GtkWidget *memory_dialog;
  2036.   GtkWidget *vbox9;
  2037.   GtkWidget *rom_entries_table;
  2038.   GtkWidget *console_rom_entry;
  2039.   guint label30_key;
  2040.   GtkWidget *label30;
  2041.   GtkWidget *button35;
  2042.   guint label31_key;
  2043.   GtkWidget *label31;
  2044.   GtkWidget *console_grom_entry;
  2045.   GtkWidget *button36;
  2046.   GtkWidget *vbox10;
  2047.   guint checkbutton11_key;
  2048.   GtkWidget *checkbutton11;
  2049.   guint checkbutton10_key;
  2050.   GtkWidget *checkbutton10;
  2051.   GtkWidget *vbox11;
  2052.   GtkWidget *checkbutton13;
  2053.   GtkWidget *frame11;
  2054.   GtkWidget *module_roms_table;
  2055.   GtkWidget *module_rom_entry;
  2056.   GtkWidget *module_grom_entry;
  2057.   GtkWidget *button53;
  2058.   GtkWidget *button54;
  2059.   guint label33_key;
  2060.   GtkWidget *label33;
  2061.   guint label34_key;
  2062.   GtkWidget *label34;
  2063.   guint label35_key;
  2064.   GtkWidget *label35;
  2065.   GtkWidget *module_rom1_entry;
  2066.   GtkWidget *button55;
  2067.   guint label36_key;
  2068.   GtkWidget *label36;
  2069.   GtkWidget *module_rom2_entry;
  2070.   GtkWidget *button56;
  2071.   GtkWidget *hbox9;
  2072.   GtkWidget *button58;
  2073.   GtkWidget *button59;
  2074.   GtkWidget *button38;
  2075.   GtkWidget *frame10;
  2076.   GtkWidget *table4;
  2077.   GtkWidget *button47;
  2078.   GtkWidget *button48;
  2079.   GtkWidget *button49;
  2080.   GtkWidget *button45;
  2081.   GtkWidget *button46;
  2082.   GtkWidget *button57;
  2083.   GtkAccelGroup *accel_group;
  2084.   GtkTooltips *tooltips;
  2085.  
  2086.   tooltips = gtk_tooltips_new ();
  2087.  
  2088.   accel_group = gtk_accel_group_new ();
  2089.  
  2090.   memory_dialog = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  2091.   gtk_object_set_data (GTK_OBJECT (memory_dialog), "memory_dialog", memory_dialog);
  2092.   gtk_window_set_title (GTK_WINDOW (memory_dialog), "Memory Configuration");
  2093.   gtk_window_set_default_size (GTK_WINDOW (memory_dialog), 400, 400);
  2094.  
  2095.   vbox9 = gtk_vbox_new (FALSE, 0);
  2096.   gtk_widget_ref (vbox9);
  2097.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "vbox9", vbox9,
  2098.                             (GtkDestroyNotify) gtk_widget_unref);
  2099.   gtk_widget_show (vbox9);
  2100.   gtk_container_add (GTK_CONTAINER (memory_dialog), vbox9);
  2101.  
  2102.   rom_entries_table = gtk_table_new (4, 3, FALSE);
  2103.   gtk_widget_ref (rom_entries_table);
  2104.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "rom_entries_table", rom_entries_table,
  2105.                             (GtkDestroyNotify) gtk_widget_unref);
  2106.   gtk_widget_show (rom_entries_table);
  2107.   gtk_box_pack_start (GTK_BOX (vbox9), rom_entries_table, TRUE, TRUE, 0);
  2108.  
  2109.   console_rom_entry = gtk_entry_new ();
  2110.   gtk_widget_ref (console_rom_entry);
  2111.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "console_rom_entry", console_rom_entry,
  2112.                             (GtkDestroyNotify) gtk_widget_unref);
  2113.   gtk_widget_show (console_rom_entry);
  2114.   gtk_table_attach (GTK_TABLE (rom_entries_table), console_rom_entry, 1, 2, 0, 1,
  2115.                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  2116.                     (GtkAttachOptions) (0), 0, 0);
  2117.  
  2118.   label30 = gtk_label_new ("");
  2119.   label30_key = gtk_label_parse_uline (GTK_LABEL (label30),
  2120.                                    "Console _ROM");
  2121.   gtk_widget_ref (label30);
  2122.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "label30", label30,
  2123.                             (GtkDestroyNotify) gtk_widget_unref);
  2124.   gtk_widget_show (label30);
  2125.   gtk_table_attach (GTK_TABLE (rom_entries_table), label30, 0, 1, 0, 1,
  2126.                     (GtkAttachOptions) (GTK_EXPAND),
  2127.                     (GtkAttachOptions) (0), 0, 0);
  2128.  
  2129.   button35 = gtk_button_new_with_label ("Choose...");
  2130.   gtk_widget_ref (button35);
  2131.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "button35", button35,
  2132.                             (GtkDestroyNotify) gtk_widget_unref);
  2133.   gtk_widget_show (button35);
  2134.   gtk_table_attach (GTK_TABLE (rom_entries_table), button35, 2, 3, 0, 1,
  2135.                     (GtkAttachOptions) (GTK_EXPAND),
  2136.                     (GtkAttachOptions) (0), 0, 0);
  2137.   gtk_container_set_border_width (GTK_CONTAINER (button35), 4);
  2138.  
  2139.   label31 = gtk_label_new ("");
  2140.   label31_key = gtk_label_parse_uline (GTK_LABEL (label31),
  2141.                                    "Console _GROM");
  2142.   gtk_widget_ref (label31);
  2143.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "label31", label31,
  2144.                             (GtkDestroyNotify) gtk_widget_unref);
  2145.   gtk_widget_show (label31);
  2146.   gtk_table_attach (GTK_TABLE (rom_entries_table), label31, 0, 1, 1, 2,
  2147.                     (GtkAttachOptions) (0),
  2148.                     (GtkAttachOptions) (0), 0, 0);
  2149.  
  2150.   console_grom_entry = gtk_entry_new ();
  2151.   gtk_widget_ref (console_grom_entry);
  2152.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "console_grom_entry", console_grom_entry,
  2153.                             (GtkDestroyNotify) gtk_widget_unref);
  2154.   gtk_widget_show (console_grom_entry);
  2155.   gtk_table_attach (GTK_TABLE (rom_entries_table), console_grom_entry, 1, 2, 1, 2,
  2156.                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  2157.                     (GtkAttachOptions) (0), 0, 0);
  2158.  
  2159.   button36 = gtk_button_new_with_label ("Choose...");
  2160.   gtk_widget_ref (button36);
  2161.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "button36", button36,
  2162.                             (GtkDestroyNotify) gtk_widget_unref);
  2163.   gtk_widget_show (button36);
  2164.   gtk_table_attach (GTK_TABLE (rom_entries_table), button36, 2, 3, 1, 2,
  2165.                     (GtkAttachOptions) (0),
  2166.                     (GtkAttachOptions) (0), 0, 0);
  2167.   gtk_container_set_border_width (GTK_CONTAINER (button36), 4);
  2168.  
  2169.   vbox10 = gtk_vbox_new (FALSE, 0);
  2170.   gtk_widget_ref (vbox10);
  2171.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "vbox10", vbox10,
  2172.                             (GtkDestroyNotify) gtk_widget_unref);
  2173.   gtk_widget_show (vbox10);
  2174.   gtk_box_pack_start (GTK_BOX (vbox9), vbox10, TRUE, TRUE, 0);
  2175.  
  2176.   checkbutton11 = gtk_check_button_new_with_label ("");
  2177.   checkbutton11_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (checkbutton11)->child),
  2178.                                    "Use 32K _extended memory");
  2179.   gtk_widget_add_accelerator (checkbutton11, "clicked", accel_group,
  2180.                               checkbutton11_key, GDK_MOD1_MASK, 0);
  2181.   gtk_widget_ref (checkbutton11);
  2182.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "checkbutton11", checkbutton11,
  2183.                             (GtkDestroyNotify) gtk_widget_unref);
  2184.   gtk_widget_show (checkbutton11);
  2185.   gtk_box_pack_start (GTK_BOX (vbox10), checkbutton11, FALSE, FALSE, 0);
  2186.  
  2187.   checkbutton10 = gtk_check_button_new_with_label ("");
  2188.   checkbutton10_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (checkbutton10)->child),
  2189.                                    "Enable Gene_ve-style RAM in >8000->82FF range");
  2190.   gtk_widget_add_accelerator (checkbutton10, "clicked", accel_group,
  2191.                               checkbutton10_key, GDK_MOD1_MASK, 0);
  2192.   gtk_widget_ref (checkbutton10);
  2193.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "checkbutton10", checkbutton10,
  2194.                             (GtkDestroyNotify) gtk_widget_unref);
  2195.   gtk_widget_show (checkbutton10);
  2196.   gtk_box_pack_start (GTK_BOX (vbox10), checkbutton10, FALSE, FALSE, 0);
  2197.  
  2198.   vbox11 = gtk_vbox_new (FALSE, 0);
  2199.   gtk_widget_ref (vbox11);
  2200.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "vbox11", vbox11,
  2201.                             (GtkDestroyNotify) gtk_widget_unref);
  2202.   gtk_widget_show (vbox11);
  2203.   gtk_box_pack_start (GTK_BOX (vbox10), vbox11, TRUE, TRUE, 0);
  2204.  
  2205.   checkbutton13 = gtk_check_button_new_with_label ("Load custom module ROMs");
  2206.   gtk_widget_ref (checkbutton13);
  2207.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "checkbutton13", checkbutton13,
  2208.                             (GtkDestroyNotify) gtk_widget_unref);
  2209.   gtk_widget_show (checkbutton13);
  2210.   gtk_box_pack_start (GTK_BOX (vbox11), checkbutton13, FALSE, FALSE, 0);
  2211.  
  2212.   frame11 = gtk_frame_new (NULL);
  2213.   gtk_widget_ref (frame11);
  2214.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "frame11", frame11,
  2215.                             (GtkDestroyNotify) gtk_widget_unref);
  2216.   gtk_widget_show (frame11);
  2217.   gtk_box_pack_start (GTK_BOX (vbox11), frame11, TRUE, TRUE, 0);
  2218.   gtk_container_set_border_width (GTK_CONTAINER (frame11), 2);
  2219.  
  2220.   module_roms_table = gtk_table_new (4, 3, FALSE);
  2221.   gtk_widget_ref (module_roms_table);
  2222.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "module_roms_table", module_roms_table,
  2223.                             (GtkDestroyNotify) gtk_widget_unref);
  2224.   gtk_widget_show (module_roms_table);
  2225.   gtk_container_add (GTK_CONTAINER (frame11), module_roms_table);
  2226.  
  2227.   module_rom_entry = gtk_entry_new ();
  2228.   gtk_widget_ref (module_rom_entry);
  2229.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "module_rom_entry", module_rom_entry,
  2230.                             (GtkDestroyNotify) gtk_widget_unref);
  2231.   gtk_widget_show (module_rom_entry);
  2232.   gtk_table_attach (GTK_TABLE (module_roms_table), module_rom_entry, 1, 2, 0, 1,
  2233.                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  2234.                     (GtkAttachOptions) (0), 0, 0);
  2235.  
  2236.   module_grom_entry = gtk_entry_new ();
  2237.   gtk_widget_ref (module_grom_entry);
  2238.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "module_grom_entry", module_grom_entry,
  2239.                             (GtkDestroyNotify) gtk_widget_unref);
  2240.   gtk_widget_show (module_grom_entry);
  2241.   gtk_table_attach (GTK_TABLE (module_roms_table), module_grom_entry, 1, 2, 1, 2,
  2242.                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  2243.                     (GtkAttachOptions) (0), 0, 0);
  2244.  
  2245.   button53 = gtk_button_new_with_label ("Choose...");
  2246.   gtk_widget_ref (button53);
  2247.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "button53", button53,
  2248.                             (GtkDestroyNotify) gtk_widget_unref);
  2249.   gtk_widget_show (button53);
  2250.   gtk_table_attach (GTK_TABLE (module_roms_table), button53, 2, 3, 0, 1,
  2251.                     (GtkAttachOptions) (GTK_EXPAND),
  2252.                     (GtkAttachOptions) (0), 0, 0);
  2253.   gtk_container_set_border_width (GTK_CONTAINER (button53), 4);
  2254.  
  2255.   button54 = gtk_button_new_with_label ("Choose...");
  2256.   gtk_widget_ref (button54);
  2257.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "button54", button54,
  2258.                             (GtkDestroyNotify) gtk_widget_unref);
  2259.   gtk_widget_show (button54);
  2260.   gtk_table_attach (GTK_TABLE (module_roms_table), button54, 2, 3, 1, 2,
  2261.                     (GtkAttachOptions) (GTK_EXPAND),
  2262.                     (GtkAttachOptions) (0), 0, 0);
  2263.   gtk_container_set_border_width (GTK_CONTAINER (button54), 4);
  2264.  
  2265.   label33 = gtk_label_new ("");
  2266.   label33_key = gtk_label_parse_uline (GTK_LABEL (label33),
  2267.                                    "_Module ROM");
  2268.   gtk_widget_ref (label33);
  2269.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "label33", label33,
  2270.                             (GtkDestroyNotify) gtk_widget_unref);
  2271.   gtk_widget_show (label33);
  2272.   gtk_table_attach (GTK_TABLE (module_roms_table), label33, 0, 1, 0, 1,
  2273.                     (GtkAttachOptions) (GTK_EXPAND),
  2274.                     (GtkAttachOptions) (0), 0, 0);
  2275.  
  2276.   label34 = gtk_label_new ("");
  2277.   label34_key = gtk_label_parse_uline (GTK_LABEL (label34),
  2278.                                    "M_odule GROM");
  2279.   gtk_widget_ref (label34);
  2280.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "label34", label34,
  2281.                             (GtkDestroyNotify) gtk_widget_unref);
  2282.   gtk_widget_show (label34);
  2283.   gtk_table_attach (GTK_TABLE (module_roms_table), label34, 0, 1, 1, 2,
  2284.                     (GtkAttachOptions) (0),
  2285.                     (GtkAttachOptions) (0), 0, 0);
  2286.  
  2287.   label35 = gtk_label_new ("");
  2288.   label35_key = gtk_label_parse_uline (GTK_LABEL (label35),
  2289.                                    "Module ROM (bank _1)");
  2290.   gtk_widget_ref (label35);
  2291.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "label35", label35,
  2292.                             (GtkDestroyNotify) gtk_widget_unref);
  2293.   gtk_widget_show (label35);
  2294.   gtk_table_attach (GTK_TABLE (module_roms_table), label35, 0, 1, 2, 3,
  2295.                     (GtkAttachOptions) (0),
  2296.                     (GtkAttachOptions) (0), 0, 0);
  2297.  
  2298.   module_rom1_entry = gtk_entry_new ();
  2299.   gtk_widget_ref (module_rom1_entry);
  2300.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "module_rom1_entry", module_rom1_entry,
  2301.                             (GtkDestroyNotify) gtk_widget_unref);
  2302.   gtk_widget_show (module_rom1_entry);
  2303.   gtk_table_attach (GTK_TABLE (module_roms_table), module_rom1_entry, 1, 2, 2, 3,
  2304.                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  2305.                     (GtkAttachOptions) (0), 0, 0);
  2306.  
  2307.   button55 = gtk_button_new_with_label ("Choose...");
  2308.   gtk_widget_ref (button55);
  2309.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "button55", button55,
  2310.                             (GtkDestroyNotify) gtk_widget_unref);
  2311.   gtk_widget_show (button55);
  2312.   gtk_table_attach (GTK_TABLE (module_roms_table), button55, 2, 3, 2, 3,
  2313.                     (GtkAttachOptions) (0),
  2314.                     (GtkAttachOptions) (0), 0, 0);
  2315.   gtk_container_set_border_width (GTK_CONTAINER (button55), 4);
  2316.  
  2317.   label36 = gtk_label_new ("");
  2318.   label36_key = gtk_label_parse_uline (GTK_LABEL (label36),
  2319.                                    "Module ROM (bank _2)");
  2320.   gtk_widget_ref (label36);
  2321.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "label36", label36,
  2322.                             (GtkDestroyNotify) gtk_widget_unref);
  2323.   gtk_widget_show (label36);
  2324.   gtk_table_attach (GTK_TABLE (module_roms_table), label36, 0, 1, 3, 4,
  2325.                     (GtkAttachOptions) (0),
  2326.                     (GtkAttachOptions) (0), 0, 0);
  2327.  
  2328.   module_rom2_entry = gtk_entry_new ();
  2329.   gtk_widget_ref (module_rom2_entry);
  2330.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "module_rom2_entry", module_rom2_entry,
  2331.                             (GtkDestroyNotify) gtk_widget_unref);
  2332.   gtk_widget_show (module_rom2_entry);
  2333.   gtk_table_attach (GTK_TABLE (module_roms_table), module_rom2_entry, 1, 2, 3, 4,
  2334.                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  2335.                     (GtkAttachOptions) (0), 0, 0);
  2336.  
  2337.   button56 = gtk_button_new_with_label ("Choose...");
  2338.   gtk_widget_ref (button56);
  2339.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "button56", button56,
  2340.                             (GtkDestroyNotify) gtk_widget_unref);
  2341.   gtk_widget_show (button56);
  2342.   gtk_table_attach (GTK_TABLE (module_roms_table), button56, 2, 3, 3, 4,
  2343.                     (GtkAttachOptions) (0),
  2344.                     (GtkAttachOptions) (0), 0, 0);
  2345.   gtk_container_set_border_width (GTK_CONTAINER (button56), 4);
  2346.  
  2347.   hbox9 = gtk_hbox_new (TRUE, 0);
  2348.   gtk_widget_ref (hbox9);
  2349.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "hbox9", hbox9,
  2350.                             (GtkDestroyNotify) gtk_widget_unref);
  2351.   gtk_widget_show (hbox9);
  2352.   gtk_box_pack_end (GTK_BOX (vbox9), hbox9, FALSE, FALSE, 4);
  2353.  
  2354.   button58 = gtk_button_new_with_label ("Apply");
  2355.   gtk_widget_ref (button58);
  2356.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "button58", button58,
  2357.                             (GtkDestroyNotify) gtk_widget_unref);
  2358.   gtk_widget_show (button58);
  2359.   gtk_box_pack_start (GTK_BOX (hbox9), button58, TRUE, TRUE, 0);
  2360.   gtk_container_set_border_width (GTK_CONTAINER (button58), 4);
  2361.   gtk_tooltips_set_tip (tooltips, button58, "Apply changes and continue emulation", NULL);
  2362.  
  2363.   button59 = gtk_button_new_with_label ("Boot and Run");
  2364.   gtk_widget_ref (button59);
  2365.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "button59", button59,
  2366.                             (GtkDestroyNotify) gtk_widget_unref);
  2367.   gtk_widget_show (button59);
  2368.   gtk_box_pack_start (GTK_BOX (hbox9), button59, TRUE, TRUE, 4);
  2369.   gtk_container_set_border_width (GTK_CONTAINER (button59), 4);
  2370.   gtk_tooltips_set_tip (tooltips, button59, "Close window and reset computer", NULL);
  2371.   gtk_widget_add_accelerator (button59, "clicked", accel_group,
  2372.                               GDK_Return, 0,
  2373.                               GTK_ACCEL_VISIBLE);
  2374.  
  2375.   button38 = gtk_button_new_with_label ("Close");
  2376.   gtk_widget_ref (button38);
  2377.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "button38", button38,
  2378.                             (GtkDestroyNotify) gtk_widget_unref);
  2379.   gtk_widget_show (button38);
  2380.   gtk_box_pack_start (GTK_BOX (hbox9), button38, TRUE, TRUE, 0);
  2381.   gtk_container_set_border_width (GTK_CONTAINER (button38), 4);
  2382.   gtk_tooltips_set_tip (tooltips, button38, "Close window and continue emulation", NULL);
  2383.   gtk_widget_add_accelerator (button38, "clicked", accel_group,
  2384.                               GDK_Escape, 0,
  2385.                               GTK_ACCEL_VISIBLE);
  2386.  
  2387.   frame10 = gtk_frame_new ("Advanced options");
  2388.   gtk_widget_ref (frame10);
  2389.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "frame10", frame10,
  2390.                             (GtkDestroyNotify) gtk_widget_unref);
  2391.   gtk_widget_show (frame10);
  2392.   gtk_box_pack_start (GTK_BOX (vbox9), frame10, TRUE, TRUE, 0);
  2393.   gtk_container_set_border_width (GTK_CONTAINER (frame10), 4);
  2394.  
  2395.   table4 = gtk_table_new (3, 3, TRUE);
  2396.   gtk_widget_ref (table4);
  2397.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "table4", table4,
  2398.                             (GtkDestroyNotify) gtk_widget_unref);
  2399.   gtk_widget_show (table4);
  2400.   gtk_container_add (GTK_CONTAINER (frame10), table4);
  2401.  
  2402.   button47 = gtk_button_new_with_label ("Save volatile RAM");
  2403.   gtk_widget_ref (button47);
  2404.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "button47", button47,
  2405.                             (GtkDestroyNotify) gtk_widget_unref);
  2406.   gtk_widget_show (button47);
  2407.   gtk_table_attach (GTK_TABLE (table4), button47, 1, 2, 0, 1,
  2408.                     (GtkAttachOptions) (GTK_FILL),
  2409.                     (GtkAttachOptions) (0), 8, 0);
  2410.   gtk_container_set_border_width (GTK_CONTAINER (button47), 4);
  2411.   gtk_tooltips_set_tip (tooltips, button47, "These RAMs are saved automatically at certain points", NULL);
  2412.  
  2413.   button48 = gtk_button_new_with_label ("Change memory map");
  2414.   gtk_widget_ref (button48);
  2415.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "button48", button48,
  2416.                             (GtkDestroyNotify) gtk_widget_unref);
  2417.   gtk_widget_show (button48);
  2418.   gtk_table_attach (GTK_TABLE (table4), button48, 0, 1, 0, 1,
  2419.                     (GtkAttachOptions) (GTK_FILL),
  2420.                     (GtkAttachOptions) (0), 8, 0);
  2421.   gtk_widget_set_sensitive (button48, FALSE);
  2422.  
  2423.   button49 = gtk_button_new_with_label ("See memory map");
  2424.   gtk_widget_ref (button49);
  2425.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "button49", button49,
  2426.                             (GtkDestroyNotify) gtk_widget_unref);
  2427.   gtk_widget_show (button49);
  2428.   gtk_table_attach (GTK_TABLE (table4), button49, 0, 1, 1, 2,
  2429.                     (GtkAttachOptions) (GTK_FILL),
  2430.                     (GtkAttachOptions) (0), 8, 0);
  2431.  
  2432.   button45 = gtk_button_new_with_label ("Default memory map");
  2433.   gtk_widget_ref (button45);
  2434.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "button45", button45,
  2435.                             (GtkDestroyNotify) gtk_widget_unref);
  2436.   gtk_widget_show (button45);
  2437.   gtk_table_attach (GTK_TABLE (table4), button45, 0, 1, 2, 3,
  2438.                     (GtkAttachOptions) (GTK_FILL),
  2439.                     (GtkAttachOptions) (0), 8, 0);
  2440.   gtk_tooltips_set_tip (tooltips, button45, "Sets up RAM and memory-mapped areas to standard 99/4A settings in case there was a mishap with DefineMemory", NULL);
  2441.  
  2442.   button46 = gtk_button_new_with_label ("Reload memory");
  2443.   gtk_widget_ref (button46);
  2444.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "button46", button46,
  2445.                             (GtkDestroyNotify) gtk_widget_unref);
  2446.   gtk_widget_show (button46);
  2447.   gtk_table_attach (GTK_TABLE (table4), button46, 1, 2, 1, 2,
  2448.                     (GtkAttachOptions) (GTK_FILL),
  2449.                     (GtkAttachOptions) (0), 8, 0);
  2450.   gtk_container_set_border_width (GTK_CONTAINER (button46), 4);
  2451.   gtk_tooltips_set_tip (tooltips, button46, "This loads volatile RAMs as well as ROM images (the latter is just in case)", NULL);
  2452.  
  2453.   button57 = gtk_button_new_with_label ("Unload module");
  2454.   gtk_widget_ref (button57);
  2455.   gtk_object_set_data_full (GTK_OBJECT (memory_dialog), "button57", button57,
  2456.                             (GtkDestroyNotify) gtk_widget_unref);
  2457.   gtk_widget_show (button57);
  2458.   gtk_table_attach (GTK_TABLE (table4), button57, 1, 2, 2, 3,
  2459.                     (GtkAttachOptions) (GTK_FILL),
  2460.                     (GtkAttachOptions) (0), 8, 0);
  2461.   gtk_container_set_border_width (GTK_CONTAINER (button57), 4);
  2462.   gtk_tooltips_set_tip (tooltips, button57, "Unload all ROMs and RAMs associated with a module", NULL);
  2463.  
  2464.   gtk_signal_connect (GTK_OBJECT (console_rom_entry), "activate",
  2465.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_activate),
  2466.                       (gpointer *)"ConsoleROMFilename");
  2467.   gtk_signal_connect (GTK_OBJECT (console_rom_entry), "realize",
  2468.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_realize),
  2469.                       (gpointer *)"ConsoleROMFilename");
  2470.   gtk_signal_connect (GTK_OBJECT (button35), "clicked",
  2471.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_button_clicked),
  2472.                       console_rom_entry);
  2473.   gtk_signal_connect (GTK_OBJECT (console_grom_entry), "activate",
  2474.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_activate),
  2475.                       (gpointer *)"ConsoleGROMFilename");
  2476.   gtk_signal_connect (GTK_OBJECT (console_grom_entry), "realize",
  2477.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_realize),
  2478.                       (gpointer *)"ConsoleGROMFilename");
  2479.   gtk_signal_connect (GTK_OBJECT (button36), "clicked",
  2480.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_button_clicked),
  2481.                       console_grom_entry);
  2482.   gtk_signal_connect (GTK_OBJECT (checkbutton11), "toggled",
  2483.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_command_toggle),
  2484.                       (gpointer)"MemoryExpansion32K");
  2485.   gtk_signal_connect (GTK_OBJECT (checkbutton11), "realize",
  2486.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_active),
  2487.                       (gpointer)"MemoryExpansion32K");
  2488.   gtk_signal_connect (GTK_OBJECT (checkbutton10), "toggled",
  2489.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_command_toggle),
  2490.                       (gpointer)"ExtraConsoleRAM");
  2491.   gtk_signal_connect (GTK_OBJECT (checkbutton10), "realize",
  2492.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_active),
  2493.                       (gpointer)"ExtraConsoleRAM");
  2494.   gtk_signal_connect (GTK_OBJECT (checkbutton13), "toggled",
  2495.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_widget_enable),
  2496.                       (gpointer)module_roms_table);
  2497.   gtk_signal_connect (GTK_OBJECT (checkbutton13), "realize",
  2498.                       GTK_SIGNAL_FUNC (on_memory_config_module_rom_button_realize),
  2499.                       (gpointer)module_roms_table);
  2500.   gtk_signal_connect (GTK_OBJECT (checkbutton13), "toggled",
  2501.                       GTK_SIGNAL_FUNC (on_memory_config_module_rom_button_clicked),
  2502.                       NULL);
  2503.   gtk_signal_connect (GTK_OBJECT (module_rom_entry), "activate",
  2504.                       GTK_SIGNAL_FUNC (on_memory_config_banked_module_deactivate),
  2505.                       module_rom1_entry);
  2506.   gtk_signal_connect (GTK_OBJECT (module_rom_entry), "realize",
  2507.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_realize),
  2508.                       (gpointer)"ModuleROMFilename");
  2509.   gtk_signal_connect (GTK_OBJECT (module_rom_entry), "activate",
  2510.                       GTK_SIGNAL_FUNC (on_memory_config_banked_module_deactivate),
  2511.                       (gpointer)module_rom2_entry);
  2512.   gtk_signal_connect (GTK_OBJECT (module_rom_entry), "activate",
  2513.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_activate),
  2514.                       (gpointer)"ModuleROMFilename");
  2515.   gtk_signal_connect (GTK_OBJECT (module_grom_entry), "activate",
  2516.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_activate),
  2517.                       (gpointer)"ModuleGROMFilename");
  2518.   gtk_signal_connect (GTK_OBJECT (module_grom_entry), "realize",
  2519.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_realize),
  2520.                       (gpointer)"ModuleGROMFilename");
  2521.   gtk_signal_connect (GTK_OBJECT (button53), "clicked",
  2522.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_button_clicked),
  2523.                       module_rom_entry);
  2524.   gtk_signal_connect (GTK_OBJECT (button54), "clicked",
  2525.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_button_clicked),
  2526.                       module_grom_entry);
  2527.   gtk_signal_connect (GTK_OBJECT (module_rom1_entry), "activate",
  2528.                       GTK_SIGNAL_FUNC (on_module_config_banked_module_activate),
  2529.                       module_rom_entry);
  2530.   gtk_signal_connect (GTK_OBJECT (module_rom1_entry), "realize",
  2531.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_realize),
  2532.                       (gpointer)"ModuleROM1Filename");
  2533.   gtk_signal_connect (GTK_OBJECT (module_rom1_entry), "activate",
  2534.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_activate),
  2535.                       (gpointer)"ModuleROM1Filename");
  2536.   gtk_signal_connect (GTK_OBJECT (button55), "clicked",
  2537.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_button_clicked),
  2538.                       module_rom1_entry);
  2539.   gtk_signal_connect (GTK_OBJECT (module_rom2_entry), "activate",
  2540.                       GTK_SIGNAL_FUNC (on_module_config_banked_module_activate),
  2541.                       (gpointer)module_rom_entry);
  2542.   gtk_signal_connect (GTK_OBJECT (module_rom2_entry), "realize",
  2543.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_realize),
  2544.                       (gpointer)"ModuleROM2Filename");
  2545.   gtk_signal_connect (GTK_OBJECT (module_rom2_entry), "activate",
  2546.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_entry_activate),
  2547.                       (gpointer)"ModuleROM2Filename");
  2548.   gtk_signal_connect (GTK_OBJECT (button56), "clicked",
  2549.                       GTK_SIGNAL_FUNC (on_v9t9_dsr_button_clicked),
  2550.                       module_rom2_entry);
  2551.   gtk_signal_connect (GTK_OBJECT (button58), "clicked",
  2552.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked),
  2553.                       (gpointer)"PauseComputer off\n");
  2554.   gtk_signal_connect (GTK_OBJECT (button59), "clicked",
  2555.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked),
  2556.                       (gpointer)"ResetComputer\n");
  2557.   gtk_signal_connect (GTK_OBJECT (button59), "clicked",
  2558.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked),
  2559.                       (gpointer)"PauseComputer off\n");
  2560.   gtk_signal_connect (GTK_OBJECT (button59), "clicked",
  2561.                       GTK_SIGNAL_FUNC (on_memory_dialog_close_button_clicked),
  2562.                       NULL);
  2563.   gtk_signal_connect (GTK_OBJECT (button38), "clicked",
  2564.                       GTK_SIGNAL_FUNC (on_memory_dialog_close_button_clicked),
  2565.                       NULL);
  2566.   gtk_signal_connect (GTK_OBJECT (button47), "clicked",
  2567.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked),
  2568.                       (gpointer)"SaveMemory\n");
  2569.   gtk_signal_connect (GTK_OBJECT (button49), "clicked",
  2570.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked),
  2571.                       (gpointer)"ListMemory\n");
  2572.   gtk_signal_connect (GTK_OBJECT (button45), "clicked",
  2573.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked),
  2574.                       (gpointer)"DefaultMemoryMap\n");
  2575.   gtk_signal_connect (GTK_OBJECT (button46), "clicked",
  2576.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked),
  2577.                       (gpointer)"LoadMemory\n");
  2578.   gtk_signal_connect (GTK_OBJECT (button57), "clicked",
  2579.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked),
  2580.                       (gpointer)"UnloadModuleOnly\n");
  2581.  
  2582.   gtk_widget_add_accelerator (console_rom_entry, "grab_focus", accel_group,
  2583.                               label30_key, GDK_MOD1_MASK, 0);
  2584.   gtk_widget_add_accelerator (console_grom_entry, "grab_focus", accel_group,
  2585.                               label31_key, GDK_MOD1_MASK, 0);
  2586.   gtk_widget_add_accelerator (module_rom_entry, "grab_focus", accel_group,
  2587.                               label33_key, GDK_MOD1_MASK, 0);
  2588.   gtk_widget_add_accelerator (module_grom_entry, "grab_focus", accel_group,
  2589.                               label34_key, GDK_MOD1_MASK, 0);
  2590.   gtk_widget_add_accelerator (module_rom1_entry, "grab_focus", accel_group,
  2591.                               label35_key, GDK_MOD1_MASK, 0);
  2592.   gtk_widget_add_accelerator (module_rom2_entry, "grab_focus", accel_group,
  2593.                               label36_key, GDK_MOD1_MASK, 0);
  2594.  
  2595.   gtk_object_set_data (GTK_OBJECT (memory_dialog), "tooltips", tooltips);
  2596.  
  2597.   gtk_window_add_accel_group (GTK_WINDOW (memory_dialog), accel_group);
  2598.  
  2599.   return memory_dialog;
  2600. }
  2601.  
  2602. GtkWidget*
  2603. create_options_dialog (void)
  2604. {
  2605.   GtkWidget *options_dialog;
  2606.   GtkWidget *vbox12;
  2607.   GtkWidget *vbox13;
  2608.   guint checkbutton15_key;
  2609.   GtkWidget *checkbutton15;
  2610.   guint checkbutton17_key;
  2611.   GtkWidget *checkbutton17;
  2612.   GtkWidget *hseparator4;
  2613.   guint checkbutton14_key;
  2614.   GtkWidget *checkbutton14;
  2615.   GtkWidget *clock_speed_hbox;
  2616.   guint label42_key;
  2617.   GtkWidget *label42;
  2618.   GtkObject *clock_speed_spin_button_adj;
  2619.   GtkWidget *clock_speed_spin_button;
  2620.   GtkWidget *button70;
  2621.   GtkWidget *delay_hbox;
  2622.   guint label39_key;
  2623.   GtkWidget *label39;
  2624.   GtkObject *delay_spin_button_adj;
  2625.   GtkWidget *delay_spin_button;
  2626.   GtkWidget *button71;
  2627.   GtkWidget *video_refresh_hbox;
  2628.   guint label40_key;
  2629.   GtkWidget *label40;
  2630.   GtkObject *video_refresh_spin_button_adj;
  2631.   GtkWidget *video_refresh_spin_button;
  2632.   GtkWidget *button72;
  2633.   GtkWidget *vdp_interrupt_hbox;
  2634.   guint label41_key;
  2635.   GtkWidget *label41;
  2636.   GtkObject *vdp_interrupt_spin_button_adj;
  2637.   GtkWidget *vdp_interrupt_spin_button;
  2638.   GtkWidget *button73;
  2639.   GtkWidget *hbox12;
  2640.   GtkWidget *button69;
  2641.   GtkWidget *hseparator5;
  2642.   GtkAccelGroup *accel_group;
  2643.   GtkTooltips *tooltips;
  2644.  
  2645.   tooltips = gtk_tooltips_new ();
  2646.  
  2647.   accel_group = gtk_accel_group_new ();
  2648.  
  2649.   options_dialog = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  2650.   gtk_object_set_data (GTK_OBJECT (options_dialog), "options_dialog", options_dialog);
  2651.   gtk_window_set_title (GTK_WINDOW (options_dialog), "Basic Options");
  2652.  
  2653.   vbox12 = gtk_vbox_new (FALSE, 0);
  2654.   gtk_widget_ref (vbox12);
  2655.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "vbox12", vbox12,
  2656.                             (GtkDestroyNotify) gtk_widget_unref);
  2657.   gtk_widget_show (vbox12);
  2658.   gtk_container_add (GTK_CONTAINER (options_dialog), vbox12);
  2659.   gtk_container_set_border_width (GTK_CONTAINER (vbox12), 4);
  2660.  
  2661.   vbox13 = gtk_vbox_new (FALSE, 0);
  2662.   gtk_widget_ref (vbox13);
  2663.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "vbox13", vbox13,
  2664.                             (GtkDestroyNotify) gtk_widget_unref);
  2665.   gtk_widget_show (vbox13);
  2666.   gtk_box_pack_start (GTK_BOX (vbox12), vbox13, TRUE, TRUE, 0);
  2667.  
  2668.   checkbutton15 = gtk_check_button_new_with_label ("");
  2669.   checkbutton15_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (checkbutton15)->child),
  2670.                                    "Enable _sound");
  2671.   gtk_widget_add_accelerator (checkbutton15, "clicked", accel_group,
  2672.                               checkbutton15_key, GDK_MOD1_MASK, 0);
  2673.   gtk_widget_ref (checkbutton15);
  2674.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "checkbutton15", checkbutton15,
  2675.                             (GtkDestroyNotify) gtk_widget_unref);
  2676.   gtk_widget_show (checkbutton15);
  2677.   gtk_box_pack_start (GTK_BOX (vbox13), checkbutton15, FALSE, FALSE, 0);
  2678.  
  2679.   checkbutton17 = gtk_check_button_new_with_label ("");
  2680.   checkbutton17_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (checkbutton17)->child),
  2681.                                    "Enable s_peech");
  2682.   gtk_widget_add_accelerator (checkbutton17, "clicked", accel_group,
  2683.                               checkbutton17_key, GDK_MOD1_MASK, 0);
  2684.   gtk_widget_ref (checkbutton17);
  2685.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "checkbutton17", checkbutton17,
  2686.                             (GtkDestroyNotify) gtk_widget_unref);
  2687.   gtk_widget_show (checkbutton17);
  2688.   gtk_box_pack_start (GTK_BOX (vbox13), checkbutton17, FALSE, FALSE, 0);
  2689.  
  2690.   hseparator4 = gtk_hseparator_new ();
  2691.   gtk_widget_ref (hseparator4);
  2692.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "hseparator4", hseparator4,
  2693.                             (GtkDestroyNotify) gtk_widget_unref);
  2694.   gtk_widget_show (hseparator4);
  2695.   gtk_box_pack_start (GTK_BOX (vbox13), hseparator4, TRUE, TRUE, 0);
  2696.  
  2697.   checkbutton14 = gtk_check_button_new_with_label ("");
  2698.   checkbutton14_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (checkbutton14)->child),
  2699.                                    "_Real-time emulation");
  2700.   gtk_widget_add_accelerator (checkbutton14, "clicked", accel_group,
  2701.                               checkbutton14_key, GDK_MOD1_MASK, 0);
  2702.   gtk_widget_ref (checkbutton14);
  2703.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "checkbutton14", checkbutton14,
  2704.                             (GtkDestroyNotify) gtk_widget_unref);
  2705.   gtk_widget_show (checkbutton14);
  2706.   gtk_box_pack_start (GTK_BOX (vbox13), checkbutton14, FALSE, FALSE, 0);
  2707.  
  2708.   clock_speed_hbox = gtk_hbox_new (TRUE, 0);
  2709.   gtk_widget_ref (clock_speed_hbox);
  2710.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "clock_speed_hbox", clock_speed_hbox,
  2711.                             (GtkDestroyNotify) gtk_widget_unref);
  2712.   gtk_widget_show (clock_speed_hbox);
  2713.   gtk_box_pack_start (GTK_BOX (vbox13), clock_speed_hbox, TRUE, TRUE, 0);
  2714.  
  2715.   label42 = gtk_label_new ("");
  2716.   label42_key = gtk_label_parse_uline (GTK_LABEL (label42),
  2717.                                    "_9900 Clock Speed");
  2718.   gtk_widget_ref (label42);
  2719.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "label42", label42,
  2720.                             (GtkDestroyNotify) gtk_widget_unref);
  2721.   gtk_widget_show (label42);
  2722.   gtk_box_pack_start (GTK_BOX (clock_speed_hbox), label42, TRUE, TRUE, 0);
  2723.   gtk_misc_set_alignment (GTK_MISC (label42), 1, 0.5);
  2724.  
  2725.   clock_speed_spin_button_adj = gtk_adjustment_new (3.3e+06, 1, 1e+09, 10000, 1e+06, 1e+06);
  2726.   clock_speed_spin_button = gtk_spin_button_new (GTK_ADJUSTMENT (clock_speed_spin_button_adj), 1, 0);
  2727.   gtk_widget_ref (clock_speed_spin_button);
  2728.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "clock_speed_spin_button", clock_speed_spin_button,
  2729.                             (GtkDestroyNotify) gtk_widget_unref);
  2730.   gtk_widget_show (clock_speed_spin_button);
  2731.   gtk_box_pack_start (GTK_BOX (clock_speed_hbox), clock_speed_spin_button, TRUE, TRUE, 4);
  2732.   gtk_tooltips_set_tip (tooltips, clock_speed_spin_button, "This affects the maximum execution speed when real-time emulation is enavbled", NULL);
  2733.  
  2734.   button70 = gtk_button_new_with_label ("Default");
  2735.   gtk_widget_ref (button70);
  2736.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "button70", button70,
  2737.                             (GtkDestroyNotify) gtk_widget_unref);
  2738.   gtk_widget_show (button70);
  2739.   gtk_box_pack_start (GTK_BOX (clock_speed_hbox), button70, FALSE, FALSE, 0);
  2740.  
  2741.   delay_hbox = gtk_hbox_new (TRUE, 0);
  2742.   gtk_widget_ref (delay_hbox);
  2743.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "delay_hbox", delay_hbox,
  2744.                             (GtkDestroyNotify) gtk_widget_unref);
  2745.   gtk_widget_show (delay_hbox);
  2746.   gtk_box_pack_start (GTK_BOX (vbox13), delay_hbox, TRUE, TRUE, 0);
  2747.  
  2748.   label39 = gtk_label_new ("");
  2749.   label39_key = gtk_label_parse_uline (GTK_LABEL (label39),
  2750.                                    "Instruction _delay");
  2751.   gtk_widget_ref (label39);
  2752.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "label39", label39,
  2753.                             (GtkDestroyNotify) gtk_widget_unref);
  2754.   gtk_widget_show (label39);
  2755.   gtk_box_pack_start (GTK_BOX (delay_hbox), label39, TRUE, TRUE, 0);
  2756.   gtk_label_set_justify (GTK_LABEL (label39), GTK_JUSTIFY_LEFT);
  2757.   gtk_misc_set_alignment (GTK_MISC (label39), 1, 0.5);
  2758.  
  2759.   delay_spin_button_adj = gtk_adjustment_new (0, 0, 1e+09, 100, 1000, 1000);
  2760.   delay_spin_button = gtk_spin_button_new (GTK_ADJUSTMENT (delay_spin_button_adj), 1, 0);
  2761.   gtk_widget_ref (delay_spin_button);
  2762.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "delay_spin_button", delay_spin_button,
  2763.                             (GtkDestroyNotify) gtk_widget_unref);
  2764.   gtk_widget_show (delay_spin_button);
  2765.   gtk_box_pack_start (GTK_BOX (delay_hbox), delay_spin_button, TRUE, TRUE, 4);
  2766.   gtk_tooltips_set_tip (tooltips, delay_spin_button, "This value is highly CPU-dependent", NULL);
  2767.  
  2768.   button71 = gtk_button_new_with_label ("Default");
  2769.   gtk_widget_ref (button71);
  2770.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "button71", button71,
  2771.                             (GtkDestroyNotify) gtk_widget_unref);
  2772.   gtk_widget_show (button71);
  2773.   gtk_box_pack_start (GTK_BOX (delay_hbox), button71, FALSE, FALSE, 0);
  2774.  
  2775.   video_refresh_hbox = gtk_hbox_new (TRUE, 0);
  2776.   gtk_widget_ref (video_refresh_hbox);
  2777.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "video_refresh_hbox", video_refresh_hbox,
  2778.                             (GtkDestroyNotify) gtk_widget_unref);
  2779.   gtk_widget_show (video_refresh_hbox);
  2780.   gtk_box_pack_start (GTK_BOX (vbox13), video_refresh_hbox, FALSE, FALSE, 0);
  2781.  
  2782.   label40 = gtk_label_new ("");
  2783.   label40_key = gtk_label_parse_uline (GTK_LABEL (label40),
  2784.                                    "_Video refresh rate");
  2785.   gtk_widget_ref (label40);
  2786.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "label40", label40,
  2787.                             (GtkDestroyNotify) gtk_widget_unref);
  2788.   gtk_widget_show (label40);
  2789.   gtk_box_pack_start (GTK_BOX (video_refresh_hbox), label40, TRUE, TRUE, 0);
  2790.   gtk_misc_set_alignment (GTK_MISC (label40), 0, 0.5);
  2791.  
  2792.   video_refresh_spin_button_adj = gtk_adjustment_new (30, 0, 100, 1, 10, 10);
  2793.   video_refresh_spin_button = gtk_spin_button_new (GTK_ADJUSTMENT (video_refresh_spin_button_adj), 1, 0);
  2794.   gtk_widget_ref (video_refresh_spin_button);
  2795.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "video_refresh_spin_button", video_refresh_spin_button,
  2796.                             (GtkDestroyNotify) gtk_widget_unref);
  2797.   gtk_widget_show (video_refresh_spin_button);
  2798.   gtk_box_pack_start (GTK_BOX (video_refresh_hbox), video_refresh_spin_button, TRUE, TRUE, 4);
  2799.   gtk_tooltips_set_tip (tooltips, video_refresh_spin_button, "This controls how often the changed parts of the 99/4A screen are redrawn", NULL);
  2800.  
  2801.   button72 = gtk_button_new_with_label ("Default");
  2802.   gtk_widget_ref (button72);
  2803.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "button72", button72,
  2804.                             (GtkDestroyNotify) gtk_widget_unref);
  2805.   gtk_widget_show (button72);
  2806.   gtk_box_pack_start (GTK_BOX (video_refresh_hbox), button72, FALSE, FALSE, 0);
  2807.  
  2808.   vdp_interrupt_hbox = gtk_hbox_new (TRUE, 0);
  2809.   gtk_widget_ref (vdp_interrupt_hbox);
  2810.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "vdp_interrupt_hbox", vdp_interrupt_hbox,
  2811.                             (GtkDestroyNotify) gtk_widget_unref);
  2812.   gtk_widget_show (vdp_interrupt_hbox);
  2813.   gtk_box_pack_start (GTK_BOX (vbox13), vdp_interrupt_hbox, TRUE, TRUE, 0);
  2814.  
  2815.   label41 = gtk_label_new ("");
  2816.   label41_key = gtk_label_parse_uline (GTK_LABEL (label41),
  2817.                                    "VDP _interrupt rate");
  2818.   gtk_widget_ref (label41);
  2819.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "label41", label41,
  2820.                             (GtkDestroyNotify) gtk_widget_unref);
  2821.   gtk_widget_show (label41);
  2822.   gtk_box_pack_start (GTK_BOX (vdp_interrupt_hbox), label41, TRUE, TRUE, 0);
  2823.   gtk_misc_set_alignment (GTK_MISC (label41), 7.45058e-09, 0.5);
  2824.  
  2825.   vdp_interrupt_spin_button_adj = gtk_adjustment_new (60, 0, 100, 1, 10, 10);
  2826.   vdp_interrupt_spin_button = gtk_spin_button_new (GTK_ADJUSTMENT (vdp_interrupt_spin_button_adj), 1, 0);
  2827.   gtk_widget_ref (vdp_interrupt_spin_button);
  2828.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "vdp_interrupt_spin_button", vdp_interrupt_spin_button,
  2829.                             (GtkDestroyNotify) gtk_widget_unref);
  2830.   gtk_widget_show (vdp_interrupt_spin_button);
  2831.   gtk_box_pack_start (GTK_BOX (vdp_interrupt_hbox), vdp_interrupt_spin_button, TRUE, TRUE, 4);
  2832.   gtk_tooltips_set_tip (tooltips, vdp_interrupt_spin_button, "This affects sprite motion and timing", NULL);
  2833.  
  2834.   button73 = gtk_button_new_with_label ("Default");
  2835.   gtk_widget_ref (button73);
  2836.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "button73", button73,
  2837.                             (GtkDestroyNotify) gtk_widget_unref);
  2838.   gtk_widget_show (button73);
  2839.   gtk_box_pack_start (GTK_BOX (vdp_interrupt_hbox), button73, FALSE, FALSE, 0);
  2840.  
  2841.   hbox12 = gtk_hbox_new (TRUE, 0);
  2842.   gtk_widget_ref (hbox12);
  2843.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "hbox12", hbox12,
  2844.                             (GtkDestroyNotify) gtk_widget_unref);
  2845.   gtk_widget_show (hbox12);
  2846.   gtk_box_pack_end (GTK_BOX (vbox12), hbox12, FALSE, FALSE, 4);
  2847.  
  2848.   button69 = gtk_button_new_with_label ("Close");
  2849.   gtk_widget_ref (button69);
  2850.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "button69", button69,
  2851.                             (GtkDestroyNotify) gtk_widget_unref);
  2852.   gtk_widget_show (button69);
  2853.   gtk_box_pack_start (GTK_BOX (hbox12), button69, TRUE, TRUE, 0);
  2854.   gtk_container_set_border_width (GTK_CONTAINER (button69), 4);
  2855.   gtk_tooltips_set_tip (tooltips, button69, "Close window and continue emulation", NULL);
  2856.   gtk_widget_add_accelerator (button69, "clicked", accel_group,
  2857.                               GDK_Escape, 0,
  2858.                               GTK_ACCEL_VISIBLE);
  2859.  
  2860.   hseparator5 = gtk_hseparator_new ();
  2861.   gtk_widget_ref (hseparator5);
  2862.   gtk_object_set_data_full (GTK_OBJECT (options_dialog), "hseparator5", hseparator5,
  2863.                             (GtkDestroyNotify) gtk_widget_unref);
  2864.   gtk_widget_show (hseparator5);
  2865.   gtk_box_pack_start (GTK_BOX (vbox12), hseparator5, TRUE, TRUE, 0);
  2866.  
  2867.   gtk_signal_connect (GTK_OBJECT (checkbutton15), "toggled",
  2868.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_command_toggle),
  2869.                       (gpointer)"PlaySound");
  2870.   gtk_signal_connect (GTK_OBJECT (checkbutton15), "realize",
  2871.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_active),
  2872.                       (gpointer)"PlaySound");
  2873.   gtk_signal_connect (GTK_OBJECT (checkbutton17), "toggled",
  2874.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_command_toggle),
  2875.                       (gpointer)"PlaySpeech");
  2876.   gtk_signal_connect (GTK_OBJECT (checkbutton17), "realize",
  2877.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_active),
  2878.                       (gpointer)"PlaySpeech");
  2879.   gtk_signal_connect (GTK_OBJECT (checkbutton14), "toggled",
  2880.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_command_toggle),
  2881.                       (gpointer)"RealTimeEmulation");
  2882.   gtk_signal_connect (GTK_OBJECT (checkbutton14), "realize",
  2883.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_active),
  2884.                       (gpointer)"RealTimeEmulation");
  2885.   gtk_signal_connect (GTK_OBJECT (checkbutton14), "toggled",
  2886.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_widget_enable_not),
  2887.                       (gpointer)delay_hbox);
  2888.   gtk_signal_connect (GTK_OBJECT (checkbutton14), "realize",
  2889.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_widget_enable_not),
  2890.                       (gpointer)delay_hbox);
  2891.   gtk_signal_connect (GTK_OBJECT (checkbutton14), "toggled",
  2892.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_toggled_widget_enable),
  2893.                       (gpointer)clock_speed_hbox);
  2894.   gtk_signal_connect (GTK_OBJECT (checkbutton14), "realize",
  2895.                       GTK_SIGNAL_FUNC (on_v9t9_togglebutton_realize_widget_enable),
  2896.                       (gpointer)clock_speed_hbox);
  2897.   gtk_signal_connect_after (GTK_OBJECT (clock_speed_spin_button), "activate",
  2898.                             GTK_SIGNAL_FUNC (on_v9t9_spin_button_changed_value),
  2899.                             (gpointer)"BaseClockHZ");
  2900.   gtk_signal_connect (GTK_OBJECT (clock_speed_spin_button), "realize",
  2901.                       GTK_SIGNAL_FUNC (on_v9t9_spin_button_realize_value),
  2902.                       (gpointer)"BaseClockHZ");
  2903.   gtk_signal_connect (GTK_OBJECT (clock_speed_spin_button), "show",
  2904.                       GTK_SIGNAL_FUNC (on_v9t9_spin_button_realize_value),
  2905.                       (gpointer)"BaseClockHZ");
  2906.   gtk_signal_connect_after (GTK_OBJECT (clock_speed_spin_button), "changed",
  2907.                             GTK_SIGNAL_FUNC (on_v9t9_spin_button_changed_value),
  2908.                             (gpointer)"BaseClockHZ");
  2909.   gtk_signal_connect (GTK_OBJECT (button70), "clicked",
  2910.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked),
  2911.                       (gpointer)"BaseClockHZ 3300000");
  2912.   gtk_signal_connect (GTK_OBJECT (button70), "clicked",
  2913.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked_realize_widget),
  2914.                       (gpointer)clock_speed_spin_button);
  2915.   gtk_signal_connect_after (GTK_OBJECT (delay_spin_button), "activate",
  2916.                             GTK_SIGNAL_FUNC (on_v9t9_spin_button_changed_value),
  2917.                             (gpointer)"DelayBetweenInstructions");
  2918.   gtk_signal_connect (GTK_OBJECT (delay_spin_button), "realize",
  2919.                       GTK_SIGNAL_FUNC (on_v9t9_spin_button_realize_value),
  2920.                       (gpointer)"DelayBetweenInstructions");
  2921.   gtk_signal_connect (GTK_OBJECT (delay_spin_button), "show",
  2922.                       GTK_SIGNAL_FUNC (on_v9t9_spin_button_realize_value),
  2923.                       (gpointer)"DelayBetweenInstructions");
  2924.   gtk_signal_connect_after (GTK_OBJECT (delay_spin_button), "changed",
  2925.                             GTK_SIGNAL_FUNC (on_v9t9_spin_button_changed_value),
  2926.                             (gpointer)"DelayBetweenInstructions");
  2927.   gtk_signal_connect (GTK_OBJECT (button71), "clicked",
  2928.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked),
  2929.                       (gpointer)"DelayBetweenInstructions 0");
  2930.   gtk_signal_connect (GTK_OBJECT (button71), "clicked",
  2931.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked_realize_widget),
  2932.                       (gpointer)delay_spin_button);
  2933.   gtk_signal_connect_after (GTK_OBJECT (video_refresh_spin_button), "activate",
  2934.                             GTK_SIGNAL_FUNC (on_v9t9_spin_button_changed_value),
  2935.                             (gpointer)"VideoUpdateSpeed");
  2936.   gtk_signal_connect (GTK_OBJECT (video_refresh_spin_button), "realize",
  2937.                       GTK_SIGNAL_FUNC (on_v9t9_spin_button_realize_value),
  2938.                       (gpointer)"VideoUpdateSpeed");
  2939.   gtk_signal_connect (GTK_OBJECT (video_refresh_spin_button), "show",
  2940.                       GTK_SIGNAL_FUNC (on_v9t9_spin_button_realize_value),
  2941.                       (gpointer)"VideoUpdateSpeed");
  2942.   gtk_signal_connect_after (GTK_OBJECT (video_refresh_spin_button), "changed",
  2943.                             GTK_SIGNAL_FUNC (on_v9t9_spin_button_changed_value),
  2944.                             (gpointer)"VideoUpdateSpeed");
  2945.   gtk_signal_connect (GTK_OBJECT (button72), "clicked",
  2946.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked),
  2947.                       (gpointer)"VideoUpdateSpeed 30");
  2948.   gtk_signal_connect (GTK_OBJECT (button72), "clicked",
  2949.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked_realize_widget),
  2950.                       (gpointer)video_refresh_spin_button);
  2951.   gtk_signal_connect_after (GTK_OBJECT (vdp_interrupt_spin_button), "activate",
  2952.                             GTK_SIGNAL_FUNC (on_v9t9_spin_button_changed_value),
  2953.                             (gpointer)"VDPInterruptRate");
  2954.   gtk_signal_connect (GTK_OBJECT (vdp_interrupt_spin_button), "realize",
  2955.                       GTK_SIGNAL_FUNC (on_v9t9_spin_button_realize_value),
  2956.                       (gpointer)"VDPInterruptRate");
  2957.   gtk_signal_connect (GTK_OBJECT (vdp_interrupt_spin_button), "show",
  2958.                       GTK_SIGNAL_FUNC (on_v9t9_spin_button_realize_value),
  2959.                       (gpointer)"VDPInterruptRate");
  2960.   gtk_signal_connect_after (GTK_OBJECT (vdp_interrupt_spin_button), "changed",
  2961.                             GTK_SIGNAL_FUNC (on_v9t9_spin_button_changed_value),
  2962.                             (gpointer)"VDPInterruptRate");
  2963.   gtk_signal_connect (GTK_OBJECT (button73), "clicked",
  2964.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked),
  2965.                       (gpointer)"VDPInterruptRate 60");
  2966.   gtk_signal_connect (GTK_OBJECT (button73), "clicked",
  2967.                       GTK_SIGNAL_FUNC (on_v9t9_button_clicked_realize_widget),
  2968.                       (gpointer)vdp_interrupt_spin_button);
  2969.   gtk_signal_connect (GTK_OBJECT (button69), "clicked",
  2970.                       GTK_SIGNAL_FUNC (on_option_dialog_close_button_clicked),
  2971.                       NULL);
  2972.  
  2973.   gtk_widget_add_accelerator (clock_speed_spin_button, "grab_focus", accel_group,
  2974.                               label42_key, GDK_MOD1_MASK, 0);
  2975.   gtk_widget_add_accelerator (delay_spin_button, "grab_focus", accel_group,
  2976.                               label39_key, GDK_MOD1_MASK, 0);
  2977.   gtk_widget_add_accelerator (video_refresh_spin_button, "grab_focus", accel_group,
  2978.                               label40_key, GDK_MOD1_MASK, 0);
  2979.   gtk_widget_add_accelerator (vdp_interrupt_spin_button, "grab_focus", accel_group,
  2980.                               label41_key, GDK_MOD1_MASK, 0);
  2981.  
  2982.   gtk_object_set_data (GTK_OBJECT (options_dialog), "tooltips", tooltips);
  2983.  
  2984.   gtk_window_add_accel_group (GTK_WINDOW (options_dialog), accel_group);
  2985.  
  2986.   return options_dialog;
  2987. }
  2988.  
  2989. GtkWidget*
  2990. create_logging_dialog (void)
  2991. {
  2992.   GtkWidget *logging_dialog;
  2993.   GtkWidget *vbox14;
  2994.   GtkWidget *log_table;
  2995.   GtkWidget *hseparator6;
  2996.   GtkWidget *hbox13;
  2997.   GtkWidget *reset_all;
  2998.   GtkWidget *button83;
  2999.   GtkAccelGroup *accel_group;
  3000.   GtkTooltips *tooltips;
  3001.  
  3002.   tooltips = gtk_tooltips_new ();
  3003.  
  3004.   accel_group = gtk_accel_group_new ();
  3005.  
  3006.   logging_dialog = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  3007.   gtk_object_set_data (GTK_OBJECT (logging_dialog), "logging_dialog", logging_dialog);
  3008.   gtk_window_set_title (GTK_WINDOW (logging_dialog), "Logging Configuration");
  3009.   gtk_window_set_default_size (GTK_WINDOW (logging_dialog), 400, 400);
  3010.  
  3011.   vbox14 = gtk_vbox_new (FALSE, 0);
  3012.   gtk_widget_ref (vbox14);
  3013.   gtk_object_set_data_full (GTK_OBJECT (logging_dialog), "vbox14", vbox14,
  3014.                             (GtkDestroyNotify) gtk_widget_unref);
  3015.   gtk_widget_show (vbox14);
  3016.   gtk_container_add (GTK_CONTAINER (logging_dialog), vbox14);
  3017.  
  3018.   log_table = gtk_table_new (1, 1, FALSE);
  3019.   gtk_widget_ref (log_table);
  3020.   gtk_object_set_data_full (GTK_OBJECT (logging_dialog), "log_table", log_table,
  3021.                             (GtkDestroyNotify) gtk_widget_unref);
  3022.   gtk_widget_show (log_table);
  3023.   gtk_box_pack_start (GTK_BOX (vbox14), log_table, TRUE, TRUE, 0);
  3024.  
  3025.   hseparator6 = gtk_hseparator_new ();
  3026.   gtk_widget_ref (hseparator6);
  3027.   gtk_object_set_data_full (GTK_OBJECT (logging_dialog), "hseparator6", hseparator6,
  3028.                             (GtkDestroyNotify) gtk_widget_unref);
  3029.   gtk_widget_show (hseparator6);
  3030.   gtk_box_pack_start (GTK_BOX (vbox14), hseparator6, FALSE, TRUE, 0);
  3031.  
  3032.   hbox13 = gtk_hbox_new (TRUE, 0);
  3033.   gtk_widget_ref (hbox13);
  3034.   gtk_object_set_data_full (GTK_OBJECT (logging_dialog), "hbox13", hbox13,
  3035.                             (GtkDestroyNotify) gtk_widget_unref);
  3036.   gtk_widget_show (hbox13);
  3037.   gtk_box_pack_start (GTK_BOX (vbox14), hbox13, FALSE, TRUE, 0);
  3038.  
  3039.   reset_all = gtk_button_new_with_label ("Reset All");
  3040.   gtk_widget_ref (reset_all);
  3041.   gtk_object_set_data_full (GTK_OBJECT (logging_dialog), "reset_all", reset_all,
  3042.                             (GtkDestroyNotify) gtk_widget_unref);
  3043.   gtk_widget_show (reset_all);
  3044.   gtk_box_pack_start (GTK_BOX (hbox13), reset_all, FALSE, TRUE, 0);
  3045.   gtk_container_set_border_width (GTK_CONTAINER (reset_all), 4);
  3046.  
  3047.   button83 = gtk_button_new_with_label ("Close");
  3048.   gtk_widget_ref (button83);
  3049.   gtk_object_set_data_full (GTK_OBJECT (logging_dialog), "button83", button83,
  3050.                             (GtkDestroyNotify) gtk_widget_unref);
  3051.   gtk_widget_show (button83);
  3052.   gtk_box_pack_start (GTK_BOX (hbox13), button83, TRUE, TRUE, 0);
  3053.   gtk_container_set_border_width (GTK_CONTAINER (button83), 4);
  3054.   gtk_tooltips_set_tip (tooltips, button83, "Close window and continue emulation", NULL);
  3055.   gtk_widget_add_accelerator (button83, "clicked", accel_group,
  3056.                               GDK_Escape, 0,
  3057.                               GTK_ACCEL_VISIBLE);
  3058.  
  3059.   gtk_signal_connect (GTK_OBJECT (log_table), "realize",
  3060.                       GTK_SIGNAL_FUNC (on_logging_log_table_realize),
  3061.                       NULL);
  3062.   gtk_signal_connect (GTK_OBJECT (reset_all), "clicked",
  3063.                       GTK_SIGNAL_FUNC (on_logging_reset_all_clicked),
  3064.                       NULL);
  3065.   gtk_signal_connect (GTK_OBJECT (button83), "clicked",
  3066.                       GTK_SIGNAL_FUNC (on_logging_dialog_close_button_clicked),
  3067.                       NULL);
  3068.  
  3069.   gtk_object_set_data (GTK_OBJECT (logging_dialog), "tooltips", tooltips);
  3070.  
  3071.   gtk_window_add_accel_group (GTK_WINDOW (logging_dialog), accel_group);
  3072.  
  3073.   return logging_dialog;
  3074. }
  3075.  
  3076.