From 3a09622a91c6b25d7f10425f731a07926873cdb9 Mon Sep 17 00:00:00 2001 From: Akamaki <97360908+akmed772@users.noreply.github.com> Date: Sat, 15 Feb 2025 17:36:00 +0900 Subject: [PATCH] added switching ca keys by kbd scancode set --- src/86box.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/86box.c b/src/86box.c index 764f707ba..1cd0ffec8 100644 --- a/src/86box.c +++ b/src/86box.c @@ -1094,14 +1094,24 @@ pc_init_modules(void) void pc_send_ca(uint16_t sc) { - /* Use R-Alt because PS/55 DOS assigns L-Alt as Kanji */ - keyboard_input(1, 0x1D); /* Ctrl key pressed */ - keyboard_input(1, 0x138); /* R-Alt key pressed */ - keyboard_input(1, sc); - usleep(50000); - keyboard_input(0, sc); - keyboard_input(0, 0x138); /* R-Alt key released */ - keyboard_input(0, 0x1D); /* Ctrl key released */ + if (keyboard_mode == 0x8A) { + /* Use R-Alt because PS/55 DOS assigns L-Alt Kanji */ + keyboard_input(1, 0x1D); /* Ctrl key pressed */ + keyboard_input(1, 0x138); /* R-Alt key pressed */ + keyboard_input(1, sc); + usleep(50000); + keyboard_input(0, sc); + keyboard_input(0, 0x138); /* R-Alt key released */ + keyboard_input(0, 0x1D); /* Ctrl key released */ + } else { + keyboard_input(1, 0x1D); /* Ctrl key pressed */ + keyboard_input(1, 0x38); /* Alt key pressed */ + keyboard_input(1, sc); + usleep(50000); + keyboard_input(0, sc); + keyboard_input(0, 0x38); /* Alt key released */ + keyboard_input(0, 0x1D); /* Ctrl key released */ + } } /* Send the machine a Control-Alt-DEL sequence. */