Annotation of OpenXM_contrib/gnuplot/term/tek.trm, Revision 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>