Commit Graph

545 Commits

Author SHA1 Message Date
OBattler
ab8f9d3866 The new 808x-only memory read/write functions now apply the RAM mask to the address so addresses now correctly wrap around 1 MB, fixes #1062;
More 808x bug fixes.
2020-11-17 02:20:19 +01:00
OBattler
bf4b5b781f Implemented PIC IRQ latch and delay (per the datasheet), IBM PCjr now works without a workaround delay in cpu/808x.c which was therefore removed; also redid memory and I/O accesses in cpu/808x.c to fix word writes on 8086. 2020-11-17 00:25:28 +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
32dfbdd082 Fixed some compile-breaking mistakes in the CPU code. 2020-11-16 00:06:33 +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
cfb559de13 Made the 808x interrupts delay again, fixes PCjr (TODO: Find why exactly that's needed because it sounds like a hack to me);
Fixed compiling of the PIC code with logs enabled;
A number of bugfixes in cpu/x86seg.c, fixes OS/2 1.0.
2020-11-01 04:21:55 +01:00
OBattler
b89e047464 Cleaned up x86seg.c, and also made 386 Interrupt and Task gates correctly GPF on a 286, fixes #587. 2020-11-01 02:36:50 +01:00
OBattler
080b8c12be Fixed the DAA instruction on 808x, fixes the Generic XT Clone BIOS POST. 2020-10-30 18:19:48 +01:00
anabate123
cfe827c342 Fixed the spacing 2020-10-26 17:53:45 -04:00
anabate123
d52249939c Added support for the 133MHz Pentium processor for Socket 5 CPUs 2020-10-26 17:53:05 -04: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
nerd73
6f5cc1f028 Undo anabate's VIA C3 changes entirely
There are no emulated chipsets which officially support 133 MHz FSB.
2020-09-22 23:57:52 -06:00
OBattler
7bff0cdc89 Fixed a typo in the CPU tables. 2020-09-23 07:23:38 +02:00
anabate123
f97a7aadeb Update cpu_table.c 2020-09-22 19:38:24 -04:00
anabate123
fadbd807ef Update cpu_table.c 2020-09-22 19:32:07 -04:00
RichardG867
4107c2090e Fix M6117 clocking mistake; the CPU has a clock divider(!) 2020-09-08 22:19:36 -03: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
RichardG867
0b8bd4e610 More documentation on VPCEXT opcodes, as requested 2020-07-27 12:24:31 -03:00
RichardG867
a8855733ec Implement more VPCEXT opcodes 2020-07-26 17:49:12 -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
nerd73
e7b8bda771 Implement clock-dividing for FPUs on clock-multiplied 386s
This is done by making it so that if the FPU is not at least a 487SX, the clock cycles are multiplied by the CPU multiplier.
2020-07-22 22:17:58 -06:00
OBattler
6a4a57bba8 Added an extern declaration of stdlog to x86seg.c. 2020-07-22 18:23:21 +02:00
OBattler
eba7d798a0 Merged the two copies of x86seg.c, finishing the mergers started in February. 2020-07-22 17:46:43 +02:00
OBattler
1ff36987a2 Merged the two copies of x86_ops_shift.h. 2020-07-22 16:45:46 +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
aeaf5ad34a Properly enabled SMM (and with the correct SMBASE) on AMD 486 CPU's. 2020-07-20 01:44:19 +02:00
OBattler
c7f4aabbf0 Fixed the previous fix. 2020-07-16 01:14:24 +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
10e16249fd Merged the two copies of x86_ops_call.h. 2020-07-15 03:37:44 +02:00
OBattler
39726915d3 Merged the two versions of x86_flags.h into one. 2020-07-15 03:22:28 +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
099fd2fc34 Properly fixed update_tsc(). 2020-07-12 23:51:56 +02:00
OBattler
38828bdc3b TSC update cycle fixes. 2020-07-12 21:05:46 +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
5a34bab430 Fix build 2020-07-07 16:08:36 -03:00
RichardG867
2efdc9aafc Change non-doubled STPCs to non-doubled Cx486DX 2020-07-07 16:06:40 -03:00
RichardG867
fef6e7f082 Set proper CPU speeds for each STPC machine 2020-07-07 16:05:05 -03:00
RichardG867
5e18163b2e Fix STPC CPU identification
Let port 22h/23h registers >= 0xc0 fall through to the Cyrix port 22h/23h code in cpu.c
2020-07-07 15:38:34 -03:00
RichardG867
18a3e4795c Add STPC 75 to CPU table 2020-07-06 21:11:53 -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
nerd73
064acae3fc Fix MSRs on the IBM 386/486 CPUs
Also give the IBM 386SLC 'isibm486' as it is believed to identify as a 486 to software.
2020-07-02 20:34:18 -06:00
RichardG867
f565362a41 Undo local changes to cpu.c 2020-07-02 21:44:28 -03:00
RichardG867
5d5883ac0d Merge branch 'master' of https://github.com/86Box/86Box 2020-07-02 21:42:52 -03:00
RichardG867
b043f1867b Genesys Logic GL518SM hardware monitor 2020-07-02 21:42:31 -03:00