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. */