A-Class (firmware ver.10.065 and earlier)
H-Class (firmware ver.10.065 and earlier)
I-Class (firmware ver.8.03 and earlier)
Ex2 (firmware ver.10.065 and earlier)
S-Class (firmware ver.6.02 and earlier)
M-Class
E-Class
CG Times (based upon Times New Roman), CG Triumvirate, MicroType, and TrueType are trademarks
of the AGFA Monotype Corporation.
PCL, Intellifont, and HP Laser JetII are trademarks of the Hewlett Packard Corporation.
Macintosh is a trademark of the Apple Corporation.
Windows is a trademark of the Microsoft Corporation.
All other brand and product names are trademarks, service marks, registered trademarks, or registered
service marks of their respective companies.
Information in this manual is subject to change without notice and does not represent a commitment on
the part of Datamax-O’Neil Corporation. No part of this manual may be reproduced or transmitted in any
form or by any means, for any purpose other than the purchaser’s personal use, without the expressed
written permission of Datamax-O’Neil Corporation.
This manual is intended for programmers who wish to create their own label production software.
The Scope of this Manual
This manual, arranged alphabetically by command, explains Datamax-O’Neil Programming Language
(DPL) and its related uses in the writing, loading and storing of programs for the control and production
of label formats (designs) for the following printers at the listed firmware versions:
Printers (all models, unless where otherwise noted) Applicable Firmware Version*
A-Class 10.065
E-Class** 4.21
EX2 10.065
I-Class*** 8.03M2
H-Class 10.065
M-Class 8.03M2
W-Class*** 8.03M2
S-Class 6.02
*Firmware in RFID-equipped printers must be at version 08.043 or greater; see Note 1, below.
**For information regarding the E-3202 printer, see Note 2, below.
***Standard firmware version shown, while option-specific version numbers may differ.
Model distinctions, including configurations (i.e., Display-Equipped or Non-Display Models) and
equipped types (e.g., GPIO-1, graphics display, RFID, etc.), will be indicated in this text to differentiate
command compatibility. The appendices of this manual also contain details that cannot be ignored. The
use of any command will require checking for possible exclusionary conditions.
Notes: (1) See the <STX>KC command for information regarding attainment of the printer’s firmware version;
(2) Programming information for older S-Class and the Datamax legacy printers (Prodigy, DMX400, etc.)
(3) References to “Menu Settings” refer either to the printer’s internal set-up menu, or to the printer’s
(4) For backward compatibility purposes, the Class Series printers covered in this manual will ignore
(5) When updating firmware for E-Class version 4.10 and higher the printer must be in DPL Mode, not
(6) Where applicable, printer responses to a host device will depend upon the communication port, port
and then, if necessary, upgrade that firmware. Upgrades are available at ftp://ftp.datamax-oneil.com/.
can be found in the DPL Programmer’s Manual (part number 88-2051-01). Programming information for
the E-3202 can be found in E-3202 Programmer’s Manual (part number 88-2257-01). Both manuals can
be downloaded from our web site at http://www.datamax-oneil.com/
menu driven display system; please consult to the appropriate printer Operator’s Manual for details.
commands that are no longer processed; Appendix N lists these commands.
LINE mode, prior to sending the *.dlf file. See Appendix S for details.
settings, and cabling.
.
Class Series Programmer’s Manual 1
Overview
This manual contains the following chapters and appendices:
OVERVIEW on page 1
Contents, organization, and conventions used in this manual; also includes a typical data flow
sequence for the printer.
CONTROL CODE COMMAND FUNCTIONS on page 7
Description of the attention-getter characters necessary for the printer to receive a command
sequence, and available alternate characters and line terminators.
IMMEDIATE COMMAND FUNCTIONS on page 9
Description of the commands, listed alphabetically, that perform status queries and printer control
commands.
SYSTEM-LEVEL COMMAND FUNCTIONS on page 15
Description of the commands, listed alphabetically, that control the printer and allow scalable font
and image downloads.
EXTENDED SYSTEM-LEVEL COMMAND FUNCTIONS on page 37
Description of the commands (listed alphabetically) that control the printer.
LABEL FORMATTING COMMAND FUNCTIONS on page 109
Description of commands, listed alphabetically, that control the position of text and images on the
media, print or store, and end the formatting process.
FONT LOADING COMMAND FUNCTIONS on page 129
Description of commands, listed alphabetically, used when downloading font data in PCL-4
compatible bit-maps.
GENERATING LABEL FORMATS on page 131
Description of the structure of records, the different types, and their use in generating label formats.
APPENDICES A THROUGH V on pages 147 through 281
These contain details that cannot be ignored including various tables, programming examples,
printer default values, and bar code symbology details. See the Table of Contents for specific
content information.
GLOSSARY on page 283
Definitions of words, abbreviations, and acronyms used in this manual.
Class Series Programmer’s Manual 2
Overview
General Conventions
These are some of the conventions followed in this manual:
On the header of each page, the name of the chapter.
On the footer of each page, the page number and the title of the manual.
Names of other manuals referenced are in Italics.
Notes are added to bring your attention to important considerations, tips or helpful suggestions.
Boldface is also used to bring your attention to important information.
This manual refers to IBM-PC based keyboard command characters for access to the ASCII
character set. Systems based on different formats (e.g., Apple’s Macintosh™) should use the
appropriate keyboard command to access the desired ASCII character. See Appendix A for the
ASCII character set.
Computer Entry and Display Conventions
Command syntax and samples are formatted as follows:
The Courier font in boldface indicates the DPL command syntax, and Italics are used to indicate
the command syntax parameters.
Regular Courier font indicates sample commands, files and printer responses.
Square brackets ([ ]) indicate that the item is optional.
<CR>is used to identify the line termination character. Other strings placed between < > in this
manual represent the character of the same ASCII name, and are single-byte hexadecimal values
(e.g., <STX>, <CR>, and <0x0D> equal 02, 0D, and 0D, respectively).
Hexadecimal values are often displayed in ‘C’ programming language conventions (e.g., 0x02 =
02 hex, 0x41 = 41 hex, etc.)
Class Series Programmer’s Manual 3
Overview
Typical Data Flow Sequence
The typical data flow sequence is summarized in the following bullets and detailed in the table below.
Printer Commands data is transmitted to the printer as shown in the table from left to right, top to bottom.
Status commands
Configuration commands
Download commands
Label format
Status commands
Label reprint commands
Memory cleanup
“Status” commands: Get
Status, Request Memory
Module Storage
Information…
“Configuration”
commands, download
image…
“Download” commands,
image, fonts…
Begin label
Label Header record
Label Formatting Data
record –
Object type, orientation,
position, data
Label Quantity
Label Terminate record
Status command
Reprint with New Data
Records
Optional, bi-directional
communication required
for these commands.
See <STX>Kc to reduce
configuration commands
transferred
RAM (temporary) or
Flash (semi-permanent)
memory
Existing label formats
may be recalled. Label
header records are not
required
Optional, bi-directional
communication required
for these commands.
Used for fast re-prints
<STX>xImagename<CR>
<STX>zA
Class Series Programmer’s Manual 4
Memory cleanup
Typically used for
temporary storage
Overview
Commands are available for retrieving stored label formats, updating data, and adding new data. These
techniques are used for increasing throughput. See <STX>G, Label Recall Command ‘r’, and Label Save
Command ‘s’.
Typical commands used in the various stages shown above are listed in the tables that follow.
Configuration Commands
The following table lists some commands useful in controlling printer configuration. These
commands are generally effective only for the current power-up session; toggling power restores the
default configuration. See <STX>Kc for changes to the default power-up configuration. Changing the
default power-up configuration and saving objects in printer Flash memory can reduce the data
transmitted for each label and therefore improve throughput.
Configuration
Command
Name Function
<STX>A
<STX>d
<STX>c
<STX>e
<STX>Kf
<STX>Kc
<STX>F
<STX>M
<STX>m
<STX>n
<STX>O
Set Date and Time Set Date and Time
Set Double Buffer Mode
Set Continuous Paper Length
Force generation of multiple memory copies of label format;
usually not used
Must be 0000 for gap media; not used for reflective media
Set Edge Sensor Setup for gap or registration hole type stock
Download Image Download Image to selected memory module
Download Scalable Font Download Scalable Font to selected memory module
Download Bitmapped Font Download Bitmapped Font to selected memory module
Label Header Commands
These commands determine how the label formatting occurs, effect print quality and quantity. They
are typically issued immediately following the <STX>L start of the label format. The Format
Attribute (A) and the Offset (C, R) commands can be changed at any point between format records to
achieve desired effects.
Label Header
Command
A
C
D
Set Format Attribute
Column Offset
Set Width and Dot Size
Name
H
M
P
P
Q
R
S
Set Heat Setting
Set Mirror Mode
Set Print Speed
Set Backup Speed
Set Quantity
Set Row Offset
Set Feed Speed
Class Series Programmer’s Manual 6
Control Code Command Functions
Introduction
The printer requires a special “attention-getter” character in order to receive a command sequence,
informing the printer that it is about to receive a command and the type of command it will be. Control
Commands, System-Level Commands, and Font Loading Commands have their own unique attentiongetter, followed by a command character that directs printer action.
Attention-Getters
The attention-getters (e.g., “SOH”) are standard ASCII control labels that represent a one character control
code (i.e., ^A or Ctrl A). Appendix A contains the entire ASCII Control Code Chart.
Attention-Getter ASCII Character Decimal Value HEX Value
Immediate Commands
System-Level Commands
Font Loading Commands
SOH 1 01
STX 2 02
ESC 27 1B
Table 2-1: Control Code Listings
Alternate Control Code Modes
For systems unable to transmit certain control codes, Alternate Control Code Modes are available.
Configuring the printer to operate in an Alternate Control Code Mode (selected via the Setup Menu, the
<STX>Kc command or, where applicable, the <STX>KD command) requires the substitution of Standard
Control Characters with Alternate Control Characters in what is otherwise a normal data stream.
Control Character Standard Alternate Alternate 2Custom Command Type
SOH 0x01 0x5E 0x5E
STX 0x02 0x7E 0x7E
CR 0x0D 0x0D 0x7C
ESC 0x1B 0x1B 0x1B
“Count By”
[1]
See Label Formatting Commands, ^ set count by amount.
[1]
0x5E 0x40 0x40
User Defined Control
User Defined System
User Defined Line Termination
User Defined Font Loading
User Defined Label Formatting
Table 2-2: Alternate Control Code Listings
Note: Throughout this manual <SOH>, <STX>, <CR>, <ESC>, and ^, will be used to indicate the control codes.
The actual values will depend on whether standard or alternate control codes are enabled for the
particular application.
Class Series Programmer’s Manual 7
Alternate Line Terminator Example
Control Commands
Alternate Control Codes provide for substitution of the line terminator, as well as the control characters
listed above. For example using Alternate 2, the line terminator <CR> (0x0D) is replaced by | (0x7C).
The following is a sample label format data stream for a printer configured for Alternate-2 Control Codes:
~L|1911A10001000101234560|X|~UT01ABCDE|~G|
Class Series Programmer’s Manual 8
Immediate Command Functions
Introduction
When the printer receives an Immediate Command, its current operation will be momentarily interrupted
to respond to the command. Immediate Commands may be issued before or after System-Level
commands; however, they may not be issued among Label Formatting Commands or during font or
image downloading. Immediate Commands consist of:
1. Attention-Getter, 0x01 or 0x5E, see Control Codes.
2. Command Character
SOH # Reset
This command resets the printer. Resetting the printer returns all settings to default and clears both
the communications and printing buffers. The command also clears DRAM memory.
Syntax:
Printer Response: The printer will reset.
<SOH>#
<XON> T (The T may come before the <XON>)
SOH * Reset
(Display-Equipped Models only)
Class Series Programmer’s Manual 9
This command forces a soft reset of the microprocessor, resetting the printer, returning all factory
default values, and clearing the communication and print buffers.
Syntax:
<SOH>*
Printer Response: The printer will reset.
<XON> R (The R may come before the <XON>)
Immediate Command Functions
SOH A Send ASCII Status String
This command allows the host computer to check the current printer status. The printer returns a
string of eight characters, followed by a carriage return. Each character (see below) indicates an
associated condition, either true (Y) or false (N). Byte 1 is transmitted first. See <SOH>F.
Syntax:
Sample:
Printer Response:
<SOH>A
<SOH>A
abcdefgh<CR>
Where:
Possible Values Interpretation Byte Transmit Sequence
a - Y/N Y = Interpreter busy (imaging) 1
b - Y/N Y = Paper out or fault 2
c - Y/N Y = Ribbon out or fault 3
d - Y/N Y = Printing batch 4
e - Y/N Y = Busy printing 5
f - Y/N Y = Printer paused 6
g - Y/N Y = Label presented 7
h - N N = Always No 8
Table 3-1: ASCII Status Bytes
SOH a Send ASCII Extended Status String
This command allows the host computer to check an extended current printer status. The printer
returns a string of seventeen characters, followed by a carriage return. Most characters (see below)
indicate an associated condition, either true (Y) or false (N). Byte 1 is transmitted first. See <SOH>F.
Syntax:
Sample:
Printer Response:
<SOH>a
<SOH>a
abcdefgh:ijklmnop<CR>
Class Series Programmer’s Manual 10
Where:
Immediate Command Functions
Possible Values Interpretation Byte Transmit Sequence
a - Y/N Y = Interpreter busy (imaging) 1
b - Y/N Y = Paper out or fault 2
c - Y/N Y = Ribbon out or fault 3
d - Y/N Y = Printing batch 4
e - Y/N Y = Busy printing 5
f - Y/N Y = Printer paused 6
g - Y/N Y = Label presented 7
h - N N = Always No 8
- : : = Always : 9
i - Y/N Y = Cutter Fault 10
j - Y/N Y = Paper Out 11
k - Y/N Y = Ribbon Saver Fault 12
l - Y/N Y = Print Head Up 13
m - Y/N Y = Top of Form Fault 14
n - Y/N Y = Ribbon Low 15
o - Y/N Y = N (reserved for future) 16
p - Y/N Y = N (reserved for future) 17
Table 3-1: ASCII Status Bytes
SOH B Toggle Pause
This command toggles the printer’s paused state between on and off. (This is the same function
achieved by pressing the PAUSE Key on the printer.)
Syntax:
Sample:
Printer Response: This command will illuminate the Paused/Stop Indicator and/or indicate
<SOH>B
<SOH>B
PAUSED on the LCD or graphics display panel, suspend printing, and wait
until one of the following occurs:
The <SOH>B command is sent to the printer.
The PAUSE Key is pressed.
Upon which the printer will turn the Paused/Stop Indicator ‘Off’ and/or
remove PAUSED from the LCD or graphics display panel, then resume
operation from the point of interruption. (If the Receive Buffer is not full,
an <XON> character will be transmitted from the printer.)
Class Series Programmer’s Manual 11
SOH C Stop/Cancel
Immediate Command Functions
This command performs the same function as pressing the STOP/CANCEL Key on the printer. This
function clears the current format from the print buffer, pauses the printer, and illuminates the
Paused/Stop Indicator. (The pause condition is terminated as described under <SOH>B.)
Syntax:
<SOH>C
Sample:
<SOH>C
Printer Response: This command will clear the print buffer, pause the printer, illuminate the
Paused/Stop Indicator and/or indicate PAUSED on the LCD or graphics
display panel, suspend printing, and wait until one of the following occurs:
• The <SOH>B command is sent to the printer; or
• The PAUSE Key is pressed.
Upon which the printer will turn the Paused/Stop Indicator ‘Off’ and/or
remove PAUSED from the LCD or graphics display panel. (If the Receive
Buffer is not full, an <XON> character will be transmitted from the printer.)
SOH D SOH Shutdown
(Non-Display Models only)
This commands the printer to ignore Immediate Commands (^A). The SOH shutdown command is
required before loading images or fonts because some may contain data sequences that could be
interpreted as Immediate Commands. After the SOH shutdown command is sent, Immediate
Commands can be turned back on by sending a valid SOH command three times, separated by a one
second delay between each command, or by manually resetting the printer. It is good practice to check batch quantities (<SOH>E) to verify that the SOH commands are working.
Syntax:
Sample:
Printer Response:
<SOH>D
<SOH>D
This printer will ignore Immediate Commands (^A) until a valid SOH
command is received three times, separated by a one second delay between
each command; or, until the printer is manually reset.
Class Series Programmer’s Manual 12
Immediate Command Functions
SOH E Send Batch Remaining Quantity
This command causes the printer to return a four-digit number indicating the quantity of labels that
remain to be printed in the current batch, followed by a carriage return. Communications latency may
cause this value to be higher than actual on some printers.
Syntax:
<SOH>E
Printer response:
nnnn<CR>
Where:
nnnn
- Are four decimal digits, 0-9999.
SOH e Send Batch Printed Quantity
This command causes the printer to return a four-digit number indicating the quantity of labels that
have been printed in the current batch, followed by a carriage return. Communications latency may
cause this value to be lower than actual on some printers.
Syntax:
<SOH>e
Printer response:
nnnn<CR>
Where:
nnnn
- Are four decimal digits, 0-9999.
SOH F Send Status Byte
This command instructs the printer to send a single status byte where each bit (1 or 0) represents one
of the printer’s status flags, followed by a carriage return (see below). If an option is unavailable for
the printer, the single bit will always be zero. See <SOH>A.
Syntax:
<SOH>F
Printer response format:
X<CR>
Where ‘X’ is 0 through 0xef with bits as indicated in the ‘Condition’ column below:
Bit
[1]
Value Condition
8 0 Always zero
7 1 or 0 Label presented
6 1 or 0 Printer paused
5 1 or 0 Busy printing
4 1 or 0 Printing batch
3 1 or 0 Ribbon out or Fault
2 1 or 0 Paper out or Fault
1 1 or 0 Command interpreter busy (imaging)
[1]
One is the least significant bit.
Class Series Programmer’s Manual 13
Immediate Command Functions
Class Series Programmer’s Manual 14
System-Level Command Functions
Introduction
The most commonly used commands are the System-Level Commands. These are used to load and store
graphics information, in addition to printer control. System-Level Commands are used to override default
parameter values (fixed and selectable) and may be used before or after Immediate Commands but cannot
be issued among Label Formatting Commands. System-Level Commands consist of:
1. Attention-Getter, 0x02 or 0x7E, see Control Codes.
2. Command Character
3. Parameters (if any).
STX A Set Time and Date
This command sets the time and date. The initial setting of the date will be stored in the printer’s
internal inch counter. This date can be verified by printing a Configuration Label.
Syntax:
Where:
Sample:
Printed response:
Notes: (1) When set to 000, the Julian date is automatically calculated; otherwise, the Julian date will print
(2) Printers without the Real Time Clock option lose the set time/date when power is removed. (3) Response format is variable; see the Special Label Formatting Command <STX>T.
<STX>AwmmddyyyyhhMMjjj
w
mm
dd
yyyy
hh
MM
jjj
as that entered number, without daily increments. If factory defaults are restored the actual Julian
date will also be restored.
1 digit for day of week; 1 = Monday; 7 = Sunday
2 digits for month
2 digits for day
4 digits for year
2 digits for hour in 24 hour format
2 digits for minutes
3 digits for Julian date (numerical day of the year) / constant; see notes below.
<STX>A1020319960855034
Mon. Feb 3, 1996, 8:55AM, 034
Class Series Programmer’s Manual 15
System-Level Command Functions
STX a Enable Feedback Characters
This command enables the feedback ASCII hex characters to be returned from the printer following
specific events after each completed batch of labels when using serial communications. The default
value is ‘Off’.
Syntax:
<STX>a
Printer response: Event dependent. (Also, see Appendix D for error codes.)
Where:
Event Return Characters
Invalid character 0x07 ( BEL )
Label printed 0x1E ( RS )
End of batch 0x1F ( US )
STX B Get Printer Time and Date Information
This command instructs the printer to retrieve its internal time and date information.
Syntax:
<STX>B
Sample:
<STX>B
Printer response format:
wmmddyyyyhhMMjjj<CR>
Where:
w
mm
dd
yyyy
hh
MM
jjj
1 digit for day of week; 1 = Monday
2 digits for month
2 digits for day
4 digits for year
2 digits for hour in 24 hour format
2 digits for minutes
3 digits for Julian date / constant*
* See <STX>A for details and restrictions.
Printer response sample:
1020319960855034<CR>
Class Series Programmer’s Manual 16
Loading...
+ 270 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.