#include "memory1browser.h"
#include "memory.h"
#include "debugger/DBGManager.h"
+#include "settings.h"
//
Memory1BrowserWindow::Memory1BrowserWindow(QWidget * parent/*= 0*/): QWidget(parent, Qt::Dialog),
-// layout(new QVBoxLayout), text(new QTextBrowser),
layout(new QVBoxLayout), text(new QLabel),
refresh(new QPushButton(tr("Refresh"))),
address(new QLineEdit),
go(new QPushButton(tr("Go"))),
memBase(0), memOrigin(0), NumWinOrigin(0)
{
- //setWindowTitle(tr("Memory 1 Browser"));
-
- //address->setInputMask("hhhhhh");
address->setPlaceholderText("0x<value>, decimal value or symbol name");
QHBoxLayout * hbox1 = new QHBoxLayout;
hbox1->addWidget(address);
hbox1->addWidget(go);
- // Need to set the size as well...
-// resize(560, 480);
-
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);
layout->addWidget(text);
- //layout->addWidget(refresh);
layout->addLayout(hbox1);
connect(refresh, SIGNAL(clicked()), this, SLOT(RefreshContentsWindow()));
if (isVisible())
{
- sprintf(string, "Memory %i - %06X", (unsigned int)((NumWinOrigin = NumWin) + 1), (unsigned int)memOrigin);
+ sprintf(string, "Memory %i - 0x%06X", (unsigned int)((NumWinOrigin = NumWin) + 1), (unsigned int)memOrigin);
setWindowTitle(tr(string));
-
RefreshContentsWindow();
}
}
{
if (e->key() == Qt::Key_PageUp)
{
- memBase -= 480;
-
- if (memBase < 0)
+ if ((memBase -= 480) < 0)
+ {
memBase = 0;
+ }
RefreshContentsWindow();
}
{
if (e->key() == Qt::Key_PageDown)
{
- memBase += 480;
-
- if (memBase > (0x200000 - 480))
- memBase = 0x200000 - 480;
+ if ((memBase += 480) > (vjs.DRAM_size - 480))
+ {
+ memBase = vjs.DRAM_size - 480;
+ }
RefreshContentsWindow();
}
{
if (e->key() == Qt::Key_Up || e->key() == Qt::Key_Minus)
{
- memBase -= 16;
-
- if (memBase < 0)
+ if ((memBase -= 16) < 0)
+ {
memBase = 0;
+ }
RefreshContentsWindow();
}
{
if (e->key() == Qt::Key_Down || e->key() == Qt::Key_Equal)
{
- memBase += 16;
-
- if (memBase > (0x200000 - 480))
- memBase = 0x200000 - 480;
+ if ((memBase += 16) > (vjs.DRAM_size - 480))
+ {
+ memBase = vjs.DRAM_size - 480;
+ }
RefreshContentsWindow();
}
void Memory1BrowserWindow::GoToAddress(void)
{
bool ok;
+ size_t len;
QString newAddress;
+ size_t newmemBase;
+ QPalette p = address->palette();
newAddress = address->text();
- if (( newAddress.at(0) == QChar('0')) && (newAddress.at(1) == QChar('x')))
+ if ((len = newAddress.size()))
{
- memBase = newAddress.toUInt(&ok, 16);
- }
- else
- {
- if (!(memBase = DBGManager_GetAdrFromSymbolName(newAddress.toLatin1().data())))
+ if ((len > 1) && (newAddress.at(0) == QChar('0')) && (newAddress.at(1) == QChar('x')))
{
- memBase = newAddress.toUInt(&ok, 10);
+ newmemBase = newAddress.toUInt(&ok, 16);
+ }
+ else
+ {
+ if (!(newmemBase = DBGManager_GetAdrFromSymbolName(newAddress.toLatin1().data())))
+ {
+ newmemBase = newAddress.toUInt(&ok, 10);
+ }
+ else
+ {
+ ok = true;
+ }
}
- }
- memOrigin = memBase;
- RefreshContents(NumWinOrigin);
+ if (!ok || (newmemBase < 0) || (newmemBase > vjs.DRAM_size))
+ {
+ p.setColor(QPalette::Text, Qt::red);
+ }
+ else
+ {
+ p.setColor(QPalette::Text, Qt::black);
+ memOrigin = (memBase = newmemBase);
+ RefreshContents(NumWinOrigin);
+ }
+ address->setPalette(p);
+ }
}