SATO Europe NV makes no guarantee of any kind with regard to this material, including,
but not limited to, the implied guaranties of merchantability and fitness for a particular
purpose.
SATO Europe NV shall not be liable for errors contained herein or for any incidental consequential damages in connection with the furnishing, performance, or use of this material.
This document contains proprietary information which is protected by copyright.
All rights are reserved.
No part of this document may be reproduced or issued to third parties in any form whatsoever without the express permission of SATO Europe NV.
The information in this document is subject to change without notice.
This section presents the commands that are used with the SATO Series “e” and PRO
printers to produce labels with logos, bar codes and alphanumeric data. All of the
SATO Programming Language commands use the same syntax. Some commands
reference a physical point on the label using horizontal and vertical dot reference
numbers. The allowable range for these references is dependent upon the particular
printer to accomodate different print widths and resolutions. These differences are
noted in tables under the commandsaffected
The following information is presented in this section:
• The SATO Programming Language
• Selecting Protocol Control Codes
• Using Basic
• The Print Area
• Command Codes
THE SATO PROGRAMMING LANGUAGE
A programming language for a printer is a familiar concept to most programmers. It is
a group of commands that are designed to use the internal intelligence of the printer.
The commands, which are referred to as SATO Command Codes, contain
non-printable ASCII characters (such as <STX>, <ETX>, <ESC>) and printable
characters. These commands must be assembled into an organized block of code to
be sent as one data stream to the printer, which in turn interprets the command codes
and generates the desired label output. The programmer is free to use any
programming language available to send the desired data to the printer.
The command codes used by the printers are based upon “Escape” (1B
hexadecimal) sequences. Typically there are four types of command sequences:
<ESC>{Command}
These commands generally tell the printer to perform a specific action, like “clear the
memory.”
<ESC>{Command} {Data}
Commands with this format tell the printer to perform a specific action which is
dependent upon the following data, like “print X labels”, where the value for X is
contained in the data.
<ESC>{Command} {Parameter}
Section 1. Programming Concepts
Page 1-2SATO Programming Reference
These commands set the operational parameters of the printer, like “set the print
speed to 3.”
<ESC> {Command} {Parameter} {Data}
Some commands can contain both Parameter and Data elements, such as “print a
Code 39 symbol containing the data.”
SELECTING PROTOCOL CONTROL CODES
Protocol codes are the special control characters that prepare the printer to receive
instructions. For example, the <ESC> character tells the printer that a command code
will follow and the <ENQ> character asks for the printer status. There are two
pre-defined different sets of Protocol Control codes to choose from. Each set is made
up of six special characters. The Standard Protocol Control codes are non-printable
characters, and the Non-Standard Protocol Control codes are printable characters.
The Non-Standard set may be useful on host computers using protocol converters or
in an application where non-printable ASCII characters cannot be sent from the host.
This manual uses the Standard Protocol Control codes for all of the examples.
Alternately, the user may define and download a set of custom Protocol Control
Codes (see Appendix E).
The Protocol Control codes are selected by DIP switch DSW2-7.
USING BASIC
It may be useful to test your printer using a BASIC program on a PC. You may also
write your actual production programs in BASIC. Whatever the reason, if you will be
working in BASIC, some of the following hints may help you get started:
1. Set the WIDTH of the output device to 255 characters to avoid automatically
sending <CR> and <LF> characters after every line. The command string should
be continuous and uninterrupted by <CR> and/or <LF> commands. The examples
given in this manual are printed on separate lines because they will not fit on one
line and do not contain any <CR> and/or <LF> characters. If these characters are
needed, they are explicitly noted by the inclusion of <CR> and<LF> notations.
2. If you are using the printer’s RS232C interface, it is necessary to set the COM
porton on the PC such that the CTS and DSR signals will be ignored. Send your
OPEN “COM” statement in the following way:
OPEN “COM1:9600,E,8,1,CS,DS”AS #1
This sets the RS232C communication parameters of the host PC’s COM1 port for
9600 baud, Even parity, 8 Data bits, 1 Stop bit and directing the port to ignore the
CTS and DSR control signals.
3. You may want to minimize keystrokes and program size by assigning the
<ESC>character to a string variable since this character is used quite often.
The following two examples in BASIC show a typical example using thesehints. Both
of these examples use the Standard Protocol codes.
PRINTING WITH THE PARALLEL PORT
PRINTING WITH THE RS232C PORT
5 REM CL612 Parallel ExampleIdentifies the program as a CL612 parallel
port print label. The “REM” prevents this
data from being sent to the printer and
displays it only on thescreen.
10 E$=CHR$(27) Sets the “E$” string as an <ESC>character
20 WIDTH “LPT1”255 Sets the width of the output to 255
characters
30 LPRINT E$;"A";Sends an “<ESC>A” command code tothe
LPT1 parallel port
40 LPRINT E$;"H400";E$;"V100";E$;"XL1SATO"; Sends the data “SATO” to be to be placed
400 dots horizontally and 100dots
vertically on the label and printed in the
“XL” font.
50 LPRINT E$;"Q1"; Instructs the printer to print one label.
60 LPRINT E$; “Z”; Tells the printer that the last commandhas
been sent. The printer can nowcreate and
print the job.
REM CL612 RS232 ExampleIdentifies the program as a CL612e
RS232C port print label. The “REM”
prevents this data from being sent to
the printer and displays it only on the
screen.
10 E$=CHR$(27)Sets the“E$”string as an
<ESC>character.
Section 1. Programming Concepts
Page 1-4SATO Programming Reference
THE PRINT AREA
The maximum print area for the different printer models is listed in Table 1. Many of
your label applications may not require labels that fill the entireprint area, therefore it
is important to understand how to work with labelsthat do not use the entire print area.
The goal is to help you avoid printing where no label exists, which may lead to print
head damage, not to mentionfrustration when you cannot see the printed output.
The diagram below illustrates the maximum print area and a sample 2 inch wide by 3
inch long label placed within this area. As can be seen, your label will be oriented
against the inside left edge of the printer as viewed from the front of the printer. The
normal reference point is located at the H1, V1 position of the print area in the normal
print orientation (no rotation).
OPEN COM1:9600,N,8,1,CS,DS AS #1 Opens the COM1 port for output and
sets the parameters as 9600 baud, No
parity, 8 Data bits, 1 Stop bit and
instructs the port to ignore the CTS and
DSR control signals.
30 PRINT #1,CHR$ (2);Sends an <STX> (ASCII Code a
decimal “2”) to the printer instructing it
to prepare to receive a message.
50 PRINT #1,E$;"A"; Sends an “<ESC>A” command code to
Print Port #1 opened by statement 20
above.
60 PRINT #1,
E$;"H400";E$;"V100";E$;"XL1SATO";
Sends the data “SATO” to be placed
400 dots horizontally and 100 dots
vertically on the label and printed in
the“XL” autosmoothed font.
50 PRINT #1, E$;"Q1";Instructs the printer to print a quantity of
one label.
60 PRINT #1, E$; “Z”;Tells the printer that the last
commandhas been sent. The printer
can nowcreate and print the job.
70 PRINT #1,CHR$ (3);Sends an <ETX> (ASCII Code decimal
“3”) to the printer telling it that this is the
end of the message.
Identifies the program as a CL612e
RS232C port print label. The “REM”
prevents this data from being sent to
the printer and displays it only on the
screen.
Section 1. Programming Concepts
SATO Programming ReferencePage 1-5
l
There are three methods available to make sure your printed output will appear
correctly on your label. They are as follows:
1. Media Size Command. Use the <ESC>A1 Media Size Command. This command
specifies the width and length of the label. The printer will automatically calculate
the correct offsets for printing labels of that size. However, if you specify a label
size with this command, the labels loaded should match the size specified to correctly position the label.
2. Base Reference Point Command. Send the <ESC>A3 Base Reference Point
command as part of your data to the printer to set a new base reference point for
your label.
Calculate the distance (in dots) from the normal base reference point to the closest edge of the label.
For an M-8400RVe 8 dpmm printer , this would be:
LABEL WIDTH = 2" X 25.4 MM/IN X 8 DPMM = 406 DOTS
The new Base Reference Point then becomes:
NEW BASE REFERENCE POINT = MAXIMUM PRINT WIDTH - LABEL WIDTH
= (832 DOTS) - (406 DOTS) = 426 DOTS
Issue the Base Reference Point command <ESC>A3 after the Start command in
your data stream.
<ESC>A<ESC>A3H0426V0001. . . . . .
This resets the reference point for all the following data.
3. Add the correct offset to all horizontal commands. Use the normal base refer-
ence point from the print area and use the horizontal position for each field to
properly locate it on the label.
Calculate the distance (in dots) from the normal base reference point to the closest edge of the label.
For an M-8400RVe 8 dpmm printer:
Label Width = 2" x 25.4 mm/in x 8 dpmm = 406 dots
New Base Reference Point = Maximum Print Width - Label Width
= (832 dots) - (406 dots) = 426 dots
Each <ESC>H command would have the value “426” added to it to correctly position each field.
Note: The <ESC>A3 Base Reference Point command can also shift the reference
point in a negative direction (toward the outside edge of the label).
The Command Code subsection contains a sample label output for each command
code. These samples reflect how the printed information would appear on a five inch
wide label. If you want to test any of the sample label outputs and are using labels
less than five inches in width, we suggest that you add the Base Reference Point
command to the data stream in order for the images to print on your labels.
You must be careful not to print off the label surface as the label provides a heat sink
Section 1. Programming Concepts
SATO Programming ReferencePage 1-7
for the print head elements. Doing so will cause irrepairable damage to the head. This
damage is not covered under the print head warranty. The addition of the Base
Reference Point command to the sample data stream may help to adjust the print for
your labels. See the following two examples or refer to the Base Reference Point
command description.
For example, the following illustrates a sample data stream for a M-8400RVe printer
and the resulting label assuming a 4 inch wide label:
If you are using a 2 inch wide label, the entire image may not appear on your label. By
adding the following Base Reference Point command to the second line of the data
stream, the base reference point will be changed, causing theimage to be shifted over
toward the inside of the printer where it can beprinted on the narrower label.
The image is moved horizontally to the right 2 inches (406 dots) so that itcan be
printed on a 2 inch wide label. For more information, see the Base Reference Point
command description.
Section 1. Programming Concepts
Page 1-8SATO Programming Reference
ROTATED FIELDS
The M-8400RVe printer can rotate each print field in 90° increments using the Rotate
command.
• <ESC>% - The field rotates, but the base reference point for the field remains
the same.
The following data stream will rotate the print field but will not change the base
reference point of the field:
There are some types of commands that must have a value specified before a label
can be printed. If the data stream does not contain these commands, a default value
is assumed. The commands and the corresponding default values are:
COMMANDDEFAULTNOTE
Print Rotation 0°(1)
Vertical Reference Point0 (1)
Horizontal Reference Point0 (1)
Character Pitch 2 (1)
Base Reference Point H=0, V=0 (2)
Character Expansion1(1)
Print Darkness-(1)(3)
Print Speed (DSW2-8 = On)-(2)(3)
Print Speed (DSW2-8 = Off)-(2)(3)
Proportional SpacingEnabled(1)
Cutter CommandDisabled (1)
Section 1. Programming Concepts
Page 1-10SATO Programming Reference
NOTES:
1. The settings for these commands will revert to the default value when the printer
receives an <ESC>Z or an <ESC>*.
2. The values transmitted with these commands will remain in effect until a new
command is received.
3. This default setting is printer dependent.
OPPOSITE HAND”SE” PRINTERS
The standard “Se” print engine is referred to as a“right-hand”printer (i.e., when facing
the Control Panel, the label comes out from left to right). The M-8485Se, M-8460Se
and M-8490Se are also available in a “left-hand” (i.e., the label comes out right-to-left)
version. The M-8459Se is only available in the standard Right-Hand configuation.
The only difference in the print area is the horizontal base reference point for the
label.With the standard “Se” printer, the reference point is the first print position
nearest the inside frame. With the “left-hand” version, the reference point is the first
print position away from the frame. The same command stream sent to both printers
should print an identical label except the image may be shifted because of the relative
positioning of the label under the print head.
SECTION 2.
COMMAND CODES
This section contains the basic Command Codes for the SATO “e” and PRO Series
printers. Commands for the oprions and specialized functions are provided in the
following sections. Commands must be sent to the printer in an organized fashion in
order for the label(s) to print.
The purpose of this section is to:
• Explain the different commands and provide examples of their usage.
• To provide a detailed reference for programming the printers.
Each command begins on a separate page with its own heading. A uniform layout is
used to help you find key information about each command. For each Command
Code in this section, there will be a sample data input stream to the printer and the
expected print output. By studying the examples, you can learn how to use the
particular command within a whole block of printer code. Pay particular attention to
the “Special Notes” with each command to learn other important information.
The subject commands are highlighted in bold letters in the Reference Sheets. There
are two parts of most, but not all, commands. The first is the command character
which immediately follows the <ESC> code. It is always an upper case alpha or a
special character (such as an “&” or a “%”). It is never a lower case alpha character. If
the command requires additional variable information, it is represented by a group of
lower case alpha characters immediately following the command character. For
example, if an aaaabb is listed following the basic command, the printer will look for
six characters immediately following the command. The first four would represent the
value of aaaa and the next two the value of bb.
The maximum number of characters defined in a parameter is represented by the
number of characters shown in the command structure. For example, a command
followed by an aaaa can have up to four characters. In general, commands with only
one parameter following the command can be entered without the leading zeroes.
However, certain commands require the exact number of matching characters. A
command with two parameters listed following the command code without a comma
delimiter, such as aaaabbbb require the exact number of digits to be entered. If the
value of aaaa is “800” and the value of bbbb is “300”, then the parameters must be
entered as “08000300”. It is recommended that you make it a practice to always enter
leading zeros to prevent any mistakes.
NOTE: These examples assume the use of the Standard Protocol Command
Codes, a parallel interface and a 5 inch wide label in a M-8400RVe printer.
The labels for all other printers will be similar, but, because of different
resolutions and print widths may be larger or scaled differently.
An alphabetical listing of the command codes is contained in Appendix A:Command
Code Quick Reference.
SATO Programming ReferencePage 2-1
Section 2: Command Codes
Bar Codes
Command Structure1:3 narrow/wide bar ratio: <ESC>Babbcccd
2:5 narrow/wide ratio: <ESC>BDabbcccd
1:2 narrow/wide bar ratio: <ESC>Dabbcccd
a= 0 Codabar
1 Code 39
2 Interleaved 2 of 5 (I 2/5)
3 UPC-A / EAN-13
4 EAN5 Industial 2 of 5
6 Matrix 2 of 5
7 reserved
8 reserved
9 reserved
A MSI
B reserved
C Code 93
D reserved
E UPC-E
F Bookland
G Code 128
I UCC 128
bb= Number of dots (01-12) for narrow bar and narrow
space
ccc= Bar height in dots (001-999)
d= UCC 128 only. Not used for other bar code types
0 No human readable text
1 Human readable at top
2 Human readable at bottom
Example: <ESC>BD103200
Placement: Immediately preceding data to be encoded
Default: None
Command Function To print bar code images on a label. With this command, there are 14
standard bar code symbologies available to be printed and three two
dimensional symbols (see Section 5. Two Dimensional Symbols). Each of
the bar code symbologies are unique, and it is important to know the
differences. See Appendix B for specific information on using each
individual bar code symbol.
SATO Programming ReferencePN 9001096 Rev. APage 2-3
Special Notes 1. UPC and EAN bar codes are not affected by the different types of
narrow to wide ratios. Instead, the <ESC>D command adds
descender bars to these codes where needed to meet UPC specifications. The <ESC>BD command puts desender bars and human
readable text below the symbol.
2. The Code 128, UCC 128, MSI, and Code 93 bar codes are not
affected by the narrow to wide ratios.
3. The Codabar, Code 39, Industrial 2 of 5, and Matrix 2 of 5 bar codes
are affected by the Character Pitch command. This command must
be placed before the Bar Code command.
4. Because of their unique characteristics, two-dimensional (2D) symbols are covered separately.
5. For UCC128, the FNC1 code is automatically inserted and the Mod
10 and Mod 103 check digits are automatically calculated. For the
MSI bar code, the check digit is not automatically calculated.
6. The <ESC>D and <ESC>BD commands are not valid for the MSI,
Code 128, Code 93, UPC-E, Bookland, UCC128 and Postnet symbologies.
SATO Programming ReferencePN 9001096 Rev. APage 2-7
Section 2: Command Codes
Bar Codes, Expansion
Command Structure<ESC>BWaabbb
aa=Expansion factor by which the width of all bars and
spaces will be increased (01-12)
bbb= Bar height by dot (004-999 dots)
Example: <ESC>BW02100
Placement:Immediately follows the <ESC>BT command and
precedes data to be encoded.
Default: None
Command Function This command works together with the <ESC>BT command to specify an
expansion factor and the bar code height for the particular symbol being
printed.
Input to Printer
Printer Output
Special Notes 1. This command must be preceded by the Variable Ratio Bar Codes
2. The following bar codes will be affected by the Character Pitch command: Codabar, Code 39, Interleaved 2 of 5, Matrix 2 of 5.
Page 2-8SATO Programming Reference
Section 2: Command Codes
Bar Codes, Variable Ratio
Command Structure<ESC>BTabbccddee
a=Bar Code Symbol:
bb= Narrow space in dots (01-99)
cc= Wide space in dots (01-99)
dd= Narrow bar in dots (01-99)
ee= Wide bar in dots (01-99)
0 Codabar
1 Code 39
2 Interleaved 2 of 5
5 Industrial 2 of 5
6 Matrix 2 of 5
Example: <ESC>BT101030103
Placement: Following print position commands and preceding
<ESC>BW
Default: Current setting
Command Function To print a bar code with a ratio other than those specified through the
standard bar code commands (B,BD, and D). This is done through
individual control of each of the bar code elements (bars, spaces) as
shown above. Remember that this command only applies to the five bar
code types shown.
SATO Programming ReferencePN 9001096 Rev. APage 2-9
Section 2: Command Codes
Special Notes 1. This command must be immediately followed by the <ESC>BW Bar
Code Expansion command.
2. You may use only one variable ratio bar code per label.
3. If the data specified in this command is incorrect, the command is
ignored and the ratio used will be based on the previous setting.
Page 2-10SATO Programming Reference
Section 2: Command Codes
Base Reference Point
Command Structure<ESC>A3H-aaaa-Vbbbb
-
aaaa
bbbb
Example:
Placement: Preceding all images that are based on the new base
Default:Current V and H offset setting in the printer
Command Function To establish a new base reference point for the current label. The base
reference point is the top left corner or ìoriginî from where all print position
commands are based. This command may be very helpful when using
labels less than four inches wide to place images on the printable label
surface. It may also be used to move images past preprinted fields on a
label.
Input to Printer <ESC>A<ESC>L0202
<ESC>H0025<ESC>V0025<ESC>WB0MNORMAL REFERENCE POINT
<ESC>A3H0300V0075
<ESC>H0100<ESC>V0050<ESC>WB0MNEW REFERENCE POINT
<ESC>Q1<ESC>Z
This character is optional. When present, it specifies
=
that The horizontal offset is in the negative direction. If
it is left out the offset direction is positive.
Horizontal Print Offset (-Hmax to +Hmax)
=
Vertical Print Offset (-Vmax to +Vmax)
=
<ESC>A3H100V0050
reference point
configuration
Printer Output
SATO Programming ReferencePN 9001096 Rev. APage 2-11
Section 2: Command Codes
Special Notes 1. Use of this command will set the Vertical/Horizontal Offset setting of
the printer configuration until a new Base Reference Point command
is issued or the setting is changed from the operator panel.
2. This command may be used more than once in a print job.
3. An alternative to using this command is to make changes to your current Horizontal and Vertical Print Position commands.
Example: Let us say the current base reference point is H=1, V=1 and
you wish to move all the fields on your label downward vertically by
150 dots. You could either (1) add the Base Reference Point
command or (2) change all the vertical position commands by an
additional 150 dots.
4. For a more detailed example of the Base Reference Point command,
see Section 1. Print Area.
5. The "Se" print engines can print as close as 2 mm to the inside edge
of the label.
6. The printers will not “wrap” (i.e. if any part of a character or image
extends beyond the last print dot position, it will disappear and not be
visible on any part of the label).
7. See Table 1 in Section 1. Programming Concepts for values of Hmax
and Vmax.
Page 2-12SATO Programming Reference
Section 2: Command Codes
Characters,Custom-Designed
Command Structure Store Command: <ESC>Tabcc
Recall Command: <ESC>Kab90cc
a=1 16x16 matrix
2 24x24 matrix
b= Specifies the character encoding method for the data
stream
H Hexadecimal characters
B Binary characters
cc= Memory location to store/recall the character. Valid
memory locations are 21 to 52 (counting in Hex) or “!”
or “R” in Binary.
(data)=Data to describe the character
Example: <ESC>T1H3F
<ESC>K1H903F
See Appendix C for a more detailed explanation
Placement: The Store command is typically sent in its own data
stream to the printer, between the Start/Stop
commands. The Recall command is sent in a
secondary data stream to print the character, and
follows any necessary position or size commands.
Default: None
Command Function To allow for the creation, storage, and printing of custom characters, such
as special fonts or logos. Up to 50 individual characters may be stored in
the custom character volatile memory.
Printer InputSee Appendix C for a detailed explanation.
SATO Programming ReferencePN 9001096 Rev. APage 2-13
Section 2: Command Codes
Printer Output
Special Notes 1. When printing the custom character using the Recall command, the
character is affected by the following commands: Character Expansion
Character Pitch Line Feed Rotate, Fixed Base Reference Point
2. The characters are stored in volatile memory and must be reloaded if
the printer power is lost.
3. Do not use ASCII <CR> or <LF> characters (carriage return or line
feed) as line delimiters within the graphic data or the actual image will
not be printed as specified.
Page 2-14SATO Programming Reference
Section 2: Command Codes
Character Expansion
Command Structure <ESC>Laabb
aa=Multiple to expand horizontally (01-12)
bb=Multiple to expand vertically (01-12)
Example: <ESC>L0305
Placement: Preceding the data to be expanded
Default:<ESC>L0101
Command FunctionTo expand characters independently in both the horizontal and vertical
directions. The command allows you to enlarge the base size of each
font (except the vector font) up to 12 times in either direction. Expanded
characters are typically used for added emphasis or for long distance
readability.
Input to Printer<ESC>A<ESC>H0100<ESC>V0100<ESC>XMSATO
Special Notes 1. This command will expand the following fonts: Fonts U, S, M, XU,
XS, XM, OA & OB and fonts WB, WL, XB and XL.
2. This command will also affect the following commands: Character
Pitch Characters, Custom-Designed
3. The Character Expansion value is in effect for the current print job
until a new expansion command is specified.
4. The Line and Box command, if used within the data stream, may
return all subsequent text to the default expansion of 1 x 1. Therefore, either send the Character Expansion command before all
printed data, or send Line and Box commands last, preceding the
<ESC>Q Quantity command.
SATO Programming ReferencePN 9001096 Rev. APage 2-15
Section 2: Command Codes
Character, Fixed Spacing
Command Structure <ESC>PR
Example: See Above
Placement:Preceding the data
Default:The default is Proportional Spacing.
Command Function To reset proportional spacing and place the printer back to fixed
Set to proportional spacing Reset to fixed spacing
Special Notes 1. Once this command is sent in the data stream, it is in effect until the
SATO Programming ReferencePN 9001096 Rev. APage 2-19
end of the print job unless a reset command is sent.
Section 2: Command Codes
Clear Print Job(s) & Memory
Command Structure
Command Function To clear individual memory or buffer areas of the printer.
Input to Printer:<ESC>A
Printer Output:There is no printer output as a result of this command. The current print
<ESC>*a
a=If the “a” parameter is not included with this command
and the printer is in the multi-buffer mode, this
command clears all print jobs in the printer memory,
including the current print job.
a=If “a” is included with this command, it specifies the
internal memory section to be cleared. T To clear the
custom character memory & To clear the form overlay
memory X To clear all internal memory
Example: <ESC>*
<ESC>*&
Placement: This command should be sent to the printer as an
independent data stream.
Default: None
<ESC>*
<ESC>Z
job in the buffer will be terminated and all other print jobs in the buffer
cleared.
Special Note 1. See Expanded Memory Functions for variations of this command
used to clear data from the optional Expanded Memory.
2. It is not necessary to clear the printer’s memory between each print
job.
3. The primary purpose of this command is to clear all print jobs in the
multi-buffer mode. The “a” parameter can be used in either the multibuffer or single job mode to clear specific parts of the memory.
4. When the “a” parameter is used, the section of memory specified will
not be cleared until the label is printed.
Page 2-20SATO Programming Reference
Section 2: Command Codes
Continuous Forms Printing
Command Structure None
The printer locates the end of an adhesive label by sensing the backing
between labels or through the use of an eye-mark (black rectangle on the
reverse side of the backing). It locates the end of a tag from a notch, eyemark, or a hole between tags. Both sensors should be disabled when
printing continuous forms by placing the Label Sensor Selection switch
(DSW3-3) in the ON position. See the specific printer Operator Manual for
instructions on configuring the printer using the DIP switch array.
If you will be using continuous labels or tags, the printer must be told to
stop feeding in another manner. The length is determined by the position
of the last printed image on the label or tag. The printer will stop feeding
when this last field is finished printing. The length may be increased with
printed spaces (20 hexadecimal) if necessary. There is no command
code to control label length.
SATO Programming ReferencePN 9001096 Rev. APage 2-21
Section 2: Command Codes
Copy Image Area
Command Structure <ESC>WDHaaaaVbbbbXccccYdddd
aaaa= Horizontal position of the top left corner of the area
bbbb=Vertical position of the top left corner of the area
cccc= Horizontal length of the image area to be copied
dddd= Vertical length of the image area to be copied
Example:<ESC>WDH0100V0050X0600Y0400
Placement:Anywhere within the data stream, after specifying the
location of the duplicate image.
Default: None
Command Function To copy an image from one location to another on the same label. This
may be useful for duplicating individual fields or entire sections of the
label with only one command.
Special Notes1. Use the Print Position commands (V and H) to locate the new area for
the duplicate image.
2. Position of the new target area must not be inside the original image.
3. If you use the Rotate command, V, H, X and Y axis will be reversed.
4. If the reference area of the target image exceeds the print area, it will
not be printed.
5. See Table 1 in Section 1.Programming Concepts for values of Hmax
and Vmax.
SATO Programming ReferencePN 9001096 Rev. APage 2-23
Section 2: Command Codes
Cut
Command Structure ESC>~Aaaaa
aaaa=Number of labels to print between each cut (1-9999)
Example: <ESC>~A2
Placement: Preceding the <ESC>Q Print Quantity command.
Default:<ESC>~A1 (if cutter enabled)
Command FunctionTo control the cutting of labels when using a SATO cutter unit with the
printer printer. This command allows the cutting of a multi-part tag or label
at a specified interval within a print job. It differs from the <ESC>~ Cut Job
command in that it does not interact with the quantity command.
Printer OutputThis set of commands will print 6 labels (3 x 2) with two labels between
each cut.
Special Notes 1. You must have the optional printer Cutter to use this function. Contact
your SATO representative for more information.
2. To use this command, the printer configuration must have the cutter
option enabled. See Printer Configuration commands in this section
manual.
3. If the cutter option has been enabled in the printer configuration and
the cut value (a = 0), the cutter is inactive.
4. A “~” (tilde) character or <NUL> (ASCII 00 Hex) character can be can
be used in this command. It is recommended that the “~” be used
whenever possible.
5. 5. When using the Cutter command, the total number of labels printed
is the product of the cut value and the print quantity.
SATO Programming ReferencePN 9001096 Rev. APage 2-25
Section 2: Command Codes
Cut Last
Command Structure <ESC>~B
Example: <ESC>~B
Placement: Separate data stream sent to the printer
Default: None
Command Function To control the cutting of labels when using a SATO cutter unit with the
printer. This command allows the cutting of a printed multi-part tag or label
that is left in the printer after a job is cut.
Input to Printer<ESC>A
<ESC>~B
<ESC>Z
Printer OutputThis command will feed the last printed label to the cut position, cut the
label and then back feed to the head position in preparation for printing
the next job.
Special Notes1. You must have the optional printer Cutter to use this function. Contact
Page 2-26SATO Programming Reference
your SATO representative for more information.
Section 2: Command Codes
Fonts U, S, M, OA, OB, XU, XS & XM
Command StructureFont XU: <ESC>XU Font U: <ESC>U
Font XS: <ESC>XSFont S: <ESC>S
Font XM: <ESC>XMFont M: <ESC>M
Font OA: <ESC>OAFont OB: <ESC>OB
Example:See above
Placement: Preceding the data to be printed
Default:None
Command Function To print text images on a label. These are eight of the built-in fonts
available on the printer. All matrices include descenders.
Non-ProportionalProportional(1)
U 5W x 9H dot matrixXU 5W x 9H dot matrix
S8W x 15H dot matrixXS17W x 17H dot matrix
M 13W x 20H dot matrix XM 24W x 24H dot matrix
OAOCR-A font (see note 7 for matrix)
OB OCR-B font (see note 7 for matrix)
(1) These fonts will be printed with proportional spacing only if preceded by an <ESC>PS
command.
SATO Programming ReferencePN 9001096 Rev. APage 2-27
Section 2: Command Codes
Printer Output
Special Notes 1. Characters may be enlarged through the use of the Character Expan-
sion command.
2. Character spacing may be altered through the use of the Character
Pitch command. The default is 2 dots between characters. It is recommended to use a spacing of 5 dots for OCR-A and 1 dot for OCR-B.
3. You may also create custom characters or fonts. See the <ESC>T
Custom-Designed Characters command.
4. A font must be defined for each field to be printed. There is no default
font.
5. Fonts U, S, M, OA and OB are identical to fonts U, S, M, OA and OB
on the SATO M-8400 printer. (Note: These fonts, except the OA and
OB fonts which are fixed in size, will be 33% smaller on a 300 dpi
printer and 67% smaller on a 600 dpi printer)
6. The proportionally spaced fonts XU, XS, XM, XL and XA can be
printed with fixed spacing using the <ESC>PS Proportional Space
command.
7. The matrices for the OA and OB fonts are scaled so that they will
remain a constant size according to the OCR-A and OCR-B specifications when printed on different resolution printers.
Command Function To print point size characters created using font definitions.
Input to Printer<ESC>A
<ESC>V0100<ESC>H0100
<ESC>RDA00,P28,P28,CG Times
<ESC>V0200<ESC>H0100
<ESC>RDB00,075,075,CG Triumvirate
<ESC>Q1<ESC>Z
Printer Output
Special Notes 1. The “cccc” Horizontal Size and “dddd” Horizontal Size parameters
can be entered either in dots or points, but both parameters must use
the same value types. If point size is used, the point size is preceded
by a “P”.
SATO Programming ReferencePN 9001096 Rev. APage 2-29
0 Standard
1 Standard open (outlined)
2 Gray (mesh) pattern 1
3 Gray (mesh) pattern 2
4 Gray (mesh) pattern 3
5 Standard open, shadow 1
6 Standard open, shadow 2
7 Standard mirror image
8 Italic 9 Italic open, shadow
Section 2: Command Codes
Example:<ESC>$A,100,200,0<ESC>$=123456
Placement: Immediately preceding data to be printed.
Default:None
Command Function To specify printing of the unique SATO vector font. The vector font allows
large characters to be printed with smooth, round edges. Each character is
made of a number of vectors (or lines), and will require slightly more printer
compiling time.
Input to Printer <ESC>A
<ESC>H0100<ESC>V0100<ESC>$A,100,100,0
<ESC>$=SATO AMERICA
<ESC>H0100<ESC>V0200<ESC>$=VECTOR FONT
<ESC>H0100<ESC>V0350<ESC>$A,200,300,8<ESC>$=SATO
<ESC>Q1<ESC>Z
Page 2-30SATO Programming Reference
Section 2: Command Codes
Printer Output
Special Notes 1. The Pitch command can be used with Vector fonts.
2. If the font size designation is out of the specified range, a default value
of 50 is used.
3. The font width and height values include ascenders, descenders, and
other space.
4. A font must be defined for each field to be printed. There is no default
font.
SATO Programming ReferencePN 9001096 Rev. APage 2-31
Special Notes 1. Auto-smoothing (when enabled) is only effective if the character expan-
sion rate is at least (3) times in each direction.
2. Characters may be enlarged through the use of the <ESC>L Character
Expansion command.
3. Character spacing may be altered through the use of the <ESC>A Character Pitch command.
4. A font must be defined for each field to be printed. There is no default
font.
5. The proportionally spaced fonts XU, XS, XM, XL and XB can be printed
with fixed spacing using the <ESC>PS Proportional Space command.
SATO Programming ReferencePN 9001096 Rev. APage 2-33
Section 2: Command Codes
Form Feed
Command Structure<ESC>A(space)<ESC>Z
Example: See above
Placement: Separate data stream sent to printer
Default: None
Command Function To feed a blank tag or label, which is the equivalent of a “form feed.”
Input to Printer
Printer OutputBlank label or tag
<ESC>A(space) <ESC>Z
Page 2-34SATO Programming Reference
Section 2: Command Codes
Form Overlay, Recall
Command Structure <ESC>/
Example: See above
Placement:Must be preceded by all other data and placed just before
the Print Quantity command (<ESC>Q)
Default:None
Command Function To recall the label image from the form overlay memory for printing. This
command recalls a stored image from the overlay memory. Additional or
different data can be printed with the recalled image.
Input to Printer <ESC>A
<ESC>H01000<ESC>V0125
<ESC>STHIS IS THE STORED IMAGE WITH A BARCODE
<ESC>H0100<ESC>V0165<ESC>B103100*12345*
<ESC>&<ESC>Z
<ESC>A<ESC>H0100<ESC>V0050
<ESC>STHIS IS RECALLING AND ADDING TO THE STORED
IMAGE<ESC>/
<ESC>Q1<ESC>Z
Printer Output
Special Notes 1. The overlay is stored using the <ESC>& Form Overlay Store com-
mand.
2. If the this command is used with the <ESC>EX0 Expanded Print
Length command the Form Overlay length cannot exceed 9999
dots.
SATO Programming ReferencePN 9001096 Rev. APage 2-35
Section 2: Command Codes
Form Overlay, Store
Command Structure<ESC>&
Example:See above
Placement: Must be preceded by all other data and placed just before
the Stop command (<ESC>Z)
Default: None
Command Function To store a label image in the volatile form overlay memory. Only one label
image may be stored in this memory area at a time.
Input to Printer <ESC>A
<ESC>H0100<ESC>V0125
<ESC>STHIS IS THE STORED IMAGE WITH A BARCODE
<ESC>H0100<ESC>V0165<ESC>B103100*12345*
<ESC>
<ESC>Z
&
Printer OutputThere is no output from this command. It stores the label image in the
overlay buffer.
Special Notes 1. Remember that this storage is volatile. Therefore, if the printer loses
power, the overlay must be sent again.
2. The overlay is recalled using the <ESC>/ Form Overlay Recall command.
3. Form overlays do not have to be recompiled each time they are called
to be printed and therefore may result in much faster print output.
Page 2-36SATO Programming Reference
Section 2: Command Codes
Graphics, Custom
Command Structure <ESC>Gabbbccc(data)
a=Specifies format of data stream to follow B Binary
format H Hexadecimal format
bbb=Number of horizontal 8 x 8 blocks (see note 7 for
allowable range)
ccc=Number of vertical 8 x 8 blocks (see note 7 for
allowable range)
(data)=Hex data to describe the graphic image
Example: <ESC>GH006006 See Appendix C for a detailed
example
Placement: May be placed anywhere within the data stream after the
necessary position commands.
Default: None
Command Function To create and print custom graphics (logos, pictures, etc.) on a label.
The graphic image may be printed along with other printed data to
enhance label appearance or eliminate the need for preprinted label
stock. Using a dot-addressable matrix, design the graphic image in 8 dot
by 8 dot blocks, then send it in a binary format to the printer.
Printer Input<ESC>A
<ESC>H0100<ESC>V0100<ESC>GH006006
FFFFFFFFFFFFFFFFFFFFFFFFC00000000003
C00000000003C000FFFFFFF3C00080000013
C00080000013C0009FFFFF13C00080000013
C00080000013C0009FFFFF13C00080000013
C00080000013C000FFFFFFF3C00000000003
C00000000003C00000000003C00000000003
C00000000003C00000000003C00003C00003
C00007E00003C0000FF00003C0000FF00003
C0000FF00003C0000FF00003C00007E00003
C00003C00003C00003C00003C00003C00003
C00003C00003C00003C00003C00003C00003
C00003C00003C00003C00003C00003C00003
C00003C00003C00001800003C00000000003
C00000000003FFFFFFFFFFFFFFFFFFFFFFFF
<ESC>H0300<ESC>V0100<ESC>XSPLEASE PLACE YOUR DISK
<ESC>H0300<ESC>V0150<ESC>XSIN A SAFE PLACE
<ESC>Q1<ESC>Z
SATO Programming ReferencePN 9001096 Rev. APage 2-37
See Appendix C for a details on the data format.
Section 2: Command Codes
Printer Output
Special Notes 1. Do not use ASCII <CR> or <LF> characters (carriage return or line
feed) as line delimiters within the graphic data or the actual image
will not be printed as specified.
2. A custom graphic cannot be enlarged by the <ESC>L Character
Expansion command.
3. A custom graphic is not affected by either of the Rotation commands. Therefore, always design and locate your graphic image to
print in the appropriate orientation.
4. To store graphic images in optional Expanded Memory, see the
Expanded Memory Functions section.
5. The binary format reduces the transmission time by 50%.
6. See Table 1 in Section 1. Programming Concepts for values of
Hmax and Vmax.
7. Use the <ESC>E0 Expanded Print Length command to get the maximum label length.
Page 2-38SATO Programming Reference
Section 2: Command Codes
Graphics, BMP
Command Structure <ESC>GMaaaaa,(data)
aaaaa= Number of bytes to be downloaded
Example:<ESC>GM32000, ... data...
Placement: Anywhere within the job data stream
Default:None
Command Function To allow the creation and printing of graphic images using a BMP file
format.
Printer InputSee Appendix Appendix C for a detailed example
Special Notes 1. The maximum number of bytes that can be downloaded is 32K
(compressed). The number specified by this command includes the
BMP header information. The maximum size of the uncompressed
BMP file is 64K. If the uncompressed file exceeds 64K, the graphic
will not print.
2. Only black and white BMP files can be downloaded.
3. The file size specified by this command is the DOS file size in bytes.
SATO Programming ReferencePN 9001096 Rev. APage 2-39
Graphics, PCX
Section 2: Command Codes
Command
<ESC>GPaaaaa,(data)
Structure
aaaaa
Example:<ESC>GP32000, ... data...
Placement: Anywhere within the job data stream
Default: None
Command Function To allow the creation and printing of graphic images using a PCX file format.
Printer Input See Appendix Appendix C for a detailed example
Special Notes1. The maximum number of bytes that can be downloaded is 32K (com-
pressed). The number specified by this command includes the PCX
header information. The maximum size of the uncompressed PCX file
is 64K. If the uncompressed file exceeds 64K, the graphic will not print.
2. Only black and white PCX files can be downloaded.
3. The file size specified by this command is the DOS file size in bytes.
Page 2-40SATO Programming Reference
Section 2: Command Codes
Job ID Store
Command Structure<ESC>IDaa
aa=
Example:
Placement:
Job ID assigned (01 to 99)
<ESC>ID09
Immediately following the <ESC>A in the job data
stream.
Default:
Command Function To add an identification number to a job. The status of the job can then be
determined using the ENQ command in the Bi-Com status mode (See
Operators Manual for the specific printer for more information).
Printer Input <ESC>A
<ESC>ID02
. . . Job . . .
<ESC>Z
Printer OutputThere is no printer output as a result of this command.
Special Notes 1. Works only in Bi-Communications modes. The Job ID number must
be stored before Bi-Com status mode can be used.
2. If more than one ID number is sent in a single job, i.e.
<ESC>A
<ESC>ID01
. . . . . . . . . .
<ESC>ID02
. . . . . . . . .
the last number transmitted will be used.
None
SATO Programming ReferencePN 9001096 Rev. APage 2-41
Section 2: Command Codes
Job Name
Command Structure <ESC>WKnnn. . . n
nn..n=Job Name assigned, up to 16 ASCII characters
Example: <ESC>WKSATO
Placement: Immediately following the <ESC>A in the job data stream.
Default: None
Command Function This command is to identify a particular job using a descriptive name
Printer Input <ESC>A
<ESC>WKSATO
. . . Job . . .
<ESC>Z
Printer Output There is no printer output as a result of this command. The information is
returned to the host upon receipt of a Bi-Com status request.
Special Notes 1. Works only in Bi-Com 4 mode. The Job Name must be stored before
Bi-Com status mode can be used.
2. If more than one Job Name is sent in a single job, i.e.
<ESC>A
<ESC>WKSATO
. . . . . . . . . .
<ESC>WKSATO AMERICA
. . . . . . . . .
the last name transmitted will be used.
Page 2-42SATO Programming Reference
Section 2: Command Codes
Journal Print
Command Structure <ESC>J
Example:
Placement:
Default:
Command Function To print text in a line by line format on a label. By specifying this
command, you automatically select Font XS with a Character
Expansion of 2x2. You also establish a base reference point of H2,V2.
The character pitch is 2 dots and the line gap is 16 dots. Simply issue
an ASCII <CR> at the end of each text line.
Input to Printer <ESC>A
<ESC>J WITH THE JOURNAL FEATURE
YOU CAN PRINT TEXT WITHOUT
USING ANY FONT COMMANDS
OR POSITION COMMANDS
<ESC>Q1<ESC>Z
Printer Output
See above
Immediately following <ESC>A
None
Special Notes 1. Journal mode assumes a maximum label width . Otherwise, you
SATO Programming ReferencePN 9001096 Rev. APage 2-43
may print where there is no label and damage your print head.
2. It is effective only for the current print job.
Lines and Boxes
Command StructureLine: <ESC>FWaabcccc
aa=Width of horizontal line in dots (01-99)
b=Line orientation H Horizontal line V Vertical
Line
cccc=Length of line in dots (see Section 1 Table 1 for
max length)
Box: <ESC>FWaabbVccccHdddd
aa=Width of horizontal side in dots (01-99)
bb=Width of vertical side in dots (01-99)
cccc=Length of vertical side in dots (see Section 1
Table 1 for max length)
Section 2: Command Codes
dddd=Length of horizontal side in dots (see Section 1
Table 1 for max length)
Example:<ESC>FW02H0200
Placement: Following the necessary positioning commands
Default: None
Command Function To print horizontal lines, vertical lines, and boxes as images on the label.
Special Notes 1. It is recommended that all lines and boxes be specified in the normal
print direction.
2. See Table 1 in Section 1. Programming Concepts for values of Hmax
and Vmax.
3. Use the <ESC>E0 Expanded Print Length command for maximum
label length.
SATO Programming ReferencePN 9001096 Rev. APage 2-45
Section 2: Command Codes
Line Feed
Command Structure <ESC>Eaaa
aaa=Number of dots (001-999) between the bottom of the
characters on one line to the top of the characters on
the next line.
Example: <ESC>E010
Placement: Preceding the text that will use the line feed function
Default: None
Command Function To print multiple lines of the same character size without specifying a new
print position for each line. With the Line Feed command, specify the
number of dots you want between each line. Then, send an ASCII <CR>
at the end of each line of text. The printer automatically identifies the size
of the last character, moves down the number of dots specified, and
begins printing the next line
Input to Printer<ESC>A
<ESC>E010<ESC>H0050<ESC>V0050<ESC>L0202<ESC>S
THIS IS THE 1ST LINE<>CR>
THIS IS THE 2ND LINE>CR>
THIS IS THE 3RD LINE>CR>
<ESC>Q1<ESC>Z
Printer Output
Special Notes 1. It is effective only for the current data stream.
2. When printing lines or boxes in the same data stream with the Line
Feed command, the Lines and Boxes command should be specified
last, preceding <ESC>Q Quantity command.
3. This command is invalid only if the value specified is zero.
4. Following this command with a <CR> character will allow you to print
with auto line feed. The print position will be determined from the
value specified and the H value set in the printer. If you specify several H values after this command, the print position will be determined by the H value last specified. You must redefine the font to be
used after each H command.
Page 2-46SATO Programming Reference
Section 2: Command Codes
Media Size
Command Structure<ESC>A1aaaabbbb
aaaa=Label Width in dots (0 to Hmax)
bbbb=Label Length in dots (0 to Vmax)
Example: <ESC>A108323200
Placement: Separate data stream to the printer.
Default: <ESC>A108322136
COMMAND FUNCTION To set the size of the media.
INPUT TO PRINTER<ESC>A
<ESC>A108321424
<ESC>Z
PRINTER OUTPUT There is no printer output resulting from this command. It is used to
automatically adjust the offset values for the size of label being used. The
sample command stream specifies a label 832 dots wide by 1424 dots long.
SPECIAL NOTES 1. 1. The Base Reference point is always the on the right (looking at the
front of the printer) side of the print head. This command adjusts the
Base Reference Point to correspond with the right edge of the loaded
media.
2. If the label size is changed, then this command must be respecified to
center the print image on the label.
3. All eight variables “aaaa” and “bbbb” must be included in this command.
4. See Table 1 in Section 1. Programming Concepts for max length for values of Hmax and Vmax.
SATO Programming ReferencePN 9001096 Rev. APage 2-47
Mirror Image
Command Structure <ESC>RM
Section 2: Command Codes
Example:
Placement:
Default
Command Function To allow mirror image printing of data, such as on transparent labels to be
Special Notes 1. The <ESC>A1 Media defines the area to be mirrored.
2. This command can be used with the <ESC>% Rotate Fixed Base
Reference Point command. Please note that the reference point rotation is dependent upon the location of the <ESC>% command in the
data stream
3. This command should not be specified more than once in any single
job.
4. This command cannot be used with commands requiring re-editing of
the print area, such as Sequential Numbering, Real time clock or
Copy Image Area.
5. Any data outside the area defined by the <ESC>A1 Media Size command is not mirrored the command is treated as a command error.
Any print job containing the <ESC>RM command and without any
print data will be treated as a command error.
Page 2-48SATO Programming Reference
Section 2: Command Codes
Off-Line/Pause
Command Structure<ESC>@,nn . . . n
nn...n=Optional message to be displayed on the LCD.
Maximum of 32 characters.
Example: See above Placement: Anywhere in the print job between
the <ESC>A and <ESC>Z
Default: None
Command Function To specify the printer to come to an off-line state. When used within a print
job, the printer goes off-line after finishing the print job.
Input to Printer<ESC>A
<ESC>@, LOAD BLUE LABELS AND PLACE PRINTER ON-LINE
...Job...
<ESC>Z
Printer OutputThere is no printer output for this command. The printer is placed in the
Off-Line mode as soon as the current print job is finished.
Special Notes 1. You must press the LINE key on the front panel to return the printer to
an On-Line status
2. Remember, when using this command, that the print job specifies
<ESC>Q10, all ten labels will print before the printer goes off-line
SATO Programming ReferencePN 9001096 Rev. APage 2-49
SPECIAL NOTES 1. EX0 is effective until AR is sent to reset the printer to its standard
print length, or until the printer is re-powered.
2. See Section 1, Table 1 for values of Vmax.
3. When this command is used with the <ESC>& Store Form Overlay
command the Form length cannot exceed the maximum specified.
4. If a job contains elements out of the memory range, it is ignored.
5. If the Forms Overlay command <ESC>& is used with Expanded
Memory to expand the print area, the Form Overlay length is still limited to the maximum.
SATO Programming ReferencePN 9001096 Rev. APage 2-53
Print Position
COMMAND STRUCTUREHorizontal Position<ESC>Haaaa
Vertical Position:<ESC>Vbbbb
Section 2: Command Codes
aaaa
bbbb=Number of dots vertically from the base
Example: <ESC>H0020<ESC>V0150
Placement: Preceding any printed field description of lines/
Default:<ESC>H0001
COMMAND FUNCTION The Horizontal and Vertical commands specify the top left corner of a field
or label, using the current base reference point as an origin. They also
establish a reference point for subsequent fields until the next horizontal
and/or vertical print position command is issued.
2. 2. To cancel a print job, you must turn off the printer, or you may send
the <CAN> code if using the Bi-Com mode. Multi-Buffer jobs can be
cleared with the <ESC>* Clear Print Job(s) and Memory command.
3. 3. When used with the <ESC>F Sequential Numbering command, the
Print Quantity value should be equal to the total number of labels to
be printed.
4. 4. If you do not specify a Print Quantity, the printer will not print a
label.
5. For this command, leading zeroes do not have to be entered. The
command “Q1” is equivalent to “Q000001”.
Page 2-56SATO Programming Reference
Section 2: Command Codes
Print Speed
Command Structure <ESC>CSa
a=Designates the speed selection in ips
Example:<ESC>CS6
Placement:Must be placed immediately after <ESC>A and
immediately before <ESC>Z in a separate data stream
Default: As previously set in the printer configuration
Command Function To specify a unique print speed through software for a particular label.
This allows flexibility in finding the best performance and quality for the
particular label format, media, and ribbon. All subsequent labels will print
at this speed unless the speed is changed with this command or through
the Operator Panel.
Input to Printer <ESC>A <ESC>CS6 <ESC>Z
Printer Output There is no printer output for this command. It sets the print speed of the
printer.
Special Notes This becomes the new setting for all subsequent print jobs, unless
changed. The setting is stored in non-volatile memory and is not affected
by cycling the power. The allowable speed ranges are:
Print
Speed
2 ips
50 mm/s
3 ips
75 mm/s
4 ips
100 mm/s
5 ips
125 mm/s
6 ips
150 mm/s
8 ips
200 mm/s
10 ips
250 mm/
12 ips
300 mm/s
M-8459Se
XXXXX
XXXX
XXXXXXXXXX
XXXX
M-8485Se
M-5900RVe
M-8460Se
M-8490Se
CL4XX
CL6XX
M-84Pro-2
XXX
XX
X
M-84Pro-3
M-84Pro-6
M10e
SATO Programming ReferencePN 9001096 Rev. APage 2-57
Section 2: Command Codes
Repeat Label
Command Structure <ESC>C
Example:See above
Placement: Must be placed immediately after <ESC>A and
immediately before <ESC>Z in a separate data stream
Default:None
Command FunctionTo print duplicate of the last label printed
Input to Printer<ESC>A
<ESC>C
<ESC>Z
Printer Output A duplicate of the previous label will be printed.
Special Notes 1. This command will have no effect if the power to the printer was
cycled off and back on since printing the previous label.
Page 2-58SATO Programming Reference
Section 2: Command Codes
Replace Data (Partial Edit)
Command Structure <ESC>0(<ESC>zero)
Example: See above
Placement:Must follow <ESC>A and precede all other print data
Default: None
Command Function To replace a specified area of the previous label with new data. This
command will cause the previous label to print along with any changes
specified within the current data stream.
Input to Printer <ESC>A
<ESC>H0025<ESC>V0020<ESC>WB0Company Name
<ESC>H0025<ESC>V0085<ESC>WB1SATO
<ESC>H0025<ESC>V0150<ESC>WL0SATO
<ESC>H0025<ESC>V0215<ESC>WL1SATO
<ESC>Q1<ESC>Z
SATO Programming ReferencePN 9001096 Rev. APage 2-59
Section 2: Command Codes
Special Notes 1.Specify the exact same parameters for the image to be replaced
as were specified in the original data stream, including rotation,
expansion, pitch, etc. This will ensure that the new data will exactly
replace the old image. If the replacement data contains fewer characters than the old data, then the characters not replaced will still
be printed.
2. This command will not function if the power has been cycled off
and back on since the last label was printed.
3. Proportional Pitch text cannot be used with this command.
Page 2-60SATO Programming Reference
Section 2: Command Codes
Reverse Image
Command Structure <ESC>(aaaa,bbbb
a=Horizontal length in dots of reverse image area
b= Vertical height in dots of reverse image area. See
Section 1 Table 1 for maximum field ranges.
Example: <ESC>(100,50
Placement: This command must be preceded by all other data and be
placed just before <ESC>Q
Default: None
Command Function To reverse an image area from black to white and vice versa. Use the
Print Position commands (<ESC>H and <ESC>V) to locate the top left
corner of the reverse image area.
SATO Programming ReferencePN 9001096 Rev. APage 2-61
Section 2: Command Codes
Special Notes1. A reverse image area is affected by the rotate commands. Therefore,
always assume the printer is in the normal print orientation when
designing and sending the Reverse Image command.
2. If using reverse images with the form overlay, place this command
before the Form Overlay command in the data stream.
3. If the height and width to be reversed contain other than alphanumeric data, the area is not printed.
4. If the values specified exceed the maximum ranges, the reverse
image is not created.
5. See Table 1 in Section 1. Programming Concepts for values of Hmax
and Vmax.
Page 2-62SATO Programming Reference
Section 2: Command Codes
Rotate, Fixed Base Reference Point
Command Structure<ESC>%a
a = 0 Sets print to normal direction
1 Sets print to 90°CCW
2 Sets print to 180° rotated (upside down)
3 Sets print to 270° CCW
Example: <ESC>%3
Placement:Preceding any printed data to be rotated
Default: <ESC>%0
Command Function To rotate the print direction in 90° increments without changing the location
of the base reference point. The diagram below illustrates the use of the
<ESC>% Rotate command. Note that the entire print area is shown, but
your label will probably not be as large as the entire area.
Input to Printer
Printer Output
<ESC>A
<ESC>%0<ESC>L202<ESC>H0200<ESC>V0100<ESC>MNORMAL DIRECTION
<ESC>%1<ESC>H0200<ESC>V0300<ESC>MONE
<ESC>%2<ESC>H0200<ESC>V0400<ESC>MTWO
<ESC>%3<ESC H0200<ESC>V0500<ESC>MTHREE
<ESC>Q1<ESC>Z
SATO Programming ReferencePN 9001096 Rev. APage 2-63
Section 2: Command Codes
Special Notes1.The specified values are valid until another Rotate (<ESC>%) com-
mand is received.
2. Receipt of a Stop Print (<ESC>Z) command will reset the setting to
the default value.
Page 2-64SATO Programming Reference
Section 2: Command Codes
Sequential Numbering
Command Structure <ESC>Faaaabcccc,dd,ee,g
aaaa= Number of times to repeat the same data (0001-
9999)
b= Plus or minus symbol (+ for increments; - for
decrements)
cccc= Value of step for sequence (0001-9999) ,
dd= Number of digits for sequential numbering (01-
99). The first incrementing character position
starts after the positions exempted from
sequential numbering as specified in ee. If these
digits are left out, the default is 8. ,
ee= Number of digits free from sequential numbering
(00-99) starting with the right most position. If
these digits are left out, the default is 0.
g=Count base 1 Decimal Count 2 Hexadecimal
Base
Example:<ESC>F001-001,04,03
In this example, the right most (least significant)
three digits would not decrement and the next four
would decrement
Placement: Preceding the starting value to be incremented or
decremented.
Default: None
Command Function To allow the ability to print sequential fields (text, bar codes) where
all incrementing is done within the printer. Up to eight different
sequential fields can be specified per label. Sequencing is effective
for up to 99-digit numeric data within each field.
Input to Printer <ESC>A<ESC>H0100<ESC>V0100<ESC>MSERIAL NUMBER:
Printer OutputThere is no output for these commands they are not accompanied by
other label printing commands. However, these commands must precede
and follow each print job sent to the printer.
SATO Programming ReferencePN 9001096 Rev. APage 2-67
SECTION 3.
CALENDAR COMMANDS
The following commands in this section are used to control the Calendar Functions.The Calendar
Functions require the Calendar Option (except for the “Se” print engines which include it in the
standard configuration).
SATO Programming ReferencePage 3-1
Section 3. Calendar Commands
Calendar Increment
Command Structure <ESC>WPabbb
bbb=Numeric data: Years (0-9), Months (01-99),
Example:<ESC>WPM03
Placement: Anywhere within the data stream
Default:None
a=Y Years
M Months
D Days
h Hours
W Week Number
Days (001-999), Hours (000-999), Week (00-99)
Command FunctionTo add a value to the printer’s current date and/or time, which may
then be printed on the label. This command does not change the
printer’s internal clock setting.
1. Once the year increments past “99” it will wrap back to “00”. 2.
This command can only be used once per data stream.
2. The printer’s internal clock may be set through the Calendar Set
command.
3. Calendar Commands
4. If a print quantity of more than one label per job is used, the same
time and date will be on each label of the entire print job.
5. Calendar Increment Example: 1998 January 15 (ww = 03) plus 48
weeks = week 51
6. The Week Calendar specification follows ISO8601. Days of the
week are numbered 1 thru 7, beginning with Monday. The first
week of the year is the week containing the first Thursday. If January 1st falls on Friday, it belongs to the last week of the previous
year. If December 31st falls on a Wednesday, it belongs to the first
week of the following year. If Calendar Increment calculation
extends over the year, the result belongs to the week number of
the following year.
SATO Programming RefernecePage 3-3
Section 3. Calendar Commands
Calendar Print
Command Structure <ESC>WA(elements)
(elements) =YYYY
YY
MM
HH
hh
mm
ss
TT
JJJ
WW
ww )
Example: <ESC>WAMM/DD/YY hh:mm
Placement:Anywhere within the data stream.
Default:None
Command FunctionTo specify the printing of a date and/or time field from the printer’s
internal clock. This may be used to date/time stamp your labels.
Input to Printer<ESC>A
<ESC>H0100<ESC>V0100<ESC>XB1The current date is:
<ESC>XB1<ESC>WAMM/DD/YY
<ESC>H0100<ESC>V0200<ESC>XB1The current time is:
<ESC>XB1<ESC>WAhh:mm
<ESC>Q1<ESC>Z
4 digit Year (1981-2080)
2 digit Year (00-91)
Month (01-12) DD Day (01-31)
12 Hour Clock (00-11)
24 Hour Clock (00-23)
Minute (00-59)
Seconds (00-59)
AM or PM
Julian Date (001-366)
Week (00-53)
Week (01-54
Printer Output
Page 3-4SATO Programming Reference
Section 3. Calendar Commands
Special Notes 1. The date and time elements may be placed in any order for
printing.
2. Use a slash (/) to separate date elements and a colon (:) to
separate time elements.
3. The font for the date/time elements must be specified before
this command.
4. The printer’s internal clock may be set through the Calendar
Set command.
5. This command can be used up to six times per job.
6. The Copy (<ESC>WD), Mirror Image (<ESC>RM) or
Reverse Image (<ESC>/)commands cannot be used with
this command.
7. Up to 16 characters can be used with this command.
8. Century ranges are: For Year = YY, any year equal to or
greater than 80 and less than or equal to 99, then the century
equals 19 For Year specified as YYYY=1999, and printed as
<ESC>WAYY, will be equal to 99.
9. The Julian date is the accumulated day from January 1st to
the current date. The first day of the year is January 1st (001)
and the last day of the year is December 31st (365 or 366 for
leap years).
10. The TT command should not be specified for printing in
numeric only bar codes.
SATO Programming RefernecePage 3-5
Section 3. Calendar Commands
Calendar Set
Command Structure<ESC>WTaabbccddee
Year (00-99)
=
aa
Month (01-12)
=
bb
Day (01-31)
=
cc
Hour (00-23)
=
dd
Minute (00-59)
=
ee
Esample:<ESC>WT9101311200
Placement:This command must be sent in an independent
data stream.
Default:None
Command Function To set the time and date of the printer’s internal clock.
Input to Printer:<ESC>A
<ESC>WT9312251300
<ESC>Z
Printer OutputThere is no printer output for this command. It sets the current date
to December 25, 1993 and the current time to 1:00 PM in the printer.
Special Notes None
Page 3-6SATO Programming Reference
SECTION 4.
EXPANDED MEMORY OPTION COMMANDS
These commands require the optional Expanded Memory..
Note: Before Expanded Memory can be used for the first time, it must be initialized
using the <ESC>BJF command. If it is not initialized, the printer will not recognize the
memory and respond as if no expanded memory was installed.
SATO Programming ReferencePage 4-1
Section 4: Expanded Memory Commands
Clear Expanded Memory
Command Structure <ESC>*a,bbb
bbb =Memory Card storage area to be cleared
Example: <ESC>*G,01
Placement:This command should be sent to the printer
a =Memory card section to be cleared
G To clear SATO graphic files from memory card
P To clear PCX graphic files
F To clear formats from the memory card
O To clear TrueType fonts
R To clear BMP graphic files
001 to 999 for Graphics, PCX or Formats
000 to 099 for TrueType fonts
immediately following the <ESC>CC Memory Area
Select command.
Default: None
Command Function To clear individual memory areas in the Expanded Memory.
Input to Printer <ESC>A
<ESC>CC1<ESC>*O,09
<ESC>Z
Printer Output There is no printer output as a result of this command.
Special Notes 1. To clear everything in the Expanded Memory, use the
<ESC>BJF Expanded Memory Initialize command.
2. This command is ignored if there is no data to be cleared.
3. This command is ignored if Expanded Memory is not installed in
the printer.
Page 4-2SATO Programming Reference
Section 4: Expanded Memory Commands
Fonts, TrueType Recall
Command Structure <ESC>BJRabbccddeeffffgg...g
<ESC>BJT,aa,bb,cc,dd,ee,ffff,gg...g
Font ID (0 thru 9)
=
a
Font ID (00 thru 99)
=
aa
Horizontal Expansion (01 thru 12)
=
bb
Vertical Expansion (01 thru 12)
=
cc
Character Pitch (01 thru 99)
=
dd
Reserved, always 00
=
ee
Number of characters to be printed using the font
f f f f
gg..g
Example: <ESC>BJR1020201000004SATO
Placement: Immediately following the <ESC>CC Slot Select
=
Data to be printed
=
command.
Default: None
Command Function This command recalls previously stored bit mapped TrueType fonts from
Special Notes1. This command requires the Expanded Memory option. See your
SATO representative for details.
2. The SATO True Type Download utility program can be used to automate the download process from a computer running Windows 3.1 or
above. For a copy of this utility program contact your SATO representative.
Page 4-4SATO Programming Reference
Section 4: Expanded Memory Commands
Format/Field Recall
Command Structure <ESC>YR,aa<ESC>/D,bb,cc....c
aa
=
Format number to be recalled (01-99)
bb
=
Field number to be recalled (01-99)
cc...c
Example: <ESC>YR,01<ESC>/D,01,99
Placement: Immediately following the <ESC>CC Slot Select
Default: None
Command Function To recall a field from a stored format and place new data in the field.
Printer Input<ESC>A
<ESC>CC1
<ESC>YR,02<ESC>/D,01,TWO FIELDS OF<ESC>/D,02,VARIABLE DATA
<ESC>Q1<ESC>Z
=
Data to be placed in the recalled field.
command.
Printer Output
Special Notes1. This command requires the Expanded Memory option. See your
SATO representative for details.
2. Only one format can be recalled at a time. However, multiple feilds
can be recalled from the same format.
3. The number of data characters contained in the “cc...c” field cannot
exceed the value designated in the <ESC>/N Field Store command.
If it does, the data will be truncated to fit the field length defined in the
store command.
SATO Programming ReferencePage 4-5
Section 4: Expanded Memory Commands
Format/Field Store
Command Structure<ESC>YS,aa<ESC>/N,bb,cc{.......}
Format number to be stored (01-99)
=
aa
Field number to be stored (01-99)
=
bb
Length of field to be stored (01-99)
=
cc
Command stream describing the field to be stored.
{.....}
Example: <ESC>YS,01<ESC>/N,01,05
Placement:Immediately after <ESC>CC Memory Area Select command.
Default:None
Command Function To store a format field description in the memory card.
Printer Output There is no printer output as a result of this command. See <ESC>YR
Format/Field Recall command.
Special Notes1.This command requires the Expanded Memory option. See your SATO
representative for details.
2. Each job should be sent individually. If more than one job is sent in a
data stream, only the first one will be accepted and the remainder
ignored.
3. The following commands cannot be stored in a format:
<ESC>CS Print Speed <ESC>C Repeat Label
<ESC>NULLCut Label <ESC>Q Print Quantity
<ESC>/DRecall Field <ESC>EX Expanded Label Storage
<ESC>T Custom Characters <ESC>& Store Form Overlay
<ESC>@Off Line<ESC>#E Print Darkness
<ESC>BJ TrueType Fonts <ESC>IDStore Job ID
<ESC>G Store Custom Graphics <ESC>* Clear Memory & Buffer
<ESC>BTVariable Ratio Bar Codes<ESC>PI Store PCX Graphics
<ESC>0 Partial Edit
Page 4-6SATO Programming Reference
Section 4: Expanded Memory Commands
Form Overlay Recall
Command Structure<ESC>&R,aa
aa=Storage Number (01 to 99)
Example: <ESC>&R,01
Placement:Following The <ESC>CC Memory Area Select
Command
Command FunctionTo recall the label image from stored in the Expanded Memory.
Input to the Printer<ESC>A
<ESC>CC1
<ESC>&R,01
<ESC>Q1<ESC>Z
Printer OutputTo be added
Special Notes1.The Expanded Memory option is required for this command. See your
SATO representative for details.
2. The <ESC>CC Memory Area Select Command must be sent prior to
this command.
3. Several label images stored under different Storage Numbers can be
printed with this command.
4. The Storage number must be specified.
5. A Read/Write error will occur if an unused Storage number is specified
by this command.
6. The label image reference point will be V=1 H=1 if the window area
has not been specified.
7. The label image can be moved by using the <ESC>V and <ESC>H
commands when it is stored along with a window size. If it exceeds
the printable area by being moved, the label image will be truncated.
SATO Programming ReferencePage 4-7
Section 4: Expanded Memory Commands
Form Overlay Store
Command Structure <ESC>&S,aa,bbbb,cccc
aa
=
Store Number (01 to 99
bbbb
cccc
Example:<ESC>&S,01
Placement:Following the <ESC>CC Memory Area select
Default:None
Command FunctionTo store a label image in Expanded Memory
Printer Input<ESC>A
<ESC>CC1
<ESC>&S,01
<ESC>Z
=
Horizontal size of window (50 to H max)
=
Vertical size of window (50 to V max)
Command
Printer OutputThere is no printer output as a result of this command.
Special Notes 1. The <ESC>CC Memory Area Select command must be sent before
this command.
2. The label image must be divided from other label images by the
<ESC>A and <ESC>Z bounding commands.
3. The parameters of “bbbb” and “cccc” may be omitted. By specifying
them, the label image can be moved by using the <ESC>V and
<ESC>H position commands when recalling the label image. If the
repositioned label image exceeds beyond the printable area, the
image will be truncated. If an <ESC>A1 Media Size Command has
been sent to the printer, the maximum size form that can be stored is
the size of label defined by the command.
4. A label image cannot be stored in a location that already contains
data.
5. Graphics, PCX and BMP files can be stored with this command.
6. As many as 99 Form Overlays can be stored, however their combined
storage area cannot exceed the available memory.
7. The forms stored by this command are cleared by the <ESC>*R command.
Page 4-8SATO Programming Reference
Section 4: Expanded Memory Commands
BMP Graphics Recall
Command Structure <ESC>GCaaa
aaa=Storage Number (001 to 999)
Example:E <ESC>GC001
Placement:After the CC Memory Area Select command.
Default:None
Command FunctionTo recall a previously stored BMP file stored in Expanded Memory