--- nono/vm/romimg_x68k.h 2026/04/29 17:04:32 1.1 +++ nono/vm/romimg_x68k.h 2026/04/29 17:04:53 1.1.1.5 @@ -1,41 +1,69 @@ // // nono -// Copyright (C) 2019 isaki@NetBSD.org +// Copyright (C) 2020 nono project +// Licensed under nono-license.txt // #pragma once -#include "romimg.h" +#include "rom.h" + +class IPLROM1Device; + +class IPLROM0Device + : public ROMDevice +{ + using inherited = ROMDevice; + 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: + IPLROM1Device *iplrom1 {}; +}; class IPLROM1Device : public ROMDevice { - typedef ROMDevice inherited; + using inherited = ROMDevice; public: IPLROM1Device(); - virtual ~IPLROM1Device(); + virtual ~IPLROM1Device() override; - virtual bool Init(); + bool Init() override; }; class IPLROM2Device : public ROMDevice { - typedef ROMDevice inherited; + using inherited = ROMDevice; public: IPLROM2Device(); - virtual ~IPLROM2Device(); + virtual ~IPLROM2Device() override; - virtual bool Init(); + bool Init() override; }; class CGROMDevice : public ROMDevice { - typedef ROMDevice inherited; + using inherited = ROMDevice; public: CGROMDevice(); - virtual ~CGROMDevice(); + virtual ~CGROMDevice() override; - virtual bool Init(); + bool Init() override; }; + +extern std::unique_ptr gCGROM; +extern std::unique_ptr gIPLROM0; +extern std::unique_ptr gIPLROM1; +extern std::unique_ptr gIPLROM2;