BYTE bchst [25*50];


void write ( int x, int y, char str[45], BYTE farbe )
{
  int zeichen, i=0, j, k;

  while( str[i] != 0x00 )
  {
    if ( str[i] == 32 ) { i++; continue; }
    if ( (str[i]<58)&&(str[i]>47) ) { zeichen = (str[i]-8)*25; goto write; }    //0-9
    if ( (str[i]<91)&&(str[i]>64) ) { zeichen = (str[i]-65)*25; goto write; }   //A-Z
    if ( (str[i]<123)&&(str[i]>96) ) { zeichen = (str[i]-97)*25; goto write; }  //a-z
    if ( str[i] == 33 ) { zeichen = (str[i]+1)*25; goto write; }               //!
    if ( str[i] == 40 ) { zeichen = (str[i]-14)*25; goto write; }               //(
    if ( str[i] == 41 ) { zeichen = (str[i]-14)*25; goto write; }               //)
    if ( str[i] == 43 ) { zeichen = (str[i]-8)*25; goto write; }                //+
    if ( str[i] == 44 ) { zeichen = (str[i]-13)*25; goto write; }               //,
    if ( str[i] == 45 ) { zeichen = (str[i]-13)*25; goto write; }               //-
    if ( str[i] == 46 ) { zeichen = (str[i]-21)*25; goto write; }               //:
    if ( str[i] == 58 ) { zeichen = (str[i]-19)*25; goto write; }               //.
    if ( str[i] == 47 ) { zeichen = (str[i]-18)*25; goto write; }               ///

    else continue;

write:
    for(j=0; j<5; j++)
    {
      for(k=0; k<5; k++ )
      {
        if ( (bchst[zeichen+(j*5)+k] == 180)||(bchst[zeichen+(j*5)+k] == 1) ) vsetpix(x+k+(i*6), y+j, farbe, res_x);
      }
    }
    i++;
  }
}


void Iwrite ( int x, int y, int value, BYTE farbe )
{
  int zeichen, i=0, j, k;
  char str[25];

  itoa(value, str, 10);
  if ( value < 10 ) { memcpy(&str[1], &str[0], 1); str[0] = 48; str[2] = 0x00; }

  while( str[i] != 0x00 )
  {
    if ( str[i] == 32 ) { i++; continue; }
    if ( (str[i]<58)&&(str[i]>47) ) { zeichen = (str[i]-8)*25; goto write; }    //0-9
    else continue;

write:
    for(j=0; j<5; j++)
    {
      for(k=0; k<5; k++ )
      {
        if ( (bchst[zeichen+(j*5)+k] == 180)||(bchst[zeichen+(j*5)+k] == 1) ) vsetpix(x+k+(i*6), y+j, farbe, res_x);
      }
    }
    i++;
  }
}


void loadFont ( void )
{
  FILE *Datei;
  int i, Zeichen;

  if ( (Datei = fopen("font.ref", "rb")) == NULL )             // Leute laden
  {
    textmodus();
    printf("\n\nERROR: Kann 'font.ref' nicht laden!\n\n");
    exit(0);
  }
  i=0;
  while ((Zeichen = fgetc(Datei)) != EOF) bchst[i++] = (BYTE)Zeichen;
  fclose(Datei);
}
