--- nono/vm/vm_luna.h 2026/04/29 17:04:45 1.1.1.4 +++ nono/vm/vm_luna.h 2026/04/29 17:05:29 1.1.1.13 @@ -4,46 +4,44 @@ // Licensed under nono-license.txt // +// +// VM (LUNA) +// + #pragma once -#include "crtc2.h" -#include "fuserom.h" -#include "sysclk.h" #include "vm.h" -class VM_LUNA final : public VM +class VM_LUNA : public VM { using inherited = VM; + protected: + explicit VM_LUNA(const char *name_); public: - VM_LUNA(); ~VM_LUNA() override; - // 電源ボタンを押す。 - void PowerButton() override; + protected: + std::unique_ptr pDipsw {}; + std::unique_ptr pLCD {}; + std::unique_ptr pMPU64180 {}; + std::unique_ptr pXPbus {}; +}; - private: - std::unique_ptr crtc2 {}; - std::unique_ptr prom {}; - std::unique_ptr nulldev {}; +class VM_LUNA1 final : public VM_LUNA +{ + using inherited = VM_LUNA; + public: + VM_LUNA1(); + ~VM_LUNA1() override; - static const uint8 maptable[256]; + private: + std::unique_ptr pSSG {}; }; -class VM_LUNA88K final : 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 nulldev {}; - - static const uint8 maptable[256]; };