CHAPTER 6 EPSON - 23
6.6.
Using customized characters
Define characters
Esc&NUL
n
1
n
2
(
n
3
<character definition data>)
(27)(38)(00)n1n2(n3....)
<1Bh><26h><00h>n1n2(n3...)
This command enables you to define and download characters for printing.
Monospaced characters are designed on a grid eleven dots wide by nine dots high. Characters either occupy
the top 8 rows of the grid (ascending characters) or rows 2 to 9 of the grid (descending characters).
1
2
3
4
5
6
7
8
9
10
11
12
Blank columns
Character width
Rows 1 - 8
Replication area
Rows 2 - 9
Proportionally spaced characters are subject to the same height constraints (that is, eight dots high and either
ascending or descending). The width of proportionally spaced characters is specified by the value in
n3.
n
1
is the character code of the first character in the sequence to be defined.
n
2
is the character code of the last character in the sequence to be defined.
It is assumed that you are defining a sequence of characters whose code numbers increment by one for each
character as default. If this is not the case, you must split the characters you are defining into sets of
characters with contiguous code numbers and use a separate command for each set.
Each character is defined as a series of bytes - each byte defining a column of dots. The columns are read
from left to right in the order in which they occur in the definition. The most significant bit of each byte
represents the top dot of the column, and the least significant bit represents the bottom dot. Simply set a bit
to 1 to print a dot in that position on the grid, or to 0 to print white space.
The MSB (bit 8) of
n
3
specifies whether the defined character is an ascender or a descender. Set bit 8 to 0
when defining an ascender, and to 1 for a descender. Ascending characters occupy the top 8 rows of the grid
while descending characters occupy rows 2 to 9 of the grid.
Bits 5 to 7 of
n
3
specify the number of columns left blank to the left of the defined character in proportional
spacing mode. The number of columns to skip is the number held in bits 5 to 7 minus 1. Up to six columns
can be skipped. Hence, if you set this number to 4 it is equivalent to setting the first three character
definition data bytes to 0.
Bits 1 to 4 of
n
3
specify the width in columns of the defined character in proportional spacing mode. The
width in columns is the number held in bits 1 to 4. Characters can be up to fifteen columns wide, including
skipped blank columns.
Downloaded characters are selected using the
Esc %
1 NUL
command and then printed by sending the
appropriate character codes.
Select standard / downloaded characters
Esc%
n
NUL (27)(37)n(00)
<1Bh><25h>n<00h>
Once you have defined and downloaded one or more customized characters using the
Esc &
command, you
can choose between the normal characters contained in the printer ROM and the characters you have
downloaded.
Set
n
to 0 to select the printer standard characters. In this mode you cannot print any of your own defined
characters.
Set
n
to 1 to select your own downloaded characters for printing. Now you can print using your user-defined
characters but you cannot print any of the printer standard characters unless you have previously downloaded
them to RAM as well, using the
Esc :
Copy ROM to RAM command.
LPRINT CHR$(27); CHR$(37); CHR$(1); CHR$(0); 'Select downloaded
characters