2 // cpubrowser.cpp - Jaguar CPU browser
5 // (C) 2012 Underground Software
7 // JLH = James Hammons <jlhamm@acm.org>
10 // --- ---------- -------------------------------------------------------------
11 // JLH 08/14/2012 Created this file
17 #include "cpubrowser.h"
19 #include "m68000/m68kinterface.h"
24 CPUBrowserWindow::CPUBrowserWindow(QWidget * parent/*= 0*/): QWidget(parent, Qt::Dialog),
25 // layout(new QVBoxLayout), text(new QTextBrowser),
26 layout(new QVBoxLayout), text(new QLabel),
27 refresh(new QPushButton(tr("Refresh"))),
30 setWindowTitle(tr("CPU Browser"));
32 // Need to set the size as well...
35 QFont fixedFont("Lucida Console", 10, QFont::Normal);
36 text->setFont(fixedFont);
37 //// layout->setSizeConstraint(QLayout::SetFixedSize);
40 layout->addWidget(text);
41 layout->addWidget(refresh);
43 connect(refresh, SIGNAL(clicked()), this, SLOT(RefreshContents()));
47 void CPUBrowserWindow::RefreshContents(void)
49 char string[1024], buf[64];
53 uint32_t m68kPC = m68k_get_reg(NULL, M68K_REG_PC);
54 uint32_t m68kSR = m68k_get_reg(NULL, M68K_REG_SR);
55 sprintf(string, "PC: %06X SR: %04X<br><br>", m68kPC, m68kSR);
58 uint32_t m68kA0 = m68k_get_reg(NULL, M68K_REG_A0);
59 uint32_t m68kA1 = m68k_get_reg(NULL, M68K_REG_A1);
60 uint32_t m68kA2 = m68k_get_reg(NULL, M68K_REG_A2);
61 uint32_t m68kA3 = m68k_get_reg(NULL, M68K_REG_A3);
62 sprintf(string, "A0: %08X A1: %08X A2: %08X A3: %08X<br>", m68kA0, m68kA1, m68kA2, m68kA3);
65 uint32_t m68kA4 = m68k_get_reg(NULL, M68K_REG_A4);
66 uint32_t m68kA5 = m68k_get_reg(NULL, M68K_REG_A5);
67 uint32_t m68kA6 = m68k_get_reg(NULL, M68K_REG_A6);
68 uint32_t m68kA7 = m68k_get_reg(NULL, M68K_REG_A7);
69 sprintf(string, "A4: %08X A5: %08X A6: %08X A7: %08X<br><br>", m68kA4, m68kA5, m68kA6, m68kA7);
72 uint32_t m68kD0 = m68k_get_reg(NULL, M68K_REG_D0);
73 uint32_t m68kD1 = m68k_get_reg(NULL, M68K_REG_D1);
74 uint32_t m68kD2 = m68k_get_reg(NULL, M68K_REG_D2);
75 uint32_t m68kD3 = m68k_get_reg(NULL, M68K_REG_D3);
76 sprintf(string, "D0: %08X D1: %08X D2: %08X D3: %08X<br>", m68kD0, m68kD1, m68kD2, m68kD3);
79 uint32_t m68kD4 = m68k_get_reg(NULL, M68K_REG_D4);
80 uint32_t m68kD5 = m68k_get_reg(NULL, M68K_REG_D5);
81 uint32_t m68kD6 = m68k_get_reg(NULL, M68K_REG_D6);
82 uint32_t m68kD7 = m68k_get_reg(NULL, M68K_REG_D7);
83 sprintf(string, "D4: %08X D5: %08X D6: %08X D7: %08X<br><br>", m68kD4, m68kD5, m68kD6, m68kD7);
87 sprintf(string, "GPU PC: %06X FLAGS: %08X<br><br>", GPUReadLong(0xF02010), GPUReadLong(0xF02000));
91 sprintf(string, "DSP PC: %06X FLAGS: %08X<br><br>", DSPReadLong(0xF1A110), DSPReadLong(0xF1A100));
99 void CPUBrowserWindow::keyPressEvent(QKeyEvent * e)
101 if (e->key() == Qt::Key_Escape || e->key() == Qt::Key_Return)
103 else if (e->key() == Qt::Key_PageUp)
112 else if (e->key() == Qt::Key_PageDown)
116 if (memBase > (0x200000 - 480))
117 memBase = 0x200000 - 480;
121 else if (e->key() == Qt::Key_Up || e->key() == Qt::Key_Minus)
130 else if (e->key() == Qt::Key_Down || e->key() == Qt::Key_Equal)
134 if (memBase > (0x200000 - 480))
135 memBase = 0x200000 - 480;