22
Font File Creation
Matrix Orbital graphic displays are capable of displaying text in a wide variety of styles customizable to
suit any project design. Font files alter the style of text and appearance of the display.
By default, a Matrix Orbital graphic display is loaded with a small filled font in slot one and a future bk bt
16 style in slot two. Both are available in the software download section at www.matrixorbital.ca. The
easiest way to create, add, or modify the fonts of any graphic display is through the MOGD# tool. This
provides a simple graphic interface that hides the more complex intricacies of the font file.
Manually created font files will have three parts: the file header, character table, and character data.
Table 19: Example
Font File Header
Maximum Width Character Height ASCII Start Value ASCII End Value
5
7
72
74
The font file header contains four bytes: First, the number of columns in the widest character; usually
‘w’, second, the pixel height of each character, and finally, the start and end values of the character
range. The range represents the values that must be sent to the display to trigger the characters to
appear on the screen. In the example, the decimal values corresponding to the lowercase letters ‘h’
through ‘j’ will be used resulting in the range shown.
Table 20: Example Character Table
MSB LSB Width
h
0
13
5
i
0
18
3
j
0
21
4
The character table contains information that allows the display to locate each individual character in a
mass of character data. Each character has three bytes; two indicating it’s offset in the character data
and one indicating its width. The offset takes into account the header and table bytes to point to the
first byte of the character data it references. The first byte of the file, maximum width, has an offset of
zero. The width byte of each character can be identical as in a fixed width font, or in our case, variable.
The character table will become clearer after analyzing the final part of the font file, character data.
Table 21: Character ‘h’
Bitmap
1
0 0 0 0
1
0 0 0 0
1
0
1
1
0
1 1
0 0
1
1
0 0 0
1
1
0 0 0
1
1
0 0 0
1
Table 22: Character ‘h’ Data
1
0 0 0 0
1
0 0
84
132
0 0
1
0
1 1
0
1
2D
45
1
0 0
1
1
0 0 0
98
152
1 1
0 0 0
1
1
0
C6
198
0 0
1
0 0 0 0 0
20
32