projects
/
dcpu16
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed instruction length issue
[dcpu16]
/
vm-dcpu16.c
diff --git
a/vm-dcpu16.c
b/vm-dcpu16.c
index 522682a6732e871ff50157323a227b85e619e76e..17effb6a558db14d11698cfceaf56d452c202252 100644
(file)
--- a/
vm-dcpu16.c
+++ b/
vm-dcpu16.c
@@
-230,8
+230,8
@@
COMMAND_IMPL(dump) {
int i;
for (i = 1; i < arg_count; i++) {
int i;
for (i = 1; i < arg_count; i++) {
- addr[i] = str_to_word_(arg_vector[i]);
- if (addr[i] < 0) {
+ addr[i
-1
] = str_to_word_(arg_vector[i]);
+ if (addr[i
-1
] < 0) {
fprintf(stderr, "address '%s' is not a valid word: %s\n", arg_vector[i], strerror(errno));
return 0;
}
fprintf(stderr, "address '%s' is not a valid word: %s\n", arg_vector[i], strerror(errno));
return 0;
}
@@
-261,8
+261,8
@@
COMMAND_IMPL(disassemble) {
int i;
for (i = 1; i < arg_count; i++) {
int i;
for (i = 1; i < arg_count; i++) {
- addr[i] = str_to_word_(arg_vector[i]);
- if (addr[i] < 0) {
+ addr[i
-1
] = str_to_word_(arg_vector[i]);
+ if (addr[i
-1
] < 0) {
fprintf(stderr, "address '%s' is not a valid word: %s\n", arg_vector[i], strerror(errno));
return 0;
}
fprintf(stderr, "address '%s' is not a valid word: %s\n", arg_vector[i], strerror(errno));
return 0;
}
@@
-275,8
+275,11
@@
COMMAND_IMPL(disassemble) {
return 0;
}
return 0;
}
- for (i = addr[0]; i <= addr[1]; i++)
- dcpu16_disassemble_print(vm, i), printf("\n");
+ for (i = addr[0]; i <= addr[1]; /* */ ) {
+ printf("0x%04x: ", i);
+ i += dcpu16_disassemble_print(vm, i);
+ printf("\n");
+ }
return 0;
}
return 0;
}