Mercurial > repos > blastem
diff zdis.c @ 258:852b8765bba6
Fix infinite loop in Z80 disassembler
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 30 Apr 2013 00:37:30 -0700 |
parents | 69585e7d474f |
children | a13329645ea3 |
line wrap: on
line diff
--- a/zdis.c Mon Apr 29 23:02:39 2013 -0700 +++ b/zdis.c Tue Apr 30 00:37:30 2013 -0700 @@ -125,7 +125,7 @@ break; } for(;;) { - if (address > filesize) { + if (address > filesize || is_visited(address)) { break; } visit(address); @@ -133,8 +133,8 @@ 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; }