NAME CMD_WRITE -- send output to the printer FUNCTION This function causes a buffer of characters to be written to the current printer port (usually parallel or serial). The number of characters is specified in io_Length, unless -1 is used, in which case output is sent until a 0x00 is encountered. The Printer device, like the Console device, maps ANSI X3.64 style 7-bit printer control codes to the control code set of the current printer. The ANSI codes supported can be found below. NOTES Not all printers will support all functions. In particular you may not assume that the MARGINS or TABS can be set. Close to half the supported printers don't fully implement one or the other. If you want the features of margins or tabs you will need to fake it internally by sending out spaces. Note that the printer device may have already sent out a "set margins" command to the printer. If you are faking your own margins, be sure to cancel the old ones first. (use the "aCAM" command) Defaults are set up so that if a normal AmigaDOS text file is sent to PRT:, it has the greatest chance of working. (AmigaDOS text files are defined as follows:) tabs - every 8 CR (0x0D) - moves to start of current line LF (0x0A) - moves to start of next line IO REQUEST io_Message mn_ReplyPort set io_Device preset by OpenDevice io_Unit preset by OpenDevice io_Command CMD_WRITE io_Length number of characters to process, or if -1, process until 0x00 encountered io_Data pointer to block of data to process RESULTS io_Error : if CMD_WRITE succeeded, then io_Error will be zero. Otherwise io_Error will be non-zero. SEE ALSO printer.h, parallel.device, serial.device, Preferences ANSI X3.64 style COMMANDS aRIS ESCc hard reset aRIN ESC#1 initialize to defaults aIND ESCD true linefeed (lf) aNEL ESCE return,lf aRI ESCM reverse lf * aSGR0 ESC[0m normal character set aSGR3 ESC[3m italics on aSGR23 ESC[23m italics off aSGR4 ESC[4m underline on aSGR24 ESC[24m underline off aSGR1 ESC[1m boldface on aSGR22 ESC[22m boldface off aSFC SGR30-39 set foreground color aSBC SGR40-49 set background color aSHORP0 ESC[0w normal pitch aSHORP2 ESC[2w elite on aSHORP1 ESC[1w elite off aSHORP4 ESC[4w condensed on aSHORP3 ESC[3w condensed off aSHORP6 ESC[6w enlarged on aSHORP5 ESC[5w enlarged off aDEN6 ESC[6"z shadow print on aDEN5 ESC[5"z shadow print off aDEN4 ESC[4"z doublestrike on aDEN3 ESC[3"z doublestrike off aDEN2 ESC[2"z Near Letter Quality (NLQ) on aDEN1 ESC[1"z NLQ off aSUS2 ESC[2v superscript on aSUS1 ESC[1v superscript off aSUS4 ESC[4v subscript on aSUS3 ESC[3v subscript off aSUS0 ESC[0v normalize the line * aPLU ESCL partial line up * aPLD ESCK partial line down * aFNT0 ESC(B US char set (default) or Font 0 aFNT1 ESC(R French char set or Font 1 aFNT2 ESC(K German char set or Font 2 aFNT3 ESC(A UK char set or Font 3 aFNT4 ESC(E Danish I char set or Font 4 aFNT5 ESC(H Sweden char set or Font 5 aFNT6 ESC(Y Italian char set or Font 6 aFNT7 ESC(Z Spanish char set or Font 7 aFNT8 ESC(J Japanese char set or Font 8 aFNT9 ESC(6 Norweign char set or Font 9 aFNT10 ESC(C Danish II char set or Font 10 aPROP2 ESC[2p proportional on * aPROP1 ESC[1p proportional off * aPROP0 ESC[0p proportional clear * aTSS ESC[n E set proportional offset * aJFY5 ESC[5 F auto left justify * aJFY7 ESC[7 F auto right justify * aJFY6 ESC[6 F auto full justify * aJFY0 ESC[0 F auto justify off * aJFY3 ESC[3 F letter space (justify) * aJFY1 ESC[1 F word fill(auto center) * aVERP0 ESC[0z 1/8" line spacing aVERP1 ESC[1z 1/6" line spacing aSLPP ESC[nt set form length n aPERF ESC[nq set perforation skip to n lines (n>0) aPERF0 ESC[0q perforation skip off aLMS ESC#9 Left margin set * aRMS ESC#0 Right margin set * aTMS ESC#8 Top margin set * aBMS ESC#2 Bottom margin set * aSTBM ESC[Pn1;Pn2r set T&B margins * aSLRM ESC[Pn1;Pn2s set L&R margin * aCAM ESC#3 Clear margins aHTS ESCH Set horiz tab * aVTS ESCJ Set vertical tabs * aTBC0 ESC[0g Clr horiz tab * aTBC3 ESC[3g Clear all h tab * aTBC1 ESC[1g Clr vertical tabs * aTBC4 ESC[4g Clr all v tabs * aTBCALL ESC#4 Clr all h & v tabs * aTBSALL ESC#5 Set default tabs (every 8) aEXTEND ESC[Pn"x Extended commands This is a mechanism for printer drivers to support extra commands which can be called by ANSI control sequences aRAW ESC[Pn"r Next 'Pn' chars are raw (ie. they are not parsed by the printer device, instead they are sent directly to the printer. (*) indicates that sending this command may cause unexpected results on a large number of printers.