X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=src%2Fdump.c;h=f9daf35f13eba739ba392b0ceabe3e8b88448f17;hp=c1184be0c073972422066a2265a9ab7ebc42289e;hb=b8b0bb2a7b5ef20cdbee5f555c5846dfc1c7f981;hpb=a901ac636091cc9d044a78525064b699ef7a2760 diff --git a/src/dump.c b/src/dump.c index c1184be..f9daf35 100644 --- a/src/dump.c +++ b/src/dump.c @@ -1,23 +1,22 @@ -#include "casl2.h" #include "exec.h" -/* COMET IIのメモリを表示 */ +/* exec.hに定義された関数群 */ void dumpmemory() { const int col = 16; int i; /* Header */ - fprintf(stdout, "#%04X: adr :", PR); - for(i = 0; i < col; i++) { + fprintf(stdout, "#%04X: adr :", sys->cpu->pr); + for(i = 0; i < sys->memsize && i < col; i++) { fprintf(stdout, " %04X", i); } fprintf(stdout, "\n"); /* Memory */ - for(i = 0; i < memsize; i++) { + for(i = 0; i < sys->memsize; i++) { if(i % col == 0) { - fprintf(stdout, "#%04X: %04X: ", PR, i); + fprintf(stdout, "#%04X: %04X: ", sys->cpu->pr, i); } - fprintf(stdout, "%04X", memory[i]); + fprintf(stdout, "%04X", (sys->memory)[i]); if(i > 0 && (i + 1) % col == 0) { fprintf(stdout, "\n"); } else { @@ -26,15 +25,23 @@ void dumpmemory() } } -/* COMET IIのレジスタを表示 */ void dspregister() { int i; - for(i = 0; i < REGSIZE; i++ ) { - fprintf(stdout, "#%04X: GR%d: ", PR, i); - print_dumpword(GR[i], (&execmode)->logicalmode); + char *sp, *pr, *fr; + for(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", PR, SP, SP, word2bit(SP)); - fprintf(stdout, "#%04X: PR: %6d = #%04X = %s\n", PR, PR, PR, word2bit(PR)); - fprintf(stdout, "#%04X: FR (OF SF ZF): %s\n", PR, (word2bit(FR)+13)); + 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)); + + FREE(sp); + FREE(pr); + FREE(fr); }