To create your own fonts using BitFontEdit you must first "draw" the characters (see the "A" example below) in a pattern file using any convenient (and powerful) editor or word processor.
...*... ..*.*.. This is an example of a character (A) which you might .*...*. "draw" in a pattern file. It is really just a drawing of a *.....* bitmap where the *'s might be ones and the dots zeros. You ******* can draw this rapidly if you start out with "blank" cells *.....* of all dots. Your editor or word processor may permit you *.....* to define "macros", "abbreviations" or "keyboard scripts" *.....* so that just pressing a key will draw a short row or *.....* column of *'s. Another key may be programmed to replace *.....* a dot with a * (and conversely). The * symbol is known ....... as a pixel, while the dots represent blank pixels. .......
Note that the appearance of the A when displayed or printed on a device will not be as narrow as the A shown above since the *'s on a vertical line may be about as close together as the *'s on a horizontal line when the character prints or displays. This pattern may be called a "dot-matrix" or a "character-matrix". The "dots" in this dot-matrix are represented by *'s (and not by the dots used for the background). Since a "glyph" is the shape of a character, the char- matrix is also a "glyph".
As an alternative format, you may use blanks for the background instead of dots and then use vertical bars | to separate characters (instead of white space). BitFontEdit will sense which format your are using and behave accordingly. Which method should you use? For small font, a blank background looks better but the dots show where * pixels could be placed for a larger font. A pattern file must use only one of these two methods (Don't mix methods.).
You should first look at an actual pattern file. It might use the suffix (extension) .pat. A pattern file is a "drawing" of many characters such as the large A (a dot-matrix or bitmap character) shown previously. The file begins with optional comment lines, each starting with #. The next two lines are file-header lines for the entire file. The first file_header line must contain three ASCII integers in this order: 1. cell width (in pixels) 2. cell height (in pixels) 3. number of character matrices per row (often 8 or less). Any non-digit characters or words are permitted between these characters. Example: Cell width = 7 cells. Cell height = 12. 8 chars/band.
The cell size is the size of a rectangular pattern in the pattern file. Index origin is 1 when communicating with the user but is 0 in most of the source code since arrays in the C language have index origin = 0. Don't confuse cell sizes used for this program with the larger cell sizes shown in some manuals which include regions where * pixels are normally not permitted. Such "forbidden" regions enforce the separation of adjacent characters on the CRT.
The second line should be an important comment which should identify the font, its author, the date, etc. Both of these header lines will be displayed on the CRT each time you generate soft-font. These 2 lines are put at the end of the soft-font file of code if it will not foul up the downloading of it.
Next in the pattern file are thick-rows of dot-matrix characters (= * patterns or character bitmaps). Each such thick-row is called a "band" and will contain perhaps 8 characters for small size dot-matrices. The exact number of characters/band (could be 8) is specified in the first comment line the C program. The last band may contain a smaller number of characters.
Every band must be preceded by a horizontal band-header line. These band header lines should contain the character numbers etc. but may contain anything (or even be a blank line). When blank pixel are represented by dots, each dot-matrix character is separated from the adjacent one to its right (or left) by one or more vertical "columns" of white space. When the background (= blank pixels) is represented by spaces (blank), vertical bars: | are used (no white space allowed except for the spaces within a character matrix).
For loading just a few characters you may want to put the soft-font directly into the shell script (= batch file) which is used to install them. In this case (in DOS or Unix-like systems) you may "echo" the soft-font to the terminal or printer using the > for redirection.
To get soft-font you must run the font generator program (pat2sf) on the pattern file. This will create a soft-font file ready to download. In some cases all you need to do then is to copy this soft-font file to the printer or terminal and your new font is installed. In most cases however, there are other things to do in order to install the soft-font such as setting up the printer or terminal in an appropriate way and assigning the new font to a certain font bank. There are various ways of doing this. One is to edit the soft-font file and add the additional codes. In other cases you may decide to to write a shell script (= batch file) to install the font, one line of which will copy the soft-font file contents to the printer or terminal. An example Unix-like script for VT220 terminals may be found in the towards the end of this document.
If you want to understand how the patterns (= glyphs) are encoded into soft-font you must either study either certain printer or terminal manuals or study the Font_Langs document (in HTML). However, there are often prefix (header) and suffix (trailer) codes that need to be added to the encoding of the patterns. It's often feasible to put the header and trailer for the entire soft-font code into a shell script (Unix) or batch file (PC). If each character encoding needs a header and/or trailer, it should be added automatically by this software.