<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Remote Mode Commands</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="The Developer's Guide to Gutenprint" HREF="book1.html"><LINK REL="UP" TITLE="ESC/P2" HREF="c464.html"><LINK REL="PREVIOUS" TITLE="ESC/P2" HREF="c464.html"><LINK REL="NEXT" TITLE="Appropriate Remote Commands" HREF="x1669.html"><META http-equiv="Content-Type" content="text/html; charset=@encoding@"></HEAD ><BODY CLASS="sect1" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >The Developer's Guide to Gutenprint</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="c464.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Chapter 5. ESC/P2</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="x1669.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="sect1" ><H1 CLASS="sect1" ><A NAME="AEN955" >Remote Mode Commands</A ></H1 ><P > 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. </P ><P > Remote command mode is entered when the printer is sent the following sequence: </P ><DIV CLASS="informalexample" ><P ></P ><A NAME="AEN959" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="screen" >ESC (R BC=8 00 R E M O T E 1</PRE ></TD ></TR ></TABLE ><P ></P ></DIV ><P > Remote mode commands are then sent, and terminated with the following sequence: </P ><DIV CLASS="informalexample" ><P ></P ><A NAME="AEN962" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="screen" >ESC 00 00 00</PRE ></TD ></TR ></TABLE ><P ></P ></DIV ><P > All remote mode commands must be sent before the initial <TT CLASS="literal" >ESC (G</TT > command is sent. </P ><P > This introductory sequence is then followed by a sequence of commands. Each command is constructed as follows: </P ><P ></P ><OL TYPE="1" ><LI ><P > Two ASCII bytes indicating the function </P ></LI ><LI ><P > A byte count (two bytes, little-endian) for the parameters </P ></LI ><LI ><P > Binary parameters, if any </P ></LI ></OL ><P > This is a list of all remote commands we have seen: </P ><P ></P ><DIV CLASS="variablelist" ><P ><B >ESC/P2 Remote Mode Commands</B ></P ><DL ><DT ><TT CLASS="literal" >NC <CODE CLASS="varname" >BC</CODE >=2 00 00</TT ></DT ><DD ><P > Print a nozzle check pattern. </P ></DD ><DT ><TT CLASS="literal" >VI <CODE CLASS="varname" >BC</CODE >=2 00 00</TT ></DT ><DD ><P > On my 740, prints the following, probably “version information”: </P ><DIV CLASS="informalexample" ><P ></P ><A NAME="AEN989" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="screen" >W01286 I02382\r\n</PRE ></TD ></TR ></TABLE ><P ></P ></DIV ></DD ><DT ><TT CLASS="literal" >* AI <CODE CLASS="varname" >BC</CODE >=3 00 00 00</TT ></DT ><DD ><P > Prints a “printer ID”. On one 870, prints the following: </P ><DIV CLASS="informalexample" ><P ></P ><A NAME="AEN997" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="screen" >51-51-50-51-49-48\r\n</PRE ></TD ></TR ></TABLE ><P ></P ></DIV ><P > The Windows driver has a text entry field where this number can be entered, but its purpose is unknown. </P ></DD ><DT ><TT CLASS="literal" >* LD <CODE CLASS="varname" >BC</CODE >=0</TT ></DT ><DD ><P > 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 <TT CLASS="literal" >ESC @</TT > printer reset command. </P ></DD ><DT ><TT CLASS="literal" >* CH <CODE CLASS="varname" >BC</CODE >=2 00 <CODE CLASS="varname" >xx</CODE ></TT ></DT ><DD ><P > Perform a head cleaning cycle. The heads to clean are determined by parameter <CODE CLASS="varname" >xx</CODE >: </P ><DIV CLASS="table" ><A NAME="AEN1015" ></A ><P ><B >Table 5-5. Head cleaning parameters</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL WIDTH="1*" TITLE="id"><COL WIDTH="1*" TITLE="description"><THEAD ><TR ><TH ><CODE CLASS="varname" >xx</CODE ></TH ><TH >Description</TH ></TR ></THEAD ><TBODY ><TR ><TD ><CODE CLASS="constant" >00</CODE ></TD ><TD >Clean all heads</TD ></TR ><TR ><TD ><CODE CLASS="constant" >01</CODE ></TD ><TD >Clean black head</TD ></TR ><TR ><TD ><CODE CLASS="constant" >02</CODE ></TD ><TD >Clean color heads</TD ></TR ></TBODY ></TABLE ></DIV ><P > While <CODE CLASS="varname" >xx</CODE > = <CODE CLASS="constant" >00</CODE > is likely supported by all printers, <CODE CLASS="varname" >xx</CODE > = <CODE CLASS="constant" >01</CODE > and <CODE CLASS="constant" >02</CODE > are not. </P ></DD ><DT ><TT CLASS="literal" >* DT <CODE CLASS="varname" >BC</CODE >=3 00 <CODE CLASS="varname" >xx</CODE > 00</TT ></DT ><DD ><P > Print an alignment pattern. There are three patterns, which are picked via the choice of <CODE CLASS="varname" >xx</CODE >. Pattern <CODE CLASS="constant" >0</CODE > is coarse, pattern <CODE CLASS="constant" >1</CODE > is medium, and pattern <CODE CLASS="constant" >2</CODE > is fine. </P ></DD ><DT ><TT CLASS="literal" >* DA <CODE CLASS="varname" >BC</CODE >=4 00 <CODE CLASS="varname" >xx</CODE > 00 <CODE CLASS="varname" >yy</CODE ></TT ></DT ><DD ><P > Set results for the alignment pattern. <CODE CLASS="varname" >xx</CODE > is the pattern (<CODE CLASS="constant" >1</CODE >--<CODE CLASS="constant" >3</CODE >); <CODE CLASS="varname" >yy</CODE > is the best choice from the set (<CODE CLASS="constant" >1</CODE >--<CODE CLASS="constant" >7</CODE > or <CODE CLASS="constant" >1</CODE >--<CODE CLASS="constant" >15</CODE >). This does not save to NVRAM, so when the printer is powered off, the setting will be lost. </P ></DD ><DT ><TT CLASS="literal" >* SV <CODE CLASS="varname" >BC</CODE >=0</TT ></DT ><DD ><P > Save the current settings to NVRAM. </P ></DD ><DT ><TT CLASS="literal" >* RS <CODE CLASS="varname" >BC</CODE >=1 01</TT ></DT ><DD ><P > Reset the printer. </P ></DD ><DT ><TT CLASS="literal" >* IQ <CODE CLASS="varname" >BC</CODE >=1 01</TT ></DT ><DD ><P > Get ink quantity. This requires direct access to the printer port. The return looks like </P ><DIV CLASS="informalexample" ><P ></P ><A NAME="AEN1089" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="screen" >IQ:KKCCMMYY</PRE ></TD ></TR ></TABLE ><P ></P ></DIV ><P > or </P ><DIV CLASS="informalexample" ><P ></P ><A NAME="AEN1092" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="screen" >IQ:KKCCMMYYccmm</PRE ></TD ></TR ></TABLE ><P ></P ></DIV ><P > (for 4-color and 6-color printers respectively), where each pair of digits are hexadecimal representations of percent. </P ></DD ></DL ></DIV ><P > The following two commands have been observed on an STP 870. </P ><P ></P ><DIV CLASS="variablelist" ><DL ><DT ><TT CLASS="literal" >* IR <CODE CLASS="varname" >BC</CODE >=2 00 <CODE CLASS="varname" >xx</CODE ></TT ></DT ><DD ><P > <SPAN CLASS="emphasis" ><I CLASS="emphasis" >Function unknown</I ></SPAN >. This command has been observed on an STP 870 with <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >03</CODE > at the start of a job and <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >02</CODE > at the end of a job (where it is followed by an <TT CLASS="literal" >LD</TT > command). When in roll mode, the values change to <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >01</CODE > at the start of a job and <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >00</CODE > at the end of a job. </P ></DD ><DT ><TT CLASS="literal" >* FP <CODE CLASS="varname" >BC</CODE >=3 00 <CODE CLASS="varname" >pos</CODE >[2]</TT ></DT ><DD ><P > Specify the horizontal left margin in units of 1/360 inch. The default value for <CODE CLASS="varname" >pos</CODE > is <CODE CLASS="constant" >0</CODE >. For borderless printing on printers that support it, a value of <CODE CLASS="constant" >-80</CODE > (<CODE CLASS="constant" >FFB0h</CODE >) should be used. </P ></DD ></DL ></DIV ><P > The commands below are partially documented in the Stylus Pro 9000 manual. Much of this information is interpreted; none is tested. </P ><P ></P ><DIV CLASS="variablelist" ><DL ><DT ><TT CLASS="literal" >* SN <CODE CLASS="varname" >BC</CODE >=3 00 <CODE CLASS="varname" >xx</CODE > <CODE CLASS="varname" >yy</CODE ></TT ></DT ><DD ><P > Select Mechanism Sequence. <CODE CLASS="varname" >xx</CODE > controls which sub-operation is performed. <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >00</CODE > selects the “Feed paper sequence setting”. <CODE CLASS="varname" >yy</CODE > can take on the following values (on the STP 870, at any rate): </P ><DIV CLASS="table" ><A NAME="AEN1139" ></A ><P ><B >Table 5-6. Media types</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL WIDTH="1*" TITLE="id"><COL WIDTH="1*" TITLE="description"><THEAD ><TR ><TH ><CODE CLASS="varname" >yy</CODE ></TH ><TH >Media type</TH ></TR ></THEAD ><TBODY ><TR ><TD ><CODE CLASS="constant" >0</CODE ></TD ><TD >Default</TD ></TR ><TR ><TD ><CODE CLASS="constant" >1</CODE ></TD ><TD >Plain paper</TD ></TR ><TR ><TD ><CODE CLASS="constant" >2</CODE ></TD ><TD >Postcards</TD ></TR ><TR ><TD ><CODE CLASS="constant" >3</CODE ></TD ><TD > Film (photo quality glossy film, transparencies) </TD ></TR ><TR ><TD ><CODE CLASS="constant" >4</CODE ></TD ><TD >Envelopes</TD ></TR ><TR ><TD ><CODE CLASS="constant" >5</CODE ></TD ><TD >Plain paper (fast load)</TD ></TR ><TR ><TD ><CODE CLASS="constant" >6</CODE ></TD ><TD > Back light film (although this has been observed with heavyweight matte paper) </TD ></TR ><TR ><TD ><CODE CLASS="constant" >7</CODE ></TD ><TD > Matte paper (observed with 360 dpi inkjet paper, and photo quality inkjet paper) </TD ></TR ><TR ><TD ><CODE CLASS="constant" >8</CODE ></TD ><TD >Photo paper</TD ></TR ></TBODY ></TABLE ></DIV ><P > Experimentation suggests that this setting changes details of how the printers' cut sheet feeder works, presumably to tune it for different types of paper. </P ><P > <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >01</CODE > controls the platen gap setting; <CODE CLASS="varname" >yy</CODE >=<CODE CLASS="constant" >00</CODE > is the default, <CODE CLASS="varname" >yy</CODE >=<CODE CLASS="constant" >1</CODE > or <CODE CLASS="constant" >2</CODE > are higher settings. </P ><P > <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >02</CODE > controls paper loading speed (<CODE CLASS="varname" >yy</CODE >=<CODE CLASS="constant" >0</CODE > is normal, <CODE CLASS="constant" >1</CODE > is fast, <CODE CLASS="constant" >2</CODE > is slow). It appears that <CODE CLASS="constant" >1</CODE > is used when printing on “plain paper”, “360dpi ink jet paper” or “ink jet transparencies”, and <CODE CLASS="varname" >yy</CODE >=<CODE CLASS="constant" >00</CODE > for all other paper type settings. </P ><P > <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >07</CODE > controls duplex printing for printers with that capability (<CODE CLASS="varname" >yy</CODE >=<CODE CLASS="varname" >0</CODE > is default, for non-duplex printing; <CODE CLASS="constant" >1</CODE > is front side of the paper, and <CODE CLASS="varname" >2</CODE > is back side). </P ><P > <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >09</CODE > 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). <CODE CLASS="varname" >yy</CODE >=<CODE CLASS="constant" >0</CODE > is the default; <CODE CLASS="constant" >1</CODE > enables zero margin printing. </P ></DD ><DT ><TT CLASS="literal" >* PP <CODE CLASS="varname" >BC</CODE >=3 00 <CODE CLASS="varname" >xx</CODE > <CODE CLASS="varname" >yy</CODE ></TT ></DT ><DD ><P > Set Paper Path. <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >2</CODE > indicates manual feed, <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >3</CODE > is for roll paper. <CODE CLASS="varname" >yy</CODE > selects “paper path number”. </P ></DD ><DT ><TT CLASS="literal" >* AC <CODE CLASS="varname" >BC</CODE >=2 00 <CODE CLASS="varname" >xx</CODE ></TT ></DT ><DD ><P > Set Auto Cutting State. <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >0</CODE > selects auto cutting off, <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >1</CODE > selects auto cutting on, and <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >2</CODE > 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. </P ></DD ><DT ><TT CLASS="literal" >* DR <CODE CLASS="varname" >BC</CODE >=4 00 xx <CODE CLASS="varname" >DT2</CODE ></TT ></DT ><DD ><P > Set Drying Time. <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >00</CODE > sets the drying time “per scan” (per pass?); <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >01</CODE > sets the drying time per page. <CODE CLASS="varname" >DT</CODE > indicates the drying time, which is in seconds if page mode is used and in milliseconds if scan mode is used. <CODE CLASS="varname" >DT</CODE > must not exceed 3600 seconds in per-page mode and 10000 milliseconds in per-scan mode. </P ></DD ><DT ><TT CLASS="literal" >* IK <CODE CLASS="varname" >BC</CODE >=2 00 <CODE CLASS="varname" >xx</CODE ></TT ></DT ><DD ><P > Select Ink Type. <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >00</CODE > selects dye ink. Pigment ink is apparently selected by <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >01</CODE >. This probably does not apply to the consumer-grade printers. </P ></DD ><DT ><TT CLASS="literal" >* PZ BC=2 00 xx</TT ></DT ><DD ><P > Set Pause After Printing. <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >00</CODE > selects no pause after printing; <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >01</CODE > 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 <SPAN CLASS="emphasis" ><I CLASS="emphasis" >after</I ></SPAN > the cutting or printing of the horizontal cut line. </P ></DD ><DT ><TT CLASS="literal" >* EX <CODE CLASS="varname" >BC</CODE >=6 00 00 00 00 0x14 <CODE CLASS="varname" >xx</CODE ></TT ></DT ><DD ><P > Set Vertical Print Page Line Mode. <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >00</CODE > is off, <CODE CLASS="varname" >xx</CODE >=<CODE CLASS="constant" >01</CODE > is on. If turned on, this prints vertical trim lines at the left and right margins. </P ></DD ><DT ><TT CLASS="literal" >* EX <CODE CLASS="varname" >BC</CODE >=6 00 00 00 00 0x05 <CODE CLASS="varname" >xx</CODE ></TT ></DT ><DD ><P > Set Roll Paper Mode. If <CODE CLASS="varname" >xx</CODE > is <CODE CLASS="constant" >0</CODE >, roll paper mode is off; if <CODE CLASS="varname" >xx</CODE > is <CODE CLASS="constant" >1</CODE >, roll paper mode is on. </P ></DD ><DT ><TT CLASS="literal" >* EX <CODE CLASS="varname" >BC</CODE >=3 00 <CODE CLASS="varname" >xx</CODE > <CODE CLASS="varname" >yy</CODE ></TT ></DT ><DD ><P > Appears to be a synonym for the <TT CLASS="literal" >SN</TT > command described above. </P ></DD ><DT ><TT CLASS="literal" >* PH <CODE CLASS="varname" >BC</CODE >=2 00 <CODE CLASS="varname" >xx</CODE ></TT ></DT ><DD ><P > Select Paper Thickness. Set the paper thickness <CODE CLASS="varname" >xx</CODE > in .1 mm units. This must not exceed <CODE CLASS="constant" >0x10</CODE > (1.6 mm). If the thickness is set “more than” .6 mm (which probably means “at least” 0.6 mm, since the other case reads “less than 0.5 mm”), the platen gap is set high irrespective of the <TT CLASS="literal" >SN</TT > command. </P ></DD ><DT ><TT CLASS="literal" >* PM <CODE CLASS="varname" >BC</CODE >=2 00 00</TT ></DT ><DD ><P > <SPAN CLASS="emphasis" ><I CLASS="emphasis" >Function unknown</I ></SPAN >. Used on the STC 3000 at least when using roll feed, and on the STP 870 in all print files analysed to date. </P ></DD ><DT ><TT CLASS="literal" >* ST <CODE CLASS="varname" >BC</CODE >=2 00 <CODE CLASS="varname" >xx</CODE ></TT ></DT ><DD ><P > Epson's STP 750/1200 programming guide refers to the <TT CLASS="literal" >ST</TT > command as “Set printer state reply”. If <CODE CLASS="varname" >xx</CODE > is <CODE CLASS="constant" >0</CODE > or <CODE CLASS="constant" >2</CODE >, the printer will not send status replies. If <CODE CLASS="varname" >xx</CODE > is <CODE CLASS="constant" >1</CODE > or <CODE CLASS="constant" >3</CODE >, the printer will send status replies. The status replies consist of state, error codes, ink leve, firmware version, and warning status. </P ><P > The actual reply is documented as </P ><DIV CLASS="informalexample" ><P ></P ><A NAME="AEN1341" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="screen" >@BDC ST\r ST: xx; [ER: yy;] IQ: n1n2n3n4; [WR: w1,w2...;] RV: zz; AI:CW:02kkccmmyy, MI:mm [TC:tttt;] INK:...; \f</PRE ></TD ></TR ></TABLE ><P ></P ></DIV ><P > (<TT CLASS="literal" >\r</TT > is carriage return; <TT CLASS="literal" >\n</TT > is newline; <TT CLASS="literal" >\f</TT > is formfeed.) </P ><P > <TT CLASS="literal" >ST</TT > is the printer status: </P ><DIV CLASS="table" ><A NAME="AEN1349" ></A ><P ><B >Table 5-7. Printer status codes</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL WIDTH="1*" TITLE="status"><COL WIDTH="1*" TITLE="description"><THEAD ><TR ><TH >Status code</TH ><TH >Description</TH ></TR ></THEAD ><TBODY ><TR ><TD ><CODE CLASS="constant" >00</CODE ></TD ><TD >Error</TD ></TR ><TR ><TD ><CODE CLASS="constant" >01</CODE ></TD ><TD >Self-test</TD ></TR ><TR ><TD ><CODE CLASS="constant" >02</CODE ></TD ><TD >Busy</TD ></TR ><TR ><TD ><CODE CLASS="constant" >03</CODE ></TD ><TD >Waiting while printing</TD ></TR ><TR ><TD ><CODE CLASS="constant" >04</CODE ></TD ><TD >Idle</TD ></TR ><TR ><TD ><CODE CLASS="constant" >07</CODE ></TD ><TD >Cleaning/filling ink heads</TD ></TR ><TR ><TD ><CODE CLASS="constant" >08</CODE ></TD ><TD >Not yet initialized/filling heads</TD ></TR ></TBODY ></TABLE ></DIV ><P > <TT CLASS="literal" >ER</TT >, if provided, is the error status: </P ><DIV CLASS="table" ><A NAME="AEN1389" ></A ><P ><B >Table 5-8. Printer error codes</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL WIDTH="1*" TITLE="error"><COL WIDTH="1*" TITLE="description"><THEAD ><TR ><TH >Error code</TH ><TH >Description</TH ></TR ></THEAD ><TBODY ><TR ><TD ><CODE CLASS="constant" >00</CODE ></TD ><TD >Fatal Error</TD ></TR ><TR ><TD ><CODE CLASS="constant" >01</CODE ></TD ><TD >Interface not selected</TD ></TR ><TR ><TD ><CODE CLASS="constant" >04</CODE ></TD ><TD >Paper jam</TD ></TR ><TR ><TD ><CODE CLASS="constant" >05</CODE ></TD ><TD >Out of ink</TD ></TR ><TR ><TD ><CODE CLASS="constant" >06</CODE ></TD ><TD >Paper out</TD ></TR ><TR ><TD ><CODE CLASS="constant" >0D</CODE ></TD ><TD >Paper gap error</TD ></TR ><TR ><TD ><CODE CLASS="constant" >10</CODE ></TD ><TD >Maintenance request</TD ></TR ><TR ><TD ><CODE CLASS="constant" >11</CODE ></TD ><TD >Tear-off mode selected</TD ></TR ><TR ><TD ><CODE CLASS="constant" >12</CODE ></TD ><TD >Double feed error</TD ></TR ><TR ><TD ><CODE CLASS="constant" >1C</CODE ></TD ><TD >Cutter position error</TD ></TR ><TR ><TD ><CODE CLASS="constant" >1D</CODE ></TD ><TD >Cutter jam</TD ></TR ><TR ><TD ><CODE CLASS="constant" >1E</CODE ></TD ><TD >Ink color error</TD ></TR ><TR ><TD ><CODE CLASS="constant" >23</CODE ></TD ><TD >Ink combination error</TD ></TR ></TBODY ></TABLE ></DIV ><P > <TT CLASS="literal" >IQ</TT > is the amount of ink left, as a (decimal!) percentage expressed in hexadecimal. The values are black, cyan, magenta, and yellow. 6 and 7 color printers usually specify two or three additional values for light cyan, light magenta, and gray. However, some low end 6-color printers specify only four values. </P ><P > For printers with different ink cartridge options, the following additional values may appear: </P ><DIV CLASS="table" ><A NAME="AEN1454" ></A ><P ><B >Table 5-9. Printer additional ink codes</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL WIDTH="1*" TITLE="code"><COL WIDTH="1*" TITLE="description"><THEAD ><TR ><TH >Ink code</TH ><TH >Description</TH ></TR ></THEAD ><TBODY ><TR ><TD ><CODE CLASS="constant" >NA</CODE ></TD ><TD >Ink cartridge is not inserted</TD ></TR ><TR ><TD ><CODE CLASS="constant" >RE</CODE ></TD ><TD > Ink cartridge information cannot be read </TD ></TR ><TR ><TD ><CODE CLASS="constant" >WE</CODE ></TD ><TD > Ink cartridge information cannot be written </TD ></TR ><TR ><TD ><CODE CLASS="constant" >CI</CODE ></TD ><TD > Ink cartridge is inserted, but has not been read </TD ></TR ></TBODY ></TABLE ></DIV ><P > <TT CLASS="literal" >WR</TT >, if provided, is the warning status: </P ><DIV CLASS="table" ><A NAME="AEN1482" ></A ><P ><B >Table 5-10. Printer warning codes</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL WIDTH="1*" TITLE="warning"><COL WIDTH="1*" TITLE="description"><THEAD ><TR ><TH >Warning code</TH ><TH >Description</TH ></TR ></THEAD ><TBODY ><TR ><TD ><CODE CLASS="constant" >10</CODE ></TD ><TD > Black ink low (Photo black on printers using UltraChrome® ink) </TD ></TR ><TR ><TD ><CODE CLASS="constant" >11</CODE ></TD ><TD >Cyan</TD ></TR ><TR ><TD ><CODE CLASS="constant" >12</CODE ></TD ><TD >Magenta</TD ></TR ><TR ><TD ><CODE CLASS="constant" >13</CODE ></TD ><TD >Yellow</TD ></TR ><TR ><TD ><CODE CLASS="constant" >14</CODE ></TD ><TD >Light cyan (presumably)</TD ></TR ><TR ><TD ><CODE CLASS="constant" >15</CODE ></TD ><TD >Light magenta (presumably)</TD ></TR ><TR ><TD ><CODE CLASS="constant" >17</CODE ></TD ><TD > Gray (with UltraChrome-compatible printers) </TD ></TR ><TR ><TD ><CODE CLASS="constant" >18</CODE ></TD ><TD >Matte black 1 (UltraChrome)</TD ></TR ><TR ><TD ><CODE CLASS="constant" >19</CODE ></TD ><TD >Matte black 2 (UltraChrome)</TD ></TR ></TBODY ></TABLE ></DIV ><P > <TT CLASS="literal" >RV</TT > is the firmware revision (one byte ASCII). </P ><P > <TT CLASS="literal" >AI</TT > is actuator information. These are two byte ASCII codes that indicate ``ink weight rank ID'' of KCMY, respectively. </P ><P > <TT CLASS="literal" >TC</TT >, if provided, is the total time of cleaning or ink filling (?). </P ><P > <TT CLASS="literal" >RC</TT >, if provided, is the firmware revision. </P ><P > <TT CLASS="literal" >INK:</TT > and <TT CLASS="literal" >MI</TT > are <SPAN CLASS="emphasis" ><I CLASS="emphasis" >not documented</I ></SPAN >. </P ></DD ><DT ><TT CLASS="literal" >* SM <CODE CLASS="varname" >BC</CODE >=2 00 <CODE CLASS="varname" >xx</CODE ></TT ></DT ><DD ><P > Set Status Reply Rate. <CODE CLASS="varname" >xx</CODE > is the repeat interval in seconds. If <CODE CLASS="varname" >xx</CODE > is <CODE CLASS="constant" >0</CODE >, the status is returned only when the printer's state changes. </P ></DD ><DT ><TT CLASS="literal" >* ST <CODE CLASS="varname" >BC</CODE >=1 01</TT ></DT ><DD ><P > Reply Printer Status. The reply is formatted as follows: </P ><DIV CLASS="informalexample" ><P ></P ><A NAME="AEN1556" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="screen" >@BDC PS\r\nST:<CODE CLASS="varname" >xx</CODE >;\f</PRE ></TD ></TR ></TABLE ><P ></P ></DIV ><P > <TT CLASS="literal" >\r</TT > is carriage return; <TT CLASS="literal" >\n</TT > is newline; <TT CLASS="literal" >\f</TT > is formfeed). If <CODE CLASS="varname" >xx</CODE > (the reply value) is <CODE CLASS="constant" >0</CODE > or <CODE CLASS="constant" >2</CODE >, automatic status update is disabled; if <CODE CLASS="constant" >1</CODE > or <CODE CLASS="constant" >3</CODE >, it is enabled. </P ></DD ><DT ><TT CLASS="literal" >* SM <CODE CLASS="varname" >BC</CODE >=1 01</TT ></DT ><DD ><P > Reply Printer Status Rate. The reply is formatted as follows: </P ><DIV CLASS="informalexample" ><P ></P ><A NAME="AEN1574" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><PRE CLASS="screen" >@BDC PS\r\nST:xx;\f</PRE ></TD ></TR ></TABLE ><P ></P ></DIV ><P > <TT CLASS="literal" >\r</TT > is carriage return; <TT CLASS="literal" >\n</TT > is newline; <TT CLASS="literal" >\f</TT > is formfeed). See <TT CLASS="literal" >SM <CODE CLASS="varname" >BC</CODE >=2</TT > above for the meaning of the return value. </P ></DD ><DT ><TT CLASS="literal" >* ?? <CODE CLASS="varname" >BC</CODE >=<CODE CLASS="varname" >xx</CODE > <CODE CLASS="varname" >y</CODE >[1] … <CODE CLASS="varname" >y</CODE >[xx]</TT ></DT ><DD ><P > 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 <TT CLASS="literal" >ST <CODE CLASS="varname" >BC</CODE >=1</TT > and <TT CLASS="literal" >SM <CODE CLASS="varname" >BC</CODE >=1</TT > commands. Note that in this case the number of bytes is variable! </P ></DD ><DT ><TT CLASS="literal" >* SM <CODE CLASS="varname" >BC</CODE >=2 00 02</TT ></DT ><DD ><P > <SPAN CLASS="emphasis" ><I CLASS="emphasis" >Function unknown</I ></SPAN >. Used on the STC 3000 at least when using roll feed. </P ></DD ><DT ><TT CLASS="literal" >* JE <CODE CLASS="varname" >BC</CODE >=1 00</TT ></DT ><DD ><P > <SPAN CLASS="emphasis" ><I CLASS="emphasis" >Function unknown</I ></SPAN >. On new printers (STC 740 or newer), this command should be sent after all data has been sent. If this command is not sent, and the printer is connected to a Windows system, the last page of the job will not print completely. The most likely explanation for for this is that the Windows driver typically puts the printer in 1284.4 packet mode, and this command has the effect of flushing the buffer in the printer. </P ></DD ><DT ><TT CLASS="literal" >* CO <CODE CLASS="varname" >BC</CODE >=8 00 <CODE CLASS="varname" >cutter</CODE >[1] <CODE CLASS="varname" >page</CODE >[1] <CODE CLASS="varname" >unit</CODE >[1] <CODE CLASS="varname" >position</CODE >[4]</TT ></DT ><DD ><P > Specify paper cutting on Stylus Photo 2200 (and perhaps some other printers). <CODE CLASS="varname" >cutter</CODE > must be 0. <CODE CLASS="varname" >page</CODE > should be one of the following: </P ><DIV CLASS="table" ><A NAME="AEN1621" ></A ><P ><B >Table 5-11. Paper cutting codes</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL WIDTH="1*" TITLE="code"><COL WIDTH="1*" TITLE="description"><THEAD ><TR ><TH >Code</TH ><TH >Description</TH ></TR ></THEAD ><TBODY ><TR ><TD ><CODE CLASS="constant" >0</CODE ></TD ><TD >All pages</TD ></TR ><TR ><TD ><CODE CLASS="constant" >1</CODE ></TD ><TD >First page only</TD ></TR ><TR ><TD ><CODE CLASS="constant" >2</CODE ></TD ><TD >Last page only</TD ></TR ></TBODY ></TABLE ></DIV ><P > <CODE CLASS="varname" >unit</CODE > should be one of the following: </P ><DIV CLASS="table" ><A NAME="AEN1645" ></A ><P ><B >Table 5-12. Paper cutting units</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL WIDTH="1*" TITLE="code"><COL WIDTH="1*" TITLE="description"><THEAD ><TR ><TH >Code</TH ><TH >Description</TH ></TR ></THEAD ><TBODY ><TR ><TD ><CODE CLASS="constant" >0</CODE ></TD ><TD >1/360 in.</TD ></TR ><TR ><TD ><CODE CLASS="constant" >1</CODE ></TD ><TD >1/720 in.</TD ></TR ><TR ><TD ><CODE CLASS="constant" >2</CODE ></TD ><TD >1/1440 in.</TD ></TR ></TBODY ></TABLE ></DIV ><P > This command should be used twice. The first <TT CLASS="literal" >CO</TT > command specifies where the page will be cut at the top, and the second specifies where the page will be cut at the bottom. This permits cutting both the top and the bottom of the page. </P ></DD ></DL ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="c464.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="book1.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="x1669.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >ESC/P2</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="c464.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Appropriate Remote Commands</TD ></TR ></TABLE ></DIV ></BODY ></HTML >