--- nono/vm/romemu_luna.cpp 2026/04/29 17:04:59 1.1.1.10 +++ nono/vm/romemu_luna.cpp 2026/04/29 17:05:06 1.1.1.12 @@ -114,6 +114,11 @@ LunaPROMEmuDevice::InitDevice() gSIO->Write(3, 0x44); // Stop 1bit gSIO->Write(3, 0x05); // CR5 gSIO->Write(3, 0x68); // TX Enable, 8bit + + // LED を(明示的に)オフ、マウスサンプリングをオフ + gSIO->Write(2, 0x00); + gSIO->Write(2, 0x01); + gSIO->Write(2, 0x20); } // スクリーンを初期化 @@ -136,11 +141,10 @@ LunaPROMEmuDevice::InitScreen(const char void LunaPROMEmuDevice::ROM_Close() { - // SIO からキーの Break 入力を取り除いておく。 - // コマンド入力によってここへ来る時は、キーの Make で呼ばれるため - // Break はまだ取り出されておらず SIO のバッファに残っている。 - // コマンド入力によらずここに来た場合でも空読みして問題ないだろう。 - (void)gSIO->Read(2); + // SIO をリセットしておく。 + // SIO のバッファにデータが残っていると、NetBSD のブートローダが + // 起動してこないようだ。リセットして RXEN を落としておけば大丈夫ぽい。 + gSIO->ResetHard(); // コンソールクローズ gLunafb->EmuConsoleClose();