--- nono/cli/cli_app.cpp 2026/04/29 17:04:30 1.1.1.2 +++ nono/cli/cli_app.cpp 2026/04/29 17:04:33 1.1.1.3 @@ -1,22 +1,25 @@ // // nono -// Copyright (C) 2018 isaki@NetBSD.org +// Copyright (C) 2020 nono project +// Licensed under nono-license.txt // #include "header.h" #include "mainapp.h" -#include "mpu.h" +#include "mpu680x0.h" #include "pluto.h" #include "rtc.h" #include "vm.h" +void cli_halt_callback(void *); + // wxApp と相似にするためのクラス class CLIApp { public: bool OnInit(); bool Parse(); - void OnCreate(); + [[noreturn]] void OnCreate(); int ac; char **av; @@ -57,6 +60,11 @@ CLIApp::OnInit() void CLIApp::OnCreate() { + // VM にコールバックを登録 + if (gMPU680x0) { + gMPU680x0->SetHaltCallback(cli_halt_callback, NULL); + } + // 時刻開始? // なるべく VM が開始する直前にしたい。 gRTC->InitRTC(); @@ -69,3 +77,11 @@ CLIApp::OnCreate() sleep(1); } } + +// m680x0 ダブルバスフォールト時に呼ばれるコールバック。 +void +cli_halt_callback(void *dummy) +{ + // どうする? + warnx("Double bus fault has occurred in VM"); +}