Here is the "final" version of the Zephyr Software Scalable Font System,
zFont.  It is written for compiler and memory model independence which means
if you compile zfont.c in large model, you can link it with any other 
code regardless of memory model (real mode, of course).  

To create the test program, compile the zfontest.cpp file and link in 
zfont.obj and svgacc.lib.  Naturally, SVGACC is required for zFont.  I have
made random compile tests with MS Visual C++ 1.5 and Borland C++ 3.1, but
the development compiler was Symantec C++ 6.11.

The documentation in zfont.h should be self-explanatory.  The documentation
within each function may not be perfect, but hopefully is adequate.

The batch file 'runme1.bat' will give a small example of the system's
capability.  The sample font has a few errors as displayed by the
batch file 'runme2.bat' and it is not complete above code 127 though 
characters do exist at the higher codes.

The system has been tested to the best of our abilities.  This is a free
supplemental package for SVGACC and does not come with any type of
support or warranties.  You are on your own.


FILE FORMAT

The font file (.zfs) contains a description for each of the 256 ASCII
characters.  The format of the font file is as follows:

256 dwords giving the offset in the file for the beginning of a character.
    One of these offsets will therefore be 0x400 and it will usually be
    the first one.
The data for each character follows.

Within a character's data, the format is:
word = width of bounding box
word = height of bounding box, the value 1024 seems to work well, but
       this has not been hard coded.
word = number of contours, most have one (like 'E'), but some have two
       or more (like 'i' and '%')
Contours follow:
word = number of points in contour
Point data follows:
word = x data
       bit 0-13 is a signed number for the x value
       bit 14 flags this coordinate as being part of an inner contour
            such as the inside loop of the 'O'.  This flag is unused.
       bit 15 flags this coordinate as being off of the curve and implies
            a spline is necessary.
word = y data
       bit 0-13 is a signed number for the y value
       bit 14-15 unused

Although characters like 'O' and 'D' are composed of a single contour,
the points on the inner loop are given a special flag.  This presently
is not used and there are no plans to use it.
