|
|
1.1 ! root 1: // ! 2: // nono ! 3: // Copyright (C) 2020 [email protected] ! 4: // ! 5: ! 6: #pragma once ! 7: ! 8: #include "debugger_private.h" ! 9: #include "m68030.h" ! 10: #include "m68030disasm.h" ! 11: ! 12: class DebuggerMD_m680x0 : public DebuggerMD ! 13: { ! 14: typedef DebuggerMD inherited; ! 15: public: ! 16: DebuggerMD_m680x0(Debugger *parg, m68kcpu *carg) ! 17: : inherited(parg) ! 18: { ! 19: cpu = carg; ! 20: } ! 21: virtual ~DebuggerMD_m680x0() { } ! 22: ! 23: void ReqSet(uint32 flag) { cpu->atomic_reqflag |= flag; } ! 24: void ReqClr(uint32 flag) { cpu->atomic_reqflag &= ~flag; } ! 25: ! 26: bool IsSuper() const { return cpu->reg.s; } ! 27: bool MMUEnabled() const { return cpu->mmu_enable; } ! 28: uint64 TranslateAddr(saddr_t laddr); ! 29: ! 30: uint32 GetPC() const { return RegPC; } ! 31: ! 32: void SetStepOut(); ! 33: bool IsStepOut() const; ! 34: uint64 GetRegAddr(const char *name) const; ! 35: void BackupRegs() { prev = cpu->reg; } ! 36: void ShowRegMain(Console *cons); ! 37: void ShowRegCtrl(Console *cons) {} ! 38: void ShowRegFPU(Console *cons); ! 39: void ShowRegMMU(Console *cons); ! 40: void ShowRegATC(Console *cons); ! 41: void ShowRegOther(Console *cons); ! 42: ! 43: bool CheckLEA(uint32 laddr) { return false; } ! 44: ! 45: bool Disassemble(saddr_t laddr, ! 46: std::string& mnemonic, std::vector<uint8>& bin); ! 47: std::string FormatDisasm(const std::string& mnemonic, ! 48: const std::vector<uint8>& bin); ! 49: std::string FormatDisasmLive(const std::string& mnemonic, ! 50: const std::vector<uint8>& bin); ! 51: ! 52: private: ! 53: m68kcpu *cpu = NULL; // CPU コア ! 54: m68kreg prev {}; // 前回のレジスタセットのコピー ! 55: ! 56: const char *CondStr(const std::vector<uint16>& ir); ! 57: bool IsOPcc(uint16 op); ! 58: bool IsDBcc(uint16 op); ! 59: bool IsCond(uint16 op); ! 60: ! 61: uint32 so_a7 = 0; // ステップアウト判定用 ! 62: uint16 so_sr = 0; ! 63: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.