Commit graph pcem/src/keyboard_at.c
Author SHA1 Message Date
pcem-maintainer
974f663d92 Remove AWARD 286 BIOS turbo hack
CPU clock control is now implemented in the C&T SCAT chipset.
2021-06-28 04:57:13 -03:00
SarahW
9687a85943 Add keyboard controller SMI fix to Itautec Infoway. Patch from EluanCM. 2021-02-08 19:59:08 +00:00
SarahW
3a7336913d Add some keyboard controller behaviour on Intel Advanced/EV and ZP that
fixes SMI hangs on Windows 95 OSR2.
2020-11-30 22:30:12 +00:00
SarahW
a89347d415 Add Amstrad PC5086 emulation. Patch from davide78. 2020-11-15 11:11:41 +00:00
SarahW
fda3832e3a Add Gigabyte GA-686BX emulation.
As part of this, add i440BX chipset, PIIX4, and i28F002BC Flash.
2020-11-14 19:33:03 +00:00
SarahW
9bdbcc18c0 Added Samsung SPC-6000A and SPC-6033P. Patch from Greatpsycho. 2020-11-14 12:25:36 +00:00
SarahW
adfda61a2f Initialise AT keyboard scancode set properly on reset. 2020-04-18 17:13:24 +01:00
SarahW
d60084fb04 PS/2 mouse fixes :
- Don't process pending mouse data when mouse was disabled
- Commands a7/a8 (disable/enable mouse port) now update keyboard controller command
- Implicitly enable mouse when writing data to mouse
Fixes PS/2 mouse with Red Hat 5.0.
2020-03-28 17:23:57 +00:00
SarahW
4ee83be7b5 Don't add keyboard waitstates on AT or XT Model 286. Fixes POST of these
machines at 6 MHz.
2020-03-15 14:54:54 +00:00
SarahW
a113e4546f Added Hyundai Super-286TR emulation. Patch from EluanCM. 2020-03-12 18:14:07 +00:00
SarahW
ee103457fa Add waitstates to AT keyboard read. Fixes keyboard detection on Advanced/EV & ZP. 2020-03-07 14:36:30 +00:00
SarahW
cab6aa43b2 Use pre-translation AT keyboard ID to avoid putting the ID through translation
twice.
2020-03-07 13:46:16 +00:00
SarahW
63b14455ba Add keyboard command 0xee (Diagnostic Echo). Fixes keyboard detection in FreeBSD 4.2. 2020-03-06 22:10:18 +00:00
SarahW
74df0bf145 Revert part of rev 1505 related to clearing STAT_MFULL on reading port 0x60.
Fixes PS/2 8601 errors.
2020-02-18 21:34:20 +00:00
SarahW
00f65675af Add delay to keyboard AT reset response.
A few other keyboard / PS2 mouse fixes.
Based on patch from EluanCM.
2020-02-10 20:51:26 +00:00
SarahW
57be2ef8d4 Add ability to change AT keyboard scancode and disable translation. Fixes keyboard in Solaris 8. 2019-04-28 18:35:11 +01:00
SarahW
a7d006b637 Rewrote timer code.
The new code is based on timestamps, rather than delays. This eliminates the
need to update every timer in timer_process(), which cost a non-trivial amount
of CPU time on low-end machines.

This involved changes to every user of the timer code, so this change almost
certainly introduces bugs.
2018-08-02 22:06:10 +01:00
SarahW
8300b3a7e2 Speed up AT keyboard controller. Fixes OS/2 v1.x PS/2 mouse driver on PS/2 systems. 2018-04-11 20:16:08 +01:00
SarahW
7e23388ed0 Results from keyboard controller commands take priority over pending key presses/releases. Fixes keyboard hang on KMX-C-02. 2018-03-12 20:31:01 +00:00
SarahW
8d7a6c03eb Fixed MDA/CGA switch on Xi8088. Patch from EluanCM. 2018-02-28 21:27:14 +00:00
SarahW
31dff3a509 Added Xi8088 emulation. Patch from EluanCM. 2018-02-24 18:08:36 +00:00
SarahW
bcfd38f42e Removed MDA and VGA macros. Replaced with video_is_mda()/video_is_vga()/video_is_ega_vga() functions. 2018-02-24 15:32:47 +00:00
SarahW
97ac443f70 More fixes/improvements to T3100e. Patch from John Elliott. 2017-11-19 21:30:42 +00:00
SarahW
65a9d17674 Toshiba T3100e improvements :
* Enables [Fn]+key combinations (using right-Ctrl or right-Alt as [Fn]). In particular:
* Implements switching the built-in display adapter between the 'internal' plasma display ([Fn]+[Home]) and an 'external' CGA monitor ([Fn]+[End])
* Allows the video font to be toggled between thin and thick ([Fn]+[Right arrow]).
* Implements the four hardware fonts of the original, selectable in BIOS setup.
* Implements CRTC register 12h (attribute mapping and display type)
Patch from John Elliott
2017-10-28 16:03:44 +01:00
SarahW
3f29d38288 Reset CPU on all AT commands that pulse bit 0, not just 0xf0. Fixes XENIX286. Patch from Greatpsycho. 2017-10-22 12:39:28 +01:00
SarahW
ed000e77c8 Only set IFULL immediately following keyboard selftest on Toshiba T3100e. Fixes Samsung SPC systems. Patch from Greatpsycho. 2017-10-22 12:38:45 +01:00
SarahW
5d5fa1402a Added Toshiba T3100e emulation. Patch from John Elliott. 2017-10-14 14:20:38 +01:00
SarahW
a2b1ee68c7 Removed cycle penalty on AT keyboard controller access. Fixes IBM AT booting at 6 MHz. 2017-04-28 16:40:02 +01:00
SarahW
adc7728291 Set mono/colour bit correctly in AT keyboard input port.
Keyboard controller queue now has priority over key queue.
Fixes 'display type not set' errors on several machines when using MDA/Hercules.
2017-04-19 17:46:35 +01:00
SarahW
2b892d2a7a Fixed compiler warnings for Windows builds.
Added -Werror to Windows makefiles.
2017-04-11 19:34:41 +01:00
SarahW
9c1d8e5022 Add PS/2 Model 50 emulation.
This commit also adds basic MCA emulation.
This commit also adds emulation of the PS/2 Type 1 DMA controller.
2017-04-06 22:00:40 +01:00
SarahW
1ad8c6c5fe PIT emulation now more modular. 2017-04-06 21:56:49 +01:00
SarahW
09dbd1dd65 Mouse type now configurable 2016-12-16 20:19:08 +00:00
SarahW
a4f3b2013e Added AMI 386DX and MR 386DX models (both based on OPTi 495 chipset). AMI 386DX supports external cache, useful for with prefetch emulation.
Also commit a few fixes required :
- Set EDX correctly on soft reset
- LOCK NOP is now treated as an illegal instruction
- Tweaks to FDC sense interrupt handling following FDC reset
2016-11-27 21:53:13 +00:00
SarahW
0724cfcae4 Add emulation of IBM PS/1 Model 2121.
As part of this :
- FDC Specify command now completes immediately
- Implemented keyboard system flag status
- Added ability to remap 384kb reserved memory to above extended memory
2016-05-02 20:06:49 +01:00
TomW
3a57341837 Refactored sound code - slight speedup. 2016-02-10 20:49:28 +00:00
TomW
b459fc9815 High PC speaker frequencies treated as constant level.
Improved timing for port 0x61 writes.
2015-11-14 18:14:32 +00:00
TomW
a78d20333a Implemented keyboard Enable Mouse Port command. Fixes PS/2 mouse in Windows NT. 2015-10-21 21:39:41 +01:00
TomW
9d2dd22d6d Initialise A20 gate correctly at startup.
Keyboard controller self-test command enables A20.
HIMEM.SYS included with Windows/286 now works.
2015-10-12 13:42:09 +01:00
TomW
0bf3e231e5 Improvements to PS/2 mouse emulation. 2015-06-21 15:34:27 +01:00
TomW
84ac04d2df Added Intel Premiere/PCI (Batman's Revenge) and Advanced/EV (Endeavor) motherboards.
Added emulation of i430LX and i430FX chipsets.
Added support for PCI configuration type 2, used by i430LX.
Added AT disable keyboard command, and fixed enable keyboard command.
Added emulation of Intel 28F001BXT flash ROM, used by Advanced/EV.
Fixed a bug in REP when using multiple 66/67 prefixes.
2014-11-23 20:27:41 +00:00
TomW
052974fa76 Further tweaking to AT keyboard handler to fix stuck keys. 2014-09-15 15:07:48 +01:00
TomW
7dfce428f2 Fixed keyboard in Windows NT. 2014-08-18 20:28:31 +01:00
TomW
1c9b6e45f3 Tweaked AT keyboard handler, fixes stuck/missing keys in Doom. 2014-08-16 21:19:02 +01:00
TomW
67cb9e3781 Improvements to PC speaker - fixes sound on Beyond Castle Wolfenstein and probably other games as well. 2014-07-16 20:44:29 +01:00
TomW
0ed6193b70 Clear key queue on keyboard reset - fixes CMOS setup on Award 430VX PCI. 2014-07-15 20:42:48 +01:00
TomW
36cdd540b2 PIT timers can now be restarted using GATE input - CPU speed detection on SiS496/497 now works.
Added missing port 0x61 to Olivetti M24 - PC speaker now works on that machine.
Some code tidying.
2013-11-08 22:32:34 +00:00
TomW
9312de19ac Now up to date with current dev version.
Changes since v0.7 :
- Major CPU reorganisation. This has possibly broken some stuff, though I fixed all the regressions I could find
- Lazy flags. This brought 10% speed improvement at one point, but that's probably been lost now
- 430 VX chipset emulation
- IDT Winchip emulation (currently sans MMX). Timing is probably wrong
- Fixed a few FPU bugs
- Timer reorganisation
- Sound reorganisation
- Other general reorganisation
- AdLib Gold emulation
- Windows Sound System emulation
- Pro Audio Spectrum 16 emulation. This currently works with most DOS stuff, but not in Windows
- Major improvements to GUS emulation. Has the downside that it now conflicts with SB emulation, so probably best to not enable both simultaneously
- New graphics cards :
  - ATI-18800 (VGA Edge-16)
  - ATI-28800 (VGA Charger)
  - ATI Mach64GX (Graphics Pro Turbo). Quite a few features missing, but Windows doesn't seem to use half the features of this card
  - Cirrus Logic CL-GD5429. Blitter is a bit broken
  - Oak OTI-067
  - S3 Trio64 (Number Nine 9FX)
  - S3 Virge. Only framebuffer stuff at the minute, Windows won't recognise the card
  - Trident TGUI-9440
  - VGA. Doesn't work yet
- Beginnings of 3DFX emulation, however this is in extremely early stages and doesn't do anything useful
- Fixed DMA bug stopping floppy drives working in Windows 3.x
- Fixed some other stuff probably
- Broke some other stuff probably as well
2013-05-27 17:46:42 +01:00
TomW
3c253c2cf8 Add v0.7 source 2013-04-21 14:54:35 +01:00