#include <stdio.h>
#ifdef AMIGA
#include <gfxamiga.h>
#else
#include <gfx.h>
#endif

help()
{
printf("get grafic cursor position\n");
printf("options:\n");
printf("   +tek     prints tektronix hardware coordinates (debugging)\n");
printf("   -xy      do NOT print time (in ns) and peak height\n");
printf("   -xc      do NOT print channel number (recalculated !)\n");
printf("   -x       only returns channel number (usefull for script files)\n");
printf("   -y       only returns peakheight (usefull for script files)\n");
}

float frline(stream)
FILE *stream;
{
int i,n;
char c,s[80];

   fgets(s,80,stream);
   return(atosf(s));
}

main(argc,argv)
int argc;
char *argv[];
{
int n,x,y,xx,yy,
      flg_tek=FALSE,
      flg_xy=TRUE,
      flg_xc=TRUE,
      flg_x=FALSE,
      flg_y=FALSE,
      leftmargin,
      bottommargin,
      rightmargin,
      topmargin,
      _win_flg;
float tmin,
      tmax,
      ymin,
      ymax,
      real_t,
      real_y,
      yfak,
      tfak,
      xoffset,
      yoffset;
char z[80];
FILE *fp;

if(checkopt(argc,argv,"+tek",z)) flg_tek=TRUE;
if(checkopt(argc,argv,"-xy",z)) flg_xy=FALSE;
if(checkopt(argc,argv,"-xc",z)) flg_xc=FALSE;
if(checkopt(argc,argv,"-x",z)) {
   flg_xy=FALSE;
   flg_xc=FALSE;
   flg_x=TRUE;
}
if(checkopt(argc,argv,"-y",z)) {
   flg_xy=FALSE;
   flg_xc=FALSE;
   flg_y=TRUE;
}
tekopen();
getxy(&x,&y);
close(_tek4014);
if(flg_tek) printf("tektronix:  x=%d    y=%d\n",x,y);

/* calculating channel and time equivalents */

fp=fopen(ASHBDRY,"r");
leftmargin = frline(fp);
bottommargin = frline(fp);
rightmargin = frline(fp);
topmargin = frline(fp);
_win_flg = frline(fp);
tmin = frline(fp);
tmax = frline(fp);
ymin = frline(fp);
ymax = frline(fp);
_tica = frline(fp);
fclose(fp);

yfak=(topmargin-bottommargin)/(ymax-ymin);
tfak=(rightmargin-leftmargin)/(tmax-tmin);
xoffset= ((- tmin) * tfak) + leftmargin;
yoffset= ((- ymin) * yfak) + bottommargin;

real_t= (x - xoffset)/tfak;
real_y= (y - yoffset)/yfak;
xx= real_t / _tica;

if(flg_xy) printf("data:      x=%f    y=%f\n",real_t,real_y);
if(flg_xc) printf("x-channel = %d\n",xx);
if(flg_x) printf("%d\n",xx);
if(flg_y) printf("%f\n",real_y);
   exit(0);
}


