From: Toni Wilen Date: Thu, 25 Aug 2022 20:09:02 +0000 (+0300) Subject: Disassembler full format extension upper/lower case fixes. X-Git-Tag: 41000~148 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=e95402d9aa8a95d6164d65d210b4d8ec52ac037d;p=francis%2Fwinuae.git Disassembler full format extension upper/lower case fixes. --- diff --git a/disasm.cpp b/disasm.cpp index 20933b71..eb1ec4cd 100644 --- a/disasm.cpp +++ b/disasm.cpp @@ -16,7 +16,7 @@ int disasm_min_words = 5; 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; @@ -30,6 +30,9 @@ void disasm_init(void) } 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; } @@ -341,7 +344,7 @@ uaecptr ShowEA_disp(uaecptr *pcp, uaecptr base, TCHAR *buffer, const TCHAR *name 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; @@ -463,7 +466,7 @@ uaecptr ShowEA_disp(uaecptr *pcp, uaecptr base, TCHAR *buffer, const TCHAR *name } } 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) { @@ -566,13 +569,12 @@ uaecptr ShowEA(void *f, uaecptr pc, uae_u16 opcode, int reg, amodes mode, wordsi { 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);