home *** CD-ROM | disk | FTP | other *** search
- DEFINITION FOR C MODULE Printer ;
-
- FROM SYSTEM IMPORT LONGSET, SHORTSET, ADDRESS ;
- FROM Exec IMPORT CMD_NONSTD, DevicePtr, Message, UnitPtr ;
- FROM Graphics IMPORT RastPortPtr, ColorMapPtr ;
-
- CONST
- PRD_RAWWRITE = CMD_NONSTD+0 ;
- PRD_PRTCOMMAND = CMD_NONSTD+1 ;
- PRD_DUMPRPORT = CMD_NONSTD+2 ;
- PRD_QUERY = CMD_NONSTD+3 ;
-
- (* printer command definitions *)
-
- aRIS = 0; (* ESCc reset ISO *)
- aRIN = 1; (* ESC#1 initialize +++ *)
- aIND = 2; (* ESCD lf ISO *)
- aNEL = 3; (* ESCE return,lf ISO *)
- aRI = 4; (* ESCM reverse lf ISO *)
-
- aSGR0 = 5; (* ESC[0m normal char set ISO *)
- aSGR3 = 6; (* ESC[3m italics on ISO *)
- aSGR23= 7; (* ESC[23m italics off ISO *)
- aSGR4 = 8; (* ESC[4m underline on ISO *)
- aSGR24= 9; (* ESC[24m underline off ISO *)
- aSGR1 = 10; (* ESC[1m boldface on ISO *)
- aSGR22= 11; (* ESC[22m boldface off ISO *)
- aSFC = 12; (* SGR30-39 set foreground colorISO *)
- aSBC = 13; (* SGR40-49 set background colorISO *)
-
- aSHORP0 = 14; (* ESC[0w normal pitch DEC *)
- aSHORP2 = 15; (* ESC[2w elite on DEC *)
- aSHORP1 = 16; (* ESC[1w elite off DEC *)
- aSHORP4 = 17; (* ESC[4w condensed fine on DEC *)
- aSHORP3 = 18; (* ESC[3w condensed off DEC *)
- aSHORP6 = 19; (* ESC[6w enlarged on DEC *)
- aSHORP5 = 20; (* ESC[5w enlarged off DEC *)
-
- aDEN6 = 21; (* ESC[6"z shadow print on DEC (sort of) *)
- aDEN5 = 22; (* ESC[5"z shadow print off DEC *)
- aDEN4 = 23; (* ESC[4"z doublestrike on DEC *)
- aDEN3 = 24; (* ESC[3"z doublestrike off DEC *)
- aDEN2 = 25; (* ESC[2"z NLQ on DEC *)
- aDEN1 = 26; (* ESC[1"z NLQ off DEC *)
-
- aSUS2 = 27; (* ESC[2v superscript on +++ *)
- aSUS1 = 28; (* ESC[1v superscript off +++ *)
- aSUS4 = 29; (* ESC[4v subscript on +++ *)
- aSUS3 = 30; (* ESC[3v subscript off +++ *)
- aSUS0 = 31; (* ESC[0v normalize the line +++ *)
- aPLU = 32; (* ESCL partial line up ISO *)
- aPLD = 33; (* ESCK partial line down ISO *)
-
- aFNT0 = 34; (* ESC(B US char set or Typeface 0 (default) *)
- aFNT1 = 35; (* ESC(R French char set or Typeface 1 *)
- aFNT2 = 36; (* ESC(K German char set or Typeface 2 *)
- aFNT3 = 37; (* ESC(A UK char set or Typeface 3 *)
- aFNT4 = 38; (* ESC(E Danish I char set or Typeface 4 *)
- aFNT5 = 39; (* ESC(H Sweden char set or Typeface 5 *)
- aFNT6 = 40; (* ESC(Y Italian char set or Typeface 6 *)
- aFNT7 = 41; (* ESC(Z Spanish char set or Typeface 7 *)
- aFNT8 = 42; (* ESC(J Japanese char set or Typeface 8 *)
- aFNT9 = 43; (* ESC(6 Norweign char set or Typeface 9 *)
- 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. *)
-
- aPROP2 = 45 ; (* ESC[2p proportional on +++ *)
- aPROP1 = 46 ; (* ESC[1p proportional off +++ *)
- aPROP0 = 47 ; (* ESC[0p proportional clear +++ *)
- aTSS = 48 ; (* ESC[n E set proportional offset ISO *)
- aJFY5 = 49 ; (* ESC[5 F auto left justify ISO *)
- aJFY7 = 50 ; (* ESC[7 F auto right justify ISO *)
- aJFY6 = 51 ; (* ESC[6 F auto full justify ISO *)
- aJFY0 = 52 ; (* ESC[0 F auto justify off ISO *)
- aJFY3 = 53 ; (* ESC[3 F letter space (justify) ISO (special) *)
- aJFY1 = 54 ; (* ESC[1 F word fill(auto center) ISO (special) *)
-
- aVERP0 = 55 ; (* ESC[0z 1/8" line spacing +++ *)
- aVERP1 = 56 ; (* ESC[1z 1/6" line spacing +++ *)
- aSLPP = 57 ; (* ESC[nt set form length n DEC *)
- aPERF = 58 ; (* ESC[nq perf skip n (n>0) +++ *)
- aPERF0 = 59 ; (* ESC[0q perf skip off +++ *)
-
- aLMS = 60 ; (* ESC#9 Left margin set +++ *)
- aRMS = 61 ; (* ESC#0 Right margin set +++ *)
- aTMS = 62 ; (* ESC#8 Top margin set +++ *)
- aBMS = 63 ; (* ESC#2 Bottom marg set +++ *)
- aSTBM = 64 ; (* ESC[Pn1;Pn2r T&B margins DEC *)
- aSLRM = 65 ; (* ESC[Pn1;Pn2s L&R margin DEC *)
- aCAM = 66 ; (* ESC#3 Clear margins +++ *)
-
- aHTS = 67 ;(* ESCH Set horiz tab ISO *)
- aVTS = 68 ;(* ESCJ Set vertical tabs ISO *)
- aTBC0 = 69 ;(* ESC[0g Clr horiz tab ISO *)
- aTBC3 = 70 ;(* ESC[3g Clear all h tab ISO *)
- aTBC1 = 71 ;(* ESC[1g Clr vertical tabs ISO *)
- aTBC4 = 72 ;(* ESC[4g Clr all v tabs ISO *)
- aTBCALL = 73 ;(* ESC#4 Clr all h & v tabs +++ *)
- aTBSALL = 74 ;(* ESC#5 Set default tabs +++ *)
- aEXTEND = 75 ;(* ESC[Pn"x extended commands +++ *)
-
- aRAW = 76 ;(* ESC[Pn"r Next 'Pn' chars are raw +++ *)
-
- TYPE
- IOPrtCmdReqPtr = POINTER TO IOPrtCmdReq ;
- IODRPReqPtr = POINTER TO IODRPReq ;
-
- IOPrtCmdReq = RECORD
- io_Message : Message ;
- io_Device : DevicePtr ; (* (DevicePtr) device node pointer *)
- io_Unit : UnitPtr ; (* (UnitPtr) unit (driver private) *)
- io_Command : CARDINAL ; (* device command *)
- io_Flags : SHORTSET ;
- io_Error : SHORTINT ; (* error or warning num *)
- io_PrtCommand : CARDINAL ; (* printer command *)
- io_Parm0 : SHORTCARD ; (* first command parameter *)
- io_Parm1 : SHORTCARD ; (* second command parameter *)
- io_Parm2 : SHORTCARD ; (* third command parameter *)
- io_Parm3 : SHORTCARD ; (* fourth command parameter *)
- END ;
-
- IODRPReq = RECORD
- io_Message : Message ;
- io_Device : DevicePtr ; (* (DevicePtr) device node pointer *)
- io_Unit : UnitPtr ; (* (UnitPtr) unit (driver private) *)
- io_Command : CARDINAL ; (* device command *)
- io_Flags : SHORTSET ;
- io_Error : SHORTINT ; (* error or warning num *)
- io_RastPort : RastPortPtr ; (* raster port *)
- io_ColorMap : ColorMapPtr ; (* color map *)
- io_Modes : LONGSET ; (* graphics viewport modes *)
- io_SrcX : CARDINAL ; (* source x origin *)
- io_SrcY : CARDINAL ; (* source y origin *)
- io_SrcWidth : CARDINAL ; (* source x width *)
- io_SrcHeight : CARDINAL ; (* source x height *)
- io_DestCols : LONGINT ; (* destination x width *)
- io_DestRows : LONGINT ; (* destination y height *)
- io_Special : BITSET ; (* option flags *)
- END ;
-
- CONST
- SPECIAL_MILCOLS = {0} ; (* DestCols specified in 1/1000" *)
- SPECIAL_MILROWS = {1} ; (* DestRows specified in 1/1000" *)
- SPECIAL_FULLCOLS = {2} ; (* make DestCols maximum possible *)
- SPECIAL_FULLROWS = {3} ; (* make DestRows maximum possible *)
- SPECIAL_FRACCOLS = {4} ; (* DestCols is fraction of FULLCOLS *)
- SPECIAL_FRACROWS = {5} ; (* DestRows is fraction of FULLROWS *)
- SPECIAL_CENTER = {6} ; (* center image on paper *)
- SPECIAL_ASPECT = {7} ; (* ensure correct aspect ratio *)
- SPECIAL_DENSITY1 = {8} ; (* lowest resolution (dpi) *)
- SPECIAL_DENSITY2 = {9} ; (* next res *)
- SPECIAL_DENSITY3 = {8,9} ; (* next res *)
- SPECIAL_DENSITY4 = {10} ; (* next res *)
- SPECIAL_DENSITY5 = {8,10} ; (* next res *)
- SPECIAL_DENSITY6 = {9,10} ; (* next res *)
- SPECIAL_DENSITY7 = {8..10} ; (* highest res *)
- SPECIAL_NOFORMFEED = {11} ; (* don't eject paper on gfx prints *)
- SPECIAL_TRUSTME = {12} ; (* 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 = {13}; (* see above *)
-
- PDERR_NOERR = 0 ; (* clean exit, no errors *)
- PDERR_CANCEL = 1 ; (* user cancelled print *)
- PDERR_NOTGRAPHICS = 2 ; (* printer cannot output graphics *)
- PDERR_INVERTHAM = 3 ; (* OBSOLETE *)
- PDERR_BADDIMENSION = 4 ; (* print dimensions illegal *)
- PDERR_DIMENSIONOVFLOW = 5 ; (* OBSOLETE *)
- PDERR_INTERNALMEMORY = 6 ; (* no memory for internal variables *)
- 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. *)
-
- PDERR_TOOKCONTROL = 8 ; (* Took control in case 0 of render *)
-
- (* internal use *)
-
- SPECIAL_DENSITYMASK = {8..10} ; (* masks out density values *)
-
- SPECIAL_DIMENSIONSMASK = SPECIAL_MILCOLS + SPECIAL_MILROWS + SPECIAL_FULLCOLS
- + SPECIAL_FULLROWS + SPECIAL_FRACCOLS +
- SPECIAL_FRACROWS + SPECIAL_ASPECT ;
-
- END Printer.
-