--- nono/vm/vm_luna.h 2026/04/29 17:04:36 1.1.1.2 +++ nono/vm/vm_luna.h 2026/04/29 17:04:59 1.1.1.8 @@ -13,36 +13,41 @@ class VM_LUNA : public VM using inherited = VM; public: VM_LUNA(); - ~VM_LUNA() override; + virtual ~VM_LUNA() override; + + bool Init() override; // 電源ボタンを押す。 void PowerButton() override; - private: - std::unique_ptr crtc2; - std::unique_ptr prom; - std::unique_ptr sysclk; - std::unique_ptr nulldev; + protected: + // ブートページを切り替える。 + void SwitchBootPage(Device *parent, bool isrom) override; + + // デバイスマップから devtable を作成 + void MakeDevtable(const uint8 *maptable); + + IODevice *ram0 {}; +}; + +class VM_LUNA1 final : public VM_LUNA +{ + using inherited = VM_LUNA; + public: + VM_LUNA1(); + ~VM_LUNA1() override; + private: static const uint8 maptable[256]; }; -class VM_LUNA88K : public VM +class VM_LUNA88K final : public VM_LUNA { - using inherited = VM; + using inherited = VM_LUNA; public: VM_LUNA88K(); ~VM_LUNA88K() override; - // 電源ボタンを押す。 - void PowerButton() override; - private: - std::unique_ptr crtc2; - std::unique_ptr fuserom; - std::unique_ptr prom; - std::unique_ptr sysclk; - std::unique_ptr nulldev; - static const uint8 maptable[256]; };