|
|
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 "m88100.h"
10: #include "m88100disasm.h"
11:
12: class DebuggerMD_m88xx0 : public DebuggerMD
13: {
14: typedef DebuggerMD inherited;
15: public:
16: DebuggerMD_m88xx0(Debugger *parg, m88kcpu *carg)
17: : inherited(parg)
18: {
19: cpu = carg;
20: }
21: virtual ~DebuggerMD_m88xx0() { }
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 false; }
27: bool MMUEnabled() const { return false; }
28: uint64 TranslateAddr(saddr_t laddr) { return 0; }
29:
30: // XXX ?
31: uint32 GetPC() const { return cpu->Getxip(); }
32:
33: void SetStepOut() {}
34: bool IsStepOut() const { return false; }
35: uint64 GetRegAddr(const char *name) const;
36: void BackupRegs();
37: void ShowRegMain(Console *cons);
38: void ShowRegCtrl(Console *cons);
39: void ShowRegFPU(Console *cons);
40: void ShowRegMMU(Console *cons);
41: void ShowRegATC(Console *cons) {}
42: void ShowRegOther(Console *cons);
43:
44: bool CheckLEA(uint32 laddr) {
45: bool rv = cpu->lastaddr == laddr;
46: cpu->lastaddr = 0; // XXX: ていうかここでクリアはおかしい
47: return rv;
48: }
49:
50: bool Disassemble(saddr_t laddr,
51: std::string& mnemonic, std::vector<uint8>& bin);
52: std::string FormatDisasm(const std::string& mnemonic,
53: const std::vector<uint8>& bin);
54: std::string FormatDisasmLive(const std::string& mnemonic,
55: const std::vector<uint8>& bin);
56:
57: private:
58: m88kcpu *cpu = NULL; // CPU コア
59: m88100reg prev {};
60: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.