diff zdis.c @ 313:a13329645ea3

Fix terminal instruction detection in disassembler
author Mike Pavone <pavone@retrodev.com>
date Thu, 09 May 2013 19:24:18 -0700
parents 852b8765bba6
children 54c0e5f22198
line wrap: on
line diff
--- a/zdis.c	Thu May 09 18:36:21 2013 -0700
+++ b/zdis.c	Thu May 09 19:24:18 2013 -0700
@@ -135,9 +135,6 @@
 			
 			//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;
-			}
 			switch (instbuf.op)
 			{
 			case Z80_JR:
@@ -155,9 +152,14 @@
 			case Z80_JPCC:
 			case Z80_CALL:
 			case Z80_CALLCC:
+			case Z80_RST:
 				reference(instbuf.immed);
 				def = defer(instbuf.immed, def);
 				break;
+			default:
+				if (z80_is_terminal(&instbuf)) {
+					address = filesize + 1;
+				}
 			}
 		}
 	}