--- nono/vm/ram.h 2026/04/29 17:04:28 1.1 +++ nono/vm/ram.h 2026/04/29 17:04:32 1.1.1.2 @@ -24,8 +24,21 @@ class RAMDevice virtual uint64 Write16(uint32 addr, uint32 data); virtual uint64 Write32(uint32 addr, uint32 data); virtual uint64 Peek8(uint32 addr); + + // ホストの filepath をロードする + uint32 LoadFile(const char *filepath, uint32 mid); + // file, filesize で示されるバッファをロードする + uint32 LoadFile(const char *name, const uint8 *file, size_t filesize, + uint32 mid); + private: + uint32 LoadGzFile(const char *filepath, const uint8 *file, size_t filesize, + uint32 mid); + uint32 Load_aout(const char *name, const uint8 *file, size_t filesize, + uint32 mid); + uint32 Load_elf32(const char *name, const uint8 *file, size_t filesize, + uint32 mid); }; -extern uint8 *ram; +extern std::unique_ptr ram; extern int ram_size; -extern RAMDevice *gRAM; +extern std::unique_ptr gRAM;