Add option no-define to AM_INIT_AUTOMAKE
[emu8051.git] / src / gtk / memwin.c
index 9f8abd2..96be0b5 100644 (file)
@@ -12,6 +12,7 @@
 #endif
 
 #include <stdio.h>
+#include <stdint.h>
 #include <stdbool.h>
 #include <ctype.h> /* For isprint */
 #include <zlib.h> /* For crc32 routine */
@@ -42,7 +43,7 @@ enum {
 struct memwin_infos_t {
        GtkWidget *memlist;
        int data_rows;
-       u_int32_t *crc;
+       uint32_t *crc;
        int crc_init;
 };
 
@@ -78,12 +79,12 @@ memwin_cell_edited(GtkCellRendererText *cell, gchar *path_string,
                   gchar *new_str, gpointer model)
 {
        guint column;
-       guint memory_id;
+       enum mem_id_t memory_id;
        gpointer columnptr;
        gpointer memory_id_ptr;
        GtkTreeIter iter;
        int address;
-       u_int8_t old;
+       uint8_t old;
        int new;
        char *str;
 
@@ -103,26 +104,31 @@ memwin_cell_edited(GtkCellRendererText *cell, gchar *path_string,
 
        /* Get base address. */
        gtk_tree_model_get(model, &iter, COL_ADDRESS, &str, -1);
+
+       /* No need to check error, has already been validated. */
        address = asciihex2int(str);
 
        /* Convert column number (1, 2, 3...) to index (0, 1, 2...) */
        address += (column - COL_DATA0);
-       old = memory_read8(memory_id, address);
+       old = mem_read8(memory_id, address);
 
        log_info("Address: $%02X", address);
        log_info("  old value: $%02X", old);
 
        /* Convert new value (asciihex) to integer. */
        new = asciihex2int(new_str);
-       if ((new < 0) || (new > 255)) {
-               log_info("  new value: out of range");
-               new = old; /* Put back old value... */
+       if (asciihex2int_get_error()) {
+               log_warn("  new value: invalid");
+               return;
+       } else if ((new < 0) || (new > 255)) {
+               log_warn("  new value: out of range");
+               return;
        } else {
                log_info("  new value: $%02X", new);
        }
 
        /* Store new value in emulator memory. */
-       memory_write8(memory_id, address, new);
+       mem_write8(memory_id, address, new);
 
        /* Convert to text. */
        int2asciihex(new, str, 2);
@@ -138,7 +144,7 @@ memwin_cell_edited(GtkCellRendererText *cell, gchar *path_string,
 };
 
 static void
-memwin_init_columns(GtkWidget *listview, int memory_id)
+memwin_init_columns(GtkWidget *listview, enum mem_id_t memory_id)
 {
        int i;
        GtkCellRenderer *renderer;
@@ -196,7 +202,7 @@ memwin_init_columns(GtkWidget *listview, int memory_id)
 }
 
 static void
-memwin_infos_select(int memory_id)
+memwin_infos_select(enum mem_id_t memory_id)
 {
        if (memory_id == INT_MEM_ID) {
                log_debug("memory ID = INTERNAL");
@@ -223,12 +229,12 @@ compute_data_rows(int memory_id)
        if (memwin_infos->crc)
                free(memwin_infos->crc);
 
-       memwin_infos->crc = malloc(memwin_infos->data_rows * sizeof(u_int32_t));
+       memwin_infos->crc = malloc(memwin_infos->data_rows * sizeof(uint32_t));
        memwin_infos->crc_init = false;
 }
 
 GtkWidget *
-memwin_init(char *title, int memory_id)
+memwin_init(char *title, enum mem_id_t memory_id)
 {
        GtkWidget *frame;
        GtkWidget *scrollwin;
@@ -283,13 +289,13 @@ memwin_init(char *title, int memory_id)
  * rows which have been modified.
  */
 static int
-memwin_row_changed(int memory_id, int row, unsigned int address)
+memwin_row_changed(enum mem_id_t memory_id, int row, unsigned int address)
 {
        int row_changed;
-       u_int32_t crc_new = 0;
-       u_int8_t *buf8;
+       uint32_t crc_new = 0;
+       uint8_t *buf8;
 
-       buf8 = memory_getbuf(memory_id, address);
+       buf8 = mem_getbuf(memory_id, address);
        crc_new = crc32(0L, Z_NULL, 0);
        crc_new = crc32(crc_new, buf8, cfg->bytes_per_row);
 
@@ -307,7 +313,7 @@ memwin_row_changed(int memory_id, int row, unsigned int address)
 
 /* Dump internal or external memory. */
 void
-memwin_refresh(int memory_id)
+memwin_refresh(enum mem_id_t memory_id)
 {
        int row;
        unsigned int address = 0;
@@ -351,9 +357,9 @@ memwin_refresh(int memory_id)
                        gtk_list_store_set(store, &iter, COL_ADDRESS, str, -1);
 
                        for (col = 0; col < cfg->bytes_per_row; col++) {
-                               u_int8_t data;
+                               uint8_t data;
 
-                               data = memory_read8(memory_id, address + col);
+                               data = mem_read8(memory_id, address + col);
 
                                /* Display hex data */
                                int2asciihex(data, str, 2);