Annotation of OpenXM_contrib/gnuplot/term/v384.trm, Revision 1.1.1.1
1.1 maekawa 1: /*
2: * $Id: v384.trm,v 1.13 1998/04/14 00:18:13 drd Exp $
3: *
4: */
5:
6: /* GNUPLOT - v384.trm */
7:
8: /*[
9: * Copyright 1990 - 1993, 1998
10: *
11: * Permission to use, copy, and distribute this software and its
12: * documentation for any purpose with or without fee is hereby granted,
13: * provided that the above copyright notice appear in all copies and
14: * that both that copyright notice and this permission notice appear
15: * in supporting documentation.
16: *
17: * Permission to modify the software is granted, but not the right to
18: * distribute the complete modified source code. Modifications are to
19: * be distributed as patches to the released version. Permission to
20: * distribute binaries produced by compiling modified sources is granted,
21: * provided you
22: * 1. distribute the corresponding source modifications from the
23: * released version in the form of a patch file along with the binaries,
24: * 2. add special version identification to distinguish your version
25: * in addition to the base release version number,
26: * 3. provide your name and address as the primary contact for the
27: * support of your modified version, and
28: * 4. retain our contact information in regard to use of the base
29: * software.
30: * Permission to distribute the released version of the source code along
31: * with corresponding source modifications in the form of a patch file is
32: * granted with same provisions 2 through 4 for binary distributions.
33: *
34: * This software is provided "as is" without express or implied warranty
35: * to the extent permitted by applicable law.
36: ]*/
37:
38: /*
39: * This file is included by ../term.c.
40: *
41: * This terminal driver supports:
42: * Vectrix 384 - works with tandy color printer as well
43: *
44: * AUTHORS
45: * roland@moncskermit.OZ (Roland Yap)
46: *
47: * send your comments or suggestions to (info-gnuplot@dartmouth.edu).
48: *
49: */
50:
51: /*
52: * Vectrix 384 driver - works with tandy color printer as well
53: * in reverse printing 8 color mode.
54: * This doesn't work on Vectrix 128 because it redefines the
55: * color table. It can be hacked to work on the 128 by changing
56: * the colours but then it will probably not print best. The color
57: * table is purposely designed so that it will print well
58: *
59: */
60:
61: /*
62: * adapted to the new terminal layout by Stefan Bodewig (Dec. 1995)
63: */
64:
65: #include "driver.h"
66:
67: #ifdef TERM_REGISTER
68: register_term(vx384)
69: #endif
70:
71: #ifdef TERM_PROTO
72: TERM_PUBLIC void V384_init __PROTO((void));
73: TERM_PUBLIC void V384_graphics __PROTO((void));
74: TERM_PUBLIC void V384_text __PROTO((void));
75: TERM_PUBLIC void V384_linetype __PROTO((int linetype));
76: TERM_PUBLIC void V384_move __PROTO((unsigned int x, unsigned int y));
77: TERM_PUBLIC void V384_vector __PROTO((unsigned int x, unsigned int y));
78: TERM_PUBLIC void V384_put_text __PROTO((unsigned int x, unsigned int y, char str[]));
79: TERM_PUBLIC void V384_reset __PROTO((void));
80:
81: #define V384_XMAX 630
82: #define V384_YMAX 480
83:
84: #define V384_XLAST (V384_XMAX - 1)
85: #define V384_YLAST (V384_YMAX - 1)
86:
87: #define V384_VCHAR 12
88: #define V384_HCHAR 7
89: #define V384_VTIC 8
90: #define V384_HTIC 7
91: #endif /* TERM_PROTO */
92:
93: #ifndef TERM_PROTO_ONLY
94: #ifdef TERM_BODY
95:
96: TERM_PUBLIC void V384_init()
97: {
98: fprintf(gpoutfile, "%c%c G0 \n\
99: Q 0 8\n\
100: 0 0 0\n\
101: 255 0 0\n\
102: 0 255 0\n\
103: 0 0 255\n\
104: 0 255 255\n\
105: 255 0 255\n\
106: 255 255 0\n\
107: 255 255 255\n",
108: 27, 18);
109: }
110:
111:
112: TERM_PUBLIC void V384_graphics()
113: {
114: fprintf(gpoutfile, "%c%c E0 RE N 65535\n", 27, 18);
115: }
116:
117:
118: TERM_PUBLIC void V384_text()
119: {
120: fprintf(gpoutfile, "%c%c\n", 27, 17);
121: }
122:
123:
124: TERM_PUBLIC void V384_linetype(linetype)
125: int linetype;
126: {
127: static int color[] =
128: {
129: 1 /* red */ ,
130: 2 /* green */ ,
131: 3 /* blue */ ,
132: 4 /* cyan */ ,
133: 5 /* magenta */ ,
134: 6 /* yellow */ , /* not a good color so not in use at the moment */
135: 7 /* white */
136: };
137:
138: if (linetype < 0)
139: linetype = 6;
140: else
141: linetype %= 5;
142:
143: fprintf(gpoutfile, "C %d\n", color[linetype]);
144: }
145:
146:
147: TERM_PUBLIC void V384_move(x, y)
148: unsigned int x, y;
149: {
150: fprintf(gpoutfile, "M %d %d\n", x + 20, y);
151: }
152:
153:
154: TERM_PUBLIC void V384_vector(x, y)
155: unsigned int x, y;
156: {
157: fprintf(gpoutfile, "L %d %d\n", x + 20, y);
158: }
159:
160:
161: TERM_PUBLIC void V384_put_text(x, y, str)
162: unsigned int x, y;
163: char str[];
164: {
165: V384_move(x, y + V384_VCHAR / 2);
166: fprintf(gpoutfile, "$%s\n", str);
167: }
168:
169:
170: TERM_PUBLIC void V384_reset()
171: {
172: }
173:
174: #endif /* TERM_BODY */
175:
176: #ifdef TERM_TABLE
177: TERM_TABLE_START(vx384_driver)
178: "vx384", "Vectrix 384 and Tandy color printer",
179: V384_XMAX, V384_YMAX, V384_VCHAR, V384_HCHAR,
180: V384_VTIC, V384_HTIC, options_null, V384_init, V384_reset,
181: V384_text, null_scale, V384_graphics, V384_move, V384_vector,
182: V384_linetype, V384_put_text, null_text_angle,
183: null_justify_text, do_point, do_arrow, set_font_null
184: TERM_TABLE_END(vx384_driver)
185:
186: #undef LAST_TERM
187: #define LAST_TERM vx384_driver
188:
189: #endif /* TERM_TABLE */
190: #endif /* TERM_PROTO_ONLY */
191:
192: #ifdef TERM_HELP
193: START_HELP(vx384)
194: "1 vx384",
195: "?commands set terminal vx384",
196: "?set terminal vx384",
197: "?set term vx384",
198: "?terminal vx384",
199: "?term vx384",
200: "?vx384",
201: " The `vx384` terminal driver supports the Vectrix 384 and Tandy color",
202: " printers. It has no options."
203: END_HELP(vx384)
204: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>