dumpwordコマンドで10進数/16進数を表す文字列が引数になるよう仕様変更
[YACASL2.git] / src / dump.c
1 #include "casl2.h"
2
3 /* COMET IIのメモリを表示 */
4 void dumpmemory()
5 {
6     const int col = 16;
7     int i;
8     /* Header */
9     fprintf(stdout, "#%04X: adr :", PR);
10     for(i = 0; i < col; i++) {
11         fprintf(stdout, " %04X", i);
12     }
13     fprintf(stdout, "\n");
14     /* Memory */
15     for(i = 0; i < memsize; i++) {
16         if(i % col == 0) {
17             fprintf(stdout, "#%04X: %04X: ", PR, i);
18         }
19         fprintf(stdout, "%04X", memory[i]);
20         if(i > 0 && (i + 1) % col == 0) {
21             fprintf(stdout, "\n");
22         } else {
23             fprintf(stdout, " ");
24         }
25     }
26 }
27
28 /* COMET IIのレジスタを表示 */
29 void dspregister()
30 {
31     int i;
32     for(i = 0; i < REGSIZE; i++ ) {
33         if(logicalmode == true) {
34             fprintf(stdout, "#%04X: GR%d: %6d = #%04X = %s\n",
35                     PR, i, GR[i], GR[i], word2bit(GR[i]));
36         } else {
37             fprintf(stdout, "#%04X: GR%d: %6d = #%04X = %s\n",
38                     PR, i, (short)GR[i], GR[i], word2bit(GR[i]));
39         }
40     }
41     fprintf(stdout, "#%04X: SP:  %6d = #%04X = %s\n", PR, SP, SP, word2bit(SP));
42     fprintf(stdout, "#%04X: PR:  %6d = #%04X = %s\n", PR, PR, PR, word2bit(PR));
43     fprintf(stdout, "#%04X: FR (OF SF ZF): %s\n", PR, (word2bit(FR)+13));
44 }