OBattler
244038b84c
LOCK: It is sometimes legal when cpu_mod == 3, fixes hangs with Compaq Portable III 386 TEST.
2024-03-03 21:24:00 +01:00
OBattler
6de7c7cd5e
Fixed LOCK legality with prefixes, closes #4189 .
2024-02-23 07:10:15 +01:00
OBattler
fcabd353d9
Check IOPL on 286 task segments.
2024-02-22 00:56:28 +01:00
OBattler
733c26d04a
Return no mask when the TSS type is 286, closes #4177 .
2024-02-19 19:09:35 +01:00
OBattler
19f6954410
Reverted some CPU-related changes.
2024-02-19 15:20:59 +01:00
OBattler
2ab99dda0b
Made LOCK instruction legality more accurate on 386, closes #4132 .
2024-02-10 03:05:56 +01:00
OBattler
5a3d74d64f
286/386 interpreter fixes - the correct opcode arrays are now used and fixed the debug registers.
2024-02-09 12:14:35 +01:00
Alexander Babikov
1e4455d98c
Add comments with MSR and CPUID flag names
...
Reorganize the MSR struct
2024-02-07 12:31:38 +05:00
Cacodemon345
d8330a0c46
No need to translate EIP
2024-01-15 02:14:00 +06:00
Cacodemon345
a7be107e9b
Fix address compare
2024-01-15 01:22:50 +06:00
Cacodemon345
55f03f63e5
More oversight fixing
2024-01-14 20:12:53 +06:00
Cacodemon345
f4f252c0b7
Implement x86 debug registers
2024-01-14 15:26:40 +06:00
OBattler
1d48363803
The 286/386 interpreter now has its own variant of x86seg.c.
2023-08-21 02:56:33 +02:00
Jasmine Iwanek
5cd18f3fbb
Clang-formatting in src/cpu
2023-08-11 19:11:37 -04:00
Jasmine Iwanek
be79ea78c7
sonarlinting and formatting in src/cpu
2023-08-11 19:11:32 -04:00
OBattler
b1c5cbaf47
Split the 286/386 interpreter away from the 486+ one (the 286/386 interpreter does not use the pccache's, readlookup's, and writelookup's as the emulated CPU's are too slow for them to be required, and also has more accurate FPU timings), also added a LPT status read function for future-proofing.
2023-08-08 19:39:52 +02:00
OBattler
e4d860c025
Replaced calls to flushmmucache_cr3() to direct calls to flushmmucache_nopc() and removed the #define.
2023-06-11 22:12:18 +02:00
RichardG867
4253c7bae7
386_common: Handle IOPB segment limit corner case more like the old code
2023-04-22 22:28:18 -03:00
RichardG867
c076406450
386_common: Optimize I/O permission checking for word and dword operations (based on qemu)
2023-04-22 18:41:42 -03:00
OBattler
19d155cdd7
Keyboard controller file split and assorted clean-ups and fixes
2023-04-19 23:34:32 +02:00
Jasmine Iwanek
83b220cb03
clang format in cpu
2022-11-19 11:53:09 -05:00
OBattler
27ebb27db7
Makefile.mingw corrections and made the code pass much stricter checks (now mandated by Makefile.mignw) to ensure GCC 14 readiness.
2022-11-17 22:44:06 +01:00
OBattler
2a6a061556
nmi_raise() actually raises NMI, should fix ES1371 legacy device and other stuff.
2022-08-09 04:34:48 +02:00
OBattler
754058e2e5
AAM and AAD instruction fixes, fixes #2551 .
2022-08-01 23:40:11 +02:00
OBattler
c6d7f4a95b
Do not disable the timer in cpu_fast_off_reset() because the timers have already been reinitialized at this point.
2022-07-21 19:51:34 +02:00
OBattler
645c4e6902
ALi M6117-related CPU fixes.
2022-07-18 23:38:06 +02:00
OBattler
63e52cb832
Fixes to cpu/386_common.c.
2022-07-16 04:06:46 +02:00
OBattler
27713f6557
More CPU.
2022-07-16 03:22:41 +02:00
OBattler
a35c4aa674
CPU changes.
2022-07-16 03:21:21 +02:00
OBattler
2fd712d092
CPU changes.
2022-07-16 03:12:24 +02:00
OBattler
2c9bfa979f
ALi M1489 and a CPU fix.
2022-07-16 02:47:39 +02:00
OBattler
da5d451386
Preparation for SMI# and NMI# changes.
2022-07-16 02:45:46 +02:00
Jasmine Iwanek
4674756664
More newline and whitespace cleanups
2022-02-20 16:26:40 -05:00
OBattler
5ad606a8f2
UMC HB4 shadow RAM overhaul and SMRAM fixes, slight changes to SiS 85c4xx, a fix for SiS 85c50x, fixed SMBASE on 486 (it should *NOT* zero the most significant 8 bits!), various improvements to mem.c (eg. mem_invalidate_range() is now faster), fixed resetting PCI on soft reset, and made the KBC soft reset again.
2021-09-25 15:30:06 +02:00
OBattler
ddc7c5b78a
Reorganized some CPU structures a bit and fixed inappropriate behavior of some mem.c functions on 64-bit binaries (and made mem.c aware of ARM64 as well), fixes both 64-bit recompilers, closes #1215 .
2021-08-27 13:31:47 +02:00
OBattler
fe5955e477
Removed excess logging from 386_common.c.
2021-08-20 17:31:18 +02:00
OBattler
b384f58a8b
The relocated SMBASE read from the SMM saved state now has bits 24-31 cleared.
2021-08-20 17:27:56 +02:00
OBattler
79ad6568f8
Disabled excess CPU logging.
2021-08-10 16:24:18 +02:00
OBattler
f0e84f7f13
More fixes, fixes CMOS Setup on the Acrosses AR-B4179.
2021-08-09 16:10:55 +02:00
OBattler
136e6323fc
Removed another unused function from cpu/386_common.c.
2021-04-29 22:10:53 +02:00
OBattler
6ff172b833
Entry into SMM now cases flags to be rebuilt.
2021-04-21 01:09:48 +02:00
OBattler
8b6f9707d5
More CPU fixes, and SMM now implemented on Cyrix Cx486 and Cx5x86 CPU's as well as on Intel/AMI SX, DX, and SX2 CPU's.
2021-04-11 07:25:08 +02:00
OBattler
c370ae7e18
CPU and MMU cleanups and fixes, and non-Debug builds are now stripped again.
2021-04-10 07:18:47 +02:00
David Hrdlička
10cc122925
fix Clang/WinSDK warnings
2021-03-21 03:28:37 +01:00
OBattler
9930957be3
Renamed syscall() to syscall_op() in order to avoid a conflict when compiling for Linux.
2020-12-24 13:34:22 +01:00
OBattler
7577dbab78
Finished the SiS 50x work and added the two ASUS'es.
2020-12-18 17:09:54 +01:00
TC1995
462ff300da
Ported the most important patches from PCem.
2020-12-01 21:06:01 +01:00
OBattler
a5ae4cfba5
Got completely rid of readmemb386l() and writememb386l().
2020-11-30 05:27:04 +01:00
OBattler
1d4988221f
Fixed SYSENTER, SYSEXIT, SYSCALL, and SYSRET;
...
SYSCALL and SYSRET are now perfectly in line with AMD's specification;
Improvements to the API call to gracefully stop the emulator.
2020-11-16 17:47:05 +01:00
OBattler
0faf6692c9
WARNING: CONFIGS MIGHT PARTIALLY BREAK WHERE DEVICE NAMES HAVE CHANGED.
...
Changes to device_t struct to accomodate the upcoming PCI IRQ arbitration rewrite;
Added device.c/h API to obtain name from the device_t struct;
Significant changes to win/win_settings.c to clean up the code a bit and fix bugs;
Ported all the CPU and AudioPCI commits from PCem;
Added an API call to allow ACPI soft power off to gracefully stop the emulator;
Removed the Siemens PCD-2L from the Dev branch because it now works;
Removed the Socket 5 HP Vectra from the Dev branch because it now works;
Fixed the Compaq Presario and the Micronics Spitfire;
Give the IBM PC330 its own list of 486 CPU so it can have DX2's with CPUID 0x470;
SMM fixes;
Rewrote the SYSENTER, SYSEXIT, SYSCALL, and SYSRET instructions;
Changed IDE reset period to match the specification, fixes #929 ;
The keyboard input and output ports are now forced in front of the queue when read, fixes a number of bugs, including the AMI Apollo hanging on soft reset;
Added the Intel AN430TX but Dev branched because it does not work;
The network code no longer drops packets if the emulated network card has failed to receive them (eg. when the buffer is full);
Changes to PCI card adding and renamed some PCI slot types, also added proper AGP bridge slot types;
USB UHCI emulation is no longer a stub (still doesn't fully work, but at least Windows XP chk with Debug no longer ASSERT's on it);
Fixed NVR on the the SMC FDC37C932QF and APM variants;
A number of fixes to Intel 4x0 chipsets, including fixing every register of the 440LX and 440EX;
Some ACPI changes.
2020-11-16 00:01:21 +01:00