AUSAM/source/libt/source/ucursor.c

#include "cplot.h"

char ucursor(x,y)
float *x,*y;
{
	char g_buf[CURSBUFSIZE];

	register int i;
	g_alpha();

	g_ekoff();
	for( i=1; i<g_syncs; i++ )
		putc( SYNC, stdout );

	fputs( CURSREAD, stdout );
	fgets( g_buf, CURSBUFSIZE, stdin );	/* TERMINAL MUST SUPPLY CR AT END OF TRANSMISSION */

	if( feof(stdin) )
	{
		fgets( &g_buf[1], CURSBUFSIZE - 1, stdin );
		g_buf[0] = EOF;
	}
	/*  reconstruct x in user co-ords  */
	*x = (((g_buf[1]&MASK)<<5) | (g_buf[2]&MASK)) * (g_xhi - g_xlo) / SXMAX  + g_xlo;

	/*  reconstruct y in user co-ords  */
	*y = (((g_buf[3]&MASK)<<5) | (g_buf[4]&MASK)) * (g_yhi - g_ylo) / SYMAX + g_ylo;

	g_ekon();
	return(g_buf[0]);
}