--- nono/vm/sysclk.cpp 2026/04/29 17:04:32 1.1.1.3 +++ nono/vm/sysclk.cpp 2026/04/29 17:04:36 1.1.1.4 @@ -1,9 +1,11 @@ // // nono -// Copyright (C) 2018 isaki@NetBSD.org +// Copyright (C) 2020 nono project +// Licensed under nono-license.txt // #include "sysclk.h" +#include "mainapp.h" #include "mpu.h" SysClkDevice::SysClkDevice() @@ -15,7 +17,6 @@ SysClkDevice::SysClkDevice() event.dev = this; event.func = (DeviceCallback_t)&SysClkDevice::Callback; event.code = 0; - event.time = 16.666667_msec; event.SetName("System Clock"); } @@ -24,6 +25,15 @@ SysClkDevice::~SysClkDevice() } bool +SysClkDevice::Init() +{ + // クロックは機種ごとに異なる + const ConfigItem& item = gConfig->Find("!sysclk-period"); + event.time = item.AsInt(); + return true; +} + +bool SysClkDevice::PowerOn() { // 電源オンですぐ起動 @@ -71,6 +81,6 @@ SysClkDevice::Callback(int arg) { putlog(3, "システムクロック割り込み発生"); sysint = true; - gMPU->Interrupt(5); + gMPU->Interrupt(this, 5); event.Start(); }