5. Available Fonts

5.1. Introduction

The UniFeatherBot uses the public domain Hershey Fonts fonts distributed on the USENET network. The Hershey Fonts were originally created by Dr. A. V. Hershey while working at the U. S. National Bureau of Standards.


The format of the Font data in this distribution was originally created by:

James Hurt
Cognition, Inc.
900 Technology Park Drive
Billerica, MA 01821

The fonts range from simple to complex and include many symbols. The standard UniFeatherBot does not have the movement accuracy to make all of the fonts practical. The more complex the font or the longer the message the more the movement errors will distort the text drawn.

5.2. Font file format

You do not have to understand the font file format in order to use the fonts in UniFeatherBot programs the library takes care of the details with the write function.

The font files begin with a 8 bit byte containing the number of characters in the front followed by a sequence of (little endian) 16 bit unsigned integers containing the file offset to the coordinate data for each of the characters in the font file. Fonts with 96 characters are in ASCII order for characters 0x20 though 0x7f. Other fonts have characters starting at 0x00.

The first byte of the coordinate data contains the number of x,y coordinates for the glyph. The second and third byte contain the coordinates for the left and right limits of the glyph. The following pairs of bytes are the x and y coordinates that make glyph. Like the original Hershey data each byte is offset by 0x52 (ascii ‘R’). A value of -50 for the x coordinate is used to indicate the pen should be raised for the next move.

5.3. Font Charts

5.3.1. astrol.fnt


5.3.2. cyrilc.fnt


5.3.3. gotheng.fnt


5.3.4. gothger.fnt


5.3.5. gothita.fnt


5.3.6. greekc.fnt


5.3.7. greekcs.fnt


5.3.8. greekp.fnt


5.3.9. greeks.fnt


5.3.10. italicc.fnt


5.3.11. italiccs.fnt


5.3.12. italict.fnt


5.3.13. japan.fnt


5.3.14. lowmat.fnt


5.3.15. marker.fnt


5.3.16. meteo.fnt


5.3.17. misc.fnt


5.3.18. music.fnt


5.3.19. romanc.fnt


5.3.20. romancs.fnt


5.3.21. romand.fnt


5.3.22. romanp.fnt


5.3.23. romans.fnt


5.3.24. romant.fnt


5.3.25. scriptc.fnt


5.3.26. scripts.fnt


5.3.27. symbol.fnt


5.3.28. uppmat.fnt