added switching ca keys by kbd scancode set

This commit is contained in:
Akamaki
2025-02-15 17:36:00 +09:00
parent 75ccfc6e2d
commit 3a09622a91

View File

@@ -1094,7 +1094,8 @@ pc_init_modules(void)
void void
pc_send_ca(uint16_t sc) pc_send_ca(uint16_t sc)
{ {
/* Use R-Alt because PS/55 DOS assigns L-Alt as Kanji */ 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, 0x1D); /* Ctrl key pressed */
keyboard_input(1, 0x138); /* R-Alt key pressed */ keyboard_input(1, 0x138); /* R-Alt key pressed */
keyboard_input(1, sc); keyboard_input(1, sc);
@@ -1102,6 +1103,15 @@ pc_send_ca(uint16_t sc)
keyboard_input(0, sc); keyboard_input(0, sc);
keyboard_input(0, 0x138); /* R-Alt key released */ keyboard_input(0, 0x138); /* R-Alt key released */
keyboard_input(0, 0x1D); /* Ctrl 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. */ /* Send the machine a Control-Alt-DEL sequence. */