Annotation of OpenXM_contrib/gnuplot/term/tek.trm, Revision 1.1.1.1
1.1 maekawa 1: /*
2: * $Id: tek.trm,v 1.20 1998/04/14 00:18:07 drd Exp $
3: *
4: */
5:
6: /* GNUPLOT - tek.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: * tek40xx, bitgraph, kermit_color_tek40xx, kermit_mono_tek40xx, selanar
43: * ln03plus
44: *
45: * AUTHORS
46: * Colin Kelley, Thomas Williams, Russell Lang
47: *
48: * send your comments or suggestions to (info-gnuplot@dartmouth.edu).
49: *
50: */
51:
52: /*
53: * Modified June 1995 Ian MacPhedran to support newterm format
54: */
55: #define TEK
56: #define CTEK
57: #define VTTEK
58: #define KERMIT
59: #define SELANAR
60: #define BITGRAPH
61:
62: #include "driver.h"
63:
64: #ifdef TERM_REGISTER
65: register_term(tek40)
66: #ifdef VTTEK
67: register_term(vttek)
68: #endif
69: #ifdef KERMIT
70: register_term(kc_tek40)
71: register_term(km_tek40)
72: #endif
73: #ifdef SELANAR
74: register_term(selanar)
75: #endif
76: #ifdef BITGRAPH
77: register_term(bitgraph)
78: #endif
79: #endif /* TERM_REGISTER */
80:
81: #ifdef TERM_PROTO
82: TERM_PUBLIC void TEK40init __PROTO((void));
83: TERM_PUBLIC void TEK40graphics __PROTO((void));
84: TERM_PUBLIC void TEK40text __PROTO((void));
85: TERM_PUBLIC void TEK40linetype __PROTO((int linetype));
86: TERM_PUBLIC void TEK40move __PROTO((unsigned int x, unsigned int y));
87: TERM_PUBLIC void TEK40vector __PROTO((unsigned int x, unsigned int y));
88: TERM_PUBLIC void TEK40put_text __PROTO((unsigned int x, unsigned int y, char str[]));
89: TERM_PUBLIC void TEK40reset __PROTO((void));
90: TERM_PUBLIC void BG_text __PROTO((void));
91: TERM_PUBLIC void BG_put_text __PROTO((unsigned int x, unsigned int y, char str[]));
92: TERM_PUBLIC void KTEK40graphics __PROTO((void));
93: TERM_PUBLIC void KTEK40Ctext __PROTO((void));
94: TERM_PUBLIC void KTEK40Clinetype __PROTO((int linetype));
95: TERM_PUBLIC void KTEK40Mlinetype __PROTO((int linetype));
96: TERM_PUBLIC void KTEK40reset __PROTO((void));
97: TERM_PUBLIC void SEL_init __PROTO((void));
98: TERM_PUBLIC void SEL_graphics __PROTO((void));
99: TERM_PUBLIC void SEL_text __PROTO((void));
100: TERM_PUBLIC void SEL_reset __PROTO((void));
101: TERM_PUBLIC void VTTEK40init __PROTO((void));
102: TERM_PUBLIC void VTTEK40reset __PROTO((void));
103: TERM_PUBLIC void VTTEK40linetype __PROTO((int linetype));
104: TERM_PUBLIC void VTTEK40put_text __PROTO((unsigned int x, unsigned int y, char str[]));
105: TERM_PUBLIC void CTEK_linetype __PROTO((int linetype));
106: TERM_PUBLIC void CTEK_move __PROTO((unsigned int x, unsigned int y));
107: TERM_PUBLIC void CTEK_vector __PROTO((unsigned int x, unsigned int y));
108:
109: #endif /* TERM_PROTO */
110:
111: #ifndef TERM_PROTO_ONLY
112: #ifdef TERM_BODY
113:
114: #ifdef TEK
115:
116: #define TEK40XMAX 1024
117: #define TEK40YMAX 780
118:
119: #define TEK40XLAST (TEK40XMAX - 1)
120: #define TEK40YLAST (TEK40YMAX - 1)
121:
122: #define TEK40VCHAR 25
123: #define TEK40HCHAR 14
124: #define TEK40VTIC 11
125: #define TEK40HTIC 11
126:
127: #define HX 0x20 /* bit pattern to OR over 5-bit data */
128: #define HY 0x20
129: #define LX 0x40
130: #define LY 0x60
131:
132: #define LOWER5 31
133: #define UPPER5 (31<<5)
134:
135:
136: TERM_PUBLIC void TEK40init()
137: {
138: }
139:
140:
141: TERM_PUBLIC void TEK40graphics()
142: {
143: #ifdef VMS
144: term_pasthru();
145: #endif /* VMS */
146: fputs("\033\014", gpoutfile);
147: /* 1
148: 1. clear screen
149: */
150: (void) fflush(gpoutfile);
151: sleep(1);
152: /* sleep 1 second to allow screen time to clear on real
153: tektronix terminals */
154: }
155:
156: TERM_PUBLIC void TEK40text()
157: {
158: #ifdef VMS
159: (void) fflush(gpoutfile); /* finish the graphics */
160: #endif
161: TEK40move(0, 12);
162: fputs("\037", gpoutfile);
163: /* 1
164: 1. into alphanumerics
165: */
166: #ifdef VMS
167: term_nopasthru();
168: #endif /* VMS */
169: }
170:
171:
172: TERM_PUBLIC void TEK40linetype(linetype)
173: int linetype;
174: {
175: }
176:
177: TERM_PUBLIC void TEK40move(x, y)
178: unsigned int x, y;
179: {
180: (void) putc('\035', gpoutfile); /* into graphics */
181: TEK40vector(x, y);
182: }
183:
184:
185: TERM_PUBLIC void TEK40vector(x, y)
186: unsigned int x, y;
187: {
188: (void) putc((HY | (y & UPPER5) >> 5), gpoutfile);
189: (void) putc((LY | (y & LOWER5)), gpoutfile);
190: (void) putc((HX | (x & UPPER5) >> 5), gpoutfile);
191: (void) putc((LX | (x & LOWER5)), gpoutfile);
192: }
193:
194:
195: TERM_PUBLIC void TEK40put_text(x, y, str)
196: unsigned int x, y;
197: char str[];
198: {
199: TEK40move(x, y - 11);
200: fprintf(gpoutfile, "\037%s\n", str);
201: }
202:
203:
204: TERM_PUBLIC void TEK40reset()
205: {
206: }
207:
208: #endif /* TEK */
209:
210:
211:
212: /* thanks to dukecdu!evs (Ed Simpson) for the BBN BitGraph driver */
213:
214: #ifdef BITGRAPH
215:
216: #define BG_XMAX 768 /* width of plot area */
217: #define BG_YMAX 768 /* height of plot area */
218: #define BG_SCREEN_HEIGHT 1024 /* full screen height */
219:
220: #define BG_XLAST (BG_XMAX - 1)
221: #define BG_YLAST (BG_YMAX - 1)
222:
223: #define BG_VCHAR 16
224: #define BG_HCHAR 9
225: #define BG_VTIC 8
226: #define BG_HTIC 8
227:
228:
229: #define BG_init TEK40init
230:
231: #define BG_graphics TEK40graphics
232:
233:
234: #define BG_linetype TEK40linetype
235:
236: #define BG_move TEK40move
237:
238: #define BG_vector TEK40vector
239:
240:
241: TERM_PUBLIC void BG_text()
242: {
243: #ifdef VMS
244: (void) fflush(gpoutfile); /* finish the graphics */
245: #endif
246: BG_move(0, BG_SCREEN_HEIGHT - 2 * BG_VCHAR);
247: fputs("\037", gpoutfile);
248: /* 1
249: 1. into alphanumerics
250: */
251: }
252:
253:
254: TERM_PUBLIC void BG_put_text(x, y, str)
255: unsigned int x, y;
256: char str[];
257: {
258: BG_move(x, y - 11);
259: fprintf(gpoutfile, "\037%s\n", str);
260: }
261:
262:
263: #define BG_reset TEK40reset
264:
265: #endif /* BITGRAPH */
266:
267:
268: /* Color and Monochrome specials for the MS-DOS Kermit Tektronix Emulator
269: by Russell Lang, eln272v@monu1.cc.monash.oz */
270:
271: #ifdef KERMIT
272:
273: #define KTEK40HCHAR 13
274:
275: TERM_PUBLIC void KTEK40graphics()
276: {
277: #ifdef VMS
278: term_mode_tek();
279: term_pasthru();
280: #endif /* VMS */
281: fputs("\033\014", gpoutfile);
282: /* 1
283: 1. clear screen
284: */
285: /* kermit tektronix emulation doesn't need to wait */
286: }
287:
288: TERM_PUBLIC void KTEK40Ctext()
289: {
290: TEK40text();
291: KTEK40Clinetype(0); /* change to green */
292: #ifdef VMS
293: term_nopasthru();
294: #endif /* VMS */
295: }
296:
297: /* special color linetypes for MS-DOS Kermit v2.31 tektronix emulator */
298: /* 0 = normal, 1 = bright
299: foreground color (30-37) = 30 + colors
300: where colors are 1=red, 2=green, 4=blue */
301: static char *kermit_color[15] =
302: {"\033[0;37m", "\033[1;30m",
303: "\033[0;32m", "\033[0;36m", "\033[0;31m", "\033[0;35m",
304: "\033[1;34m", "\033[1;33m", "\033[1;31m", "\033[1;37m",
305: "\033[1;35m", "\033[1;32m", "\033[1;36m", "\033[0;34m",
306: "\033[0;33m"};
307:
308: TERM_PUBLIC void KTEK40Clinetype(linetype)
309: int linetype;
310: {
311: if (linetype >= 13)
312: linetype %= 13;
313: fprintf(gpoutfile, "%s", kermit_color[linetype + 2]);
314: }
315:
316:
317: /* linetypes for MS-DOS Kermit v2.30 tektronix emulator */
318: /* `=solid, a=fine dots, b=short dashes, c=dash dot,
319: d=long dash dot, e=dash dot dot */
320: static char *kerm_linetype = "`a`abcde";
321:
322: TERM_PUBLIC void KTEK40Mlinetype(linetype)
323: int linetype;
324: {
325: if (linetype >= 6)
326: linetype %= 6;
327: fprintf(gpoutfile, "\033%c", kerm_linetype[linetype + 2]);
328: }
329:
330: TERM_PUBLIC void KTEK40reset()
331: {
332: fputs("\030\n", gpoutfile); /* turn off Tek emulation */
333: #ifdef VMS
334: term_mode_native();
335: #endif /* VMS */
336: }
337:
338: #endif /* KERMIT */
339:
340:
341: /* thanks to sask!macphed (Geoff Coleman and Ian Macphedran) for the
342: Selanar driver */
343:
344: #ifdef SELANAR
345:
346: TERM_PUBLIC void SEL_init()
347: {
348: fputs("\033\062", gpoutfile);
349: /* 1
350: 1. set to ansi mode
351: */
352: }
353:
354:
355: TERM_PUBLIC void SEL_graphics()
356: {
357: fputs("\033[H\033[J\033\061\033\014", gpoutfile);
358: /* 1 2 3
359: 1. clear ANSI screen
360: 2. set to TEK mode
361: 3. clear screen
362: */
363: #ifdef VMS
364: term_pasthru();
365: #endif /* VMS */
366: }
367:
368:
369: TERM_PUBLIC void SEL_text()
370: {
371: #ifdef VMS
372: (void) fflush(gpoutfile); /* finish the graphics */
373: #endif
374: TEK40move(0, 12);
375: fputs("\033\062", gpoutfile);
376: /* 1
377: 1. into ANSI mode
378: */
379: #ifdef VMS
380: term_nopasthru();
381: #endif /* VMS */
382: }
383:
384: TERM_PUBLIC void SEL_reset()
385: {
386: fputs("\033\061\033\012\033\062\033[H\033[J", gpoutfile);
387: /* 1 2 3 4
388: 1 set tek mode
389: 2 clear screen
390: 3 set ansi mode
391: 4 clear screen
392: */
393: }
394:
395: #endif /* SELANAR */
396:
397: #ifdef VTTEK
398:
399: TERM_PUBLIC void VTTEK40init()
400: {
401: fputs("\033[?38h", gpoutfile);
402: fflush(gpoutfile);
403: sleep(1);
404: /* sleep 1 second to allow screen time to clear on some terminals */
405: #ifdef VMS
406: term_mode_tek();
407: #endif /* VMS */
408: }
409:
410: TERM_PUBLIC void VTTEK40reset()
411: {
412: fputs("\033[?38l", gpoutfile);
413: fflush(gpoutfile);
414: sleep(1);
415: /* sleep 1 second to allow screen time to clear on some terminals */
416: #ifdef VMS
417: term_mode_native();
418: #endif /* VMS */
419: }
420:
421: /* linetypes for VT-type terminals in tektronix emulator mode */
422: /* `=solid, a=fine dots, b=short dashes, c=dash dot,
423: d=long dash dot, h=bold solid, i=bold fine dots, j=bold short dashes,
424: k=bold dash dot, l=bold long dash dot */
425: static char *vt_linetype = "`a`abcdhijkl";
426: static int last_vt_linetype = 0;
427: TERM_PUBLIC void VTTEK40linetype(linetype)
428: int linetype;
429: {
430: if (linetype >= 10)
431: linetype %= 10;
432: fprintf(gpoutfile, "\033%c", vt_linetype[linetype + 2]);
433: last_vt_linetype = linetype;
434: }
435:
436: TERM_PUBLIC void VTTEK40put_text(x, y, str)
437: unsigned int x, y;
438: char str[];
439: {
440: int linetype;
441: linetype = last_vt_linetype;
442: VTTEK40linetype(0);
443: TEK40put_text(x, y, str);
444: VTTEK40linetype(linetype);
445: }
446:
447: #endif /* VTTEK */
448:
449: #ifdef LN03P
450:
451: TERM_PUBLIC void LN03Pinit()
452: {
453: fputs("\033[?38h", gpoutfile);
454: }
455:
456: TERM_PUBLIC void LN03Preset()
457: {
458: fputs("\033[?38l", gpoutfile);
459: }
460:
461: #endif /* LN03P */
462:
463:
464:
465: /* tek40xx (monochrome) with linetype support by Jay I. Choe */
466: #ifdef CTEK
467:
468: /*#define ABS(A) (((A)>=0)? (A):-(A))*/
469: #define SIGN(A) (((A) >= 0)? 1:-1)
470:
471: static void CT_solid_vector __PROTO((int x, int y));
472: static void CT_draw_vpoint __PROTO((int x, int y, int last));
473: static void CT_pattern_vector __PROTO((int x1, int y1));
474:
475: /* CT_lines are line types defined as bit pattern */
476: static unsigned long CT_lines[] =
477: {0xffffffff, /* solid line */
478: 0x000fffff, /* long dash */
479: 0x00ff00ff, /* short dash */
480: 0x00f00fff, /* dash-dot */
481: 0x00f07fff, /* long dash - dot */
482: 0x07070707,
483: 0x07ff07ff,
484: 0x070707ff};
485:
486: /* current line pattern */
487: static unsigned long *CT_pattern = &CT_lines[0];
488:
489: /* we need to keep track of tek cursor location */
490: static int CT_last_linetype = 0, CT_last_x, CT_last_y;
491:
492: TERM_PUBLIC void CTEK_linetype(linetype)
493: int linetype;
494: {
495: if (linetype < 0)
496: linetype = 0;
497: linetype %= (sizeof(CT_lines) / sizeof(unsigned long));
498: CT_pattern = &CT_lines[linetype];
499: CT_last_linetype = linetype;
500: }
501:
502: TERM_PUBLIC void CTEK_move(x, y)
503: unsigned int x;
504: unsigned int y;
505: {
506: TEK40move(x, y);
507: CT_last_x = x;
508: CT_last_y = y;
509: }
510:
511: static void CT_solid_vector(x, y)
512: int x;
513: int y;
514: {
515: TEK40vector(x, y);
516: CT_last_x = x;
517: CT_last_y = y;
518: }
519:
520: /*
521: simulate pixel draw using tek vector draw.
522: delays actual line drawing until maximum line segment is determined
523: (or first/last point is defined)
524: */
525: static int CT_penon = 0; /* is Pen on? */
526:
527: static void CT_draw_vpoint(x, y, last)
528: int x;
529: int y;
530: int last;
531: {
532: static int xx0, yy0, xx1, yy1;
533:
534: if ((*CT_pattern) & 1) {
535: if (CT_penon) { /* This point is a continuation of current line */
536: xx1 = x;
537: yy1 = y;
538: } else { /* beginning of new line */
539: xx0 = xx1 = x;
540: yy0 = yy1 = y;
541: CT_penon = 1;
542: }
543: *CT_pattern = ((*CT_pattern) >> 1) | 0x80000000; /* rotate the pattern */
544: if (last) { /* draw the line anyway if this is the last point */
545: TEK40move(xx0, yy0);
546: TEK40vector(xx1, yy1);
547: CT_penon = 0;
548: }
549: } else { /* do not draw this pixel */
550: if (CT_penon) { /* last line segment ended at the previous pixel. */
551: /* draw the line */
552: TEK40move(xx0, yy0);
553: TEK40vector(xx1, yy1);
554: CT_penon = 0;
555: }
556: *CT_pattern = (*CT_pattern) >> 1; /* rotate the current pattern */
557: }
558: }
559:
560: /*
561: draw vector line with pattern
562: */
563:
564: static void CT_pattern_vector(x1, y1)
565: int x1;
566: int y1;
567: {
568: int op; /* order parameter */
569: int x0 = CT_last_x;
570: int y0 = CT_last_y;
571: int dx = x1 - x0;
572: int dy = y1 - y0;
573: int ax = ABS(dx) << 1;
574: int ay = ABS(dy) << 1;
575: int sx = SIGN(dx);
576: int sy = SIGN(dy);
577:
578: if (ax >= ay) {
579: for (op = ay - (ax >> 1); x0 != x1; x0 += sx, op += ay) {
580: CT_draw_vpoint(x0, y0, 0);
581: if (op > 0 || (op == 0 && sx == 1)) {
582: op -= ax;
583: y0 += sy;
584: }
585: }
586: } else { /* ax < ay */
587: for (op = ax - (ay >> 1); y0 != y1; y0 += sy, op += ax) {
588: CT_draw_vpoint(x0, y0, 0);
589: if (op > 0 || (op == 0 && sy == 1)) {
590: op -= ay;
591: x0 += sx;
592: }
593: }
594: }
595: CT_draw_vpoint(x0, y0, 1); /* last point */
596: CT_last_x = x1;
597: CT_last_y = y1;
598: }
599:
600: TERM_PUBLIC void CTEK_vector(x, y)
601: unsigned int x;
602: unsigned int y;
603: {
604: if (CT_last_linetype <= 0)
605: CT_solid_vector(x, y);
606: else
607: CT_pattern_vector(x, y);
608: }
609:
610: #endif /* CTEK */
611: #endif /* TERM_BODY */
612:
613: #ifdef TERM_TABLE
614:
615: TERM_TABLE_START(tek40_driver)
616: #ifndef CTEK
617: "tek40xx", "Tektronix 4010 and others; most TEK emulators",
618: TEK40XMAX, TEK40YMAX, TEK40VCHAR, TEK40HCHAR,
619: TEK40VTIC, TEK40HTIC, options_null, TEK40init, TEK40reset,
620: TEK40text, null_scale, TEK40graphics, TEK40move, TEK40vector,
621: TEK40linetype, TEK40put_text, null_text_angle,
622: null_justify_text, line_and_point, do_arrow, set_font_null
623: #else
624: "tek40xx", "Tektronix 4010 and others; most TEK emulators",
625: TEK40XMAX, TEK40YMAX, TEK40VCHAR, TEK40HCHAR,
626: TEK40VTIC, TEK40HTIC, options_null, TEK40init, TEK40reset,
627: TEK40text, null_scale, TEK40graphics, CTEK_move, CTEK_vector,
628: CTEK_linetype, TEK40put_text, null_text_angle,
629: null_justify_text, line_and_point, do_arrow, set_font_null
630: #endif /* CTEK */
631: TERM_TABLE_END(tek40_driver)
632:
633: #undef LAST_TERM
634: #define LAST_TERM tek40_driver
635:
636: #ifdef VTTEK
637: TERM_TABLE_START(vttek_driver)
638: "vttek", "VT-like tek40xx terminal emulator",
639: TEK40XMAX, TEK40YMAX, TEK40VCHAR, TEK40HCHAR,
640: TEK40VTIC, TEK40HTIC, options_null, VTTEK40init, VTTEK40reset,
641: TEK40text, null_scale, TEK40graphics, TEK40move, TEK40vector,
642: VTTEK40linetype, VTTEK40put_text, null_text_angle,
643: null_justify_text, line_and_point, do_arrow, set_font_null
644: TERM_TABLE_END(vttek_driver)
645:
646: #undef LAST_TERM
647: #define LAST_TERM vttek_driver
648:
649: #endif /* VTTEK */
650:
651: #ifdef KERMIT
652: TERM_TABLE_START(kc_tek40_driver)
653: "kc_tek40xx", "MS-DOS Kermit Tek4010 terminal emulator - color",
654: TEK40XMAX, TEK40YMAX, TEK40VCHAR, KTEK40HCHAR,
655: TEK40VTIC, TEK40HTIC, options_null, TEK40init, KTEK40reset,
656: KTEK40Ctext, null_scale, KTEK40graphics, TEK40move, TEK40vector,
657: KTEK40Clinetype, TEK40put_text, null_text_angle,
658: null_justify_text, do_point, do_arrow, set_font_null
659: TERM_TABLE_END(kc_tek40_driver)
660:
661: #undef LAST_TERM
662: #define LAST_TERM kc_tek40_driver
663:
664: TERM_TABLE_START(km_tek40_driver)
665: "km_tek40xx", "MS-DOS Kermit Tek4010 terminal emulator - monochrome",
666: TEK40XMAX, TEK40YMAX, TEK40VCHAR, KTEK40HCHAR,
667: TEK40VTIC, TEK40HTIC, options_null, TEK40init, KTEK40reset,
668: TEK40text, null_scale, KTEK40graphics, TEK40move, TEK40vector,
669: KTEK40Mlinetype, TEK40put_text, null_text_angle,
670: null_justify_text, line_and_point, do_arrow, set_font_null
671: TERM_TABLE_END(km_tek40_driver)
672:
673: #undef LAST_TERM
674: #define LAST_TERM km_tek40_driver
675:
676: #endif /* KERMIT */
677:
678: #ifdef SELANAR
679: TERM_TABLE_START(selanar_driver)
680: "selanar", "Selanar",
681: TEK40XMAX, TEK40YMAX, TEK40VCHAR, TEK40HCHAR,
682: TEK40VTIC, TEK40HTIC, options_null, SEL_init, SEL_reset,
683: SEL_text, null_scale, SEL_graphics, TEK40move, TEK40vector,
684: TEK40linetype, TEK40put_text, null_text_angle,
685: null_justify_text, line_and_point, do_arrow, set_font_null
686: TERM_TABLE_END(selanar_driver)
687:
688: #undef LAST_TERM
689: #define LAST_TERM selanar_driver
690:
691: #endif /* SELANAR */
692:
693: #ifdef BITGRAPH
694: TERM_TABLE_START(bitgraph_driver)
695: "bitgraph", "BBN Bitgraph Terminal",
696: BG_XMAX, BG_YMAX, BG_VCHAR, BG_HCHAR,
697: BG_VTIC, BG_HTIC, options_null, BG_init, BG_reset,
698: BG_text, null_scale, BG_graphics, BG_move, BG_vector,
699: BG_linetype, BG_put_text, null_text_angle,
700: null_justify_text, line_and_point, do_arrow, set_font_null
701: TERM_TABLE_END(bitgraph_driver)
702:
703: #undef LAST_TERM
704: #define LAST_TERM bitgraph_driver
705:
706: #endif /* BITGRAPH */
707:
708: #endif /* TERM_TABLE */
709:
710: #endif /* TERM_PROTO_ONLY */
711:
712: #ifdef TERM_HELP
713: START_HELP(tek40)
714: "1 tek40",
715: "?commands set terminal tek40xx",
716: "?set terminal tek40xx",
717: "?set term tek40xx",
718: "?terminal tek40xx",
719: "?terminal tek40xx",
720: "?tek40",
721: "?commands set terminal vttek",
722: "?set terminal vttek",
723: "?set term vttek",
724: "?terminal vttek",
725: "?term vttek",
726: "?vttek",
727: "?commands set terminal kc-tek40xx",
728: "?set terminal kc-tek40xx",
729: "?set term kc-tek40xx",
730: "?terminal kc-tek40xx",
731: "?term kc-tek40xx",
732: "?kc-tek40xx",
733: "?commands set terminal km-tek40xx",
734: "?set terminal km-tek40xx",
735: "?set term km-tek40xx",
736: "?terminal km-tek40xx",
737: "?term km-tek40xx",
738: "?km-tek40xx",
739: "?commands set terminal selanar",
740: "?set terminal selanar",
741: "?set term selanar",
742: "?terminal selanar",
743: "?term selanar",
744: "?selanar",
745: "?commands set terminal bitgraph",
746: "?set terminal bitgraph",
747: "?set term bitgraph",
748: "?terminal bitgraph",
749: "?term bitgraph",
750: "?bitgraph",
751: " This family of terminal drivers supports a variety of VT-like terminals.",
752: " `tek40xx` supports Tektronix 4010 and others as well as most TEK emulators;",
753: " `vttek` supports VT-like tek40xx terminal emulators; `kc-tek40xx` supports",
754: " MS-DOS Kermit Tek4010 terminal emulators in color: `km-tek40xx` supports them",
755: " in monochrome; `selanar` supports Selanar graphics; and `bitgraph` supports",
756: " BBN Bitgraph terminals. None have any options."
757: END_HELP(tek40)
758: #endif /* TERM_HELP */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>