--- nono/vm/lunakbd.h 2026/04/29 17:05:32 1.1.1.14 +++ nono/vm/lunakbd.h 2026/04/29 17:05:59 1.1.1.16 @@ -11,7 +11,6 @@ #pragma once #include "keyboard.h" -#include "event.h" class SIODevice; @@ -54,7 +53,7 @@ class LunaKeyboard : public Keyboard void Start(uint64 period); // コールバック - void Callback(Event& ev); + void Callback(Event *); // 共通キーコードから LED 番号を取得。 // 0: かな @@ -68,7 +67,7 @@ class LunaKeyboard : public Keyboard void MouseOn(); void MouseOff(); - DECLARE_MONITOR_CALLBACK(MonitorUpdate); + DECLARE_MONITOR_SCREEN(MonitorScreen); // マウスサンプリング bool mouse_on {}; @@ -79,16 +78,16 @@ class LunaKeyboard : public Keyboard uint64 buzzer_end {}; // ブザーを鳴らし終わる仮想時刻 // イベント - Event event { this }; + Event *event {}; Monitor *monitor {}; SIODevice *sio {}; - // 変換テーブル - static const uint keycode2lunakey_table[KC_max]; + // 変換テーブル (実行時に機種によって書き換える) + static uint keycode2lunakey_table[KC_max]; - // LUNA キーコード + // LUNA キーコード (LUNA-I/-88K 共通) static const uint NoKey = 0; static const uint LunaKey_TAB = 0x09; static const uint LunaKey_CTRL = 0x0a; @@ -114,6 +113,8 @@ class LunaKeyboard : public Keyboard static const uint LunaKey_right = 0x1e; static const uint LunaKey_down = 0x1f; + static const uint LunaKey_INSERT = 0x20; + static const uint LunaKey_COPY = 0x21; static const uint LunaKey_1 = 0x22; static const uint LunaKey_2 = 0x23; static const uint LunaKey_3 = 0x24; @@ -129,6 +130,8 @@ class LunaKeyboard : public Keyboard static const uint LunaKey_backslash = 0x2e; static const uint LunaKey_buzzer = 0x2f; + static const uint LunaKey_CUT = 0x30; + static const uint LunaKey_PASTE = 0x31; static const uint LunaKey_Q = 0x32; static const uint LunaKey_W = 0x33; static const uint LunaKey_E = 0x34; @@ -167,6 +170,7 @@ class LunaKeyboard : public Keyboard static const uint LunaKey_slash = 0x5b; static const uint LunaKey_underscore = 0x5c; + static const uint LunaKey_PAD_HOME = 0x60; static const uint LunaKey_PAD_plus = 0x61; static const uint LunaKey_PAD_minus = 0x62; static const uint LunaKey_PAD_7 = 0x63;