Add some keyboard controller behaviour on Intel Advanced/EV and ZP that

fixes SMI hangs on Windows 95 OSR2.
This commit is contained in:
SarahW 2020-11-30 22:30:12 +00:00
commit 3a7336913d

View file

@ -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 */
@ -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;