Commit Graph

77 Commits

Author SHA1 Message Date
OBattler
aa3a52da3c Reordered some CPU variables and rewrote codegen emitted by the old recompiler's 64-bit version of codegen_accumulate_flush() to not assume 32-bit pointers, fixes 64-bit old recompiler, closes #1615. 2021-08-26 13:53:13 +02:00
OBattler
0d5c5f361a Added a separate CPU_STPC CPU type with RDTSC, fixes the ITOX STAR. 2021-08-09 09:51:58 +02:00
OBattler
166f64d422 Some CPU fixes, should fix compiling. 2021-06-07 00:06:17 +02:00
RichardG867
62afe31757 Remove EBGA368 due to poor research (CPUs are Samuel 2 and newer only) 2021-06-03 16:26:08 -03:00
OBattler
957b538c4a Rewrote memory access handling to properly split execute from read, bus from CPU (but the mappings will still match until otherwise specified), and fixed exec[] usage by the mem_*_phys() functions. 2021-04-22 04:27:50 +02:00
RichardG867
d0d73b7ef5 Revert "The IBM PCjr is now limited to 8088 4.77 MHz, closes #1379."
This reverts commit d060a38d91.

# Conflicts:
#	src/machine/machine_table.c
2021-04-17 16:46:04 -03:00
OBattler
4989d99c1b Merge branch 'master' of https://github.com/86Box/86Box 2021-04-17 04:45:55 +02:00
OBattler
d060a38d91 The IBM PCjr is now limited to 8088 4.77 MHz, closes #1379. 2021-04-17 04:45:28 +02:00
nerd73
17c5cc862e fix cpu.h 2021-04-15 23:30:52 -06:00
nerd73
791bae3560 Add the AMD Am486DXL and DXL2.
Has otherwise Intel-compatible SMM with an SMBase at 60000h.
2021-04-15 23:28:07 -06:00
nerd73
8e3b09f323 Various 486 improvements
- Added SL-Enhanced versions of Intel 486 CPUs and Enhanced AMD Am486DX2/DX4 CPUs
- Cleaned up the 486 CPU types and updated intel_4x0.c to reflect this
- Fixed some incorrect EDX reset and CPUID values
- Blacklisted non-SMM capable 486 CPUs on the Soyo 4SA2 motherboard
- Merged the non-OverDrive and OverDrive Intel DX4s because of further research confirming them to be functionally identical
- Removed SMM support on early 486 CPUs
2021-04-15 21:38:03 -06: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
OBattler
1a643ab040 Reworked some memory and CPU parts to fix bugs, improve performance by getting rid of excess calls to mmutranslate(), and properly invalidate page bytes on page invalidation on new recompiler. 2021-03-24 19:52:44 +01:00
David Hrdlička
10cc122925 fix Clang/WinSDK warnings 2021-03-21 03:28:37 +01:00
RichardG867
dfee1165ea Add custom ISA/PCI/AGP clock facility, and fix PIT clock calculation oversight for CPU clocks ending in (but not equal to) 33 and 66 MHz 2021-03-14 19:42:21 -03:00
Panagiotis
1136e2b715 Implemented the VIA EBGA 368 platform 2021-02-22 11:40:48 +02:00
Miran Grča
19ff41dac6 Merge pull request #1201 from richardg867/master
CPU table amendments
2021-01-02 03:17:44 +01:00
RichardG867
4347dbc12a Fix lower speeds on P6/C3 CPUs 2020-12-31 15:32:57 -03: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
RichardG867
b64ecbaa5a Fix CPU table issues 2020-12-18 16:16:04 -03:00
David Hrdlička
7e6df1f45c cpu: convert CPU type enum to sequential 2020-12-16 20:33:24 +01:00
OBattler
3c23626eaf Recorganized the cpu_state struct to be like PCem's, fixes MMX bugs on 64-bit old recompiler (possibly on the new one as well?). 2020-12-13 13:35:58 +01:00
RichardG867
10212afee5 Add CPU table override config variable 2020-11-23 14:48:32 -03:00
RichardG867
98f09bf4ac Improve handling of fixed multipliers 2020-11-19 14:15:34 -03:00
RichardG867
149322a06a Rewrite CPU table backwards compatibility system, and fix a crash in the speed clamping code 2020-11-18 19:56:22 -03:00
RichardG867
10732f6f02 Restore special i486DX2 CPUs for the IBM PC 330 2020-11-18 13:51:12 -03:00
RichardG867
dbd767437b Programmatic CPU table 2020-11-18 01:09:17 -03: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
OBattler
795a6017d2 PIC rewrite, proper SMRAM API, complete SiS 471 rewrite and addition of 40x, 460, and 461, changes to mem.c/h, disabled Voodoo memory dumping on exit, bumped SDL Hardware scale quality to 2, bumped IDE/ATAPI drives to ATA-6, finally bumped emulator version to 3.0, redid the bus type ID's to allow for planned ATAPI hard disks, made SST flash set its high mappings to the correct address if the CPU is 16-bit, and added the SiS 401 AMI 486 Clone, AOpen Vi15G, and the Soyo 4SA2 (486 with SiS 496/497 that can boot from CD-ROM), assorted 286+ protected mode fixes (for slightly more accuracy), and fixes to 808x emulation (MS Word 1.0 and 1.10 for DOS now work correctly from floppy). 2020-10-14 23:15:01 +02:00
RichardG867
a129291a0d Change STPC CPU table to better values, more in line with the 486 CPU list and BIOS identification naming schemes 2020-09-08 22:10:13 -03:00
RichardG867
55b29db14b Finish M6117 implementation 2020-09-08 22:08:34 -03:00
OBattler
70dd4ba3be Generic MO Device ID changes and implemented the VPCEXT instructions (on the Virtual PC 2007 VM only). 2020-07-25 05:14:06 +02:00
OBattler
b52e91f031 Fixed the FPU stuff and added the ability to select the 487SX. 2020-07-22 16:39:57 +02:00
OBattler
0b4b2b4d2f A number of recompiler fixes and put some of the timer/cycle-related changes behind #ifdef's as they are no longer used but someone may want to still try them out. 2020-07-15 18:30:27 +02:00
OBattler
a862bda04c Rewrote the recompiler interrupt checking in assembly (and removed it for the new dynamic compiler because the requires uops are not present), brings performance back up, and also did a number of CPU-related clean-ups (mostly removal of dead variables and associated code). 2020-07-13 19:46:19 +02:00
OBattler
0cd0d83cee Both recompilers now check for interrupt after every instruction and exit the block if one has happened. 2020-07-13 01:23:40 +02:00
OBattler
974a7ae4f1 Fixed cycles accumulation in update_tsc() when cache is enabled (and the actual recompiler kicks in), and also fixed a warning in the 82091AA code. 2020-07-12 20:01:16 +02:00
RichardG867
fef6e7f082 Set proper CPU speeds for each STPC machine 2020-07-07 16:05:05 -03:00
RichardG867
8536f93dfc Merge branch 'master' of https://github.com/86Box/86Box
# Conflicts:
#	src/cpu/cpu.c
2020-07-06 19:00:31 -03:00
RichardG867
c1dd844747 Merge branch 'master' of https://github.com/86Box/86Box
# Conflicts:
#	src/machine/machine_table.c
#	src/win/Makefile.mingw
2020-07-06 18:47:50 -03:00
RichardG867
11114c97d2 Initial implementation of STPC chipsets and machines 2020-07-06 18:45:34 -03:00
nerd73
18368203ec Fix issues with Cyrix DX2/DX4 CPUs
Fix some issues with the Cyrix DX2 & DX4 CPUs and restore the Cyrix 6x86 for dev-branch builds.
2020-07-06 13:01:52 -06:00
David Hrdlička
254c8024f8 Fix MSVC build 2020-07-06 20:20:07 +02:00
OBattler
96228bc41d Overhauled the SiS 496/497 chipset emulation (and added the DRB locking to it) (later Zida Tomato 4DPS BIOS'es now work, and we now use the actual 1.72), fixed the W83787F and FDC37C932FR Super I/O chips, removed the no longer needed Acer M3A registers (that's now correctly handled as FDC37C932FR GPIO), and a number of bugfixes here and there. 2020-06-29 01:10:20 +02:00
OBattler
3e8d27d015 Fixed FPU on RapidCard onwards (fixes OS/2 on RapidCard onwards to no longer think it's a 287) and renamed the Built-in FPU to Internal to be consistent with the rest of the emulator. 2020-06-15 22:49:30 +02:00
OBattler
af06ba62c0 Hooked up the new FPU type selection to the UI. 2020-06-15 21:21:26 +02:00
nerd73
a4d33513e4 Preliminary port of PCem's FPU timing emulation 2020-06-15 04:11:12 -06:00
OBattler
60ba71cb4b Renamed the three CPU folders to their final names. 2020-06-13 10:54:05 +02:00