Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!ucbvax!ATHENA.MIT.EDU!pshuang From: pshuang@ATHENA.MIT.EDU Newsgroups: comp.windows.ms Subject: Coprocessor emulation Message-ID: <9106092142.AA03500@w20-575-105.MIT.EDU> Date: 9 Jun 91 21:42:57 GMT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 35 In article <1991Jun1.183501.1378@colorado.edu> bartana@uni.Colorado.EDU (Ido Bar-tana) writes: > The problem has nothing to do with WINEM87.DLL . This file is used by > windows applications as a substitute for 87 chips, like EXCEL. The > problem discussed in this thread is why windows will not tolerate 87 > emulators under enhanced mode. Don't be so quick to assume that there is not a conflict between the two attempts at emulating an 80x87 chip. For these emulators to work, there must be some hardware interrupt/exception which the emulator can trap to find out that the main CPU has just found some coprocessor instructions to be executed and is looking for the 80x87 chip. I would not be surprised if one of the emulators grabs the interrupt away from the other and their interaction is causing the failure. In fact, this would explain the observed facts quite well. If you load the stand-alone 387 emulator chip, it works with DOS software because there isn't anything else trying to do funky things with the appropriate interrupt. If you load Windows, WINEM87.DLL will provide math coprocessor emulation, but only for your Windows programs, possibly because Windows may require that programs provide specially structured math coprocessor instructions which can be patched on the fly (similar to the way Microsoft/Borland/etc. compilers implement math emulation libraries) and which normal DOS programs will not necessarily provide, or because WINEM87.DLL may be running in protected mode for the benefit of Windows programs which are also in protected mode whereas DOS ones are running in real or V86 mode. WINEM87.DLL would probably override any previous 387 emulators loaded, seeing how happy Microsoft is to take over your iron completely. If you try to load the stand-alone emulator after Windows is in memory, 386 hardware protection traps the attempt to do low-level fiddling with interrupts and Windows barfs with an UAE. Singing off, UNIX:/etc/ping instantiated (Ping Huang).