int disasm_max_words = 16;
TCHAR disasm_hexprefix[3] = { '$', 0 };
-static TCHAR disasm_areg, disasm_dreg;
+static TCHAR disasm_areg, disasm_dreg, disasm_byte, disasm_word, disasm_long;
static TCHAR disasm_pcreg[3], disasm_fpreg[3];
static bool absshort_long = false;
}
disasm_areg = (disasm_flags & DISASM_FLAG_LC_REG) ? 'a' : 'A';
disasm_dreg = (disasm_flags & DISASM_FLAG_LC_REG) ? 'd' : 'D';
+ disasm_byte = (disasm_flags & DISASM_FLAG_LC_REG) ? 'b' : 'B';
+ disasm_word = (disasm_flags & DISASM_FLAG_LC_REG) ? 'w' : 'W';
+ disasm_long = (disasm_flags & DISASM_FLAG_LC_REG) ? 'l' : 'L';
absshort_long = (disasm_flags & DISASM_FLAG_ABSSHORTLONG) != 0;
}
name = NULL;
}
if (buffer)
- _stprintf(dr, _T("%c%d.%c"), dp & 0x8000 ? 'A' : 'D', (int)r, dp & 0x800 ? 'L' : 'W');
+ _stprintf(dr, _T("%c%d.%c"), dp & 0x8000 ? disasm_areg : disasm_dreg, (int)r, dp & 0x800 ? disasm_long : disasm_word);
if (dp & 0x40) { // IS (index suppress)
dispreg = 0;
dr[0] = 0;
}
}
regstr[0] = 0;
- _stprintf(regstr, _T(",%c%d.%c"), dp & 0x8000 ? disasm_areg : disasm_dreg, (int)r, dp & 0x800 ? 'L' : 'W');
+ _stprintf(regstr, _T(",%c%d.%c"), dp & 0x8000 ? disasm_areg : disasm_dreg, (int)r, dp & 0x800 ? disasm_long : disasm_word);
addr = base + (uae_s32)((uae_s8)disp8) + dispreg;
if (buffer) {
if (pcrel) {
{
addr = (uae_s32)(uae_s16)get_iword_debug (pc);
uae_s16 saddr = (uae_s16)addr;
- TCHAR w = (disasm_flags & DISASM_FLAG_LC_REG) ? 'w' : 'W';
if (absshort_long) {
- _stprintf(buffer, disasm_lc_hex(_T("$%08X.%c")), addr, w);
+ _stprintf(buffer, disasm_lc_hex(_T("$%08X.%c")), addr, disasm_word);
} else if (saddr < 0) {
- _stprintf(buffer, disasm_lc_hex(_T("-$%04X.%c")), -saddr, w);
+ _stprintf(buffer, disasm_lc_hex(_T("-$%04X.%c")), -saddr, disasm_word);
} else {
- _stprintf(buffer, disasm_lc_hex(_T("$%04X.%c")), saddr, w);
+ _stprintf(buffer, disasm_lc_hex(_T("$%04X.%c")), saddr, disasm_word);
}
pc += 2;
showea_val(buffer, opcode, addr, size);