--- nono/vm/sysclk.cpp 2026/04/29 17:04:42 1.1.1.5 +++ nono/vm/sysclk.cpp 2026/04/29 17:04:53 1.1.1.8 @@ -5,8 +5,10 @@ // #include "sysclk.h" -#include "mainapp.h" -#include "mpu.h" +#include "config.h" +#include "interrupt.h" + +std::unique_ptr gSysClk; SysClkDevice::SysClkDevice() { @@ -37,28 +39,30 @@ bool SysClkDevice::PowerOn() { // 電源オンですぐ起動 + sysint = false; event.Start(); return true; } uint64 -SysClkDevice::Read(uint32 addr) +SysClkDevice::Read(uint32 offset) { // 1 ポートしかない return GetInt(); } uint64 -SysClkDevice::Write(uint32 addr, uint32 data) +SysClkDevice::Write(uint32 offset, uint32 data) { // 何か書き込まれたら、フラグをクリア - sysint = false; putlog(1, "システムクロック割り込みクリア"); + sysint = false; + gInterrupt->NegateINT(this); return 0; } uint64 -SysClkDevice::Peek(uint32 addr) +SysClkDevice::Peek(uint32 offset) { return GetInt(); } @@ -81,6 +85,6 @@ SysClkDevice::Callback(Event& ev) { putlog(3, "システムクロック割り込み発生"); sysint = true; - gMPU->Interrupt(this, 5); + gInterrupt->AssertINT(this); ev.Start(); }