--- nono/vm/romimg_x68k.h 2026/04/29 17:04:45 1.1.1.4 +++ nono/vm/romimg_x68k.h 2026/04/29 17:04:59 1.1.1.7 @@ -8,8 +8,30 @@ #include "rom.h" -class IPLROM1Device - : public ROMDevice +class IPLROM1Device; + +class IPLROM0Device : public IODevice +{ + using inherited = IODevice; + public: + IPLROM0Device(); + virtual ~IPLROM0Device() override; + + bool Init() override; + void ResetHard() override; + + uint64 Read8(uint32 addr) override; + uint64 Read16(uint32 addr) override; + uint64 Read32(uint32 addr) override; + uint64 Peek8(uint32 addr) override; + + private: + uint32 ReadDecoder(uint32 addr); + + IPLROM1Device *iplrom1 {}; +}; + +class IPLROM1Device : public ROMDevice { using inherited = ROMDevice; public: @@ -19,8 +41,7 @@ class IPLROM1Device bool Init() override; }; -class IPLROM2Device - : public ROMDevice +class IPLROM2Device : public ROMDevice { using inherited = ROMDevice; public: @@ -30,8 +51,7 @@ class IPLROM2Device bool Init() override; }; -class CGROMDevice - : public ROMDevice +class CGROMDevice : public ROMDevice { using inherited = ROMDevice; public: @@ -42,5 +62,6 @@ class CGROMDevice }; extern std::unique_ptr gCGROM; +extern std::unique_ptr gIPLROM0; extern std::unique_ptr gIPLROM1; extern std::unique_ptr gIPLROM2;