212 lines
8.0 KiB
OpenEdge ABL
212 lines
8.0 KiB
OpenEdge ABL
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
|