|
|
1.1 root 1: //
2: // nono
3: // Copyright (C) 2024 nono project
4: // Licensed under nono-license.txt
5: //
6:
7: //
1.1.1.2 ! root 8: // メインバス (virt-m68k)
1.1 root 9: //
10:
11: #pragma once
12:
13: #include "mainbus.h"
14:
1.1.1.2 ! root 15: class Virt68kMainbus : public MainbusDevice
1.1 root 16: {
1.1.1.2 ! root 17: using inherited = MainbusDevice;
1.1 root 18: public:
19: Virt68kMainbus();
20: ~Virt68kMainbus() override;
21:
22: bool InitMainbus() override;
23:
1.1.1.2 ! root 24: busdata Read(busaddr addr) override;
! 25: busdata Write(busaddr addr, uint32 data) override;
! 26: busdata ReadBurst16(busaddr addr, uint32 *dst) override;
! 27: busdata WriteBurst16(busaddr addr, const uint32 *dst) override;
! 28: busdata Peek1(uint32 addr) override;
! 29: bool Poke1(uint32 addr, uint32 data) override;
! 30:
1.1 root 31: private:
1.1.1.2 ! root 32: inline IODevice *Decoder(uint32) const;
! 33:
1.1 root 34: // ブートページを切り替える。
35: void SwitchBootPage(bool isrom) override;
36:
37: std::unique_ptr<IODevice> pBusErr {};
38: std::unique_ptr<IODevice> pInterrupt {};
39: std::unique_ptr<IODevice> pMainRAM {};
40: std::unique_ptr<IODevice> pV68kIO {};
1.1.1.2 ! root 41:
! 42: uint32 ramsize {};
1.1 root 43: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.