IFND DEVICES_PRINTER_I DEVICES_PRINTER_I SET 1 ** ** $Filename: devices/printer.i $ ** $Release: 1.3 $ ** ** printer device command definitions ** ** (C) Copyright 1985,1986,1987,1988 Commodore-Amiga, Inc. ** All Rights Reserved ** IFND EXEC_NODES_I INCLUDE "exec/nodes.i" ENDC IFND EXEC_LISTS_I INCLUDE "exec/lists.i" ENDC IFND EXEC_PORTS_I INCLUDE "exec/ports.i" ENDC IFND EXEC_IO_I INCLUDE "exec/io.i" ENDC DEVINIT DEVCMD PRD_RAWWRITE DEVCMD PRD_PRTCOMMAND DEVCMD PRD_DUMPRPORT DEVCMD PRD_QUERY ;****** printer definitions aRIS EQU 0 ; ESCc reset ISO aRIN EQU 1 ; ESC#1 initialize +++ aIND EQU 2 ; ESCD lf ISO aNEL EQU 3 ; ESCE return,lf ISO aRI EQU 4 ; ESCM reverse lf ISO aSGR0 EQU 5 ; ESC[0m normal char set ISO aSGR3 EQU 6 ; ESC[3m italics on ISO aSGR23 EQU 7 ; ESC[23m italics off ISO aSGR4 EQU 8 ; ESC[4m underline on ISO aSGR24 EQU 9 ; ESC[24m underline off ISO aSGR1 EQU 10 ; ESC[1m boldface on ISO aSGR22 EQU 11 ; ESC[22m boldface off ISO aSFC EQU 12 ; SGR30-39 set foreground color ISO aSBC EQU 13 ; SGR40-49 set background color ISO aSHORP0 EQU 14 ; ESC[0w normal pitch DEC aSHORP2 EQU 15 ; ESC[2w elite on DEC aSHORP1 EQU 16 ; ESC[1w elite off DEC aSHORP4 EQU 17 ; ESC[4w condensed fine on DEC aSHORP3 EQU 18 ; ESC[3w condensed off DEC aSHORP6 EQU 19 ; ESC[6w enlarged on DEC aSHORP5 EQU 20 ; ESC[5w enlarged off DEC aDEN6 EQU 21 ; ESC[6"z shadow print on DEC (sort of) aDEN5 EQU 22 ; ESC[5"z shadow print off DEC aDEN4 EQU 23 ; ESC[4"z doublestrike on DEC aDEN3 EQU 24 ; ESC[3"z doublestrike off DEC aDEN2 EQU 25 ; ESC[2"z NLQ on DEC aDEN1 EQU 26 ; ESC[1"z NLQ off DEC aSUS2 EQU 27 ; ESC[2v superscript on +++ aSUS1 EQU 28 ; ESC[1v superscript off +++ aSUS4 EQU 29 ; ESC[4v subscript on +++ aSUS3 EQU 30 ; ESC[3v subscript off +++ aSUS0 EQU 31 ; ESC[0v normalize the line +++ aPLU EQU 32 ; ESCL partial line up ISO aPLD EQU 33 ; ESCK partial line down ISO aFNT0 EQU 34 ; ESC(B US char set or Typeface 0 (default) aFNT1 EQU 35 ; ESC(R French char set or Typeface 1 aFNT2 EQU 36 ; ESC(K German char set or Typeface 2 aFNT3 EQU 37 ; ESC(A UK char set or Typeface 3 aFNT4 EQU 38 ; ESC(E Danish I char set or Typeface 4 aFNT5 EQU 39 ; ESC(H Sweden char set or Typeface 5 aFNT6 EQU 40 ; ESC(Y Italian char set or Typeface 6 aFNT7 EQU 41 ; ESC(Z Spanish char set or Typeface 7 aFNT8 EQU 42 ; ESC(J Japanese char set or Typeface 8 aFNT9 EQU 43 ; ESC(6 Norweign char set or Typeface 9 aFNT10 EQU 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. ; aPROP2 EQU 45 ; ESC[2p proportional on +++ aPROP1 EQU 46 ; ESC[1p proportional off +++ aPROP0 EQU 47 ; ESC[0p proportional clear +++ aTSS EQU 48 ; ESC[n E set proportional offset ISO aJFY5 EQU 49 ; ESC[5 F auto left justify ISO aJFY7 EQU 50 ; ESC[7 F auto right justiy ISO aJFY6 EQU 51 ; ESC[6 F auto full justify ISO aJFY0 EQU 52 ; ESC[0 F auto justify off ISO aJFY2 EQU 53 ; ESC[2 F word space(auto center) ISO (special) aJFY3 EQU 54 ; ESC[3 F letter space (justify) ISO (special) aVERP0 EQU 55 ; ESC[0z 1/8" line spacing +++ aVERP1 EQU 56 ; ESC[1z 1/6" line spacing +++ aSLPP EQU 57 ; ESC[nt set form length n DEC aPERF EQU 58 ; ESC[nq perf skip n (n>0) +++ aPERF0 EQU 59 ; ESC[0q perf skip off +++ aLMS EQU 60 ; ESC#9 Left margin set +++ aRMS EQU 61 ; ESC#0 Right margin set +++ aTMS EQU 62 ; ESC#8 Top margin set +++ aBMS EQU 63 ; ESC#2 Bottom marg set +++ aSTBM EQU 64 ; ESC[Pn1;Pn2r T&B margins DEC aSLRM EQU 65 ; ESC[Pn1;Pn2s L&R margin DEC aCAM EQU 66 ; ESC#3 Clear margins +++ aHTS EQU 67 ; ESCH Set horiz tab ISO aVTS EQU 68 ; ESCJ Set vertical tabs ISO aTBC0 EQU 69 ; ESC[0g Clr horiz tab ISO aTBC3 EQU 70 ; ESC[3g Clear all h tab ISO aTBC1 EQU 71 ; ESC[1g Clr vertical tabs ISO aTBC4 EQU 72 ; ESC[4g Clr all v tabs ISO aTBCALL EQU 73 ; ESC#4 Clr all h & v tabs +++ aTBSALL EQU 74 ; ESC#5 Set default tabs +++ aEXTEND EQU 75 ; ESC[Pn"x extended commands +++ aRAW EQU 76 ; ESC[Pn"r Next 'Pn' chars are raw +++ STRUCTURE IOPrtCmdReq,IO_SIZE 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 LABEL iopcr_SIZEOF STRUCTURE IODRPReq,IO_SIZE APTR io_RastPort ; raster port APTR 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 LABEL iodrpr_SIZEOF SPECIAL_MILCOLS EQU $0001 ; DestCols specified in 1/1000" SPECIAL_MILROWS EQU $0002 ; DestRows specified in 1/1000" SPECIAL_FULLCOLS EQU $0004 ; make DestCols maximum possible SPECIAL_FULLROWS EQU $0008 ; make DestRows maximum possible SPECIAL_FRACCOLS EQU $0010 ; DestCols is fraction of FULLCOLS SPECIAL_FRACROWS EQU $0020 ; DestRows is fraction of FULLROWS SPECIAL_CENTER EQU $0040 ; center image on paper SPECIAL_ASPECT EQU $0080 ; ensure correct aspect ratio SPECIAL_DENSITY1 EQU $0100 ; lowest resolution (dpi) SPECIAL_DENSITY2 EQU $0200 ; next res SPECIAL_DENSITY3 EQU $0300 ; next res SPECIAL_DENSITY4 EQU $0400 ; next res SPECIAL_DENSITY5 EQU $0500 ; next res SPECIAL_DENSITY6 EQU $0600 ; next res SPECIAL_DENSITY7 EQU $0700 ; highest res SPECIAL_NOFORMFEED EQU $0800 ; don't eject paper after gfx prints SPECIAL_TRUSTME EQU $1000 ; 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. ; SPECIAL_NOPRINT EQU $2000 ; see above PDERR_NOERR EQU 0 ; clean exit, no errors PDERR_CANCEL EQU 1 ; user cancelled print PDERR_NOTGRAPHICS EQU 2 ; printer cannot output graphics PDERR_INVERTHAM EQU 3 ; OBSOLETE PDERR_BADDIMENSION EQU 4 ; print dimensions illegal PDERR_DIMENSIONOVFLOW EQU 5 ; OBSOLETE PDERR_INTERNALMEMORY EQU 6 ; no memory for internal variables PDERR_BUFFERMEMORY EQU 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. ; PDERR_TOOKCONTROL EQU 8 ; I took control in case 0 of render ; internal use SPECIAL_DENSITYMASK EQU $0700 ; masks out density values SPECIAL_DIMENSIONSMASK EQU SPECIAL_MILCOLS!SPECIAL_MILROWS!SPECIAL_FULLCOLS!SPECIAL_FULLROWS!SPECIAL_FRACCOLS!SPECIAL_FRACROWS!SPECIAL_ASPECT ENDC ; DEVICES_PRINTER_I