[BACK]Return to tek.trm CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gnuplot / term

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>