summaryrefslogtreecommitdiff
path: root/doc/escp2.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/escp2.texi')
-rw-r--r--doc/escp2.texi919
1 files changed, 0 insertions, 919 deletions
diff --git a/doc/escp2.texi b/doc/escp2.texi
deleted file mode 100644
index db6f057..0000000
--- a/doc/escp2.texi
+++ /dev/null
@@ -1,919 +0,0 @@
-@node ESC/P2, New Printer, Weaving, Appendices
-@appendix ESC/P2
-@cindex ESC/P2
-
-@menu
-* ESC/P2 Introduction:: What is ESC/P2
-* ESC/P2 Standard Commands:: Normal ESC/P2 commands
-* ESC/P2 Remote Mode Commands:: Exotic ESC/P2 commands
-* ESC/P2 Appropriate Remote Commands:: Useful remote command sequences
-@end menu
-
-@node ESC/P2 Introduction, ESC/P2 Standard Commands, , ESC/P2
-@appendixsection Introduction to ESC/P2
-@cindex ESC/P2 introduction
-
-This is a description of the ESC/P2 raster commands used by the
-gimp-print plugin and Ghostscript driver, which is a subset of the
-complete command set. The full documents are found on
-@url{http://www.ercipd.com/isv/edr_docs.htm}. Note that these are
-@strong{not} always correct, and are certainly not complete.
-
-All ESCP/2 raster commands begin with the @samp{ESC} character (1b hex),
-followed by either one or two command characters and arguments where
-applicable. Older commands generally have one command character. Newer
-commands usually have a @samp{(} (left parenthesis) followed by a
-command character and a byte count for the arguments that follow. The
-byte count is a 16-bit (2 byte) binary integer, in little endian order.
-
-All arguments listed here are of the form @samp{name[bytes]} where
-@samp{[bytes]} is the number of bytes that comprise the argument. The
-arguments themselves are usually one, two, or four byte integers, always
-little endian (the least significant bits come first). Presumably this
-is to match Intel processors.
-
-In some cases, the same command sequence identifies different versions
-of the same command, depending upon the number of bytes of arguments.
-
-
-@node ESC/P2 Standard Commands, ESC/P2 Remote Mode Commands, ESC/P2 Introduction, ESC/P2
-@appendixsection Standard commands
-
-@deffn {ESC/P2 command} @code{ESC @@}
-Reset the printer. Discards any output, ejects the existing page,
-returns all settings to their default. Always use this before printing
-a page.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (G @var{BC}=1 @var{ON1}}
-Turn on graphics mode. @var{ON} should be @samp{1} (turn on graphics
-mode).
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (U @var{BC}=1 @var{UNIT1}}
-Set basic unit of measurement used by printer. This is expressed in
-multiples of 1/3600". At 720 DPI, @var{UNIT} is @samp{5}; at 360 DPI,
-@var{UNIT} is @samp{10}.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (U @var{BC}=5 @var{PAGEUNITS1} @var{VUNIT1} @var{HUNIT1} @var{BASEUNIT2}}
-Set basic units of measurement used by the printer. @var{PAGEUNIT} is
-the unit of page measurement (for commands that set page dimensions and
-the like). @var{VUNIT} is the unit of vertical measurement (for
-vertical movement commands). @var{HUNIT} is the unit of horizontal
-movement (for horizontal positioning commands). All of these units are
-expressed in @var{BASEUNIT}, which is in reciprocal inches. Typically,
-@var{BASEUNIT} is @samp{1440}. In 720 DPI mode, @var{PAGEUNIT},
-@var{VUNIT}, and @var{HUNIT} are all @samp{2}; in 1440x720 DPI mode,
-@var{PAGEUNIT} and @var{VUNIT} are normally set to @samp{2}; @var{HUNIT}
-is set to @samp{1}.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (K @var{BC}=2 @var{ZERO1} @var{GRAYMODE1}}
-Set color or grayscale mode, on printers supporting an explicit
-grayscale mode. These printers can be identified because they are
-advertised as having more black nozzles than nozzles of individual
-colors. Setting grayscale mode allows use of these extra nozzles for
-faster printing. @var{GRAYMODE} should be @samp{0} or @samp{2} for
-color, @samp{1} for grayscale. @var{ZERO} should always be @samp{0}.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (i @var{BC}=1 @var{MICROWEAVE1}}
-If @var{MICROWEAVE} is @samp{1}, use microweave mode. On older
-printers, this is used to turn on microweave; on newer printers, it
-prints one row at a time. All printers support this mode. It should
-only be used at 720 (or 1440x720) DPI. The Epson Stylus Pro series
-indicates additional modes:
-
-@table @samp
-@item 2
-``Full-overlap''
-@item 3
-``Four-pass''
-@item 4
-``Full-overlap 2''
-@end table
-
-Any of these commands can be used with the high four bits set to either
-@samp{3} or @samp{0}.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC U @var{DIRECTION1}}
-If @var{DIRECTION} is @samp{1}, print unidirectionally; if @samp{0},
-print bidirectionally.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (s @var{BC}=1 @var{SPEED1}}
-On some older printers, this controls the print head speed. @var{SPEED}
-of @samp{2} is 10 inches/sec; SPEED of @samp{0} or 1 is 20.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (e @var{BC}=2 @var{ZERO1} @var{DOTSIZE1}}
-Choose print dotsize. @var{DOTSIZE} can take on various values,
-depending upon the printer. Almost all printers support @samp{0} and
-@samp{2}. Variable dot size printers allow a value of @var{16}. Other
-than the value of @var{16}, this appears to be ignored at resolutions of
-720 DPI and above.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (C @var{BC}=2 @var{PAGELENGTH2}}
-@deffnx {ESC/P2 command} @code{ESC (C @var{BC}=4 @var{PAGELENGTH4}}
-Set the length of the page in "pageunits" (see @samp{ESC (U} above).
-The second form of the command allows setting of longer page lengths on
-new printers (these happen to be the printers that support variable dot
-size).
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (c @var{BC}=4 @var{TOP2} @var{LENGTH2}}
-@deffnx {ESC/P2 command} @code{ESC (c @var{BC}=8 @var{TOP4} @var{LENGTH4}}
-Set the vertical page margins of the page in "pageunits" (see @samp{ESC
-(U} above). The margins are specified as the top of the page and the
-length of the page. The second form of the command allows setting of
-longer page lengths on new printers (these happen to be the printers
-that support variable dot size).
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (S @var{BC}=8 @var{WIDTH4} @var{LENGTH4}}
-Set the width and length of the printed page region in "pageunits" (see
-@samp{ESC (U} above).
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (v @var{BC}=2 @var{ADVANCE2}}
-@deffnx {ESC/P2 command} @code{ESC (v @var{BC}=4 @var{ADVANCE4}}
-Feed vertically @var{ADVANCE} "vertical units" (see @samp{ESC (U} above)
-from the current print head position.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (V @var{BC}=2 @var{ADVANCE2}}
-@deffnx {ESC/P2 command} @code{ESC (V @var{BC}=4 @var{ADVANCE4}}
-Feed vertically @var{ADVANCE} "vertical units" (see @samp{ESC (U} above)
-from the top margin.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC ($ @var{BC}=4 @var{OFFSET4}}
-Set horizontal position to @var{OFFSET} from the left margin. This
-command operates on printers of the 740 class and newer (all printers
-with variable dot size).
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC $ @var{OFFSET2}}
-Set horizontal position to @var{OFFSET} from the left margin. This
-command operates on printers of the 740 class and newer (all printers
-with variable dot size).
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (\ @var{BC}=4 @var{UNITS2} @var{OFFSET2}}
-Set horizontal position to @var{OFFSET} from the previous print head
-position, measured in @var{UNITS}. @var{UNITS} is measured in inverse
-inches, and should be set to 1440 in all cases. This operates on all
-1440 dpi printers that do not support variable dot size.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (/ @var{BC}=4 @var{OFFSET4}}
-Set horizontal position to @var{OFFSET} from the previous print head
-position, measured in "horizontal units" (see @samp{ESC (U} above).
-This operates on all variable dot size printers.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC \ @var{OFFSET2}}
-Set horizontal position to @var{OFFSET} from the previous print head
-position, measured in basic unit of measurement (see @samp{ESC (U}
-above). This is used on all 720 dpi printers, and can also be used on
-1440 dpi printers in lower resolutions to save a few bytes. Note that
-@var{OFFSET} may be negative. The range of values for this command is
-between @samp{-16384} and @samp{16383}.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC r @var{COLOR1}}
-@deffnx {ESC/P2 command} @code{ESC (r @var{BC}=2 @var{DENSITY1} @var{COLOR1}}
-Set the ink color. The first form is used on four-color printers; the
-second on six-color printers. @var{DENSITY} is @samp{0} for dark inks,
-@samp{1} for light. @var{COLOR} is
-
-@table @samp
-@item 0
-black
-@item 1
-magenta
-@item 2
-cyan
-@item 4
-yellow
-@end table
-
-This command is not used on variable dot size printers in softweave
-mode.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC . @var{COMPRESS1} @var{VSEP1} @var{HSEP1} @var{LINES1} @var{WIDTH2} @var{data...}}
- Print data. @var{COMPRESS} signifies the compression mode:
-
-@table @samp
-@item 0
-no compression
-@item 1
-TIFF compression (incorrectly documented as "run length encoded")
-@item 2
-TIFF compression with a special command set.
-@end table
-
-@var{VSEP} depends upon resolution and printer type. At 360 DPI, it is
-always @samp{10}. At 720 DPI, it is normally @samp{5}5. On the ESC
-600, it is @samp{40} (@math{8 * 5}). On some other printers, it varies.
-
-@var{HSEP1} is @samp{10} at 360 DPI and @samp{5} at 720 or 1440 DPI
-(1440 DPI cannot be printed in one pass; it is printed in two passes,
-with the dots separated in each pass by 1/720").
-
-@var{LINES} is the number of lines to be printed. It should be @samp{1}
-in microweave and 360 DPI. At 720 DPI softweave, it should be the
-number of lines to be actually printed.
-
-@var{WIDTH} is the number of pixels to be printed in each row.
-Following this command, a carriage return (@samp{13} decimal, @samp{0A}
-hex) should be output to return the print head position to the left
-margin.
-
-The basic data format is a string of bytes, with data from left to right
-on the page. Within each byte, the highest bit is first.
-
-The TIFF compression is implemented as one count byte followed by one or
-more data bytes. There are two cases:
-
-@enumerate
-@item
-If the count byte is @samp{128} or less, it is followed by @math{[count]
-+ 1} data bytes. So if the count byte is @samp{0}, it is followed by 1
-data byte; if it is @samp{128}, it is followed by 129 data bytes.
-
-@item
-If the count byte is greater than 128, it is followed by one byte. This
-byte is repeated (257 - [count]) times. So if [count] is 129, the next
-byte is treated as though it were repeated 128 times; if [count] is 255,
-it is treated as though it were repeated twice.
-@end enumerate
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC i @var{COLOR1} @var{COMPRESS1} @var{BITS1} @var{BYTES2} @var{LINES2} @var{data...}}
-Print data in the newer printers (that support variable dot size), and
-Stylus Pro models.
-
-@var{COLOR} is the color:
-
-@table @samp
-@item 0
-black
-@item 1
-magenta
-@item 2
-cyan
-@item 4
-yellow
-@item 17
-light magenta
-@item 18
-light cyan
-@end table
-
-@var{COMPRESS} signifies the
-compression mode:
-
-@table @samp
-@item 0
-no compression
-@item 1
-TIFF compression (incorrectly documented as "run length encoded")
-@item 2
-TIFF compression with a special command set.
-@end table
-
-@var{BITS} is the number of bits per pixel.
-
-@var{BYTES} is the number of bytes wide for each row (@math{ceiling(BITS
-* width_of_row, 8)}). Note that this is different from the @samp{ESC .}
-command above.
-
-@var{LINES} is the number of lines to be printed. This command is the
-only way to get variable dot size printing. In variable dot mode, the
-size of the dots increases as the value (@samp{1}, @samp{2}, or
-@samp{3}) increases.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (D @var{BC}=4 @var{BASE2} @var{VERTICAL1} @var{HORIZONTAL1}}
-Set printer horizontal and vertical spacing. It only applies to
-variable dot size printers in softweave mode (and possibly other high
-end printers).
-
-@var{BASE} is the base unit for this command; it must be @samp{14400}.
-
-@var{VERTICAL} is the distance in these units between printed rows; it
-should be (@math{separation_in_nozzles * BASE / 720}).
-
-@var{HORIZONTAL} is the horizontal separation between dots in a row.
-Depending upon the printer, this should be either (@math{14400 / 720})
-or (@math{14400 / 360}). The Stylus Pro 9000 manual suggests that the
-settings should match the chosen resolution, but that is apparently not
-the case (or not always the case) on other printers.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC (R @var{BC}=8 00 R E M O T E 1}
-Enters ``remote mode''. This is a special, undocumented command set that
-is used to set up various printer options, such as paper feed tray, and
-perform utility functions such as head cleaning and alignment. It does
-not appear that anything here is actually required to make the printer
-print. Our best understanding of what is in a remote command sequence
-is described in a separate section below.
-@end deffn
-
-@deffn {ESC/P2 command} @code{ESC 01 @@EJL [sp] ID\r\n}
-Return the printer ID. This is considered a remote mode command,
-although the syntax is that of a conventional command. This returns the
-following information:
-
-@example
-@@EJL ID\r
-MFG:EPSON;
-CMD:ESCPL2,BDC;
-MDL:[printer model];
-CLS:PRINTER;
-DES:EPSON [printer model];
-\f
-@end example
-@end deffn
-
-After all data has been sent, a form feed byte should be sent.
-
-All newer Epson printers (STC 440, STP 750) require the following
-command to be sent at least once to enable printing at all. This
-command specifically takes the printer out of the Epson packet mode
-communication protocol (whatever that is) and enables normal data
-transfer. Sending it multiple times is is not harmful, so it is
-normally sent at the beginning of each job:
-
-@example
-ESC 01@@EJL[space]1284.4[newline]@@EJL[space][space][space][space]
-[space][newline]ESC@@
-@end example
-
-The proper sequence of initialization commands is:
-
-@example
-magic command
-ESC @
-remote mode if needed
-ESC (G
-ESC (U
-ESC (K (if appropriate)
-ESC (i
-ESC U (if needed)
-ESC (s (if appropriate)
-ESC (e
-ESC (C
-ESC (c
-ESC (S
-ESC (D (if needed)
-ESC (V (optional -- this can be accomplished with ESC (v)
-@end example
-
-For printing, the proper sequence is:
-
-@example
-ESC (v
-@end example
-
-@noindent
-and repeat for each color:
-
-@example
-ESC ($ @r{or} ESC (\ @r{or} ESC \
-ESC (r @r{or} ESC r @r{(if needed---not used with @samp{ESC i} and not needed if the color
-has not changed from the previous printed line)}
-ESC . @r{or} ESC i ...data... [return] (0A hex)
-@end example
-
-To terminate a page:
-
-@example
-[formfeed] (0C hex)
-ESC @@
-@end example
-
-
-@node ESC/P2 Remote Mode Commands, ESC/P2 Appropriate Remote Commands, ESC/P2 Standard Commands, ESC/P2
-@appendixsection Remote Mode Commands
-
-The following description of remote commands comes out of an
-examination of the sequences used by the printer utilities bundled
-with the Windows drivers for the ESC740, and from other sources (some
-Epson manuals, experimentation, analysis of print files). It is
-largely speculative as these commands are not all documented in the
-Epson documentation we have access to. Generally, newer manuals
-provide more thorough documentation.
-
-Remote command mode is entered when the printer is sent the following
-sequence:
-
-@example
-ESC (R BC=8 00 R E M O T E 1
-@end example
-
-Remote mode commands are then sent, and terminated with the following
-sequence:
-
-@example
-ESC 00 00 00
-@end example
-
-All remote mode commands must be sent before the initial @samp{ESC (G}
-command is sent.
-
-This introductory sequence is then followed by a sequence of commands.
-Each command is constructed as follows:
-
-@itemize
-@item Two ASCII bytes indicating the function
-@item A byte count (two bytes, little-endian) for the parameters
-@item Binary parameters, if any
-@end itemize
-
-This is a list of all remote commands we have seen:
-
-@deffn {ESC/P2 remote command} @code{NC @var{BC}=2 00 00}
-Print a nozzle check pattern
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{VI @var{BC}=2 00 00}
-on my 740, prints the following:
-
-@example
-W01286 I02382\r\n
-@end example
-
-@noindent
-probably ``version information''
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* AI @var{BC}=3 00 00 00}
-Prints a ``printer ID''. On one 870, prints the following:
-@example
-51-51-50-51-49-48\r\n
-@end example
-
-The Windows driver has a text entry field where this number can be
-entered, but its purpose is unknown.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* LD @var{BC}=0}
-Load printer defaults from NVRAM, DIP switches, and/or ROM. This
-apparently does not load factory defaults per se, but any settings that
-are saved. This is commonly used right at the end of each print job
-after the @samp{ESC @@} printer reset command.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* CH @var{BC}=2 00 @var{xx}}
-Perform a head cleaning cycle. The heads to clean are determined by
-parameter @var{xx}:
-
-@table @samp
-@item 00
-clean all heads
-@item 01
-clean black head
-@item 02
-clean color heads
-@end table
-
-While @var{xx} = @samp{00} is probably supported by all printers, @var{xx} =
-@samp{01} and @samp{02} may well not be.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* DT @var{BC}=3 00 @var{xx} 00}
-Print an alignment pattern. There are three patterns, which are picked
-via the choice of @var{xx}. Pattern @samp{0} is coarse, pattern
-@samp{1} is medium, and pattern @samp{2} is fine.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* DU @var{BC}=6 00 @var{xx} 00 09 00 @var{yy}}
-Print another alignment pattern. It isn't entirely clear what @var{xx}
-and @var{yy} are, but it appears that @var{xx} takes on the values
-@samp{1} and @samp{2} , and @var{yy} takes on the values @samp{0} and
-@var{1}. This may only work on the 580 and/or 480.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* DA @var{BC}=4 00 @var{xx} 00 @var{yy}}
-Set results for the first alignment pattern. @var{xx} is the pattern
-(@samp{1}--@samp{3}); @var{yy} is the best choice from the set
-(@samp{1}--@samp{7} or @samp{1}--@samp{15}). This does not save to
-NVRAM, so when the printer is powered off, the setting will be lost.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* DA @var{BC}=6 00 @var{xx} 00 @var{yy} 09 00}
-Set results for alternate alignment pattern. @var{xx} appears to be the
-pass, and @var{yy} appears to be the optimum pattern. This does not
-save to NVRAM, so when the printer is powered off, the setting will be
-lost.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* SV @var{BC}=0}
-Save the current settings to NVRAM.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* RS @var{BC}=1 01}
-Reset the printer.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* IQ @var{BC}=1 01}
-Get ink quantity. This requires direct access to the printer port. The
-return looks like
-
-@example
-IQ:KKCCMMYY
-@end example
-
-@noindent
-or
-
-@example
-IQ:KKCCMMYYccmm
-@end example
-
-@noindent
-(for 4-color and 6-color printers respectively), where each pair of
-digits are hexadecimal representations of percent.
-@end deffn
-
-The following two commands have been observed on an STP 870.
-
-@deffn {ESC/P2 remote command} @code{* IR @var{BC}=2 00 @var{xx}}
-@strong{Function unknown}. This command has been observed on an STP 870
-with @var{xx}=@samp{03} at the start of a job and @var{xx}=@samp{02} at
-the end of a job (where it is followed by an @samp{LD} command). When
-in roll mode, the values change to @var{xx}=@samp{01} at the start of a
-job and @var{xx}=@samp{00} at the end of a job.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* FP @var{BC}=3 00 @var{xx} @var{yy}}
-@var{xx}=@samp{00} and @var{yy}=@samp{00} selects the printer's normal
-left margin (about 3mm). @var{xx}=@samp{0xb0} and @var{yy}=@samp{0xff}
-selects zero-margin mode, where the left-most print position is shifted
-to a point about 0.1" to the left of the left-hand edge of the paper,
-allowing printing up to (and off) the left-hand edge of the paper.
-@end deffn
-
-The commands below are partially documented in the Stylus Pro 9000
-manual. Much of this information is interpreted; none is tested.
-
-@deffn {ESC/P2 remote command} @code{* SN @var{BC}=3 00 @var{xx} @var{yy}}
-Select Mechanism Sequence. @var{xx} controls which sub-operation is
-performed. @var{xx}=@samp{00} selects the ``Feed paper sequence
-setting''. @var{yy} can take on the following values (on the STP 870,
-at any rate):
-
-@table @samp
-@item 0
-default
-@item 1
-plain paper
-@item 2
-postcards
-@item 3
-film (photo quality glossy film, transparencies)
-@item 4
-envelopes
-@item 5
-plain paper (fast load)
-@item 6
-back light film (although this has been observed with heavyweight matte
-paper)
-@item 7
-matte paper (observed with 360 dpi inkjet paper, and photo quality
-inkjet paper)
-@item 8
-photo paper
-@end table
-
-Experimentation suggests that this setting changes details of how the
-printers' cut sheet feeder works, presumably to tune it for different
-types of paper.
-
-@var{xx}=@samp{01} controls the platen gap setting; @var{yy}=@samp{00}
-is the default, @var{yy}=@samp{1} or @samp{2} are higher settings.
-
-@var{xx}=@samp{02} controls paper loading speed (@var{yy}=@samp{0} is
-normal, @samp{1} is fast, @samp{2} is slow). It appears that @samp{1}
-is used when printing on ``plain paper'', ``360dpi ink jet paper'' or
-``ink jet transparencies'', and @var{yy}=@samp{00} for all other paper
-type settings.
-
-@var{xx}=@samp{07} controls duplex printing for printers with that
-capability (@var{yy}=@var{0} is default, for non-duplex printing;
-@samp{1} is front side of the paper, and @var{2} is back side).
-
-@var{xx}=@samp{09} controls zero margin printing on the printers with
-the capability of printing zero-margin on all sides (Stylus Photo
-780/790, 890, and 1280/1290). @var{yy}=@samp{0} is the default;
-@samp{1} enables zero margin printing.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* PP @var{BC}=3 00 @var{xx} @var{yy}}
-Set Paper Path. @var{xx}=@samp{2} indicates manual feed,
-@var{xx}=@samp{3} is for roll paper. @var{yy} selects ``paper path
-number''.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* AC @var{BC}=2 00 @var{xx}}
-Set Auto Cutting State. @var{xx}=@samp{0} selects auto cutting off,
-@var{xx}=@samp{1} selects auto cutting on, and @var{xx}=@samp{2}
-indicates horizontal print page line on. It appears that with auto
-cutting on, roll paper is cut automatically at the point a formfeed
-character is sent. The formfeed character is normally used to eject a
-page; with this turned on, it also cuts the roll paper. Horizontal
-print page line on prints a narrow line of black dots at the position
-the paper should be cut manually.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* DR @var{BC}=4 00 xx @var{DT2}}
-Set Drying Time. @var{xx}=@samp{00} sets the drying time ``per scan''
-(per pass?); @var{xx}=@samp{01} sets the drying time per page. @var{DT}
-indicates the drying time, which is in seconds if page mode is used and
-in milliseconds if scan mode is used. @var{DT} must not exceed 3600
-seconds in per-page mode and 10000 milliseconds in per-scan mode.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* IK @var{BC}=2 00 @var{xx}}
-Select Ink Type. @var{xx}=@samp{00} selects dye ink. Pigment ink is
-apparently selected by @var{xx}=@samp{01}. This probably does not apply
-to the consumer-grade printers.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* PZ BC=2 00 xx}
-Set Pause After Printing. @var{xx}=@samp{00} selects no pause after
-printing; @var{xx}=@samp{01} selects pause after printing. If turned
-on, the printer is paused after the page is ejected (by the FF
-byte). If cutting is turned on, the printer is paused @strong{after}
-the cutting or printing of the horizontal cut line.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* EX @var{BC}=6 00 00 00 00 0x14 @var{xx}}
-Set Vertical Print Page Line Mode. @var{xx}=@samp{00} is off,
-@var{xx}=@samp{01} is on. If turned on, this prints vertical trim lines
-at the left and right margins.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* EX @var{BC}=6 00 00 00 00 0x05 @var{xx}}
-Set Roll Paper Mode. If @var{xx} is @samp{0}, roll paper mode is off;
-if @var{xx} is @samp{1}, roll paper mode is on.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* EX @var{BC}=3 00 @var{xx} @var{yy}}
-Appears to be a synonym for the @samp{SN} command described above.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* PH @var{BC}=2 00 @var{xx}}
-Select Paper Thickness. Set the paper thickness @var{xx} in .1 mm
-units. This must not exceed 0x10 (1.6 mm). If the thickness is set
-"more than" .6 mm (which probably means "at least" .6 mm, since the
-other case reads "less than 0.5 mm"), the platen gap is set high
-irrespective of the @samp{SN} command.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* PM @var{BC}=2 00 00}
-@strong{Function unknown}. Used on the STC 3000 at least when using roll
-feed, and on the STP 870 in all print files analysed to date.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* ST @var{BC}=2 00 @var{xx}}
-Epson's STP 750/1200 programming guide refers to the @samp{ST} command
-as ``Set printer state reply''. If @var{xx} is @samp{0} or @samp{2},
-the printer will not send status replies. If @var{xx} is @samp{1} or
-@samp{3}, the printer will send status replies. The status replies
-consist of state, error codes, ink leve, firmware version, and warning
-status.
-
-The actual reply is documented as
-
-@example
-@@BDC ST\r
-ST: xx;
-[ER: yy;]
-IQ: n1n2n3n4;
-[WR: w1,w2...;]
-RV: zz;
-AI:CW:02kkccmmyy, MI:mm
-[TC:tttt;]
-INK:...;
-\f
-@end example
-
-@noindent
-(@samp{\r} is carriage return; @samp{\n} is newline; @samp{\f} is
-formfeed.)
-
-@samp{ST} is the printer status:
-
-@table @samp
-@item 00
-Error
-@item 01
-Self-test
-@item 02
-Busy
-@item 03
-Waiting while printing
-@item 04
-Idle
-@item 07
-Cleaning/filling ink heads
-@item 08
-Not yet initialized/filling heads
-@end table
-
-@samp{ER}, if provided, is the error status:
-
-@table @samp
-@item 00
-Fatal error
-@item 01
-Interface not selected
-@item 04
-Paper jam
-@item 05
-Out of ink
-@item 06
-Paper out
-@end table
-
-@samp{IQ} is the amount of ink left, as a (decimal!) percentage
-expressed in hexadecimal. The values are black, cyan, magenta, and
-yellow (presumably 6-color printers supply light cyan and light magenta
-inks as additional parameters).
-
-@samp{WR}, if provided, is the warning status:
-
-@table @samp
-@item 10
-Black ink low
-@item 11
-Cyan
-@item 12
-Magenta
-@item 13
-Yellow
-@item 14
-Light cyan (presumably)
-@item 15
-Light magenta (presumably)
-@end table
-
-@samp{RV} is the firmware revision (one byte ASCII).
-
-@samp{AI} is actuator information. These are two byte ASCII codes that
-indicate ``ink weight rank ID'' of KCMY, respectively.
-
-@samp{TC}, if provided, is the total time of cleaning or ink filling (?).
-
-@samp{INK:} and @samp{MI} are @strong{not documented}.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* SM @var{BC}=2 00 @var{xx}}
-Set Status Reply Rate. @var{xx} is the repeat interval in seconds. If
-@var{xx} is @samp{0}, the status is returned only when the printer's
-state changes.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* ST @var{BC}=1 01}
-Reply Printer Status. The reply is formatted as
-
-@example
-@@BDC PS\r\nST:@var{xx};\f
-@end example
-
-(@samp{\r} is carriage return; @samp{\n} is newline; @samp{\f} is
-formfeed). If @var{xx} (the reply value) is @samp{0} or @samp{2},
-automatic status update is disabled; if @samp{1} or @samp{3}, it is
-enabled.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* SM @var{BC}=1 01}
-Reply Printer Status Rate. The reply is formatted as
-
-@example
-@@BDC PS\r\nST:xx;\f
-@end example
-
-(@samp{\r} is carriage return; @samp{\n} is newline; @samp{\f} is
-formfeed). See @samp{SM @var{BC}=2} above for the meaning of the return
-value.
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* ?? @var{BC}=@var{xx} @var{y}[1] @dots{} @var{y}[xx]}
-Echo Parameters (perhaps better described as Echo Commands). The
-command string is executed (it would appear from the documentation), and
-the string sent is returned using a sequence similar to that described
-in the @samp{ST @var{BC}=1} and @samp{SM @var{BC}=1} commands. Note
-that in this case the number of bytes is variable!
-@end deffn
-
-@deffn {ESC/P2 remote command} @code{* SM @var{BC}=2 00 02}
-@strong{Function unknown}. Used on the STC 3000 at least when using
-roll feed.
-@end deffn
-
-
-@node ESC/P2 Appropriate Remote Commands, , ESC/P2 Remote Mode Commands, ESC/P2
-@appendixsection Appropriate Remote Commands
-
-All of the remote commands described above are wrapped up with the usual
-boilerplate. The files always start with @samp{00 00 00} and the
-``magic'' command described above, then two @samp{ESC @@}s to reset the
-printer. The remote command sequences come next; if they print anything
-that is usually followed by a @samp{FF} (0C hex) character to feed the
-page, then the file ends with another two @samp{ESC @@}s to get back to
-the ground state.
-
-An alignment sequence goes like this:
-
-@enumerate
-@item Host uses @samp{DT} to print an alignment sheet
-@item User eyeballs the sheet to see which is the best aligned pattern.
-@item Host sends a @samp{DA} command indicating which pattern the user chose
-@item If the user said "realign", meaning he isn't done yet, go to step 1
-@item We are done: host sends a @samp{SV} command and exits
-@end enumerate
-
-The sequence used (by the STC 3000, at least) to print from the roll
-feed is (with byte count omitted)
-
-@example
- PM 00 00
- SN 00 00 00
- EX 00 00 00 00 05 01
- ST 00 01
- SM 00 02
-@end example
-
-The sequence used by the STP 870 to print on plain paper is
-
-@example
- PM 00 00
- IR 00 03
- SN 00 00 01
- SN 00 01 00
- SN 00 02 01
- EX 00 00 00 00 05 00
- FP 00 00 00
-@end example
-
-@noindent
-and the job finishes with
-
-@example
- IR 00 02
- LD
-@end example
-
-For different paper type settings on the STP 870, the arguments to
-@samp{SN} vary. The arguments to the first and third @samp{SN} commands
-are as outlined in the description of the @samp{SN} command above; the
-arguments to the second (``platen gap'') are @samp{00 01 01} for thick
-papers (``matte paper---heavyweight'', ``photo paper'' and ``premium
-glossy photo paper'') and @samp{00 01 00} for all others.
-
-For roll-mode printing, the STP 870's sequence changes as follows.
-@samp{IR}'s arguments become @samp{00 01} in the header, and @samp{00
-00} after the job, and @samp{EX}'s last argument changes from @samp{00}
-to @samp{01}.
-
-For zero-margin printing on the STP 870, the arguments to @samp{FP} become
-@samp{00 0xb0 0xff}. This moves the origin about 5.5mm to the left, to a
-point one tenth of an inch to the left of the left-hand edge of the
-paper, allowing printing right up to (and beyond) the edge of the
-paper. Some printers (at least the STP 870) include white absorbent
-pads at the left margin position and other positions (89mm and 100mm
-on the STP 870) to soak up ink which misses the edge of the paper.
-Printing off the edge of paper of a width not aligned with a pad could
-result in making a mess of the inside of the printer and ink getting
-on the reverse of the paper.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-