Artifact 9455a721f994a952241d6490a3c812b14c982239cb6379e8d4875ee89460c3ee:
- File
r34.1/plot/term/tek.trm
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 6809) [annotate] [blame] [check-ins using] [more...]
/* * $Id: tek.trm,v 3.26 92/03/24 22:35:45 woo Exp Locker: woo $ */ /* GNUPLOT - tek.trm */ /* * Copyright (C) 1990, 1991, 1992 * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted, but not the right to * distribute the modified code. Modifications are to be distributed * as patches to released version. * * This software is provided "as is" without express or implied warranty. * * This file is included by ../term.c. * * This terminal driver supports: * tek40xx, bitgraph, kermit_color_tek40xx, kermit_mono_tek40xx, selanar * ln03plus * * AUTHORS * Colin Kelley, Thomas Williams, Russell Lang * * send your comments or suggestions to (info-gnuplot@ames.arc.nasa.gov). * */ #ifdef TEK #define TEK40XMAX 1024 #define TEK40YMAX 780 #define TEK40XLAST (TEK40XMAX - 1) #define TEK40YLAST (TEK40YMAX - 1) #define TEK40VCHAR 25 #define TEK40HCHAR 14 #define TEK40VTIC 11 #define TEK40HTIC 11 #define HX 0x20 /* bit pattern to OR over 5-bit data */ #define HY 0x20 #define LX 0x40 #define LY 0x60 #define LOWER5 31 #define UPPER5 (31<<5) TEK40init() { } TEK40graphics() { #ifdef vms term_pasthru(); #endif /* vms */ fprintf(outfile,"\033\014"); /* 1 1. clear screen */ (void) fflush(outfile); sleep(1); /* sleep 1 second to allow screen time to clear on real tektronix terminals */ } TEK40text() { TEK40move(0,12); fprintf(outfile,"\037"); /* 1 1. into alphanumerics */ #ifdef vms term_nopasthru(); #endif /* vms */ } TEK40linetype(linetype) int linetype; { } TEK40move(x,y) unsigned int x,y; { (void) putc('\035', outfile); /* into graphics */ TEK40vector(x,y); } TEK40vector(x,y) unsigned int x,y; { (void) putc((HY | (y & UPPER5)>>5), outfile); (void) putc((LY | (y & LOWER5)), outfile); (void) putc((HX | (x & UPPER5)>>5), outfile); (void) putc((LX | (x & LOWER5)), outfile); } TEK40put_text(x,y,str) unsigned int x,y; char str[]; { TEK40move(x,y-11); fprintf(outfile,"\037%s\n",str); } TEK40reset() { } #endif /* TEK */ /* thanks to dukecdu!evs (Ed Simpson) for the BBN BitGraph driver */ #ifdef BITGRAPH #define BG_XMAX 768 /* width of plot area */ #define BG_YMAX 768 /* height of plot area */ #define BG_SCREEN_HEIGHT 1024 /* full screen height */ #define BG_XLAST (BG_XMAX - 1) #define BG_YLAST (BG_YMAX - 1) #define BG_VCHAR 16 #define BG_HCHAR 9 #define BG_VTIC 8 #define BG_HTIC 8 #define BG_init TEK40init #define BG_graphics TEK40graphics #define BG_linetype TEK40linetype #define BG_move TEK40move #define BG_vector TEK40vector BG_text() { BG_move(0, BG_SCREEN_HEIGHT - 2 * BG_VCHAR); fprintf(outfile,"\037"); /* 1 1. into alphanumerics */ } BG_put_text(x,y,str) unsigned int x,y; char str[]; { BG_move(x,y-11); fprintf(outfile,"\037%s\n",str); } #define BG_reset TEK40reset #endif /* BITGRAPH */ /* Color and Monochrome specials for the MS-Kermit Tektronix Emulator by Russell Lang, eln272v@monu1.cc.monash.oz */ #ifdef KERMIT #define KTEK40HCHAR 13 KTEK40graphics() { #ifdef vms term_mode_tek(); term_pasthru(); #endif /* vms */ fprintf(outfile,"\033\014"); /* 1 1. clear screen */ /* kermit tektronix emulation doesn't need to wait */ } KTEK40Ctext() { TEK40text(); KTEK40Clinetype(0); /* change to green */ #ifdef vms term_nopasthru(); #endif /* vms */ } /* special color linetypes for MS-DOS Kermit v2.31 tektronix emulator */ /* 0 = normal, 1 = bright foreground color (30-37) = 30 + colors where colors are 1=red, 2=green, 4=blue */ static char *kermit_color[15]= {"\033[0;37m","\033[1;30m", "\033[0;32m","\033[0;36m","\033[0;31m","\033[0;35m", "\033[1;34m","\033[1;33m","\033[1;31m","\033[1;37m", "\033[1;35m","\033[1;32m","\033[1;36m","\033[0;34m", "\033[0;33m"}; KTEK40Clinetype(linetype) int linetype; { if (linetype >= 13) linetype %= 13; fprintf(outfile,"%s",kermit_color[linetype+2]); } /* linetypes for MS-DOS Kermit v2.30 tektronix emulator */ /* `=solid, a=fine dots, b=short dashes, c=dash dot, d=long dash dot, e=dash dot dot */ static char *kerm_linetype = "`a`abcde" ; KTEK40Mlinetype(linetype) int linetype; { if (linetype >= 6) linetype %= 6; fprintf(outfile,"\033%c",kerm_linetype[linetype+2]); } KTEK40reset() { fprintf(outfile,"\030\n"); /* turn off Tek emulation */ #ifdef vms term_mode_native(); #endif /* vms */ } #endif /* KERMIT */ /* thanks to sask!macphed (Geoff Coleman and Ian Macphedran) for the Selanar driver */ #ifdef SELANAR SEL_init() { fprintf(outfile,"\033\062"); /* 1 1. set to ansi mode */ } SEL_graphics() { fprintf(outfile,"\033[H\033[J\033\061\033\014"); /* 1 2 3 1. clear ANSI screen 2. set to TEK mode 3. clear screen */ } SEL_text() { TEK40move(0,12); fprintf(outfile,"\033\062"); /* 1 1. into ANSI mode */ } SEL_reset() { fprintf(outfile,"\033\061\033\012\033\062\033[H\033[J"); /* 1 2 3 4 1 set tek mode 2 clear screen 3 set ansi mode 4 clear screen */ } #endif /* SELANAR */ #ifdef VTTEK VTTEK40init() { fprintf(outfile,"\033[?38h"); fflush(outfile); sleep(1); /* sleep 1 second to allow screen time to clear on some terminals */ #ifdef vms term_mode_tek(); #endif /* vms */ } VTTEK40reset() { fprintf(outfile,"\033[?38l"); fflush(outfile); sleep(1); /* sleep 1 second to allow screen time to clear on some terminals */ #ifdef vms term_mode_native(); #endif /* vms */ } /* linetypes for VT-type terminals in tektronix emulator mode */ /* `=solid, a=fine dots, b=short dashes, c=dash dot, d=long dash dot, h=bold solid, i=bold fine dots, j=bold short dashes, k=bold dash dot, l=bold long dash dot */ static char *vt_linetype = "`a`abcdhijkl" ; static int last_vt_linetype = 0; VTTEK40linetype(linetype) int linetype; { if (linetype >= 10) linetype %= 10; fprintf(outfile,"\033%c",vt_linetype[linetype+2]); last_vt_linetype = linetype; } VTTEK40put_text(x,y,str) unsigned int x,y; char str[]; { int linetype; linetype = last_vt_linetype; VTTEK40linetype(0); TEK40put_text(x,y,str); VTTEK40linetype(linetype); } #endif /* VTTEK */ #ifdef LN03P LN03Pinit() { fprintf(outfile,"\033[?38h"); } LN03Preset() { fprintf(outfile,"\033[?38l"); } #endif /* LN03P */