--- nono/vm/kbc.cpp 2026/04/29 17:05:18 1.1 +++ nono/vm/kbc.cpp 2026/04/29 17:05:25 1.1.1.2 @@ -24,48 +24,61 @@ KBCDevice::~KBCDevice() { } -uint64 +busdata KBCDevice::Read8(uint32 addr) { + busdata data; + // XXX 折り返しは不明 switch (addr & 7) { case KEYDATA: - return 0; + data = 0; + break; case KEYSTAT: - return 0xc0; // KBRDY, MSRDY + data = 0xc0; // KBRDY, MSRDY + break; case KEYINTE: - return 0; // ? + data = 0; // ? + break; case KEYRESET: - return 0xff; // ? + data = 0xff; // ? + break; case KEYBUZZ: - return 0xff; // ? + data = 0xff; // ? + break; case MSDATA: - return 0; + data = 0; + break; case MSINTE: // ? - return 0; + data = 0; + break; case MSRESET: // ? - return 0xff; + data = 0xff; + break; default: - return 0xff; + data = 0xff; + break; } + + return data; } -uint64 +busdata KBCDevice::Write8(uint32 addr, uint32 data) { // とりあえず全無視 return 0; } -uint64 +busdata KBCDevice::Peek8(uint32 addr) { // XXX 未実装