|
|
1.1 ! root 1: // ! 2: // nono ! 3: // Copyright (C) 2020 nono project ! 4: // Licensed under nono-license.txt ! 5: // ! 6: ! 7: // ! 8: // メインバス (LUNA) ! 9: // ! 10: ! 11: #pragma once ! 12: ! 13: #include "mainbus.h" ! 14: ! 15: class LunaMainbus : public Mainbus24Device ! 16: { ! 17: using inherited = Mainbus24Device; ! 18: public: ! 19: LunaMainbus(); ! 20: ~LunaMainbus() override; ! 21: ! 22: bool InitMainbus() override; ! 23: ! 24: protected: ! 25: // ブートページを切り替える。 ! 26: void SwitchBootPage(bool isrom) override; ! 27: ! 28: // デバイスマップから devtable を作成 ! 29: void MakeDevtable(const uint8 *maptable); ! 30: ! 31: // ブートページ切り替え用 (unique_ptr ではない) ! 32: IODevice *ram0 {}; ! 33: ! 34: std::unique_ptr<IODevice> pBusErr {}; ! 35: std::unique_ptr<IODevice> pBT45x {}; ! 36: std::unique_ptr<IODevice> pCRTC2 {}; ! 37: std::unique_ptr<IODevice> pEthernet {}; ! 38: std::unique_ptr<IODevice> pInterrupt {}; ! 39: std::unique_ptr<IODevice> pMainRAM {}; ! 40: std::unique_ptr<IODevice> pNopIO {}; ! 41: std::unique_ptr<IODevice> pPartialRAM {}; ! 42: std::unique_ptr<IODevice> pPlaneVRAM {}; ! 43: std::unique_ptr<IODevice> pPROM {}; ! 44: std::unique_ptr<IODevice> pPROM0 {}; ! 45: std::unique_ptr<IODevice> pPIO0 {}; ! 46: std::unique_ptr<IODevice> pPIO1 {}; ! 47: std::unique_ptr<IODevice> pRTC {}; ! 48: std::unique_ptr<IODevice> pSIO {}; ! 49: std::unique_ptr<IODevice> pSPC {}; ! 50: std::unique_ptr<IODevice> pSubRAM {}; ! 51: std::unique_ptr<IODevice> pSysClk {}; ! 52: std::unique_ptr<IODevice> pTAS {}; ! 53: std::unique_ptr<IODevice> pXPbus {}; ! 54: }; ! 55: ! 56: class Luna1Mainbus final : public LunaMainbus ! 57: { ! 58: using inherited = LunaMainbus; ! 59: public: ! 60: Luna1Mainbus(); ! 61: ~Luna1Mainbus() override; ! 62: ! 63: private: ! 64: static const uint8 maptable[256]; ! 65: }; ! 66: ! 67: class Luna88kMainbus final : public LunaMainbus ! 68: { ! 69: using inherited = LunaMainbus; ! 70: public: ! 71: Luna88kMainbus(); ! 72: ~Luna88kMainbus() override; ! 73: ! 74: private: ! 75: std::unique_ptr<IODevice> pCMMU {}; ! 76: std::unique_ptr<IODevice> pFuseROM {}; ! 77: ! 78: static const uint8 maptable[256]; ! 79: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.