Following the specification of the range of characters to be defined in
this command is one number (al) that specifies the width of the
character and whether it uses the top eight pins or the bottom eight
pins.
The last part of the character definition is the actual data that
defines the dot patterns for each column of each character. Since a
character can use up to eleven columns, you must supply eleven data
numbers for each character even if some of the columns are blank.
An example character definition program should make the process
clear:
100 LPRINT CHR$(27);"x0";
110 LPRINT CHR$(27);"&";CHR$(0);
120 LPRINT "@@";
130
LPRINT CHR$(l36);
140
FOR I = 1
to
11
150
READ A: LPRINT CHR$(A);
160 NEXT I
170 LPRINT "@ @ @ @ @"
180 LPRINT CHR$(27);"%l";CHR$(1);
190 LPRINT "@ @ @ @ @"
200 LPRINT CHR$(27);"%";CHR$(0);
210 LPRINT "@ @ @ @ @"
220 END
230
DATA 32,80,168,84,42,84,168,80,32,0,0
In line 100, the ESC x 0 command selects draft style printing. The
actual character definition starts in line 110. The two at signs (@) in
line 120 are nl and
n2,
the range of characters being defined (in this
case, a range of one). Line 130 contains
a1.
The information about the character design (which is contained in
the data statements at the end of the program) is sent to the printer in
the loop between lines 140 and 160.
This example program defines a heart and places it in the area of
RAM reserved for ASCII code 64, which corresponds to the at sign in
the characters in the ROM. The next part of the program (lines
170-210) prints out a three-line sample. The first and third lines contain
at signs; the second line contains the heart that was defined.
Graphics and User-defined Characters
5 - 1 5