- APPENDIX G -

# SPEEDO FONTS

#### The Speedo Font Header

This section provides detailed information about the contents of the buffer returned by the vqt_fontheader() call. First, here are some general notes about the values you will be using:

Character strings are only NULL terminated if they do not completely fill their assigned field.

All integers are signed (unless otherwise noted) and in Big-Endian format (most significant byte first).

Outline Resolution Units (ORUs) are the basic unit of measurement for Speedo characters. There are usually 1000 ORUs per Em square (width of the letter 'M') though you can check this value in the font header itself.

6-byte Transformation Parameters consist of a WORD Y offset (expressed in ORUs) followed by a UWORD X-scaling factor (expressed in units of 1/4096) and a similar UWORD Y-scaling factor (also expressed in units of 1/4096).

The following table details the information returned by the vqt_fontheader() function call:

Offset | Field | Meaning
--- | --- | ---
0 | Format Identifier | An 8-byte character string consisting of "D1.0" CR LF NULL NULL
8 | Font Size | A LONG specifying the size of the font file in bytes.
12 | Minimum Font Buffer Size | A LONG specifying the minimum size buffer required to load the non-image data of the font.
16 | Minimum Character Buffer Size | A WORD specifying the minimum size buffer required to hold the largest character in the font.
18 | Header Size | A WORD specifying the size of the font header.
20 | Font ID | A WORD containing the Bitstream font ID number.
22 | Font Version Number | A WORD containing the font revision number.
24 | Font Full Name | A 70-byte character string containing the full name of the font.
94 | Manufacturing Date | A 10-byte character string containing the manufacturing date of the font as DD Mon YY.
104 | Character Set Name | A 66-byte character string containing the name of the character set used for the font (ex: "Bitstream International Character Set").
170 | Vendor ID | A 2-byte character string identifying the manufacturer of the font. This is usually the first two characters in the font filename. Bitstream fonts use 'BX'.
172 | Character Set ID | A 2-byte character string identifying the character set used for this font. This is usually the second 2 characters in the font filename. The Bitstream International Character Set is '00'.
174 | Copyright Notice | A 78-byte character string containing the copyright notice for the font.
252 | Number of Character Indexes in Character Set | A WORD specifying the number of character indexes available in the font's character set. This does not necessarily mean that every index is actually used.
254 | Total Number of Character Indexes in Font | A WORD indicating the number of character indexes available in the font's character set in addition to any supplementary characters needed to create compound characters.
256 | Index of First Character | A WORD containing the first available character in a font.
258 | Number of Kerning Tracks | A WORD specifying the total number of kerning tracks.
260 | Number of Kerning Pairs | A WORD specifying the total number of kerning pairs.
262 | Font Flags | Bit 0 of this BYTE is set to indicate extended mode. Extended mode fonts require a higher quality of font rendering (such as chess pieces). If Bit 0 is clear, the font is in Compact mode (the default). Bits 1-7 are currently reserved.
263 | Classification Flags | A BYTE value whose bits indicate the font classification as follows: Bit Meaning 0 Italic 1 Monospace 2 Serif 3 Display 4-7 Reserved
264 | Family Classification | A BYTE indicating the family classification of the font as follows: Value Meaning 0 Don't Care 1 Serif 2 Sans Serif 3 Monospace 4 Script 5 Decorative
265 | Font Form Classification | A BYTE classifying the width and weight of characters in the font as follows: Bits 0-3 Meaning 0-3 (Reserved) 4 Condensed 5 (Reserved for ¾ condensed) 6 Semi-Condensed 7 (Reserved for ¼ condensed) 8 Normal 9 (Reserved for ¾ expanded) 10 Semi-Expanded 11 (Reserved for ¼ expanded) 12 Expanded 13-15 (Reserved) Bits 4-7 Meaning 0 (Reserved) 1 Thin 2 Ultralight 3 Extralight 4 Light 5 Book 6 Normal 7 Medium 8 Semibold 9 Demibold 10 Bold 11 Extrabold 12 Ultrabold 13 Heavy 14 Black 15 (Reserved)
266 | Short Font Name | A 32-byte character string containing the abbreviation of the name of the Postscript compatible font.
298 | Short Face Name | A 16-byte character string containing the abbreviation of the typeface family name.
314 | Font Form | A 14-byte character string containing the font form classification (as above).
328 | Italic Angle | A WORD indicating the number of 1/256 degrees that characters are slanted clockwise.
330 | ORUs per Em | A WORD indicating the number of Outline Resolution Units (ORUs) per Em.
332 | Width of Word Space | A WORD value which expresses the width of a 'word space' (i.e. ASCII 32) in ORUs.
334 | Width of Em Space | A WORD value which expresses the width of Em space in ORUs (this is not always the same as the number of ORUs in the letter 'M').
336 | Width of En Space | A WORD value which expresses the width of En space in ORUs. This is always half the width of Em space (not the width of the letter 'N').
338 | Width of Thin Space | A WORD value which expresses the width of 'thin space' in ORUs. This is the width applied between two words and is normally the same as 'word space'.
340 | Width of Figure Space | A WORD value which expresses the width of 'figure space' in ORUs. This is the width of tabular characters in the font.
342 | XMIN (Min X coordinate in font) | A WORD indicating the minimum X coordinate used in the font.
344 | YMIN (Min Y coordinate in font) | A WORD indicating the minimum Y coordinate used in the font.
346 | XMAX (Max X coordinate in font) | A WORD indicating the maximum X coordinate used in the font.
348 | YMAX (Max Y coordinate in font) | A WORD indicating the maximum Y coordinate used in the font.
350 | Underline Position | A WORD value indicating the distance the center of an underline should be applied from the baseline of the font.
352 | Underline Thickness | A WORD value indicating the thickness an underline applied to this font should be (in ORUs).
354 | Small Caps | A 6-byte Transformation Parameter used for small capitals (eg: abcdefg).
360 | Display Superiors | A 6-byte Transformation Parameter used for display superiors (eg: $3 50).
366 | Footnote Superiors | A 6-byte Transformation Parameter used for footnote superiors (eg: see footnote 1).
372 | Alpha Superiors | A 6-byte Transformation Parameter used for alpha superiors (eg: S ra).
378 | Chemical Inferiors | A 6-byte Transformation Parameter used for chemical inferiors (eg: H 20).
384 | Small Numerators | A 6-byte Transformation Parameter used for small numerators (eg: ).
390 | Small Denominators | A 6-byte Transformation Parameter used for small denominators (see above).
396 | Medium Numerators | A 6-byte Transformation Parameter used for medium numerators (eg: ).
402 | Medium Denominators | A 6-byte Transformation Parameter used for medium denominators (see above).
408 | Large Numerators | A 6-byte Transformation Parameter used for large numerators (eg: ).
414 | Large Denominators | A 6-byte Transformation Parameter used for large denominators (see above).

More Appendix G - Speedo Character Map

Table of Contents | Index