/*
 * $Id: dxy.trm,v 3.26 92/03/24 22:34:50 woo Exp Locker: woo $
 */

/* GNUPLOT - dxy.trm */
/*
 * Copyright (C) 1990, 1991, 1992   
 *
 * Permission to use, copy, and distribute this software and its
 * documentation for any purpose with or without fee is hereby granted, 
 * provided that the above copyright notice appear in all copies and 
 * that both that copyright notice and this permission notice appear 
 * in supporting documentation.
 *
 * Permission to modify the software is granted, but not the right to
 * distribute the modified code.  Modifications are to be distributed 
 * as patches to released version.
 *  
 * This software  is provided "as is" without express or implied warranty.
 * 
 * This file is included by ../term.c.
 *
 * This terminal driver supports:
 *  Roland DXY800A plotter 
 *
 * AUTHORS
 *  Martin Yii, eln557h@monu3.OZ
 *  Further modified Jan 1990 by Russell Lang, rjl@monu1.cc.monash.oz
 * 
 * send your comments or suggestions to (info-gnuplot@ames.arc.nasa.gov).
 * 
 */

#define DXY_XMAX 2470
#define DXY_YMAX 1700

#define DXY_XLAST (DXY_XMAX - 1)
#define DXY_YLAST (DXY_XMAX - 1)

#define DXY_VCHAR	(56)	/* double actual height of characters */
#define DXY_HCHAR	(28)	/* actual width including spacing */
#define DXY_VTIC	(28)		
#define DXY_HTIC	(28)		

int dxy_angle = 0;

DXY_init()
{
/*
	No initialisation sequences for DXY 800A
*/
}


DXY_graphics()
{
	/* HOME, Character size 3 */
	fprintf(outfile,"H\nS3\n");
}


DXY_text()
{
/*
	No sequences needed
*/
}


DXY_linetype(linetype)
int linetype;
{
    /* select pen */
	fprintf(outfile,"J%d\n",(linetype+2)%8+1);
	switch(linetype) {
	   case -1 :  /* use dotted line for axis */
	   	    fprintf(outfile,"L1\nB50\n");
			break;
	   default :  /* use solid line for all others */
			fprintf(outfile,"L0\n");
	    		break;
   	}
}


DXY_move(x,y)
int x,y;
{
	fprintf(outfile,"M%d,%d\n",x,y);
}


DXY_vector(x,y)
int x,y;
{
	fprintf(outfile,"D%d,%d\n",x,y);
}


DXY_put_text(x,y,str)
int x, y;
char *str;
{
	if (dxy_angle == 1 ) 
		/* vertical */
		DXY_move(x + DXY_VCHAR/4,y);
	else
		/* horiz */
		DXY_move(x,y - DXY_VCHAR/4);
	fprintf(outfile,"P%s\n",str);
}


int DXY_text_angle(ang)
int ang;
{
	dxy_angle = ang;
	fprintf(outfile,"Q%d\n",ang);
	return TRUE;
}


DXY_reset()
{
	/* Home pen */
	fprintf(outfile,"H\n");
}

