CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug Reports on this forum. Send them to support@ccsinfo.com

Fonts for GLCD/TFT using TheDotFactory tool

 
Post new topic   Reply to topic    CCS Forum Index -> Code Library
View previous topic :: View next topic  
Author Message
PICoHolic



Joined: 04 Jan 2005
Posts: 216

View user's profile Send private message

Fonts for GLCD/TFT using TheDotFactory tool
PostPosted: Thu Jul 18, 2013 5:20 am     Reply with quote

Hello,

The Dot Factory tool link: http://www.pavius.net/2009/07/the-dot-factory-an-lcd-font-and-image-generator/
A useful open-source tool to generate font bitmaps with variable character width.

Structures:
Code:

////////////////////////////////////////////////////////////////////////////////
typedef struct _font_char_info
{
   unsigned int8 Charwidth;
   unsigned int16 Offset;
}FONT_CHAR_INFO;
////////////////////////////////////////////////////////////////////////////////
typedef struct _font_info
{
   unsigned int8 CharacterHeight;
   char StartCharacter;
   char EndCharacter;
   ROM FONT_CHAR_INFO *Descriptors;
   ROM unsigned int8 *Bitmaps;
}FONT_INFO;
////////////////////////////////////////////////////////////////////////////////


Font functions:
(Note: graphics statements are dependant to GLCD/TFT modules. LCD_CS, ILI9320_SetAddress, ILI9320_WritePixel, etc...)
Code:

///////////////////////////////////////////////////////////////////////////////
unsigned int8 TDFPutChar(unsigned int16 x, unsigned int16 y, char c, FONT_INFO *TDFFont, unsigned int16 ForColor, unsigned int16 BackColor) //returns char width or 0
{
   ROM FONT_CHAR_INFO *CharInfo;
   ROM unsigned int8 *RowPointer;
   unsigned int8 CharIndex, row, col, MyCharWidth, dots, col_in_byte = 0;

   if ((c < TDFFont->StartCharacter) || (c > TDFFont->EndCharacter))
      return 0;

   CharIndex = c - TDFFont->StartCharacter;  //Character index
   CharInfo = TDFFont->Descriptors;          //Point to start of descriptors
   CharInfo += (int32)CharIndex;              //Point to current char info

   RowPointer = TDFFont->Bitmaps;            //Point to start of bitmaps
   RowPointer += CharInfo->Offset;           //Point to start of c bitmap

   MyCharWidth = CharInfo->Charwidth;        //Store Char width (variable)

   LCD_CS = 0;    //enable LCD

   for (row=0; row<TDFFont->CharacterHeight; row++)
   {
      ILI9320_SetAddress(x, y);
      dots = *(RowPointer++);
      col_in_byte = 0;
      for (col=0; col<MyCharWidth; col++)
      {
         if (++col_in_byte > 8)     //end of byte bits?
         {
            dots = *(RowPointer++); //read next byte
            col_in_byte = 1;        //reset
         }
         if (bit_test(dots,7))   //forcolor
         {
            ILI9320_WritePixel(ForColor);
         }
         else                    //backcolor
         {
            ILI9320_WritePixel(BackColor);
         }
         dots <<= 1;
      }
      y++;     //next row
   }

   LCD_CS = 1;       //Disable LCD

   return MyCharWidth;
}
///////////////////////////////////////////////////////////////////////////////
int1 TDFPutStr(unsigned int16 x, unsigned int16 y, char *Str, FONT_INFO *TDFFont, unsigned int16 ForColor, unsigned int16 BackColor)
{
   while (*Str)
   {
      x += (TDFPutChar(x,y,*Str,TDFFont,ForColor,BackColor) + 1);
      Str++;
   }
   
   return TRUE;
}
///////////////////////////////////////////////////////////////////////////////


Sample font generated using The Dot Factory:
Code:

////////////////////////////////////////////////////////////////////////////////
//
//  Font data for Arial 12pt
//

// Character bitmaps for Arial 12pt
ROM unsigned int8 arial_12ptBitmaps[] =
{
   // @0 ' ' (2 pixels wide)
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   

   // @16 '!' (1 pixels wide)
   0b00000000, // 
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b00000000, // 
   0b10000000, // #
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 

   // @32 '"' (4 pixels wide)
   0b00000000, //     
   0b10010000, // #  #
   0b10010000, // #  #
   0b10010000, // #  #
   0b10010000, // #  #
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     

   // @48 '#' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b00010001, 0b00000000, //    #   #
   0b00010001, 0b00000000, //    #   #
   0b00010001, 0b00000000, //    #   #
   0b00100010, 0b00000000, //   #   # 
   0b11111111, 0b10000000, // #########
   0b00100010, 0b00000000, //   #   # 
   0b00100010, 0b00000000, //   #   # 
   0b00100010, 0b00000000, //   #   # 
   0b11111111, 0b10000000, // #########
   0b01000100, 0b00000000, //  #   #   
   0b01000100, 0b00000000, //  #   #   
   0b01000100, 0b00000000, //  #   #   
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @80 '$' (7 pixels wide)
   0b00010000, //    #   
   0b00111100, //   ####
   0b01010010, //  # #  #
   0b10010010, // #  #  #
   0b10010000, // #  #   
   0b10010000, // #  #   
   0b01110000, //  ###   
   0b00011100, //    ###
   0b00010010, //    #  #
   0b00010010, //    #  #
   0b10010010, // #  #  #
   0b01010100, //  # # #
   0b00111000, //   ### 
   0b00010000, //    #   
   0b00000000, //       
   0b00000000, //       

   // @96 '%' (12 pixels wide)
   0b00000000, 0b00000000, //             
   0b01110000, 0b10000000, //  ###    #   
   0b10001001, 0b00000000, // #   #  #   
   0b10001001, 0b00000000, // #   #  #   
   0b10001010, 0b00000000, // #   # #     
   0b10001010, 0b00000000, // #   # #     
   0b01110010, 0b00000000, //  ###  #     
   0b00000100, 0b11100000, //      #  ###
   0b00000101, 0b00010000, //      # #   #
   0b00001001, 0b00010000, //     #  #   #
   0b00001001, 0b00010000, //     #  #   #
   0b00010001, 0b00010000, //    #   #   #
   0b00010000, 0b11100000, //    #    ###
   0b00000000, 0b00000000, //             
   0b00000000, 0b00000000, //             
   0b00000000, 0b00000000, //             

   // @128 '&' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b00111000, 0b00000000, //   ###   
   0b01000100, 0b00000000, //  #   #   
   0b01000100, 0b00000000, //  #   #   
   0b01000100, 0b00000000, //  #   #   
   0b00101000, 0b00000000, //   # #   
   0b00110000, 0b00000000, //   ##     
   0b01010000, 0b00000000, //  # #     
   0b10001000, 0b10000000, // #   #   #
   0b10000101, 0b00000000, // #    # #
   0b10000010, 0b00000000, // #     # 
   0b01000101, 0b00000000, //  #   # #
   0b00111000, 0b10000000, //   ###   #
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @160 ''' (1 pixels wide)
   0b00000000, // 
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 

   // @176 '(' (3 pixels wide)
   0b00000000, //   
   0b00100000, //   #
   0b01000000, //  #
   0b01000000, //  #
   0b01000000, //  #
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b01000000, //  #
   0b01000000, //  #
   0b01000000, //  #
   0b00100000, //   #

   // @192 ')' (3 pixels wide)
   0b00000000, //   
   0b10000000, // # 
   0b01000000, //  #
   0b01000000, //  #
   0b01000000, //  #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b01000000, //  #
   0b01000000, //  #
   0b01000000, //  #
   0b10000000, // # 

   // @208 '*' (5 pixels wide)
   0b00000000, //     
   0b00100000, //   # 
   0b11111000, // #####
   0b00100000, //   # 
   0b01010000, //  # #
   0b01010000, //  # #
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     

   // @224 '+' (7 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00010000, //    #   
   0b00010000, //    #   
   0b00010000, //    #   
   0b11111110, // #######
   0b00010000, //    #   
   0b00010000, //    #   
   0b00010000, //    #   
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @240 ',' (1 pixels wide)
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b00000000, // 

   // @256 '-' (4 pixels wide)
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b11110000, // ####
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     

   // @272 '.' (1 pixels wide)
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b10000000, // #
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 

   // @288 '/' (4 pixels wide)
   0b00000000, //     
   0b00010000, //    #
   0b00010000, //    #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b01000000, //  # 
   0b01000000, //  # 
   0b01000000, //  # 
   0b01000000, //  # 
   0b10000000, // #   
   0b10000000, // #   
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     

   // @304 '0' (7 pixels wide)
   0b00000000, //       
   0b00111000, //   ### 
   0b01000100, //  #   #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b01000100, //  #   #
   0b00111000, //   ### 
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @320 '1' (4 pixels wide)
   0b00000000, //     
   0b00010000, //    #
   0b00110000, //   ##
   0b01010000, //  # #
   0b10010000, // #  #
   0b00010000, //    #
   0b00010000, //    #
   0b00010000, //    #
   0b00010000, //    #
   0b00010000, //    #
   0b00010000, //    #
   0b00010000, //    #
   0b00010000, //    #
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     

   // @336 '2' (7 pixels wide)
   0b00000000, //       
   0b00111100, //   ####
   0b01000100, //  #   #
   0b10000010, // #     #
   0b00000010, //       #
   0b00000010, //       #
   0b00000100, //      #
   0b00000100, //      #
   0b00001000, //     # 
   0b00010000, //    #   
   0b00100000, //   #   
   0b01000000, //  #     
   0b11111110, // #######
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @352 '3' (7 pixels wide)
   0b00000000, //       
   0b00111000, //   ### 
   0b01000100, //  #   #
   0b10000100, // #    #
   0b00000100, //      #
   0b00001100, //     ##
   0b00111000, //   ### 
   0b00000100, //      #
   0b00000010, //       #
   0b00000010, //       #
   0b10000010, // #     #
   0b11000100, // ##   #
   0b00111000, //   ### 
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @368 '4' (8 pixels wide)
   0b00000000, //         
   0b00000010, //       #
   0b00000110, //      ##
   0b00001010, //     # #
   0b00010010, //    #  #
   0b00010010, //    #  #
   0b00100010, //   #   #
   0b01000010, //  #    #
   0b10000010, // #     #
   0b11111111, // ########
   0b00000010, //       #
   0b00000010, //       #
   0b00000010, //       #
   0b00000000, //         
   0b00000000, //         
   0b00000000, //         

   // @384 '5' (7 pixels wide)
   0b00000000, //       
   0b01111110, //  ######
   0b01000000, //  #     
   0b01000000, //  #     
   0b10000000, // #     
   0b11111000, // ##### 
   0b10000100, // #    #
   0b00000010, //       #
   0b00000010, //       #
   0b00000010, //       #
   0b10000010, // #     #
   0b01000100, //  #   #
   0b00111000, //   ### 
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @400 '6' (7 pixels wide)
   0b00000000, //       
   0b00111000, //   ### 
   0b01000100, //  #   #
   0b10000010, // #     #
   0b10000000, // #     
   0b10111000, // # ### 
   0b11000100, // ##   #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b01000100, //  #   #
   0b00111000, //   ### 
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @416 '7' (7 pixels wide)
   0b00000000, //       
   0b11111110, // #######
   0b00000100, //      #
   0b00000100, //      #
   0b00001000, //     # 
   0b00001000, //     # 
   0b00010000, //    #   
   0b00010000, //    #   
   0b00010000, //    #   
   0b00010000, //    #   
   0b00100000, //   #   
   0b00100000, //   #   
   0b00100000, //   #   
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @432 '8' (7 pixels wide)
   0b00000000, //       
   0b00111000, //   ### 
   0b01000100, //  #   #
   0b10000010, // #     #
   0b10000010, // #     #
   0b01000100, //  #   #
   0b00111000, //   ### 
   0b01000100, //  #   #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b01000100, //  #   #
   0b00111000, //   ### 
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @448 '9' (7 pixels wide)
   0b00000000, //       
   0b00111000, //   ### 
   0b01000100, //  #   #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b01000110, //  #   ##
   0b00111010, //   ### #
   0b00000010, //       #
   0b10000010, // #     #
   0b01000100, //  #   #
   0b00111000, //   ### 
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @464 ':' (1 pixels wide)
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b10000000, // #
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b10000000, // #
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 

   // @480 ';' (1 pixels wide)
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b10000000, // #
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b00000000, // 

   // @496 '<' (7 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000010, //       #
   0b00011100, //    ###
   0b01100000, //  ##   
   0b10000000, // #     
   0b01100000, //  ##   
   0b00011100, //    ###
   0b00000010, //       #
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @512 '=' (7 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b11111110, // #######
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b11111110, // #######
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @528 '>' (7 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b10000000, // #     
   0b01110000, //  ###   
   0b00001100, //     ##
   0b00000010, //       #
   0b00001100, //     ##
   0b01110000, //  ###   
   0b10000000, // #     
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @544 '?' (7 pixels wide)
   0b00000000, //       
   0b00111000, //   ### 
   0b01000100, //  #   #
   0b10000010, // #     #
   0b10000010, // #     #
   0b00000010, //       #
   0b00000100, //      #
   0b00001000, //     # 
   0b00010000, //    #   
   0b00010000, //    #   
   0b00010000, //    #   
   0b00000000, //       
   0b00010000, //    #   
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @560 '@' (15 pixels wide)
   0b00000000, 0b00000000, //               
   0b00000111, 0b11100000, //      ######   
   0b00011000, 0b00011000, //    ##      ## 
   0b00100000, 0b00000100, //   #          #
   0b01000011, 0b10100100, //  #    ### #  #
   0b01000100, 0b01100010, //  #   #   ##   #
   0b10001000, 0b00100010, // #   #     #   #
   0b10010000, 0b00100010, // #  #      #   #
   0b10010000, 0b01000010, // #  #     #    #
   0b10010000, 0b01000010, // #  #     #    #
   0b10010000, 0b01000100, // #  #     #   #
   0b10001000, 0b11001000, // #   #   ##  # 
   0b01000111, 0b01110000, //  #   ### ###   
   0b00100000, 0b00000010, //   #           #
   0b00011000, 0b00001100, //    ##       ##
   0b00000111, 0b11110000, //      #######   

   // @592 'A' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b00001000, 0b00000000, //     #   
   0b00010100, 0b00000000, //    # #   
   0b00010100, 0b00000000, //    # #   
   0b00010100, 0b00000000, //    # #   
   0b00100010, 0b00000000, //   #   # 
   0b00100010, 0b00000000, //   #   # 
   0b00100010, 0b00000000, //   #   # 
   0b01111111, 0b00000000, //  #######
   0b01000001, 0b00000000, //  #     #
   0b01000001, 0b00000000, //  #     #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @624 'B' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b11111111, 0b00000000, // ########
   0b10000001, 0b00000000, // #      #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000001, 0b00000000, // #      #
   0b11111110, 0b00000000, // ####### 
   0b10000001, 0b00000000, // #      #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000001, 0b00000000, // #      #
   0b11111110, 0b00000000, // ####### 
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @656 'C' (10 pixels wide)
   0b00000000, 0b00000000, //           
   0b00011111, 0b00000000, //    ##### 
   0b00100000, 0b10000000, //   #     #
   0b01000000, 0b01000000, //  #       #
   0b10000000, 0b00000000, // #         
   0b10000000, 0b00000000, // #         
   0b10000000, 0b00000000, // #         
   0b10000000, 0b00000000, // #         
   0b10000000, 0b00000000, // #         
   0b10000000, 0b00000000, // #         
   0b01000000, 0b01000000, //  #       #
   0b00100000, 0b10000000, //   #     #
   0b00011111, 0b00000000, //    ##### 
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           

   // @688 'D' (10 pixels wide)
   0b00000000, 0b00000000, //           
   0b11111110, 0b00000000, // #######   
   0b10000001, 0b00000000, // #      # 
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b10000000, // #       #
   0b10000001, 0b00000000, // #      # 
   0b11111110, 0b00000000, // #######   
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           

   // @720 'E' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b11111111, 0b10000000, // #########
   0b10000000, 0b00000000, // #       
   0b10000000, 0b00000000, // #       
   0b10000000, 0b00000000, // #       
   0b10000000, 0b00000000, // #       
   0b11111111, 0b00000000, // ########
   0b10000000, 0b00000000, // #       
   0b10000000, 0b00000000, // #       
   0b10000000, 0b00000000, // #       
   0b10000000, 0b00000000, // #       
   0b10000000, 0b00000000, // #       
   0b11111111, 0b10000000, // #########
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @752 'F' (8 pixels wide)
   0b00000000, //         
   0b11111111, // ########
   0b10000000, // #       
   0b10000000, // #       
   0b10000000, // #       
   0b10000000, // #       
   0b10000000, // #       
   0b11111110, // #######
   0b10000000, // #       
   0b10000000, // #       
   0b10000000, // #       
   0b10000000, // #       
   0b10000000, // #       
   0b00000000, //         
   0b00000000, //         
   0b00000000, //         

   // @768 'G' (10 pixels wide)
   0b00000000, 0b00000000, //           
   0b00011110, 0b00000000, //    ####   
   0b00100001, 0b00000000, //   #    # 
   0b01000000, 0b10000000, //  #      #
   0b10000000, 0b00000000, // #         
   0b10000000, 0b00000000, // #         
   0b10000000, 0b00000000, // #         
   0b10000111, 0b11000000, // #    #####
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b01000000, 0b10000000, //  #      #
   0b00100001, 0b00000000, //   #    # 
   0b00011110, 0b00000000, //    ####   
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           

   // @800 'H' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b11111111, 0b10000000, // #########
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @832 'I' (1 pixels wide)
   0b00000000, // 
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 

   // @848 'J' (6 pixels wide)
   0b00000000, //       
   0b00000100, //      #
   0b00000100, //      #
   0b00000100, //      #
   0b00000100, //      #
   0b00000100, //      #
   0b00000100, //      #
   0b00000100, //      #
   0b00000100, //      #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b01111000, //  ####
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @864 'K' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b10000000, 0b10000000, // #       #
   0b10000001, 0b00000000, // #      #
   0b10000010, 0b00000000, // #     # 
   0b10000100, 0b00000000, // #    #   
   0b10001000, 0b00000000, // #   #   
   0b10011000, 0b00000000, // #  ##   
   0b10101000, 0b00000000, // # # #   
   0b11000100, 0b00000000, // ##   #   
   0b10000010, 0b00000000, // #     # 
   0b10000010, 0b00000000, // #     # 
   0b10000001, 0b00000000, // #      #
   0b10000000, 0b10000000, // #       #
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @896 'L' (7 pixels wide)
   0b00000000, //       
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     
   0b11111110, // #######
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @912 'M' (11 pixels wide)
   0b00000000, 0b00000000, //           
   0b10000000, 0b00100000, // #         #
   0b11000000, 0b01100000, // ##       ##
   0b11000000, 0b01100000, // ##       ##
   0b10100000, 0b10100000, // # #     # #
   0b10100000, 0b10100000, // # #     # #
   0b10010001, 0b00100000, // #  #   #  #
   0b10010001, 0b00100000, // #  #   #  #
   0b10001010, 0b00100000, // #   # #   #
   0b10001010, 0b00100000, // #   # #   #
   0b10001010, 0b00100000, // #   # #   #
   0b10000100, 0b00100000, // #    #    #
   0b10000100, 0b00100000, // #    #    #
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           

   // @944 'N' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b10000000, 0b10000000, // #       #
   0b11000000, 0b10000000, // ##      #
   0b10100000, 0b10000000, // # #     #
   0b10100000, 0b10000000, // # #     #
   0b10010000, 0b10000000, // #  #    #
   0b10001000, 0b10000000, // #   #   #
   0b10001000, 0b10000000, // #   #   #
   0b10000100, 0b10000000, // #    #  #
   0b10000010, 0b10000000, // #     # #
   0b10000010, 0b10000000, // #     # #
   0b10000001, 0b10000000, // #      ##
   0b10000000, 0b10000000, // #       #
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @976 'O' (10 pixels wide)
   0b00000000, 0b00000000, //           
   0b00011110, 0b00000000, //    ####   
   0b00100001, 0b00000000, //   #    # 
   0b01000000, 0b10000000, //  #      #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b01000000, 0b10000000, //  #      #
   0b00100001, 0b00000000, //   #    # 
   0b00011110, 0b00000000, //    ####   
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           

   // @1008 'P' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b11111110, 0b00000000, // ####### 
   0b10000001, 0b00000000, // #      #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000001, 0b00000000, // #      #
   0b11111110, 0b00000000, // ####### 
   0b10000000, 0b00000000, // #       
   0b10000000, 0b00000000, // #       
   0b10000000, 0b00000000, // #       
   0b10000000, 0b00000000, // #       
   0b10000000, 0b00000000, // #       
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @1040 'Q' (10 pixels wide)
   0b00000000, 0b00000000, //           
   0b00011110, 0b00000000, //    ####   
   0b00100001, 0b00000000, //   #    # 
   0b01000000, 0b10000000, //  #      #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b10000000, 0b01000000, // #        #
   0b01000110, 0b11000000, //  #   ## ##
   0b00100001, 0b10000000, //   #    ##
   0b00011110, 0b11000000, //    #### ##
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           

   // @1072 'R' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b11111110, 0b00000000, // ####### 
   0b10000001, 0b00000000, // #      #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000001, 0b00000000, // #      #
   0b11111110, 0b00000000, // ####### 
   0b10000100, 0b00000000, // #    #   
   0b10000010, 0b00000000, // #     # 
   0b10000010, 0b00000000, // #     # 
   0b10000001, 0b00000000, // #      #
   0b10000000, 0b10000000, // #       #
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @1104 'S' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b00111110, 0b00000000, //   ##### 
   0b01000001, 0b00000000, //  #     #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b00000000, // #       
   0b01000000, 0b00000000, //  #       
   0b00111000, 0b00000000, //   ###   
   0b00000111, 0b00000000, //      ###
   0b00000000, 0b10000000, //         #
   0b00000000, 0b10000000, //         #
   0b10000000, 0b10000000, // #       #
   0b01000001, 0b00000000, //  #     #
   0b00111110, 0b00000000, //   ##### 
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @1136 'T' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b11111111, 0b10000000, // #########
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @1168 'U' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b01000001, 0b00000000, //  #     #
   0b00111110, 0b00000000, //   ##### 
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @1200 'V' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b10000000, 0b10000000, // #       #
   0b10000000, 0b10000000, // #       #
   0b01000001, 0b00000000, //  #     #
   0b01000001, 0b00000000, //  #     #
   0b01000001, 0b00000000, //  #     #
   0b00100010, 0b00000000, //   #   # 
   0b00100010, 0b00000000, //   #   # 
   0b00100010, 0b00000000, //   #   # 
   0b00010100, 0b00000000, //    # #   
   0b00010100, 0b00000000, //    # #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @1232 'W' (15 pixels wide)
   0b00000000, 0b00000000, //               
   0b10000001, 0b00000010, // #      #      #
   0b10000010, 0b10000010, // #     # #     #
   0b01000010, 0b10000100, //  #    # #    #
   0b01000010, 0b10000100, //  #    # #    #
   0b01000100, 0b01000100, //  #   #   #   #
   0b01000100, 0b01000100, //  #   #   #   #
   0b00100100, 0b01001000, //   #  #   #  # 
   0b00101000, 0b00101000, //   # #     # # 
   0b00101000, 0b00101000, //   # #     # # 
   0b00101000, 0b00101000, //   # #     # # 
   0b00010000, 0b00010000, //    #       #   
   0b00010000, 0b00010000, //    #       #   
   0b00000000, 0b00000000, //               
   0b00000000, 0b00000000, //               
   0b00000000, 0b00000000, //               

   // @1264 'X' (11 pixels wide)
   0b00000000, 0b00000000, //           
   0b01000000, 0b01000000, //  #       #
   0b00100000, 0b10000000, //   #     # 
   0b00010001, 0b00000000, //    #   #   
   0b00010001, 0b00000000, //    #   #   
   0b00001010, 0b00000000, //     # #   
   0b00000100, 0b00000000, //      #     
   0b00001010, 0b00000000, //     # #   
   0b00010001, 0b00000000, //    #   #   
   0b00010001, 0b00000000, //    #   #   
   0b00100000, 0b10000000, //   #     # 
   0b01000000, 0b01000000, //  #       #
   0b10000000, 0b00100000, // #         #
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           

   // @1296 'Y' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b10000000, 0b10000000, // #       #
   0b01000001, 0b00000000, //  #     #
   0b01000001, 0b00000000, //  #     #
   0b00100010, 0b00000000, //   #   # 
   0b00010100, 0b00000000, //    # #   
   0b00010100, 0b00000000, //    # #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @1328 'Z' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b01111111, 0b10000000, //  ########
   0b00000001, 0b00000000, //        #
   0b00000010, 0b00000000, //       # 
   0b00000010, 0b00000000, //       # 
   0b00000100, 0b00000000, //      #   
   0b00001000, 0b00000000, //     #   
   0b00001000, 0b00000000, //     #   
   0b00010000, 0b00000000, //    #     
   0b00100000, 0b00000000, //   #     
   0b00100000, 0b00000000, //   #     
   0b01000000, 0b00000000, //  #       
   0b11111111, 0b10000000, // #########
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         

   // @1360 '[' (3 pixels wide)
   0b00000000, //   
   0b11100000, // ###
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b10000000, // # 
   0b11100000, // ###

   // @1376 '\' (4 pixels wide)
   0b00000000, //     
   0b10000000, // #   
   0b10000000, // #   
   0b01000000, //  # 
   0b01000000, //  # 
   0b01000000, //  # 
   0b01000000, //  # 
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00010000, //    #
   0b00010000, //    #
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     

   // @1392 ']' (3 pixels wide)
   0b00000000, //   
   0b11100000, // ###
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b11100000, // ###

   // @1408 '^' (7 pixels wide)
   0b00000000, //       
   0b00010000, //    #   
   0b00101000, //   # # 
   0b00101000, //   # # 
   0b01000100, //  #   #
   0b01000100, //  #   #
   0b10000010, // #     #
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @1424 '_' (9 pixels wide)
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b00000000, 0b00000000, //         
   0b11111111, 0b10000000, // #########

   // @1456 '`' (2 pixels wide)
   0b00000000, //   
   0b10000000, // #
   0b01000000, //  #
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   
   0b00000000, //   

   // @1472 'a' (7 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00111100, //   ####
   0b01000010, //  #    #
   0b10000010, // #     #
   0b00001110, //     ###
   0b01110010, //  ###  #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000110, // #    ##
   0b01111010, //  #### #
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @1488 'b' (7 pixels wide)
   0b00000000, //       
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     
   0b10111000, // # ### 
   0b11000100, // ##   #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b11000100, // ##   #
   0b10111000, // # ### 
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @1504 'c' (6 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00111000, //   ###
   0b01000100, //  #   #
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     
   0b01000100, //  #   #
   0b00111000, //   ###
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @1520 'd' (7 pixels wide)
   0b00000000, //       
   0b00000010, //       #
   0b00000010, //       #
   0b00000010, //       #
   0b00111010, //   ### #
   0b01000110, //  #   ##
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b01000110, //  #   ##
   0b00111010, //   ### #
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @1536 'e' (7 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00111000, //   ### 
   0b01000100, //  #   #
   0b10000010, // #     #
   0b10000010, // #     #
   0b11111110, // #######
   0b10000000, // #     
   0b10000010, // #     #
   0b01000100, //  #   #
   0b00111000, //   ### 
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @1552 'f' (4 pixels wide)
   0b00000000, //     
   0b00110000, //   ##
   0b01000000, //  # 
   0b01000000, //  # 
   0b11110000, // ####
   0b01000000, //  # 
   0b01000000, //  # 
   0b01000000, //  # 
   0b01000000, //  # 
   0b01000000, //  # 
   0b01000000, //  # 
   0b01000000, //  # 
   0b01000000, //  # 
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     

   // @1568 'g' (7 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00111010, //   ### #
   0b01000110, //  #   ##
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b01000110, //  #   ##
   0b00111010, //   ### #
   0b00000010, //       #
   0b10000100, // #    #
   0b01111000, //  #### 

   // @1584 'h' (6 pixels wide)
   0b00000000, //       
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     
   0b10111000, // # ###
   0b11000100, // ##   #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @1600 'i' (1 pixels wide)
   0b00000000, // 
   0b10000000, // #
   0b00000000, // 
   0b00000000, // 
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 

   // @1616 'j' (3 pixels wide)
   0b00000000, //   
   0b00100000, //   #
   0b00000000, //   
   0b00000000, //   
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b00100000, //   #
   0b11000000, // ##

   // @1632 'k' (7 pixels wide)
   0b00000000, //       
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     
   0b10000010, // #     #
   0b10000100, // #    #
   0b10001000, // #   # 
   0b10010000, // #  #   
   0b10110000, // # ##   
   0b11001000, // ##  # 
   0b10001000, // #   # 
   0b10000100, // #    #
   0b10000010, // #     #
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @1648 'l' (1 pixels wide)
   0b00000000, // 
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b00000000, // 
   0b00000000, // 
   0b00000000, // 

   // @1664 'm' (11 pixels wide)
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           
   0b10111001, 0b11000000, // # ###  ###
   0b11000110, 0b00100000, // ##   ##   #
   0b10000100, 0b00100000, // #    #    #
   0b10000100, 0b00100000, // #    #    #
   0b10000100, 0b00100000, // #    #    #
   0b10000100, 0b00100000, // #    #    #
   0b10000100, 0b00100000, // #    #    #
   0b10000100, 0b00100000, // #    #    #
   0b10000100, 0b00100000, // #    #    #
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           

   // @1696 'n' (6 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b10111000, // # ###
   0b11000100, // ##   #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @1712 'o' (7 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00111000, //   ### 
   0b01000100, //  #   #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b01000100, //  #   #
   0b00111000, //   ### 
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @1728 'p' (7 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b10111000, // # ### 
   0b11000100, // ##   #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b11000100, // ##   #
   0b10111000, // # ### 
   0b10000000, // #     
   0b10000000, // #     
   0b10000000, // #     

   // @1744 'q' (7 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00111010, //   ### #
   0b01000110, //  #   ##
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000010, // #     #
   0b01000110, //  #   ##
   0b00111010, //   ### #
   0b00000010, //       #
   0b00000010, //       #
   0b00000010, //       #

   // @1760 'r' (4 pixels wide)
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     
   0b10110000, // # ##
   0b11000000, // ## 
   0b10000000, // #   
   0b10000000, // #   
   0b10000000, // #   
   0b10000000, // #   
   0b10000000, // #   
   0b10000000, // #   
   0b10000000, // #   
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     

   // @1776 's' (6 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b01111000, //  ####
   0b10000100, // #    #
   0b10000000, // #     
   0b10000000, // #     
   0b01111000, //  ####
   0b00000100, //      #
   0b00000100, //      #
   0b10000100, // #    #
   0b01111000, //  ####
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @1792 't' (4 pixels wide)
   0b00000000, //     
   0b00000000, //     
   0b01000000, //  # 
   0b01000000, //  # 
   0b11110000, // ####
   0b01000000, //  # 
   0b01000000, //  # 
   0b01000000, //  # 
   0b01000000, //  # 
   0b01000000, //  # 
   0b01000000, //  # 
   0b01000000, //  # 
   0b01110000, //  ###
   0b00000000, //     
   0b00000000, //     
   0b00000000, //     

   // @1808 'u' (6 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10000100, // #    #
   0b10001100, // #   ##
   0b01110100, //  ### #
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @1824 'v' (7 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b10000010, // #     #
   0b10000010, // #     #
   0b01000100, //  #   #
   0b01000100, //  #   #
   0b00101000, //   # # 
   0b00101000, //   # # 
   0b00101000, //   # # 
   0b00010000, //    #   
   0b00010000, //    #   
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @1840 'w' (11 pixels wide)
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           
   0b10000100, 0b00100000, // #    #    #
   0b10000100, 0b00100000, // #    #    #
   0b01001010, 0b01000000, //  #  # #  #
   0b01001010, 0b01000000, //  #  # #  #
   0b01010001, 0b01000000, //  # #   # #
   0b01010001, 0b01000000, //  # #   # #
   0b01010001, 0b01000000, //  # #   # #
   0b00100000, 0b10000000, //   #     # 
   0b00100000, 0b10000000, //   #     # 
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           
   0b00000000, 0b00000000, //           

   // @1872 'x' (7 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b10000010, // #     #
   0b01000100, //  #   #
   0b00101000, //   # # 
   0b00101000, //   # # 
   0b00010000, //    #   
   0b00101000, //   # # 
   0b00101000, //   # # 
   0b01000100, //  #   #
   0b10000010, // #     #
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @1888 'y' (7 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b10000010, // #     #
   0b10000010, // #     #
   0b10000100, // #    #
   0b01000100, //  #   #
   0b01000100, //  #   #
   0b00101000, //   # # 
   0b00101000, //   # # 
   0b00101000, //   # # 
   0b00010000, //    #   
   0b00010000, //    #   
   0b00010000, //    #   
   0b01100000, //  ##   

   // @1904 'z' (7 pixels wide)
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       
   0b11111110, // #######
   0b00000100, //      #
   0b00001000, //     # 
   0b00001000, //     # 
   0b00010000, //    #   
   0b00100000, //   #   
   0b00100000, //   #   
   0b01000000, //  #     
   0b11111110, // #######
   0b00000000, //       
   0b00000000, //       
   0b00000000, //       

   // @1920 '{' (5 pixels wide)
   0b00000000, //     
   0b00011000, //    ##
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b11000000, // ##   
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b00011000, //    ##

   // @1936 '|' (1 pixels wide)
   0b00000000, // 
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #
   0b10000000, // #

   // @1952 '}' (5 pixels wide)
   0b00000000, //     
   0b11000000, // ##   
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b00011000, //    ##
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b00100000, //   # 
   0b11000000, // ##   

   // @1968 '~' (8 pixels wide)
   0b00000000, //         
   0b00000000, //         
   0b00000000, //         
   0b00000000, //         
   0b00000000, //         
   0b00000000, //         
   0b01110001, //  ###   #
   0b10001110, // #   ###
   0b00000000, //         
   0b00000000, //         
   0b00000000, //         
   0b00000000, //         
   0b00000000, //         
   0b00000000, //         
   0b00000000, //         
   0b00000000, //         
};

// Character descriptors for Arial 12pt
// { [Char width in bits], [Offset into arial_12ptCharBitmaps in bytes] }
ROM FONT_CHAR_INFO arial_12ptDescriptors[] =
{
   {2, 0},       //   
   {1, 16},       // !
   {4, 32},       // "
   {9, 48},       // #
   {7, 80},       // $
   {12, 96},       // %
   {9, 128},       // &
   {1, 160},       // '
   {3, 176},       // (
   {3, 192},       // )
   {5, 208},       // *
   {7, 224},       // +
   {1, 240},       // ,
   {4, 256},       // -
   {1, 272},       // .
   {4, 288},       // /
   {7, 304},       // 0
   {4, 320},       // 1
   {7, 336},       // 2
   {7, 352},       // 3
   {8, 368},       // 4
   {7, 384},       // 5
   {7, 400},       // 6
   {7, 416},       // 7
   {7, 432},       // 8
   {7, 448},       // 9
   {1, 464},       // :
   {1, 480},       // ;
   {7, 496},       // <
   {7, 512},       // =
   {7, 528},       // >
   {7, 544},       // ?
   {15, 560},       // @
   {9, 592},       // A
   {9, 624},       // B
   {10, 656},       // C
   {10, 688},       // D
   {9, 720},       // E
   {8, 752},       // F
   {10, 768},       // G
   {9, 800},       // H
   {1, 832},       // I
   {6, 848},       // J
   {9, 864},       // K
   {7, 896},       // L
   {11, 912},       // M
   {9, 944},       // N
   {10, 976},       // O
   {9, 1008},       // P
   {10, 1040},       // Q
   {9, 1072},       // R
   {9, 1104},       // S
   {9, 1136},       // T
   {9, 1168},       // U
   {9, 1200},       // V
   {15, 1232},       // W
   {11, 1264},       // X
   {9, 1296},       // Y
   {9, 1328},       // Z
   {3, 1360},       // [
   {4, 1376},       // \
   {3, 1392},       // ]
   {7, 1408},       // ^
   {9, 1424},       // _
   {2, 1456},       // `
   {7, 1472},       // a
   {7, 1488},       // b
   {6, 1504},       // c
   {7, 1520},       // d
   {7, 1536},       // e
   {4, 1552},       // f
   {7, 1568},       // g
   {6, 1584},       // h
   {1, 1600},       // i
   {3, 1616},       // j
   {7, 1632},       // k
   {1, 1648},       // l
   {11, 1664},       // m
   {6, 1696},       // n
   {7, 1712},       // o
   {7, 1728},       // p
   {7, 1744},       // q
   {4, 1760},       // r
   {6, 1776},       // s
   {4, 1792},       // t
   {6, 1808},       // u
   {7, 1824},       // v
   {11, 1840},       // w
   {7, 1872},       // x
   {7, 1888},       // y
   {7, 1904},       // z
   {5, 1920},       // {
   {1, 1936},       // |
   {5, 1952},       // }
   {8, 1968},       // ~
};

// Font information for Arial 12pt
FONT_INFO arial_12ptFontInfo =
{
   16, //  Character height in dots
   ' ', //  Start character
   '~', //  End character
   arial_12ptDescriptors, //  Character descriptor array
   arial_12ptBitmaps, //  Character bitmap array
};
////////////////////////////////////////////////////////////////////////////////


Cheers!
PICoHolic



Joined: 04 Jan 2005
Posts: 216

View user's profile Send private message

PostPosted: Tue Feb 27, 2018 3:02 pm     Reply with quote

Updated functions
Code:

unsigned int8 TDFPutChar(unsigned int16 x, unsigned int16 y, char c, FONT_INFO *TDFFont, \
                   unsigned int16 ForColor, unsigned int16 BackColor) //returns char width or 0
{
   rom FONT_CHAR_INFO *CharInfo;
   rom unsigned int8 *RowPointer;
   unsigned int8 CharIndex, row, col, MyCharWidth, dots, col_in_byte = 0;

   if ((c < TDFFont->StartCharacter) || (c > TDFFont->EndCharacter))
      return 0;

   CharIndex = c - TDFFont->StartCharacter;  //Character index
   CharInfo = TDFFont->Descriptors;          //Point to start of descriptors
   CharInfo += (int32)CharIndex*sizeof(FONT_CHAR_INFO);   //Point to current char info

   RowPointer = TDFFont->Bitmaps;            //Point to start of bitmaps
   RowPointer += CharInfo->Offset;           //Point to start of c bitmap

   MyCharWidth = CharInfo->Charwidth;        //Store Char width (variable)

   //LCD_CS = 0;    //enable LCD (DEPENDING ON HW!!!)

   for (row=0; row<TDFFont->CharacterHeight; row++)
   {
      LCD_SetCursor(x,y);
      dots = *(RowPointer++);      //DEPENDING ON HW!!!
      col_in_byte = 0;
      for (col=0; col<MyCharWidth; col++)
      {
         if (++col_in_byte > 8)     //end of byte bits?
         {
            dots = *(RowPointer++); //read next byte
            col_in_byte = 1;        //reset
         }
         if (bit_test(dots,7))   //forcolor
         {
            LCD_WriteReg(0x0022,ForColor);     //DEPENDING ON HW!!!
         }
         else                    //backcolor
         {
            LCD_WriteReg(0x0022,BackColor);  //DEPENDING ON HW!!!
         }
         dots <<= 1;
      }
      y++;     //next row
   }

   //LCD_CS = 1;       //Disable LCD (DEPENDING ON HW!!!)

   return MyCharWidth;
}
///////////////////////////////////////////////////////////////////////////////
int1 TDFPutStr(unsigned int16 x, unsigned int16 y, char *Str, FONT_INFO *TDFFont, \
            unsigned int16 ForColor, unsigned int16 BackColor)
{
   while (*Str)
   {
      x += (TDFPutChar(x,y,*Str,TDFFont,ForColor,BackColor) + 2);
      Str++;
   }
   
   return TRUE;
}
///////////////////////////////////////////////////////////////////////////////
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> Code Library All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group