Printek FormsMaster 8000se Series, FormsPro 4000se Series, PrintMaster 850 Series Programmer's Manual

FormsPro 4000se Series
FormsMaster 8000se Series
PrintMaster 850 Series
Programmer’s Manual
1517 Townline Road
Benton Harbor, MI 49022
269-925-3200
Printek Part Number 5640
ii
IBM and Proprinter are registered trademarks of International Business Machines Corporation, DEC is a registered trademark of Digital Equipment Corporation, Epson is a registered trademark of Seiko Epson, Code V is a trademark of QMS, Inc., QMS is a registered trademark of QMS, Inc.Printek is a registered trademark of Printek, Inc.
Specifications subject to change without notice.
iii
TABLE OF CONTENTS
INTRODUCTION 1
How to Use This Manual 1 Printer Model Descriptions and Key Features 2 Selecting Emulations 2 Changing Forms/Tractor Paths 3
ANSI X3.64 EMULATION 5
Introduction 5 Control Codes and Escape Sequences Grouped by Function 7
Communications 7 Character Size and Line Spacing 8 Character Attributes 9 Horizontal Position 9 Vertical Position 10 Horizontal and Vertical Position 12 Form Length and Form Feed 12 Horizontal Tabs 13 Vertical Tabs 14 Printer Controls 16 Emulations 17
Control Codes and Escape Sequences Sorted Alphabetically 18
EPSON FX EMULATION 20
Introduction 20 Control Codes and Escape Sequences Grouped by Function 21
Communications 21 Character Size 22 Character Attributes 25 Character Sets 27 Line Pitch 30 Horizontal Position 31 Vertical Position 32 Form Length and Form Feed 32 Horizontal Tabs 34 Vertical Tabs 35 Horizontal Margins 36 Vertical Margins 36 Graphics 37 Printer Controls 39 Forms and Tractors 40 Emulations 41
Sorted Alphabetically 42
IBM PROPRINTER EMULATION 45
Introduction 45 Control Codes and Escape Sequences Grouped by Function 46
Communications 46 Character Size 47 Character Attributes 49 Character Sets 50 Line Pitch 51 Horizontal Position 52 Vertical Position 53
iv
Form Length and Form Feed 53 Horizontal Tabs 55 Vertical Tabs 55 Horizontal and Vertical Tabs 56 Horizontal Margins 56 Vertical Margins 57 Graphics 58 Printer Controls 59 Emulations 60
Control Codes and Escape Sequences Sorted Alphabetically 62
DEC LA120/210 EMULATION 65
Introduction 65 Control Codes and Escape Sequences Grouped by Function 67
Communications 67 Character Size 68 Character Attributes 69 Character Sets 69 Line Pitch 70 Horizontal Position 71 Vertical Position 71 Horizontal and Vertical Position 73 Form Length and Form Feed 73 Horizontal Tabs 74 Vertical Tabs 76 Horizontal Margins 78 Vertical Margins 79 Printer Controls 80 Graphics 81 Emulations 82
Control Codes and Escape Sequences Sorted Alphabetically 83
SIMPLE TTY EMULATION 85
Introduction 85 Control Codes and Escape Sequences Grouped by Function 86
Communications 86 Horizontal Position 86 Vertical Position 87 Form Length and Form Feed 87 Horizontal Tabs 88 Vertical Tabs 88 Printer Controls 88 Emulations 89
Control Codes and Escape Sequences Sorted Alphabetically 90
PRINTEK EMULATION 91
Introduction 91 Control Codes and Escape Sequences Grouped by Function 93
Communications 93 Character Size 94 Character Attributes 95 Character Sets 96 Line Pitch 97 Horizontal Position 97 Vertical Position 97 Form Length and Form Feed 98 Horizontal Tabs 99 Vertical Tabs 100 Horizontal and Vertical Tabs 100
v
Horizontal Margins 101 Vertical Margins 102 Graphics 102 Printer Controls 104 Forms and Tractors 106 Emulations 107
Control Codes and Escape Sequences Sorted Alphabetically 108
GENICOM 3840 AND 3410 ANSI EMULATION 109
Introduction 109 Control Codes and Escape Sequences Grouped by Function 111
Communications 111 Character Size 111 Character Set 112 Horizintal Position 113 Vertical Position 115 Horiztonal Tab 116 Vertical Tab 117 Forms Setup 118 Graphics 119 Printer Control 120 Paper Shear 121 ANSI Bar Codes 121 Barcode Options 122 Paper Path 123 Emulations 124 Control Codes and Escape Sequences Sorted Alphabetically 125
CONFIGURATION DOWNLOAD 127
Remote Setup Line Definitions 128 Remote Setup Example File 130
HEX DUMP MODE 131 PRINTING BASIC BAR CODES 133
Introduction 133 Bar Code Sequences 135
Measurements in Bar Code Mode 135 Entering/Exiting Bar Code Mode 135 The Bar Code Control Character 136 Other Control Characters 136 Bar Code Definition 137 Variable Width Bar Code Definition 139 Bar Code Height 141 Relative Vertical Tab 143 Absolute Horizontal Tab 143 Bar Code Pass Terminator 145
Mixing Bar Codes and Text 146 Description of Supported Bar Code Types 147
ASCII CHARACTER TABLES 149
ASCII Control Code Definitions 149
PRINTER RESET CONDITIONS 157 GLOSSARY 159
1
INTRODUCTION
This manual describes the software interfaces supported by the FormsPro 4000se, FormsMaster 8000se and PrintMaster 850 series printers. It is written for a programmer who will be developing software for the printer, and contains information not normally needed by a printer operator/user.
Basic information on printer operation (setting the printer up, loading paper, replacing ribbons, etc.) can be found in either of the FormsPro4000se, FormsMaster 8000se or PrintMaster 850 Series Operator's Manual that accompanied your printer.
How to Use This Manual
Below is a brief description of the information contained in this manual.
INTRODUCTION describes the contents of this manual. This chapter also provides you with an
introduction to the capabilities and operation of the FormsPro 4000se, FormsMaster 8000se and PirntMaster 850 series printers.
ANSI X3.64 EMULATION, EPSON FX EMULATION, IBM PROPRINTER EMULATION, DEC LA120/210 EMULATION, SIMPLE TTY EMULATION, PRINTEK EMULATION, AND
GENICOM 3840/3410 EMULATION are each designed as a stand -alone chapter. Each chapter
provides all the information necessary to write software for a particular emulation. You may wish to refer only to the chapter for the emulation you are using, and skip the others.
CONFIGURATION DOWNLOAD describes how a simple text file may be used to set default values in
the printer’s non-volatile memory. This feature may be used as an alternative to using the printer’s front panel setup and can be useful when configuring multiple printers or when configuring printers at a remote location.
HEX DUMP MODE describes the output of Hex Dump mode, and how it may be used to debug software
problems.
PRINTING BASIC BAR CODES describes how to use the built in bar coding capabilities. ASCII CHARACTER TABLES provides a definition of ASCII control codes, character tables, and an
ASCII to Decimal to Octal to Hexadecimal conversion table.
PRINTER RESET CONDITIONS describes the state of the printer after a power up reset or receipt of a
reset command.
GLOSSARY provides a reference for printer related terms.
Introduction
2
Printer Model Descriptions and Key Features
The Printek FormsPro 4000se, FormsMaster 8000se and PrintMaster 850 series printers are high speed, heavy duty serial dot matrix printers designed especially for printing upon hard to print forms. Such forms are often not printed adequately by other printers. The printer is also designed to be factory floor rugged while still quiet enough for the office. All models provide straight paper paths for jam free paper motion and a zero waste tear bar for demand document applications.
The operator may permanently record up to ten complete sets of form parameters which may be later selected either at the printer's control panel or from the host computer. The FormsPro 4503se and FormsMaster 8003se series printers provides three sets of tractors, any of which can be included in the form parameters for a particular form. This allows the printer to automatically unload one form and load another when selected, without requiring the operator to touch the paper. The FormsMaster 8003se series printer is also able to use the same form or paper in multiple paths and automatically continue printing from a different path after one or two paths are out of paper. For more information, refer to the FormsMaster 8000se Series Operator’s Manual.
The printers come equipped with an industry standard parallel interface and an RS-232 serial interface. Optional interfaces which are available include Ethernet 10/100BaseT Print Server, Wireless Ethernet Print Server and a TN5250 LAN Interface
Standard bar coding capabilities include Code 39, Code 39 LOGMAR, 2-of-5, and Interleaved 2-of-5 bar codes, and OCR-A and OCR-B fonts. Bar code options include the Imager Graphics Co-Processor which expands the bar code capabilities beyond the standard Basic Bar Codes with QMS Code V v1 barcoding compatibility, and the ImagerPlus Graphics Co-Processor which adds bar code and graphic capabilities with QMS Code V v1 and v2 compatibility and Printronix IGP compatibility.
Other options include an external FormsCutter for the FormsPro 4000se Series printer and an internal FormsCutter for the FormsMaster 8000se series printer which can be used to automatically cut off each form or to separate reports. A specially designed print stand which can handle three boxes of paper, and a Setup Module to make set up of multiple printers quick and easy are also available for these models.
Selecting Emulations
The software interface of the printer varies, depending upon which emulation is selected. The default emulation, selected at power up, is specified by the “Emulation” value in the interface setup menu
for the interface being used. Frequently, the desired emulation is specified here, and never changed again. Note that the emulation may only be specified for the serial, parallel, and EtherLink ports.
It is also possible to switch back and forth between various emulations in order to use the unique features of each. A different emulation may be selected via software with the ESC ESC n sequence.
Although switching emulations is essentially a seamless process, the fundamental differences between emulations may cause unanticipated results. For example, character size may vary, or tabs may work differently.
Introduction
3
Changing Forms/Tractor Paths
As mentioned above, Printek FormsPro 4000se, FormsMaster 8000se and PrintMaster 850 series printers have ten complete sets of forms parameters. These different parameters, or forms, may be selected either from the front panel or with escape sequences. In the FormsPro 4503se and FormsMaster 8003se series printers, selecting a different form may also select a different tractor path. The tractor path is one of the parameters which may be set for each of the ten forms in the forms menu using Setup as described in the FormsPro 4000se or FormsMaster 8000se Series Operator's Manual.
Escape sequences for loading forms are only available in the Epson and Printek emulations. In either chapter refer to the “Load Form” escape sequence in the “Forms and Tractors” section.
If you are using an emulation other than Epson or Printek, you may temporarily change emulations, load the new form, and then return to the previous emulation. An example of this may be found in the “Emulations” section at the end of each of the emulation chapters.
5
ANSI X3.64 EMULATION
Introduction
This section describes the control codes and escape sequences comprising ANSI X3.64 emulation. This emulation may be selected by setting “Emulation” to “ANSI X3.64” in the appropriate interface setup menu, or via software with the ESC ESC 1 sequence. While this emulation is selected, control codes and escape sequences from other emulations are not available.
Control codes and escape sequences are used to control printer operation. An ASCII control code is a single character in the range 00 hex through 1F hex, and 7F hex. The ESC (Escape) control code (1B hex) is used to introduce character strings called escape sequences, which provide an extension of the commands available with ASCII control codes.
Many ANSI escape sequences begin with a two character Control Sequence Introducer (CSI), Escape Left Square Bracket (ESC [, 1B 5B hex). If 8-bit data is selected via control panel setup, these two characters may be replaced by a single character CSI, 9B hex. The sequences are always documented in this section with the two character CSI (ESC [), because this format seems to be much more common, and works equally well with 7-bit or 8-bit data.
Some escape sequences accept one or more numeric parameters. A numeric parameter is a decimal number represented by a string of ASCII decimal digits (“0” through “9”). Leading zeros may be supplied, but are not necessary. Due to implementation constraints, the largest value that can be accepted is decimal 255. Larger values will be treated as zero. Omitting a numeric parameter is equivalent to supplying a value of zero.
If a sequence accepts one numeric parameter, it will be represented as “n”. If a sequence accepts more than one numeric parameter, they will be represented as “n1; n2; ... nx”. Note that multiple numeric parameters are separated by a semicolon.
Most ANSI escape sequences will assume one of the following formats:
ESC f (no numeric parameters) ESC n f (one numeric parameter) ESC n1; n2; ... nx f (two or more numeric parameters)
The “f” at the end of the escape sequence represents the final character. It terminates the sequence, and specifies the function to be performed.
Spaces are used when documenting escape sequences to increase readability. The spaces within the sequences are for readability only; they are not part of the sequences themselves. Characters that appear in italics (such as “n” and “f” above) are not sent to the printer as is; they are used as a place holder indicating that some value must be supplied.
Multiple character strings without intervening spaces typically represent control codes. For example, BS is the Backspace control code (08 hex), not the two characters “B” and “S” (42 and 53 hex). An ASCII Control Code Table is prvided on page 152 for your convenience. If you have any doubt about how to interpret a documented control code or escape sequence, refer to the hex representation in the example.
ANSI X3.64 Emulation
6
This should clarify any ambiguity. The examples may also be helpful when analyzing a hex dump (see Hex Dump chapter) printed by the printer.
Some escape sequences refer to the active column or active line. The active column is the column where the next character will be printed. Printing a character or a space will increment the active column. The active line is the line where the next character will be printed. A line feed will increment the active line. Column and line numbers begin at one, not at zero.
ANSI X3.64 Emulation
7
Control Codes and Escape Sequences Grouped by Function
Communications
End of Text ETX
If “ETX/ACK” is set to “On” in the serial interface setup menu, then receipt of an ETX causes the printer to transmit an ACK to the host computer.
Since the ETX may be a legal value within an escape sequence, it is the user's responsibility to ensure that an ETX used for data handshake is not sent within an escape sequence. The user must also ensure that the maximum block size or the number of blocks sent at one time does not exceed the input buffer size of the printer.
ETX/ACK handshake is available only with serial I/O. Control code: ETX
Hexadecimal: 03
ANSI X3.64 Emulation
8
Character Size and Line Spacing
Set Character and Line Spacing ESC [ n1 ; n2 SP G
Sets the character and line spacing in decipoints (1/720 of an inch). The first parameter, n1, sets the line spacing. The second parameter, n2, sets the character spacing. Typical values for n1 and supported values for n2 are shown below. Other values for n2 will be ignored. To change only the horizontal or only the vertical spacing, omit the other value from the sequence or set it to zero. Overrides the “Characters/Inch” value and the “Lines/Inch” value in the forms setup menu.
n1 line pitch 120 6 lpi 90 8 lpi
n2 character pitch 72 10 cpi 60 12 cpi 54 13.3 cpi 48 15 cpi 43 16.74 cpi 42 17.14 cpi 36 20 cpi
Example: The following escape sequence will select 6 lpi and 10 cpi. Escape Sequence: ESC [ 1 2 0 ; 7 2 SP G
Hexadecimal: 1B 5B 31 32 30 3B 37 32 20 47
Example: The following escape sequence will select 6 lpi without affecting character spacing. Escape Sequence: ESC [ 1 2 0 SP G
Hexadecimal: 1B 5B 31 32 30 20 47
Example: The following escape sequence will select 10 cpi without affecting line spacing. Escape Sequence: ESC [ ; 7 2 SP G
Hexadecimal: 1B 5B 3B 37 32 20 47
ANSI X3.64 Emulation
9
Character Attributes
Select Graphic Rendition ESC [ n m
Selects the graphic rendition n from the following table.
n Rendition 0 Normal 1 Emphasized 3 Italic 4 Underline
For italic mode to work correctly, an Epson FX font must be selected (check the “Font” value in the forms setup menu). The other available fonts do not include italic characters.
Example: The following escape sequence will select emphasized mode. Escape Sequence: ESC [ 1 m
Hexadecimal: 1B 5B 31 6D
Horizontal Position
Carriage Return CR
Causes the current line to be printed, and then sets the current print position to the left margin. If “Auto LF” is set to “On” in the interface setup menu, a line feed will also be performed.
Control code: CR Hexadecimal: 0D
Backspace BS
Causes the current line to be printed, and then moves the current print position one space to the left. The actual distance moved depends on the current character spacing. Backspacing can be done up to, but not beyond, the left margin.
Control code: BS Hexadecimal: 08
ANSI X3.64 Emulation
10
Absolute Horizontal Tab ESC [ n `
Sets the current print position to column n. The actual position will depend on the current character spacing. If n is less than the left margin, the active column will be set to the left margin. If n is greater than the right margin, then a line feed will be performed and the active column will be set to the left margin.
Example: The following escape sequence will set the active column to column 65. Escape Sequence: ESC [ 6 5 `
Hexadecimal: 1B 5B 36 35 60
Relative Horizontal Tab ESC [ n a
Advances the current print position by n columns. The actual distance moved will depend on the current character spacing. Equivalent to sending n spaces (SP).
Example: The following escape sequence will advance the active column by 10 columns. If current character spacing is 10 cpi, this will cause the print position to move one inch to the right.
Escape Sequence: ESC [ 1 0 a Hexadecimal: 1B 5B 31 30 61
Vertical Position
Line Feed LF (or) IND (or) ESC D
Causes the current line to be printed, and then advances the paper one line at the current line spacing. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Control code: LF Hexadecimal: 0A
Control code: IND Hexadecimal: 84
Escape Sequence: ESC D Hexadecimal: 1B 44
ANSI X3.64 Emulation
11
Partial Line Down PLD (or) ESC K
Performs a half line feed. Causes the current line to be printed, and then advances the paper one half line at the current line spacing. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Control code: PLD Hexadecimal: 8B
Escape Sequence: ESC K Hexadecimal: 1B 4B
Partial Line Up PLU (or) ESC L
Performs a reverse half line feed. Causes the current line to be printed, and then retracts the paper one half line at the current line spacing. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Control code: PLU Hexadecimal: 8C
Escape Sequence: ESC L Hexadecimal: 1B 4C
Absolute Vertical Tab ESC [ n d
Sets the current line to line n of the current form. The actual position will depend on the current line spacing. Example: The following escape sequence will set the active line to line 12. Escape Sequence: ESC [ 1 2 d
Hexadecimal: 1B 5B 31 32 64
Relative Vertical Tab ESC [ n e
Advances the active line by n lines. The actual distance moved will depend on the current line spacing. Equivalent to sending n line feeds (LF).
Example: The following escape sequence will advance the active line by 12 lines. If current line spacing is 6 lpi, this will cause the paper to advance one inch.
Escape Sequence: ESC [ 1 2 e Hexadecimal: 1B 5B 31 32 65
ANSI X3.64 Emulation
12
Horizontal and Vertical Position
New Line NEL (or) ESC E
Causes the current line to be printed, and then sets the current print position to the left margin and performs a line feed. Equivalent to a carriage return (CR) line feed (LF) combination.
Control code: NEL Hexadecimal: 85
Escape Sequence: ESC E Hexadecimal: 1B 45
Form Length and Form Feed
Form length is the distance from the top of the form to the bottom of the form. A form feed will advance the paper to the top of the next form. Some programs do not send form feeds. Instead, they count line feeds, and send the appropriate number of line feeds to fill out the page. The usual rational is that the program is then in complete control of form length, and will work on any printer without requiring the correct form length to be set. However, the correct form length should always be set with the control panel setup. Even if the program does not use form feeds, the printer will automatically scroll a completed form up to the tear bar to be torn off. This automatic scroll is based upon form length. The easiest way to set form length is via the “Form Length” value in the forms menu, so it will be correctly set for everyone using the form.
Form Feed FF
Causes the current line to be printed, and then advances the paper to the top of the next form. If a top margin is set, printing will continue at the top margin. Setting “Host FF at TOF” to “No” in the interface setup menu (not available for all interfaces) allows a form feed to be ignored if the paper is already at top of form. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Control code: FF Hexadecimal: 0C
ANSI X3.64 Emulation
13
Horizontal Tabs
Horizontal tab stops are associated with columns, not absolute physical positions. Changing character spacing will change the physical position of the tab stops. Default tab stops are set at every eighth column, i.e. column 9, 17, 25, 33, 41, etc. If different tab stops are to be set, the default tab stops should first be cleared.
Horizontal Tab HT
Advances to the next horizontal tab stop. If no tab stop exists between the active column and the right margin, the HT will be ignored. Default tab stops are set at every eighth column, i.e. column 9, 17, 25, 33, 41, etc. Different tab stops may be set with ESC H, ESC 1, or ESC [ n1 ; n2 ; ... nx u.
Control code: HT Hexadecimal: 09
Set Horizontal Tab Stop HTS (or) ESC H
Sets a horizontal tab stop at the current print position. The tab stop is associated with the active column, not an absolute physical position. Changing character spacing will change the physical position of the tab stop.
Default tab stops are set at every eighth column, i.e. column 9, 17, 25, 33, 41, etc. The tab stop set by this escape sequence will be added to previously set tab stops, including the default tab stops. If this is not desired, the old tab stops should first be cleared.
Control code: HTS Hexadecimal: 88
Escape Sequence: ESC H Hexadecimal: 1B 48
Clear Horizontal Tab Stop ESC [ g (or) ESC [ 0 g
Clears the horizontal tab stop at the current print position. The tab stop to be cleared is associated with the active column (based upon the current character spacing), not an absolute physical position.
Escape Sequence: ESC [ g Hexadecimal: 1B 5B 67
Clear all horizontal tab stops ESC [ 2 g (or) ESC [ 3 g
Clears all currently set horizontal tab stops. Escape Sequence: ESC [ 2 g
Hexadecimal: 1B 5B 32 67
ANSI X3.64 Emulation
14
Escape Sequence: ESC [ 3 g Hexadecimal: 1B 5B 33 67
Vertical Tabs
Vertical tab stops are associated with lines, not absolute physical positions. Changing line spacing will change the physical position of the tab stops.
Vertical Tab VT
Causes the current line to be printed, and then advances the paper to the next vertical tab stop. If no vertical tab stops are set, then a line feed is done instead. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Control code: VT Hexadecimal: 0B
Set Vertical Tab Stop VTS (or) ESC J
Sets a vertical tab stop at the current line. The tab stop is associated with the active line, not an absolute physical position. Changing line spacing will change the physical position of the tab stop.
The tab stop set by this escape sequence will be added to previously set tab stops. If this is not desired, the old tab stops should first be cleared.
Control code: VTS Hexadecimal: 8A
Escape Sequence: ESC J Hexadecimal: 1B 4A
Clear Vertical Tab Stop ESC [ 1 g
Clears the vertical tab stop at the current line. The tab stop to be cleared is associated with the active line (based upon the current line spacing), not an absolute physical position.
Escape Sequence: ESC [ 1 g Hexadecimal: 1B 5B 31 67
Clear All Vertical Tab Stops ESC [ 4 g
Clears all currently set vertical tab stops. Escape Sequence: ESC [ 4 g
Hexadecimal: 1B 5B 34 67
ANSI X3.64 Emulation
15
ANSI X3.64 Emulation
16
Printer Controls
Bell BEL
Causes the printer's bell to sound. Control code: BEL
Hexadecimal: 07
Select Automatic Carriage Return ESC [ 20 h
Selects automatic carriage return mode. This causes the printer to automatically perform a carriage return (CR) for each line feed (LF), vertical tab (VT), or form feed (FF) that it receives. Overrides the “Auto CR” value in the interface setup menu.
Escape Sequence: ESC [ 2 0 h Hexadecimal: 1B 5B 32 30 68
Cancel Automatic Carriage Return ESC [ 20 l
Cancels automatic carriage return mode. Overrides the “Auto CR” value in the interface setup menu. Escape Sequence: ESC [ 2 0 l
Hexadecimal: 1B 5B 32 30 6C
Reset ESC c
Deletes all data on the current line and initializes the printer to the default settings for the current form. Restores the default horizontal tab stops. Default tab stops are set at every eighth column, i.e. column 9, 17,
25, 33, 41, etc. Resets top of form to the current position, so it is wise to be at top of form before performing this reset.
Issuing a form feed will guarantee this. See the chapter on Printer Reset Conditions for more information. Escape Sequence: ESC c
Hexadecimal: 1B 63
ANSI X3.64 Emulation
17
Emulations
Select Software Interface n ESC ESC n
Selects the software interface n according to the table below.
n Software Interface
0 Test (reserved for factory use) 1 ANSI X3.64 Emulation 2 Epson FX Emulation 3 Bar Code Mode (optional) 4 IBM Proprinter Emulation 5 DEC LA120/210 Emulation 6 TTY Emulation 7 Printek Emulation ; Remote Setup Mode < Genicom 3840 = Genicom 3410 ? Previously Selected Emulation @ Default Emulation
Overrides the “Emulation” value in the interface setup menu. A numeric value for n may be specified in two different ways, with equivalent results: a single byte with a
value of 00 to 07 hex, or a single printable ASCII character “0” to “7” (30 to 37 hex). If more than one emulation has been selected, ESC ESC ? will return to the previously selected emulation.
This is particularly useful when the previous emulation is unknown. Please beware that the memory (stack) is only one level deep.
ESC ESC @ will return to the default emulation, as specified by the “Emulation” value in the interface setup menu.
This chapter describes ANSI X3.64 emulation. If a different interface is selected, the control codes and escape sequences described in this chapter will no longer be applicable.
Example: The following escape sequences will select Printek emulation, load form one, and then return to the previous emulation.
Escape Sequence: ESC ESC 7 ESC L 1 ESC ESC ? Hexadecimal: 1B 1B 07 1B 4C 01 1B 1B 3F
ANSI X3.64 Emulation
18
Control Codes and Escape Sequences Sorted Alphabetically
BEL Bell BS Backspace CR Carriage Return CSI Control Sequence Introducer ESC D Line Feed ESC E New Line ESC ESC n Select Software Interface n ESC H Set Horizontal Tab Stop ESC J Set Vertical Tab Stop ESC K Partial Line Down ESC L Partial Line Up ESC [ n1 ; n2 SP G Set Character and Line Spacing ESC [ n ` Absolute Horizontal Tab ESC [ n a Relative Horizontal Tab ESC [ n d Absolute Vertical Tab ESC [ n e Relative Vertical Tab ESC [ g Clear Horizontal Tab Stop ESC [ 0 g Clear Horizontal Tab Stop ESC [ 1 g Clear Vertical Tab Stop ESC [ 2 g Clear All Horizontal Tab Stops ESC [ 3 g Clear All Horizontal Tab Stops ESC [ 4 g Clear All Vertical Tab Stops ESC [ 20 h Select Automatic Carriage Return ESC [ 20 l Cancel Automatic Carriage Return ESC [ n m Select Graphic Rendition ESC c Reset ETX End of Text FF Form Feed HT Horizontal Tab HTS Set Horizontal Tab Stop IND Line Feed LF Line Feed NEL New Line PLD Partial Line Down PLU Partial Line Up VT Vertical Tab VTS Set Vertical Tab Stop
ANSI X3.64 Emulation
19
ANSI X3.64 Emulation
20
EPSON FX EMULATION
Introduction
This section describes the control codes and escape sequences comprising Epson FX emulation. This emulation may be selected by setting “Emulation” to “Epson” in the interface setup menu, or via software with the ESC ESC 2 sequence. While this emulation is selected, control codes and escape sequences from other emulations are not available.
Control codes and escape sequences are used to control printer operation. An ASCII control code is a single character in the range 00 hex through 1F hex, and 7F hex. The ESC (Escape) control code (1B hex) is used to introduce character strings called escape sequences, which provide an extension of the commands available with ASCII control codes.
Some escape sequences accept one or more numeric parameters. If a sequence accepts one numeric parameter, it will be represented as “n”. If a sequence accepts more than one numeric parameter, they will be represented as “n1 n2 ... nx”.
Since numeric parameters are always encoded in one byte, their values may range from 0 to 255 decimal. Please note that the value will never be represented by a string of ASCII decimal digits (“0” through “9”). For example, a value of 66 decimal would be sent as a single byte with a hex value of 42. This is equivalent to sending the ASCII character “B”. It is entirely different than sending the two printable ASCII characters “66”.
If a numeric parameter is limited to a value of zero or one, it may be sent as a single byte with a value of 00 or 01 hex (NUL or SOH), or it may be sent as a single printable ASCII character “0” or “1” (30 or 31 hex).
Spaces are used when documenting escape sequences to increase readability. The spaces within the sequences are for readability only; they are not part of the sequences themselves. Characters that appear in italics (such as “n” and “n1 n2” above) are not sent to the printer as is; they are used as a place holder indicating that some value must be supplied.
Multiple character strings without intervening spaces typically represent control codes. For example, BS is the Backspace control code (08 hex), not the two characters “B” and “S” (42 and 53 hex). An ASCII Control Code Table is contained in the appendices for your convenience. If you have any doubt about how to interpret a documented control code or escape sequence, refer to the hex representation in the provided example. This should clarify any ambiguity. The examples may also be helpful when analyzing a hex dump (see Hex Dump chapter) printed by the printer.
Column and line numbers begin at zero, not at one. Keep this in mind when setting tabs, margins, etc.
ANSI X3.64 Emulation
21
Control Codes and Escape Sequences Grouped by Function
Communications
Cancel Line CAN
Cancels all printable text in the current print line. Does not affect any control codes or escape sequences. Control code: CAN
Hexadecimal: 18
Delete Character DEL
Deletes the last printable character from the current line. Does not affect any control codes or escape sequences.
Control code: DEL Hexadecimal: 7F
End of Text ETX
If “ETX/ACK” is set to “On” in the serial interface setup menu, then receipt of an ETX causes the printer to transmit an ACK to the host computer.
Since the ETX may be a legal value within an escape sequence, it is the user's responsibility to ensure that an ETX used for data handshake is not sent within an escape sequence. The user must also ensure that the maximum block size or the number of blocks sent at one time does not exceed the input buffer size of the printer.
ETX/ACK handshake is available only with serial I/O. If the printing of low symbols is enabled, ETX will be treated as a printable character instead of an I/O
handshake control code. Control code: ETX
Hexadecimal: 03
ANSI X3.64 Emulation
22
Set MSB to 0 ESC =
Sets the MSB (most significant bit) of all following data to zero. Some computers always set the MSB to one, causing all characters to print in italic mode. This escape sequence can overcome the problem. The problem can also be avoided by setting “Data Bits” to “7” in the interface setup menu.
Escape Sequence: ESC = Hexadecimal: 1B 3D
Set MSB to 1 ESC >
Sets the MSB (most significant bit) of all following data to one. This escape sequence allows the eighth bit to be turned on, even if the computer and printer are connected via a 7-bit I/O interface. The eighth bit may be useful for 8-pin graphics data, or for accessing italic characters.
Escape Sequence: ESC > Hexadecimal: 1B 3E
Cancel MSB Control ESC #
Cancels the MSB (most significant bit) control set by ESC = or ESC >. This causes the eighth data bit sent from the host computer to be accepted as is.
Escape Sequence: ESC # Hexadecimal: 1B 23
Deselect Printer DC3 (or) XOFF
Deselects the printer. Use of this command is discouraged, because the printer will remain offline until an operator presses the ONLINE button on the control panel.
Control code: DC3 Hexadecimal: 13
Character Size
The FormsPro, FormsMaster and PrintMaster series printers are capable of supporting 10, 12, 13.3, 15,
16.7, 17.14, and 20 cpi, but most emulations support only a subset of these. Epson emulation supports 10, 12, 15, 17.14, and 20 cpi via software, but does not support 13.3 or 16.7 cpi. Every emulation supports 10 cpi, and we consider this to be the default character pitch. When you use the control panel to change the “Characters/Inch” value in the forms menu, you are actually changing the default character pitch. When the printer is turned on (or reset), it will use this character pitch. You can even use a pitch that is not supported by your emulation, such as 13.3 cpi with Epson emulation. You can override this pitch selection via software, by sending an escape sequence. This selects a user specified non-default pitch. For example, in Epson emulation, sending ESC M will select 12 cpi. Sending ESC P will re-select 10 cpi, and thus re-select the default character pitch that was selected in the form setup.
ANSI X3.64 Emulation
23
Via software escape sequences, you can select any character pitch supported by the emulation you are using. All will print as expected, unless you select 10 cpi -- because 10 cpi really selects the default character pitch from setup. If you really want 10 cpi, then you must set “Characters/Inch” to “10” in the forms menu. Likewise, if you want to use the default pitch from setup, you must not override it. Either send no character pitch sequences to the printer, or make sure you re-select 10 cpi via software.
When you select different forms, the default character pitch from setup is selected along with the form. But you will not see this default pitch if it has already been overridden via software.
Select 10 CPI ESC P
Selects 10 cpi by cancelling 12 cpi and 15 cpi. Condensed mode is unaffected. The resulting character spacing will be 10 cpi, or if condensed mode is also selected, 17.14 cpi.
If “Characters/Inch” was not set to “10” in the forms menu, the specified default character pitch will be selected instead of 10 cpi.
Escape Sequence: ESC P Hexadecimal: 1B 50
Select 12 CPI ESC M
Selects 12 cpi (elite mode). Cancels 15 cpi. Condensed mode is unaffected. The resulting character spacing will be 12 cpi, or if condensed mode is also selected, 20 cpi.
Escape Sequence: ESC M Hexadecimal: 1B 4D
Select 15 CPI ESC g
Selects 15 cpi. Cancels 12 cpi. Condensed mode is unaffected. The resulting character spacing will be 15 cpi, even if condensed mode is also selected.
Escape Sequence: ESC g Hexadecimal: 1B 67
Select Condensed Mode SI (or) ESC SI
Selects condensed mode. The resulting character spacing will be 17.14 cpi if 10 cpi was selected, or 20 cpi if 12 cpi was selected. If 15 cpi was selected, condensed mode will have no affect.
Control code: SI Hexadecimal: 0F
Escape Sequence: ESC SI Hexadecimal: 1B 0F
ANSI X3.64 Emulation
24
Cancel Condensed Mode DC2
Cancels condensed mode set by SI or ESC SI. Control code: DC2
Hexadecimal: 12
Select double-wide mode (one line) SO (or) ESC SO
Selects double-wide mode for one line. Double-wide mode doubles the width of all characters, but does not affect character height. This mode is cancelled by a carriage return or DC4.
Control code: SO Hexadecimal: 0E
Escape Sequence: ESC SO Hexadecimal: 1B 0E
Cancel Double-Wide Mode (one line) DC4
Cancels double-wide mode selected by SO or ESC SO. Does not cancel double-wide mode selected by ESC W or ESC !.
Control code: DC4 Hexadecimal: 14
Double-Wide Mode ESC W n
Selects double-wide mode for n=1, or cancels for n=0. Double-wide mode doubles the width of all characters, but does not affect character height.
Example: The following escape sequence will select double-wide mode. Escape Sequence: ESC W 1
Hexadecimal: 1B 57 31
Double-High Mode ESC w n
Selects double-high mode for n=1, or cancels for n=0. Double-high mode doubles the height of all characters, but does not affect character width.
Example: The following escape sequence will select double-high mode. Escape Sequence: ESC w 1
Hexadecimal: 1B 77 31
ANSI X3.64 Emulation
25
Select Subscript or Superscript Mode ESC S n
Selects subscript mode for n=1, or superscript mode for n=0. This will print characters about half the normal height, in the bottom or top half of the normal character cell.
Example: The following escape sequence will select superscript mode. Escape Sequence: ESC S 0
Hexadecimal: 1B 53 30
Cancel Subscript and Superscript Mode ESC T
Cancels subscript and superscript mode. Escape Sequence: ESC T
Hexadecimal: 1B 54
Character Attributes
Select Emphasized Mode ESC E
Selects emphasized mode. This makes characters bolder by printing an extra dot to the right of each dot normally found in the character matrix. This will cut the print speed in half, but will not require an additional pass of the print head.
Escape Sequence: ESC E Hexadecimal: 1B 45
Cancel Emphasized Mode ESC F
Cancels emphasized mode. Escape Sequence: ESC F
Hexadecimal: 1B 46
Select Double-Strike Mode ESC G
Selects double-strike mode. This makes text bolder by printing it twice. This will cut the print speed in half, because an additional pass of the print head will be required.
Escape Sequence: ESC G Hexadecimal: 1B 47
Cancel Double-Strike Mode ESC H
Cancels double-strike mode.
ANSI X3.64 Emulation
26
Escape Sequence: ESC H Hexadecimal: 1B 48
Underline Mode ESC - n
Selects underline mode for n=1, or cancels for n=0. This mode provides continuous underlining for all characters, including spaces.
Example: The following escape sequence will turn underlining on. Escape Sequence: ESC - 1
Hexadecimal: 1B 2D 31
Select Italic Mode ESC 4
Selects italic mode. This causes italic characters to be printed by setting the MSB (most significant bit) of all following printable characters to one. The effect is to map characters from the bottom half (non-italic) of the font to the top half (italic) of the font. For this to work correctly, an Epson FX font must be selected (see ESC k). The other available fonts do not include italic characters.
Escape Sequence: ESC 4 Hexadecimal: 1B 34
Cancel Italic Mode ESC 5
Cancels italic mode. The MSB (most significant bit) of the following printable characters will be accepted as is. Italic characters may still be printed by transmitting characters with the MSB turned on.
Escape Sequence: ESC 5 Hexadecimal: 1B 35
ANSI X3.64 Emulation
27
Master Print Mode Select ESC ! n
Selects any valid combination of modes from the following table. The value of n is determined by adding together the values of the desired modes from the table.
n Attribute 0 10 cpi 1 12 cpi 4 Condensed 8 Emphasized 16 Double-Strike 32 Double-Wide 64 Italic 128 Underline
Example: The following escape sequence will select 12 cpi condensed, resulting in 20 cpi character spacing. Escape Sequence: ESC ! 5
Hexadecimal: 1B 21 05 Example: The following escape sequence will select emphasized, double-wide, and underline, for a heading
that really stands out. Escape Sequence: ESC ! 168
Hexadecimal: 1B 21 A8
Character Sets
Select Draft or Letter Quality ESC x n
Selects draft for n=0 or letter quality for n=1. Same as ESC k 0 or ESC k 1. Overrides the “Font” value in the forms menu.
Example: The following escape sequence will select draft print. Escape Sequence: ESC x 0
Hexadecimal: 1B 78 30
ANSI X3.64 Emulation
28
Select Font ESC k n
Select font n according to the following table.
n Font
0 Epson FX Draft 1 Epson FX Letter Quality 2 Proprinter PC Draft 3 Proprinter PC Letter Quality 10 EBCDIC Draft 11 EBCDIC Letter Quality 12 OCR-A Optical Quality 13 OCR-B Optical Quality
32 Epson FX Fast Draft 33 Epson FX Draft 34 Epson FX Letter Quality 36 Proprinter PC Fast Draft 37 Proprinter PC Draft 38 Proprinter PC Letter Quality 44 PC Latin II (Slavic) Fast Draft 45 PC Latin II (Slavic) Draft 46 PC Latin II (Slavic) Letter Quality 64 EBCDIC Fast Draft 65 EBCDIC Draft 66 EBCDIC Letter Quality 71 OCR-A Optical Quality 75 OCR-B Optical Quality
Overrides the “Font” value in the forms menu. If the specified font is not installed, the “Font” value in the forms menu will be used to select the default font.
Example: The following escape sequence will select the Epson FX letter quality font. Escape Sequence: ESC k 1
Hexadecimal: 1B 6B 01
ANSI X3.64 Emulation
29
Select International Character Set ESC R n
Selects the international character set as specified by the value of n in the following table. Overrides the “Language” value in the forms menu.
n Character Set 0 United States of America 1 France 2 Germany 3 United Kingdom 4 Denmark 5 Sweden 6 Italy 7 Spain 8 Japan
The actual character substitutions are shown in the “International Character Mapping” table below. For this to work correctly, an Epson FX font must be selected (see ESC k).
35 36 64 91 92 93 94 96 123 124 125 126 USA # $ @ [ \ ] ^ ` { ¦ } ˜
France # $ à ° ç § ^ ` é ù è ¨ Germany # $ § Ä Ö Ü ^ ` ä ö ü ß England £ $ @ [ \ ] ^ ` { ¦ } ˜ Denmark # $ @ Æ Ø Å ^ ` æ ø å ˜ Sweden # ¤ É Ä Ö Å Ü é ä ö å ü Italy # $ @ ° \ é ^ ù à ò è ì Spain PTS $ @ ¡ Ñ ¿ ^ ` ¨ ñ } ˜ Japan # $ @ [ ¥ ] ^ ` { ¦ } ˜
Example: The following escape sequence will select the German character set. Escape Sequence: ESC R 2
Hexadecimal: 1B 52 02
Character Table ESC t n
Selects the Epson italic character set for n=0 or the Epson extended graphics character set fo r n=1. As implemented, this selects either the Epson FX font or the PC USA font. The character attribute (fast draft, draft, or letter quality) will not change.
Example: The following escape sequence will select the Epson FX font. Escape Sequence: ESC t 0
Hexadecimal: 1B 74 30
ANSI X3.64 Emulation
30
Enable Printing of High Symbols ESC 6
Enables printing of character values 128 through 159 decimal. If printing is not enabled, these characters will be treated as control codes. Overrides the “Characters” value in the interface setup menu.
Escape Sequence: ESC 6 Hexadecimal: 1B 36
Disable Printing of High Symbols ESC 7
Disables printing of character values 128 through 159 decimal. These characters will be treated as control codes. Overrides the “Characters” value in the interface setup menu.
Escape Sequence: ESC 7 Hexadecimal: 1B 37
Printing of Low Symbols ESC I n
Enables printing of character values 0 through 31 decimal if they are not used as control codes for n=1, or disables printing for n=0. Overrides the “Characters” value in the interface setup menu.
Example: The following escape sequence will disable printing of character values 0 through 31 decimal. Escape Sequence: ESC I 0
Hexadecimal: 1B 49 30
Line Pitch
Select 8 LPI ESC 0
Sets the line spacing to 1/8 of an inch per line (8 lpi). Overrides the “Lines/Inch” value in the forms menu. Escape Sequence: ESC 0
Hexadecimal: 1B 30
Set Line Spacing to 7/72” ESC 1
Sets the line spacing to 7/72 of an inch per line. Since the distance between print head wires is 1/72 of an inch, this is equivalent to setting seven wire spacing. This is not particularly useful for text, but may be useful for graphics if 7-bit graphics data is being sent. Overrides the “Lines/Inch” value in the forms menu.
Escape Sequence: ESC 1 Hexadecimal: 1B 31
Select 6 LPI ESC 2
Sets the line spacing to 1/6 of an inch per line (6 lpi). This is the normal text line spacing. Overrides the “Lines/Inch” value in the forms menu.
ANSI X3.64 Emulation
31
Escape Sequence: ESC 2 Hexadecimal: 1B 32
Set Line Spacing to n/216” ESC 3 n
Sets the line spacing to n/216 of an inch per line. 0n255. Overrides the “Lines/Inch” value in the forms menu.
NOTE: The actual resolution of the printer's paper stepper motor is 1/288 of an inch. When spacing is specified in 1/216 of an inch, the printer will actually move paper to the nearest 1/288 of an inch.
Example: The following escape sequence will set line spacing to one half inch. Escape Sequence: ESC 3 108
Hexadecimal: 1B 33 6C
Set Line Spacing to n/72” ESC A n
Sets the line spacing to n/72 of an inch per line. 0n≥255. Since the distance between print head wires is 1/72 of an inch, this is equivalent to setting n wire spacing. Overrides the “Lines/Inch” value in the forms menu.
Example: The following escape sequence will set line spacing to 8/72 of an inch, for use with eight wire graphics.
Escape Sequence: ESC A 8 Hexadecimal: 1B 41 08
Horizontal Position
Carriage Return CR
Causes the current line to be printed, and then sets the current print position to the left margin. If “Auto LF” is set to “On” in the interface setup menu, a line feed will also be performed.
Control code: CR Hexadecimal: 0D
ANSI X3.64 Emulation
32
Backspace BS
Causes the current line to be printed, and then moves the current print position one space to the left. The actual distance moved depends on the current character spacing. Backspacing can be done up to, but not beyond, the left margin.
Control code: BS Hexadecimal: 08
Vertical Position
Line Feed LF
Causes the current line to be printed, and then advances the paper one line at the current line spacing. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Control code: LF Hexadecimal: 0A
Variable Distance Line Feed ESC J n
Causes the current line to be printed, and then performs a single line feed of n/216ths of an inch. 0n≥255. Does not change the current line spacing. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Example: The following escape sequence will advance the paper one half inch. Escape Sequence: ESC J 108
Hexadecimal: 1B 4A 6C
Variable Distance Reverse Line Feed ESC j n
Performs a single reverse line feed of n/216ths of an inch. 0n255. Does not change the current line spacing. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Example: The following escape sequence will move the paper down one half inch. Escape Sequence: ESC j 108
Hexadecimal: 1B 6A 6C
Form Length and Form Feed
Form length is the distance from the top of the form to the bottom of the form. Form length may be specified either in inches, or in lines. A form feed will advance the paper to the top of the next form. Some programs do not send form feeds. Instead, they count line feeds, and send the appropriate number of line feeds to fill out the page. The usual rational is that the program is then in complete control of form length, and will work
ANSI X3.64 Emulation
33
on any printer without requiring the correct form length to be set. However, the correct form length should always be set with the control panel setup. Even if the program does not use form feeds, the printer will automatically scroll a completed form up to the tear bar to be torn off. This automatic scroll is based upon form length. The easiest way to set form length is via the “Form Length” value in the forms menu, so it will be correctly set for everyone using the form. If correct form length cannot be guaranteed from SETUP, then each program should set the correct form length.
Set Form Length in Lines ESC C n
Sets the form length to n lines at the current line spacing. 1n255. Maximum form length is 37.9 inches. Invalid form lengths will be ignored. Overrides the “Form Length” value in the forms menu.
For example, an 11 inch form contains 66 lines at 6 LPI, but 88 lines at 8 LPI. If line spacing is changed after setting the form length, the physical form length (in inches) will not be changed.
Resets top of form to the current position, so it is wise to be at top of form before setting form length. Issuing a form feed will guarantee this. Vertical margins are cleared.
Example: The following escape sequence will set form length to 66 lines. At 6 LPI, this will result in a form length of 11 inches.
Escape sequence: ESC C 66 Hexadecimal: 1B 43 42
Set Form Length in Inches ESC C NUL n
Sets the form length to n inches. 1n37. Maximum form length is 37.9 inches. Invalid form lengths will be ignored. Overrides the “Form Length” value in the forms menu.
Resets top of form to the current position, so it is wise to be at top of form before setting form length. Issuing a form feed will guarantee this. Vertical margins are cleared.
Example: The following escape sequence will set form length to 11 inches, regardless of what line spacing is set.
Escape sequence: ESC C NUL 11 Hexadecimal: 1B 43 00 0B
Form Feed FF
Causes the current line to be printed, and then advances the paper to the top of the next form. If a top margin is set, printing will continue at the top margin. Setting “Host FF at TOF” to “No” in the interface setup menu allows a form feed to be ignored if the paper is already at top of form. If “Auto CR” is set to “On” in the interface menu, a carriage return will also be performed.
Control code: FF Hexadecimal: 0C
ANSI X3.64 Emulation
34
Horizontal Tabs
Default horizontal tab stops are set at every eighth column, i.e. column 8, 16, 24, 32, 40, etc. The default tab stops are associated with columns, not absolute physical positions. Changing character spacing will change the physical position of the default tab stops.
User defined horizontal tab stops are associated with absolute physical positions, not with columns. The tab stops are set relative to the current character spacing, but subsequent changes in character spacing will not affect the physical position of the tab stops (except that the position will be rounded up to the closest character boundary).
Horizontal Tab HT
Advances to the next horizontal tab stop. If no tab stop exists between the active column and the right margin, the HT will be ignored. Default tab stops are set at every eighth column, i.e. column 8, 16, 24, 32, 40, etc. Different tab stops may be set with ESC D.
Control code: HT Hexadecimal: 09
Absolute Horizontal Tab ESC $ n1 n2
Move to the specified carriage position. The position is specified in 60ths of an inch, and calculated as
inches. The position is relative to the left margin and must not exceed the right margin or it
will be ignored. Example: The following escape sequence will set the carriage position 5 inches (300/60 inches) from the left
margin. Escape Sequence: ESC $ 44 1
Hexadecimal: 1B 24 2C 01
Relative Horizontal Tab ESC \ n1 n2
Move the carriage position to the left or right of the current carriage position. The displacement is specified in 120ths of an inch, and calculated as inches. The new position is relative to the current carriage position, and must fall within the left and right margins or it will be ignored. A negative displacement
(2’s complement) causes a move to the left. Example: The following escape sequence will move the carriage one inch to the right. Escape Sequence: ESC \ 120 0
Hexadecimal: 1B 5C 78 00 Example: The following escape sequence will move the carriage one inch to the left.
Escape Sequence: ESC \ 136 255 Hexadecimal: 1B 5C 88 FF
ANSI X3.64 Emulation
35
Set Horizontal Tab Stops ESC D n1 n2 ... nx NUL
Clears all currently set horizontal tab stops, and sets new tab stops at column n1, n2, n3, etc. 1n≥255. The tab stops must be presented in ascending order. The NUL character, or any tab stop value less than the preceding one, terminates the sequence. The tab stops are set relative to the current character spacing, but subsequent changes in character spacing will not affect the physical position of the tab stops (except that the position will be rounded up to the closest character boundary). The leftmost column is column zero.
Default tab stops are set at every eighth column, i.e. column 8, 16, 24, 32, 40, etc. The tab stops set by ESC D will replace the default tab stops. ESC D NUL will clear all tab stops, leaving no tab stops set. The default tab stops are restored by ESC @.
Example: The following escape sequence will set horizontal tab stops at half inch intervals, if character spacing is currently 10 cpi.
Escape Sequence: ESC D 5 10 15 20 25 30 NUL Hexadecimal: 1B 44 05 0A 0f 14 19 1E 00
Vertical Tabs
Vertical tab stops are associated with absolute physical positions, not with lines. The tab stops are set relative to the current line spacing, but subsequent changes in line spacing will not affect the physical position of the tab stops.
Vertical Tab VT
Causes the current line to be printed, and then advances the paper to the next vertical tab stop. If no vertical tab stops are set, then a line feed is done instead. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Control code: VT Hexadecimal: 0B
Set Vertical Tab Stops ESC B n1 n2 ... nx NUL
Clears all currently set vertical tab stops, and sets new tab stops at line n1, n2, n3, etc. 1n255. The tab stops must be presented in ascending order. The NUL character, or any tab stop value less than the preceding one, terminates the sequence. The tab stop settings are based on the current line spacing. Changing the line spacing after the tab stops are set will not affect the position of the tab stops. The first line is line zero.
ESC B NUL will clear all currently set vertical tab stops, leaving no vertical tab stops set. Example: The following escape sequence will set vertical tab stops at line 6, 12, and 24. If line spacing is
currently 6 lpi, this will result in tab stops one inch, two inches, and four inches from the top of the form. Escape Sequence: ESC B 6 12 24 NUL
Hexadecimal: 1B 42 06 0C 18 00
ANSI X3.64 Emulation
36
Horizontal Margins
Printing is allowed only within the left and right margins. Exceeding the right margin will cause line wrap, setting the current print position to the left margin and advancing the paper one line.
Set Left Margin ESC l n
Sets the left margin to column n at the current character spacing. If character spacing is changed after setting the left margin, the position of the left margin will not change.
The left margin is inclusive. For example, a left margin at column 10 still allows a character to be printed in column 10.
The leftmost column is column zero. The left margin must be left of the right margin and 13.4 inches. Invalid left margins will be ignored. Overrides the “Left Margin” value in the forms menu.
Example: The following escape sequence will set a one inch left margin, if character spacing is currently 10 cpi.
Escape Sequence: ESC l 10 Hexadecimal: 1B 6C 0A
Set Right Margin ESC Q n
Sets the right margin to column n at the current character spacing. If character spacing is changed after setting the right margin, the position of the right margin will not change.
The right margin is exclusive. For example, a right margin at column 75 allows a character to be printed in column 74, but not in column 75.
The leftmost column is column zero. The right margin must be right of the left margin and 13.6 inches. Invalid right margins will be ignored. Overrides the “Right Margin” value in the forms menu.
Example: The following escape sequence will set a right margin 7.5 inches from the left edge of the form, if character spacing is currently 10 cpi. For a standard 8.5 inch wide form, this would result in a one inch right margin.
Escape Sequence: ESC Q 75 Hexadecimal: 1B 51 4B
Vertical Margins
Printing is allowed only within the top and bottom margins. Exceeding the bottom margin will set the current line to the top margin of the next form.
ANSI X3.64 Emulation
37
Set Perforation Skip ESC N n
Sets the perforation skip distance to n lines at the current line spacing. 1n255. If line spacing is changed after setting the skip distance, the skip distance will not be changed.
The skip distance is split between the top and bottom margins, so the perforation will be centered in the resulting white space. The specified skip distance must be less than the form length, or the command will be ignored. Perforation skip is canceled by ESC O, ESC C n or ESC C NUL n. Overrides the “Top Margin” and “Bottom Margin” values in the forms menu.
Example: The following escape sequence will set a two inch perforation skip distance, if the current line spacing is 6 lpi. This will result in a one inch top and bottom margin.
Escape Sequence: ESC N 12 Hexadecimal: 1B 4E 0C
Cancel Perforation Skip ESC O
Cancels perforation skip. This is equivalent to having no top and bottom margin. Overrides the “Top Margin” and “Bottom Margin” values in the forms menu.
Escape Sequence: ESC O Hexadecimal: 1B 4F
Graphics
Graphics mode gives the user complete control over every dot position on the paper. Graphics may be printed with various horizontal densities from 60 to 240 dpi, and a vertical density of 72 dpi.
Each byte of graphics data represents a vertical column of eight dots, with the MSB (most significant bit) corresponding to the top wire of the print head. Turning a bit on causes a dot to be printed. The bit values corresponding to each wire of the print head are shown below:
wire 1 128 (80 hex) wire 2 64 (40 hex) wire 3 32 (20 hex) wire 4 16 (10 hex) wire 5 8 (08 hex) wire 6 4 (04 hex) wire 7 2 (02 hex) wire 8 1 (01 hex)
The appropriate bit values are added together to fire the desired wires. For example, a byte of graphics data with the value 128 (80 hex) will fire the top wire, wire 1. A value of 192 (C0 hex) will fire the top two wires, wires 1 and 2. A value of 11 (0B hex) will fire wires 5, 7 and 8.
Each graphics sequence contains two bytes (n1 and n2) that specify how many bytes of graphics data follow. The first byte, n1, can specify values up to 255. If that is sufficient, then n2 is set to zero. For values greater than 255, n2 comes into play. The n2 byte specifies multiples of 256. For example, to specify 520 bytes of graphics data, n1 = 8 and n2 = 2. The bytes of graphics data are strung together to create a graphics line
ANSI X3.64 Emulation
38
that is eight dots high, and n1 + (n2 x 256) dots long. Be sure to provide the amount of graphics data that you specify, because the printer will not leave graphics mode until it has accepted the specified number of data bytes.
If “Data Bits” is set to “7” in the interface setup menu, beware of potential problems in graphics mode. Since the MSB (most significant bit) will always be turned off, it will not be possible to fire the top wire of the print head. Worse yet, the value of n1 or n2 may be changed. For example, if n1 specifies 200 bytes of data, and its MSB is turned off, the printer will only expect 72 bytes of data. It will exit graphics mode, and then try to print the remaining 128 bytes of graphics data as normal text characters. The result will surely not be pretty. To avoid such problems, the use of an 8-bit I/O interface for printing graphics is highly recommended.
The normal graphics modes allow every dot to be printed. High speed graphics will print twice as fast, but will not allow consecutive dots to be printed.
60 DPI Graphics ESC K n1 n2 data
Selects eight wire single density (60 dpi) graphics for n1 + (n2 x 256) columns of data. Example: The following escape sequence will print six bytes of graphics data at 60 dpi. The resulting figure
will resemble a backslash character, “\”. Escape Sequence: ESC K 6 0 128 64 32 16 8 4
Hexadecimal: 1B 4B 06 00 80 40 20 10 08 04
120 DPI Graphics ESC L n1 n2 data
Selects eight wire double density (120 dpi) graphics for n1 + (n2 x 256) columns data. Example: The following escape sequence will print six bytes of graphics data at 120 dpi. The resulting figure
will resemble a backslash character, “\”. Escape Sequence: ESC L 6 0 128 64 32 16 8 4
Hexadecimal: 1B 4C 06 00 80 40 20 10 08 04
High Speed 120 DPI Graphics ESC Y n1 n2 data
Selects eight wire high speed double density (120 dpi) graphics for n1 + (n2 x 256) columns of data. Horizontally adjacent dots may not be printed.
Example: The following escape sequence will print six bytes of graphics data at 120 dpi. The resulting figure will resemble a backslash character, “\”.
Escape Sequence: ESC Y 6 0 128 64 32 16 8 4 Hexadecimal: 1B 59 06 00 80 40 20 10 08 04
High Speed 240 DPI Graphics ESC Z n1 n2 data
Selects eight wire quadruple density (240 dpi) graphics for n1 + (n2 x 256) columns of data. Horizontally adjacent dots may not be printed.
ANSI X3.64 Emulation
39
Example: The following escape sequence will print six bytes of graphics data at 240 dpi. The resulting figure will resemble a backslash character, “\”.
Escape Sequence: ESC Z 6 0 128 64 32 16 8 4 Hexadecimal: 1B 5A 06 00 80 40 20 10 08 04
m DPI Graphics ESC * m n1 n2 data
Selects eight wire graphics of density m as listed in the following table for n1 + (n2 x 256) columns of data. m Density _______
0 60 dpi (same as ESC K) 1 120 dpi (same as ESC L) 2 120 dpi high speed (same as ESC Y) 3 240 dpi high speed (same as ESC Z) 4 80 dpi 5 72 dpi 6 90 dpi 7 144 dpi
Example: The following escape sequence will print four bytes of graphics data at 72 x 72 dpi. The resulting figure will resemble a square, since the horizontal and vertical density are the same. If some other density is chosen, the figure will resemble a rectangle.
Escape Sequence: ESC * 5 4 0 < < < < Hexadecimal: 1B 2A 05 04 00 3C 3C 3C 3C
Printer Controls
Bell BEL
Causes the printer's bell to sound. Control code: BEL
Hexadecimal: 07
Unidirectional Mode (one line) ESC <
Selects unidirectional mode for the current line (until a carriage return is received). This will force the line to print from left to right.
Escape Sequence: ESC < Hexadecimal: 1B 3C
Unidirectional Mode ESC U n
Selects unidirectional mode for n=1, or bidirectional mode for n=0. Printing is normally bidirectional. Unidirectional printing provides more accurate positioning, but causes lower throughput.
ANSI X3.64 Emulation
40
Example: The following escape sequence will force unidirectional printing. Escape Sequence: ESC U 1
Hexadecimal: 1B 55 31
Reset ESC @
Deletes all data on the current line and initializes the printer to the default settings for the current form. Restores the default horizontal tab stops. Default tab stops are set at every eighth column, i.e. column 8, 16,
24, 32, 40, etc. Resets top of form to the current position, so it is wise to be at top of form before performing this reset.
Issuing a form feed will guarantee this. See the chapter on Printer Reset Conditions for more information. Escape Sequence: ESC @
Hexadecimal: 1B 40
Forms and Tractors
The FormsPro 4503se and FormsMaster 8003se series printer contains three sets of paper tractors (front, center, and rear). It is possible, via software, to change to a different form that is set up to use any set of tractors. With the FormsMaster 8003se series printer, it is even possible to use some combinations of tractor paths for longer print jobs.
The “Path” value in the forms menu specifies “Front”, “Center”, “Rear”, or PrintMaster 8003se series printer also includes, “Center+Rear”, or “Front+Center+Rear” (abbreviated “Frnt+Cntr+Rear”) for each form that is defined. When a form is selected, the associated set(s) of tractors is also automatically selected.
Load Form ESC EM n
Causes the current line to be printed, and then loads paper and form parameters for form n. 0n2. If form n is already loaded, this sequence is ignored. If not, the current form will be unloaded, the parameters for
form n will be selected, and the printer will go offline to wait for the operator to install the new form and place the printer back online. In the FormsPro 4503se and FormsMaster 8003se series printer the same happens unless selecting form n also selects a different paper path. In that case, the current form is unloaded, the tractors are moved to engage the new path, the new form is loaded, and printing may continue. If the selected form had not been previously loaded in that path (see the FormsPro 4000se or FormsMaster 8000se Series Operator’s Manual), then the printer will go offline until an operator has loaded the form.
The printer will not unload the current form if a previously printed form has not been torn off. In this case, the printer will go offline, sound the bell, and display the message ”Too Much Paper to Unload”. When an operator tears off the paper and places the printer back online, the printer will unload the current form and continue.
If the printer is unable to load the new form, it will sound the bell and display the message “No Paper to Load” and go offline to wait for an operator to clear the error.
ANSI X3.64 Emulation
41
Example: The following escape sequence will load form 2. Escape Sequence: ESC EM 2
Hexadecimal: 1B 19 32
Emulations
Select Software Interface n ESC ESC n
Selects the software interface n according to the table below.
n Software Interface
0 Test (reserved for factory use) 1 ANSI X3.64 Emulation 2 Epson FX Emulation 3 Bar Code Mode (optional) 4 IBM Proprinter Emulation 5 DEC LA120/210 Emulation 6 TTY Emulation 7 Printek Emulation ; Remote Setup Mode < Genicom 3840 = Genicom 3410 ? Previously Selected Emulation @ Default Emulation
Overrides the “Emulation” value in the interface setup menu. A numeric value for n may be specified in two different ways, with equivalent results: a single byte with a
value of 00 to 07 hex, or a single printable ASCII character “0” to “7” (30 to 37 hex). If more than one emulation has been selected, ESC ESC ? will return to the previously selected emulation.
This is particularly useful when the previous emulation is unknown. Please beware that the memory (stack) is only one level deep.
ESC ESC @ will return to the default emulation, as specified by the “Emulation” value in the interface setup menu.
This chapter describes Epson FX emulation. If a different interface is selected, the control codes and escape sequences described in this chapter will no longer be applicable.
Example: The following escape sequences will select Printek emulation, load form one, and then return to the previous emulation.
Escape Sequence: ESC ESC 7 ESC L 1 ESC ESC ? Hexadecimal: 1B 1B 07 1B 4C 01 1B 1B 3F
ANSI X3.64 Emulation
42
Sorted Alphabetically
BEL Bell BS Backspace CAN Cancel Line CR Carriage Return DC2 Cancel Condensed Mode DC3 Deselect Printer DC4 Cancel Double-Wide Mode (one line) DEL Delete Character ESC ! n Master Print Mode Select ESC # Cancel MSB Control ESC $ n1 n2 Absolute Horizontal Tab ESC * m n1 n2 data m DPI Graphics ESC - n Underline Mode ESC 0 Select 8 LPI ESC 1 Set Line Spacing to 7/72” ESC 2 Select 6 LPI ESC 3 n Set Line Spacing to n/216” ESC 4 Select Italic Mode ESC 5 Cancel Italic Mode ESC 6 Enable Printing of High Symbols ESC 7 Disable Printing of High Symbols ESC < Unidirectional Mode (one line) ESC = Set MSB to 0 ESC > Set MSB to 1 ESC @ Reset ESC A n Set Line Spacing to n/72” ESC B n1 n2 ... nx NUL Set Vertical Tab Stops ESC C NUL n Set Form Length in Inches ESC C n Set Form Length in Lines ESC D n1 n2 ... nx NUL Set Horizontal Tab Stops ESC E Select Emphasized Mode ESC EM n Load Form ESC ESC n Select Software Interface n ESC F Cancel Emphasized Mode ESC G Select Double-Strike Mode ESC H Cancel Double-Strike Mode ESC I n Printing of Low Symbols ESC J n Variable Distance Line Feed ESC K n1 n2 data 60 DPI Graphics ESC L n1 n2 data 120 DPI Graphics ESC M Select 12 CPI ESC N n Set Perforation Skip ESC O Cancel Perforation Skip ESC P Select 10 CPI ESC Q n Set Right Margin ESC R n Select International Character Set
ANSI X3.64 Emulation
43
ESC S n Select Subscript or Superscript Mode ESC SI Select Condensed Mode ESC SO Select Double-Wide Mode (one line) ESC T Cancel Subscript and Superscript Mode ESC U n Unidirectional Mode ESC W n Double-Wide Mode ESC Y n1 n2 data High Speed 120 DPI Graphics ESC Z n1 n2 data High Speed 240 DPI Graphics ESC \ n1 n2 Relative Horizontal Tab ESC g Select 15 CPI ESC j n Variable Distance Reverse Line Feed ESC k n Select Font ESC l n Set Left Margin ESC t n Character Table (Italic vs. Extended) ESC w n Double-High Mode ESC x n Select Draft or Letter Quality ETX End of Text FF Form Feed HT Horizontal Tab LF Line Feed SI Select Condensed Mode SO Select Double-Wide Mode (one line) VT Vertical Tab XOFF Deselect Printer
45
IBM PROPRINTER EMULATION
Introduction
This section describes the control codes and escape sequences comprising IBM Proprinter emulation. This emulation may be selected by setting “Emulation” to “Proprinter” in the interface setup menu, or via software with the ESC ESC 4 sequence. While this emulation is selected, control codes and escape sequences from other emulations are not available.
Control codes and escape sequences are used to control printer operation. An ASCII control code is a single character in the range 00 hex through 1F hex, and 7F hex. The ESC (Escape) control code (1B hex) is used to introduce character strings called escape sequences, which provide an extension of the commands available with ASCII control codes.
Some escape sequences accept one or more numeric parameters. If a sequence accepts one numeric parameter, it will be represented as “n”. If a sequence accepts more than one numeric parameter, they will be represented as “n1 n2 ... nx”.
Since numeric parameters are always encoded in one byte, their values may range from 0 to 255 decimal. Please note that the value will never be represented by a string of ASCII decimal digits (“0” through “9”). For example, a value of 66 decimal would be sent as a single byte with a hex value of 42. This is equivalent to sending the ASCII character “B”. It is entirely different than sending the two printable ASCII characters “66”.
If a numeric parameter is limited to a value of zero or one, it may be sent as a single byte with a value of 00 or 01 hex (NUL or SOH), or it may be sent as a single printable ASCII character “0” or “1” (30 or 31 hex).
Spaces are used when documenting escape sequences to increase readability. The spaces within the sequences are for readability only; they are not part of the sequences themselves. Characters that appear in italics (such as “n” and “n1 n2” above) are not sent to the printer as is; they are used as a place holder indicating that some value must be supplied.
Multiple character strings without intervening spaces typically represent control codes. For example, BS is the Backspace control code (08 hex), not the two characters “B” and “S” (42 and 53 hex). An ASCII Control Code Table is provided on page 109 for your convenience. If you have any doubt about how to interpret a documented control code or escape sequence, refer to the hex representation in the provided example. This should clarify any ambiguity. The examples may also be helpful when analyzing a hex dump (see Hex Dump chapter) printed by the printer.
Column and line numbers begin at one, not at zero. Keep this in mind when setting tabs, margins, etc.
IBM Proprinter Emulation
46
Control Codes and Escape Sequences Grouped by Function
Communications
Cancel Line CAN
Cancels all printable text in the current print line. Does not affect any control codes or escape sequences. Control code: CAN
Hexadecimal: 18
End of Text ETX
If “ETX/ACK” is set to “On” in the interface setup menu, then receipt of an ETX causes the printer to transmit an ACK to the host computer.
Since the ETX may be a legal value within an escape sequence, it is the user's responsibility to ensure that an ETX used for data handshake is not sent within an escape sequence. The user must also ensure that the maximum block size or the number of blocks sent at one time does not exceed the input buffer size of the printer.
ETX/ACK handshake is available only with serial I/O. If character set 2 is selected, ETX will be treated as a printable character instead of an I/O handshake
control code. Control code: ETX
Hexadecimal: 03
Deselect Printer ESC Q n
Deselects the printer. Use of this command is discouraged, because the printer will remain offline until an operator presses the ONLINE button on the control panel.
For a Proprinter II or Proprinter III, n should be 3. For a Proprinter XL or Proprinter III XL, n should be
22. It does not really matter, because n will be ignored. Example: The following escape sequence will force the printer offline. Escape Sequence: ESC Q 22
Hexadecimal: 1B 51 16
IBM Proprinter Emulation
47
Character Size
The FormsPro, FormsMaster and PrintMaster series printers are capable of supporting 10, 12, 13.3, 15,
16.7, 17.14, and 20 cpi, but most emulations support only a subset of these. IBM Proprinter emulation supports 10, 12, 17.14, and 20 cpi via software, but does not support 13.3, 15 or 16.7 cpi. Every emulation supports 10 cpi, and we consider this to be the default character pitch. When you use the control panel to change the “Characters/Inch” value in the forms menu, you are actually changing the default character pitch. When the printer is turned on (or reset), it will use this character pitch. You can even use a pitch that is not supported by your emulation, such as 13.3 cpi with IBM Proprinter emulation. You can override this pitch selection via software, by sending an escape sequence. This selects a user specified non­default pitch. For example, in IBM Proprinter emulation, sending ESC : will select 12 cpi. Sending DC2 will re-select 10 cpi, and thus re-select the default character pitch that was selected in the form setup.
Via software escape sequences, you can select any character pitch supported by the emulation you are using. All will print as expected, unless you select 10 cpi -- because 10 cpi really selects the default character pitch from setup. If you really want 10 cpi, then you must set “Characters/Inch” to “10” in the forms menu. Likewise, if you want to use the default pitch from setup, you must not override it. Either send no character pitch sequences to the printer, or make sure you re-select 10 cpi via software.
When you select different forms, the default character pitch from setup is selected along with the form. But you will not see this default pitch if it has already been overridden via software.
Select 10 CPI DC2
Selects 10 cpi by cancelling 12 cpi and condensed mode. If “Characters/Inch” was not set to “10” in the forms menu, the specified default character pitch will be selected instead of 10 cpi.
Control code: DC2 Hexadecimal: 12
Select 12 CPI ESC :
Selects 12 cpi (elite mode). Condensed mode is unaffected. The resulting character spacing will be 12 cpi, or if condensed mode is also selected, 20 cpi.
Escape Sequence: ESC : Hexadecimal: 1B 3A
Select Condensed Mode SI (or) ESC SI
Selects condensed mode. The resulting character spacing will be 17.14 cpi if 10 cpi was selected, or 20 cpi if 12 cpi was selected.
Control code: SI Hexadecimal: 0F
Escape Sequence: ESC SI Hexadecimal: 1B 0F
IBM Proprinter Emulation
48
Select Double-Wide Mode (one line) SO (or) ESC SO
Selects double-wide mode for one line. Double-wide mode doubles the width of all characters, but does not affect character height. This mode is cancelled by a carriage return or DC4.
Control code: SO Hexadecimal: 0E
Escape Sequence: ESC SO Hexadecimal: 1B 0E
Cancel Double-Wide Mode (one line) DC4
Cancels double-wide mode selected by SO or ESC SO. Does not cancel double-wide mode selected by ESC W or ESC !.
Control code: DC4 Hexadecimal: 14
Double-Wide Mode ESC W n
Selects double-wide mode for n=1, or cancels for n=0. Double-wide mode doubles the width of all characters, but does not affect character height.
Example: The following escape sequence will select double-wide mode. Escape Sequence: ESC W 1
Hexadecimal: 1B 57 31
Double-High Mode ESC [ @ n1 n2 m1 m2 m3 m4
Selects single or double-high mode, single or double-wide mode, and single or double line feeds. The two bytes n1 and n2 specify how many mode bytes (m1, m2, m3, m4) follow. Theoretically, there may
be n1 + (n2 x 256) mode bytes. Actually, n2 must be 0, and n1 may be 0 to 4, but is normally 4. m1 and m2 must be 0 (NUL). m3 and m4 may be set to the values in the following tables.
IBM Proprinter Emulation
49
m3 hex character height and line spacing 0 00 no change 1 01 line feeds unchanged, single-high characters 2 02 line feeds unchanged, double-high characters 16 10 single line feeds, character height unchanged 17 11 single line feeds, single-high characters 18 12 single line feeds, double-high characters 32 20 double line feeds, character height unchanged 33 21 double line feeds, single-high characters 34 22 double line feeds, double-high characters
m4 hex character width 1 01 single-wide characters 2 02 double-wide characters
Example: The following escape sequence will select double-wide and double-high mode, with double line feeds.
Escape Sequence: ESC [ @ 4 0 0 0 34 2 Hexadecimal: 1B 5B 40 04 00 00 00 22 02
Select Subscript or Superscript Mode ESC S n
Selects subscript mode for n=1, or superscript mode for n=0. This will print characters about half the normal height, in the bottom or top half of the normal character cell.
Example: The following escape sequence will select superscript mode. Escape Sequence: ESC S 0
Hexadecimal: 1B 53 30
Cancel Subscript and Superscript Mode ESC T
Cancels subscript and superscript mode. Escape Sequence: ESC T
Hexadecimal: 1B 54
Character Attributes
Select Emphasized Mode ESC E
Selects emphasized mode. This makes characters bolder by printing an extra dot to the right of each dot normally found in the character matrix. This will cut the print speed in half, but will not require an additional pass of the print head. Overrides the “Impact Force” value in the forms menu.
Escape Sequence: ESC E Hexadecimal: 1B 45
IBM Proprinter Emulation
50
Cancel Emphasized Mode ESC F
Cancels emphasized mode. Overrides the “Impact Force” value in the forms menu. Escape Sequence: ESC F
Hexadecimal: 1B 46
Select Double-Strike Mode ESC G
Selects double-strike mode. This makes text bolder by printing it twice. This will cut the print speed in half, because an additional pass of the print head will be required.
Escape Sequence: ESC G Hexadecimal: 1B 47
Cancel Double-Strike Mode ESC H
Cancels double-strike mode. Escape Sequence: ESC H
Hexadecimal: 1B 48
Underline Mode ESC - n
Selects underline mode for n=1, or cancels for n=0. This mode provides continuous underlining for all characters, including spaces.
Example: The following escape sequence will turn underlining on. Escape Sequence: ESC - 1
Hexadecimal: 1B 2D 31
Character Sets
Select Character Set 1 ESC 7
Selects character set 1. Disables printing of character values 0 through 31 decimal, and 128 through 159 decimal, so these characters will be treated as control codes. Overrides the “Characters” value in the interface setup menu.
Escape Sequence: ESC 7 Hexadecimal: 1B 37
Select Character Set 2 ESC 6
Selects character set 2. Enables printing of character values 0 through 31 decimal if they are not used as control codes. Enables printing of character values 128 through 159 decimal, so these characters will not be treated as control codes. Overrides the “Characters” value in the interface setup menu.
IBM Proprinter Emulation
51
Escape Sequence: ESC 6 Hexadecimal: 1B 36
Print Single Character ESC ^ n
Prints the character n from the all characters chart. This sequence may be used to print a character that is normally treated as a control code.
Example: The following escape sequence will print a left arrow. This character is normally not printable, since it is treated as the ESC control code.
Escape Sequence: ESC ^ ESC Hexadecimal: 1B 5E 1B
Print Characters ESC \ n1 n2
Prints the next n1 + (n2 x 256) characters from the all characters chart. This sequence may be used to print characters that are normally treated as a control codes.
Example: The following escape sequence will print an up arrow, a down arrow, a right arrow, and a left arrow.
Escape Sequence: ESC \ 4 0 CAN EM SUB ESC Hexadecimal: 1B 5C 04 00 18 19 1A 1B
Select Print Mode ESC I n
Selects print mode n according to the following chart. Overrides the “Font” value in the forms menu. n Print Mode
0 Draft 1 Fast Draft 12 cpi 2 Letter Quality 3 Letter Quality
Example: The following escape sequence will select the IBM Proprinter letter quality font. Escape Sequence: ESC I 3
Hexadecimal: 1B 49 03
Line Pitch
Select 8 LPI ESC 0
Sets the line spacing to 1/8 of an inch per line (8 lpi). Overrides the “Lines/Inch” value in the forms menu. Escape Sequence: ESC 0
Hexadecimal: 1B 30
IBM Proprinter Emulation
52
Set Line Spacing to 7/72” ESC 1
Sets the line spacing to 7/72 of an inch per line. Since the distance between print head wires is 1/72 of an inch, this is equivalent to setting seven wire spacing. This is not particularly useful for text, but may be useful for graphics if 7-bit graphics data is being sent. Overrides the “Lines/Inch” value in the forms menu.
Escape Sequence: ESC 1 Hexadecimal: 1B 31
Start Line Spacing ESC 2
Sets the line spacing to the value selected by ESC A n. Overrides the “Lines/Inch” value in the forms menu. Escape Sequence: ESC 2
Hexadecimal: 1B 32
Set Line Spacing to n/216” ESC 3 n
Sets the line spacing to n/216 of an inch per line. 0n≥255. Overrides the “Lines/Inch” value in the forms menu.
NOTE: The actual resolution of the printer's paper stepper motor is 1/288 of an inch. When spacing is specified in 1/216 of an inch, the printer will actually move paper to the nearest 1/288 of an inch.
Example: The following escape sequence will set line spacing to one half inch. Escape Sequence: ESC 3 108
Hexadecimal: 1B 33 6C
Set Line Spacing to n/72” ESC A n
Sets the line spacing to n/72 of an inch per line. 0n≥255. Since the distance between print head wires is 1/72 of an inch, this is equivalent to setting n wire spacing. This spacing is stored but does not take effect until ESC 2 is received. Overrides the “Lines/Inch” value in the forms menu.
Example: The following escape sequence will set line spacing to 8/72 of an inch, for use with eight wire graphics.
Escape Sequence: ESC A 8 Hexadecimal: 1B 41 08
Horizontal Position
Carriage Return CR
Causes the current line to be printed, and then sets the current print position to the left margin. If “Auto LF” is set to “On” in the interface setup menu, a line feed will also be performed.
IBM Proprinter Emulation
53
Control code: CR Hexadecimal: 0D
Backspace BS
Causes the current line to be printed, and then moves the current print position one space to the left. The actual distance moved depends on the current character spacing. Backspacing can be done up to, but not beyond, the left margin.
Control code: BS Hexadecimal: 08
Vertical Position
Line Feed LF
Causes the current line to be printed, and then advances the paper one line at the current line spacing. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Control code: LF Hexadecimal: 0A
Variable Distance Line Feed ESC J n
Causes the current line to be printed, and then performs a single line feed of n/216ths of an inch. 0n≥255. Does not change the current line spacing. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Example: The following escape sequence will advance the paper one half inch. Escape Sequence: ESC J 108
Hexadecimal: 1B 4A 6C
Form Length and Form Feed
Form length is the distance from the top of the form to the bottom of the form. Form length may be specified either in inches, or in lines. A form feed will advance the paper to the top of the next form. Some programs do not send form feeds. Instead, they count line feeds, and send the appropriate number of line feeds to fill out the page. The usual rational is that the program is then in complete control of form length, and will work on any printer without requiring the correct form length to be set. However, the correct form length should always be set with the control panel setup. Even if the program does not use form feeds, the printer will automatically scroll a completed form up to the tear bar to be torn off. This automatic scroll is based upon form length. The easiest way to set form length is via the “Form Length” value in the forms menu, so it will be correctly set for everyone using the form. If correct form length cannot be guaranteed from SETUP, then each program should set the correct form length.
IBM Proprinter Emulation
54
Set Form Length in Lines ESC C n
Sets the form length to n lines at the current line spacing. 1n255. Maximum form length is 37.9 inches. Invalid form lengths will be ignored. Overrides the “Form Length” value in the forms menu.
For example, an 11 inch form contains 66 lines at 6 LPI, but 88 lines at 8 LPI. If line spacing is changed after setting the form length, the physical form length (in inches) will not be changed.
Resets top of form to the current position, so it is wise to be at top of form before setting form length. Issuing a form feed will guarantee this. Vertical margins are cleared.
Example: The following escape sequence will set form length to 66 lines. At 6 LPI, this will result in a form length of 11 inches.
Escape sequence: ESC C 66 Hexadecimal: 1B 43 42
Set Form Length in Inches ESC C NUL n
Sets the form length to n inches. 1n37. Maximum form length is 37.9 inches. Invalid form lengths will be ignored. Overrides the “Form Length” value in the forms menu.
Resets top of form to the current position, so it is wise to be at top of form before setting form length. Issuing a form feed will guarantee this. Vertical margins are cleared.
Example: The following escape sequence will set form length to 11 inches, regardless of what line spacing is set.
Escape sequence: ESC C NUL 11 Hexadecimal: 1B 43 00 0B
Form Feed FF
Causes the current line to be printed, and then advances the paper to the top of the next form. If a top margin is set, printing will continue at the top margin. Setting “Host FF at TOF” to “No” in the interface setup menu allows a form feed to be ignored if the paper is already at top of form. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Control code: FF Hexadecimal: 0C
Set Top of Form ESC 4
Sets top of form to the current position. Escape Sequence: ESC 4
Hexadecimal: 1B 34
IBM Proprinter Emulation
55
Horizontal Tabs
Default horizontal tab stops are set at every eighth column, i.e. column 9, 17, 25, 33, 41, etc. The default tab stops are associated with columns, not absolute physical positions. Changing character spacing will change the physical position of the default tab stops.
User defined horizontal tab stops are associated with absolute physical positions, not with columns. The tab stops are set relative to the current character spacing, but subsequent changes in character spacing will not affect the physical position of the tab stops (except that the position will be rounded up to the closest character boundary).
Horizontal Tab HT
Advances to the next horizontal tab stop. If no tab stop exists between the active column and the right margin, the HT will be ignored. Default tab stops are set at every eighth column, i.e. column 9, 17, 25, 33, 41, etc. Different tab stops may be set with ESC D.
Control code: HT Hexadecimal: 09
Set Horizontal Tab Stops ESC D n1 n2 ... nx NUL
Clears all currently set horizontal tab stops, and sets new tab stops at column n1, n2, n3, etc. 1n≥255. The tab stops must be presented in ascending order. The NUL character, or any tab stop value less than the preceding one, terminates the sequence. The tab stops are set relative to the current character spacing, but subsequent changes in character spacing will not affect the physical position of the tab stops (except that the position will be rounded up to the closest character boundary). The leftmost column is column one.
Default tab stops are set at every eighth column, i.e. column 9, 17, 25, 33, 41, etc. The tab stops set by ESC D will replace the default tab stops. ESC D NUL will clear all tab stops, leaving no tab stops set. The default tab stops are restored by ESC R.
Example: The following escape sequence will set horizontal tab stops at half inch intervals, if character spacing is currently 10 cpi.
Escape Sequence: ESC D 6 11 16 21 26 31 NUL Hexadecimal: 1B 44 06 0B 10 15 1A 1F 00
Vertical Tabs
Vertical tab stops are associated with absolute physical positions, not with lines. The tab stops are set relative to the current line spacing, but subsequent changes in line spacing will not affect the physical position of the tab stops.
IBM Proprinter Emulation
56
Vertical Tab VT
Causes the current line to be printed, and then advances the paper to the next vertical tab stop. If no vertical tab stops are set, then a line feed is done instead. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Control code: VT Hexadecimal: 0B
Set Vertical Tab Stops ESC B n1 n2 ... nx NUL
Clears all currently set vertical tab stops, and sets new tab stops at line n1, n2, n3, etc. 1n255. The tab stops must be presented in ascending order. The NUL character, or any tab stop value less than the preceding one, terminates the sequence. The tab stop settings are based on the current line spacing. Changing the line spacing after the tab stops are set will not affect the position of the tab stops. The first line is line one.
ESC B NUL or ESC R will clear all currently set vertical tab stops, leaving no vertical tab stops set. Example: The following escape sequence will set vertical tab stops at line 7, 13, and 25. If line spacing is
currently 6 lpi, this will result in tab stops one inch, two inches, and four inches from the top of the form. Escape Sequence: ESC B 7 13 25 NUL
Hexadecimal: 1B 42 07 0D 19 00
Horizontal and Vertical Tabs
Reset Horizontal and Vertical Tab Stops ESC R
Clears all currently set horizontal tab stops, and returns to default horizontal tab stops. Default horizontal tab stops are set at every eighth column, i.e. column 9, 17, 25, 33, 41, etc. Clears all currently set vertical tab stops.
Escape Sequence: ESC R Hexadecimal: 1B 52
Horizontal Margins
Printing is allowed only within the left and right margins. Exceeding the right margin will cause line wrap, setting the current print position to the left margin and advancing the paper one line.
Set Left and Right Margin ESC X n1 n2
Sets the left margin to column n1 and the right margin to column n2 at the current character spacing. 0n1255, 0n2255. If character spacing is changed after setting the margins, the position of the margins will not change.
IBM Proprinter Emulation
57
The left margin is inclusive, but the right margin is exclusive. For example, a left margin at column 11 still allows a character to be printed in column 11. A right margin at column 76 allows a character to be printed in column 75, but not in column 76.
The leftmost column is column one. If n1 or n2 is zero, the corresponding margin is not changed. The left margin must be left of the right margin and 13.4 inches. The right margin must be right of the left margin and 13.6 inches. Invalid margins will be ignored. Overrides the “Left Margin” and “Right Margin” values in the forms menu.
Example: The following escape sequence will set a one inch left margin, and will set a right margin 7.5 inches from the left edge of the form, if character spacing is currently 10 cpi. For a standard 8.5 inch wide form, this would result in a one inch right margin.
Escape Sequence: ESC X 11 76 Hexadecimal: 1B 58 0B 4C
Vertical Margins
Printing is allowed only within the top and bottom margins. Exceeding the bottom margin will set the current line to the top margin of the next form.
Set Perforation Skip ESC N n
Sets the perforation skip distance to n lines at the current line spacing. 1n255. If line spacing is changed after setting the skip distance, the skip distance will not be changed.
The skip distance is split between the top and bottom margins, so the perforation will be centered in the resulting white space. The specified skip distance must be less than the form length, or the command will be ignored. Perforation skip is canceled by ESC O, ESC C n or ESC C NUL n. Overrides the “Top Margin” and “Bottom Margin” values in the forms menu.
Example: The following escape sequence will set a two inch perforation skip distance, if the current line spacing is 6 lpi. This will result in a one inch top and bottom margin.
Escape Sequence: ESC N 12 Hexadecimal: 1B 4E 0C
Cancel Perforation Skip ESC O
Cancels perforation skip. This is equivalent to having no top and bottom margin. Overrides the “Top Margin” and “Bottom Margin” values in the forms menu.
Escape Sequence: ESC O Hexadecimal: 1B 4F
IBM Proprinter Emulation
58
Graphics
Graphics mode gives the user complete control over every dot position on the paper. Graphics may be printed with various horizontal densities from 60 to 240 dpi, and a vertical density of 72 dpi.
Each byte of graphics data represents a vertical column of eight dots, with the MSB (most significant bit) corresponding to the top wire of the print head. Turning a bit on causes a dot to be printed. The bit values corresponding to each wire of the print head are shown below:
wire 1 128 (80 hex) wire 2 64 (40 hex) wire 3 32 (20 hex) wire 4 16 (10 hex) wire 5 8 (08 hex) wire 6 4 (04 hex) wire 7 2 (02 hex) wire 8 1 (01 hex)
The appropriate bit values are added together to fire the desired wires. For example, a byte of graphics data with the value 128 (80 hex) will fire the top wire, wire 1. A value of 192 (C0 hex) will fire the top two wires, wires 1 and 2. A value of 11 (0B hex) will fire wires 5, 7 and 8.
Each graphics sequence contains two bytes (n1 and n2) that specify how many bytes of graphics data follow. The first byte, n1, can specify values up to 255. If that is sufficient, then n2 is set to zero. For values greater than 255, n2 comes into play. The n2 byte specifies multiples of 256. For example, to specify 520 bytes of graphics data, n1 = 8 and n2 = 2. The bytes of graphics data are strung together to create a graphics line that is eight dots high, and n1 + (n2 x 256) dots long. Be sure to provide the amount of graphics data that you specify, because the printer will not leave graphics mode until it has accepted the specified number of data bytes.
If “Data Bits” is set to “7” in the interface setup menu, beware of potential problems in graphics mode. Since the MSB (most significant bit) will always be turned off, it will not be possible to fire the top wire of the print head. Worse yet, the value of n1 or n2 may be changed. For example, if n1 specifies 200 bytes of data, and its MSB is turned off, the printer will only expect 72 bytes of data. It will exit graphics mode, and then try to print the remaining 128 bytes of graphics data as normal text characters. The result will surely not be pretty. To avoid such problems, the use of an 8-bit I/O interface for printing graphics is highly recommended.
The normal graphics modes allow every dot to be printed. High speed graphics will print twice as fast, but will not allow consecutive dots to be printed.
60 DPI Graphics ESC K n1 n2 data
Selects eight wire single density (60 dpi) graphics for n1 + (n2 x 256) columns of data. Example: The following escape sequence will print six bytes of graphics data at 60 dpi. The resulting figure
will resemble a backslash character, “\”. Escape Sequence: ESC K 6 0 128 64 32 16 8 4
Hexadecimal: 1B 4B 06 00 80 40 20 10 08 04
IBM Proprinter Emulation
59
120 DPI Graphics ESC L n1 n2 data
Selects eight wire double density (120 dpi) graphics for n1 + (n2 x 256) columns data. Example: The following escape sequence will print six bytes of graphics data at 120 dpi. The resulting figure
will resemble a backslash character, “\”. Escape Sequence: ESC L 6 0 128 64 32 16 8 4
Hexadecimal: 1B 4C 06 00 80 40 20 10 08 04
High Speed 120 DPI Graphics ESC Y n1 n2 data
Selects eight wire high speed double density (120 dpi) graphics for n1 + (n2 x 256) columns of data. Horizontally adjacent dots may not be printed.
Example: The following escape sequence will print six bytes of graphics data at 120 dpi. The resulting figure will resemble a backslash character, “\”.
Escape Sequence: ESC Y 6 0 128 64 32 16 8 4 Hexadecimal: 1B 59 06 00 80 40 20 10 08 04
High Speed 240 DPI Graphics ESC Z n1 n2 data
Selects eight wire quadruple density (240 dpi) graphics for n1 + (n2 x 256) columns of data. Horizontally adjacent dots may not be printed.
Example: The following escape sequence will print six bytes of graphics data at 240 dpi. The resulting figure will resemble a backslash character, “\”.
Escape Sequence: ESC Z 6 0 128 64 32 16 8 4 Hexadecimal: 1B 5A 06 00 80 40 20 10 08 04
Printer Controls
Bell BEL
Causes the printer's bell to sound. Control code: BEL
Hexadecimal: 07
Unidirectional Mode ESC U n
Selects unidirectional mode for n=1, or bidirectional mode for n=0. Printing is normally bidirectional. Unidirectional printing provides more accurate positioning, but causes lower throughput.
Example: The following escape sequence will force unidirectional printing.
IBM Proprinter Emulation
60
Escape Sequence: ESC U 1 Hexadecimal: 1B 55 31
Automatic Line Feed ESC 5 n
Selects automatic line feed mode for n=1, or cancels for n=0. Automatic line feed mode causes the printer to automatically perform a line feed (LF) for each carriage return (CR) it receives. Overrides the “Auto LF” value in the interface setup menu.
Example: The following escape sequence will select automatic line feed mode. Escape Sequence: ESC 5 1
Hexadecimal: 1B 35 31
Emulations
Select Software Interface n ESC ESC n
Selects the software interface n according to the table below.
n Software Interface
0 Test (reserved for factory use) 1 ANSI X3.64 Emulation 2 Epson FX Emulation 3 Bar Code Mode (optional) 4 IBM Proprinter Emulation 5 DEC LA120/210 Emulation 6 TTY Emulation 7 Printek Emulation ; Remote Setup Mode < Genicom 3840 = Genicom 3410 ? Previously Selected Emulation @ Default Emulation
Overrides the “Emulation” value in the interface setup menu. A numeric value for n may be specified in two different ways, with equivalent results: a single byte with a
value of 00 to 07 hex, or a single printable ASCII character “0” to “7” (30 to 37 hex). If more than one emulation has been selected, ESC ESC ? will return to the previously selected emulation.
This is particularly useful when the previous emulation is unknown. Please beware that the memory (stack) is only one level deep.
ESC ESC @ will return to the default emulation, as specified by the “Emulation” value in the interface setup menu.
IBM Proprinter Emulation
61
This chapter describes IBM Proprinter emulation. If a different interface is selected, the control codes and escape sequences described in this chapter will no longer be applicable.
Example: The following escape sequences will select Printek emulation, load form one, and then return to the previous emulation.
Escape Sequence: ESC ESC 7 ESC L 1 ESC ESC ? Hexadecimal: 1B 1B 07 1B 4C 01 1B 1B 3F
IBM Proprinter Emulation
62
Control Codes and Escape Sequences Sorted Alphabetically
BEL Bell BS Backspace CAN Cancel Line CR Carriage Return DC2 Select 10 CPI DC4 Cancel Double-Wide Mode (one line) ESC - n Underline Mode ESC 0 Select 8 LPI ESC 1 Set Line Spacing to 7/72” ESC 2 Start Line Spacing ESC 3 n Set Line Spacing to n/216” ESC 4 Set Top of Form ESC 5 n Automatic Line Feed ESC 6 Select Character Set 2 ESC 7 Select Character Set 1 ESC : Select 12 CPI ESC A n Set Line Spacing to n/72” ESC B n1 n2 ... nx NUL Set Vertical Tab Stops ESC C NUL n Set Form Length in Inches ESC C n Set Form Length in Lines ESC D n1 n2 ... nx NUL Set Horizontal Tab Stops ESC E Select Emphasized Mode ESC ESC n Select Software Interface n ESC F Cancel Emphasized Mode ESC G Select Double-Strike Mode ESC H Cancel Double-Strike Mode ESC I n Select Print Mode ESC J n Variable Distance Line Feed ESC K n1 n2 data 60 DPI Graphics ESC L n1 n2 data 120 DPI Graphics ESC N n Set Perforation Skip ESC O Cancel Perforation Skip ESC Q n Deselect Printer ESC R Reset Horizontal and Vertical Tab Stops ESC S n Select Subscript or Superscript Mode ESC SI Select Condensed Mode ESC SO Select Double-Wide Mode (one line) ESC T Cancel Subscript and Superscript Mode ESC U n Unidirectional Mode ESC W n Double-Wide Mode ESC X n1 n2 Set Left and Right Margin ESC Y n1 n2 data High Speed 120 DPI Graphics ESC Z n1 n2 data High Speed 240 DPI Graphics ESC [ @ n1 n2 m1 m2 m3 m4 Double-High Mode ESC \ n1 n2 Print Characters ESC ^ n Print Single Character ETX End of Text
IBM Proprinter Emulation
63
FF Form Feed HT Horizontal Tab LF Line Feed SI Select Condensed Mode SO Select Double-Wide Mode (one line) VT Vertical Tab
65
DEC LA120/210 EMULATION
Introduction
This section describes the control codes and escape sequences comprising DEC LA120/210 emulation. This emulation may be selected by setting “Emulation” to “LA120/210” in the interface setup menu, or via software with the ESC ESC 5 sequence. While this emulation is selected, control codes and escape sequences from other emulations are not available.
Control codes and escape sequences are used to control printer operation. An ASCII control code is a single character in the range 00 hex through 1F hex, and 7F hex. The ESC (Escape) control code (1B hex) is used to introduce character strings called escape sequences, which provide an extension of the commands available with ASCII control codes.
The LA120/210 control codes and escape sequences follow the standards of the ANSI X3.64 specification. Many ANSI escape sequences begin with a two character Control Sequence Introducer (CSI), Escape Left Square Bracket (ESC [, 1B 5B hex). If 8-bit data is selected via control panel setup, these two characters may be replaced by a single character CSI, 9B hex. The sequences are always documented in this section with the two character CSI (ESC [), because this format seems to be much more common, and works equally well with 7-bit or 8-bit data.
Some escape sequences accept one or more numeric parameters. A numeric parameter is a decimal number represented by a string of ASCII decimal digits (“0” through “9”). Leading zeros may be supplied, but are not necessary. Due to implementation constraints, the largest value that can be accepted is decimal 255. Larger values will be treated as zero. Omitting a numeric parameter is equivalent to supplying a value of zero.
If a sequence accepts one numeric parameter, it will be represented as “n”. If a sequence accepts more than one numeric parameter, they will be represented as “n1; n2; ... nx ”. Note that multiple numeric parameters are separated by a semicolon.
Most LA120/210 escape sequences will assume one of the following formats:
ESC f (no numeric parameters) ESC n f (one numeric parameter) ESC n1; n2; ... nx f (two or more numeric parameters)
The “f” at the end of the escape sequence represents the final character. It terminates the sequence, and specifies the function to be performed.
Spaces are used when documenting escape sequences to increase readability. The spaces within the sequences are for readability only; they are not part of the sequences themselves. Characters that appear in italics (such as “n” and “f” above) are not sent to the printer as is; they are used as a place holder indicating that some value must be supplied.
Multiple character strings without intervening spaces typically represent control codes. For example, BS is the Backspace control code (08 hex), not the two characters “B” and “S” (42 and 53 hex). An ASCII Control Code Table is provided on page 109 for your convenience. If you have any doubt about how to interpret a documented control code or escape sequence, refer to the hex representation in the provided example. This should clarify any ambiguity. The examples may also be helpful when analyzing a hex dump (see Hex Dump chapter) printed by the printer.
DEC LA120/210 Emulation
66
Some escape sequences refer to the active column or active line. The active column is the column where the next character will be printed. Printing a character or a space will increment the active column. The active line is the line where the next character will be printed. A line feed will increment the active line. Column and line numbers begin at one, not at zero. Keep this in mind when setting tabs, margins, etc.
DEC LA120/210 Emulation
67
Control Codes and Escape Sequences Grouped by Function
Communications
Null NUL
This control code is ignored by the printer. Control code: NUL
Hexadecimal: 00
Delete DEL
This control code is ignored by the printer. Control code: DEL
Hexadecimal: 7F
End of Text ETX
If “ETX/ACK” is set to “On” in the interface setup menu, then receipt of an ETX causes the printer to transmit an ACK to the host computer.
Since the ETX may be a legal value within an escape sequence, it is the user's responsibility to ensure that an ETX used for data handshake is not sent within an escape sequence. The user must also ensure that the maximum block size or the number of blocks sent at one time does not exceed the input buffer size of the printer.
ETX/ACK handshake is available only with serial I/O. Control code: ETX
Hexadecimal: 03
DEC LA120/210 Emulation
68
Character Size
The FormsPro, FormsMaster and PrintMaster series printers are capable of supporting 10, 12, 13.3, 15,
16.7, 17.14, and 20 cpi, but most emulations support only a subset of these. LA120/210 emulation supports 10, 12, 13.3, and 16.7 cpi via software, but does not support 15, 17.14, or 20 cpi. Every emulation supports 10 cpi, and we consider this to be the default character pitch. When you use the control panel to change the “Characters/Inch” value in the forms menu, you are actually changing the default character pitch. When the printer is turned on (or reset), it will use this character pitch. You can even use a pitch that is not supported by your emulation, such as 15 cpi with LA120/210 emulation. You can override this pitch selection via software, by sending an escape sequence. This selects a user specified non-default pitch. For example, in LA120 emulation, sending ESC [2w will select 12 cpi. Sending ESC [w will re-select 10 cpi, and thus re-select the default character pitch that was selected in the form setup.
Via software escape sequences, you can select any character pitch supported by the emulation you are using. All will print as expected, unless you select 10 cpi -- because 10 cpi really selects the default character pitch from setup. If you really want 10 cpi, then you must set “Characters/Inch” to “10” in the forms menu. Likewise, if you want to use the default pitch from setup, you must not override it. Either send no character pitch sequences to the printer, or make sure you re-select 10 cpi via software.
When you select different forms, the default character pitch from setup is selected along with the form. But you will not see this default pitch if it has already been overridden via software.
Set Character Spacing ESC [ n w
Sets the character spacing as specified in the following table. Omitting n is equivalent to specifying zero. n character pitch
0 10 cpi 1 10 cpi 2 12 cpi 3 13.3 cpi 4 16.74 cpi 5 5 cpi 6 6 cpi 7 6.67 cpi 8 8.37 cpi
Overrides the “Characters/Inch” value in the forms menu. Example: The following escape sequence will select 10 cpi character spacing. If “Characters/Inch” was not
set to “10” in the forms menu, the specified default character pitch will be selected instead of 10 cpi. Escape Sequence: ESC [ w
Hexadecimal: 1B 5B 77 Example: The following escape sequence will select 12 cpi character spacing.
Escape Sequence: ESC [ 2 w Hexadecimal: 1B 5B 32 77
DEC LA120/210 Emulation
69
Character Attributes
Select Graphic Rendition ESC [ n m
Selects the graphic rendition n from the following table.
n Rendition 0 Normal 1 Emphasized 3 Italic 4 Underline
For italic mode to work correctly, an Epson FX font must be selected (check the “Font” value in the forms menu). The other available fonts do not include italic characters.
Example: The following escape sequence will select emphasized mode. Escape Sequence: ESC [ 1 m
Hexadecimal: 1B 5B 31 6D
Character Sets
Select International Character Set ESC ( a
Selects the international character set as specified by the character a in the following table. Overrides the “Language” value in the forms menu.
a Character Set A United Kingdom B United States of America C Sweden E Denmark H Sweden K Germany R France
The actual character substitutions are shown in the “International Character Mapping” table below. For this to work correctly, an Epson FX font must be selected (check the “Font” value in the forms menu).
DEC LA120/210 Emulation
70
35 36 64 91 92 93 94 96 123 124 125 126 USA # $ @ [ \ ] ^ ` { ¦ } ˜
France # $ à ° ç § ^ ` é ù è ¨ Germany # $ § Ä Ö Ü ^ ` ä ö ü ß England £ $ @ [ \ ] ^ ` { ¦ } ˜ Denmark # $ @ Æ Ø Å ^ ` æ ø å ˜ Sweden # ¤ É Ä Ö Å Ü é ä ö å ü Italy # $ @ ° \ é ^ ù à ò è ì Spain PTS $ @ ¡ Ñ ¿ ^ ` ¨ ñ } ˜ Japan # $ @ [ ¥ ] ^ ` { ¦ } ˜
Example: The following escape sequence will select the German character set. Escape Sequence: ESC ( K
Hexadecimal: 1B 28 4B
Line Pitch
Set Line Spacing ESC [ n z
Sets the line spacing as specified in the following table. Omitting n is equivalent to specifying zero. n line pitch
0 6 lpi 1 6 lpi 2 8 lpi 3 12 lpi 4 2 lpi 5 3 lpi 6 4 lpi
Overrides the “Lines/Inch” value in the forms menu. Example: The following escape sequence will set line spacing to 1/6 of an inch per line (6 lpi). Escape Sequence: ESC [ z
Hexadecimal: 1B 5B 7A
Example: The following escape sequence will set line spacing to 1/8 of an inch per line (8 lpi). Escape Sequence: ESC [ 2 z
Hexadecimal: 1B 5B 32 7A
DEC LA120/210 Emulation
71
Horizontal Position
Carriage Return CR
Causes the current line to be printed, and then sets the current print position to the left margin. If “Auto LF” is set to “On” in the interface setup menu, a line feed will also be performed.
Control code: CR Hexadecimal: 0D
Backspace BS
Causes the current line to be printed, and then moves the current print position one space to the left. The actual distance moved depends on the current character spacing. Backspacing can be done up to, but not beyond, the left margin.
Control code: BS Hexadecimal: 08
Absolute Horizontal Tab ESC [ n `
Sets the current print position to column n. The actual position will depend on the current character spacing. If n is less than the left margin, the active column will be set to the left margin. If n is greater than the right margin, then a line feed will be performed and the active column will be set to the left margin.
Example: The following escape sequence will set the active column to column 65. Escape Sequence: ESC [ 6 5 `
Hexadecimal: 1B 5B 36 35 60
Relative Horizontal Tab ESC [ n a
Advances the current print position by n columns. The actual distance moved will depend on the current character spacing. Equivalent to sending n spaces (SP).
Example: The following escape sequence will advance the active column by 10 columns. If current character spacing is 10 cpi, this will cause the print position to move one inch to the right.
Escape Sequence: ESC [ 1 0 a Hexadecimal: 1B 5B 31 30 61
Vertical Position
Line Feed LF (or) IND (or) ESC D
Causes the current line to be printed, and then advances the paper one line at the current line spacing. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
DEC LA120/210 Emulation
72
Control code: LF Hexadecimal: 0A
Control code: IND Hexadecimal: 84
Escape Sequence: ESC D Hexadecimal: 1B 44
Absolute Vertical Tab ESC [ n d
Sets the current line to line n of the current form. The actual position will depend on the current line spacing. Example: The following escape sequence will set the active line to line 12. Escape Sequence: ESC [ 1 2 d
Hexadecimal: 1B 5B 31 32 64
Relative Vertical Tab ESC [ n e
Advances the active line by n lines. The actual distance moved will depend on the current line spacing. Equivalent to sending n line feeds (LF).
Example: The following escape sequence will advance the active line by 12 lines. If current line spacing is 6 lpi, this will cause the paper to advance one inch.
Escape Sequence: ESC [ 1 2 e Hexadecimal: 1B 5B 31 32 65
DEC LA120/210 Emulation
73
Horizontal and Vertical Position
New Line NEL (or) ESC E
Causes the current line to be printed, and then sets the current print position to the left margin and performs a line feed. Equivalent to a carriage return (CR) line feed (LF) combination.
Control code: NEL Hexadecimal: 85
Escape Sequence: ESC E Hexadecimal: 1B 45
Form Length and Form Feed
Form length is the distance from the top of the form to the bottom of the form. A form feed will advance the paper to the top of the next form. Some programs do not send form feeds. Instead, they count line feeds, and send the appropriate number of line feeds to fill out the page. The usual rational is that the program is then in complete control of form length, and will work on any printer without requiring the correct form length to be set. However, the correct form length should always be set with the control panel setup. Even if the program does not use form feeds, the printer will automatically scroll a completed form up to the tear bar to be torn off. This automatic scroll is based upon form length. The easiest way to set form length is via the “Form Length” value in the forms menu, so it will be correctly set for everyone using the form. If correct form length cannot be guaranteed from SETUP, then each program should set the correct form length.
Set Form Length in Lines ESC [ n t
Sets the form length to n lines at the current line spacing. 1n255. Maximum form length is 37.9 inches. Invalid form lengths will be ignored. Overrides the “Form Length” value in the forms menu.
For example, an 11 inch form contains 66 lines at 6 LPI, but 88 lines at 8 LPI. If line spacing is changed after setting the form length, the physical form length (in inches) will not be changed.
Resets top of form to the current position, so it is wise to be at top of form before setting form length. Issuing a form feed will guarantee this. Vertical margins are cleared.
Example: The following escape sequence will set form length to 66 lines. At 6 LPI, this will result in a form length of 11 inches.
Escape sequence: ESC [ 6 6 t Hexadecimal: 1B 5B 36 36 74
DEC LA120/210 Emulation
74
Form Feed FF
Causes the current line to be printed, and then advances the paper to the top of the next form. If a top margin is set, printing will continue at the top margin. Setting “Host FF at TOF” to “No” in the interface setup menu allows a form feed to be ignored if the paper is already at top of form. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Control code: FF Hexadecimal: 0C
Horizontal Tabs
Horizontal tab stops are associated with columns, not absolute physical positions. Changing character spacing will change the physical position of the tab stops. Default tab stops are set at every eighth column, i.e. column 9, 17, 25, 33, 41, etc. If different tab stops are to be set, the default tab stops should first be cleared.
Horizontal Tab HT
Advances to the next horizontal tab stop. If no tab stop exists between the active column and the right margin, the HT will be ignored. Default tab stops are set at every eighth column, i.e. column 9, 17, 25, 33, 41, etc. Different tab stops may be set with ESC H, ESC 1, or ESC [ n1 ; n2 ; ... nx u.
Control code: HT Hexadecimal: 09
Set Horizontal Tab Stop HTS (or) ESC H (or) ESC 1
Sets a horizontal tab stop at the current print position. The tab stop is associated with the active column, not an absolute physical position. Changing character spacing will change the physical position of the tab stop.
Default tab stops are set at every eighth column, i.e. column 9, 17, 25, 33, 41, etc. The tab stop set by this escape sequence will be added to previously set tab stops, including the default tab stops. If this is not desired, the old tab stops should first be cleared.
Control code: HTS Hexadecimal: 88
Escape Sequence: ESC H Hexadecimal: 1B 48
Escape Sequence: ESC 1 Hexadecimal: 1B 31
Set Horizontal Tab Stops ESC [ n1 ; n2 ; ... nx u
Sets new horizontal tab stops at column n1, n2, n3, etc. 1n≥255. The tab stops are associated with columns, not absolute physical positions. Changing character spacing will change the physical position of the tab stops. The leftmost column is column one.
DEC LA120/210 Emulation
75
Default tab stops are set at every eighth column, i.e. column 9, 17, 25, 33, 41, etc. The tab stops set by this escape sequence will be added to previously set tab stops, including the default tab stops. If this is not desired, the old tab stops should first be cleared.
Example: The following escape sequence will set horizontal tab stops at five column intervals. Escape Sequence: ESC [ 6 ; 1 1 ; 1 6 u
Hexadecimal: 1B 5B 36 3B 31 31 3B 31 36 75
Example: The following escape sequence will set a horizontal tab stop at column six. Escape Sequence: ESC [ 6 u
Hexadecimal: 1B 5B 36 75
Clear Horizontal Tab Stop ESC [ g (or) ESC [ 0 g
Clears the horizontal tab stop at the current print position. The tab stop to be cleared is associated with the active column (based upon the current character spacing), not an absolute physical position.
Escape Sequence: ESC [ g Hexadecimal: 1B 5B 67
Clear All Horizontal Tab Stops ESC 2 (or) ESC [ 2 g (or) ESC [ 3 g
Clears all currently set horizontal tab stops. Escape Sequence: ESC 2
Hexadecimal: 1B 32 Escape Sequence: ESC [ 2 g
Hexadecimal: 1B 5B 32 67 Escape Sequence: ESC [ 3 g
Hexadecimal: 1B 5B 33 67
DEC LA120/210 Emulation
76
Vertical Tabs
Vertical tab stops are associated with lines, not absolute physical positions. Changing line spacing will change the physical position of the tab stops.
Vertical Tab VT
Causes the current line to be printed, and then advances the paper to the next vertical tab stop. If no vertical tab stops are set, then a line feed is done instead. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Control code: VT Hexadecimal: 0B
Set Vertical Tab Stop VTS (or) ESC J (or) ESC 3
Sets a vertical tab stop at the current line. The tab stop is associated with the active line, not an absolute physical position. Changing line spacing will change the physical position of the tab stop.
The tab stop set by this escape sequence will be added to previously set tab stops. If this is not desired, the old tab stops should first be cleared.
Control code: VTS Hexadecimal: 8A
Escape Sequence: ESC J Hexadecimal: 1B 4A
Escape Sequence: ESC 3 Hexadecimal: 1B 33
Set Vertical Tab Stops ESC [ n1 ; n2 ; ... nx v
Sets new vertical tab stops at line n1, n2, n3, etc. 1n255. The tab stops are associated with lines, not absolute physical positions. Changing line spacing will change the physical position of the tab stops. The first line is line one.
The tab stops set by this escape sequence will be added to previously set tab stops. If this is not desired, the old tab stops should first be cleared.
Example: The following escape sequence will set vertical tab stops at line 7, 13, and 25. If line spacing is 6 lpi, this will result in tab stops one inch, two inches, and four inches from the top of the form.
Escape Sequence: ESC [ 7 ; 1 3 ; 2 5 v Hexadecimal: 1B 5B 37 3B 31 33 3B 32 35 76
DEC LA120/210 Emulation
77
Example: The following escape sequence will set a vertical tab stop at line seven. Escape Sequence: ESC [ 7 v
Hexadecimal: 1B 5B 37 76
Clear Vertical Tab Stop ESC [ 1 g
Clears the vertical tab stop at the current line. The tab stop to be cleared is associated with the active line (based upon the current line spacing), not an absolute physical position.
Escape Sequence: ESC [ 1 g Hexadecimal: 1B 5B 31 67
Clear All Vertical Tab Stops ESC 4 (or) ESC [ 4 g
Clears all currently set vertical tab stops. Escape Sequence: ESC 4
Hexadecimal: 1B 34 Escape Sequence: ESC [ 4 g
Hexadecimal: 1B 5B 34 67
DEC LA120/210 Emulation
78
Horizontal Margins
Printing is allowed only within the left and right margins. Exceeding the right margin will cause line wrap, setting the current print position to the left margin and advancing the paper one line.
Set Left and Right Margin ESC [ n1 ; n2 s
Sets the left margin to column n1 and the right margin to column n2 at the current character spacing. 0n1255, 0n2255. If character spacing is changed after setting the margins, the position of the margins will not change.
The margin settings are inclusive. For example, a left margin at column 11 allows a character to be printed in column 11, but not in column 10. A right margin at column 75 allows a character to be printed in column 75, but not in column 76.
The leftmost column is column one. If n1 or n2 is zero (or is omitted), the corresponding margin is not changed. The left margin must be left of the right margin and 13.4 inches. The right margin must be right of the left margin and 13.6 inches. Invalid margins will be ignored. Overrides the “Left Margin” and “Right Margin” values in the forms menu.
Example: The following escape sequence will set a one inch left margin, and will set a right margin 7.5 inches from the left edge of the form, if character spacing is currently 10 cpi. For a standard 8.5 inch wide form, this would result in a one inch right margin.
Escape Sequence: ESC [ 1 0 ; 7 5 s Hexadecimal: 1B 5B 31 30 3B 37 35 73
Example: The following escape sequence will set the left margin to column 10, without affecting the right margin.
Escape Sequence: ESC [ 1 0 s Hexadecimal: 1B 5B 31 30 73
Example: The following escape sequence will set the right margin to column 75, without affecting the left margin.
Escape Sequence: ESC [ ; 7 5 s Hexadecimal: 1B 5B 3B 37 35 73
DEC LA120/210 Emulation
79
Vertical Margins
Printing is allowed only within the top and bottom margins. Exceeding the bottom margin will set the current line to the top margin of the next form.
Set Top and Bottom Margins ESC [ n1 ; n2 r
Sets the top margin to line n1 and the bottom margin to line n2 at the current line spacing. 0n1≥255, 0n2255. If line spacing is changed after setting the margins, the position of the margins will not change. Vertical margins are cleared by ESC [ n t.
The top and bottom margins are both inclusive. For example, a top margin at line 7 still allows text to be printed on line 7, but not on line 6. A bottom margin at line 60 still allows text to be printed on line 60, but not on line 61.
The first line is line one. If n1 or n2 is zero (or is omitted), the corresponding margin is not changed. The top margin must be above the bottom margin. The bottom margin must be below the top margin. The margins cannot exceed the form length. Invalid margins will be ignored. Overrides the “Top Margin” and “Bottom Margin” values in the forms menu.
Example: The following escape sequence will set a top margin at line 7, and will set a bottom margin at line
60. For a standard 11 inch form with 6 lpi line spacing, this would result in one inch top and bottom margins. Escape Sequence: ESC [ 7 ; 6 0 r
Hexadecimal: 1B 5B 37 3B 36 30 72
Example: The following escape sequence will set a top margin at line 7, without affecting the bottom margin. Escape Sequence: ESC [ 7 r
Hexadecimal: 1B 5B 37 72
Example: The following escape sequence will set a bottom margin at line 60, without affecting the top margin. Escape Sequence: ESC [ ; 6 0 r
Hexadecimal: 1B 5B 3B 36 30 72
DEC LA120/210 Emulation
80
Printer Controls
Bell BEL
Causes the printer's bell to sound. Control code: BEL
Hexadecimal: 07
Select Automatic Carriage Return ESC [ 20 h
Selects automatic carriage return mode. This causes the printer to automatically perform a carriage return (CR) for each line feed (LF), vertical tab (VT), or form feed (FF) that it receives. Overrides the “Auto CR” value in the interface setup menu.
Escape Sequence: ESC [ 2 0 h Hexadecimal: 1B 5B 32 30 68
Cancel Automatic Carriage Return ESC [ 20 l
Cancels automatic carriage return mode. Overrides the “Auto CR” value in the interface setup menu. Escape Sequence: ESC [ 2 0 l
Hexadecimal: 1B 5B 32 30 6C
Printer Identification ESC [ c (or) ESC [ 0 c
Causes the printer to respond with ESC [ ? 2 c to identify itself as an LA120-RA printer. (The response can only be sent if serial I/O is selected.)
DEC LA120/210 Emulation
81
Graphics
Graphics mode gives the user complete control over every dot position on the paper. Graphics may be printed with 132 dpi horizontal density and 72 dpi vertical density.
Each byte of graphics data represents a vertical column of six dots, with the LSB (least significant bit) corresponding to the top wire of the print head. Turning a bit on causes a dot to be printed. Graphics bytes are encoded in the characters '?' (hexidecimal 3F) through 'DEL' (hexidecimal 7F). The graphics encoded characters are offset by the value 3F, so the bit values corresponding to each wire of the print head are shown below:
wire 1 (top) '@' (40 hex - 3F hex = 1) wire 2 'A' (41 hex) wire 3 'C' (43 hex) wire 4 'G' (47 hex) wire 5 'O' (4F hex) wire 6 '_' (5F hex)
The appropriate bit values are added together to fire the appropriate wires. For example, the character 'P' (50 hex - 3F hex = 11 hex) will fire the top wire, wire 1, and the fifth wire, wire 5.
Each graphics sequence contains any number of bytes followed by the terminating sequence ESC \ (hexadecimal 1B 5C).
Escape Sequence: ESC P q data data ... ESC \ Hexadecimal: 1B 51 71 (3F - 7F) 1B 5C When printing graphics lines, the effective line pitch is 12 lpi. To make successive strips of a graphics image
to align correctly, this lpi should be set prior to the carriage return after printing the first graphics line. The escape sequence ESC [ 3 z will accomplish this. Make sure to set the lpi back to your previous setting prior to the carriage return following the last line of graphics. For example, when printing text at 6 lpi and printing three lines of graphics:
ESC P q (data) ESC \ ESC [ 3 z (return) prints graphics and does 1/12" line feed. ESC P q (data) ESC \ (return) prints graphics and does 1/12" line feed. ESC P q (data) ESC \ ESC [ 0 z (return) prints graphics and does 1/6" line feed. Note that graphics mode must be exited before issuing any escape sequence, or carriage returns and line
feeds.
DEC LA120/210 Emulation
82
Emulations
Select Software Interface n ESC ESC n
Selects the software interface n according to the table below.
n Software Interface
0 Test (reserved for factory use) 1 ANSI X3.64 Emulation 2 Epson FX Emulation 3 Bar Code Mode (optional) 4 IBM Proprinter Emulation 5 DEC LA120 Emulation 6 TTY Emulation 7 Printek Emulation ; Remote Setup Mode < Genicom 3840 = Genicom 3410 ? Previously Selected Emulation @ Default Emulation
Overrides the “Emulation” value in the interface setup menu. A numeric value for n may be specified in two different ways, with equivalent results: a single byte with a
value of 00 to 07 hex, or a single printable ASCII character “0” to “7” (30 to 37 hex). If more than one emulation has been selected, ESC ESC ? will return to the previously selected emulation.
This is particularly useful when the previous emulation is unknown. Please beware that the memory (stack) is only one level deep.
ESC ESC @ will return to the default emulation, as specified by the “Emulation” value in the interface setup menu.
This chapter describes DEC LA120/210 emulation. If a different interface is selected, the control codes and escape sequences described in this chapter will no longer be applicable.
Example: The following escape sequences will select Printek emulation, load form one, and then return to the previous emulation.
Escape Sequence: ESC ESC 7 ESC L 1 ESC ESC ? Hexadecimal: 1B 1B 07 1B 4C 01 1B 1B 3F
DEC LA120/210 Emulation
83
Control Codes and Escape Sequences Sorted Alphabetically
BEL Bell BS Backspace CR Carriage Return CSI Control Sequence Introducer DEL Delete ESC ( a Select International Character Set ESC 1 Set Horizontal Tab Stop ESC 2 Clear All Horizontal Tab Stops ESC 3 Set Vertical Tab Stop ESC 4 Clear All Vertical Tab Stops ESC D Line Feed ESC E New Line ESC ESC n Select Software Interface n ESC H Set Horizontal Tab Stop ESC J Set Vertical Tab Stop ESC [ Control Sequence Introducer ESC [ n ` Absolute Horizontal Tab ESC [ n a Relative Horizontal Tab ESC [ c Printer Identification ESC [ 0 c Printer Identification ESC [ n d Absolute Vertical Tab ESC [ n e Relative Vertical Tab ESC [ g Clear Horizontal Tab Stop ESC [ 0 g Clear Horizontal Tab Stop ESC [ 1 g Clear Vertical Tab Stop ESC [ 2 g Clear All Horizontal Tab Stops ESC [ 3 g Clear All Horizontal Tab Stops ESC [ 4 g Clear All Vertical Tab Stops ESC [ 20 h Select Automatic Carriage Return ESC [ 20 l Cancel Automatic Carriage Return ESC [ n m Select Graphic Rendition ESC [ n1 ; n2 r Set Top and Bottom Margins ESC [ n1 ; n2 s Set Left and Right Margin ESC [ n t Set Form Length in Lines ESC [ n1 ; n2 ; ... nx u Set Horizontal Tab Stops ESC [ n1 ; n2 ; ... nx v Set Vertical Tab Stops ESC [ n w Set Character Spacing ESC [ n z Set Line Spacing ETX End of Text FF Form Feed HT Horizontal Tab HTS Set Horizontal Tab Stop IND Line Feed LF Line Feed NEL New Line NUL Null VT Vertical Tab VTS Set Vertical Tab Stop
85
SIMPLE TTY EMULATION
Introduction
This section describes the control codes and escape sequences comprising simple TTY emulation. This emulation may be selected by setting “Emulation” to “TTY” in the interface setup menu, or via software with the ESC ESC 6 sequence. While this emulation is selected, control codes and escape sequences from other emulations are not available.
Control codes and escape sequences are used to control printer operation. An ASCII control code is a single character in the range 00 hex through 1F hex, and 7F hex. The ESC (Escape) control code (1B hex) is used to introduce character strings called escape sequences, which provide an extension of the commands available with ASCII control codes.
TTY emulation is unique in that it does not support any escape sequences (except for the ESC ESC n sequence, which may be used to select a different emulation).
Spaces are used when documenting escape sequences to increase readability. The spaces within the sequences are for readability only; they are not part of the sequences themselves. Characters that appear in italics (such as “n”) are not sent to the printer as is; they are used as a place holder indicating that some value must be supplied.
Multiple character strings without intervening spaces typically represent control codes. For example, BS is the Backspace control code (08 hex), not the two characters “B” and “S” (42 and 53 hex). An ASCII Control Code Table is provided on page 109 for your convenience. If you have any doubt about how to interpret a documented control code or escape sequence, refer to the hex representation in the provided example. This should clarify any ambiguity. The examples may also be helpful when analyzing a hex dump (see Hex Dump chapter) printed by the printer.
Simple TTY Emulation
86
Control Codes and Escape Sequences Grouped by Function
Communications
End of Text ETX
If “ETX/ACK” is set to “On” in the interface setup menu, then receipt of an ETX causes the printer to transmit an ACK to the host computer.
Since the ETX may be a legal value within an escape sequence, it is the user's responsibility to ensure that an ETX used for data handshake is not sent within an escape sequence. The user must also ensure that the maximum block size or the number of blocks sent at one time does not exceed the input buffer size of the printer.
ETX/ACK handshake is available only with serial I/O. Control code: ETX
Hexadecimal: 03
Horizontal Position
Carriage Return CR
Causes the current line to be printed, and then sets the current print position to the left margin. If “Auto LF” is set to “On” in the interface setup menu, a line feed will also be performed.
Control code: CR Hexadecimal: 0D
Backspace BS
Causes the current line to be printed, and then moves the current print position one space to the left. The actual distance moved depends on the current character spacing. Backspacing can be done up to, but not beyond, the left margin.
Control code: BS Hexadecimal: 08
Simple TTY Emulation
87
Vertical Position
Line Feed LF
Causes the current line to be printed, and then advances the paper one line at the current line spacing. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Control code: LF Hexadecimal: 0A
Form Length and Form Feed
Form length is the distance from the top of the form to the bottom of the form. A form feed will advance the paper to the top of the next form. Some programs do not send form feeds. Instead, they count line feeds, and send the appropriate number of line feeds to fill out the page. The usual rational is that the program is then in complete control of form length, and will work on any printer without requiring the correct form length to be set. However, the correct form length should always be set with the control panel setup. Even if the program does not use form feeds, the printer will automatically scroll a completed form up to the tear bar to be torn off. This automatic scroll is based upon form length. The easiest way to set form length is via the “Form Length” value in the forms menu so it will be correctly set for everyone using the form.
Form Feed FF
Causes the current line to be printed, and then advances the paper to the top of the next form. If a top margin is set, printing will continue at the top margin. Setting “Host FF at TOF” to “No” in the interface setup menu allows a form feed to be ignored if the paper is already at top of form. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
Control code: FF Hexadecimal: 0C
Simple TTY Emulation
88
Horizontal Tabs
Default horizontal tab stops are set at every eighth column, i.e. column 8, 16, 24, 32, 40, etc. (The first column is column zero.) The default tab stops are associated with columns, not absolute physical positions. Changing character spacing will change the physical position of the default tab stops.
Horizontal Tab HT
Advances to the next horizontal tab stop. If no tab stop exists between the active column and the right margin, the HT will be ignored. Default tab stops are set at every eighth column, i.e. column 8, 16, 24, 32, 40, etc.
Control code: HT Hexadecimal: 09
Vertical Tabs
Vertical Tab VT
Causes the current line to be printed, and then advances the paper to the next vertical tab stop. If no vertical tab stops are set, then a line feed is done instead. If “Auto CR” is set to “On” in the interface setup menu, a carriage return will also be performed.
It is not possible to set vertical tab stops in TTY emulation. If tab stops were previously set in some other emulation, they will be used.
Control code: VT Hexadecimal: 0B
Printer Controls
Bell BEL
Causes the printer's bell to sound. Control code: BEL
Hexadecimal: 07
Simple TTY Emulation
89
Emulations
Select Software Interface n ESC ESC n
Selects the software interface n according to the table below.
n Software Interface
0 Test (reserved for factory use) 1 ANSI X3.64 Emulation 2 Epson FX Emulation 3 Bar Code Mode (optional) 4 IBM Proprinter Emulation 5 DEC LA120 Emulation 6 TTY Emulation 7 Printek Emulation ; Remote Setup Mode < Genicom 3840 = Genicom 3410 ? Previously Selected Emulation @ Default Emulation
Overrides the “Emulation” value in the interface setup menu. A numeric value for n may be specified in two different ways, with equivalent results: a single byte with a
value of 00 to 07 hex, or a single printable ASCII character “0” to “7” (30 to 37 hex). If more than one emulation has been selected, ESC ESC ? will return to the previously selected emulation.
This is particularly useful when the previous emulation is unknown. Please beware that the memory (stack) is only one level deep.
ESC ESC @ will return to the default emulation, as specified by the “Emulation” value in the interface setup menu.
This chapter describes TTY emulation. If a different interface is selected, the control codes and escape sequences described in this chapter will no longer be applicable.
Example: The following escape sequences will select Printek emulation, load form one, and then return to the previous emulation.
Escape Sequence: ESC ESC 7 ESC L 1 ESC ESC ? Hexadecimal: 1B 1B 07 1B 4C 01 1B 1B 3F
Simple TTY Emulation
90
Control Codes and Escape Sequences Sorted Alphabetically
BEL Bell BS Backspace CR Carriage Return ESC ESC n Select Software Interface n ETX End of Text FF Form Feed HT Horizontal Tab LF Line Feed VT Vertical Tab
91
PRINTEK EMULATION
Introduction
This section describes the control codes and escape sequences comprising Printek emulation. This emulation may be selected by setting “Emulation” to “Printek” in the interface setup menu, or via software with the ESC ESC 7 sequence. While this emulation is selected, control codes and escape sequences from other emulations are not available.
Control codes and escape sequences are used to control printer operation. An ASCII control code is a single character in the range 00 hex through 1F hex, and 7F hex. The ESC (Escape) control code (1B hex) is used to introduce character strings called escape sequences, which provide an extension of the commands available with ASCII control codes.
Some escape sequences accept one or more numeric parameters. If a sequence accepts one numeric parameter, it will be represented as “n”. If a sequence accepts more than one numeric parameter, they will be represented as “n1 n2 ... nx”.
Since numeric parameters are always encoded in one byte, their values may range from 0 to 255 decimal. Please note that the value will never be represented by a string of ASCII decimal digits (“0” through “9”). For example, a value of 66 decimal would be sent as a single byte with a hex value of 42. This is equivalent to sending the ASCII character “B”. It is entirely different than sending the two printable ASCII characters “66”.
If a numeric parameter is limited to a value of zero or one, it may be sent as a single byte with a value of 00 or 01 hex (NUL or SOH), or it may be sent as a single printable ASCII character “0” or “1” (30 or 31 hex).
Spaces are used when documenting escape sequences to increase readability. The spaces within the sequences are for readability only; they are not part of the sequences themselves. Characters that appear in italics (such as “n” and “n1 n2” above) are not sent to the printer as is; they are used as a place holder indicating that some value must be supplied.
Multiple character strings without intervening spaces typically represent control codes. For example, BS is the Backspace control code (08 hex), not the two characters “B” and “S” (42 and 53 hex). An ASCII Control Code Table is provided on page 109 for your convenience. If you have any doubt about how to interpret a documented control code or escape sequence, refer to the hex representation in the provided example. This should clarify any ambiguity. The examples may also be helpful when analyzing a hex dump (see Hex Dump chapter) printed by the printer.
Column and line numbers begin at zero, not at one. Keep this in mind when setting tabs, margins, etc. Printek emulation was developed to allow access to the full range of hardware features available in the
Printek FormsPro, FormsMaster and PrintMaster series printers. Other emulations typically support some character pitches, but not all character pitches. They do not allow the 10 different form setups to be selected via software, or allow graphics of every possible density to be printed. Printek emulation supports all of these features, and more, in one place. This makes Printek emulation the most powerful emulation available
Printek Emulation
92
in the printer. We encourage you to take full advantage of all the unique features available in Printek emulation. After all, these features are the reason you purchased your Printek printer.
The most common reason for using Printek emulation is to select a different form setup (and thus change tractors). Many users switch to Printek emulation (using the ESC ESC 7 sequence), load a new form (using the ESC L n sequence), and then return to their standard emulation (using the ESC ESC n sequence). If you normally use Epson emulation, please note that the Epson sequence ESC EM n allows Form 0, 1, or 2 to be selected without switching to Printek emulation.
Printek Emulation
93
Control Codes and Escape Sequences Grouped by Function
Communications
End of Text ETX
If “ETX/ACK” is set to “On” in the interface setup menu, then receipt of an ETX causes the printer to transmit an ACK to the host computer.
Since the ETX may be a legal value within an escape sequence, it is the user's responsibility to ensure that an ETX used for data handshake is not sent within an escape sequence. The user must also ensure that the maximum block size or the number of blocks sent at one time does not exceed the input buffer size of the printer.
ETX/ACK handshake is available only with serial I/O. Control code: ETX
Hexadecimal: 03
Deselect Printer DC3 (or) XOFF
Deselects the printer. Use of this command is discouraged, because the printer will remain offline until an operator presses the ONLINE button on the control panel.
Control code: DC3 Hexadecimal: 13
Printek Emulation
94
Character Size
Set Character Spacing ESC SP n
Sets character spacing in decipoints (n/720 of an inch). Overrides the”Characters/Inch” value in the forms menu. Supported values are shown in the following table.
n Character Size 72 10 cpi 60 12 cpi 54 13.3 cpi 48 15 cpi 43 16.74 cpi 42 17.14 cpi 36 20 cpi
Example: The following escape sequence will select 10 cpi character spacing. Escape Sequence: ESC SP 72
Hexadecimal: 1B 20 48
Double-Wide Mode ESC W n
Selects double-wide mode for n=1, or cancels for n=0. Double-wide mode doubles the width of all characters, but does not affect character height. ESC S 3 may be used to select double-high mode.
Example: The following escape sequence will select double-wide mode. Escape Sequence: ESC W 1
Hexadecimal: 1B 57 31
Select Script Modes ESC S n
Selects normal character height for n=0, subscript mode for n=1, superscript mode for n=2, or double-high mode for n=3. This is shown in the following table.
n Script Mode 0 Script modes off 1 Subscript 2 Superscript 3 Double high
Subscript mode will print characters about half the normal height in the bottom half of the normal character cell. Superscript mode will print characters about half the normal height in the top half of the normal character cell. Double-high mode doubles the height of all characters. These modes are mutually exclusive, and none of them affect character width.
Loading...