Font File Format

               Font files are VLIR files;  the chain number (0-126) is  the
          point  size.  GEOS limits a font to a point size of 48.  This  is
          probably   due  to  memory  limitations  for  storing  the  font.
          Nonexistent point sizes have VLIR chain addresses of $00,$FF.

               The header in each font file contains Font ID and point size
          information for the fonts in the file.  This includes the FONT ID
          at  offset  $80 (128)  within the header block, the 32 byte point
          size table at $82 (130) ordered from smallest to largest  (padded 
          with 0's), and the 32 byte font sizes at $61 (97) ordered from
          smallest to largest (padded with 0's).  This leaves room for 16 
          fonts per font file.

               Font  files  are identified by a unique ID number  which  is
          stored in the file's info sector at offset 130.  The info  sector
          contains a word identifier for each point size in the font. These
          identifiers have the form:  ID# * 8 + point size.  In other words,
          bits 15-6 represent the font number while bits 0-5 hold the point
          size.  These ID words are used by GEOwrite and GEOpaint.  

                         0    BSW            13   Tilden
                         1    University     14   Evans
                         2    California     15   Durant
                         3    Roma           16   Telegraph
                         4    Dwinelle       17   Superb
                         5    Cory           18   Bowditch
                         6    Tolman         19   Ormond
                         7    Bubble         20   Elmwood
                         8    Fontknox       21   Hearst
                         9    Harmon         21   Brennens (BUG)
                         10   Mykonos        23   Channing
                         11   Boalt          24   Putnam
                         12   Stadium        25   LeConte

                    Each VLIR in a font file is organized as follows:

          OffSet    Description
          -------   -------------------------------------------------------
          $00       Number  of pixels minus 1 above the underline.  This is
                    the line of print.
          $01-$02   Number of bytes in the bit stream.
          $03       Point size, character height in pixels.
          $04-$05   Index  from  beginning of font to table of  bit  stream
                    indices. Usually $0008.
          $06-$07   Index from beginning of font to first bit stream.
          $08-???   Table  of words which are indices into the bit streams;
                    one  for  each character from space (32) to  the  tilde
                    (126).  There is also an extra index on the  end.  This
                    extra  index is needed because the difference between a
                    character's index and the next character's index is the
                    width of the character in pixels.
          ???-???   Pointed  to by $06-$07.  The font is stored as  several
                    bit  streams,  one for each line of pixels.  The  point
                    size  is the number of bit streams.  All the  character
                    images  are stored in the bit stream.  The GEOS  KERNAL
                    has  some very sophisticated bit manipulation  routines
                    for accessing any given character.