FPU on emulation of pre-486 machines...
-
- Posts: 1
- Joined: Wed 27 Jul, 2016 3:33 pm
FPU on emulation of pre-486 machines...
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 ?
Re: FPU on emulation of pre-486 machines...
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.
Re: FPU on emulation of pre-486 machines...
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.
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.
- BoisterousSleet75
- Posts: 39
- Joined: Fri 11 Aug, 2017 3:06 am
Re: FPU on emulation of pre-486 machines...
*deleted*
Last edited by BoisterousSleet75 on Sun 04 Mar, 2018 12:09 am, edited 1 time in total.
Long Live Marxism-Leninism-Maoism! ☭
-
- Posts: 183
- Joined: Wed 18 Mar, 2015 5:27 am
Re: FPU on emulation of pre-486 machines...
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?
Re: FPU on emulation of pre-486 machines...
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.
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.
Re: FPU on emulation of pre-486 machines...
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?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.