Mercurial > repos > blastem
changeset 297:147e31983730
Fix printing of negative displacements in Z80 disassembler
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 08 May 2013 22:43:31 -0700 |
parents | f90aeea98e53 |
children | 170722e80fc0 |
files | z80inst.c |
diffstat | 1 files changed, 4 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/z80inst.c Wed May 08 21:02:33 2013 -0700 +++ b/z80inst.c Wed May 08 22:43:31 2013 -0700 @@ -1397,10 +1397,10 @@ len += sprintf(dst+len, " ($%X)", decoded->immed); break; case Z80_IX_DISPLACE: - len += sprintf(dst+len, " (ix+%d)", decoded->ea_reg); + len += sprintf(dst+len, " (ix+%d)", decoded->ea_reg & 0x80 ? decoded->ea_reg - 256 : decoded->ea_reg); break; case Z80_IY_DISPLACE: - len += sprintf(dst+len, " (iy+%d)", decoded->ea_reg); + len += sprintf(dst+len, " (iy+%d)", decoded->ea_reg & 0x80 ? decoded->ea_reg - 256 : decoded->ea_reg); break; default: needcomma = 0; @@ -1449,10 +1449,10 @@ len += sprintf(dst+len, "%s ($%X)", needcomma ? "," : "" , decoded->immed); break; case Z80_IX_DISPLACE: - len += sprintf(dst+len, "%s (ix+%d)", needcomma ? "," : "" , decoded->ea_reg); + len += sprintf(dst+len, "%s (ix+%d)", needcomma ? "," : "" , decoded->ea_reg & 0x80 ? decoded->ea_reg - 256 : decoded->ea_reg); break; case Z80_IY_DISPLACE: - len += sprintf(dst+len, "%s (iy+%d)", needcomma ? "," : "" , decoded->ea_reg); + len += sprintf(dst+len, "%s (iy+%d)", needcomma ? "," : "" , decoded->ea_reg & 0x80 ? decoded->ea_reg - 256 : decoded->ea_reg); break; } }