Topic : The ATARI Compendium
Author : Scott Sanders / JAY Software
Version : 1.25 (20/6/2003)
Subject : Documentation
Nodes : 1117
Index Size : 32614
HCP-Version : 6
Compiled on : Atari
@charset : UTF-8
@lang : en
@default :
@help : %About
@options : +g -i -t4 +y +z
@width : 100
View Ref-FileLine-A Font HeadersRaster system and GDOS fonts are linked to form a list of font headers
which contain the information needed to render text. Outline text
generated by FSM is inaccessible in this manner.
Each monospaced font contains a font header, character and horizonatal
offset table, and font form. All data types are in "Little Endian" (Intel
format) and as such must be byte-swapped before use.
The font form is a raster form with each character laid side-by-side on
the horizontal plane. The first character is WORD aligned but padding
within the form only occurs at the end of a scanline to force the next
scanline to be WORD aligned.
Each font header contains a pointer to the next font in the list. The
list is terminated by a NULL pointer. The font header format is as
follows:
Name Offset Type Contents
font_id 0 WORD Font ID number (must be unique).
point 2 WORD Point size of font.
name 4 32 BYTEs ASCII Name of font.
first_ade 36 UWORD First ASCII character in font.
last_ade 38 UWORD Last ASCII character in font.
top 40 UWORD Distance from the top line of the font
to the baseline.
ascent 42 UWORD Distance from the ascent line of the
font to the baseline.
half 44 UWORD Distance from the half line of the
font to the baseline.
descent 46 UWORD Distance from the descent line of the
font to the baseline.
bottom 48 UWORD Distance from the bottom line of the
font to the baseline.
max_char_width 50 UWORD Width of the widest character in the
font.
max_cell_width 52 UWORD Width of the widest character cell in
the font.
left_offset 54 UWORD Amount character slants left when
skewed.
right_offset 56 UWORD Amount character slants right when
skewed.
thicken 58 UWORD Number of pixels to smear for
thickening.
ul_size 60 UWORD Size of an appropriate underline for
the font.
lighten 62 UWORD Mask for character lightening.
skew 64 UWORD Mask for character skewing.
flags 66 UWORD Font type flags.
hor_table 68 LONG Pointer to the horizontal offset
table. The horizontal offset table is
an array of bytes with one entry per
character denoting the pixel offset to
the character.
off_table 72 LONG Pointer to the character offset table.
The character offset table is an array
of WORDs with one entry per character
denoting the byte offset into the font
form of the character.
dat_table 76 LONG Pointer to the character data.
form_width 80 UWORD Width of the font form in bytes.
form_height 82 UWORD Height of the font form in pixels.
next_font 84 LONG Pointer to the next font in the list
(0=no more fonts).
reserved 88 UWORD Reserved for future use.