The LQ command to define characters is one of the most complex in its repertoire. The format of the command is this:

ESCape “&” 0 nl n2 d0 dl d2 data

The ESCape “&" is simple enough. The 0 (which is ASCII code 0, not the numeral zero in quotation marks) allows for future enhance- ments. At this time it is always ASCII 0.

With the LQ, you can define many characters with a single com- mand. The values n1 and n2 are the ASCII codes of the first and last characters you are defining. If you are defining only one character, n1 and n2 are the same. You can use any codes between 32 and 127 decimal for nl and n2, but it is best not to define decimal 32, which is the code for a space. Also, you can use letters in quotation marks instead of ASCII numbers for n1 and n2.

An example will show how to specify n1 and n2. If, for instance, you wanted to redefine the characters A through Z, n1 would be “A” (or ASCII code 65) and n2 would be “Z” (or ASCII code 90). So the command ESCape "&" 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 (d1) 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. Table 6-3 shows the maximum values for these bytes.

Table 6-3. Character width limits

The last part of the character definition is the actual data that defines the dot patterns for each character. Since it takes three bytes

6-15