summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pavone <pavone@retrodev.com>2013-04-30 00:37:30 -0700
committerMike Pavone <pavone@retrodev.com>2013-04-30 00:37:30 -0700
commita401040df4061a5118b5ba5ef42d67f2f331e6e1 (patch)
treefd66976465909c303d2ea69beb919cd4d36b1f21
parent981623bbb34a6a1620eb609fd3069b4bf4086ffa (diff)
Fix infinite loop in Z80 disassembler
-rw-r--r--zdis.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/zdis.c b/zdis.c
index be0ffe4..f7c7201 100644
--- a/zdis.c
+++ b/zdis.c
@@ -125,7 +125,7 @@ int main(int argc, char ** argv)
break;
}
for(;;) {
- if (address > filesize) {
+ if (address > filesize || is_visited(address)) {
break;
}
visit(address);
@@ -133,8 +133,8 @@ int main(int argc, char ** argv)
address += (next-encoded);
encoded = next;
- //m68k_disasm(&instbuf, disbuf);
- //printf("%X: %s\n", instbuf.address, disbuf);
+ //z80_disasm(&instbuf, disbuf);
+ //printf("%X: %s\n", address, disbuf);
if (instbuf.op == Z80_HALT || instbuf.op == Z80_RET || instbuf.op == Z80_RETI || instbuf.op == Z80_RETN || instbuf.op == Z80_RST) {
break;
}