テストがMacやCygwinなどでも成功するように変更
[YACASL2.git] / src / dump.c
1 #include "casl2.h"
2 #include "exec.h"
3
4 /* COMET IIのメモリを表示 */
5 void dumpmemory()
6 {
7     const int col = 16;
8     int i;
9     /* Header */
10     fprintf(stdout, "#%04X: adr :", cpu->pr);
11     for(i = 0; i < memsize && i < col; i++) {
12         fprintf(stdout, " %04X", i);
13     }
14     fprintf(stdout, "\n");
15     /* Memory */
16     for(i = 0; i < memsize; i++) {
17         if(i % col == 0) {
18             fprintf(stdout, "#%04X: %04X: ", cpu->pr, i);
19         }
20         fprintf(stdout, "%04X", memory[i]);
21         if(i > 0 && (i + 1) % col == 0) {
22             fprintf(stdout, "\n");
23         } else {
24             fprintf(stdout, " ");
25         }
26     }
27 }
28
29 /* COMET IIのレジスタを表示 */
30 void dspregister()
31 {
32     int i;
33     for(i = 0; i < GRSIZE; i++ ) {
34         fprintf(stdout, "#%04X: GR%d: ", cpu->pr, i);
35         print_dumpword(cpu->gr[i], (&execmode)->logical);
36     }
37     fprintf(stdout, "#%04X: SP:  %6d = #%04X = %s\n",
38             cpu->pr, cpu->sp, cpu->sp, word2bit(cpu->sp));
39     fprintf(stdout, "#%04X: PR:  %6d = #%04X = %s\n",
40             cpu->pr, cpu->pr, cpu->pr, word2bit(cpu->pr));
41     fprintf(stdout, "#%04X: FR (OF SF ZF): %s\n",
42             cpu->pr, (word2bit(cpu->fr)+13));
43 }