diff --git a/debugger/debugger.cpp b/debugger/debugger.cpp
index 7dd6b80..27e4f60 100644
--- a/debugger/debugger.cpp
+++ b/debugger/debugger.cpp
@@ -1,6 +1,6 @@
/*
DingusPPC - The Experimental PowerPC Macintosh emulator
-Copyright (C) 2018-24 divingkatae and maximum
+Copyright (C) 2018-25 divingkatae and maximum
(theweirdo) spatium
(Contact divingkatae#1017 or powermax#2286 on Discord for more info)
@@ -51,6 +51,12 @@ along with this program. If not, see .
using namespace std;
+#define COUTX uppercase << hex
+#define COUT0_X(w) setfill('0') << setw(w) << right << COUTX
+#define COUT016X COUT0_X(16)
+#define COUT08X COUT0_X(8)
+#define COUT04X COUT0_X(4)
+
static uint32_t str2addr(string& addr_str) {
try {
return static_cast(stoul(addr_str, NULL, 0));
@@ -152,13 +158,13 @@ static uint32_t disasm_68k(uint32_t count, uint32_t address) {
}
if (cs_disasm_iter(cs_handle, &code_ptr, &code_size, &dis_addr, insn)) {
- cout << uppercase << hex << insn->address << " ";
+ cout << COUTX << insn->address << " ";
cout << setfill(' ');
cout << setw(10) << left << insn->mnemonic << insn->op_str << endl;
address = static_cast(dis_addr);
} else {
print_bin:
- cout << uppercase << hex << address << " ";
+ cout << COUTX << address << " ";
cout << setfill(' ');
cout << setw(10) << left << "dc.w" << "$" << hex <<
((code[0] << 8) | code[1]) << endl;
@@ -233,21 +239,22 @@ void print_68k_regs()
for (i = 0; i < 8; i++) {
reg = "R" + to_string(i + 8);
- cout << "D" << dec << i << " : " << uppercase << hex << get_reg(reg) << endl;
+ cout << " D" << dec << i << " : " << COUT08X << get_reg(reg) << endl;
}
for (i = 0; i < 7; i++) {
reg = "R" + to_string(i + 16);
- cout << "A" << dec << i << " : " << uppercase << hex << get_reg(reg) << endl;
+ cout << " A" << dec << i << " : " << COUT08X << get_reg(reg) << endl;
}
- cout << "A7 : " << uppercase << hex << get_reg(string("R1")) << endl;
+ cout << " A7 : " << COUT08X << get_reg(string("R1")) << endl;
- cout << "PC: " << uppercase << hex << get_reg(string("R24")) - 2 << endl;
+ cout << " PC : " << COUT08X << get_reg(string("R24")) - 2 << endl;
- cout << "SR: " << uppercase << hex << ((get_reg("R25") & 0xFF) << 8) << endl;
+ cout << " SR : " << COUT08X << ((get_reg("R25") & 0xFF) << 8) << endl;
- cout << "CCR: " << uppercase << hex << get_reg(string("R26")) << endl;
+ cout << " CCR : " << COUT08X << get_reg(string("R26")) << endl;
+ cout << dec << setfill(' ');
}
#endif // ENABLE_68K_DEBUGGER
@@ -333,8 +340,7 @@ static void dump_mem(string& params) {
cout << (char)val;
chars_per_line += cell_size;
} else {
- cout << setw(cell_size * 2) << setfill('0') << right;
- cout << uppercase << hex << val << " ";
+ cout << COUT0_X(cell_size * 2) << val << " ";
chars_per_line += cell_size * 2 + 2;
}
}
@@ -427,8 +433,8 @@ static uint32_t disasm(uint32_t count, uint32_t address) {
for (int i = 0; power_on && i < count; i++) {
ctx.instr_code = READ_DWORD_BE_A(mmu_translate_imem(ctx.instr_addr));
- cout << setfill('0') << setw(8) << right << uppercase << hex << ctx.instr_addr;
- cout << ": " << setfill('0') << setw(8) << right << uppercase << hex << ctx.instr_code;
+ cout << COUT08X << ctx.instr_addr;
+ cout << ": " << COUT08X << ctx.instr_code;
cout << " " << disassemble_single(&ctx) << setfill(' ') << left << endl;
}
return ctx.instr_addr;
@@ -442,7 +448,7 @@ static void print_gprs() {
reg_name = "r" + to_string(i);
cout << right << std::setw(5) << setfill(' ') << reg_name << " : " <<
- setw(8) << setfill('0') << right << uppercase << hex << get_reg(reg_name) << setfill(' ');
+ COUT08X << get_reg(reg_name) << setfill(' ');
if (i & 1) {
cout << endl;
@@ -455,7 +461,7 @@ static void print_gprs() {
for (auto &spr : sprs) {
cout << right << std::setw(5) << setfill(' ') << spr << " : " <<
- setw(8) << setfill('0') << uppercase << hex << get_reg(spr) << setfill(' ');
+ COUT08X << get_reg(spr) << setfill(' ');
if (i & 1) {
cout << endl;
@@ -472,11 +478,11 @@ static void print_fprs() {
for (int i = 0; i < 32; i++) {
reg_name = "f" + to_string(i);
cout << right << std::setw(6) << setfill(' ') << reg_name << " : " <<
- setw(16) << setfill('0') << right << uppercase << hex << ppc_state.fpr[i].int64_r <<
+ COUT016X << ppc_state.fpr[i].int64_r <<
" = " << left << setfill(' ') << ppc_state.fpr[i].dbl64_r << endl;
}
cout << right << std::setw(6) << setfill(' ') << "fpscr" << " : " <<
- setw(8) << setfill('0') << uppercase << hex << ppc_state.fpscr << setfill(' ') << endl;
+ COUT08X << ppc_state.fpscr << setfill(' ') << endl;
}
extern bool is_601;