Each char_info_word contains six fields packed
into four bytes as follows.

byte

description

first

width_index (8 bits)

second

height_index (4 bits) times 16,
plus depth_index (4 bits)

third

italic_index (6 bits) times 4,
plus tag (2 bits)

fourth

remainder (8 bits)

The tag field has four values that explain how to
interpret the remainder field.

tag

description

0

no_tag: means that remainder is unused.

1

lig_tag: means that this character has a
ligature/kerning program starting at
lig_kern[remainder].

2

list_tag: means that this character is
part of a chain of characters of ascending sizes,
and not the largest in the chain.
The remainder field gives the character code of
the next larger character.

3

ext_tag: means that this character code
represents an extensible character, i.e.,
a character that is built up of smaller pieces
so that it can be made arbitrarily large.
The pieces are specified in exten[remainder].