User-defined Characters

An example will show how to specify nl and n2. If, for instance, you wanted to redefine the characters A through Z, nl would be A (or ASCII code 65) and n2 would be Z (or ASCII code 90). So the command ESC & 0 AZ (followed by the appropriate data) would replace the entire alphabet of capital letters.

Following the specification of the range of characters to be defined in this command are three data bytes (d0-d2)that specify the width of the character and the space around it. The left space (in dot columns) is specified by d0, and the right space is specified by d2. The second byte (dl) specifies the number of columns of dots that are printed to make up the character. By varying the width of the character itself and the spaces around it, you can create proportional-width characters that print at draft speed. The table below shows the maximum values for these bytes.

Mode

 

d1

d0 + d1 + d2

 

 

 

(maximum)

(maximum)

 

 

 

 

 

 

 

 

Draft

 

9

12

 

 

 

 

 

 

 

 

 

Letter Quality 10 cpi

 

29

36

 

 

 

 

 

 

 

 

Letter Quality 12 cpi

I

23

30

 

 

 

 

 

 

 

 

Proportional

 

37

42

 

 

 

 

 

 

 

 

 

The last part of the character definition is the actual data that defines the dot patterns for each character. Since it takes three bytes to specify the dots in one vertical column of dots, your printer expects dl x 3 bytes of data to follow d2.

An example character definition program should make this clear:

10

LPRINT

CHR$(27)"X0"

20

LPRINT CHR$(27)"&"CHR$(0);

30

LPRINT

"@@";

40

LPRINT

CHRS(1)CHRS(9)CHRS(1);

50

FOR I=1

TO 27

4-26 Software and Graphics