X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=src%2Fdump.c;fp=src%2Fdump.c;h=19f429d21c2668a31cce6107cce7d52887d9ace7;hp=858235beac0f6b1966d95877c67a915c9b9f9087;hb=875ffa04ad421b5cac1ce48e8bf2090aefb009c9;hpb=25a9c834fde0f2fa892c332d2f24c979c7773e61 diff --git a/src/dump.c b/src/dump.c index 858235b..19f429d 100644 --- a/src/dump.c +++ b/src/dump.c @@ -4,28 +4,29 @@ void dumpmemory(WORD start, WORD end) { const WORD col = 0x10; - WORD i, j, mod = 0x0; + WORD mod = 0; /* Header */ fprintf(stdout, "#%04X: adr :", sys->cpu->pr); if(end > sys->memsize) { end = sys->memsize; } - for(i = 0; i < sys->memsize && i < col; i++) { + for(int i = 0; i < sys->memsize && i < col; i++) { fprintf(stdout, " %04X", i); } fprintf(stdout, "\n"); fprintf(stdout, " -------------------------------------------------------------------------------------\n"); /* Memory */ - for(i = start; i < end; i++) { - if((mod = i % col) == 0 || i == start) { + for(int i = start; i < end; i++) { + mod = i % col; + if(mod == 0 || i == start) { fprintf(stdout, "#%04X: %04X: ", sys->cpu->pr, i); } if(i == start) { - for(j = 0; j < mod; j++) { + for(int j = 0; j < mod; j++) { fprintf(stdout, " "); } } - fprintf(stdout, "%04X", (sys->memory)[i]); + fprintf(stdout, "%04X", sys->memory[i]); if((i > 0 && (i + 1) % col == 0) || (i + 1) == end) { fprintf(stdout, "\n"); } else { @@ -36,21 +37,20 @@ void dumpmemory(WORD start, WORD end) void dspregister() { - char *sp = NULL; - char *pr = NULL; - char *fr = NULL; + char *sp = word2bit(sys->cpu->sp); + char *pr = word2bit(sys->cpu->pr); + char *fr = word2bit(sys->cpu->fr); + enum { + L3BIT = 16 - 3, /* WORD値16ビットのうち、下位3ビットの開始位置 */ + }; for(int i = 0; i < GRSIZE; i++ ) { fprintf(stdout, "#%04X: GR%d: ", sys->cpu->pr, i); print_dumpword(sys->cpu->gr[i], execmode.logical); fprintf(stdout, "\n"); } - fprintf(stdout, "#%04X: SP: %6d = #%04X = %s\n", - sys->cpu->pr, sys->cpu->sp, sys->cpu->sp, sp = word2bit(sys->cpu->sp)); - fprintf(stdout, "#%04X: PR: %6d = #%04X = %s\n", - sys->cpu->pr, sys->cpu->pr, sys->cpu->pr, pr = word2bit(sys->cpu->pr)); - fprintf(stdout, "#%04X: FR (OF SF ZF): %s\n", - sys->cpu->pr, ((fr = word2bit(sys->cpu->fr)) + 13)); /* FRは末尾3けたを表示 */ - + fprintf(stdout, "#%04X: SP: %6d = #%04X = %s\n", sys->cpu->pr, sys->cpu->sp, sys->cpu->sp, sp); + fprintf(stdout, "#%04X: PR: %6d = #%04X = %s\n", sys->cpu->pr, sys->cpu->pr, sys->cpu->pr, pr); + fprintf(stdout, "#%04X: FR (OF SF ZF): %s\n", sys->cpu->pr, fr + L3BIT); /* FRは下位3けたを表示 */ FREE(sp); FREE(pr); FREE(fr);