Adjust memory index column header according to number of data columns
[emu8051.git] / src / memwin.c
index 17b9413..d8441fb 100644 (file)
@@ -32,6 +32,7 @@
 #include "cpu8051.h"
 #include "regwin.h"
 #include "memwin.h"
+#include "emugtk.h"
 
 #define DATA_COLS 16 /* Must be a power of 2 */
 #define DATA_ROWS_INT (INT_MEM_SIZE / DATA_COLS)
@@ -93,6 +94,7 @@ memwin_cell_edited(GtkCellRendererText *cell, gchar *path_string,
         columnptr = g_object_get_data(G_OBJECT(cell), "column");
         column = GPOINTER_TO_UINT(columnptr);
 
+       /* Memory ID  is passed as renderer object data */
        memory_id_ptr = g_object_get_data(G_OBJECT(cell), "memory_id");
        memory_id = GPOINTER_TO_UINT(memory_id_ptr);
 
@@ -132,7 +134,7 @@ memwin_cell_edited(GtkCellRendererText *cell, gchar *path_string,
         * Make sure to update all registers and memory.
         * For example, BANKed registers depends on internal memory.
         */
-       regwin_Show();
+       emugtk_UpdateDisplay();
 };
 
 static void
@@ -165,13 +167,17 @@ memwin_init_columns(GtkWidget *listview, int memory_id)
                                 gtk_tree_view_get_model(
                                         GTK_TREE_VIEW(listview)));
 
-               /* Add column index, used when editing the cell. */
+               /* Add column index and memory_id, used when editing the cell. */
                g_object_set_data(G_OBJECT(renderer), "column",
                                  GUINT_TO_POINTER(i));
                g_object_set_data(G_OBJECT(renderer), "memory_id",
                                  GUINT_TO_POINTER(memory_id));
 
-               sprintf(col_name, "B%02d", i - COL_DATA0);
+               /* Use two digits only if DATA_ROWS > 10 */
+               if (DATA_COLS < 10)
+                       sprintf(col_name, "B%1d", i - COL_DATA0);
+               else
+                       sprintf(col_name, "B%02d", i - COL_DATA0);
 
                column = gtk_tree_view_column_new_with_attributes(
                        col_name, renderer, "text", i, NULL);
@@ -247,9 +253,9 @@ memwin_init(char *title, int memory_id)
        return frame;
 }
 
-/* Dump up to 256 bytes from Address in Memory (direct addressing) */
+/* Dump internal or external memory. */
 void
-memwin_DumpD(int memory_id)
+memwin_refresh(int memory_id)
 {
        int row;
        unsigned int Address;
@@ -257,8 +263,6 @@ memwin_DumpD(int memory_id)
        GtkWidget *memlist;
        int data_rows;
 
-       log_info("memwin_DumpD()");
-
        Address = 0;
 
        if (memory_id == INT_MEM_ID) {