X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fgui%2Fdebug%2Fcpubrowser.cpp;h=daabbf30be9ecb33f3c08648de8f05756e066aa6;hb=7228359373eb7602c26f7b098d6b2271ff5727a1;hp=9951c648a458ae5f147350b935a9544115c21964;hpb=dffa89ebdee4d328a8e166b30fcdf38a3fc54b28;p=virtualjaguar diff --git a/src/gui/debug/cpubrowser.cpp b/src/gui/debug/cpubrowser.cpp index 9951c64..daabbf3 100644 --- a/src/gui/debug/cpubrowser.cpp +++ b/src/gui/debug/cpubrowser.cpp @@ -32,7 +32,9 @@ CPUBrowserWindow::CPUBrowserWindow(QWidget * parent/*= 0*/): QWidget(parent, Qt: // Need to set the size as well... // resize(560, 480); - QFont fixedFont("Lucida Console", 8, QFont::Normal); +// QFont fixedFont("Lucida Console", 8, QFont::Normal); + QFont fixedFont("", 8, QFont::Normal); + fixedFont.setStyleHint(QFont::TypeWriter); text->setFont(fixedFont); //// layout->setSizeConstraint(QLayout::SetFixedSize); setLayout(layout); @@ -46,7 +48,7 @@ CPUBrowserWindow::CPUBrowserWindow(QWidget * parent/*= 0*/): QWidget(parent, Qt: void CPUBrowserWindow::RefreshContents(void) { - char string[1024], buf[64]; + char string[2048]; QString s; // 68K @@ -54,6 +56,21 @@ void CPUBrowserWindow::RefreshContents(void) uint32_t m68kSR = m68k_get_reg(NULL, M68K_REG_SR); sprintf(string, "PC: %06X  SR: %04X

", m68kPC, m68kSR); s += QString(string); +/* +SR format: ++--+--+--+--+ +--+--+--+--+ +--+--+--+--+ +--+--+--+--+ +|T1|T0| S| M| |--|I2|I1|I0| |--|--|--| X| | N| Z| V| C| ++--+--+--+--+ +--+--+--+--+ +--+--+--+--+ +--+--+--+--+ + T - Trace (T1 only in 68K, T0 = 0) + S - Supervisor flag + M - Master/Interrupt flag (= 0 in 68K) + I - Interrupt level mask + X - Extend flag + N - Negative flag + Z - Zero flag + V - Overflow flag + C - Carry flag +*/ uint32_t m68kA0 = m68k_get_reg(NULL, M68K_REG_A0); uint32_t m68kA1 = m68k_get_reg(NULL, M68K_REG_A1); @@ -84,11 +101,134 @@ void CPUBrowserWindow::RefreshContents(void) s += QString(string); // GPU - sprintf(string, "GPU PC: %06X  FLAGS: %08X

", GPUReadLong(0xF02010), GPUReadLong(0xF02000)); + sprintf(string, "GPU PC: %06X  FLAGS: %04X  SR: %04X

", GPUReadLong(0xF02110, DEBUG), GPUReadLong(0xF02100, DEBUG), GPUReadLong(0xF02114, DEBUG)); + s += QString(string); +/* +GPU Flags: +0 - Zero flag +1 - Carry flag +2 - Negative flag +3 - IMASK (writing 0 clears, 1 has no effect) +4-8 - IRQ enable 0 - 4 +9-13 - IRQ latch clear 0 - 4 +14 - REGPAGE +15 - DMAEN + +GPU Control: +0 - GPU Go +1 - CPUINT +2 - GPUINT0 +3 - Single Step +4 - Single step go +5 - Unused +6-10 - IRQ Latch 0 - 4 +11 - Bus Hog +12-15 - Version +*/ + + sprintf(string, "Bank 0:
" + "R00: %08X  R01: %08X  R02: %08X  R03: %08X
" + "R04: %08X  R05: %08X  R06: %08X  R07: %08X
" + "R08: %08X  R09: %08X  R10: %08X  R11: %08X
" + "R12: %08X  R13: %08X  R14: %08X  R15: %08X
" + "R16: %08X  R17: %08X  R18: %08X  R19: %08X
" + "R20: %08X  R21: %08X  R22: %08X  R23: %08X
" + "R24: %08X  R25: %08X  R26: %08X  R27: %08X
" + "R28: %08X  R29: %08X  R30: %08X  R31: %08X

", + gpu_reg_bank_0[0], gpu_reg_bank_0[1], gpu_reg_bank_0[2], gpu_reg_bank_0[3], + gpu_reg_bank_0[4], gpu_reg_bank_0[5], gpu_reg_bank_0[6], gpu_reg_bank_0[7], + gpu_reg_bank_0[8], gpu_reg_bank_0[9], gpu_reg_bank_0[10], gpu_reg_bank_0[11], + gpu_reg_bank_0[12], gpu_reg_bank_0[13], gpu_reg_bank_0[14], gpu_reg_bank_0[15], + gpu_reg_bank_0[16], gpu_reg_bank_0[17], gpu_reg_bank_0[18], gpu_reg_bank_0[19], + gpu_reg_bank_0[20], gpu_reg_bank_0[21], gpu_reg_bank_0[22], gpu_reg_bank_0[23], + gpu_reg_bank_0[24], gpu_reg_bank_0[25], gpu_reg_bank_0[26], gpu_reg_bank_0[27], + gpu_reg_bank_0[28], gpu_reg_bank_0[29], gpu_reg_bank_0[30], gpu_reg_bank_0[31]); + s += QString(string); + + sprintf(string, "Bank 1:
" + "R00: %08X  R01: %08X  R02: %08X  R03: %08X
" + "R04: %08X  R05: %08X  R06: %08X  R07: %08X
" + "R08: %08X  R09: %08X  R10: %08X  R11: %08X
" + "R12: %08X  R13: %08X  R14: %08X  R15: %08X
" + "R16: %08X  R17: %08X  R18: %08X  R19: %08X
" + "R20: %08X  R21: %08X  R22: %08X  R23: %08X
" + "R24: %08X  R25: %08X  R26: %08X  R27: %08X
" + "R28: %08X  R29: %08X  R30: %08X  R31: %08X

", + gpu_reg_bank_1[0], gpu_reg_bank_1[1], gpu_reg_bank_1[2], gpu_reg_bank_1[3], + gpu_reg_bank_1[4], gpu_reg_bank_1[5], gpu_reg_bank_1[6], gpu_reg_bank_1[7], + gpu_reg_bank_1[8], gpu_reg_bank_1[9], gpu_reg_bank_1[10], gpu_reg_bank_1[11], + gpu_reg_bank_1[12], gpu_reg_bank_1[13], gpu_reg_bank_1[14], gpu_reg_bank_1[15], + gpu_reg_bank_1[16], gpu_reg_bank_1[17], gpu_reg_bank_1[18], gpu_reg_bank_1[19], + gpu_reg_bank_1[20], gpu_reg_bank_1[21], gpu_reg_bank_1[22], gpu_reg_bank_1[23], + gpu_reg_bank_1[24], gpu_reg_bank_1[25], gpu_reg_bank_1[26], gpu_reg_bank_1[27], + gpu_reg_bank_1[28], gpu_reg_bank_1[29], gpu_reg_bank_1[30], gpu_reg_bank_1[31]); s += QString(string); // DSP - sprintf(string, "DSP PC: %06X  FLAGS: %08X

", DSPReadLong(0xF1A110), DSPReadLong(0xF1A100)); + sprintf(string, "DSP PC: %06X  FLAGS: %05X  SR: %05X

", DSPReadLong(0xF1A110, DEBUG), DSPReadLong(0xF1A100, DEBUG), DSPReadLong(0xF1A114, DEBUG)); + s += QString(string); +/* +DSP Flags: +0 - Zero flag +1 - Carry flag +2 - Negative flag +3 - IMASK (writing 0 clears, 1 has no effect) +4-8 - IRQ enable 0 - 4 +9-13 - IRQ latch clear 0 - 4 +14 - REGPAGE +15 - DMAEN +16 - IRQ enable 5 +17 - IRQ latch clear 5 + +DSP Control: +0 - DSP Go +1 - CPUINT +2 - DSPINT0 +3 - Single Step +4 - Single step go +5 - Unused +6-10 - IRQ Latch 0 - 4 +11 - Bus Hog +12-15 - Version +16 - IRQ Latch 5 +*/ + + sprintf(string, "Bank 0:
" + "R00: %08X  R01: %08X  R02: %08X  R03: %08X
" + "R04: %08X  R05: %08X  R06: %08X  R07: %08X
" + "R08: %08X  R09: %08X  R10: %08X  R11: %08X
" + "R12: %08X  R13: %08X  R14: %08X  R15: %08X
" + "R16: %08X  R17: %08X  R18: %08X  R19: %08X
" + "R20: %08X  R21: %08X  R22: %08X  R23: %08X
" + "R24: %08X  R25: %08X  R26: %08X  R27: %08X
" + "R28: %08X  R29: %08X  R30: %08X  R31: %08X

", + dsp_reg_bank_0[0], dsp_reg_bank_0[1], dsp_reg_bank_0[2], dsp_reg_bank_0[3], + dsp_reg_bank_0[4], dsp_reg_bank_0[5], dsp_reg_bank_0[6], dsp_reg_bank_0[7], + dsp_reg_bank_0[8], dsp_reg_bank_0[9], dsp_reg_bank_0[10], dsp_reg_bank_0[11], + dsp_reg_bank_0[12], dsp_reg_bank_0[13], dsp_reg_bank_0[14], dsp_reg_bank_0[15], + dsp_reg_bank_0[16], dsp_reg_bank_0[17], dsp_reg_bank_0[18], dsp_reg_bank_0[19], + dsp_reg_bank_0[20], dsp_reg_bank_0[21], dsp_reg_bank_0[22], dsp_reg_bank_0[23], + dsp_reg_bank_0[24], dsp_reg_bank_0[25], dsp_reg_bank_0[26], dsp_reg_bank_0[27], + dsp_reg_bank_0[28], dsp_reg_bank_0[29], dsp_reg_bank_0[30], dsp_reg_bank_0[31]); + s += QString(string); + + sprintf(string, "Bank 1:
" + "R00: %08X  R01: %08X  R02: %08X  R03: %08X
" + "R04: %08X  R05: %08X  R06: %08X  R07: %08X
" + "R08: %08X  R09: %08X  R10: %08X  R11: %08X
" + "R12: %08X  R13: %08X  R14: %08X  R15: %08X
" + "R16: %08X  R17: %08X  R18: %08X  R19: %08X
" + "R20: %08X  R21: %08X  R22: %08X  R23: %08X
" + "R24: %08X  R25: %08X  R26: %08X  R27: %08X
" + "R28: %08X  R29: %08X  R30: %08X  R31: %08X
", + dsp_reg_bank_1[0], dsp_reg_bank_1[1], dsp_reg_bank_1[2], dsp_reg_bank_1[3], + dsp_reg_bank_1[4], dsp_reg_bank_1[5], dsp_reg_bank_1[6], dsp_reg_bank_1[7], + dsp_reg_bank_1[8], dsp_reg_bank_1[9], dsp_reg_bank_1[10], dsp_reg_bank_1[11], + dsp_reg_bank_1[12], dsp_reg_bank_1[13], dsp_reg_bank_1[14], dsp_reg_bank_1[15], + dsp_reg_bank_1[16], dsp_reg_bank_1[17], dsp_reg_bank_1[18], dsp_reg_bank_1[19], + dsp_reg_bank_1[20], dsp_reg_bank_1[21], dsp_reg_bank_1[22], dsp_reg_bank_1[23], + dsp_reg_bank_1[24], dsp_reg_bank_1[25], dsp_reg_bank_1[26], dsp_reg_bank_1[27], + dsp_reg_bank_1[28], dsp_reg_bank_1[29], dsp_reg_bank_1[30], dsp_reg_bank_1[31]); s += QString(string); text->clear();