[comp.unix.microport] fp emulation in microport DOS MERGE

nvk@ddsw1.MCS.COM (Norman Kohn) (01/07/90)

Microport's dos merge kernel seems to have some problem with
80387 emulation.  On a machine with no math coprocessor the code
#define MATHTYPE int
main()
{
	MATHTYPE x;int j;
	j=2;
	x=(MATHTYPE) j;
	j=(int) x;
	printf("%d\n",j);
}
fails (produces results of 0) if MATHTYPE is float or double.
sdb confirms that the conversions are failing.
This may suggest why awk, which uses floating point heavily, gets very confused
under DOSMERGE.

The good news is that someone actually answers the phone at microport,
and claims to have a newer merge kernel: maybe :) they'll have
a fix for it.  (A machine with 80287 does ok: at least an
80387 is cheaper than buying Interactive's unix.)

-- 
Norman Kohn   		| ...ddsw1!nvk
Chicago, Il.		| days/ans svc: (312) 650-6840
			| eves: (312) 373-0564

mike@cimcor.MN.ORG (Michael Grenier) (01/08/90)

From article <1990Jan6.230548.23780@ddsw1.MCS.COM>, by nvk@ddsw1.MCS.COM (Norman Kohn):
% Microport's dos merge kernel seems to have some problem with
% 80387 emulation.  On a machine with no math coprocessor the code
% #define MATHTYPE int
% main()
% {
% 	MATHTYPE x;int j;
% 	j=2;
% 	x=(MATHTYPE) j;
% 	j=(int) x;
% 	printf("%d\n",j);
% }
% fails (produces results of 0) if MATHTYPE is float or double.
% sdb confirms that the conversions are failing.
% This may suggest why awk, which uses floating point heavily, gets very confused
% under DOSMERGE.

Strange, the above code worked fine on this machine. The previously
posted awk script also ran fine on this 386 DosMerge Kernel
without an FP. I strongly suggest a CPU board problem is
at fault here.

    -Mike Grenier
    mike@cimcor.mn.org

nvk@ddsw1.MCS.COM (Norman Kohn) (01/11/90)

In article <10@cimcor.MN.ORG> mike@cimcor.MN.ORG (Michael Grenier) writes:
>From article <1990Jan6.230548.23780@ddsw1.MCS.COM>, by nvk@ddsw1.MCS.COM (Norman Kohn):
>% Microport's dos merge kernel seems to have some problem with
>% 80387 emulation.  On a machine with no math coprocessor the code
>% #define MATHTYPE int
>% main()
>% {
>% 	MATHTYPE x;int j;
>% 	j=2;
>% 	x=(MATHTYPE) j;
>% 	j=(int) x;
>% 	printf("%d\n",j);
>% }
>% fails (produces results of 0) if MATHTYPE is float or double.
>% sdb confirms that the conversions are failing.
>% This may suggest why awk, which uses floating point heavily, gets very confused
>% under DOSMERGE.
>
>Strange, the above code worked fine on this machine. The previously
>posted awk script also ran fine on this 386 DosMerge Kernel
>without an FP. I strongly suggest a CPU board problem is
>at fault here.
>
It would seem so, yet everything works fine with the 3.0e kernel.
I have the first post-beta MERGE release (I don't know its
number) and am awaiting uport's more recent update.  Perhaps
you're running a more recent version?

-- 
Norman Kohn   		| ...ddsw1!nvk
Chicago, Il.		| days/ans svc: (312) 650-6840
			| eves: (312) 373-0564