--- nono/vm/ram.h 2026/04/29 17:04:32 1.1.1.2 +++ nono/vm/ram.h 2026/04/29 17:04:42 1.1.1.4 @@ -1,6 +1,7 @@ // // nono -// Copyright (C) 2018 isaki@NetBSD.org +// Copyright (C) 2020 nono project +// Licensed under nono-license.txt // #pragma once @@ -10,20 +11,24 @@ class RAMDevice : public IODevice { - typedef IODevice inherited; + using inherited = IODevice; public: RAMDevice(); - virtual ~RAMDevice(); + ~RAMDevice() override; - virtual bool Init(); + bool Init() override; + void ResetHard() override; - virtual uint64 Read8(uint32 addr); - virtual uint64 Read16(uint32 addr); - virtual uint64 Read32(uint32 addr); - virtual uint64 Write8(uint32 addr, uint32 data); - virtual uint64 Write16(uint32 addr, uint32 data); - virtual uint64 Write32(uint32 addr, uint32 data); - virtual uint64 Peek8(uint32 addr); + uint64 Read8(uint32 addr) override; + uint64 Read16(uint32 addr) override; + uint64 Read32(uint32 addr) override; + uint64 Write8(uint32 addr, uint32 data) override; + uint64 Write16(uint32 addr, uint32 data) override; + uint64 Write32(uint32 addr, uint32 data) override; + uint64 Peek8(uint32 addr) override; + + // アクセスウェイトを設定 + void SetWait(uint32 wait); // ホストの filepath をロードする uint32 LoadFile(const char *filepath, uint32 mid); @@ -37,6 +42,9 @@ class RAMDevice uint32 mid); uint32 Load_elf32(const char *name, const uint8 *file, size_t filesize, uint32 mid); + + uint32 read_wait {}; + uint32 write_wait {}; }; extern std::unique_ptr ram;