Skip to content

Commit

Permalink
Add some keyboard controller behaviour on Intel Advanced/EV and ZP that
Browse files Browse the repository at this point in the history
fixes SMI hangs on Windows 95 OSR2.
  • Loading branch information
sarah-walker-pcem committed Nov 30, 2020
1 parent cd7b41f commit 3a73369
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion src/keyboard_at.c
Original file line number Diff line number Diff line change
Expand Up @@ -590,6 +590,11 @@ void keyboard_at_write(uint16_t port, uint8_t val, void *priv)
keyboard_at.want60 = 1;
break;

case 0xba:
if (romset == ROM_ENDEAVOR || romset == ROM_ZAPPA)
keyboard_at_adddata(0);
break;

/* T3100e commands not implemented:
* 0xB7: Emulate PS/2 keyboard
* 0xB8: Emulate AT keyboard */
Expand Down Expand Up @@ -620,7 +625,11 @@ void keyboard_at_write(uint16_t port, uint8_t val, void *priv)
if (romset == ROM_T3100E)
keyboard_at.input_port = (t3100e_mono_get() & 1) ? 0xFF : 0xBF;

keyboard_at_adddata(keyboard_at.input_port | 4);
if (romset == ROM_ENDEAVOR || romset == ROM_ZAPPA)
keyboard_at_adddata(keyboard_at.input_port | 4 | 0x40);
else
keyboard_at_adddata(keyboard_at.input_port | 4);

keyboard_at.input_port = ((keyboard_at.input_port + 1) & 3) | (keyboard_at.input_port & 0xfc);
break;

Expand Down

0 comments on commit 3a73369

Please sign in to comment.