
#ifndef __TEXT_H__
#define __TEXT_H__



void text_draw( int *buf, int w, int h, int x, int y, char *s, int col );
void text_char( int *buf, int w, int h, int x, int y, int c, int col );
int text_width( char *s );
int text_height( char *s );


#define TEXT_FONTLINE(a,b,c,d,e) (((a)<<0)+((b)<<1)+((c)<<2)+((d)<<3)+((e)<<4))



//---- DATA ------------------------------------------------------------------//

int text_font[ 5*(128-32) ] =
{
  //- Starting with char 32 (space)

  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),

  //- !"#$%&'()*+,-./

  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),

  TEXT_FONTLINE( 0,1,0,1,0 ),
  TEXT_FONTLINE( 0,1,0,1,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),

  TEXT_FONTLINE( 0,1,0,1,0 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 0,1,0,1,0 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 0,1,0,1,0 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),

  TEXT_FONTLINE( 0,1,1,0,0 ),
  TEXT_FONTLINE( 1,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,1,0,1 ),
  TEXT_FONTLINE( 1,0,0,1,0 ),
  TEXT_FONTLINE( 0,1,1,0,1 ),

  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),

  TEXT_FONTLINE( 0,0,1,1,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 0,0,1,1,0 ),

  TEXT_FONTLINE( 0,1,1,0,0 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,1,1,0,0 ),

  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 1,0,1,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,1,0,1 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),

  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),

  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),

  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),

  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),

  TEXT_FONTLINE( 0,0,0,0,1 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),

  //- Numbers
  
  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,1,1 ),
  TEXT_FONTLINE( 1,0,1,0,1 ),
  TEXT_FONTLINE( 1,1,0,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,0,1,1,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,0,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,1,1,0 ),
  TEXT_FONTLINE( 0,1,0,1,0 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),

  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 0,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 0,0,0,0,1 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,1 ),
  TEXT_FONTLINE( 0,0,0,0,1 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),

  //- :;<=>?@

  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),

  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),

  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),

  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),

  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,0,1,1,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,1,0,1 ),
  TEXT_FONTLINE( 1,0,1,1,1 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  //- Letters

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),

  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),

  TEXT_FONTLINE( 1,1,1,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),

  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,1,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,1 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 1,0,0,1,0 ),
  TEXT_FONTLINE( 0,1,1,0,0 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,1,0 ),
  TEXT_FONTLINE( 1,1,1,0,0 ),
  TEXT_FONTLINE( 1,0,0,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),

  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,0,1,1 ),
  TEXT_FONTLINE( 1,0,1,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,0,0,1 ),
  TEXT_FONTLINE( 1,0,1,0,1 ),
  TEXT_FONTLINE( 1,0,0,1,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,1,0 ),
  TEXT_FONTLINE( 0,1,1,0,1 ),

  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),

  TEXT_FONTLINE( 0,1,1,1,1 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 0,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),

  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,0,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,1,0,1 ),
  TEXT_FONTLINE( 1,0,1,0,1 ),
  TEXT_FONTLINE( 0,1,0,1,0 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,0,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,0,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,0,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),

  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),

  //- [\]^_`

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,0,0,1 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,0,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),

  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),

  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),

  //- Letters

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),

  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),

  TEXT_FONTLINE( 1,1,1,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),

  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,1,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,1 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 1,0,0,1,0 ),
  TEXT_FONTLINE( 0,1,1,0,0 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,1,0 ),
  TEXT_FONTLINE( 1,1,1,0,0 ),
  TEXT_FONTLINE( 1,0,0,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),

  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,0,1,1 ),
  TEXT_FONTLINE( 1,0,1,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,0,0,1 ),
  TEXT_FONTLINE( 1,0,1,0,1 ),
  TEXT_FONTLINE( 1,0,0,1,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),

  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,1,0 ),
  TEXT_FONTLINE( 0,1,1,0,1 ),

  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),

  TEXT_FONTLINE( 0,1,1,1,1 ),
  TEXT_FONTLINE( 1,0,0,0,0 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),
  TEXT_FONTLINE( 0,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,0 ),

  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,1,1,0 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,0,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,1,0,1 ),
  TEXT_FONTLINE( 1,0,1,0,1 ),
  TEXT_FONTLINE( 0,1,0,1,0 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,0,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,0,1,0 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),

  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 0,1,0,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),

  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 1,1,1,1,1 ),

  //- {|}~

  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),

  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),

  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,0,1,1,0 ),
  TEXT_FONTLINE( 0,0,1,0,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),

  TEXT_FONTLINE( 0,0,0,0,0 ),
  TEXT_FONTLINE( 0,1,0,0,0 ),
  TEXT_FONTLINE( 1,0,1,0,1 ),
  TEXT_FONTLINE( 0,0,0,1,0 ),
  TEXT_FONTLINE( 0,0,0,0,0 ),

  TEXT_FONTLINE( 1,1,1,1,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,0,0,0,1 ),
  TEXT_FONTLINE( 1,1,1,1,1 )

};



//---- FUNCTIONS -------------------------------------------------------------//



//---- text_char

void text_char( int *buf, int w, int h, int x, int y, int c, int col )
{
  int i, j;
  int *p;

  int i1 = x >=   0 ? 0 :  -x;  if( i1 >= 5 ) return;
  int i2 = x <= w-5 ? 5 : w-x;  if( i2 <  0 ) return;
  int j1 = y >=   0 ? 0 :  -y;  if( j1 >= 5 ) return;
  int j2 = y <= h-5 ? 5 : h-y;  if( j2 <  0 ) return;

  p = buf + (x+i1) + (y+j1) * w;

  c -= 32;
  if( c < 0 || c > 128-32 ) c = 127;

  for( j=j1; j<j2; j++ )
  {
    //  TODO: Look at asm to see how VC does this c*5 (does it calculate it every time?)
    int a = text_font[ c*5 + j ];

    for( i=i1; i<i2; i++ )
    {
      if( a & 1 ) *p = col;
      p++;
      a >>= 1;
    }

    p += w-5;
  }
}

//---- text_draw

void text_draw( int *buf, int w, int h, int x, int y, char *s, int col )
{
  for( int i=0; s[i]; i++ )
  {
    text_char( buf, w, h, x, y, s[i], col );
    x += 6;
  }
}

//---- text_width

int text_width( char *s )
{
  if( !s ) return 0;
  for( int i=0; s[i]; i++ );
  return i*6;
}

//---- text_height

int text_height( char *s )
{
  return 6;
}

#endif
