| 
	
	|  |  |  
	
		| View previous topic :: View next topic |  
		| Author | Message |  
		| PICoHolic 
 
 
 Joined: 04 Jan 2005
 Posts: 224
 
 
 
			    
 
 | 
			
				| Fonts for GLCD/TFT using TheDotFactory tool |  
				|  Posted: Thu Jul 18, 2013 5:20 am |   |  
				| 
 |  
				| 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: 224
 
 
 
			    
 
 | 
			
				|  |  
				|  Posted: Tue Feb 27, 2018 3:02 pm |   |  
				| 
 |  
				| 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;
 }
 ///////////////////////////////////////////////////////////////////////////////
 
 | 
 |  |  
		|  |  
		|  |  
  
	| 
 
 | 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
 
 |