X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=src%2Fmemory.c;h=bf3a822c5625134998dd67700828d08fd0960a01;hb=47a60dcfbfdb7a29bd933a850292b752970f2af0;hp=0b69e320b5d02d6e566c176dd6c6fc45eb4abdbf;hpb=9b40aee50be61b462dcaa0a075d4f7fd66f9262d;p=emu8051.git diff --git a/src/memory.c b/src/memory.c index 0b69e32..bf3a822 100644 --- a/src/memory.c +++ b/src/memory.c @@ -110,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")) @@ -126,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"); } }