/* Dieses Programm erzeugt den Header fuer einen 
 * DiskFont. Man findet solche Files als xxx.font 
 * innerhalb des FONTS: Verzeichnisses.
 * Dieser File besteht aus:
 *   1. einem  WORD  ein Identifier, der Hex 0F00 ist.
 *   2. einem  WORD  in dem die Anzahl der diversen
 *                   Hoehen zu dem Font steht.
 * 
 * dann für jede Hoehe seperat:
 *   1. ein 256 Byte großes Feld, in dem der Pathname 
 *                   zum eigentlichen Font steht.
 *   2. ein WORD     die Pixelhoehe.
 *   3. ein UBYTE    die Flags.
 *   4. ein UBYTE    das Hex 60 betragen sollte.
 *
 *****************************************************/

#include <exec/types.h>

/* nur fuer Aztec C */
#include <functions.h>

#include <libraries/dos.h>

struct FileHandle *fh;

/* Identifier fuer den Header */
UBYTE id[] = { 0x0f, 0x00 }; 

UBYTE pathname[256], flags, name[80];
UWORD fontheight,number,buf;
UBYTE fontkind = 0x60; /* Das bedeutet einen Diskfont, 
                          der nicht resident ist */

main()
{
 SHORT i;

 printf("\n\nWie soll der Fontname sein ?:");
 printf(">>.font nicht vergessen<<\n");
 scanf("%s",&name[0]);

 fh = (struct FileHandle *)Open(&name[0],MODE_NEWFILE);

 Write(fh,&id[0],2L);

 printf("\n\nWieviel definierte Groessen gibt es ?:");
 scanf("%d",&number);

 Write(fh,(UBYTE *)&number,2L);


 for(i=1;i<=number;i++)
  {
   printf("\nEingaben für die %d. Groesse\n\n",i);
   printf("\n\nBitte den Pathname innerhalb der ");
   printf("Fontsdirectory :\n");
   scanf("%s",&pathname[0]);

   Write(fh,&pathname[0],256L);

   printf("\n\nHoehe des %d.Fonts ?:",i);
   scanf("%d",&fontheight);

   Write(fh,&fontheight,2L);

/***************************************************
 * Die Flags als Ascii-Wert setzen heißt, wenn Sie *
 * z.B. das fuenfte und das zweite Bit setzen       *
 * wollen, ist der Ascii-Wert dieser Bitmaske      *
 * 2^5 + 2^2 = 32 + 4 = 36                         */

   printf("\n\nFlags als ASCII-Wert :");
   scanf("%d",&buf);
   flags = (UBYTE)buf;

   Write(fh,&flags,1L);

   Write(fh,&fontkind,1L);
  }
 printf("\n\nDer File ist geschrieben, und liegt");
 printf("\nim aktuellen Verzeichniss\n\n");
 Close(fh);
 return(NULL);
}

 
