--- nono/debugger/debugger_m680x0.h 2026/04/29 17:04:37 1.1.1.3 +++ nono/debugger/debugger_m680x0.h 2026/04/29 17:05:09 1.1.1.6 @@ -4,6 +4,10 @@ // Licensed under nono-license.txt // +// +// デバッガ (M680x0 依存部分) +// + #pragma once #include "debugger_private.h" @@ -18,29 +22,30 @@ class DebuggerMD_m680x0 : public Debugge DebuggerMD_m680x0(Debugger *parent, m68kcpu *cpu); ~DebuggerMD_m680x0() override; - void ReqSet(uint32 flag) override { cpu->atomic_reqflag |= flag; } - void ReqClr(uint32 flag) override { cpu->atomic_reqflag &= ~flag; } + void ReqSet(uint32 flag) override { /*TODO*/ } + void ReqClr(uint32 flag) override { /*TODO*/ } bool IsSuper() const override { return cpu->reg.s; } bool MMUEnabled() const override { return cpu->mmu_enable; } - uint64 TranslateAddr(saddr_t laddr) override; + uint64 TranslateAddr(saddr_t laddr, bool lookup) const override; uint32 GetPC() const override { return RegPC; } void SetStepOut() override; bool IsStepOut() const override; + bool IsOpStepIn(DebuggerMemoryStream& mem) override; uint64 GetRegAddr(const char *name) const override; void BackupRegs() override { prev = cpu->reg; } - bool ShowRegister(Console *cons, const std::vector& args) - override; - const HelpMessages& GetRegisterHelp() const override; + bool ShowRegister(FILE *, const std::vector& args) override; + const HelpMessages& GetHelpListReg() const override; + const HelpMessages& GetHelpReg() const override; BranchHistory& GetBrHist() const override { return cpu->brhist; } BranchHistory& GetExHist() const override { return cpu->exhist; } bool CheckLEA(uint32 laddr) override { return false; } - bool Disassemble(saddr_t laddr, + bool Disassemble(DebuggerMemoryStream& mem, std::string& mnemonic, std::vector& bin) override; std::string FormatDisasm(const std::string& mnemonic, const std::vector& bin) override; @@ -48,25 +53,22 @@ class DebuggerMD_m680x0 : public Debugge const std::vector& bin) override; private: - m68kcpu *cpu = NULL; // CPU コア - m68kreg prev {}; // 前回のレジスタセットのコピー - - // 前回アクセス時の論理ページ。.addr == 0xffffffff なら無効。 - saddr_t last_lpage; - uint32 last_ppage; + m68kcpu *cpu {}; // CPU コア + m68kreg prev {}; // 前回のレジスタセットのコピー const char *CondStr(const std::vector& ir); bool IsOPcc(uint16 op); bool IsDBcc(uint16 op); bool IsCond(uint16 op); - static const HelpMessages HelpMsgRegister; - void ShowRegMain(Console *cons); - void ShowRegFPU(Console *cons); - void ShowRegMMU(Console *cons); - void ShowRegATC(Console *cons); - void ShowRegOther(Console *cons); + static const HelpMessages HelpListReg; + static const HelpMessages HelpReg; + void ShowRegMain(FILE *); + void ShowRegFPU(FILE *); + void ShowRegMMU(FILE *); + void ShowRegATC(); + void ShowRegOther(); - uint32 so_a7 = 0; // ステップアウト判定用 - uint16 so_sr = 0; + uint32 so_a7 {}; // ステップアウト判定用 + uint16 so_sr {}; };