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

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

1.1     ! maekawa     1: /*
        !             2:  * $Id: excl.trm,v 1.9 1998/04/14 00:17:41 drd Exp $
        !             3:  *
        !             4:  */
        !             5:
        !             6: /* GNUPLOT - excl.trm */
        !             7:
        !             8: /* Copyright (c) 1992, 1998 by P. Klosowski at NIST.  All Rights Reserved
        !             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:  * This file is included by ../term.c.
        !            37:  *
        !            38:  *
        !            39:  * send your comments or suggestions to (info-gnuplot@dartmouth.edu).
        !            40:  *
        !            41:  */
        !            42:
        !            43: /***
        !            44:   NAME
        !            45:      quic
        !            46:    PURPOSE
        !            47:      QUIC driver for GNUPLOT
        !            48:    NOTES
        !            49:
        !            50:    HISTORY
        !            51:      przemek - Aug 16, 1992: Created.
        !            52:      lars - Nov 30, 1998: Updated to new gnuplot copyright by
        !            53:                           permission from Przemek
        !            54: ***/
        !            55: /*
        !            56: c               *****************************************
        !            57: c               *****************************************
        !            58: c               ******                              *****
        !            59: c               ******   EXCL command definitions   *****
        !            60: c               ******                              *****
        !            61: c               *****************************************
        !            62: c               *****************************************
        !            63: */
        !            64:
        !            65: /*
        !            66:  * adapted to the new terminal layout by Stefan Bodewig (Dec. 1995)
        !            67:  */
        !            68:
        !            69: #include "driver.h"
        !            70:
        !            71: #ifdef TERM_REGISTER
        !            72: register_term(excl)
        !            73: #endif
        !            74:
        !            75: #ifdef TERM_PROTO
        !            76: TERM_PUBLIC void EXCL_init __PROTO((void));
        !            77: TERM_PUBLIC void EXCL_graphics __PROTO((void));
        !            78: TERM_PUBLIC void EXCL_text __PROTO((void));
        !            79: TERM_PUBLIC void EXCL_linetype __PROTO((int linetype));
        !            80: TERM_PUBLIC void EXCL_move __PROTO((unsigned int x, unsigned int y));
        !            81: TERM_PUBLIC void EXCL_vector __PROTO((unsigned int x2, unsigned int y2));
        !            82: TERM_PUBLIC void EXCL_put_text __PROTO((unsigned int x, unsigned int y, char str[]));
        !            83: TERM_PUBLIC void EXCL_reset __PROTO((void));
        !            84:
        !            85: #define EXCL_XMAX 9000
        !            86: #define EXCL_YMAX 6500
        !            87:
        !            88: #define EXCL_XLAST (EXCL_XMAX - 1)
        !            89: #define EXCL_YLAST (EXCL_YMAX - 1)
        !            90:
        !            91: #define EXCL_VCHAR             120
        !            92: #define EXCL_HCHAR             70
        !            93: #define EXCL_VTIC              70
        !            94: #define EXCL_HTIC              70
        !            95: #endif /* TERM_PROTO */
        !            96:
        !            97:
        !            98: #ifndef TERM_PROTO_ONLY
        !            99: #ifdef TERM_BODY
        !           100:
        !           101: /*  Define ansi command headers, NUL character */
        !           102: #define ESC "\033"
        !           103: #define GS  "\035"
        !           104: #define CSI "\033["
        !           105: #define DCS "\033P"
        !           106: #define ST  "\033\\"
        !           107:
        !           108: /*
        !           109: page numbers are given per "Talaris EXCL programmer's reference manual" M292 rev.2
        !           110: NOTE: EXCL coordinate system places (0,0) at upper left corner of the page
        !           111:
        !           112: c EXCL commands for initialization
        !           113:
        !           114: c     TALAMS: set ANSI                                        (p. 162)
        !           115: c     TALMOD: set emulation *** EXCL                          (p. 164)
        !           116: c     TALPGO: set page orient *** landscape                   (p.  81)
        !           117: c     TALFCTL: set paper format *** 8.5x11                    (p.  85)
        !           118: c     TALTBM: set top/bot margins  ** in land mode to full pg (p.  73)
        !           119: c     TALLRM: set left/right margins                          (p.  75)
        !           120: c     PUM:    set units ** units of measure set by TALPRM     (p.  67)
        !           121: c     TALASF: Absorb cr/ff/lf/vt   ** ON                      (p. 182)
        !           122: c     TALPOP: pop controller params                           (p. 168)
        !           123: c     TALPSH: push controller params                          (p. 167)
        !           124: c     TALPRM: set units of measure ** to 1/1000 inch          (p.  64)
        !           125: c     TALGLT: set line type ** solid                          (p. 211)
        !           126: c     TALORG: set page absolute origin ** (0,0) UL corner     (p.  78)
        !           127: c     TALPCW: set page clip window *** for landsc/full page   (p.  84)
        !           128: c     TALGLP: line: **pen7x7mil*draw*smear*glyph112*font5279* (p. 208)
        !           129: c     TALGLPE: ending for TALGLP command, forcing DRAW mode
        !           130: c     TALGBB: bounding box; used only by qdrive               (p. 207)
        !           131: c     TALFPO: Force page out  ** clear bitmap                 (p.  95)
        !           132: c     TALGDW: graphical draw to hor,vert ** abs  coords       (p. 212)
        !           133: c     TALGMV: graphical move to hor,vert ** abs  coords       (p. 213)
        !           134: */
        !           135: #define TALAMS  "\033[0*s"
        !           136: #define TALMOD  "\033[1;0r"
        !           137: #define TALPGO  "\033[1;0p"
        !           138: #define TALFCTL "\033[0;3x"
        !           139: #define TALTBM  "\033[0;8500 v"
        !           140: #define TALLRM  "\033[0;11000v"
        !           141: #define PUM     "\033[11h"
        !           142: #define TALASF  "\033[1 z"
        !           143: #define TALPOP  "\033[*]"
        !           144: #define TALPSH  "\033[*["
        !           145: #define TALPRM  "\033[3y"
        !           146: #define TALGLT  "\033[%s*t"
        !           147: #define TALORG  "\033[0;0o"
        !           148: #define TALCCNT "\033[1;0u"
        !           149: #define TALPCW  "\033[0;8500;11000;0*c"
        !           150: #define TALGLP_init  "\033[7;7;8;1;112;5279*w"
        !           151: #define TALGLP  "\033[%d;%d;8*w"
        !           152: #define TALFPO  "\033[0*F"
        !           153: #define TALGDW "\033[0;%d;%d*d"
        !           154: #define TALGMV "\033[0;%d;%d*m"
        !           155:
        !           156: /*  TALPYL: polyline                                        (p. 222)
        !           157: **        5;0} list of 16-bit signed integers, encoded, mostly relative
        !           158: **        5,1} list of ASCII  absolute coords (if w/o +- signs)(e.g. 315:1222;)
        !           159: */
        !           160:
        !           161: #define TALPYL  "\033P5;1}"
        !           162:
        !           163: TERM_PUBLIC void EXCL_init()
        !           164: {
        !           165:     fprintf(gpoutfile, "%s%s%s%s%s%s",
        !           166:            TALPSH, TALAMS, TALMOD, TALCCNT, TALFCTL, TALASF);
        !           167: /*                ^save state   ^setEXCL       ^PaperSize8.5x11       */
        !           168: /*                       ^setANSI      ^copyCount1     ^absorbCtlChar */
        !           169:     fprintf(gpoutfile, "%s%s%s%s%s%s",
        !           170:            PUM, TALPRM, TALPGO, TALPCW, TALORG, TALGLP_init);
        !           171:     fprintf(gpoutfile, TALGLT, "");
        !           172: /*                ^setUnits  ^landscape    ^OriginZero        ^SolidLine   */
        !           173: /*                    ^Units1/1000" ^pageClip     ^SetLine            */
        !           174: }
        !           175:
        !           176: TERM_PUBLIC void EXCL_graphics()
        !           177: {
        !           178: }
        !           179:
        !           180: TERM_PUBLIC void EXCL_text()
        !           181: {
        !           182:     fputs(TALFPO, gpoutfile);
        !           183:     /*    ^pageout  */
        !           184: }
        !           185:
        !           186:
        !           187: TERM_PUBLIC void EXCL_linetype(linetype)
        !           188: int linetype;
        !           189: {
        !           190: /* excl line widths in mils: 4 is mimimum, but too thin; then
        !           191:    7,10,14,17,20,24,27...
        !           192:    exclpen=MOD(NPEN,8)*7
        !           193:    CSI  exclpen; exclpen; TALGLPE
        !           194: */
        !           195:     static char *type[2 + 9] =
        !           196:     {
        !           197:        "", "40;40", "", "42;42", "14;21",
        !           198:     /*   ....   ----  -- -- --   . . .   */
        !           199:        "", "49;30", "14;21", "", "49;30", "14;21"
        !           200:     /*  same pattern, but thicker..  and thicker       */
        !           201:     };
        !           202:     static int width[2+9] = { 14, 7, 7, 7, 7, 10, 10, 10, 17, 17, 17 };
        !           203:
        !           204:     if (linetype >= 9)
        !           205:        linetype %= 9;
        !           206:
        !           207:     fprintf(gpoutfile, TALGLP, width[linetype + 2], width[linetype + 2]);
        !           208:     /*                 ^width in dots */
        !           209:     fprintf(gpoutfile, TALGLT, type[linetype + 2]);
        !           210:     /*                 ^line type     */
        !           211: }
        !           212:
        !           213:
        !           214: TERM_PUBLIC void EXCL_move(x, y)
        !           215: unsigned int x, y;
        !           216: {
        !           217:     fprintf(gpoutfile, TALGMV, 1000 + x, EXCL_YLAST + 1000 - y);
        !           218:     /*                 ^pen up vector */
        !           219: }
        !           220:
        !           221:
        !           222: TERM_PUBLIC void EXCL_vector(x2, y2)
        !           223: unsigned int x2, y2;
        !           224: {
        !           225:     fprintf(gpoutfile, TALGDW, 1000 + x2, EXCL_YLAST + 1000 - y2);
        !           226:     /*                 ^pen down vector */
        !           227: }
        !           228:
        !           229:
        !           230: TERM_PUBLIC void EXCL_put_text(x, y, str)
        !           231: unsigned int x, y;
        !           232: char str[];
        !           233: {
        !           234:     char ch;
        !           235:     EXCL_move(x, y - EXCL_VCHAR / 3);
        !           236:     ch = *str++;
        !           237:     while (ch != NUL) {
        !           238:        putc(ch, gpoutfile);
        !           239:        ch = *str++;
        !           240:     }
        !           241: }
        !           242:
        !           243: TERM_PUBLIC void EXCL_reset()
        !           244: {
        !           245:     fprintf(gpoutfile, "%s%s", TALFPO, TALPOP);
        !           246:     /*                         ^pageout ^pop  */
        !           247: }
        !           248:
        !           249:
        !           250: #endif /* TERM_BODY */
        !           251:
        !           252: #ifdef TERM_TABLE
        !           253:
        !           254: TERM_TABLE_START(excl_driver)
        !           255:     "excl", "Talaris EXCL Laser printer (also Talaris 1590 and others)",
        !           256:     EXCL_XMAX, EXCL_YMAX, EXCL_VCHAR, EXCL_HCHAR,
        !           257:     EXCL_VTIC, EXCL_HTIC, options_null, EXCL_init, EXCL_reset,
        !           258:     EXCL_text, null_scale, EXCL_graphics, EXCL_move, EXCL_vector,
        !           259:     EXCL_linetype, EXCL_put_text, null_text_angle,
        !           260:     null_justify_text, line_and_point, do_arrow, set_font_null
        !           261: TERM_TABLE_END(excl_driver)
        !           262: #undef LAST_TERM
        !           263: #define LAST_TERM excl_driver
        !           264:
        !           265: #endif /* TERM_TABLE */
        !           266: #endif /* TERM_PROTO_ONLY */
        !           267:
        !           268: #ifdef TERM_HELP
        !           269: START_HELP(excl)
        !           270: "1 excl",
        !           271: "?commands set terminal excl",
        !           272: "?set terminal excl",
        !           273: "?set term excl",
        !           274: "?terminal excl",
        !           275: "?term excl",
        !           276: "?excl",
        !           277: " The `excl` terminal driver supports Talaris printers such as the EXCL Laser",
        !           278: " printer and the 1590.  It has no options."
        !           279: END_HELP(excl)
        !           280: #endif

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