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 }