[comp.sys.ibm.pc] Microsoft Works with Math Coprocessor

joel@peora.ccur.com (Joel Upchurch) (08/12/89)

I have a friend using Microsoft Works on a CompuAdd 12MHz 0 wait state
computer with a 80287 math coprocessor.  The spreadsheet works fine at
6 MHz, but when they speed it up to 12MHz the Spreadsheet doesn't
divide correctly.  For instance, =10/4 will display 10 at 12 MHz and
2.5 at 6 MHz.  Other programs that use the math coprocessor don't seem
to have a problem.  The problem didn't seem to occur before the math
coprocessor was added to the system.  I couldn't find anything in the
Works manual that said if it used the coprocessor or not.

Microsoft customer support said that Works uses the coprocessor, but
that the COPROCESSOR CODE HADN'T BEEN TESTED.  I had the support
person repeat that a couple of times, because I didn't believe my ears
the first time. I asked if there was any way tell Works to ignore
the math coprocessor and she said there wasn't, that the only way
to get Works to ignore the coprocessor was to remove the 80287 from
the system.

What I suspect is happening is that the speed switch on the computer
only effects the 286 and not the 287 chip and that Works uses some
sort of simple countdown loop to wait for the 287 to finish the
calculation. When the 286 is running at 12 MHz and the 287 is doing
a divide operation I suspect that the countdown loop completes before
the 287 has finished the operation.

I don't do much programming on PCs, so I was wondering if this
explanation was likely and if anyone else had seen a similar problem.

-- 
Joel Upchurch/Concurrent Computer Corp/2486 Sand Lake Rd/Orlando, FL 32809
joel@peora.ccur.com {uiucuxc,hoptoad,petsd,ucf-cs}!peora!joel
Telephone: (407) 850-1040   Fax: (407) 857-0713

nghiem@ut-emx.UUCP (Alex Nghiem) (08/13/89)

In article <3942@peora.ccur.com> joel@peora.ccur.com (Joel Upchurch) writes:

>Microsoft customer support said that Works uses the coprocessor, but
>that the COPROCESSOR CODE HADN'T BEEN TESTED.  I had the support

This does not surprise me. Ever tried to use a Hayes-type modem
with the Works Comm package using the hardware-flow control option?
Hardware flow control hangs up the modem every time it is activated because
the hardware inexplicably uses DSR/DTR for flow control instead of CTS/RTS.
Ever tried to use the Works Communication package with Xon/Xoff instead or 
no flow control? Works Comm inexplicably generates the message "Buffer
overflow" and you cannot do anything. My conclusion: Works does not Work!!!
Qmodem or Procomm or MS-Kermit works, period.

nghiem@walt.cc.utexas.edu
!cs.utexas.edu!ut-emx!walt!nghiem

fredex@cg-atla.UUCP (Fred Smith) (08/14/89)

In article <3942@peora.ccur.com> joel@peora.ccur.com (Joel Upchurch) writes:
>
>Microsoft customer support said that Works uses the coprocessor, but
>that the COPROCESSOR CODE HADN'T BEEN TESTED.  I had the support
>person repeat that a couple of times, because I didn't believe my ears
>the first time. I asked if there was any way tell Works to ignore
>the math coprocessor and she said there wasn't, that the only way
>to get Works to ignore the coprocessor was to remove the 80287 from
>the system.



----------------------

This might help--try it and let us know.

If this product was written using Microsoft's math coprocessor
emulation routines (which will emulate the xx87 if not there and
will use it if it is there) then it should be possible to turn off
the coprocessor by defining an environment variable named NO87 and
setting its value to 0 or 1 or anything else you like. It's mere
presence is enough to force the emulation routines to ignore the xx87.

This is documented and works in Microsoft C, and I think it also
might work with their other languages.

Fred