- 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: $350).
366
Footnote Superiors A 6-byte Transformation Parameter used for footnote superiors (eg: see footnote1).
372
Alpha Superiors A 6-byte Transformation Parameter used for alpha superiors (eg: Sra).
378
Chemical Inferiors A 6-byte Transformation Parameter used for chemical inferiors (eg: H20).
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