/**
Test code for Turbo C Version 1.5
*/

#define matcoeff    double
#define coords	    double
#define boolean int

typedef struct  point   {
    coords  x,y,z,w;
} POINT, *POINTPTR;

typedef struct  matrix  {
    matcoeff	a[4][4];
} MATRIX, *MATPTR;

extern	boolean IITCoPro(void);
extern	void	F4X4(POINTPTR, MATPTR, POINTPTR);

main()
{
    MATRIX  m = {
		-0.2341,	1.7653421, 	197.2341,	-0.654321,
		-1.110765,	3.4571,		-0.006543,	10.2416798,
		5.43,		1.0,		26.342,		-19.5432,
		21.654321,	123.9987,	1.111111,	7123.465123
	};

    POINT   p = {
		-213.4256733,	0.008976327,	10.0,	15.23011674
	};


    if (!IITCoPro()) {
		puts("\nIIT CoProcessor NOT found ....");
		return 1;
	} else {
	    puts("\nIIT CoProcessor Found .....\n");
    	F4X4(&p, &m, &p);
    	printf("\nNew Values are: %f %f %f %f\n", p.x, p.y, p.z, p.w);
	    return 0;
    } /* if else */
} /* main */
