layout->setSizeConstraint(QLayout::SetFixedSize);
setLayout(layout);
- image = new QLabel();
- image->setAlignment(Qt::AlignRight);
- image->setPixmap(QPixmap(":/res/vj_title_small.png"));
- layout->addWidget(image);
-
QString s;
s.append(tr(
+ "<img src=':/res/vj_title_small.png' style='float: right'>"
"<table>"
"<tr><td align='right'><b>Version: </b></td><td>"
VJ_RELEASE_VERSION " (" VJ_RELEASE_SUBVERSION ")"
--- /dev/null
+//
+// m68kdasmbrowser.cpp - Jaguar M68K disassembly browser
+//
+// by James Hammons
+// (C) 2012 Underground Software
+//
+// JLH = James Hammons <jlhamm@acm.org>
+//
+// Who When What
+// --- ---------- -------------------------------------------------------------
+// JLH 12/01/2012 Created this file
+//
+
+// STILL TO DO:
+//
+
+#include "m68kdasmbrowser.h"
+//#include "memory.h"
+#include "m68000/m68kinterface.h"
+#include "dsp.h"
+#include "gpu.h"
+
+
+M68KDasmBrowserWindow::M68KDasmBrowserWindow(QWidget * parent/*= 0*/): QWidget(parent, Qt::Dialog),
+// layout(new QVBoxLayout), text(new QTextBrowser),
+ layout(new QVBoxLayout), text(new QLabel),
+ refresh(new QPushButton(tr("Refresh"))),
+ memBase(0x4000)
+{
+ setWindowTitle(tr("M68K Disassembly Browser"));
+
+ // Need to set the size as well...
+// resize(560, 480);
+
+ QFont fixedFont("Lucida Console", 10, QFont::Normal);
+ text->setFont(fixedFont);
+//// layout->setSizeConstraint(QLayout::SetFixedSize);
+ setLayout(layout);
+
+ layout->addWidget(text);
+ layout->addWidget(refresh);
+
+ connect(refresh, SIGNAL(clicked()), this, SLOT(RefreshContents()));
+}
+
+
+void M68KDasmBrowserWindow::RefreshContents(void)
+{
+ char string[1024];//, buf[64];
+ QString s;
+
+ char buffer[2048];
+ int pc = memBase, oldpc;
+
+ for(uint32_t i=0; i<32; i++)
+ {
+ oldpc = pc;
+ pc += m68k_disassemble(buffer, pc, 0);
+// WriteLog("%06X: %s\n", oldpc, buffer);
+ sprintf(string, "%06X: %s<br>", oldpc, buffer);
+
+ buffer[0] = 0; // Clear string
+ char singleCharString[2] = { 0, 0 };
+
+ for(int j=0; j<strlen(string); j++)
+ {
+ if (string[j] == 32)
+ strcat(buffer, " ");
+ else
+ {
+ singleCharString[0] = string[j];
+ strcat(buffer, singleCharString);
+ }
+ }
+
+// s += QString(string);
+ s += QString(buffer);
+ }
+
+ text->clear();
+ text->setText(s);
+}
+
+
+void M68KDasmBrowserWindow::keyPressEvent(QKeyEvent * e)
+{
+ if (e->key() == Qt::Key_Escape || e->key() == Qt::Key_Return)
+ hide();
+#if 1
+ else if (e->key() == Qt::Key_PageUp)
+ {
+ memBase -= 480;
+
+ if (memBase < 0)
+ memBase = 0;
+
+ RefreshContents();
+ }
+ else if (e->key() == Qt::Key_PageDown)
+ {
+ memBase += 480;
+
+ if (memBase > (0x200000 - 480))
+ memBase = 0x200000 - 480;
+
+ RefreshContents();
+ }
+ else if (e->key() == Qt::Key_Up || e->key() == Qt::Key_Minus)
+ {
+ memBase -= 16;
+
+ if (memBase < 0)
+ memBase = 0;
+
+ RefreshContents();
+ }
+ else if (e->key() == Qt::Key_Down || e->key() == Qt::Key_Equal)
+ {
+ memBase += 16;
+
+ if (memBase > (0x200000 - 480))
+ memBase = 0x200000 - 480;
+
+ RefreshContents();
+ }
+#endif
+}
--- /dev/null
+//
+// m68kdasmbrowser.h: Jaguar 68K disassembly browser
+//
+// by James Hammons
+// (C) 2012 Underground Software
+//
+
+#ifndef __M68KDASMBROWSER_H__
+#define __M68KDASMBROWSER_H__
+
+#include <QtGui>
+#include <stdint.h>
+
+class M68KDasmBrowserWindow: public QWidget
+{
+ Q_OBJECT
+
+ public:
+ M68KDasmBrowserWindow(QWidget * parent = 0);
+
+
+ public slots:
+// void DefineAllKeys(void);
+ void RefreshContents(void);
+
+ protected:
+ void keyPressEvent(QKeyEvent *);
+
+ private:
+ QVBoxLayout * layout;
+// QTextBrowser * text;
+ QLabel * text;
+ QPushButton * refresh;
+
+ int32_t memBase;
+};
+
+#endif // __M68KDASMBROWSER_H__
#include "configdialog.h"
#include "generaltab.h"
#include "version.h"
-#include "debug/memorybrowser.h"
#include "debug/cpubrowser.h"
+#include "debug/m68kdasmbrowser.h"
+#include "debug/memorybrowser.h"
#include "debug/opbrowser.h"
#include "dac.h"
memBrowseWin = new MemoryBrowserWindow(this);
cpuBrowseWin = new CPUBrowserWindow(this);
opBrowseWin = new OPBrowserWindow(this);
+ m68kDasmBrowseWin = new M68KDasmBrowserWindow(this);
videoWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
// memBrowseAct->setCheckable(true);
connect(opBrowseAct, SIGNAL(triggered()), this, SLOT(ShowOPBrowserWin()));
+ m68kDasmBrowseAct = new QAction(QIcon(":/res/generic.png"), tr("68K Listing Browser"), this);
+ m68kDasmBrowseAct->setStatusTip(tr("Shows the 68K disassembly browser window"));
+// memBrowseAct->setCheckable(true);
+ connect(m68kDasmBrowseAct, SIGNAL(triggered()), this, SLOT(ShowM68KDasmBrowserWin()));
+
// Misc. connections...
connect(filePickWin, SIGNAL(RequestLoad(QString)), this, SLOT(LoadSoftware(QString)));
connect(filePickWin, SIGNAL(FilePickerHiding()), this, SLOT(Unpause()));
debugMenu->addAction(memBrowseAct);
debugMenu->addAction(cpuBrowseAct);
debugMenu->addAction(opBrowseAct);
+ debugMenu->addAction(m68kDasmBrowseAct);
}
helpMenu = menuBar()->addMenu(tr("&Help"));
debugbar->addAction(memBrowseAct);
debugbar->addAction(cpuBrowseAct);
debugbar->addAction(opBrowseAct);
+ debugbar->addAction(m68kDasmBrowseAct);
}
// Create status bar
}
+void MainWin::ShowM68KDasmBrowserWin(void)
+{
+ m68kDasmBrowseWin->show();
+ m68kDasmBrowseWin->RefreshContents();
+}
+
+
void MainWin::ResizeMainWindow(void)
{
// videoWidget->setFixedSize(zoomLevel * 320, zoomLevel * (vjs.hardwareTypeNTSC ? 240 : 256));
class MemoryBrowserWindow;
class CPUBrowserWindow;
class OPBrowserWindow;
+class M68KDasmBrowserWindow;
class MainWin: public QMainWindow
{
void ShowMemoryBrowserWin(void);
void ShowCPUBrowserWin(void);
void ShowOPBrowserWin(void);
+ void ShowM68KDasmBrowserWin(void);
private:
void HandleKeys(QKeyEvent *, bool);
MemoryBrowserWindow * memBrowseWin;
CPUBrowserWindow * cpuBrowseWin;
OPBrowserWindow * opBrowseWin;
+ M68KDasmBrowserWindow * m68kDasmBrowseWin;
QTimer * timer;
bool running;
int zoomLevel;
QAction * memBrowseAct;
QAction * cpuBrowseAct;
QAction * opBrowseAct;
+ QAction * m68kDasmBrowseAct;
QIcon powerGreen;
QIcon powerRed;
src/gui/keygrabber.h \
src/gui/mainwin.h \
src/gui/debug/cpubrowser.h \
+ src/gui/debug/m68kdasmbrowser.h \
src/gui/debug/memorybrowser.h \
src/gui/debug/opbrowser.h \
# src/gui/sdljoystick.h
src/gui/keygrabber.cpp \
src/gui/mainwin.cpp \
src/gui/debug/cpubrowser.cpp \
+ src/gui/debug/m68kdasmbrowser.cpp \
src/gui/debug/memorybrowser.cpp \
src/gui/debug/opbrowser.cpp \
# src/gui/sdljoystick.cpp