|
|
1.1 root 1: //
2: // nono
3: // Copyright (C) 2020 nono project
4: // Licensed under nono-license.txt
5: //
6:
7: //
8: // メインバス (X68030)
9: //
10:
11: #pragma once
12:
13: #include "mainbus.h"
14:
15: class BankRAMDevice;
16: class ExtRAMDevice;
17: class X68kIODevice;
18:
19: class X68kMainbus final : public MainbusDevice
20: {
21: using inherited = MainbusDevice;
22: public:
23: X68kMainbus();
24: ~X68kMainbus() override;
25:
26: bool Init() override;
27: bool InitMainbus() override;
28: void ResetByMPU() override;
29:
1.1.1.2 root 30: busdata Read(busaddr addr) override;
31: busdata Write(busaddr addr, uint32 data) override;
32: busdata Peek1(uint32 addr) override;
33: bool Poke1(uint32 addr, uint32 data) override;
1.1 root 34:
35: private:
1.1.1.5 ! root 36: DECLARE_MONITOR_SCREEN(MonitorScreen);
! 37: DECLARE_MONITOR_SCREEN(MonitorScreenAccStat);
1.1 root 38:
39: inline bool IsIntio(uint32) const;
40:
41: // ブートページを切り替える。
42: void SwitchBootPage(bool isrom) override;
43:
44: std::unique_ptr<ExtRAMDevice> pExtRAM /*{}*/;
45: std::unique_ptr<X68kIODevice> pX68kIO /*{}*/;
46: // どこに置く?
47: std::unique_ptr<IODevice> pInterrupt {};
48:
49: std::array<bool, 256> is_intio {};
50:
1.1.1.3 root 51: Monitor *monitor {};
1.1 root 52:
53: std::array<BankRAMDevice*, 2> bankram /*{}*/;
54: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.