/* Hello, Emacs, this is -*-C-*- * $Id: aed.trm,v 1.14 2006/07/21 02:35:45 sfeam Exp $ * */ /* GNUPLOT - aed.trm */ /*[ * Copyright 1990 - 1993, 1998, 2004 * * 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 complete modified source code. Modifications are to * be distributed as patches to the released version. Permission to * distribute binaries produced by compiling modified sources is granted, * provided you * 1. distribute the corresponding source modifications from the * released version in the form of a patch file along with the binaries, * 2. add special version identification to distinguish your version * in addition to the base release version number, * 3. provide your name and address as the primary contact for the * support of your modified version, and * 4. retain our contact information in regard to use of the base * software. * Permission to distribute the released version of the source code along * with corresponding source modifications in the form of a patch file is * granted with same provisions 2 through 4 for binary distributions. * * This software is provided "as is" without express or implied warranty * to the extent permitted by applicable law. ]*/ /* * This file is included by ../term.c. * * This terminal driver supports: * AED terminals * * AUTHORS * Colin Kelley, Thomas Williams, Russell Lang * * send your comments or suggestions to (gnuplot-info@lists.sourceforge.net). * */ /* * adapted to the new terminal layout by Stefan Bodewig (Dez. 1995) */ #include "driver.h" #ifdef TERM_REGISTER register_term(aed512) register_term(aed767) #endif #ifdef TERM_PROTO TERM_PUBLIC void AED_init __PROTO((void)); TERM_PUBLIC void AED_graphics __PROTO((void)); TERM_PUBLIC void AED_text __PROTO((void)); TERM_PUBLIC void AED_linetype __PROTO((int linetype)); TERM_PUBLIC void AED_move __PROTO((unsigned int x, unsigned int y)); TERM_PUBLIC void AED_vector __PROTO((unsigned int x, unsigned int y)); TERM_PUBLIC void AED_put_text __PROTO((unsigned int x, unsigned int y, const char *str)); TERM_PUBLIC void AED_reset __PROTO((void)); #define AED_XMAX 768 #define AED_YMAX 575 #define AED_VCHAR 13 #define AED_HCHAR 8 #define AED_VTIC 8 #define AED_HTIC 7 /* slightly different for AED 512 */ #define AED5_XMAX 512 #endif #ifndef TERM_PROTO_ONLY #ifdef TERM_BODY #define AED_XLAST (AED_XMAX - 1) #define AED_YLAST (AED_YMAX - 1) #define AED5_XLAST (AED5_XMAX - 1) TERM_PUBLIC void AED_init() { fputs("\033SEN3DDDN.SEC.7.SCT.0.1.80.80.90.SBC.0.AAV2.MOV.0.9.CHR.0.FFD", gpoutfile); /* 2 3 4 5 7 6 1 1. Clear Screen 2. Set Encoding 3. Set Default Color 4. Set Backround Color Table Entry 5. Set Backround Color 6. Move to Bottom Lefthand Corner 7. Anti-Alias Vectors */ } TERM_PUBLIC void AED_graphics() { fputs("\033FFD\033", gpoutfile); } TERM_PUBLIC void AED_text() { fputs("\033MOV.0.9.SEC.7.XXX", gpoutfile); } TERM_PUBLIC void AED_linetype(int linetype) { static int color[2 + 9] = { 7, 1, 6, 2, 3, 5, 1, 6, 2, 3, 5 }; static int type[2 + 9] = { 85, 85, 255, 255, 255, 255, 255, 85, 85, 85, 85 }; if (linetype <= -3) return; if (linetype >= 10) linetype %= 10; fprintf(gpoutfile, "\ \033SLS%d.255.\ \033SEC%d.", type[linetype + 2], color[linetype + 2]); } TERM_PUBLIC void AED_move(unsigned int x, unsigned int y) { fprintf(gpoutfile, "\033MOV%d.%d.", x, y); } TERM_PUBLIC void AED_vector(unsigned int x, unsigned int y) { fprintf(gpoutfile, "\033DVA%d.%d.", x, y); } TERM_PUBLIC void AED_put_text(unsigned int x, unsigned int y, const char *str) { AED_move(x, y - AED_VCHAR / 2 + 2); fprintf(gpoutfile, "\033XXX%s\033", str); } #define hxt (AED_HTIC/2) #define hyt (AED_VTIC/2) TERM_PUBLIC void AED_reset() { fputs("\033SCT0.1.0.0.0.SBC.0.FFD", gpoutfile); } #endif /* TERM_BODY */ #ifdef TERM_TABLE TERM_TABLE_START(aed512_driver) "aed512", "AED 512 Terminal", AED5_XMAX, AED_YMAX, AED_VCHAR, AED_HCHAR, AED_VTIC, AED_HTIC, options_null, AED_init, AED_reset, AED_text, null_scale, AED_graphics, AED_move, AED_vector, AED_linetype, AED_put_text, null_text_angle, null_justify_text, do_point, do_arrow, set_font_null TERM_TABLE_END(aed512_driver) #undef LAST_TERM #define LAST_TERM aed512_driver TERM_TABLE_START(aed767_driver) "aed767", "AED 767 Terminal", AED_XMAX, AED_YMAX, AED_VCHAR, AED_HCHAR, AED_VTIC, AED_HTIC, options_null, AED_init, AED_reset, AED_text, null_scale, AED_graphics, AED_move, AED_vector, AED_linetype, AED_put_text, null_text_angle, null_justify_text, do_point, do_arrow, set_font_null TERM_TABLE_END(aed767_driver) #undef LAST_TERM #define LAST_TERM aed767_driver #endif /* TERM_TABLE */ #endif /* TERM_PROTO_ONLY */ #ifdef TERM_HELP START_HELP(aed767) "1 aed767", "?commands set terminal aed767", "?set terminal aed767", "?set term aed767", "?terminal aed767", "?term aed767", "?aed767", "?commands set terminal aed512", "?set terminal aed512", "?set term aed512", "?terminal aed512", "?term aed512", "?aed512", " The `aed512` and `aed767` terminal drivers support AED graphics terminals.", " The two drivers differ only in their horizontal ranges, which are 512 and", " 768 pixels, respectively. Their vertical range is 575 pixels. There are", " no options for these drivers." END_HELP(aed767) #endif