Page 1
A798 Thermal Receipt Printer Programming Guide Made under one or more of the following U.S. patents: 4886381, 5579043, 5613787, 5651624, 5713678, 5752779, 5789916, 5800080, 5879090, 5887999, 5975776, 6027266, 6085973, 6089450, 6129465, 6155483, 6404452, 6486902, 6504331, 5749277, 6722754, 6739773, 6784909.
Page 2
A shielded (360 degree) interface cable must be used with this product. The shield must be connected to the frame or earth ground connection or earth ground reference at EACH end of the cable. Use of a cable other than described here will require that you test the cable with the CognitiveTPG printer and your system for FCC and CE mark certification.
A798 Programming Guide Revision C 12/09 Contents Contents Chapter 1: About this Guide ..............9 How to use this guide .................9 Where to find the basics ..............9 Where to find advanced technical information ........9 Support ....................9 Chapter 2: Diagnostics and Configuration ........11 Start-up Diagnostics .................11...
A798 Programming Guide Revision C 12/09 Contents Chapter 4: Programming Commands ..........29 Commands listed by function ............29 Printer actions ...................29 Print and paper feed ................29 Vertical and horizontal positioning ..........30 Text characteristics ................30 Graphics ....................31 Status ....................31 Batch mode ......................31 Real time .......................
A798 Programming Guide Revision C 12/09 Contents Transmit status ....................71 Send printer software version............... 72 Real time commands .................73 Preferred implementation ................73 Alternate implementation ................73 Rules for using real time commands ............73 Moving data through the buffer ..............74 Busy line and fault conditions ...............
A798 Programming Guide Revision C 12/09 Contents Expanded flash memory allocation ............98 Select flash area for storing logos and fonts ........... 98 Erase user flash sector ..................99 Flash download ................100 Switch to flash download mode ..............100 Return boot sector firmware part number ..........100 Return segment number status of flash memory .......101...
Where to find the basics If you are looking for information on setup or basic operation, refer to the A798 User Guide. The programming guide assumes that you have the A798 User Guide handy for reference or are already familiar with the printer.
Page 10
Revision C 12/09 A798 Programming Guide Chapter 1: About this Guide A798-PG00001C...
Revision C 12/09 Chapter 2: Diagnostics and Configuration Chapter 2: Diagnostics and Configuration The A798 printer performs a number of diagnostics that provide useful information about the operating status of the printer. The following diagnostic tests are available. • Start-up diagnostics Performed during the printer’s start-up cycle.
• Number of flash cycles • CRC number • Number of cutter jams • Number of lines printed • Number of times the cover is opened • Number of knife cuts • Maximum temperature reached (See tallies note on the following page.) A798-PG00001C...
Page 13
Revision C 12/09 Chapter 2: Diagnostics and Configuration *** A798 – Diagnostics Form *** Model number A798-720D-TD00 Serial number C073400014 Boot Firmware Revision V1.00 08D3 189-7940154A Flash Firmware Revision V1.00 D70C 189-7940155A H/W parameters Flash Memoriy Size 2 Mbytes Flash Logos/Fonts...
For more information about See this section Error conditions and correcting them “ Troubleshooting the printer” in Chapter 4: Using the Printer in the A798 User Guide Communication of printer status to the host application “Command descriptions” in Chapter 4: Programming commands.
Paper width Normal Printhead setting Datascope Receipt test For more information about See this section • Printer Emulations Using the configuration menu “Configuring the printer” to configure the printer on page 16 Native mode A794 emulation A793 emulation LEGACY emulation A798-PG00001C...
4 Make sure receipt paper is loaded in the printer before ������������ � ������� ���������������� � ������ proceeding. (For loading instructions, see the A798 Press and hold the paper feed button while closing ����������������� � �������� User Guide) Make sure cover is closed. the receipt cover.
• Alternate DTR/DSR Enabled Disabled Note: Press the paper feed button for at least one second to validate the selection. For more information about See this section Setting the RS-232C Serial “Configuring the printer” interface settings on page 16. A798-PG00001C...
2 Disable the data scope mode. 3 Exit the configuration menu. The printer is on-line and can communicate normally with the host computer. For more information about See this section Enabling the data scope mode “Configuring the printer” on page 16 A798-PG00001C...
The A793, A794 and Legacy Command emulations do not recognize the ColorPOS commands. ® Note: Press the paper feed button for at least one second to validate the selection. For more information about See this section Setting the printer emulation “Configuring the Printer” on page 16 A798-PG00001C...
Some applications expect the command to be ignored while others use the command as a print command. • Default font Sets the default for monochrome and LEGACY emulations. • Font size Allows user to set font size for the emulation being used. A798-PG00001C...
Page 21
This setting is the printhead energy rating and must match the rating marked on the front right of the thermal mechanism in the printer. Whenever a new thermal mechanism is installed, this setting must match the indicated energy rating on the mechanism. (See A798 Service manual for replacing the thermal mechanism.) • Print density (monochrome papers only) Adjusts printhead energy level to darken printout or adjust for paper variations.
Page 22
Revision C 12/09 Chapter 2: Diagnostics and Configuration A798-PG00001C...
Any nonlegal commands have their parameter sent to the print buffer as data. Comparison to A793 The following table details the list of commands whose behavior differs between the A793, A794, and A798 because of the physical differences of a 6 dots/mm head (A793) versus an 8 dots/mm head (A794 and A798).
Page 24
Print and feed paper This command uses n in terms of n/360 inches. Since the A793 had a fundamental step of 1/152 inch and the A798 has a fundamental step of 1/203 inch, the actual line spacing will not exactly match the requested spacing.
576 addressable bits of graphics across an 80mm wide receipt. Minimum print line height is 24 dots for text or graphics. Standard print line spacing is 27 dots (i.e., 3 extra row dots). The A798 adds a 27 dot high font, so standard print spacing is 30 dots. A798-PG00001C...
Resulting output (1B 7B n) (1B 56 n) (1B 12) A B C Canceled Canceled Cleared Canceled Canceled Note: The following print modes cannot be mixed on the same line: • Right-side up and upside-down • Single-high (normal) and double-high A798-PG00001C...
• If only the font is changed, the default LPI will automatically be changed as in the table above. • If emulation is switched from any emulation to A798 native, the font and LPI will remain unchanged because the A798 native mode supports all font and LPI options offered in the emulation modes.
Page 28
Chapter 3: Programming the Printer Revision C 12/09 A798-PG00001C...
Print and carriage return 14 n Feed n print lines 15 n Feed n dot rows 16 n Add n extra dot rows Print 1B 4A n Print and feed paper 1B 64 n Print and feed n lines A798-PG00001C...
Select character size 1D 42 n Select or cancel white/black reverse print mode 1F 05 n Select supersctipt or subscript modes 1F 26 s c1 c2 Define extended user-defined character set 1F 69 n Select active user-defined character set A798-PG00001C...
Real time request to printer (GS sequence) 1D 04 n Real time status transmission (GS sequence) 1D 05 Real time printer status transmission 1F 7A Real time commands disabled Unsolicited status mode Code (hexadecimal) Command Page 1D 61 n Select or cancel unsolicited status mode A798-PG00001C...
Select memory type (SRAM/flash) where to save logos or user-defined fonts 1D 22 55 n1 n2 Flash memory user sectors allocation 1D 22 80 Expanded flash memory allocation 1D 22 81 n Select flash area for storing logos and fonts 1D 40 n Erase user flash sector A798-PG00001C...
The command operand default after printer reset. Description: Brief description and summary of the command. Formulas: Any formulas used for this command. Exceptions: Describes any exceptions to this command; for example, incompatible commands. Related information: Describes related information for this command; for example, bit information. A798-PG00001C...
• Single-wide, single-high, non-rotated, and left-aligned characters are set • Printing position is set to column one Related Information This command is recognized in A793 emulation and A798 native mode, ignored in LEGACY emulation. Perform full knife cut ASCII ESC i...
Clears the print line buffer and resets the printer to the default settings for the start-up configuration (refer to Default settings above). Single-wide, single-high, non-rotated, and left-aligned characters are set, and user-defined characters or logo graphics are cleared. (Flash memory is not affected.) Tabs reset to default. Receipt selection state is selected. A798-PG00001C...
Bits 5 and 7 are not used. Default: Determines which sensor stops printing on the respective station. The command does not affect the paper out status on the receipt station, which will automatically stop the printer when the paper is depleted. A798-PG00001C...
• On-time = p1 (Hex) x 2 msec • Off-time = p2 (Hex) x 2 msec Related information Off-time is the delay before the printer performs the next operation. Refer to cash drawer specifications for required on and off-time. A798-PG00001C...
Print test form ASCII US t Hexadecimal 1F 74 Decimal 31 116 Prints the current printer configuration settings on the receipt. Disabled in page mode. A798-PG00001C...
The number of lines to feed at current line height setting. Range of n: 0–255 in A798 native mode 0–127 in A793 emulation Feeds the paper n lines at the current line height without printing. Ignored on receipt if current line is not empty.
This is ignored in LEGACY emulation and the parameter byte goes into the print buffer. Print ASCII Hexadecimal Decimal Prints one line from the buffer and feeds paper one line. Executes LF on receipt. Related information This command is ignored in LEGACY emulation. A798-PG00001C...
1B 4A n Decimal 27 74 n Value of n: n/203 inch in A798 native mode, A794 emulation and Application Compatible Escape Commands emulation mode; n/360 inch in A793 emulation mode Range of n: 0–255 Prints one line from the buffer and feeds the paper n/8 mm (n/203 inch). The line height equals the character height when n is too small.
Prints the first character of the next print line in column n. It must be sent for each line not printed at column one. The value of n is set to one after each line. Exceptions This command cannot be used with single- or double-density graphics. Related information This is ignored in LEGACY emulation and the parameter byte goes into the print buffer. A798-PG00001C...
In order to improve the speed of printing, the A798 moves the data into a buffer for the printhead when it receives it. When the “Set relative print position” command contains a move to the left, this causes the new data to overstrike the previous data.
ESC 3 n Hexadecimal 1B 33 n Decimal 27 51 n Value of n: n/406 inch in A798 native mode, A794 emulation n/360 inch in A793 emulation mode n/203 inch in Application Compatible Escape Commands emulation mode Range of n: 0-255 Default: 3.37 mm (0.13 inch)
(1D 50) in this document. Compatibility information (A798 receipt vs. A793 receipt) There is a difference in the normal behavior of this command in A793 emulation mode as compared to the original A793.
Revision C 12/09 In order to improve the speed of printing, the A798 moves the data into a buffer for the printhead when it receives it. When the “Set relative print position” command contains a move to the left, this causes the new data to overstrike the previous data.
Where 2 inches = 406/203, and 406 = (1 X 256) + 150. Exceptions This command is effective only at the beginning of a line. If the setting exceeds the printable area, the maximum value of the printable area is used. The maximum printable area is 576 dots. See the illustration. A798-PG00001C...
This command is valid only at the beginning of a line. Rotated print and non-rotated print characters cannot be used together in the same line. Related information See “Summary of rotated printing” in this document. This command is ignored in LEGACY emulation. A798-PG00001C...
(set by select print direction in page mode, 1B 54 n) the vertical motion unit (y) is used. Related information This is ignored in LEGACY emulation and the parameter byte goes into the print buffer. In the A793 emulation, the command and parameter byte are ignored. A798-PG00001C...
Look in Chapter 3: Programming the Printer, “Character appearance” for a description of standard and compressed character pitches. The bits in this command perform the same function as the stand-alone functions: 1B 16 n Select pitch 1B 45 n Emphasized 1B 47 n Double-strike Double-wide Single-wide 1B 2D n Underline A798-PG00001C...
(1B 40) is received. Any invalid byte (s, c1, c2, n1) aborts the command. Related information See 1D 22 n (select memory type) to save user-defined characters. A798-PG00001C...
This command and the Select Print Mode(s) command (1B 21) turn underline on and off in the same way. Exceptions This command is ignored if n is out of the specified range. Related information In A793 emulation, this command is unrecognized and the parameter n is put into the print buffer. A798-PG00001C...
Related information This command and the select print mode(s) command (1B 21) function identically. They should have the same setting when used together. In A793 emulation, this command is unrecognized and the parameter byte is put into the print buffer. A798-PG00001C...
Turns italic print mode on or off. The printer is reset to the standard print mode after a clear printer (0x10) command is received. Exceptions Only the lowest bit of n is valid. Related information This command is recognized in A798 native mode and A794 emulation. In A793 and LEGACY emulations, the parameter byte is put into the buffer. A798-PG00001C...
Default: 0 (Code Page 437) Selects the character set to be used. Look in “Appendix B: Resident Character Sets” in the A798 User Guide for the character sets. There are two codes for this command (see select international character set, 1B 74 n). Both codes perform the same function.
Default: 0 (Code Page 437) Selects the character set to be used. Look in “Appendix B: Resident Character Sets” in the A798 User Guide Programming Supplement for the character sets. There are two codes for this command (See “Select international character code, 1B 52 n.) Both codes perform the same function.
In native mode, the vertical direction is limited to 7 (seven times height) when Tall or ColorPOS font is selected. If 8 ® (eight times height) is selected, the results are unspecified. Related information In A793 emulation, this command is discarded and not put into print buffer. A798-PG00001C...
(12, 13, 1B 21 n, 1D 21 n,…) Exceptions This command is ignored if n is out of the specified range. Related information In A793 emulation, this command is unrecognized and the parameter byte is put into the print buffer. A798-PG00001C...
BMP file images that are not monochrome are put into the print buffer. Related information Microsoft BMP bitmap file format. This command is recognized in A798 native mode and in A794 emulation. In A793 and LEGACY emulations, the BMP file bytes are put into the print buffer. A798-PG00001C...
Sets the print resolution and enters one line of graphics data into the print buffer. Excess data is accepted but ignored. Any print command is required to print the data, after which the printer returns to normal processing mode. See the illustration for graphic representations of the bit image below. A798-PG00001C...
Each bit corresponds to one horizontal dot. Compare to set bit image mode (1B 2A, m=1) earlier in this document. Related information In LEGACY emulation, this command is unrecognized and the parameters are put into the print buffer. A798-PG00001C...
Related information This command is recognized in A798 native mode and A794 emulation. In A793 and LEGACY emulations, the parameters are put into the print buffer. A798-PG00001C...
40) command is received. This bit image will be saved as a monochrome logo indexed by current value that was last set by the select current logo command or 0 is a select current logo command had not yet been given. See the illustration below for a graphic representation of the downloaded bit image. A798-PG00001C...
Selects or cancels 6-dot/mm emulation mode. When the 6-dot/mm emulation is selected, logos and graphics are expanded horizontally and vertically during download to emulate their size on a 6-dot/mm printer. The horizontal positioning commands also emulate positioning on a 6-dot/mm printer. A798-PG00001C...
Status command introduction The A798 has three methods of providing status to the application. These methods are through batch status commands, real time status commands and unsolicited status mode. An application may use one or more of these methods to understand the current status of the printer.
Exceptions Unlike the A793, that had a dedicated connector and resultant dedicated status reporting for each cash drawer, the A798 has a single connector that shares data reporting from either cash drawer. When either cash drawer is open, an open status is reported by the printer.
In DTS/DSR protocol, the printer waits for DSR = SPACE. Related information See busy line and fault conditions in the real time commands section of this document for details about fault condition reporting. In LEGACY emulation, this command is ignored. A798-PG00001C...
4, 52 = Logo Definition Transmits the printer ID specified by n as follows: Printer ID Specification ID (Hexadecimal) 1, 49 Printer model ID A798 0x24 2, 50 Type ID Installed options Refer to below 3, 51 ROM version ID...
Return receipt lines tally, preceded by n to identify Printer returns 10 bytes in above example: â00010000<CR> ä Knife cut tally, 8 digit ASCII numeric, Write to NVRAM max 99,999,999 à Knife cut tally Write to NVRAM, and print on receipt to verify A798-PG00001C...
Page 70
Clear cover openings tally to 0 » Cover openings tally Return cover openings tally, returns 10 bytes Max temperature tally Reset max temperature reached value Max temperature tally Return max temperature reached since it was reset, returns 10 bytes A798-PG00001C...
Exceptions Unlike the A793, that had a dedicated connector and resultant dedicated status reporting for each cash drawer, the A798 has a single connector that shares data reporting from either cash drawer. When either cash drawer is open, an open status is reported by the printer.
The printer returns 8 bytes containing the boot and flash software version. The first 4 bytes returned are an ASCII string for the boot version. The second 4 bytes are an ASCII string for the flash version. Example: For 1.234.56 (8 bytes), the boot version is 1.23 and the flash version is 4.56. A798-PG00001C...
In this case the printer will use the real time command sequence bytes instead of the other command’s parameter bytes when finally executing that other command from the buffer; the other command will NOT be executed correctly. These three situations generally preclude use of standard DOS drivers for the serial communication ports when using real time commands. A798-PG00001C...
Transmits the selected one byte printer status specified by n in real time according to the following parameters. This command includes two sequences: GS (1D) and DLE (0x10). Exceptions The command is ignored if n is out of range. Continued... A798-PG00001C...
Page 75
10 04 n. Unlike the A793, that had a dedicated connector and resultant dedicated status reporting for each cash drawer, the A798 has a single connector that shares data reporting from either cash drawer. When either cash drawer is open, an open status is reported by the printer.
Page 76
Bit Status Hex Decimal Function Fixed to off Fixed to on Paper adequate Paper low (if paper low sensor enabled) Paper adequate Paper low (if paper low sensor enabled) Fixed to on Paper present Paper exhausted Paper present Paper exhausted Fixed to off A798-PG00001C...
An application using DLE (0x10) sequence must send ENQ within 100 milliseconds of DLE or the printer will misinterpret the DLE and execute a clear printer command. Avoid this possibility by using the ID 03 n sequence, that is handled exactly the same as 10 05 n. A798-PG00001C...
Exceptions Unlike the A793, that had a dedicated connector and resultant dedicated status reporting for each cash drawer, the A798 has a single connector that shares data reporting from either cash drawer. When either cash drawer is open, an open status is reported by the printer.
Recognizing Data from the printer, which follows the USM return description. The status bytes to be transmitted are described in the following four tables. Byte 1 = printer information Byte 2 = error information Byte 3 = paper sensor information Byte 4 = paper sensor information Continued... A798-PG00001C...
Page 80
No knife error. Knife error occurred. Not used. Fixed to off. No unrecoverable error. Unrecoverable error occurred. No recoverable error. Recoverable error: Cover open, paper out, temperature or voltage error is out of range. Not used. Fixed to off. Continued... A798-PG00001C...
Page 81
Bit Off/On Hex Decimal Status for USM – – – Undefined – – – Undefined – – – Undefined – – – Undefined Not used. Fixed to off. – – – Undefined – – – Undefined Not used. Fixed to off. A798-PG00001C...
Selects standard and compressed font for printing bar code characters. Select bar code height ASCII GS h n Hexadecimal 1D 68 n Decimal 29 104 n Value of n: Number of dots Range of n: 1–255 Default: Sets the bar code height to (n/154 inch). A798-PG00001C...
See the table. If character code d cannot be encoded, the printer prints the bar code data processed so far, and the following data is treated as normal data. Exceptions Code 93 and PDF 417 are only available in A798 native mode. Print multiple barcodes ASCII...
GS1 Expanded, default 22, must be even number 2 to 22 word line height, used only by UCC128, default 25, can be set 1 to 500 Note: For GS1 DataBar commands, consult ISO/IEC 24721. For futher information, visit www.gs1.org. A798-PG00001C...
There are three mutually exclusive sets of symbol patterns, or clusters, each having 929 distinct patterns. Because different clusters are used for adjacent rows, it is possible for the decoder to tell if the scanning path is crossing row boundaries without the use of separator bars. A798-PG00001C...
Select bar code width ASCII GS w n Hexadecimal 1D 77 n Decimal 29 119 n Value of n: 2, 3, 4, 5, 6 Default: Sets the bar code width to n dots. Formulas n/8mm (n/203 inch) A798-PG00001C...
Page mode Page mode is one of two modes that the A798 printer uses to operate. Standard mode is typical of how most printers operate by printing data as it is received and feeding paper as the various paper feed commands are received. Page mode is different in that it processes or prepares the data as a “page”...
• Set left margin (1D 4C) • Set print area width (1D 57) Exceptions The command is enabled only when input at the beginning of a line. The command has no effect if page mode has previously been selected. A798-PG00001C...
(0C or 1B 0C). Exceptions The command is valid only in page mode. The command is ignored if the value of n is out of the specified range. A798-PG00001C...
Maximizing the possible area in page mode consumes almost all of the free RAM. Without any free RAM, bitmap rotations and enlargements cannot be performed. Use the User Storage Status command (1D 97 m n) to determine the amount of free memory. Exceptions The command is effective only in page mode. A798-PG00001C...
When pitch n is specified to the movement upward: nL + nH x 256 – 65536 – N Exceptions This command is used only in page mode, otherwise it is ignored. Any setting that exceeds the specified printing area is ignored. A798-PG00001C...
The macro executes r times continuously at the interval specified by t when the LSB (least significant bit) of m = 1. Exceptions If this command is received while a macro is being defined, the macro definition is aborted and the definition is cleared. If the macro is not defined or if r is 0, nothing is executed. A798-PG00001C...
Value of n2: Byte Range of k: 20 – 63 (decimal locations) Writes the two-byte word, n1 n2, to location k in history EEROM. Related information: This is ignored in LEGACY emulation and the parameter bytes go into the print buffer. A798-PG00001C...
To specify permanent font flash are, also send 1D22 81 01. Related information This command is recognized in A798 native mode. In A793 and LEGACY emulations, parameter bytes go into the print buffer. Flash memory user sectors allocation ASCII GS “...
Select flash area for storing logos and fonts ASCII GS” 0x81 Hexadecimal 1D 22 81 n Decimal 29 34 129 n Value of n: n specifies n = 0 select logo/font area n = 1 select permanent font flash area n > 1 reserved A798-PG00001C...
(1D 40 n) command, an application should wait for the response from the printer before sending data. Otherwise, data will be lost. If an application is unable to receive data, it should wait a minimum of ten seconds after sending the erase user flash sector (1D 40 n) command before sending data. A798-PG00001C...
Erase all flash contents except boot sector ASCII GS SO Hexadecimal 1D 0E Decimal 29 14 Causes the entire flash memory to be erased. The printer returns ACK if the command is successful; NAK if it is unsuccessful. Exceptions Available only in download mode. A798-PG00001C...
Application software for downloading should prompt the user to set the external switches and confirm before sending this command. If the downloading was started from a diagnostic, the reboot will cause the printer to re-enter download state unless the external switches are changed. A798-PG00001C...
Page 103
Revision C 12/09 Chapter 4: Programming Commands A798-PG00001C...
1B 2A m n1 n2 d1...dn Select bit image mode 1B 2D n Select or cancel underline mode 1B 2E m n rL rH d1 … dn Print advanced raster graphics 1B 32 Set vertical line spacing to 1/6 inch A798-PG00001C...
Page 105
1B 75 n Request alternate status (A793 emulation only) 1B 76 Transmit paper sensor status 1B 7B n Select or cancel upside-down print mode 1C 70 m n Print Flash Logo 1C 71 n . . . Define Flash Logos A798-PG00001C...
Page 106
Set relative vertical print position in page mode 1D 5E r t m Execute macro 1D 61 n Select or cancel unsolicited status mode 1D 66 n Select pitch of HRI characters 1D 68 n Select bar code height A798-PG00001C...
Page 107
Select superscript or subscript modes 1F 26 s c1 c2 Define extended user-defined character set 1F 56 Send printer software version 1F 69 n Select active user-defined character set 1F 74 Print test form 1F 7A Real time commands disable A798-PG00001C...