Our chart would hardly be complete with just a picture of a
chemist’s flask, so in Figure 9-9 we’ve made completed grids for
some other symbols: an automobile and a gun (quite a strange
mix of characters!). The information on the grids is now complete
(except for proportional width data-a more advanced topic we’ll
take up shortly).
n Download character definition command
You’ve read through a long explanation of download characters
and we haven’t even told you the command syntax yet! Now the
wait is over. This is the most complex command in the SG-lo/15
repertoire and now you’ve got the necessary knowledge to im-
plement it. Here it is:
(For STAR mode)
<ESC> "*" 1 nl n2 mQ ml m2 m3 m4 m5 m6 m7 m8
m9 mlQ ml1
(For IBM mode)
<ESC> "&" CHR$(@) nl n2 mQ ml m2 m3 m4 m5 m6
m7 m8 m9 mlQ ml1
Like the other SG-lo/l5 commands, it starts with an < ESC >
(CHR$(27)). The next character is an asterisk (*) (CHR$(42))
followed by 1, or an ampersand (&) (CHR$(38)) followed by a
CHR$(O).
nl and n2 are used to specify the ASCII values of the characters
you are defining. The reason that there are two bytes reserved
for this is that SG-lo/15 allows you to define many characters
with just a single command. nl is used to specify the beginning
of a range of characters to be defined; n2 specifies the end of the
range. For instance, if you wanted to change the appearance
of the numerals from 0 to 9 (which have ASCII codes 48 through
57) for the STAR mode, the command would begin with < ESC >
“*” CHR$(l) CHR$(48) CHR$(57)... Of course, you can also
define individual characters by making nl and n2 equal.
m0 is called the attribute byte, for it describes two attributes
of the character we have designed: descender data and propor-
tional width information. A byte consists of eigth bits. In the
attribute byte, the first (high order) bit is used for the descender
data, and the last seven bits are used for proportional widths.