オペランドに文字定数が指定された場合の動作を修正
[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 :", PR);
11     for(i = 0; 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: ", 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 < REGSIZE; i++ ) {
34         if((&execmode)->logicalmode == true) {
35             fprintf(stdout, "#%04X: GR%d: %6d = #%04X = %s\n",
36                     PR, i, GR[i], GR[i], word2bit(GR[i]));
37         } else {
38             fprintf(stdout, "#%04X: GR%d: %6d = #%04X = %s\n",
39                     PR, i, (short)GR[i], GR[i], word2bit(GR[i]));
40         }
41     }
42     fprintf(stdout, "#%04X: SP:  %6d = #%04X = %s\n", PR, SP, SP, word2bit(SP));
43     fprintf(stdout, "#%04X: PR:  %6d = #%04X = %s\n", PR, PR, PR, word2bit(PR));
44     fprintf(stdout, "#%04X: FR (OF SF ZF): %s\n", PR, (word2bit(FR)+13));
45 }