From 3655cc0cc65885b905b3c71aa0aeb92e8dca656e Mon Sep 17 00:00:00 2001 From: Sjoerd van der Berg Date: Wed, 3 Dec 2003 09:44:43 +0000 Subject: [PATCH] First run scancodes through int 15 0x4f before handling them in bios Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1473 --- src/ints/bios_keyboard.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/ints/bios_keyboard.cpp b/src/ints/bios_keyboard.cpp index 80de0814..864f09e9 100644 --- a/src/ints/bios_keyboard.cpp +++ b/src/ints/bios_keyboard.cpp @@ -207,6 +207,12 @@ static Bitu IRQ1_Handler(void) { KEYBOARD_ReadKey(scancode,ascii,mod); // LOG(0,"Got code %X ascii %C mod %X",scancode,ascii,mod); #endif + Bit16u old_ax=reg_ax; + reg_flags|=1; + reg_ah=0x4f;reg_al=scancode; + CALLBACK_RunRealInt(0x15); + reg_ax=old_ax; + if (!(reg_flags&1)) goto irq1_return; //TODO maybe implement the int 0x15 ah=4f scancode lookup hook Bit8u flags1=mem_readb(BIOS_KEYBOARD_FLAGS1); @@ -284,6 +290,7 @@ irq1_end: mem_writeb(BIOS_KEYBOARD_FLAGS1,flags1); mem_writeb(BIOS_KEYBOARD_FLAGS2,flags2); mem_writeb(BIOS_KEYBOARD_FLAGS3,flags3); +irq1_return: IO_Write(0x20,0x20); #if 0 /* Signal the keyboard for next code */