summaryrefslogtreecommitdiff
path: root/z80inst.c
diff options
context:
space:
mode:
authorMike Pavone <pavone@retrodev.com>2013-05-03 20:15:23 -0700
committerMike Pavone <pavone@retrodev.com>2013-05-03 20:15:23 -0700
commit20fa900f979ba887d49cd42a59495ca337964f96 (patch)
treeb957c917270d7811f7acf9b2e4e2e5485f60fc1a /z80inst.c
parent3e56c044f05ae889b7460178a28eb22c3759e892 (diff)
Use hex where appropriate in disassembler
Diffstat (limited to 'z80inst.c')
-rw-r--r--z80inst.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/z80inst.c b/z80inst.c
index 6525fc2..d94b4bf 100644
--- a/z80inst.c
+++ b/z80inst.c
@@ -1386,10 +1386,15 @@ int z80_disasm(z80inst * decoded, char * dst)
len += sprintf(dst+len, " (%s)", z80_regs[decoded->ea_reg]);
break;
case Z80_IMMED:
- len += sprintf(dst+len, " %d", decoded->immed);
+ if (decoded->immed >= 63 || decoded->op == Z80_JP || decoded->op == Z80_JPCC || decoded->op == Z80_CALL || decoded->op == Z80_CALLCC || decoded->op == Z80_RST)
+ {
+ len += sprintf(dst+len, " $%X", decoded->immed);
+ } else {
+ len += sprintf(dst+len, " %d", decoded->immed);
+ }
break;
case Z80_IMMED_INDIRECT:
- len += sprintf(dst+len, " (%d)", decoded->immed);
+ len += sprintf(dst+len, " ($%X)", decoded->immed);
break;
case Z80_IX_DISPLACE:
len += sprintf(dst+len, " (ix+%d)", decoded->ea_reg);
@@ -1433,10 +1438,15 @@ int z80_disasm(z80inst * decoded, char * dst)
len += sprintf(dst+len, "%s (%s)", needcomma ? "," : "" , z80_regs[decoded->ea_reg]);
break;
case Z80_IMMED:
- len += sprintf(dst+len, "%s %d", needcomma ? "," : "" , decoded->immed);
+ if (decoded->immed >= 63 || decoded->op == Z80_JP || decoded->op == Z80_JPCC || decoded->op == Z80_CALL || decoded->op == Z80_CALLCC || decoded->op == Z80_RST)
+ {
+ len += sprintf(dst+len, "%s $%X", needcomma ? "," : "" , decoded->immed);
+ } else {
+ len += sprintf(dst+len, "%s %d", needcomma ? "," : "" , decoded->immed);
+ }
break;
case Z80_IMMED_INDIRECT:
- len += sprintf(dst+len, "%s (%d)", needcomma ? "," : "" , decoded->immed);
+ 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);