X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=src%2Fdump.c;h=d00d2743fb1f9000d5fdf1cadc5cc66640889770;hp=f9daf35f13eba739ba392b0ceabe3e8b88448f17;hb=17b48928d6fa43e8eeb24d3894d807475c75de69;hpb=0b4c42d3274bfcd08db55f5be02626c9e86a81ca diff --git a/src/dump.c b/src/dump.c index f9daf35..d00d274 100644 --- a/src/dump.c +++ b/src/dump.c @@ -1,23 +1,31 @@ #include "exec.h" /* exec.hに定義された関数群 */ -void dumpmemory() +void dumpmemory(WORD start, WORD end) { - const int col = 16; - int i; + const WORD col = 0x10; + WORD i, j, mod = 0x0; /* Header */ fprintf(stdout, "#%04X: adr :", sys->cpu->pr); + if(end > sys->memsize) { + end = sys->memsize; + } for(i = 0; i < sys->memsize && i < col; i++) { fprintf(stdout, " %04X", i); } fprintf(stdout, "\n"); /* Memory */ - for(i = 0; i < sys->memsize; i++) { - if(i % col == 0) { + for(i = start; i < end; i++) { + if((mod = i % col) == 0 || i == start) { fprintf(stdout, "#%04X: %04X: ", sys->cpu->pr, i); } + if(i == start) { + for(j = 0; j < mod; j++) { + fprintf(stdout, " "); + } + } fprintf(stdout, "%04X", (sys->memory)[i]); - if(i > 0 && (i + 1) % col == 0) { + if((i > 0 && (i + 1) % col == 0) || (i + 1) == end) { fprintf(stdout, "\n"); } else { fprintf(stdout, " ");