#include "memorycontainer.h" #include "ui_memorycontainer.h" #include "StdAfx.h" #include "Memory.h" #include "viewbuffer.h" namespace { void setComment(QHexMetadata* metadata, int begin, int end, const QColor &fgcolor, const QColor &bgcolor, const QString &comment) { // line and start are 0 based // length is both ends included const int width = HEX_LINE_LENGTH; const int firstRow = begin / width; const int lastRow = end / width; for (int row = firstRow; row <= lastRow; ++row) { int start, length; if (row == firstRow) { start = begin % width; } else { start = 0; } if (row == lastRow) { const int lastChar = end % width; length = lastChar - start; } else { length = width; } if (length > 0) { metadata->metadata(row, start, length, fgcolor, bgcolor, comment); } } } } MemoryContainer::MemoryContainer(QWidget *parent) : QTabWidget(parent), ui(new Ui::MemoryContainer) { ui->setupUi(this); char * mainBase = reinterpret_cast(MemGetMainPtr(0)); QHexDocument * mainDocument = QHexDocument::fromMemory(mainBase, 0x10000, this); ui->main->setReadOnly(true); ui->main->setDocument(mainDocument); QHexMetadata* mainMetadata = mainDocument->metadata(); setComment(mainMetadata, 0x0400, 0x0800, Qt::blue, Qt::yellow, "Text Video Page 1"); setComment(mainMetadata, 0x0800, 0x0C00, Qt::black, Qt::yellow, "Text Video Page 2"); setComment(mainMetadata, 0x2000, 0x4000, Qt::blue, Qt::yellow, "HiRes Video Page 1"); setComment(mainMetadata, 0x4000, 0x6000, Qt::black, Qt::yellow, "HiRes Video Page 2"); setComment(mainMetadata, 0xC000, 0xC100, Qt::white, Qt::blue, "Soft Switches"); setComment(mainMetadata, 0xC100, 0xC800, Qt::white, Qt::red, "Peripheral Card Memory"); setComment(mainMetadata, 0xF800, 0x10000, Qt::white, Qt::red, "System Monitor"); char * auxBase = reinterpret_cast(MemGetAuxPtr(0)); QHexDocument * auxDocument = QHexDocument::fromMemory(auxBase, 0x10000, this); ui->aux->setReadOnly(true); ui->aux->setDocument(auxDocument); QHexMetadata* auxMetadata = auxDocument->metadata(); setComment(auxMetadata, 0x0400, 0x0800, Qt::blue, Qt::yellow, "Text Video Page 1"); setComment(auxMetadata, 0x0800, 0x0C00, Qt::black, Qt::yellow, "Text Video Page 2"); setComment(auxMetadata, 0x2000, 0x4000, Qt::blue, Qt::yellow, "HiRes Video Page 1"); setComment(auxMetadata, 0x4000, 0x6000, Qt::black, Qt::yellow, "HiRes Video Page 2"); }