home *** CD-ROM | disk | FTP | other *** search
- #ifndef DEVICES_PRINTER_H
- #define DEVICES_PRINTER_H
- /*
- ** $VER: printer.h 1.7 (26.7.90)
- ** Includes Release 40.15
- **
- ** printer.device structure definitions
- **
- ** (C) Copyright 1987-1993 Commodore-Amiga, Inc.
- ** All Rights Reserved
- */
-
- #ifndef EXEC_TYPES_H
- #include "exec/types.h"
- #endif
-
- #ifndef EXEC_NODES_H
- #include "exec/nodes.h"
- #endif
-
- #ifndef EXEC_LISTS_H
- #include "exec/lists.h"
- #endif
-
- #ifndef EXEC_PORTS_H
- #include "exec/ports.h"
- #endif
-
- #define PRD_RAWWRITE (CMD_NONSTD+0)
- #define PRD_PRTCOMMAND (CMD_NONSTD+1)
- #define PRD_DUMPRPORT (CMD_NONSTD+2)
- #define PRD_QUERY (CMD_NONSTD+3)
-
- /* printer command definitions */
-
- #define aRIS 0 /* ESCc reset ISO */
- #define aRIN 1 /* ESC#1 initialize +++ */
- #define aIND 2 /* ESCD lf ISO */
- #define aNEL 3 /* ESCE return,lf ISO */
- #define aRI 4 /* ESCM reverse lf ISO */
-
- #define aSGR0 5 /* ESC[0m normal char set ISO */
- #define aSGR3 6 /* ESC[3m italics on ISO */
- #define aSGR23 7 /* ESC[23m italics off ISO */
- #define aSGR4 8 /* ESC[4m underline on ISO */
- #define aSGR24 9 /* ESC[24m underline off ISO */
- #define aSGR1 10 /* ESC[1m boldface on ISO */
- #define aSGR22 11 /* ESC[22m boldface off ISO */
- #define aSFC 12 /* SGR30-39 set foreground color ISO */
- #define aSBC 13 /* SGR40-49 set background color ISO */
-
- #define aSHORP0 14 /* ESC[0w normal pitch DEC */
- #define aSHORP2 15 /* ESC[2w elite on DEC */
- #define aSHORP1 16 /* ESC[1w elite off DEC */
- #define aSHORP4 17 /* ESC[4w condensed fine on DEC */
- #define aSHORP3 18 /* ESC[3w condensed off DEC */
- #define aSHORP6 19 /* ESC[6w enlarged on DEC */
- #define aSHORP5 20 /* ESC[5w enlarged off DEC */
-
- #define aDEN6 21 /* ESC[6"z shadow print on DEC (sort of) */
- #define aDEN5 22 /* ESC[5"z shadow print off DEC */
- #define aDEN4 23 /* ESC[4"z doublestrike on DEC */
- #define aDEN3 24 /* ESC[3"z doublestrike off DEC */
- #define aDEN2 25 /* ESC[2"z NLQ on DEC */
- #define aDEN1 26 /* ESC[1"z NLQ off DEC */
-
- #define aSUS2 27 /* ESC[2v superscript on +++ */
- #define aSUS1 28 /* ESC[1v superscript off +++ */
- #define aSUS4 29 /* ESC[4v subscript on +++ */
- #define aSUS3 30 /* ESC[3v subscript off +++ */
- #define aSUS0 31 /* ESC[0v normalize the line +++ */
- #define aPLU 32 /* ESCL partial line up ISO */
- #define aPLD 33 /* ESCK partial line down ISO */
-
- #define aFNT0 34 /* ESC(B US char set or Typeface 0 (default) */
- #define aFNT1 35 /* ESC(R French char set or Typeface 1 */
- #define aFNT2 36 /* ESC(K German char set or Typeface 2 */
- #define aFNT3 37 /* ESC(A UK char set or Typeface 3 */
- #define aFNT4 38 /* ESC(E Danish I char set or Typeface 4 */
- #define aFNT5 39 /* ESC(H Sweden char set or Typeface 5 */
- #define aFNT6 40 /* ESC(Y Italian char set or Typeface 6 */
- #define aFNT7 41 /* ESC(Z Spanish char set or Typeface 7 */
- #define aFNT8 42 /* ESC(J Japanese char set or Typeface 8 */
- #define aFNT9 43 /* ESC(6 Norweign char set or Typeface 9 */
- #define aFNT10 44 /* ESC(C Danish II char set or Typeface 10 */
-
- /*
- Suggested typefaces are:
-
- 0 - default typeface.
- 1 - Line Printer or equiv.
- 2 - Pica or equiv.
- 3 - Elite or equiv.
- 4 - Helvetica or equiv.
- 5 - Times Roman or equiv.
- 6 - Gothic or equiv.
- 7 - Script or equiv.
- 8 - Prestige or equiv.
- 9 - Caslon or equiv.
- 10 - Orator or equiv.
- */
-
- #define aPROP2 45 /* ESC[2p proportional on +++ */
- #define aPROP1 46 /* ESC[1p proportional off +++ */
- #define aPROP0 47 /* ESC[0p proportional clear +++ */
- #define aTSS 48 /* ESC[n E set proportional offset ISO */
- #define aJFY5 49 /* ESC[5 F auto left justify ISO */
- #define aJFY7 50 /* ESC[7 F auto right justify ISO */
- #define aJFY6 51 /* ESC[6 F auto full justify ISO */
- #define aJFY0 52 /* ESC[0 F auto justify off ISO */
- #define aJFY3 53 /* ESC[3 F letter space (justify) ISO (special) */
- #define aJFY1 54 /* ESC[1 F word fill(auto center) ISO (special) */
-
- #define aVERP0 55 /* ESC[0z 1/8" line spacing +++ */
- #define aVERP1 56 /* ESC[1z 1/6" line spacing +++ */
- #define aSLPP 57 /* ESC[nt set form length n DEC */
- #define aPERF 58 /* ESC[nq perf skip n (n>0) +++ */
- #define aPERF0 59 /* ESC[0q perf skip off +++ */
-
- #define aLMS 60 /* ESC#9 Left margin set +++ */
- #define aRMS 61 /* ESC#0 Right margin set +++ */
- #define aTMS 62 /* ESC#8 Top margin set +++ */
- #define aBMS 63 /* ESC#2 Bottom marg set +++ */
- #define aSTBM 64 /* ESC[Pn1;Pn2r T&B margins DEC */
- #define aSLRM 65 /* ESC[Pn1;Pn2s L&R margin DEC */
- #define aCAM 66 /* ESC#3 Clear margins +++ */
-
- #define aHTS 67 /* ESCH Set horiz tab ISO */
- #define aVTS 68 /* ESCJ Set vertical tabs ISO */
- #define aTBC0 69 /* ESC[0g Clr horiz tab ISO */
- #define aTBC3 70 /* ESC[3g Clear all h tab ISO */
- #define aTBC1 71 /* ESC[1g Clr vertical tabs ISO */
- #define aTBC4 72 /* ESC[4g Clr all v tabs ISO */
- #define aTBCALL 73 /* ESC#4 Clr all h & v tabs +++ */
- #define aTBSALL 74 /* ESC#5 Set default tabs +++ */
- #define aEXTEND 75 /* ESC[Pn"x extended commands +++ */
-
- #define aRAW 76 /* ESC[Pn"r Next 'Pn' chars are raw +++ */
-
- struct IOPrtCmdReq {
- struct Message io_Message;
- struct Device *io_Device; /* device node pointer */
- struct Unit *io_Unit; /* unit (driver private)*/
- UWORD io_Command; /* device command */
- UBYTE io_Flags;
- BYTE io_Error; /* error or warning num */
- UWORD io_PrtCommand; /* printer command */
- UBYTE io_Parm0; /* first command parameter */
- UBYTE io_Parm1; /* second command parameter */
- UBYTE io_Parm2; /* third command parameter */
- UBYTE io_Parm3; /* fourth command parameter */
- };
-
- struct IODRPReq {
- struct Message io_Message;
- struct Device *io_Device; /* device node pointer */
- struct Unit *io_Unit; /* unit (driver private)*/
- UWORD io_Command; /* device command */
- UBYTE io_Flags;
- BYTE io_Error; /* error or warning num */
- struct RastPort *io_RastPort; /* raster port */
- struct ColorMap *io_ColorMap; /* color map */
- ULONG io_Modes; /* graphics viewport modes */
- UWORD io_SrcX; /* source x origin */
- UWORD io_SrcY; /* source y origin */
- UWORD io_SrcWidth; /* source x width */
- UWORD io_SrcHeight; /* source x height */
- LONG io_DestCols; /* destination x width */
- LONG io_DestRows; /* destination y height */
- UWORD io_Special; /* option flags */
- };
-
- #define SPECIAL_MILCOLS 0x0001 /* DestCols specified in 1/1000" */
- #define SPECIAL_MILROWS 0x0002 /* DestRows specified in 1/1000" */
- #define SPECIAL_FULLCOLS 0x0004 /* make DestCols maximum possible */
- #define SPECIAL_FULLROWS 0x0008 /* make DestRows maximum possible */
- #define SPECIAL_FRACCOLS 0x0010 /* DestCols is fraction of FULLCOLS */
- #define SPECIAL_FRACROWS 0x0020 /* DestRows is fraction of FULLROWS */
- #define SPECIAL_CENTER 0x0040 /* center image on paper */
- #define SPECIAL_ASPECT 0x0080 /* ensure correct aspect ratio */
- #define SPECIAL_DENSITY1 0x0100 /* lowest resolution (dpi) */
- #define SPECIAL_DENSITY2 0x0200 /* next res */
- #define SPECIAL_DENSITY3 0x0300 /* next res */
- #define SPECIAL_DENSITY4 0x0400 /* next res */
- #define SPECIAL_DENSITY5 0x0500 /* next res */
- #define SPECIAL_DENSITY6 0x0600 /* next res */
- #define SPECIAL_DENSITY7 0x0700 /* highest res */
- #define SPECIAL_NOFORMFEED 0x0800 /* don't eject paper on gfx prints */
- #define SPECIAL_TRUSTME 0x1000 /* don't reset on gfx prints */
- /*
- Compute print size, set 'io_DestCols' and 'io_DestRows' in the calling
- program's 'IODRPReq' structure and exit, DON'T PRINT. This allows the
- calling program to see what the final print size would be in printer
- pixels. Note that it modifies the 'io_DestCols' and 'io_DestRows'
- fields of your 'IODRPReq' structure. Also, set the print density and
- update the 'MaxXDots', 'MaxYDots', 'XDotsInch', and 'YDotsInch' fields
- of the 'PrinterExtendedData' structure.
- */
- #define SPECIAL_NOPRINT 0x2000 /* see above */
-
- #define PDERR_NOERR 0 /* clean exit, no errors */
- #define PDERR_CANCEL 1 /* user cancelled print */
- #define PDERR_NOTGRAPHICS 2 /* printer cannot output graphics */
- #define PDERR_INVERTHAM 3 /* OBSOLETE */
- #define PDERR_BADDIMENSION 4 /* print dimensions illegal */
- #define PDERR_DIMENSIONOVFLOW 5 /* OBSOLETE */
- #define PDERR_INTERNALMEMORY 6 /* no memory for internal variables */
- #define PDERR_BUFFERMEMORY 7 /* no memory for print buffer */
- /*
- Note : this is an internal error that can be returned from the render
- function to the printer device. It is NEVER returned to the user.
- If the printer device sees this error it converts it 'PDERR_NOERR'
- and exits gracefully. Refer to the document on
- 'How to Write a Graphics Printer Driver' for more info.
- */
- #define PDERR_TOOKCONTROL 8 /* Took control in case 0 of render */
-
- /* internal use */
- #define SPECIAL_DENSITYMASK 0x0700 /* masks out density values */
- #define SPECIAL_DIMENSIONSMASK \
- (SPECIAL_MILCOLS|SPECIAL_MILROWS|SPECIAL_FULLCOLS|SPECIAL_FULLROWS\
- |SPECIAL_FRACCOLS|SPECIAL_FRACROWS|SPECIAL_ASPECT)
- #endif
-