1
0
Fork 0

Correct Get Extended Shift States; Int 16 call 12 (thanks ripsaw).

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3711
This commit is contained in:
Peter Veenstra 2011-05-11 11:06:36 +00:00
parent bf8496c092
commit 7f27714557

View file

@ -565,8 +565,10 @@ static Bitu INT16_Handler(void) {
else reg_al=1;
break;
case 0x12: /* GET EXTENDED SHIFT STATES */
reg_al=mem_readb(BIOS_KEYBOARD_FLAGS1);
reg_ah=mem_readb(BIOS_KEYBOARD_FLAGS2);
reg_al = mem_readb(BIOS_KEYBOARD_FLAGS1);
reg_ah = (mem_readb(BIOS_KEYBOARD_FLAGS2)&0x73) |
((mem_readb(BIOS_KEYBOARD_FLAGS2)&4)<<5) | // SysReq pressed, bit 7
(mem_readb(BIOS_KEYBOARD_FLAGS3)&0x0c); // Right Ctrl/Alt pressed, bits 2,3
break;
case 0x55:
/* Weird call used by some dos apps */