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

Annotation of OpenXM_contrib/gnuplot/term/fg.trm, Revision 1.1

1.1     ! maekawa     1: /*
        !             2:  * $Id: $
        !             3:  */
        !             4:
        !             5: /* GNUPLOT - fg.trm */
        !             6:
        !             7: /*[
        !             8:  * Copyright 1990 - 1993, 1998
        !             9:  *
        !            10:  * Permission to use, copy, and distribute this software and its
        !            11:  * documentation for any purpose with or without fee is hereby granted,
        !            12:  * provided that the above copyright notice appear in all copies and
        !            13:  * that both that copyright notice and this permission notice appear
        !            14:  * in supporting documentation.
        !            15:  *
        !            16:  * Permission to modify the software is granted, but not the right to
        !            17:  * distribute the complete modified source code.  Modifications are to
        !            18:  * be distributed as patches to the released version.  Permission to
        !            19:  * distribute binaries produced by compiling modified sources is granted,
        !            20:  * provided you
        !            21:  *   1. distribute the corresponding source modifications from the
        !            22:  *    released version in the form of a patch file along with the binaries,
        !            23:  *   2. add special version identification to distinguish your version
        !            24:  *    in addition to the base release version number,
        !            25:  *   3. provide your name and address as the primary contact for the
        !            26:  *    support of your modified version, and
        !            27:  *   4. retain our contact information in regard to use of the base
        !            28:  *    software.
        !            29:  * Permission to distribute the released version of the source code along
        !            30:  * with corresponding source modifications in the form of a patch file is
        !            31:  * granted with same provisions 2 through 4 for binary distributions.
        !            32:  *
        !            33:  * This software is provided "as is" without express or implied warranty
        !            34:  * to the extent permitted by applicable law.
        !            35: ]*/
        !            36:
        !            37: /*
        !            38:  * This file is included by ../term.c.
        !            39:  *
        !            40:  * This terminal driver supports:
        !            41:  *     Under Zortech C
        !            42:  *      egalib, vgalib, vgamono, svga, mcga, cga, hercules, att
        !            43:  *
        !            44:  * AUTHORS
        !            45:  *               Gnuplot for DOS 386/flash graphics
        !            46:  *                               Clifton T. Liu
        !            47:  *
        !            48:  * There is a mailing list for gnuplot users. Note, however, that the
        !            49:  * newsgroup
        !            50:  *     comp.graphics.apps.gnuplot
        !            51:  * is identical to the mailing list (they
        !            52:  * both carry the same set of messages). We prefer that you read the
        !            53:  * messages through that newsgroup, to subscribing to the mailing list.
        !            54:  * (If you can read that newsgroup, and are already on the mailing list,
        !            55:  * please send a message to majordomo@dartmouth.edu, asking to be
        !            56:  * removed from the mailing list.)
        !            57:  *
        !            58:  * The address for mailing to list members is
        !            59:  *        info-gnuplot@dartmouth.edu
        !            60:  * and for mailing administrative requests is
        !            61:  *        majordomo@dartmouth.edu
        !            62:  * The mailing list for bug reports is
        !            63:  *        bug-gnuplot@dartmouth.edu
        !            64:  * The list of those interested in beta-test versions is
        !            65:  *        info-gnuplot-beta@dartmouth.edu
        !            66:  */
        !            67: /* The modifications to allow Gnuplot to compile with Zortech C/C++   */
        !            68: /* 3.1 /Flash Graphics were made by Clifton T. Liu               */
        !            69: /* (cliu@merlin.appmath.columbia.edu)           20 Feb 1993      */
        !            70:
        !            71: /*
        !            72:  * adapted to the new terminal layout by Stefan Bodewig (Dec. 1995)
        !            73:  */
        !            74:
        !            75: #include "driver.h"
        !            76:
        !            77: #ifdef TERM_REGISTER
        !            78: register_term(hercules)
        !            79: register_term(egamono)
        !            80: register_term(egalib)
        !            81: register_term(vgalib)
        !            82: register_term(vgamono)
        !            83: register_term(svgalib)
        !            84: register_term(ssvgalib)
        !            85: #endif
        !            86:
        !            87: #ifdef TERM_PROTO
        !            88: TERM_PUBLIC void PC_text __PROTO((void));
        !            89: TERM_PUBLIC void PC_reset __PROTO((void));
        !            90: TERM_PUBLIC int VGA_text_angle __PROTO((int ang));
        !            91: TERM_PUBLIC int VGA_justify_text __PROTO((enum JUSTIFY mode));
        !            92: TERM_PUBLIC void VGA_init __PROTO((void));
        !            93: TERM_PUBLIC void HERC_graphics __PROTO((void));
        !            94: TERM_PUBLIC void EGAMONO_graphics __PROTO((void));
        !            95: TERM_PUBLIC void EGA_graphics __PROTO((void));
        !            96: TERM_PUBLIC void VGA_graphics __PROTO((void));
        !            97: TERM_PUBLIC void VGAMONO_graphics __PROTO((void));
        !            98: TERM_PUBLIC void SVGA_graphics __PROTO((void));
        !            99: TERM_PUBLIC void SSVGA_graphics __PROTO((void));
        !           100: TERM_PUBLIC void VGA_linetype __PROTO((int linetype));
        !           101: #define HERC_XMAX 720
        !           102: #define HERC_YMAX 348
        !           103:
        !           104: #define HERC_XLAST (HERC_XMAX - 1)
        !           105: #define HERC_YLAST (HERC_YMAX - 1)
        !           106:
        !           107: #define HERC_VCHAR 10
        !           108: #define HERC_HCHAR 8
        !           109: #define HERC_VTIC 5
        !           110: #define HERC_HTIC 5
        !           111:
        !           112:
        !           113:
        !           114: #define EGA_XMAX 640
        !           115: #define EGA_YMAX 350
        !           116:
        !           117: #define EGA_XLAST (EGA_XMAX - 1)
        !           118: #define EGA_YLAST (EGA_YMAX - 1)
        !           119:
        !           120: #define EGA_VCHAR 18
        !           121: #define EGA_HCHAR 8
        !           122: #define EGA_VTIC 5
        !           123: #define EGA_HTIC 5
        !           124:
        !           125:
        !           126: #define VGA_XMAX 640
        !           127: #define VGA_YMAX 480
        !           128:
        !           129: #define VGA_XLAST (VGA_XMAX - 1)
        !           130: #define VGA_YLAST (VGA_YMAX - 1)
        !           131:
        !           132: #define VGA_VCHAR 24
        !           133: #define VGA_HCHAR 8
        !           134: #define VGA_VTIC 5
        !           135: #define VGA_HTIC 5
        !           136:
        !           137:
        !           138: #define SVGA_XMAX 800
        !           139: #define SVGA_YMAX 600
        !           140:
        !           141: #define SVGA_XLAST (SVGA_XMAX - 1)
        !           142: #define SVGA_YLAST (SVGA_YMAX - 1)
        !           143:
        !           144: #define SVGA_VCHAR 24
        !           145: #define SVGA_HCHAR 8
        !           146: #define SVGA_VTIC 5
        !           147: #define SVGA_HTIC 5
        !           148:
        !           149: #define SSVGA_XMAX 1024
        !           150: #define SSVGA_YMAX 768
        !           151:
        !           152: #define SSVGA_XLAST (SSVGA_XMAX - 1)
        !           153: #define SSVGA_YLAST (SSVGA_YMAX - 1)
        !           154:
        !           155: #define SSVGA_VCHAR 24
        !           156: #define SSVGA_HCHAR 8
        !           157: #define SSVGA_VTIC 5
        !           158: #define SSVGA_HTIC 5
        !           159:
        !           160: #endif /* TERM_PROTO */
        !           161:
        !           162: #ifndef TERM_PROTO_ONLY
        !           163: #ifdef TERM_BODY
        !           164:
        !           165: void pause __PROTO((void));
        !           166:
        !           167: #include <fg.h>
        !           168:
        !           169: static int pattern[] ={ 0xffff, 0x0f0f, 0xffff, 0xaaaa, 0x3333, 0x3f3f, 0x0f0f };
        !           170:
        !           171: static int graphics_on = FALSE;
        !           172: int startx, starty;
        !           173: /*
        !           174: int pc_angle;
        !           175: #define PC_VCHAR FNT5X9_VCHAR
        !           176: #define PC_HCHAR FNT5X9_HCHAR
        !           177: */
        !           178: void pause()
        !           179: {                              /* press any key to continue... */
        !           180:     (void) getch();
        !           181: }
        !           182:
        !           183:
        !           184: TERM_PUBLIC void PC_text()
        !           185: {
        !           186:     if (graphics_on) {
        !           187:        graphics_on = FALSE;
        !           188:        pause();
        !           189:     }
        !           190:     fg_term();
        !           191: }
        !           192:
        !           193: TERM_PUBLIC void PC_reset()
        !           194: {
        !           195: }
        !           196:
        !           197:
        !           198:
        !           199: /* all of the FlashGraphics C routines for the different graphics devices
        !           200:  * go here */
        !           201:
        !           202:
        !           203:
        !           204: static int vga256color[] ={ 7, 8, 2, 3, 4, 5, 9, 14, 12, 15, 13, 10, 11, 1, 6 };
        !           205: static int *vgacolor = vga256color;
        !           206: static fg_color_t vga_color;
        !           207: static int text_angle;
        !           208: static fg_line_t line_to_draw;
        !           209:
        !           210: TERM_PUBLIC int VGA_text_angle(ang)
        !           211: int ang;
        !           212: {
        !           213:     text_angle = ang;
        !           214:     return TRUE;
        !           215: }
        !           216:
        !           217: TERM_PUBLIC int VGA_justify_text(mode)
        !           218: enum JUSTIFY mode;
        !           219: {
        !           220:     return FALSE;
        !           221: }
        !           222:
        !           223: TERM_PUBLIC void VGA_init()
        !           224: {
        !           225:     if (fg_init() == FG_NULL) {
        !           226:        fputs("Graphics card not detected.\n", stderr);
        !           227:        exit(EXIT_FAILURE);
        !           228:     }
        !           229: }
        !           230:
        !           231: TERM_PUBLIC void HERC_graphics()
        !           232: {
        !           233:     fg_init_herc();
        !           234:     graphics_on = TRUE;
        !           235: }
        !           236:
        !           237: TERM_PUBLIC void EGAMONO_graphics()
        !           238: {
        !           239:     fg_init_egamono();
        !           240:     graphics_on = TRUE;
        !           241: }
        !           242:
        !           243: TERM_PUBLIC void EGA_graphics()
        !           244: {
        !           245:     fg_init_egaecd();
        !           246:     graphics_on = TRUE;
        !           247: }
        !           248:
        !           249: TERM_PUBLIC void VGA_graphics()
        !           250: {
        !           251:     fg_init_vga12();
        !           252:     graphics_on = TRUE;
        !           253: }
        !           254:
        !           255: TERM_PUBLIC void VGAMONO_graphics()
        !           256: {
        !           257:     fg_init_vga11();
        !           258:     graphics_on = TRUE;
        !           259: }
        !           260:
        !           261: TERM_PUBLIC void SVGA_graphics()
        !           262: {
        !           263:     fg_init_vesa6a();
        !           264:     graphics_on = TRUE;
        !           265: }
        !           266:
        !           267: TERM_PUBLIC void SSVGA_graphics()
        !           268: {
        !           269:     fg_init_vesa5();
        !           270:     graphics_on = TRUE;
        !           271: }
        !           272:
        !           273: TERM_PUBLIC void VGA_linetype(linetype)
        !           274: {
        !           275:     if (linetype >= 13)
        !           276:        linetype %= 13;
        !           277:     vga_color = fg.color[vgacolor[linetype + 2]];
        !           278: }
        !           279:
        !           280: TERM_PUBLIC void VGA_put_text(x, y, str)
        !           281: unsigned int x, y;
        !           282: char *str;
        !           283: {
        !           284:     fg_puts(vga_color, FG_MODE_SET, ~0, text_angle, x, y, str, fg.displaybox);
        !           285: }
        !           286:
        !           287: TERM_PUBLIC void VGA_move(x, y)
        !           288: {
        !           289:     line_to_draw[FG_X1] = x;
        !           290:     line_to_draw[FG_Y1] = y;
        !           291: }
        !           292:
        !           293:
        !           294: TERM_PUBLIC void VGA_vector(x, y)
        !           295: {
        !           296:     line_to_draw[FG_X2] = x;
        !           297:     line_to_draw[FG_Y2] = y;
        !           298:     fg_drawline(vga_color, FG_MODE_SET, ~0, FG_LINE_SOLID, line_to_draw);
        !           299:     line_to_draw[FG_X1] = x;
        !           300:     line_to_draw[FG_Y1] = y;
        !           301: }
        !           302:
        !           303: TERM_PUBLIC void VGA_text()
        !           304: {
        !           305:     if (graphics_on) {
        !           306:        graphics_on = FALSE;
        !           307:        fg_flush();
        !           308:        pause();
        !           309:     }
        !           310:     fg_term();
        !           311: }
        !           312:
        !           313: TERM_PUBLIC void VGA_reset()
        !           314: {
        !           315:     fg_term();
        !           316: }
        !           317:
        !           318: #endif /* TERM_BODY */
        !           319:
        !           320: #ifdef TERM_TABLE
        !           321:
        !           322: TERM_TABLE_START(hercules_driver)
        !           323:     "hercules", "IBM PC/Clone with Hercules graphics board",
        !           324:     HERC_XMAX, HERC_YMAX, HERC_VCHAR, HERC_HCHAR,
        !           325:     HERC_VTIC, HERC_HTIC, options_null, VGA_init, VGA_reset,
        !           326:     VGA_text, null_scale, HERC_graphics, VGA_move, VGA_vector,
        !           327:     VGA_linetype, VGA_put_text, VGA_text_angle,
        !           328:     VGA_justify_text, do_point, do_arrow, set_font_null
        !           329: TERM_TABLE_END(hercules_driver)
        !           330:
        !           331: #undef LAST_TERM
        !           332: #define LAST_TERM hercules_driver
        !           333:
        !           334: TERM_TABLE_START(egamono_driver)
        !           335:     "egamono", "IBM PC/Clone with monochrome EGA graphics board",
        !           336:     EGA_XMAX, EGA_YMAX, EGA_VCHAR, EGA_HCHAR,
        !           337:     EGA_VTIC, EGA_HTIC, options_null, VGA_init, VGA_reset,
        !           338:     VGA_text, null_scale, EGAMONO_graphics, VGA_move, VGA_vector,
        !           339:     VGA_linetype, VGA_put_text, VGA_text_angle,
        !           340:     VGA_justify_text, do_point, do_arrow, set_font_null
        !           341: TERM_TABLE_END(egamono_driver)
        !           342:
        !           343: #undef LAST_TERM
        !           344: #define LAST_TERM egamono_driver
        !           345:
        !           346: TERM_TABLE_START(egalib_driver)
        !           347:     "egalib", "IBM PC/Clone with color EGA graphics board",
        !           348:     EGA_XMAX, EGA_YMAX, EGA_VCHAR, EGA_HCHAR,
        !           349:     EGA_VTIC, EGA_HTIC, options_null, VGA_init, VGA_reset,
        !           350:     VGA_text, null_scale, EGA_graphics, VGA_move, VGA_vector,
        !           351:     VGA_linetype, VGA_put_text, VGA_text_angle,
        !           352:     VGA_justify_text, do_point, do_arrow, set_font_null
        !           353: TERM_TABLE_END(egalib_driver)
        !           354:
        !           355: #undef LAST_TERM
        !           356: #define LAST_TERM egalib_driver
        !           357:
        !           358: TERM_TABLE_START(vgalib_driver)
        !           359:     "vgalib", "IBM PC/Clone with VGA graphics board",
        !           360:     VGA_XMAX, VGA_YMAX, VGA_VCHAR, VGA_HCHAR,
        !           361:     VGA_VTIC, VGA_HTIC, options_null, VGA_init, VGA_reset,
        !           362:     VGA_text, null_scale, VGA_graphics, VGA_move, VGA_vector,
        !           363:     VGA_linetype, VGA_put_text, VGA_text_angle,
        !           364:     VGA_justify_text, do_point, do_arrow, set_font_null
        !           365: TERM_TABLE_END(vgalib_driver)
        !           366:
        !           367: #undef LAST_TERM
        !           368: #define LAST_TERM vgalib_driver
        !           369:
        !           370: TERM_TABLE_START(vgamono_driver)
        !           371:     "vgamono", "IBM PC/Clone with monochrome VGA graphics board",
        !           372:     VGA_XMAX, VGA_YMAX, VGA_VCHAR, VGA_HCHAR,
        !           373:     VGA_VTIC, VGA_HTIC, options_null, VGA_init, VGA_reset,
        !           374:     VGA_text, null_scale, VGAMONO_graphics, VGA_move, VGA_vector,
        !           375:     VGA_linetype, VGA_put_text, VGA_text_angle,
        !           376:     VGA_justify_text, do_point, do_arrow, set_font_null
        !           377: TERM_TABLE_END(vgamono_driver)
        !           378:
        !           379: #undef LAST_TERM
        !           380: #define LAST_TERM vgamono_driver
        !           381:
        !           382: TERM_TABLE_START(svgalib_driver)
        !           383:     "svgalib", "IBM PC/Clone with VESA Super VGA graphics board",
        !           384:     SVGA_XMAX, SVGA_YMAX, SVGA_VCHAR, SVGA_HCHAR,
        !           385:     SVGA_VTIC, SVGA_HTIC, options_null, VGA_init, VGA_reset,
        !           386:     VGA_text, null_scale, SVGA_graphics, VGA_move, VGA_vector,
        !           387:     VGA_linetype, VGA_put_text, VGA_text_angle,
        !           388:     VGA_justify_text, do_point, do_arrow, set_font_null
        !           389: TERM_TABLE_END(svgalib_driver)
        !           390:
        !           391: #undef LAST_TERM
        !           392: #define LAST_TERM svgalib_driver
        !           393:
        !           394: TERM_TABLE_START(ssvgalib_driver)
        !           395:     "ssvgalib", "IBM PC/Clone with VESA 256 color 1024 by 768 super VGA",
        !           396:     SSVGA_XMAX, SSVGA_YMAX, SSVGA_VCHAR, SSVGA_HCHAR,
        !           397:     SSVGA_VTIC, SSVGA_HTIC, options_null, VGA_init, VGA_reset,
        !           398:     VGA_text, null_scale, SSVGA_graphics, VGA_move, VGA_vector,
        !           399:     VGA_linetype, VGA_put_text, VGA_text_angle,
        !           400:     VGA_justify_text, do_point, do_arrow, set_font_null
        !           401: TERM_TABLE_END(ssvgalib_driver)
        !           402:
        !           403: #undef LAST_TERM
        !           404: #define LAST_TERM ssvgalib_driver
        !           405:
        !           406: #endif /* TERM_TABLE */
        !           407: #endif /* TERM_PROTO_ONLY */
        !           408:
        !           409:
        !           410: #ifdef TERM_HELP
        !           411: START_HELP(hercules)
        !           412: "1 hercules",
        !           413: "?commands set terminal hercules",
        !           414: "?set terminal hercules",
        !           415: "?set term hercules",
        !           416: "?terminal hercules",
        !           417: "?term hercules",
        !           418: "?hercules",
        !           419: "?commands set terminal egalib",
        !           420: "?set terminal egalib",
        !           421: "?set term egalib",
        !           422: "?terminal egalib",
        !           423: "?term egalib",
        !           424: "?egalib",
        !           425: "?commands set terminal egamono",
        !           426: "?set terminal egamono",
        !           427: "?set term egamono",
        !           428: "?terminal egamono",
        !           429: "?term egamono",
        !           430: "?egamono",
        !           431: "?commands set terminal vgalib",
        !           432: "?set terminal vgalib",
        !           433: "?set term vgalib",
        !           434: "?terminal vgalib",
        !           435: "?term vgalib",
        !           436: "?vgalib",
        !           437: "?commands set terminal vgamono",
        !           438: "?set terminal vgamono",
        !           439: "?set term vgamono",
        !           440: "?terminal vgamono",
        !           441: "?term vgamono",
        !           442: "?vgamono",
        !           443: "?commands set terminal svgalib",
        !           444: "?set terminal svgalib",
        !           445: "?set term svgalib",
        !           446: "?terminal svgalib",
        !           447: "?term svgalib",
        !           448: "?svgalib",
        !           449: "?commands set terminal ssvgalib",
        !           450: "?set terminal ssvgalib",
        !           451: "?set term ssvgalib",
        !           452: "?terminal ssvgalib",
        !           453: "?term ssvgalib",
        !           454: "?ssvgalib",
        !           455: " These drivers supports PC monitors with autodetected graphics boards.  They",
        !           456: " can be used only when compiled with Zortech C/C++.  None have options."
        !           457: END_HELP(hercules)
        !           458: #endif /* TERM_HELP */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>