Mercurial > repos > blastem
comparison z80inst.c @ 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 | b970ea214ecb |
children | a13329645ea3 |
comparison
equal
deleted
inserted
replaced
296:f90aeea98e53 | 297:147e31983730 |
---|---|
1395 break; | 1395 break; |
1396 case Z80_IMMED_INDIRECT: | 1396 case Z80_IMMED_INDIRECT: |
1397 len += sprintf(dst+len, " ($%X)", decoded->immed); | 1397 len += sprintf(dst+len, " ($%X)", decoded->immed); |
1398 break; | 1398 break; |
1399 case Z80_IX_DISPLACE: | 1399 case Z80_IX_DISPLACE: |
1400 len += sprintf(dst+len, " (ix+%d)", decoded->ea_reg); | 1400 len += sprintf(dst+len, " (ix+%d)", decoded->ea_reg & 0x80 ? decoded->ea_reg - 256 : decoded->ea_reg); |
1401 break; | 1401 break; |
1402 case Z80_IY_DISPLACE: | 1402 case Z80_IY_DISPLACE: |
1403 len += sprintf(dst+len, " (iy+%d)", decoded->ea_reg); | 1403 len += sprintf(dst+len, " (iy+%d)", decoded->ea_reg & 0x80 ? decoded->ea_reg - 256 : decoded->ea_reg); |
1404 break; | 1404 break; |
1405 default: | 1405 default: |
1406 needcomma = 0; | 1406 needcomma = 0; |
1407 } | 1407 } |
1408 if (decoded->reg & Z80_IMMED_FLAG) { | 1408 if (decoded->reg & Z80_IMMED_FLAG) { |
1447 break; | 1447 break; |
1448 case Z80_IMMED_INDIRECT: | 1448 case Z80_IMMED_INDIRECT: |
1449 len += sprintf(dst+len, "%s ($%X)", needcomma ? "," : "" , decoded->immed); | 1449 len += sprintf(dst+len, "%s ($%X)", needcomma ? "," : "" , decoded->immed); |
1450 break; | 1450 break; |
1451 case Z80_IX_DISPLACE: | 1451 case Z80_IX_DISPLACE: |
1452 len += sprintf(dst+len, "%s (ix+%d)", needcomma ? "," : "" , decoded->ea_reg); | 1452 len += sprintf(dst+len, "%s (ix+%d)", needcomma ? "," : "" , decoded->ea_reg & 0x80 ? decoded->ea_reg - 256 : decoded->ea_reg); |
1453 break; | 1453 break; |
1454 case Z80_IY_DISPLACE: | 1454 case Z80_IY_DISPLACE: |
1455 len += sprintf(dst+len, "%s (iy+%d)", needcomma ? "," : "" , decoded->ea_reg); | 1455 len += sprintf(dst+len, "%s (iy+%d)", needcomma ? "," : "" , decoded->ea_reg & 0x80 ? decoded->ea_reg - 256 : decoded->ea_reg); |
1456 break; | 1456 break; |
1457 } | 1457 } |
1458 } | 1458 } |
1459 return len; | 1459 return len; |
1460 } | 1460 } |