|
|
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:
1.1.1.3 root 21: explicit DebuggerMD_hd64180(Debugger *parent_);
1.1 root 22: ~DebuggerMD_hd64180() override;
23:
24: CPUState GetCPUState() const override;
25: bool IsSuper() const override { return true; } // ?
26: bool MMUEnabled() const override { return true; }
1.1.1.2 root 27: busaddr TranslateAddr(busaddr laddr) const override;
1.1 root 28: uint32 GetPC() const override { return cpu->reg.pc; }
1.1.1.5 ! root 29: int32 GetAndResetLastVector() override {
! 30: return cpu->GetAndResetLastVector();
! 31: }
1.1 root 32:
33: void SetStepOut() override;
34: bool IsStepOut() const override;
35: bool IsOpStepIn(DebuggerMemoryStream& mem) override;
36:
37: uint64 GetRegAddr(const char *name) const override;
38: void BackupRegs() override;
39: bool ShowRegister(FILE *, const std::vector<std::string>& args) override;
40: const HelpMessages& GetHelpListReg() const override;
41: const HelpMessages& GetHelpReg() const override;
42:
43: bool CheckLEA(uint32 laddr) override { return false; }
44:
45: std::string Disassemble(DebuggerMemoryStream& mem) override;
1.1.1.4 root 46: std::string ParseInst(const std::string&) const override;
1.1 root 47:
48: private:
49: std::string FlagStr(const hd64180flag& f);
50: bool ShowRegMain(FILE *);
51: bool ShowRegOther(FILE *);
52: const char *CondStr(const std::vector<uint8>&) const;
53:
54: MPU64180Device *cpu {};
55: hd64180reg prev {}; // 前回のレジスタセットのコピー
56: uint8 prev_i {};
57:
58: uint16 so_sp {}; // ステップアウト判定用
59:
60: static const HelpMessages HelpListReg;
61: static const HelpMessages HelpReg;
62: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.