--- nono/vm/mk48t02.cpp 2026/04/29 17:04:45 1.1.1.6 +++ nono/vm/mk48t02.cpp 2026/04/29 17:04:52 1.1.1.8 @@ -7,7 +7,7 @@ #include "mk48t02.h" #include "config.h" #include "mainapp.h" -#include "mystring.h" +#include "mpu.h" // // MK48T02 @@ -45,15 +45,10 @@ MK48T02Device::Init() // レジスタ値固定オプション (パフォーマンス測定用) force_fixed = gConfig->Find(".rtc-force-fixed").AsInt(); if (force_fixed) { - putmsg("force_fixed"); + putmsgn("force_fixed"); } - return true; -} -// RTC を初期化 -bool -MK48T02Device::InitRTC() -{ + // RTC を初期化 // ホストの時刻を UTC で取得 LoadHostRTC(false); @@ -75,17 +70,16 @@ MK48T02Device::BCD2num(uint8 bcd) } uint64 -MK48T02Device::Read(uint32 addr) +MK48T02Device::Read(uint32 offset) { - uint32 an = addr; uint32 data; - if (an < 2040) { - data = mem[an]; - putlog(3, "$%08x -> $%02x", addr, data); + if (offset < 2040) { + data = mem[offset]; + putlog(3, "$%08x -> $%02x", gMPU->GetPaddr(), data); } else { // XXX ReadBit が立っていない時は何が読めるのか - switch (an - 2040) { + switch (offset - 2040) { case 0: // コントロールレジスタ data = reg.ctrl; break; @@ -127,22 +121,20 @@ MK48T02Device::Read(uint32 addr) // VM を作り、パフォーマンス測定を安定させる。 data = 3; } - putlog(3, "$%08x -> $%02x", addr, data); + putlog(3, "$%08x -> $%02x", gMPU->GetPaddr(), data); } return data; } uint64 -MK48T02Device::Write(uint32 addr, uint32 data) +MK48T02Device::Write(uint32 offset, uint32 data) { - uint32 an = addr; - - if (an < 2040) { - putlog(3, "$%08x <- $%02x", addr, data); - mem[an] = data; + if (offset < 2040) { + putlog(3, "$%08x <- $%02x", gMPU->GetPaddr(), data); + mem[offset] = data; } else { - putlog(3, "$%08x <- $%02x", addr, data); - switch (an - 2040) { + putlog(3, "$%08x <- $%02x", gMPU->GetPaddr(), data); + switch (offset - 2040) { case 0: // コントロール WriteCtrl(data); break; @@ -191,15 +183,14 @@ MK48T02Device::Write(uint32 addr, uint32 } uint64 -MK48T02Device::Peek(uint32 addr) +MK48T02Device::Peek(uint32 offset) { - uint32 an = addr; uint8 data; - if (an < 2040) { - return mem[an]; + if (offset < 2040) { + return mem[offset]; } else { - switch (an - 2040) { + switch (offset - 2040) { case 0: // コントロールレジスタ return reg.ctrl; case 1: // 秒 | STOP @@ -302,9 +293,9 @@ MK48T02Device::PeekString(uint32 addr) c { std::string rv = ""; - uint32 an = addr & 0x7ff; - for (; mem[an]; an++) { - rv += mem[an]; + addr &= 0x7ff; + for (; mem[addr]; addr++) { + rv += mem[addr]; } return rv; }