Commit Graph

95 Commits

Author SHA1 Message Date
OBattler
979bd75acb Merge branch 'master' of https://github.com/86Box/86Box 2023-07-06 19:59:54 +02:00
Jasmine Iwanek
927c26f496 Fix some variant type comparisons 2023-05-02 02:18:17 -04:00
TC1995
7a53e1de45 Initial softfloat port from Bochs to 86box, currently selectable only on QT. 2023-04-29 18:56:57 +02:00
OBattler
333e9377ff Some minor CPU bugfixes - one for 808x and one for the new dynarec. 2023-04-20 02:24:03 +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
Jasmine Iwanek
bd75bc141a Header cleanups
Tabs to spaces
Consistency
2022-11-13 21:15:47 -05:00
OBattler
2a2276dbee On the NEC V20/V30, REP string instructions with segment override move IP back one further byte on a hardware interrupt, fixes V20 detection on HWiNFO16. 2022-11-03 01:04:21 +01:00
OBattler
19d6fcec24 808x flags fixes - fixes HWiNFO v2.2 hanging. 2022-11-03 00:14:31 +01:00
OBattler
605929fcba Fixed V20 / V30 MUL flags - OpenXT now correctly detects the V20. 2022-10-26 17:02:52 +02:00
OBattler
e6321d952a More V20/V30 fixes. 2022-10-26 16:45:17 +02:00
OBattler
a2d0ed214e Some NEC V20 fixes. 2022-10-26 02:46:40 +02:00
OBattler
787a6b81f7 Fixed warnings in cpu/808x.c. 2022-10-24 02:03:04 +02:00
Jasmine Iwanek
51f84ce0be Merge remote-tracking branch 'upstream/master' into nec-v20 2022-10-19 16:24:10 -04:00
Jasmine Iwanek
b4673117fd Some clang-formatting in src/cpu 2022-09-20 01:00:45 -04:00
Jasmine Iwanek
8904fd675f Use MD_FLAG 2022-09-13 08:10:24 -04:00
Cacodemon345
54bc9dc58c 808x: Make sure all 8018x opcodes are marked as handled (#19) 2022-09-10 05:39:39 -04:00
Cacodemon345
2cdc63e83a 808x: Switch to __builtin_parity for parity flag setting 2022-09-10 14:53:00 +06:00
Cacodemon345
fc2fac4c73 More i8080 + NEC changes (#18)
* More i8080 changes

* Fix compilation

* More foundational i8080 work

* Switch to __builtin_parity for parity flag setting

Fix some incorrectly implemented instructions
2022-09-10 04:50:50 -04:00
Cacodemon345
c2cc656103 Fix NEC BCD instructions (#15) 2022-09-08 14:26:05 -04:00
Cacodemon345
25b2e16a27 NEC INM/OUTM instructions (#14) 2022-09-07 15:58:42 -04:00
Cacodemon345
7b29c30819 Implement immediate IMUL operands (#13)
* Implement immediate IMUL operands

Implement PUSH segment underflow behaviour on SP = 1 values for 8018x

* Limit bit-shifts and rotates to 31 on Intel 8018x

* NEC/8018x ENTER/LEAVE instructions

* NEC/8018x bound checking instruction
2022-09-07 08:50:30 -04:00
Cacodemon345
2b0dff2ec6 Implement immediate versions of PUSH operations (#12)
Implement immediate versions of bit-shifting operations

Make word read/write operations not overflow when offset is 0xFFFF on 8018x
2022-09-06 16:59:39 -04:00
Cacodemon345
3dbfcf1fd3 NEC SUB4S and CMP4S instructions (#11)
* NEC SUB4S and CMP4S instructions

* Return to original IP properly in case of POP PS

* NEC REPC/REPNC instructions

* Make NEC BRKEM instruction a fatal for now

* Fix wrong segment addresses in some NEC instructions
2022-09-06 12:29:54 -04:00
Cacodemon345
e93cd46c78 NEC ADD4S instruction (#10) 2022-09-05 16:27:09 -04:00
Cacodemon345
323f7e7a62 NEC INS/EXT instructions (#9) 2022-09-05 06:18:10 -04:00
Cacodemon345
199bbed5ee NEC CLR1 instructions (#8)
Wraps up the fixed bitfield manipulation instructions
2022-09-04 16:00:29 -04:00
Cacodemon345
2280685526 NEC SET1 instructions (#7)
Mask the bit argument properly
2022-09-04 15:50:38 -04:00
Cacodemon345
db6eac6e2f Mark recently-added instructions as handled (#6) 2022-09-04 15:38:42 -04:00
Cacodemon345
6b55fa3d2e NEC NOT1 instruction (#5)
Fix bit value usage of TEST1 instruction
2022-09-04 15:25:08 -04:00
Cacodemon345
474ab60c97 NEC TEST1 instruction (#4) 2022-09-04 15:11:04 -04:00
Cacodemon345
71dde8658b Implement more NEC V20/V30 and 8018x instructions (#3)
* Implement more NEC V20/V30 and 8018x instructions

* PUSHA/PUSH R
* POPA/POP R
* RO(L/R)4 r/m (NEC only)

* Fix critical mistake
2022-09-04 12:30:21 -04:00
Cacodemon345
18d15758f5 Don't set ZF on MUL/MULU operations on NEC V20/V30 (#2) 2022-09-03 14:27:05 -04:00
Jasmine Iwanek
8ef1d28b2c Merge branch '86Box:master' into nec-v20 2022-03-18 15:05:25 -04:00
RichardG867
f57cbe36b1 GDB Stub: More progress 2022-03-16 00:33:01 -03:00
RichardG867
94be8cdfc6 GDB Stub: Initial commit 2022-03-12 20:20:25 -03:00
Jasmine Iwanek
6bccf983e5 Merge branch '86Box:master' into nec-v20 2022-02-20 21:08:06 -05:00
Jasmine Iwanek
4674756664 More newline and whitespace cleanups 2022-02-20 16:26:40 -05:00
Jasmine Iwanek
b4e5fec867 Merge branch '86Box:master' into nec-v20 2022-02-02 22:14:22 -05:00
OBattler
b3a8d0aaed And more. 2022-02-02 02:51:18 +01:00
OBattler
25e8801ede And more. 2022-02-02 02:46:11 +01:00
Jasmine Iwanek
a349823c7d Initial proddings at NEC V20/V30 2022-01-31 13:39:06 -05:00
linear cannon
04c89959f8 adjust CLOCK_CYCLES and related macros to handle fpu/iu concurrency
add CLOCK_CYCLES_FPU, which does exactly what CLOCK_CYCLES already did.

add CONCURRENCY_CYCLES, which sets fpu_cycles, which is the number of
available concurrent execution cycles that the integer unit can do
"free" work in while the fpu is executing.

adjust CLOCK_CYCLES so that if there are fpu_cycles, the cycle count is
subtracted from fpu_cycles instead of cycles, emulating the behavior of
these concurrent cycles being "free" as on real hardware.
2022-01-29 07:38:41 -08:00
OBattler
9ec4fd3bdd Fixed a CPU reset mess. 2021-12-19 19:14:21 +01:00
OBattler
0c4003caa3 Added the C&T 82C100 chipset needed by the Victor V86P. 2021-09-07 23:41:17 +02:00
OBattler
586066d891 Made NMI's always auto-clear, will revert if it makes things worse. 2021-09-02 15:24:17 +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
d31bca5279 Removed two void returns (how that even valid?!) from the 808x code. 2020-12-12 10:18:00 +01:00
OBattler
1bc5eca8fd 808x PIC acknowledges now incur bus access wait states. 2020-12-02 05:52:28 +01:00
OBattler
f9c2f04a52 808x fixes - 8088mph works normally again. 2020-11-28 07:02:38 +01:00