[comp.windows.ms] Coprocessor emulation

mdcg7180@uxa.cso.uiuc.edu (Michael David Carr) (05/29/91)

Has anyone had success with using any of the shareware 80x87 coprocessor
emulators with Windows?  I've tried several - those that load in via the
config.sys and those that are .EXE or .COM - the results are always the
same:  if I load them before running Windows it wont even boot.  If I
load them from inside Windows, I get an UAE.  What's going on here?

Thanks,
Michael Carr
mdcg7180@uxa.cso.uiuc.edu

hallvard@immhp3.marina.unit.no (Hallvard Paulsen) (05/30/91)

In article <1991May29.165447.11443@ux1.cso.uiuc.edu>, mdcg7180@uxa.cso.uiuc.edu (Michael David Carr) writes:
|> Has anyone had success with using any of the shareware 80x87 coprocessor
|> emulators with Windows?  I've tried several - those that load in via the
|> config.sys and those that are .EXE or .COM - the results are always the
|> same:  if I load them before running Windows it wont even boot.  If I
|> load them from inside Windows, I get an UAE.  What's going on here?
|> 

	I just got an 387 emulator. It lets me load windows, but it is
not possible to run a DOS program that makes use of it from within
windows.(i.e if i use windows the dos program won't "find" the emulator)
Leaving windows I am able to use any dos program that needs -387 without 
any problems (and that is without rebooting or enabeling the emulator again).

Loading from inside Widows gives me too an UAE!

  \\___//
  |     |       Hallvard Paulsen, Siv. Ing
  |_____|       Forsker / Dr.ing Stud
  || o ||       Marine Systemer og Maskineri
  || \\||       MARINTEK (Sintef Gruppen)
      \\        TEL : +47 (07)595522 
       o        FAX : +47 (07)595983
      //        EMAIL : hallvard@imm.unit.no
     O     

ebergman@isis.cs.du.edu (Eric Bergman-Terrell) (06/01/91)

My guess is that your TSR emulators may be conflicting with the 8087
emulation library built into windows (named emu87.exe or something).

Terrell

bartana@uni.Colorado.EDU (Ido Bar-tana) (06/02/91)

The problem has nothing to do with WINEM87.DLL . This file is used by windows applications ass a substitute for 87 chips, like EXCEL. The problem discussed in this thread is why windows will not tolerate 87 emulators under enhanced mode. 

jcohen@lehi3b15.csee.Lehigh.EDU (Josh Cohen [890918]) (06/06/91)

Could someone please direct me to (ftp, etc) where I can find an 80387
software emulator. ???
thanks
Josh Cohen
jrc5@pl118c.cc.lehigh.edu

pshuang@ATHENA.MIT.EDU (06/10/91)

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).