Fix compiler warning about unused variable set by getch()
[emu8051.git] / src / memory.c
index 5e820ab..bf3a822 100644 (file)
@@ -42,21 +42,24 @@ memory_write8(int memory_id, unsigned long address, u_int8_t value)
        switch (memory_id) {
        case PGM_MEM_ID:
                if (address >= PGM_MEM_SIZE) {
-                       printf("Address is greater than PGM_MEM_SIZE\n");
+                       printf("Address (%lu) is greater than PGM_MEM_SIZE\n",
+                              address);
                        return;
                } else
                        pgm_mem[address] = value;
                break;
        case INT_MEM_ID:
                if (address >= INT_MEM_SIZE) {
-                       printf("Address is greater than INT_MEM_SIZE\n");
+                       printf("Address (%lu) is greater than INT_MEM_SIZE\n",
+                              address);
                        return;
                } else
                        int_mem[address] = value;
                break;
        case EXT_MEM_ID:
                if (address >= EXT_MEM_SIZE) {
-                       printf("Address is greater than EXT_MEM_SIZE\n");
+                       printf("Address (%lu) is greater than EXT_MEM_SIZE\n",
+                              address);
                        return;
                } else
                        ext_mem[address] = value;
@@ -75,7 +78,8 @@ memory_read8(int memory_id, unsigned long address)
                if (address < PGM_MEM_SIZE)
                        return pgm_mem[address];
                else {
-                       printf("Address is greater than PGM_MEM_SIZE\n");
+                       printf("Address (%lu) is greater than PGM_MEM_SIZE\n",
+                               address);
                        return 0;
                }
                break;
@@ -83,7 +87,8 @@ memory_read8(int memory_id, unsigned long address)
                if (address < INT_MEM_SIZE)
                        return int_mem[address];
                else {
-                       printf("Address is greater than INT_MEM_SIZE\n");
+                       printf("Address (%lu) is greater than INT_MEM_SIZE\n",
+                              address);
                        return 0;
                }
                break;
@@ -91,7 +96,8 @@ memory_read8(int memory_id, unsigned long address)
                if (address < EXT_MEM_SIZE)
                        return ext_mem[address];
                else {
-                       printf("Address is greater than EXT_MEM_SIZE\n");
+                       printf("Address (%lu) is greater than EXT_MEM_SIZE\n",
+                              address);
                        return 0;
                }
                break;
@@ -104,12 +110,11 @@ memory_read8(int memory_id, unsigned long address)
 
 /* Dump memory */
 void
-DumpMem(char *buf, char *Address, int memory_id)
+DumpMem(char *Address, char *Asize, int memory_id)
 {
        unsigned int MemAddress;
+       int size;
        int Offset, Column;
-       int size = 256;
-       int k = 0;
 
        if (strlen(Address) != 0) {
                if (STREQ(Address, "PC"))
@@ -120,33 +125,32 @@ DumpMem(char *buf, char *Address, int memory_id)
                MemAddress = 0;
        }
 
+       if (strlen(Asize) != 0) {
+               size = Ascii2Hex(Asize, strlen(Asize));
+       } else {
+               size = 256; /* Default size if not specified. */
+       }
+
        for (Offset = 0; Offset < size; Offset += 16) {
                unsigned char data[16];
 
-               sprintf(&buf[k], "%.4X ", MemAddress + Offset);
-               k = strlen(buf);
+               printf("%.4X ", MemAddress + Offset);
 
                for (Column = 0; Column < 16; Column++) {
                        data[Column] = memory_read8(memory_id, MemAddress +
                                                    Offset + Column);
-                       sprintf(&buf[k], " %.2X", (int) data[Column]);
-                       k = strlen(buf);
+                       printf(" %.2X", (int) data[Column]);
                }
-               sprintf(&buf[k], "  ");
-               k = strlen(buf);
+               printf("  ");
 
                /* Display any ASCII characters */
                for (Column = 0; Column < 16; Column++) {
                        if ((int) data[Column] >= 32 &&
                            (int) data[Column] <= 126) {
-                               sprintf(&buf[k], "%c", data[Column]);
-                               k = strlen(buf);
-                       } else {
-                               sprintf(&buf[k], ".");
-                               k = strlen(buf);
-                       }
+                               printf("%c", data[Column]);
+                       } else
+                               printf(".");
                }
-               sprintf(&buf[k], "\n");
-               k = strlen(buf);
+               printf("\n");
        }
 }