+ gtk_container_add(GTK_CONTAINER(frame), scrollwin);
+
+ /* Creating a model */
+ store = pgmwin_init_store();
+
+ /* Creating the view component */
+ pgmlist = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
+ gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(pgmlist), TRUE);
+ gtk_container_add(GTK_CONTAINER(scrollwin), pgmlist);
+
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(pgmlist));
+
+ /* Only one row can be selected at a time. */
+ gtk_tree_selection_set_mode(selection, GTK_SELECTION_BROWSE);
+
+ g_signal_connect(selection, "changed",
+ G_CALLBACK(pgmwin_sel_changed_event), NULL);
+
+ pgmwin_init_columns();
+
+ /*
+ * The tree view has acquired its own reference to the model, so we can
+ * drop ours. That way the model will be freed automatically when the
+ * tree view is destroyed.
+ */
+ g_object_unref(store);
+
+ return frame;
+}
+
+/* Show disassembled program. */
+void
+pgmwin_Disasm(void)
+{
+ int row;
+ GtkListStore *store;
+ unsigned int Address;
+
+ Address = cpu8051.pc;
+
+ store = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(pgmlist)));
+
+ for (row = 0; row < DATA_ROWS; row++) {
+ int valid;
+ GtkTreeIter iter;
+ char str[128];
+ int k;
+ int col_id;
+ int InstSize;
+ unsigned char OpCode;
+
+ if (row == 0) {
+ /* Get first row in list store */
+ valid = gtk_tree_model_get_iter_first(
+ GTK_TREE_MODEL(store), &iter);
+ } else {
+ /* Get next row in list store */
+ valid = gtk_tree_model_iter_next(
+ GTK_TREE_MODEL(store), &iter);
+ }