]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Disassembler full format extension upper/lower case fixes.
authorToni Wilen <twilen@winuae.net>
Thu, 25 Aug 2022 20:09:02 +0000 (23:09 +0300)
committerToni Wilen <twilen@winuae.net>
Thu, 25 Aug 2022 20:09:02 +0000 (23:09 +0300)
disasm.cpp

index 20933b71bbd1c382bcc2159af79c7749fba11d19..eb1ec4cda65a080d16cd7bac0e16ca39a9c63be1 100644 (file)
@@ -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);