|
|
1.1 ! root 1: // ! 2: // nono ! 3: // Copyright (C) 2022 nono project ! 4: // Licensed under nono-license.txt ! 5: // ! 6: ! 7: // ! 8: // デバッガ (HD64180 依存部分) ! 9: // ! 10: ! 11: #pragma once ! 12: ! 13: #include "debugger_private.h" ! 14: #include "mpu64180.h" ! 15: #include "hd64180disasm.h" ! 16: ! 17: class DebuggerMD_hd64180 : public DebuggerMD ! 18: { ! 19: using inherited = DebuggerMD; ! 20: public: ! 21: DebuggerMD_hd64180(Debugger *parent_); ! 22: ~DebuggerMD_hd64180() override; ! 23: ! 24: CPUState GetCPUState() const override; ! 25: bool IsSuper() const override { return true; } // ? ! 26: bool MMUEnabled() const override { return true; } ! 27: ! 28: uint64 TranslateAddr(saddr_t laddr, bool lookup) const override; ! 29: uint32 GetPC() const override { return cpu->reg.pc; } ! 30: ! 31: void SetStepOut() override; ! 32: bool IsStepOut() const override; ! 33: bool IsOpStepIn(DebuggerMemoryStream& mem) override; ! 34: ! 35: uint64 GetRegAddr(const char *name) const override; ! 36: void BackupRegs() override; ! 37: bool ShowRegister(FILE *, const std::vector<std::string>& args) override; ! 38: const HelpMessages& GetHelpListReg() const override; ! 39: const HelpMessages& GetHelpReg() const override; ! 40: ! 41: bool CheckLEA(uint32 laddr) override { return false; } ! 42: ! 43: std::string Disassemble(DebuggerMemoryStream& mem) override; ! 44: ! 45: private: ! 46: std::string FlagStr(const hd64180flag& f); ! 47: bool ShowRegMain(FILE *); ! 48: bool ShowRegOther(FILE *); ! 49: const char *CondStr(const std::vector<uint8>&) const; ! 50: ! 51: MPU64180Device *cpu {}; ! 52: hd64180reg prev {}; // 前回のレジスタセットのコピー ! 53: uint8 prev_i {}; ! 54: ! 55: uint16 so_sp {}; // ステップアウト判定用 ! 56: ! 57: static const HelpMessages HelpListReg; ! 58: static const HelpMessages HelpReg; ! 59: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.