One thing to remember about defining proportional characters:
a character cannot be wider than the specified width. That seems
obvious enough! For example, if you specify a width of 6 for a
character (starting in column 1 and ending in column 6), the
seventh through eleventh columns of dots (if you specified any)
will not print. You must, however, send information (even if it
is 0) for those columns when you defined a character; SG- lo/ 15
expects eleven characters following the < ESC > “*” 1 nl n2
m0 or the < ESC > “8~” CHR$(O) nl n2 m0 sequence.
In most cases, the width you select should actually be one dot
wider than the number of columns that the character actually
occupies. This is so that there will be a space (of one dot) between
characters when you print them. If you specify a width which
is exactly the same as the number of columns in the character
definition, the characters will touch when they print (this is
sometimes desirable-for border characters or for large download
characters that are more than eleven dots wide).
Table 9-1
Download character commands
Function 1 Mode 1 Control code
Define download character 1 STAR 1 < ESC > * 1 nl ~2
Copy ROM to download
m0 ml...mIl
IBM <ESC> “&” CHR$(O)
nl n2 m0 ml...mll
STAR < ESC > “*” 0
IBM <ESC> “:” 0 0 0
Download characters ON
Download characters OFF
STAR <ESC> “$” 1
IBM -=ESC> “Of&” 1 0
STAR < ESC > “$” 0’
IBM < ESC > “%” 0 0
n Connecting characters
As we noted earlier, it’s possible to connect proportional width
characters. This can be useful for creating logos or other char-
acters which are larger than one normal character. It also makes
it possible to create connecting scripts, like handwritng. The trick
to this is to specify the width in the attribute byte to be exactly
the same as the number of columns of dots that the character
(or partial character) occupies. And, if you change the vertical
spacing to 7/72” (use the < ESC > “1” command), you can make
characters connect vertically. This allows you to make very large
characters indeed!
97