DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T h

⟦428fd2066⟧ TextFile

    Length: 2625 (0xa41)
    Types: TextFile
    Names: »hpgl.trm«

Derivation

└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
    └─⟦63303ae94⟧ »unix3.14/TeX3.14.tar.Z« 
        └─⟦c58930e5c⟧ 
            └─⟦this⟧ »TeX3.14/TeXcontrib/gnuplot/term/hpgl.trm« 

TextFile

/* GNUPLOT - hpgl.trm */
/*
 * Copyright (C) 1990   
 *
 * 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:
 *  hpgl, hp7580b
 *
 * AUTHORS
 *  Colin Kelley, Thomas Williams, Russell Lang
 * 
 * send your comments or suggestions to (pixar!info-gnuplot@sun.com).
 * 
 */

#define HPGL_XMAX 15200
#define HPGL_YMAX 10000

#define HPGL_XLAST (HPGL_XMAX - 1)
#define HPGL_YLAST (HPGL_XMAX - 1)

/* HPGL_VCHAR, HPGL_HCHAR  are not used */
#define HPGL_VCHAR	(HPGL_YMAX/100*32/10) /* 3.2% */
#define HPGL_HCHAR	(HPGL_XMAX/100*12/10) /* 1.2% */
#define HPGL_VTIC	(HPGL_YMAX/70)		
#define HPGL_HTIC	(HPGL_YMAX/70)		

int HPGL_ang = 0;

HPGL_init()
{
}


HPGL_graphics()
{
	fputs("\033.Y\n",outfile);
/*	       1
	1. enable eavesdropping
*/
	fprintf(outfile,
	"IN;\nSC0,%d,0,%d;\nSR%f,%f;\n",
		HPGL_XMAX,HPGL_YMAX,
		((float)(HPGL_HCHAR)*200/3/HPGL_XMAX),
		((float)(HPGL_VCHAR)*100/2/HPGL_YMAX) );
/*	 1    2             3 
	1. reset to power-up defaults
	2. set SCaling
	3. set character size
*/
	HPGL_ang = 0;
}


HPGL_text()
{
	fputs("PU;\nSP0;\n\033.Z\0",outfile);
/*	       1    2     3
	1. pen up
	2. park pen
	3. disable eavesdropping
*/
}


HPGL_linetype(linetype)
int linetype;
{
/* allow for 6 pens */
	fprintf(outfile,"PU;\nSP%d;\n",(linetype+2)%6+1); 
}


HP75_linetype(linetype)
int linetype;
{
/* allow for 4 pens */
	fprintf(outfile,"PU;\nSP%d;\n",(linetype+2)%4+1); 
}


/* some early HPGL plotters (e.g. HP7220C) require the
 * Pen Up/Down and Pen (move) Absolute commands to be separate
 */
HPGL_move(x,y)
int x,y;
{
	fprintf(outfile,"PU;PA%d,%d;\n",x,y);
}


HPGL_vector(x,y)
int x,y;
{
	fprintf(outfile,"PD;PA%d,%d;\n",x,y);
}


HPGL_put_text(x,y,str)
int x, y;
char *str;
{
	if (HPGL_ang == 1)
		HPGL_move(x + HPGL_VCHAR/4,y);
	else
		HPGL_move(x,y - HPGL_VCHAR/4);
	fprintf(outfile,"LB%s\003\n",str);
}


int HPGL_text_angle(ang)
int ang;
{
	HPGL_ang = ang;
	if (ang == 1)
		/* vertical */
		fprintf(outfile,"DI0,1;\n");
	else
		/* horizontal */
		fprintf(outfile,"DI1,0;\n");
	return TRUE;
}


HPGL_reset()
{
}