UIDebugM68K::UIDebugM68K( YabauseThread *mYabauseThread, QWidget* p ) : UIDebugCPU(mYabauseThread, p ) { this->setWindowTitle(QtYabause::translate("Debug M68K")); gbRegisters->setTitle(QtYabause::translate("M68K Registers")); gbMemoryBreakpoints->setVisible( false ); updateRegList(); if (SoundRam) { m68kregs_struct m68kregs; const m68kcodebreakpoint_struct *cbp; int i; cbp = M68KGetBreakpointList(); for (i = 0; i < MAX_BREAKPOINTS; i++) { QString text; if (cbp[i].addr != 0xFFFFFFFF) { text.sprintf("%08X", (int)cbp[i].addr); lwCodeBreakpoints->addItem(text); } } lwDisassembledCode->setDisassembleFunction(M68KDis); lwDisassembledCode->setEndAddress(0x100000); lwDisassembledCode->setMinimumInstructionSize(2); M68KGetRegisters(&m68kregs); updateCodeList(m68kregs.PC); M68KSetBreakpointCallBack(M68KBreakpointHandler); } }
UIDebugSCUDSP::UIDebugSCUDSP( YabauseThread *mYabauseThread, QWidget* p ) : UIDebugCPU( mYabauseThread, p ) { this->setWindowTitle("Debug SCU DSP"); gbRegisters->setTitle("DSP Registers"); pbMemoryTransfer->setVisible( false ); gbMemoryBreakpoints->setVisible( false ); pbReserved1->setText(QtYabause::translate("Save Program")); pbReserved2->setText(QtYabause::translate("Save MD0")); pbReserved3->setText(QtYabause::translate("Save MD1")); pbReserved4->setText(QtYabause::translate("Save MD2")); pbReserved5->setText(QtYabause::translate("Save MD3")); pbReserved1->setVisible( true ); pbReserved2->setVisible( true ); pbReserved3->setVisible( true ); pbReserved4->setVisible( true ); pbReserved5->setVisible( true ); QSize size = lwRegisters->minimumSize(); size.setWidth(size.width() + lwRegisters->fontMetrics().averageCharWidth()); lwRegisters->setMinimumSize(size); size = lwDisassembledCode->minimumSize(); size.setWidth(lwRegisters->fontMetrics().averageCharWidth() * 80); lwDisassembledCode->setMinimumSize(size); updateRegList(); if (ScuRegs) { scudspregs_struct regs; const scucodebreakpoint_struct *cbp; int i; cbp = ScuDspGetBreakpointList(); for (i = 0; i < MAX_BREAKPOINTS; i++) { QString text; if (cbp[i].addr != 0xFFFFFFFF) { text.sprintf("%08X", (int)cbp[i].addr); lwCodeBreakpoints->addItem(text); } } lwDisassembledCode->setDisassembleFunction(SCUDSPDis); lwDisassembledCode->setEndAddress(0x100); lwDisassembledCode->setMinimumInstructionSize(1); ScuDspGetRegisters(®s); updateCodeList(regs.PC); ScuDspSetBreakpointCallBack(SCUDSPBreakpointHandler); } }
void UIDebugSCUDSP::updateAll() { updateRegList(); if (ScuRegs) { scudspregs_struct regs; ScuDspGetRegisters(®s); updateCodeList(regs.PC); } }
void UIDebugSH2::updateAll() { updateRegList(); if (debugSH2) { sh2regs_struct sh2regs; SH2GetRegisters(debugSH2, &sh2regs); updateCodeList(sh2regs.PC); updateBackTrace(); updateTrackInfLoop(); } }
void UIDebugCPU::on_lwRegisters_itemDoubleClicked ( QListWidgetItem * item ) { int size; u32 value = getRegister(lwRegisters->row(item), &size); UIHexInput hex(value, size, this); if (hex.exec() == QDialog::Accepted) { value = hex.getValue(); setRegister(lwRegisters->row(item), value); } updateRegList(); }