and make these changes:130 LPRINT CHR$(27)"&"CHR$(0)"rt";140 FOR Y=1 TO 3: LPRINT CHR$(139);160 NEXT Y180 LPRINT "rst"A R E

Line 130 controls the reading of the data. It expects data for three characters: r, s, and t. This example uses lowercase characters. If nec- essary, you can use CHR$(114) and CHR$(l16) in place of the “rt”.

The attribute byte for each character is sent in line 140 and the other

11 bytes are read from DATA lines. This method is nice for quick and easy character definition.

If you intend to print your characters in Proportional Mode, you’ll want to add a different attribute byte to the start of each DATA line and adjust the READ routine for 12 numbers. Don’t forget the attribute byte or you’ll end up with results you won’t like.

Redefining Control Codes

For some of you dedicated users, the range from 32 to 126 and 160 to 254 may not be large enough to accommodate all the characters you want. Perhaps you have a passion for Egyptian hieroglyphics, or maybe you need a complete set of mathematics symbols. And what about the entire Japanese character set (it has some 4000 symbols)?

If you get carried away with user-defined characters, you may end up searching for more storage. Anticipating this need, Epson provides commands that will allow you to define and print certain control codes in the same way that you treat other characters. (Remember that the low-order control codes are the ASCII codes 0 through 31 plus 127, and the high-order control codes are 128 through 159 plus 255.)

These codes do not normally print symbols on paper, rather they cause the printer to change modes. To make them print as normal symbols requires an extra command. For example, the command to “normalize” the high-order control codes is:

LPRINT CHR$(27)"6"

208