/* UNISRC_ID: %W% %E% */ /********************************************************************* * file: h/sys/plotem.h * part #: * internal sequence #: * * ************************************************************ * * " (c) Copyright Hewlett-Packard Company, 1984. All * * * rights are reserved. Copying or other reproduction * * * of this program except for archival purposes is * * * prohibited without the prior written consent of * * * Hewlett-Packard Company." * * ************************************************************ * * * This file contains the definitions and declarations used by * the HPGL plotter emulator. These may be needed by user programs * which access the plotter emulator and have been separated from * the internal plotter information (plotemi.h) for that purpose. * * Pisces Q-DOS project * Jay Phillips PCD * * $Log: /usr/src/uts.p/h/scrn/plotem.h,v $ * Revision 2.2 84/04/06 15:34:15 jay * *** empty log message *** * * Revision 2.1 84/03/12 19:46:06 jay * Release 8 * * Revision 1.3 84/01/31 10:36:06 jay * Added RCS change logging * * * Revision History * ----------------------------------------------------------------- * 08/07/83 JNP Initial * 11/17/83 JNP Added comments * 01/28/84 JNP Split plotem.h into plotem.h and plotemi.h * ************************************************************************/ /************************************************************************ * * plotter special key defines * * Used in initialization of tty structure. * ************************************************************************/ #define PEINTR 03 /* cntrl-C interrupt */ #define PEERASE 010 /* cntrl-H (BS) backspace */ #define PEKILL 025 /* cntrl-U kill */ /************************************************************************ * * plotter error number defines * * Used to set the error register which can be read * via the 'OE', output error, command. * ************************************************************************/ #define BAD_INST 1 /* instruction not recognized */ #define NUM_PARM 2 /* wrong number of parameters */ #define BAD_PARM 3 /* bad parameter */ #define BAD_CHAR 5 /* unknown character set */ #define POS_OVFL 6 /* position overflow */ /************************************************************************ * * plotter status bit defines * * Used to set status bits in the plotter status word. It can be * read via the 'OS', output status, command. * ************************************************************************/ #define PEN_DOWN 1 /* pen down */ #define P1P2_CHG 2 /* P1 or P2 changed */ #define DIG_PNT 4 /* digitized point available */ #define ST_INIT 8 /* plotter initialized */ #define RDY_DATA 16 /* ready for data */ #define ERROR 32 /* an error has occurred */ /************************************************************************ * * plotter emulator ioctl definitions * ************************************************************************/ #define PEBLKRD (('P' << 8) | 0) /* Block read of plotter bed */ #define PEBLKWR (('P' << 8) | 1) /* Block write of plotter bed */ #define PEBLKCP (('P' << 8) | 2) /* Block copy of plotter bed */ #define PEBLKFILL (('P' << 8) | 3) /* Block fill of plotter bed */ #define PEWRRR (('P' << 8) | 4) /* change replacement rule */ #define PEPLOTABS (('P' << 8) | 5) /* plot absolute */ #define PEPRINTPLOT (('P' << 8) | 6) /* print plotter raster */ #define PESTRAPA (('P' << 8) | 7) /* turn strapping on/off */ #define PELINETYPE (('P' << 8) | 8) /* set line type */ #define PECURSOR (('P' << 8) | 9) /* turn cursor on/off */ #define PESCROLL (('P' << 8) | 10) /* set window on raster */ /************************************************************************ * * Structure Definitions and Declarations * ************************************************************************/ /************************************************************************ * * blkread * * Block read ioctl data structure. * ************************************************************************/ struct blkread { int x; /* x coord of top left corner of block */ int y; /* y coord of top left corner of block */ int height; /* height of block */ int width; /* width of block */ char *data; /* pointer to data destination area */ }; /************************************************************************ * * blkwrite * * Block write ioctl data structure. * ************************************************************************/ struct blkwrite { int x; /* x coord of top left corner of block */ int y; /* y coord of top left corner of block */ int height; /* height of block */ int width; /* width of block */ int rr; /* replacement rule to be used. */ char *data; /* pointer to data source area */ }; /************************************************************************ * * blkcopy * * Block copy ioctl data structure. * ************************************************************************/ struct blkcopy { int x1; /* x coord of top left corner of source */ int y1; /* y coord of top left corner of source */ int height; /* height of block */ int width; /* width of block */ int x2; /* x coord of top left corner of dest. */ int y2; /* y coord of top left corner of dest. */ int rr; /* replacement rule to be used. */ }; /************************************************************************ * * blkfill * * Block write ioctl data structure. * ************************************************************************/ struct blkfill { int x; /* x coord of top left corner of block */ int y; /* y coord of top left corner of block */ int height; /* height of block */ int width; /* width of block */ char fill[32]; /* 16 by 16 fill pattern */ int rr; /* replacement rule to be used. */ }; /************************************************************************ * * plot_info - ioctl ploting data. * ************************************************************************/ struct plot_info { int x; /* x coord of point to plot to */ int y; /* y coord of point to plot to */ char pen_down; /* TRUE if pen should be down */ }; /************************************************************************ * * scroll_xy - absolute window position data. * ************************************************************************/ struct scroll_xy { int x; /* x coord of point to place window */ int y; /* y coord of point to place window */ };