--- nono/vm/subram.cpp 2026/04/29 17:05:29 1.1.1.3 +++ nono/vm/subram.cpp 2026/04/29 17:06:01 1.1.1.5 @@ -24,9 +24,6 @@ SubRAMBaseDevice::SubRAMBaseDevice(uint uint ramsize = ramsize_kb * 1024; assert((ramsize & (ramsize - 1)) == 0); - ram.reset(new uint8[ramsize]); - memset(&ram[0], 0, ramsize); - mask = ramsize - 1; } @@ -35,6 +32,21 @@ SubRAMBaseDevice::~SubRAMBaseDevice() { } +// 初期化 +bool +SubRAMBaseDevice::Init() +{ + uint ramsize = GetSize(); + ram.reset(new(std::nothrow) uint8[ramsize]); + if ((bool)ram == false) { + warnx("Could not allocate %u bytes at %s", ramsize, __method__); + return false; + } + memset(&ram[0], 0, ramsize); + + return true; +} + // リセット void SubRAMBaseDevice::ResetHard(bool poweron)