|
|
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
|