{ Font6.inc for graphic screen 6 by Kari Lammassaari 1998 }
{
Needs:
       - msxdos2.inc
       - vdpcmd.inc
       - paintlog.inc
       - loadgrap.inc


With font6.inc you can load several different font types into VRAM and use
them simultaneously in your program. (See fontdemo.com)
Fonts consist from graphic block (*.fn6) , which contains the patterns of ascii
chars 32 - 127 and a 97 byte file (*.ps6) containing the fontheight and char
width for each char. The graphic block contains 32 chars in three rows.
The space between chars is 16 pixels. The height of the block is 3*fontheight.

CONVFON6.COM program converts Dynamic publisher fonts automaticly to *.fn6 and
*.ps6.

REM !!!!!
The font information is stored in dynamic list (pointers),so You MUST begin
your program with line FontRoot := NIL; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

The fonts are referred with fontnumbers. First loaded font is 0, second is 1
and so on .

Available procedures and functions :

 - Procedure LoadFont(FileName:StringType;Y_Coord:Integer;page:Byte);

   Y_coord defines the y-coordinate where to load font block. Used ONLY when
   loading first font. Other fonts are loaded directly to first free
   location .Global variable  FFY:Integer keeps the FirstFreeY-coordinate.
   Page is the graphic page, where to loaf font block. Normally 1 in screen 7

 - Procedure FontWrite(x,y:Integer;page,FontNumber:Byte;St:StringType);

   X,Y  and Page  define the location where the writing occurs.
   FontNumber defines the font to be used ! If there is no font loaded,
   writing request is ignored !
   St contains the string to be qwritten. REM ! No wordwrap ! User must take
   care, that string fits on the screen line !

 - Procedure ChangeFontColor(FontNumber,Color:Byte);

   The Default font color is white (15). Background color is 0.
   Changing the color is done by graphic AND operation, therefore it can be
   done normally  once. To have MULTICOLOURED font, edit font block with
   some graphic editor.

 - Function FontHeight(FontNumber:Byte):Byte;

   Returns the font height of the given font.

 - Function FontCharWidth(FontNumber:Byte;Ch:Char):Byte;

   Returns the width of the given char in given font (proportional spacing)

 - FFY:Integer;

   Contains the first free Y-coordinate after LoadFont-operation.
   Updated by LoadFont. By changing the value of FFY you can create a gap
   between font blocks.

 - FontRoot    :FontPointerType;

   Used by system. The user must set the value of FontRoot to NIL in
   the beginning of the program otherwise errors will occur !
 }

