projects
/
YACASL2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
comet2monitorで、引数が多すぎる場合に警告を表示
[YACASL2.git]
/
src
/
dump.c
diff --git
a/src/dump.c
b/src/dump.c
index
60ca21d
..
d371f73
100644
(file)
--- a/
src/dump.c
+++ b/
src/dump.c
@@
-1,24
+1,32
@@
-#include "casl2.h"
#include "exec.h"
#include "exec.h"
-/*
COMET IIのメモリを表示
*/
-void dumpmemory()
+/*
exec.hに定義された関数群
*/
+void dumpmemory(
WORD start, WORD end
)
{
{
- const
int col = 16
;
-
int i
;
+ const
WORD col = 0x10
;
+
WORD i, j, mod = 0x0
;
/* Header */
/* Header */
- fprintf(stdout, "#%04X: adr :", cpu->pr);
- for(i = 0; i < memsize && i < col; i++) {
+ fprintf(stdout, "#%04X: adr :", sys->cpu->pr);
+ if(end > sys->memsize) {
+ end = sys->memsize;
+ }
+ for(i = 0; i < sys->memsize && i < col; i++) {
fprintf(stdout, " %04X", i);
}
fprintf(stdout, "\n");
fprintf(stdout, " %04X", i);
}
fprintf(stdout, "\n");
+ fprintf(stdout, " -------------------------------------------------------------------------------------\n");
/* Memory */
/* Memory */
- for(i =
0; i < memsize
; i++) {
- if(
i % col == 0
) {
- fprintf(stdout, "#%04X: %04X: ", cpu->pr, i);
+ for(i =
start; i < end
; i++) {
+ if(
(mod = i % col) == 0 || i == start
) {
+ fprintf(stdout, "#%04X: %04X: ",
sys->
cpu->pr, i);
}
}
- fprintf(stdout, "%04X", memory[i]);
- if(i > 0 && (i + 1) % col == 0) {
+ if(i == start) {
+ for(j = 0; j < mod; j++) {
+ fprintf(stdout, " ");
+ }
+ }
+ fprintf(stdout, "%04X", (sys->memory)[i]);
+ if((i > 0 && (i + 1) % col == 0) || (i + 1) == end) {
fprintf(stdout, "\n");
} else {
fprintf(stdout, " ");
fprintf(stdout, "\n");
} else {
fprintf(stdout, " ");
@@
-26,18
+34,23
@@
void dumpmemory()
}
}
}
}
-/* COMET IIのレジスタを表示 */
void dspregister()
{
int i;
void dspregister()
{
int i;
+ char *sp, *pr, *fr;
for(i = 0; i < GRSIZE; i++ ) {
for(i = 0; i < GRSIZE; i++ ) {
- fprintf(stdout, "#%04X: GR%d: ", cpu->pr, i);
- print_dumpword(cpu->gr[i], (&execmode)->logical);
+ 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",
}
fprintf(stdout, "#%04X: SP: %6d = #%04X = %s\n",
-
cpu->pr, cpu->sp, cpu->sp, word2bit(
cpu->sp));
+
sys->cpu->pr, sys->cpu->sp, sys->cpu->sp, sp = word2bit(sys->
cpu->sp));
fprintf(stdout, "#%04X: PR: %6d = #%04X = %s\n",
fprintf(stdout, "#%04X: PR: %6d = #%04X = %s\n",
-
cpu->pr, cpu->pr, cpu->pr, word2bit(
cpu->pr));
+
sys->cpu->pr, sys->cpu->pr, sys->cpu->pr, pr = word2bit(sys->
cpu->pr));
fprintf(stdout, "#%04X: FR (OF SF ZF): %s\n",
fprintf(stdout, "#%04X: FR (OF SF ZF): %s\n",
- cpu->pr, (word2bit(cpu->fr)+13));
+ sys->cpu->pr, ((fr = word2bit(sys->cpu->fr)) + 13));
+
+ FREE(sp);
+ FREE(pr);
+ FREE(fr);
}
}