--- nono/vm/mainram.cpp 2026/04/29 17:05:42 1.1.1.5 +++ nono/vm/mainram.cpp 2026/04/29 17:06:00 1.1.1.6 @@ -40,7 +40,7 @@ MainRAMDevice::Init() return false; } - uint32 clock_nsec = mpu->GetClock_nsec(); + uint64 clock_tsec = mpu->GetClock_tsec(); // メモリの下限以外の制約は機種による。 switch (gMainApp.GetVMType()) { @@ -87,8 +87,8 @@ MainRAMDevice::Init() // 通常サイクルは1ウェイトらしい? // バーストウェイトは LUNA-88K の取説からの推論。 - normal_wait = busdata::Wait(1 * clock_nsec); - burst_wait = busdata::Wait(4 * clock_nsec); + normal_wait = busdata::Wait(1 * clock_tsec); + burst_wait = busdata::Wait(4 * clock_tsec); break; } @@ -128,8 +128,8 @@ MainRAMDevice::Init() // これは CMMU 以降のアクセスタイムらしいので、 // リード3クロック、ライト2クロック引いたものをウェイトとしてみる? // XXX 要確認。 - normal_wait = busdata::Wait(2 * clock_nsec); - burst_wait = busdata::Wait(5 * clock_nsec); + normal_wait = busdata::Wait(2 * clock_tsec); + burst_wait = busdata::Wait(5 * clock_tsec); break; } @@ -137,7 +137,7 @@ MainRAMDevice::Init() // 電源オン時に RAM に書き込んでいるため、クリアしない。 clear_on_boot = false; // 知らんけど 1クロックくらい入れておく。 - normal_wait = busdata::Wait(1 * clock_nsec); + normal_wait = busdata::Wait(1 * clock_tsec); // NWS-1750 はバースト転送をサポートしていないようだ。 // http://www.ceres.dti.ne.jp/tsutsui/netbsd/port-news68k.html#19991203 break; @@ -165,8 +165,7 @@ MainRAMDevice::Init() ram_size = (size_t)ram_size_MB * 1024 * 1024; mainram.reset(new(std::nothrow) uint8[ram_size]); if ((bool)mainram == false) { - errno = ENOMEM; - warn("MainRAM(%zu bytes)", ram_size); + warnx("Could not allocate MainRAM(%zu bytes)", ram_size); return false; } @@ -364,7 +363,5 @@ MainRAMDevice::WriteMem(uint32 addr, con void MainRAMDevice::SetWait(uint32 wait_clock) { - uint32 clock_nsec = mpu->GetClock_nsec(); - - normal_wait = busdata::Wait(wait_clock * clock_nsec); + normal_wait = busdata::Wait(wait_clock * mpu->GetClock_tsec()); }