X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=inline;f=src%2Fgui%2Fdebug%2Fcpubrowser.cpp;h=daabbf30be9ecb33f3c08648de8f05756e066aa6;hb=eec77bddfd9b9169b23717cf3b37d182ca88bbc3;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();