Chapter 5 - Bit-Mapped Text

The TMS340 Graphics Library supports the display of text in a variety of styles 
and sizes. At the low end, block fonts emulate the cell-mapped text produced by 
a character-ROM display. For desktop publishing applications, proportionally 
spaced WYSIWYG (what you see is what you get) text allows you to preview a page 
on the screen as it will appear when typeset.

Table 5-1 lists the text-related functions available in both the Core and 
Extended Primitives Libraries.
Refer to the individual descriptions of these functions
in Chapters 6 and 7 for details.

Table 5-1. Text-Related Functions

Function		Description			Type

delete_font		Remove a font from the font table	Ext
get_fontinfo		Return font physical information	Core
get_textattr		Return text rendering attributes	Ext
get_text_xy		Get text x-y position			Core
init_text		Initialize text drawing environment	Core
install_font		Install font into font table		Ext
select_font		Select an installed font for use	Ext
set_textattr		Set text rendering attributes		Ext
set_text_xy		Set text x-y position			Core
text_out		Render an ASCII string			Core
text_outp		Output text at current x-y position	Core
text_width		Return the width of an ASCII string	Ext

A font is a complete assortment of characters of a particular size and style 
(or typeface). The library currently supports fonts represented in bit-mapped 
form, although other representations (stroke and outline font formats, for 
example) may be supported in the future.

A bit-mapped representation of a font encodes the shape of each character in a 
bit map-a two-dimensional array of bits representing a rectangular image. The 
1s in the bit map represent the body of the character, while the 0s represent 
the background. The character shape is drawn to the screen by expanding each 
bit to the pixel depth of the screen:  1s are expanded to the foreground color, 
and 0s to the background color.

5.1 Bit-Mapped Font Parameters

Figure 5-1 illustrates the parameters that characterize a bit-mapped character 
shape. These parameters are defined as follows:

Base Line	The base line is an invisible reference line corresponding to 
the bottom of the characters, not including the descenders.

Ascent	The ascent  is measured as the number of vertical pixels from the base 
line to the top of the highest character (or more precisely, the top of the 
font rectangle, defined below). For example, in , the ascent is 16 pixels.

Descent	The descent is measured as the number of vertical pixels from the base 
line to the bottom of the lowest descender (or more precisely, the bottom of 
the font rectangle, defined below). For example, in , the descent is six 
pixels.

Leading	The leading is the number of vertical pixels between the descent line 
of one row of characters and the ascent line of the row just beneath it.  For 
example, in , the leading is five pixels.  The term leading derives from the 
time that typesetters used strips of lead to separate rows of characters in 
their printing presses.

Character Origin	The character origin is the point in the character 
whose coordinates designate the position of the character when it is drawn on 
the screen. The position of the origin relative to the body of the character 
depends on the state of the library's text alignment attribute. In the default 
state, the origin lies at the top left corner of the character. Alternately, as 
shown in , the origin can be located at the intersection of the base line with 
the left edge of the character, excluding any portion of the character which 
kerns to the left of the origin (as in the case of the descender of the 
character j in the figure). The base line origin is useful when multiple fonts 
are mixed in a single line of text, in which case the base lines for all 
characters should coincide.

Character Height	The character height is the sum of the ascent, the 
descent, and the leading.  For example, in , the character height is 16+6+5=27 
pixels. Character height is constant for all characters within a particular 
font but can vary between fonts.

Character Width	The character width is the distance from the character origin 
of the current character to the origin of the next character to its right.  
This width typically spans both the character image and the space separating 
the character image from the next character.  The character width can vary from 
one character to the next within a font.  For example, in , the widths of the 
characters A and  j are 18 and 6, respectively.

Character Rectangle	The character rectangle is a rectangle enclosing the 
character image. This image corresponds to the portion of the font data 
structure containing the bit map for the character shape.  The sides of the 
rectangle are defined by the image width and the font height, as defined below. 


For example, in , the character rectangle for the letter A is 16 pixels wide 
by 22 pixels high.

Font Rectangle	The font rectangle is the largest character rectangle within 
the font.

Font Height	The font height  is the height of the font rectangle. It is the 
sum of the ascent and descent parameters for the font.

Character Offset	The character offset is the horizontal displacement 
from the character origin to the left edge of character image.  If the offset 
is negative, the character image extends to the left of the character origin. 
For example, in , the descender of the lower-case j has an offset of -2.  In 
the case of an especially narrow character, such as a lower-case i or l, a 
positive offset may be required to position the left edge of the character 
image to the right of the origin.

Image Width	The image width is the width of the bit map within the font 
data structure that contains the shape of the character. This width may not 
include the blank space separating the character from the characters to its 
left or right when it is displayed.  In general, the image width varies from 
character to character within a font.  For example, in , the image widths of 
the characters A and j are 16 and 5, respectively.

Figure 5-1.	Bit-Mapped Font Attributes

5.2 Font Data Structure

The data structure for bit-mapped fonts that is used within both TIGA and the 
TMS340 Graphics Library is shown in . The header portion is fixed in size and 
specifies font parameters such as ascent, descent, and so on.  The  other  
three  parts-the pattern,  location,  and   offset/width tables-vary in size 
from one font to the next. The pattern table is a bit map containing the shapes 
of the characters in the font. Each entry in the location table is an offset 
indicating where in the bit map the shape of a particular character is located. 

The offset/width table gives the character width, as defined above, for each 
character and also the character offset from the origin to the left edge of the 
character image. In general, the larger a particular font appears on the 
screen, the larger the data structure must be to represent it.

Figure 5-2. Data Structure for Bit-Mapped Fonts

5.2.1 Font Header Information

The header information is organized according to the FONT structure defined in 
the following C typedef declaration:

typedef struct
{
    unsigned short magic;   /* bit-mapped font code 0x8040 */
    long length;	/* length of font data in bytes */
    char facename[30];	/* ASCII string name of font */
    short default; 	/* default for missing character */
    short first;	/* first ASCII code in font */
    short last; 	/* last ASCII code in font */
    short maxwide;	/* maximum character width */
    short maxkern;	/* maximum kerning amount */
    short charwide;	/* block font character width */
    short avgwide;	/* average character width */
    short charhigh;	/* character height */
    short ascent;	/* ascent of highest character */
    short descent;	/* longest descender */
    short leading;	/* separation between text rows */
    long rowpitch;	/* bit pitch of pattern table */
    long oPatnTbl;	/* offset to pattern table */
    long oLocTbl;	/* offset to location table */
    long oOwTbl;	/* offset to offset/width table */
} FONT;

The fields of the FONT struct (font structure header) are defined as follows:

1) magic

This field contains the value 0x8040, a code that designates the FONT structure 
for bit-mapped fonts above.  If alternate data structures for stroke or outline 
fonts are supported in the future, these will be distinguished by alternate 
magic codes.

The magic field consists of three parts:

- bits 0-1: data structure sub-type

- bits 2-7: data structure type

- bits 8-15: revision identifier

For the bit-mapped font data structure described here, the magic  identifier is 
constructed as follows:

- bits 0-1: 0 (FONT subtype = bit map)

- bits 2-7: 1 (FONT)

- bits 8-15: 0x80 (Indicates font format revision 1.x.)

2) length

The length of the entire font specified in 8-bit bytes. The length includes the 
entire data structure from the start of the magic field to the end of the 
offset/width table. The length parameter provides a convenient means for a 
program to determine how much memory to allocate for a font without having to 
analyze the internal details of the font data structure.

3) facename

A 30-character string consisting of a font name of up to 29 characters, and a 
terminating null character.  Some examples: "TI Roman", "TI Helvetica".

4) default

The ASCII code of the default character to be used in place of a character 
missing from the font. When a missing character is encountered in an ASCII 
string, the default character is printed in its place. The default character 
must be implemented in the font. Typical choices for a default character 
include a space (ASCII code 32), period (46), and question mark (63). A value 
of 0 for the default field is a special case indicating that nothing is to be 
printed in place of the missing character; it is simply ignored.

A missing character is any character that is not implemented in the font. By 
definition, all characters with ASCII codes in the ranges [1...first-1] and 
[last+1...255] are missing. (Note that ASCII code 0, or null, is reserved for 
use as a string terminator.) If a particular character in the range 
[first...last] is missing from the font, the offset/width table entry for the 
character is -1.

5) first

The ASCII code of the first character implemented in the font. For example, 
ASCII character codes 0 through 31 may represent control functions that are 
nonprinting. If the first implemented character in a font is a space, with an 
ASCII code of 32, then the first field is set to 32.

6) last

ASCII code of last character implemented in font.

7) maxwide

The maximum character width.  This is the width of the widest character in the 
font.

8) maxkern

The maximum amount by which any character in the font kerns, expressed a 
positive horizontal distance measured in pixels. The descender of a character 
such as a lower-case j may extend or kern beneath the character to its left.  
The amount of kerning is measured as the offset from the character origin to 
the left edge of the character image.  For example, if the maximum amount any 
character in the font kerns to the left of the origin is 3, the maxkern value 
is specified as +3.

9) charwide

The fixed character width in the case of a block font. For a proportionally 
spaced font, this field is set to 0, in which case the width for each 
individual character appears as an entry in the offset/width table.

10) avgwide

Average width of all characters implemented in the font. This value is the sum 
of all the character widths divided by the number of characters in the font. 
This parameter is useful for selecting a best-fit font at a particular target 
display resolution.

11) charhigh

The height of the font rectangle. This is the sum of the ascent and descent  
fields, and is a constant across all characters within a particular font.

12) ascent

The distance in pixels from the base line to top of the highest character, 
specified as a positive number.

13) descent

The distance in pixels from base line to bottom of lowest descender, specified 
as a positive number.

14) leading

The vertical spacing in pixels from the bottom of one line of text to the top 
of the next line of text, specified as a positive number.

15) rowpitch

The pitch per row of the pattern table. This is the difference in bit addresses 
from the start of one row in the pattern table bit map to the start of the next 
row.  TMS340 graphics processor addresses point to bit boundaries in memory, 
and each row must start on an even 16-bit word boundary; hence, the rowpitch 
value is always a multiple of 16.

16) oPatnTbl

The pattern table offset.  This is the difference in bit addresses from the 
start of the FONT structure (magic  field) to the start of the pattern table. 
This field is expressed as a positive value that is an even multiple of 16 (the 
word size).

17) oLocTbl

The location table offset.  This is the difference in bit addresses from the 
start of the FONT structure (magic field) to the start of the location table. 
This field is expressed as a positive value that is an even multiple of 16 (the 
word size).

18) oOwTbl

The offset/width table offset. This  is  the difference in bit addresses from  
the  start of the FONT structure (magic field)  to the start of the  
offset/width table. This field is expressed as a positive value that is an even 
multiple of 16 (the word size).

5.2.2 Font Pattern Table

The font pattern table is a two-dimensional bit map organized as shown in .  
The table contains the character images for all characters implemented in the 
font, concatenated in order from left to right.  The width of the table (number 
of bits per row) is the sum of the individual character widths and must be less 
than or equal to the pitch specified in the rowpitch field of the FONT 
structure.  The number of rows is equal to the value contained in the charhigh 
field.  The total number of bits in the bit map is obtained by multiplying 
rowpitch by charhigh.  The base address of the table is the address of the bit 
located in the top left corner of the bit map. The top row of the bit map 
contains the top row of each character shape, stored in left-to-right order;  
the second row from the top contains the second row of each character shape, 
and so on.

Figure 5-3. Bit-Mapped Font Representation

5.2.3 Location Table

The location table specifies the locations of the images for the individual 
characters in the pattern table. Each location table entry is 16 bits.  One 
entry is provided for each character code  in  the  range [first...last].   The 
table contains  one  additional  entry,  and  the  total  number  of  entries  
is  (last - first + 2).

The table entry for each character is the bit displacement from the base 
address of the pattern table (the address of the leftmost bit in the top row of 
the bit map in ) to the top left corner of the corresponding character image.  
The image width for a particular image is just the difference between the 
location table entries for that character and for the character that 
immediately follows it.  The location table contains entries for all character 
codes from first to last, and an additional entry that is used to calculate the 
image width of the last character.  The final location table entry is the 
offset of the first bit past the right edge of the top row in .

If a particular ASCII character n in the range [first...last ] is missing from 
the font, the image width is 0.  In other words, location table entries n-first 
and n-first+1 contain the same offset value.

5.2.4 Offset/Width Table

The offset/width table contains the character offset and character width for 
all characters in the range [first...last ] that are implemented in the font.  
(Refer to the definitions of the terms character offset and character width 
earlier in this section.)  Each offset/width table entry is 16 bits.  One entry 
is provided for each character code in the range [first...last ].  The table 
also contains one final entry that is always set to -1, and the total number of 
entries is (last - first + 2).

The table entry for each character implemented in the font is an 8-bit 
character offset concatenated with an 8-bit character width.  The offset is in 
the 8 MSBs of the word, and the width is in the 8 LSBs.  If a particular ASCII 
character in the range [first...last ] is missing from the font, the 
corresponding 16-bit entry is set to -1.

5.3 Proportionally Spaced Versus Block Fonts

Two varieties of fonts are distinguished by the value of the charwide field in 
FONT structure.  A proportionally spaced font is identified by a charwide value 
of 0, while a nonzero charwide value identifies a block font. The system font, 
which is permanently installed in the font table as font number 0, is always a 
block font. The installable fonts may be either proportionally spaced or block 
fonts.

In the case of a proportionally spaced font, the character width is permitted 
to vary from one character to the next.  The character image may cover only a 
portion of the character width.  In other words, the character image does not 
necessarily overwrite the spaces separating successive characters in a string 
displayed on the screen.  To replace an old line of text on the screen with a 
new line, the old line typically must be erased completely.  If this is not 
done, portions of the old characters may be visible between the new characters. 


 Also, the space (ASCII code 32) character causes the character pointer to move 
to the right on the screen but may not cause any pixels to actually be 
modified.  Using space characters from a proportionally spaced font to erase a 
line of text is generally an ineffective technique.

In the case of a block font, on the other hand, the character width is uniform 
across all characters implemented in the font. The character image completely 
spans the character width, even in the case of a space character.  Writing a 
string of characters, which may include spaces, to the screen completely 
overwrites an old line of characters lying beneath it.

This discussion assumes that the pixel-processing replace operation is in 
effect and that transparency is disabled.  Different effects can be achieved by 
altering pixel processing and transparency, as described in the user's guides 
for the TMS34010 and TMS34020.  The replace operation with transparency enabled 
may be particularly useful in applications requiring proportionally spaced 
text.

5.4 Font Table 

The system font, permanently installed in the library's font table as font 
number 0, is always a block font. Additional fonts can be installed in the 
table and can be any combination of proportionally spaced and block fonts.  The 
installable fonts are assigned table indices 1, 2, and so on by the library as 
they are installed, and the fonts are thereafter identified by these indices 
during text operations.

The font table is simply an array of pointers to the data structures for the 
installed fonts.  The maximum number of entries available in the font table is 
fixed for a particular system but may vary from one system to another. In all 
systems, the font table will be large enough to contain at least 16 installed 
fonts (in addition to the permanently installed system font). An attempt to 
install an additional font in a table that is already full will return an error 
code.  Refer to the description of the install_font function in Chapter 7
for details.

5.5 Text Attributes

The library provides application programs with direct control over three text 
attributes:

1) Text Alignment

The position of the character origin (see definition in Section ) for each 
character is located at the base line or top edge of the character.  The 
default is the top edge.

2) Additional Intercharacter Spacing

An amount by which the default character width (see definition) specified 
within the font data structure is increased.  The default is 0.

3) Intercharacter Gaps

The gaps between horizontally adjacent characters, which can be automatically 
filled with the background color. When this attribute is enabled, one line of 
proportionally spaced text can be cleanly written directly on top of another 
without first erasing the text underneath. When the attribute is disabled, only 
the rectangular area immediately surrounding each character image (see 
definition of image width) is filled with the background color. By default, the 
filling of intercharacter gaps is disabled.

Only proportionally spaced fonts are affected by the state of these attributes. 


 In the case of a block font, the text alignment is always to the top left 
corner of each character, the intercharacter spacing is fixed at the charwide 
value defined in the font structure, and intercharacter gaps are always filled.

5.6 Available Fonts

The TMS340 Graphics Library includes a bit-mapped font database consisting of 
20 typefaces available in a variety of sizes. The size of a font is specified 
in terms of the height in pixels of the font rectangle; that is, the font's 
size is given as the sum of its ascent and descent parameters. The available 
fonts are summarized in Table 5-2.

Several of the fonts in  are labeled as monospaced (represented as an M  in the 
rightmost column) rather than proportionally spaced. A monospaced font is 
characterized by uniform character width across the font but is otherwise to be 
distinguished from the block fonts described previously. The monospaced fonts 
in  use the same font data structure as the proportionally spaced fonts. In 
particular, the charwide field is 0, and the structure includes an offset/width 
table.

Table 5-2. Font Database Summary

Font Name		Font Size in Pixels	Type*

Arrows			25, 31, 		M

Austin			11, 15, 20, 25, 38, 50	P

Corpus Christi		15, 16, 26, 29, 49	M

Devonshire		23, 28, 41		P

Fargo			22, 26, 38		P

Galveston		12, 15, 21, 22, 28, 42	P

Houston			14, 17, 20, 26, 38, 50	P

Luckenbach		07			P

Math			16, 19, 24, 32, 44, 64	P

San Antonio		22, 28, 40		P

System			16, 24			B

Tampa			18, 22, 30, 42		P

TI Art Nouveau		22, 28, 41, 54, 82	P

TI Bauhaus		11, 14, 17, 19, 22, 24, 28, 43, 56	P

TI Cloister		27, 40			P

TI Dom Casual		23, 25, 30, 42, 46	P

TI Helvetica	11, 15, 18, 20, 22, 24, 28, 32, 36, 42, 54, 82	P

TI Park Avenue	15, 18, 21, 23, 25, 28, 43, 54	P

TI Typewriter Elite	11, 14, 16, 18, 20, 22, 26, 38		M

TI Roman	11, 14, 16, 18, 20, 22, 26, 30, 33, 38, 52, 78,	P


5.6.1 Installable Font Names

The application program must be linked with the fonts that are used by the 
application.  Within the program, each font is referred to by an external name 
that uniquely identifies it.  The external names for the available fonts are 
presented in .  These names refer to the fonts from a C program.  To refer to 
the fonts from a TMS340 assembly language program, precede each font name with 
an underscore character.

Table 5-3. Installable Font Names

Font Name				External Name

Arrows font sizes 25 and 31:		arrows25, arrows31

Austin font sizes 11 through 50:	austin11, austin15, austin20, austin25, 
					austin38, austin50

Corpus Christi font sizes 15 through 49:corpus15, corpus16, corpus26,
					corpus29, corpus49

Devonshire font sizes 23 through 41:	devons23, devons28, devons41

Fargo font sizes 22 through 38: 	fargo22, fargo26, fargo38

Galveston font sizes 12 through 42:	galves12, galves15, galves21, galves22, 
					galves28, galves42

Houston font sizes 14 through 50:	houstn14, houstn17, houstn20, houstn26, 
					houstn38, houstn50

Luckenbach font size 7: 		lucken07

Math font sizes 16 through 64:	math16, math19, math24, math32, math44, math64

San Antonio font sizes 22 through 40:	sanant22, sanant28, sanant40

System font sizes 16 and 24		sys16, sys24

Tampa font sizes 18 through 42: 	tampa18, tampa22, tampa30, tampa42

TI Art Nouveau font sizes 22 through 82: ti_art22, ti_art28, ti_art41,
					ti_art54, ti_art82

TI Bauhaus font sizes 11 through 56:	ti_bau11, ti_bau14, ti_bau17, ti_bau19, 
					ti_bau22,
					ti_bau24, ti_bau28, ti_bau43, ti_bau56

TI Cloister font sizes 27 and 40:	ti_clo27, ti_clo40

TI Dom Casual font sizes 23 through 46:	ti_dom23, ti_dom25, ti_dom30, 
					ti_dom42, ti_dom46

TI Helvetica font sizes 11 through 82:	ti_hel11, ti_hel15, ti_hel18, ti_hel20, 
					ti_hel22, ti_hel24, ti_hel28, ti_hel32,
					ti_hel36, ti_hel42, ti_hel54, ti_hel82

TI Park Avenue font sizes 15 through 54:  ti_prk15, ti_prk18,
					  ti_prk21, ti_prk23, ti_prk25,
					  ti_prk28, ti_prk43, ti_prk54

TI Roman font sizes 11 through 78:	ti_rom11, ti_rom14, ti_rom16, ti_rom18,
					ti_rom20, ti_rom22, ti_rom26, ti_rom30,
					ti_rom33, ti_rom38, ti_rom52, ti_rom78

TI Typewriter Elite font sizes 11 through 38:	ti_typ11, ti_typ14, ti_typ16, 
			      ti_typ18, ti_typ20, ti_typ22, ti_typ26, ti_typ38

The System font sizes 16 and 24 appearing near the middle of  are the only two 
block fonts. One of these is typically designated as the system font  (the 
permanently installed font number 0) in a particular graphics mode. These fonts 
can also be installed in the font table in the same manner as the other fonts 
in Table 5-2.

Example:  
The following example demonstrates how to access an external FONT structure 
from a C program. The global name of the TI Helvetica size 22 font, ti_hel22, 
is declared as an external structure of type FONT. (The reference must be 
resolved by linking the font with the program.) The font pointer is passed to 
the font table via the install_font function, and the select_font function is 
used to select the font. Finally, the text_out function is used to print the 
string "hello, world" to the screen in the selected font.

-include <gsptypes.h>	  /* defines FONT structure */

extern FONT ti_hel22;

main()
{
    short n;

    set_config(0, !0);
    clear_screen(-1);

    n = install_font(&ti_hel22);
    select_font(n);
    text_out(10, 10, "hello, world");
}

5.6.2 Alphabetical Listing of Fonts

Each of the fonts included with the library is described briefly in the 
remainder of this section.  Each typeface is presented separately, along with 
the list of available font sizes, spacing, and recommendations regarding the 
use of the face. Illustrations of each font are also presented at approximately 
true scale to indicate the relative dimensions of the various font sizes 
available for each typeface.  The actual physical size of a font will vary, 
depending on the dimensions of the display device.

Font Name:  Arrows

Spacing:  Monospace

Derivation:  Original character set, no typesetter's equivalent

Description:  Graphic accents, arrows, and symbols suitable for use in memos, 
	      transparencies, posters, flyers, and newsletters.

Sizes:  25 and 31 pixels

Font Name: Austin

Spacing:  Proportional

Derivation:  Original typeface, no typesetter's equivalent

Description:  An upright, bold-weight, sans-serif typeface. Suited to many 
purposes. Smaller sizes serve well for general usage as body text or headings, 
while larger sizes are ideal for headlines and titles.

Sizes:  11, 15, 20, 25, 38, and 50 pixels

Font Name: Corpus Christi

Spacing:  Monospace

Derivation:  Original character set, no typesetter's equivalent

Description:  Designed as a terminal display font. 16-pixel size renders a 
standard 80-column 
display at 640 x 480 resolution. 29-pixel renders a 40-column display at the 
same resolution. Light- to bold-weight, depending on size.

Sizes:  15, 16, 26, 29, 49 pixels

Font Name: Devonshire

Spacing:  Proportional

Derivation:  Original character set, no typesetter's equivalent

Description:  A light-weight, stylized serif typeface. Elongated ascenders and 
descenders distinguish this font. Suitable for invitations, newsletters, 
flyers, or anything requiring a formal appearance.

Sizes:  23, 28, and 41 pixels

Font Name: Fargo

Spacing:  Proportional

Derivation:  Original character set, no typesetter's equivalent

Description:  An upright, medium-weight serif face. Small sizes suited for 
diagrams and labels. Larger sizes are well suited to headlines and posters.

Sizes:  22, 26, and 38 pixels

Font Name: Galveston

Spacing:  Proportional

Derivation:  Original character set, no typesetter's equivalent

Description:  An upright, bold-weight serif face. Suited to many purposes. 
Smaller sizes serve well for general usage as body text or headings, 
while larger sizes are ideal for headlines and titles.

Sizes:  12, 15, 21, 22, 28, and 42 pixels

Font Name: Houston

Spacing:  Proportional

Derivation:  Original character set, no typesetter's equivalent

Description:  An upright, light-to-medium-weight serif typeface. Suited to many 
purposes. Smaller sizes serve well for general usage as body text or headings 
while larger sizes are ideal for headlines and titles.

Sizes:  14, 17, 20, 26, 38, and 50 pixels

Font Name: Luckenbach

Spacing:  Proportional

Derivation:  Origin character set, no typesetter's equivalent

Description:  Designed as the smallest legible font at 640 x 480 resolution. 
Useful for diagrams or any other task requiring very small text.

Sizes:  7 pixels

Font Name: Math

Spacing:  Proportional

Derivation:  Original character set, no typesetter's equivalent

Description:  Math and Greek symbols, including subscripts and superscripts. 
Light- to medium-weight, depending on size.

Sizes:  16, 19, 24, 32, 44, and 64 pixels

Font Name: San Antonio

Spacing:  Proportional

Derivation:  Original character set, no typesetter's equivalent

Description:  A serif typeface with hollow (commonly called in-line) uprights. 
Distinctive and semiformal in appearance, ideal for memos, newsletters, flyers, 
and  headings.

Sizes:  22, 28, and 40 pixels

Font Name: System

Spacing:  Monospaced (block font)

Derivation:  Original character set, no typesetter's equivalent

Description:  Designed to emulate character-ROM fonts displayed by text 
terminals. The 
smaller size is suitable for low- to medium-resolution displays. The larger 
size is suitable for high-resolution displays of 1024-by-768 and above. The 
characters defined within this font are compatible with the IBM EGA/VGA 
extended character set.

Sizes:  16 and 24 pixels

Font Name: Tampa

Spacing:  Proportional

Derivation:  Original character set, no typesetter's equivalent

Description:  A bold- to medium-weight serif typeface. Small sizes suited for 
diagrams and 
labels. Larger sizes are well suited to headlines and posters.

Sizes:  18, 22, 30, and 42 pixels

Font Name: TI Art Nouveau

Spacing:  Proportional

Derivation:  Art Nouveau

Description:  A bold-weight, stylized serif typeface. Very ornate; perfect for 
flyers, posters, and newsletters.

Sizes:  22, 28, 41, 54, and 82 pixels

Font Name: TI Bauhaus

Spacing:  Proportional

Derivation:  Bauhaus Medium

Description:  A medium-weight sans-serif typeface. General purpose font suited 
to all uses. Commonly seen on business cards, letterheads, magazines, and other
publications.

Sizes:  11, 14, 17, 19, 22, 24, 28, 43, 56 pixels

Font Name: TI Cloister

Spacing:  Proportional

Derivation:  Cloister Black

Description:  A highly stylized, bold-weight Olde English typeface. Best suited 
for invitations, posters, and flyers. Very decorative.

Sizes:  27 and 40 pixels

Font Name: TI Helvetica

Spacing:  Proportional

Derivation:  Dom Casual

Description:  A bold-weight semi-cursive typeface. Distinctive and informal. 
Ideal for newsletters, posters, and flyers.

Sizes:  23, 25, 30, 42, and 46 pixels

Font Name: TI Park Avenue

Spacing:  Proportional

Derivation:  Helvetica

Description:  A light-weight sans-serif typeface. Patterned after one of the 
most widely used 
typefaces in the United States. Appropriate for use in all business-related 
applications, particularly correspondence and newsletters.

Sizes:  11, 15, 18, 20, 22, 24, 28, 32,  36, 42, 54, and 82 pixels

Font Name: TI Park Avenue

Spacing:  Proportional

Derivation:  Park Avenue/Zapf Chancery

Description:  A medium-weight, ornate cursive typeface. Suited to many 
purposes. Commonly 
seen on wedding invitations but appropriate wherever a formal font is desired.

Sizes:  15, 18, 21, 23, 25, 28, 43, and 54 pixels

Font Name: TI Roman

Spacing:  Proportional

Derivation:  Times-Roman

Description:  A light- to medium-weight serif typeface. Patterned after the 
most widely used 
typeface in the United States and most English speaking countries. Appropriate 
for use in all business-related applications, particularly correspondence and 
newsletters.

Sizes:  11, 14, 16, 18, 20, 22, 26, 30, 33, 38, 52, and 78 pixels

Font Name: TI Typewriter Elite

Spacing:  Monospace

Derivation:  Typewriter Elite

Description:  A light-weight serif typeface. Small sizes suited to 
correspondence and newsletters. Larger sizes perfect for labels and headlines. 

Sizes:  11, 14, 16, 18, 20, 22, 26, and 38 pixels

