mirror of
https://github.com/arabine/open-story-teller.git
synced 2025-12-06 17:09:06 +01:00
44 lines
1.2 KiB
C++
44 lines
1.2 KiB
C++
#include "vm_dock.h"
|
|
|
|
VmDock::VmDock(Chip32::Assembler &assembler)
|
|
: DockWidgetBase(tr("Virtual Machine"))
|
|
{
|
|
setObjectName("VirtualMachineDock"); // used to save the state
|
|
|
|
m_uiVM.setupUi(this);
|
|
|
|
// Add registers
|
|
m_uiVM.regsTable->setRowCount(REGISTER_COUNT);
|
|
for (int i = 0; i < REGISTER_COUNT; i++)
|
|
{
|
|
std::string regName;
|
|
assembler.GetRegisterName(i, regName);
|
|
QTableWidgetItem *regNameItem = new QTableWidgetItem(regName.c_str());
|
|
QTableWidgetItem *regValueItem = new QTableWidgetItem(QString::number(0));
|
|
|
|
m_uiVM.regsTable->setItem(i, 0, regNameItem);
|
|
m_uiVM.regsTable->setItem(i, 1, regValueItem);
|
|
}
|
|
|
|
connect(m_uiVM.generateButton, &QPushButton::clicked, [=](bool checked) {
|
|
emit sigCompile();
|
|
});
|
|
|
|
connect(m_uiVM.playButton, &QPushButton::clicked, [=](bool checked) {
|
|
emit sigStepInstruction();
|
|
});
|
|
|
|
connect(m_uiVM.buildButton, &QPushButton::clicked, [=](bool checked) {
|
|
emit sigBuild();
|
|
});
|
|
}
|
|
|
|
void VmDock::updateRegistersView(const chip32_ctx_t &ctx)
|
|
{
|
|
for (int i = 0; i < REGISTER_COUNT; i++)
|
|
{
|
|
m_uiVM.regsTable->item(i, 1)->setText(QString::number(ctx.registers[i]));
|
|
}
|
|
}
|
|
|