FPU on emulation of pre-486 machines...

Support and general discussion.
Post Reply
ScoutPilot
Posts: 1
Joined: Wed 27 Jul, 2016 3:33 pm

FPU on emulation of pre-486 machines...

Post by ScoutPilot »

Hello everebody ! Why there's no option of 8087/287/387 FPUs in PC-em... In my life I use real vintage hardware, but sometimes carry modern laptop with PC-em and transfer data from it to old computers - I learn Pascal, Assm and C and FPU is necessary for me - will this option be added in further versions ?
ovctvct
Posts: 11
Joined: Wed 28 Oct, 2015 3:07 pm

Re: FPU on emulation of pre-486 machines...

Post by ovctvct »

I'd also like to see 8087/287/387 FPUs available in pcem. BTW the FPU was optional before the 486 DX was released, which is probably why it's not emulated for older cpus.
Scali
Posts: 11
Joined: Wed 10 Aug, 2016 4:31 pm

Re: FPU on emulation of pre-486 machines...

Post by Scali »

Yes, I would also like to be able to enable an FPU for the 386 and lower machines. Shouldn't be too difficult to at least implement it for 386, since for 486SX/486DX it is basically already implemented: they're the same CPU, just with or without the FPU. And iirc the 486 FPU is exactly the same instructionset as the 387 (just different timings).
For 287 and 87 there are some small details (and if you really want to get into detail, there are two generations, the 287 and 287XL. The 287XL was using the newer 387SX architecture, and a different multiplier, so it ran at a higher clockspeed. And a 386 can also be coupled with a 287 or 287XL. And then there's third-party x87-compatibles, such as the IIT 2C87 and 3C87, with instruction set extensions).

Speaking of which, there's also a tiny bug in how the 808x is emulated without an FPU. If you execute an FWAIT on an 8086 or 8088, then the CPU will wait until the FPU signals on the bus that it is ready. If you don't have an FPU, this will lock up the system, because the FWAIT will never complete.
In the OpenWatcom 1.9 libc implementation there is actually a bug in the FPU detection routine, which makes it execute an FWAIT during the detection. This locks up a real 8086/8088 system without an FPU. PCem does not lock up, so apparently it does not emulate the FPU bus correctly. This makes it impossible to find and fix such bugs if you want to use PCem for development.
User avatar
BoisterousSleet75
Posts: 39
Joined: Fri 11 Aug, 2017 3:06 am

Re: FPU on emulation of pre-486 machines...

Post by BoisterousSleet75 »

*deleted*
Last edited by BoisterousSleet75 on Sun 04 Mar, 2018 12:09 am, edited 1 time in total.
Long Live Marxism-Leninism-Maoism! ☭
ecksemmess
Posts: 183
Joined: Wed 18 Mar, 2015 5:27 am

Re: FPU on emulation of pre-486 machines...

Post by ecksemmess »

Count me as yet another who would love to see this! I really do hope that at least some level of basic 8087/287/387 support gets onto the to-do list for v14. Also, does anyone know if the FWAIT issue Scali mentioned above has ever been fixed?
Fenix77
Posts: 80
Joined: Fri 01 Sep, 2017 11:59 am

Re: FPU on emulation of pre-486 machines...

Post by Fenix77 »

Hello.

I far as i know 287 and 387 SX/DX emulation was added in 86box, at the moment the Cyrix 486 DLC/SLC, variants and 8087 are not emulated.
I tested the emulation with Windows 3.1 in MR 386 DX(it´s good because Windows don not need to emulated the FPU) and Award 286 with Windows 2.11/286
and Word for Windows 1.1 and it is detected and working.
I don't know if it can be ported to PCEM.
waltje
Posts: 13
Joined: Wed 15 Mar, 2017 10:17 pm
Location: Fort Wayne, IN
Contact:

Re: FPU on emulation of pre-486 machines...

Post by waltje »

Fenix77 wrote:Hello.

I far as i know 287 and 387 SX/DX emulation was added in 86box, at the moment the Cyrix 486 DLC/SLC, variants and 8087 are not emulated.
I tested the emulation with Windows 3.1 in MR 386 DX(it´s good because Windows don not need to emulated the FPU) and Award 286 with Windows 2.11/286
and Word for Windows 1.1 and it is detected and working.
I don't know if it can be ported to PCEM.
Well, yeah, the 8*87 is supported in 86Box, yes, and has been for a long time. If you need that, why not try and use 86Box instead?
Post Reply