From 10a5d0e00349e5b4fddabf0e9abc50f71f004b75 Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Thu, 29 Mar 2007 17:48:26 +0000 Subject: Player: Save a bit of space by only using 7 bytes/char in the glyph table. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12962 a1c6a512-1295-4272-9138-f99709370657 --- firmware/drivers/lcd-charcell.c | 3 +- firmware/drivers/lcd-charset-player.c | 366 +++++++++++++++++----------------- firmware/export/lcd-charcell.h | 2 +- 3 files changed, 185 insertions(+), 186 deletions(-) (limited to 'firmware') diff --git a/firmware/drivers/lcd-charcell.c b/firmware/drivers/lcd-charcell.c index e68b35aa92..9d42ab5b4b 100644 --- a/firmware/drivers/lcd-charcell.c +++ b/firmware/drivers/lcd-charcell.c @@ -70,8 +70,7 @@ unsigned char hardware_buffer_lcd[LCD_WIDTH][LCD_HEIGHT]; static int xmargin = 0; static int ymargin = 0; -static unsigned char xfont_variable[VARIABLE_XCHARS][(HW_PATTERN_SIZE+3)&~3]; - /* round up pattern size to a multiple of 4 bytes for faster access */ +static unsigned char xfont_variable[VARIABLE_XCHARS][HW_PATTERN_SIZE]; static bool xfont_variable_locked[VARIABLE_XCHARS]; static struct pattern_info hw_pattern[MAX_HW_PATTERNS]; static struct cursor_info cursor; diff --git a/firmware/drivers/lcd-charset-player.c b/firmware/drivers/lcd-charset-player.c index 4b261790ca..24c0f65ee0 100644 --- a/firmware/drivers/lcd-charset-player.c +++ b/firmware/drivers/lcd-charset-player.c @@ -1039,197 +1039,197 @@ static const struct xchar_info xchar_info_oldlcd[] = { { 0xfffd, 0, 0, 0xd8 }, }; -const unsigned char xfont_fixed[][8] = { +const unsigned char xfont_fixed[][HW_PATTERN_SIZE] = { /* Standard ascii */ - [XF_BACKSLASH] = { 0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00}, /* \ */ - [XF_CIRCUMFLEX] = { 0x04, 0x0a, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00}, /* ^ */ - [XF_GRAVEACCENT] = { 0x08, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00}, /* ` */ - [XF_VERTICALBAR] = { 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, /* | */ - [XF_TILDE] = { 0x00, 0x00, 0x08, 0x15, 0x02, 0x00, 0x00, 0x00}, /* ~ */ + [XF_BACKSLASH] = { 0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00}, /* \ */ + [XF_CIRCUMFLEX] = { 0x04, 0x0a, 0x11, 0x00, 0x00, 0x00, 0x00}, /* ^ */ + [XF_GRAVEACCENT] = { 0x08, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00}, /* ` */ + [XF_VERTICALBAR] = { 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04}, /* | */ + [XF_TILDE] = { 0x00, 0x00, 0x08, 0x15, 0x02, 0x00, 0x00}, /* ~ */ #ifndef BOOTLOADER /* bootloader only supports pure ASCII */ /* Icons and special symbols */ - [XF_ICON_UNKNOWN] = { 0x0c, 0x12, 0x12, 0x08, 0x08, 0x00, 0x08, 0x00}, - [XF_ICON_BOOKMARK] = { 0x00, 0x03, 0x07, 0x0e, 0x1c, 0x08, 0x00, 0x00}, - [XF_ICON_PLUGIN] = { 0x04, 0x1e, 0x07, 0x1f, 0x05, 0x01, 0x06, 0x00}, - [XF_ICON_FOLDER] = { 0x0c, 0x13, 0x11, 0x11, 0x11, 0x11, 0x1f, 0x00}, - [XF_ICON_FIRMWARE] = { 0x1f, 0x11, 0x1b, 0x15, 0x1b, 0x11, 0x1f, 0x00}, - [XF_ICON_LANGUAGE] = { 0x00, 0x1f, 0x15, 0x1f, 0x15, 0x1f, 0x00, 0x00}, - [XF_ICON_AUDIO] = { 0x03, 0x05, 0x09, 0x09, 0x0b, 0x1b, 0x18, 0x00}, - [XF_ICON_WPS] = { 0x01, 0x01, 0x02, 0x02, 0x14, 0x0c, 0x04, 0x00}, - [XF_ICON_PLAYLIST] = { 0x17, 0x00, 0x17, 0x00, 0x17, 0x00, 0x17, 0x00}, - [XF_ICON_TEXTFILE] = { 0x1f, 0x00, 0x1f, 0x00, 0x1f, 0x00, 0x1f, 0x00}, - [XF_ICON_CONFIG] = { 0x0b, 0x10, 0x0b, 0x00, 0x1f, 0x00, 0x1f, 0x00}, + [XF_ICON_UNKNOWN] = { 0x0c, 0x12, 0x12, 0x08, 0x08, 0x00, 0x08}, + [XF_ICON_BOOKMARK] = { 0x00, 0x03, 0x07, 0x0e, 0x1c, 0x08, 0x00}, + [XF_ICON_PLUGIN] = { 0x04, 0x1e, 0x07, 0x1f, 0x05, 0x01, 0x06}, + [XF_ICON_FOLDER] = { 0x0c, 0x13, 0x11, 0x11, 0x11, 0x11, 0x1f}, + [XF_ICON_FIRMWARE] = { 0x1f, 0x11, 0x1b, 0x15, 0x1b, 0x11, 0x1f}, + [XF_ICON_LANGUAGE] = { 0x00, 0x1f, 0x15, 0x1f, 0x15, 0x1f, 0x00}, + [XF_ICON_AUDIO] = { 0x03, 0x05, 0x09, 0x09, 0x0b, 0x1b, 0x18}, + [XF_ICON_WPS] = { 0x01, 0x01, 0x02, 0x02, 0x14, 0x0c, 0x04}, + [XF_ICON_PLAYLIST] = { 0x17, 0x00, 0x17, 0x00, 0x17, 0x00, 0x17}, + [XF_ICON_TEXTFILE] = { 0x1f, 0x00, 0x1f, 0x00, 0x1f, 0x00, 0x1f}, + [XF_ICON_CONFIG] = { 0x0b, 0x10, 0x0b, 0x00, 0x1f, 0x00, 0x1f}, /* Latin 1 */ - [XF_INVEXCLAMATION]= { 0x04, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00}, /* ¡ */ - [XF_CENTSIGN] = { 0x04, 0x04, 0x0f, 0x10, 0x10, 0x0f, 0x04, 0x00}, /* ¢ */ - [XF_POUNDSIGN] = { 0x06, 0x09, 0x08, 0x1e, 0x08, 0x08, 0x1f, 0x00}, /* £ */ - [XF_CURRENCY] = { 0x00, 0x11, 0x0e, 0x0a, 0x0e, 0x11, 0x00, 0x00}, /* ¤ */ - [XF_LEFTDBLANGLEQUOT] = { 0x00, 0x05, 0x0a, 0x14, 0x0a, 0x05, 0x00, 0x00}, /* « */ - [XF_MACRON] = { 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* ¯ */ - [XF_PLUSMINUS] = { 0x04, 0x04, 0x1f, 0x04, 0x04, 0x00, 0x1f, 0x00}, /* ± */ - [XF_SUPER2] = { 0x1c, 0x04, 0x1c, 0x10, 0x1c, 0x00, 0x00, 0x00}, /* ³ */ - [XF_SUPER3] = { 0x1c, 0x04, 0x1c, 0x04, 0x1c, 0x00, 0x00, 0x00}, /* ³ */ - [XF_MICRO] = { 0x00, 0x09, 0x09, 0x09, 0x0f, 0x08, 0x10, 0x00}, /* µ */ - [XF_MIDDLEDOT] = { 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00}, /* · */ - [XF_RIGHTDBLANGLEQUOT] = { 0x00, 0x14, 0x0a, 0x05, 0x0a, 0x14, 0x00, 0x00}, /* » */ - [XF_ONEQUARTER] = { 0x11, 0x12, 0x14, 0x09, 0x13, 0x07, 0x01, 0x00}, /* ¼ */ - [XF_ONEHALF] = { 0x11, 0x12, 0x17, 0x09, 0x17, 0x04, 0x07, 0x00}, /* ½ */ - [XF_THREEQUARTERS] = { 0x18, 0x09, 0x1a, 0x0d, 0x1b, 0x17, 0x01, 0x00}, /* ¾ */ - [XF_INVQUESTION] = { 0x04, 0x00, 0x04, 0x08, 0x10, 0x11, 0x0e, 0x00}, /* ¿ */ - [XF_AGRAVE] = { 0x08, 0x04, 0x0e, 0x11, 0x1f, 0x11, 0x11, 0x00}, /* À */ - [XF_AACUTE] = { 0x02, 0x04, 0x0e, 0x11, 0x1f, 0x11, 0x11, 0x00}, /* Á */ - [XF_ACIRCUMFLEX] = { 0x04, 0x0a, 0x0e, 0x11, 0x1f, 0x11, 0x11, 0x00}, /* Â */ - [XF_ATILDE] = { 0x0d, 0x12, 0x0e, 0x11, 0x1f, 0x11, 0x11, 0x00}, /* Ã */ - [XF_ADIERESIS] = { 0x0a, 0x00, 0x04, 0x0a, 0x11, 0x1f, 0x11, 0x00}, /* Ä */ - [XF_ARING] = { 0x04, 0x0a, 0x04, 0x0e, 0x11, 0x1f, 0x11, 0x00}, /* Å */ - [XF_AELIGATURE] = { 0x0f, 0x14, 0x14, 0x1f, 0x14, 0x14, 0x17, 0x00}, /* Æ */ - [XF_CCEDILLA] = { 0x0f, 0x10, 0x10, 0x10, 0x0f, 0x02, 0x0e, 0x00}, /* Ç */ - [XF_EGRAVE] = { 0x08, 0x04, 0x1f, 0x10, 0x1e, 0x10, 0x1f, 0x00}, /* È */ - [XF_EACUTE] = { 0x02, 0x04, 0x1f, 0x10, 0x1c, 0x10, 0x1f, 0x00}, /* É */ - [XF_ECIRCUMFLEX] = { 0x04, 0x0a, 0x1f, 0x10, 0x1c, 0x10, 0x1f, 0x00}, /* Ê */ - [XF_EDIERESIS] = { 0x0a, 0x00, 0x1f, 0x10, 0x1c, 0x10, 0x1f, 0x00}, /* Ë */ - [XF_IGRAVE] = { 0x08, 0x04, 0x0e, 0x04, 0x04, 0x04, 0x0e, 0x00}, /* Ì */ - [XF_IACUTE] = { 0x02, 0x04, 0x0e, 0x04, 0x04, 0x04, 0x0e, 0x00}, /* Í */ - [XF_ICIRCUMFLEX] = { 0x04, 0x0a, 0x0e, 0x04, 0x04, 0x04, 0x0e, 0x00}, /* Î */ - [XF_IDIERESIS] = { 0x0a, 0x00, 0x0e, 0x04, 0x04, 0x04, 0x0e, 0x00}, /* Ï */ - [XF_ETH] = { 0x0c, 0x0a, 0x09, 0x1d, 0x09, 0x0a, 0x0c, 0x00}, /* Ð */ - [XF_NTILDE] = { 0x0d, 0x12, 0x00, 0x19, 0x15, 0x13, 0x11, 0x00}, /* Ñ */ - [XF_OGRAVE] = { 0x08, 0x04, 0x0e, 0x11, 0x11, 0x11, 0x0e, 0x00}, /* Ò */ - [XF_OACUTE] = { 0x02, 0x04, 0x0e, 0x11, 0x11, 0x11, 0x0e, 0x00}, /* Ó */ - [XF_OCIRCUMFLEX] = { 0x04, 0x0a, 0x0e, 0x11, 0x11, 0x11, 0x0e, 0x00}, /* Ô */ - [XF_OTILDE] = { 0x0d, 0x12, 0x0e, 0x11, 0x11, 0x11, 0x0e, 0x00}, /* Õ */ - [XF_ODIERESIS] = { 0x0a, 0x00, 0x0e, 0x11, 0x11, 0x11, 0x0e, 0x00}, /* Ö */ - [XF_OSTROKE] = { 0x01, 0x0e, 0x13, 0x15, 0x19, 0x0e, 0x10, 0x00}, /* Ø */ - [XF_UGRAVE] = { 0x08, 0x04, 0x11, 0x11, 0x11, 0x11, 0x0e, 0x00}, /* Ù */ - [XF_UACUTE] = { 0x02, 0x04, 0x11, 0x11, 0x11, 0x11, 0x0e, 0x00}, /* Ú */ - [XF_UCIRCUMFLEX] = { 0x04, 0x0a, 0x11, 0x11, 0x11, 0x11, 0x0e, 0x00}, /* Û */ - [XF_UDIERESIS] = { 0x0a, 0x00, 0x11, 0x11, 0x11, 0x11, 0x0e, 0x00}, /* Ü */ - [XF_YACUTE] = { 0x02, 0x04, 0x11, 0x11, 0x0a, 0x04, 0x04, 0x00}, /* Ý */ - [XF_aGRAVE] = { 0x08, 0x04, 0x0e, 0x01, 0x0f, 0x11, 0x0f, 0x00}, /* à */ - [XF_aACUTE] = { 0x02, 0x04, 0x0e, 0x01, 0x0f, 0x11, 0x0f, 0x00}, /* á */ - [XF_aCIRCUMFLEX] = { 0x04, 0x0a, 0x0e, 0x01, 0x0f, 0x11, 0x0f, 0x00}, /* â */ - [XF_aTILDE] = { 0x0d, 0x12, 0x0e, 0x01, 0x0f, 0x11, 0x0f, 0x00}, /* ã */ - [XF_aDIERESIS] = { 0x0a, 0x00, 0x0e, 0x01, 0x0f, 0x11, 0x0f, 0x00}, /* ä */ - [XF_aRING] = { 0x04, 0x0a, 0x0e, 0x01, 0x0f, 0x11, 0x0f, 0x00}, /* å */ - [XF_cCEDILLA] = { 0x00, 0x0f, 0x10, 0x10, 0x0f, 0x02, 0x04, 0x00}, /* ç */ - [XF_eGRAVE] = { 0x08, 0x04, 0x0e, 0x11, 0x1f, 0x10, 0x0e, 0x00}, /* è */ - [XF_eACUTE] = { 0x02, 0x04, 0x0e, 0x11, 0x1f, 0x10, 0x0e, 0x00}, /* é */ - [XF_eCIRCUMFLEX] = { 0x04, 0x0a, 0x0e, 0x11, 0x1f, 0x10, 0x0e, 0x00}, /* ê */ - [XF_eDIERESIS] = { 0x0a, 0x00, 0x0e, 0x11, 0x1f, 0x10, 0x0e, 0x00}, /* ë */ - [XF_iGRAVE] = { 0x08, 0x04, 0x00, 0x0c, 0x04, 0x04, 0x0e, 0x00}, /* ì */ - [XF_iACUTE] = { 0x02, 0x04, 0x00, 0x0c, 0x04, 0x04, 0x0e, 0x00}, /* í */ - [XF_iCIRCUMFLEX] = { 0x04, 0x0a, 0x00, 0x0c, 0x04, 0x04, 0x0e, 0x00}, /* î */ - [XF_iDIERESIS] = { 0x0a, 0x00, 0x00, 0x0c, 0x04, 0x04, 0x0e, 0x00}, /* ï */ - [XF_nTILDE] = { 0x0d, 0x12, 0x00, 0x16, 0x19, 0x11, 0x11, 0x00}, /* ñ */ - [XF_oGRAVE] = { 0x08, 0x04, 0x00, 0x0e, 0x11, 0x11, 0x0e, 0x00}, /* ò */ - [XF_oACUTE] = { 0x02, 0x04, 0x00, 0x0e, 0x11, 0x11, 0x0e, 0x00}, /* ó */ - [XF_oCIRCUMFLEX] = { 0x04, 0x0a, 0x00, 0x0e, 0x11, 0x11, 0x0e, 0x00}, /* ô */ - [XF_oTILDE] = { 0x0d, 0x12, 0x00, 0x0e, 0x11, 0x11, 0x0e, 0x00}, /* õ */ - [XF_oDIERESIS] = { 0x00, 0x0a, 0x00, 0x0e, 0x11, 0x11, 0x0e, 0x00}, /* ö */ - [XF_DIVISION] = { 0x00, 0x04, 0x00, 0x1f, 0x00, 0x04, 0x00, 0x00}, /* ÷ */ - [XF_oSLASH] = { 0x00, 0x02, 0x0e, 0x15, 0x15, 0x0e, 0x08, 0x00}, /* ø */ - [XF_uGRAVE] = { 0x08, 0x04, 0x00, 0x11, 0x11, 0x13, 0x0d, 0x00}, /* ù */ - [XF_uACUTE] = { 0x02, 0x04, 0x00, 0x11, 0x11, 0x13, 0x0d, 0x00}, /* ú */ - [XF_uCIRCUMFLEX] = { 0x04, 0x0a, 0x00, 0x11, 0x11, 0x13, 0x0d, 0x00}, /* û */ - [XF_uDIERESIS] = { 0x00, 0x0a, 0x00, 0x11, 0x11, 0x13, 0x0d, 0x00}, /* ü */ - [XF_yACUTE] = { 0x02, 0x04, 0x11, 0x11, 0x0f, 0x01, 0x0e, 0x00}, /* ý */ - [XF_yDIERESIS] = { 0x0a, 0x00, 0x11, 0x11, 0x0f, 0x01, 0x0e, 0x00}, /* ÿ */ + [XF_INVEXCLAMATION]= { 0x04, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04}, /* ¡ */ + [XF_CENTSIGN] = { 0x04, 0x04, 0x0f, 0x10, 0x10, 0x0f, 0x04}, /* ¢ */ + [XF_POUNDSIGN] = { 0x06, 0x09, 0x08, 0x1e, 0x08, 0x08, 0x1f}, /* £ */ + [XF_CURRENCY] = { 0x00, 0x11, 0x0e, 0x0a, 0x0e, 0x11, 0x00}, /* ¤ */ + [XF_LEFTDBLANGLEQUOT] = { 0x00, 0x05, 0x0a, 0x14, 0x0a, 0x05, 0x00}, /* « */ + [XF_MACRON] = { 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* ¯ */ + [XF_PLUSMINUS] = { 0x04, 0x04, 0x1f, 0x04, 0x04, 0x00, 0x1f}, /* ± */ + [XF_SUPER2] = { 0x1c, 0x04, 0x1c, 0x10, 0x1c, 0x00, 0x00}, /* ³ */ + [XF_SUPER3] = { 0x1c, 0x04, 0x1c, 0x04, 0x1c, 0x00, 0x00}, /* ³ */ + [XF_MICRO] = { 0x00, 0x09, 0x09, 0x09, 0x0f, 0x08, 0x10}, /* µ */ + [XF_MIDDLEDOT] = { 0x00, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00}, /* · */ + [XF_RIGHTDBLANGLEQUOT] = { 0x00, 0x14, 0x0a, 0x05, 0x0a, 0x14, 0x00}, /* » */ + [XF_ONEQUARTER] = { 0x11, 0x12, 0x14, 0x09, 0x13, 0x07, 0x01}, /* ¼ */ + [XF_ONEHALF] = { 0x11, 0x12, 0x17, 0x09, 0x17, 0x04, 0x07}, /* ½ */ + [XF_THREEQUARTERS] = { 0x18, 0x09, 0x1a, 0x0d, 0x1b, 0x17, 0x01}, /* ¾ */ + [XF_INVQUESTION] = { 0x04, 0x00, 0x04, 0x08, 0x10, 0x11, 0x0e}, /* ¿ */ + [XF_AGRAVE] = { 0x08, 0x04, 0x0e, 0x11, 0x1f, 0x11, 0x11}, /* À */ + [XF_AACUTE] = { 0x02, 0x04, 0x0e, 0x11, 0x1f, 0x11, 0x11}, /* Á */ + [XF_ACIRCUMFLEX] = { 0x04, 0x0a, 0x0e, 0x11, 0x1f, 0x11, 0x11}, /* Â */ + [XF_ATILDE] = { 0x0d, 0x12, 0x0e, 0x11, 0x1f, 0x11, 0x11}, /* Ã */ + [XF_ADIERESIS] = { 0x0a, 0x00, 0x04, 0x0a, 0x11, 0x1f, 0x11}, /* Ä */ + [XF_ARING] = { 0x04, 0x0a, 0x04, 0x0e, 0x11, 0x1f, 0x11}, /* Å */ + [XF_AELIGATURE] = { 0x0f, 0x14, 0x14, 0x1f, 0x14, 0x14, 0x17}, /* Æ */ + [XF_CCEDILLA] = { 0x0f, 0x10, 0x10, 0x10, 0x0f, 0x02, 0x0e}, /* Ç */ + [XF_EGRAVE] = { 0x08, 0x04, 0x1f, 0x10, 0x1e, 0x10, 0x1f}, /* È */ + [XF_EACUTE] = { 0x02, 0x04, 0x1f, 0x10, 0x1c, 0x10, 0x1f}, /* É */ + [XF_ECIRCUMFLEX] = { 0x04, 0x0a, 0x1f, 0x10, 0x1c, 0x10, 0x1f}, /* Ê */ + [XF_EDIERESIS] = { 0x0a, 0x00, 0x1f, 0x10, 0x1c, 0x10, 0x1f}, /* Ë */ + [XF_IGRAVE] = { 0x08, 0x04, 0x0e, 0x04, 0x04, 0x04, 0x0e}, /* Ì */ + [XF_IACUTE] = { 0x02, 0x04, 0x0e, 0x04, 0x04, 0x04, 0x0e}, /* Í */ + [XF_ICIRCUMFLEX] = { 0x04, 0x0a, 0x0e, 0x04, 0x04, 0x04, 0x0e}, /* Î */ + [XF_IDIERESIS] = { 0x0a, 0x00, 0x0e, 0x04, 0x04, 0x04, 0x0e}, /* Ï */ + [XF_ETH] = { 0x0c, 0x0a, 0x09, 0x1d, 0x09, 0x0a, 0x0c}, /* Ð */ + [XF_NTILDE] = { 0x0d, 0x12, 0x00, 0x19, 0x15, 0x13, 0x11}, /* Ñ */ + [XF_OGRAVE] = { 0x08, 0x04, 0x0e, 0x11, 0x11, 0x11, 0x0e}, /* Ò */ + [XF_OACUTE] = { 0x02, 0x04, 0x0e, 0x11, 0x11, 0x11, 0x0e}, /* Ó */ + [XF_OCIRCUMFLEX] = { 0x04, 0x0a, 0x0e, 0x11, 0x11, 0x11, 0x0e}, /* Ô */ + [XF_OTILDE] = { 0x0d, 0x12, 0x0e, 0x11, 0x11, 0x11, 0x0e}, /* Õ */ + [XF_ODIERESIS] = { 0x0a, 0x00, 0x0e, 0x11, 0x11, 0x11, 0x0e}, /* Ö */ + [XF_OSTROKE] = { 0x01, 0x0e, 0x13, 0x15, 0x19, 0x0e, 0x10}, /* Ø */ + [XF_UGRAVE] = { 0x08, 0x04, 0x11, 0x11, 0x11, 0x11, 0x0e}, /* Ù */ + [XF_UACUTE] = { 0x02, 0x04, 0x11, 0x11, 0x11, 0x11, 0x0e}, /* Ú */ + [XF_UCIRCUMFLEX] = { 0x04, 0x0a, 0x11, 0x11, 0x11, 0x11, 0x0e}, /* Û */ + [XF_UDIERESIS] = { 0x0a, 0x00, 0x11, 0x11, 0x11, 0x11, 0x0e}, /* Ü */ + [XF_YACUTE] = { 0x02, 0x04, 0x11, 0x11, 0x0a, 0x04, 0x04}, /* Ý */ + [XF_aGRAVE] = { 0x08, 0x04, 0x0e, 0x01, 0x0f, 0x11, 0x0f}, /* à */ + [XF_aACUTE] = { 0x02, 0x04, 0x0e, 0x01, 0x0f, 0x11, 0x0f}, /* á */ + [XF_aCIRCUMFLEX] = { 0x04, 0x0a, 0x0e, 0x01, 0x0f, 0x11, 0x0f}, /* â */ + [XF_aTILDE] = { 0x0d, 0x12, 0x0e, 0x01, 0x0f, 0x11, 0x0f}, /* ã */ + [XF_aDIERESIS] = { 0x0a, 0x00, 0x0e, 0x01, 0x0f, 0x11, 0x0f}, /* ä */ + [XF_aRING] = { 0x04, 0x0a, 0x0e, 0x01, 0x0f, 0x11, 0x0f}, /* å */ + [XF_cCEDILLA] = { 0x00, 0x0f, 0x10, 0x10, 0x0f, 0x02, 0x04}, /* ç */ + [XF_eGRAVE] = { 0x08, 0x04, 0x0e, 0x11, 0x1f, 0x10, 0x0e}, /* è */ + [XF_eACUTE] = { 0x02, 0x04, 0x0e, 0x11, 0x1f, 0x10, 0x0e}, /* é */ + [XF_eCIRCUMFLEX] = { 0x04, 0x0a, 0x0e, 0x11, 0x1f, 0x10, 0x0e}, /* ê */ + [XF_eDIERESIS] = { 0x0a, 0x00, 0x0e, 0x11, 0x1f, 0x10, 0x0e}, /* ë */ + [XF_iGRAVE] = { 0x08, 0x04, 0x00, 0x0c, 0x04, 0x04, 0x0e}, /* ì */ + [XF_iACUTE] = { 0x02, 0x04, 0x00, 0x0c, 0x04, 0x04, 0x0e}, /* í */ + [XF_iCIRCUMFLEX] = { 0x04, 0x0a, 0x00, 0x0c, 0x04, 0x04, 0x0e}, /* î */ + [XF_iDIERESIS] = { 0x0a, 0x00, 0x00, 0x0c, 0x04, 0x04, 0x0e}, /* ï */ + [XF_nTILDE] = { 0x0d, 0x12, 0x00, 0x16, 0x19, 0x11, 0x11}, /* ñ */ + [XF_oGRAVE] = { 0x08, 0x04, 0x00, 0x0e, 0x11, 0x11, 0x0e}, /* ò */ + [XF_oACUTE] = { 0x02, 0x04, 0x00, 0x0e, 0x11, 0x11, 0x0e}, /* ó */ + [XF_oCIRCUMFLEX] = { 0x04, 0x0a, 0x00, 0x0e, 0x11, 0x11, 0x0e}, /* ô */ + [XF_oTILDE] = { 0x0d, 0x12, 0x00, 0x0e, 0x11, 0x11, 0x0e}, /* õ */ + [XF_oDIERESIS] = { 0x00, 0x0a, 0x00, 0x0e, 0x11, 0x11, 0x0e}, /* ö */ + [XF_DIVISION] = { 0x00, 0x04, 0x00, 0x1f, 0x00, 0x04, 0x00}, /* ÷ */ + [XF_oSLASH] = { 0x00, 0x02, 0x0e, 0x15, 0x15, 0x0e, 0x08}, /* ø */ + [XF_uGRAVE] = { 0x08, 0x04, 0x00, 0x11, 0x11, 0x13, 0x0d}, /* ù */ + [XF_uACUTE] = { 0x02, 0x04, 0x00, 0x11, 0x11, 0x13, 0x0d}, /* ú */ + [XF_uCIRCUMFLEX] = { 0x04, 0x0a, 0x00, 0x11, 0x11, 0x13, 0x0d}, /* û */ + [XF_uDIERESIS] = { 0x00, 0x0a, 0x00, 0x11, 0x11, 0x13, 0x0d}, /* ü */ + [XF_yACUTE] = { 0x02, 0x04, 0x11, 0x11, 0x0f, 0x01, 0x0e}, /* ý */ + [XF_yDIERESIS] = { 0x0a, 0x00, 0x11, 0x11, 0x0f, 0x01, 0x0e}, /* ÿ */ /* Latin extended A */ - [XF_aOGONEK] = { 0x0e, 0x01, 0x0f, 0x11, 0x0f, 0x02, 0x03, 0x00}, - [XF_cACUTE] = { 0x02, 0x04, 0x0f, 0x10, 0x10, 0x10, 0x0f, 0x00}, - [XF_cCARON] = { 0x0a, 0x04, 0x0f, 0x10, 0x10, 0x10, 0x0f, 0x00}, - [XF_dCARON] = { 0x05, 0x05, 0x0c, 0x14, 0x14, 0x14, 0x0c, 0x00}, - [XF_dSTROKE] = { 0x02, 0x0f, 0x02, 0x0e, 0x12, 0x12, 0x0e, 0x00}, - [XF_eOGONEK] = { 0x0e, 0x11, 0x1f, 0x10, 0x0e, 0x04, 0x06, 0x00}, - [XF_eCARON] = { 0x0a, 0x04, 0x0e, 0x11, 0x1f, 0x10, 0x0e, 0x00}, - [XF_DOTLESSi] = { 0x00, 0x00, 0x0c, 0x04, 0x04, 0x04, 0x0e, 0x00}, - [XF_lSTROKE] = { 0x0c, 0x04, 0x06, 0x0c, 0x04, 0x04, 0x0e, 0x00}, - [XF_nACUTE] = { 0x02, 0x04, 0x16, 0x19, 0x11, 0x11, 0x11, 0x00}, - [XF_nCARON] = { 0x0a, 0x04, 0x16, 0x19, 0x11, 0x11, 0x11, 0x00}, - [XF_ODBLACUTE] = { 0x09, 0x12, 0x0e, 0x11, 0x11, 0x11, 0x0e, 0x00}, - [XF_oDBLACUTE] = { 0x09, 0x12, 0x00, 0x0e, 0x11, 0x11, 0x0e, 0x00}, - [XF_rCARON] = { 0x0a, 0x04, 0x0b, 0x0c, 0x08, 0x08, 0x08, 0x00}, - [XF_sACUTE] = { 0x02, 0x04, 0x0e, 0x10, 0x0e, 0x01, 0x1e, 0x00}, - [XF_SCEDILLA] = { 0x0e, 0x10, 0x0e, 0x01, 0x0e, 0x04, 0x0c, 0x00}, - [XF_sCEDILLA] = { 0x00, 0x0e, 0x10, 0x0e, 0x01, 0x0e, 0x04, 0x00}, - [XF_sCARON] = { 0x0a, 0x04, 0x0e, 0x10, 0x0e, 0x01, 0x1e, 0x00}, - [XF_tCARON] = { 0x09, 0x09, 0x08, 0x1e, 0x08, 0x08, 0x06, 0x00}, - [XF_uRING] = { 0x04, 0x0a, 0x04, 0x11, 0x11, 0x13, 0x0d, 0x00}, - [XF_UDBLACUTE] = { 0x05, 0x0a, 0x11, 0x11, 0x11, 0x11, 0x0e, 0x00}, - [XF_uDBLACUTE] = { 0x09, 0x12, 0x00, 0x11, 0x11, 0x13, 0x0d, 0x00}, - [XF_zACUTE] = { 0x02, 0x04, 0x1f, 0x02, 0x04, 0x08, 0x1f, 0x00}, - [XF_zDOT] = { 0x04, 0x00, 0x1f, 0x02, 0x04, 0x08, 0x1f, 0x00}, - [XF_zCARON] = { 0x0a, 0x04, 0x1f, 0x02, 0x04, 0x08, 0x1f, 0x00}, + [XF_aOGONEK] = { 0x0e, 0x01, 0x0f, 0x11, 0x0f, 0x02, 0x03}, + [XF_cACUTE] = { 0x02, 0x04, 0x0f, 0x10, 0x10, 0x10, 0x0f}, + [XF_cCARON] = { 0x0a, 0x04, 0x0f, 0x10, 0x10, 0x10, 0x0f}, + [XF_dCARON] = { 0x05, 0x05, 0x0c, 0x14, 0x14, 0x14, 0x0c}, + [XF_dSTROKE] = { 0x02, 0x0f, 0x02, 0x0e, 0x12, 0x12, 0x0e}, + [XF_eOGONEK] = { 0x0e, 0x11, 0x1f, 0x10, 0x0e, 0x04, 0x06}, + [XF_eCARON] = { 0x0a, 0x04, 0x0e, 0x11, 0x1f, 0x10, 0x0e}, + [XF_DOTLESSi] = { 0x00, 0x00, 0x0c, 0x04, 0x04, 0x04, 0x0e}, + [XF_lSTROKE] = { 0x0c, 0x04, 0x06, 0x0c, 0x04, 0x04, 0x0e}, + [XF_nACUTE] = { 0x02, 0x04, 0x16, 0x19, 0x11, 0x11, 0x11}, + [XF_nCARON] = { 0x0a, 0x04, 0x16, 0x19, 0x11, 0x11, 0x11}, + [XF_ODBLACUTE] = { 0x09, 0x12, 0x0e, 0x11, 0x11, 0x11, 0x0e}, + [XF_oDBLACUTE] = { 0x09, 0x12, 0x00, 0x0e, 0x11, 0x11, 0x0e}, + [XF_rCARON] = { 0x0a, 0x04, 0x0b, 0x0c, 0x08, 0x08, 0x08}, + [XF_sACUTE] = { 0x02, 0x04, 0x0e, 0x10, 0x0e, 0x01, 0x1e}, + [XF_SCEDILLA] = { 0x0e, 0x10, 0x0e, 0x01, 0x0e, 0x04, 0x0c}, + [XF_sCEDILLA] = { 0x00, 0x0e, 0x10, 0x0e, 0x01, 0x0e, 0x04}, + [XF_sCARON] = { 0x0a, 0x04, 0x0e, 0x10, 0x0e, 0x01, 0x1e}, + [XF_tCARON] = { 0x09, 0x09, 0x08, 0x1e, 0x08, 0x08, 0x06}, + [XF_uRING] = { 0x04, 0x0a, 0x04, 0x11, 0x11, 0x13, 0x0d}, + [XF_UDBLACUTE] = { 0x05, 0x0a, 0x11, 0x11, 0x11, 0x11, 0x0e}, + [XF_uDBLACUTE] = { 0x09, 0x12, 0x00, 0x11, 0x11, 0x13, 0x0d}, + [XF_zACUTE] = { 0x02, 0x04, 0x1f, 0x02, 0x04, 0x08, 0x1f}, + [XF_zDOT] = { 0x04, 0x00, 0x1f, 0x02, 0x04, 0x08, 0x1f}, + [XF_zCARON] = { 0x0a, 0x04, 0x1f, 0x02, 0x04, 0x08, 0x1f}, /* Greek */ - [XF_GR_DELTA] = { 0x04, 0x04, 0x0a, 0x0a, 0x11, 0x11, 0x1f, 0x00}, - [XF_GR_THETA] = { 0x0e, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x0e, 0x00}, - [XF_GR_LAMBDA] = { 0x04, 0x04, 0x0a, 0x0a, 0x11, 0x11, 0x11, 0x00}, - [XF_GR_XI] = { 0x1f, 0x11, 0x00, 0x0e, 0x00, 0x11, 0x1f, 0x00}, - [XF_GR_PSI] = { 0x15, 0x15, 0x15, 0x15, 0x0e, 0x04, 0x04, 0x00}, - [XF_GR_alpha] = { 0x00, 0x00, 0x09, 0x15, 0x12, 0x12, 0x0d, 0x00}, - [XF_GR_alphaTONOS] = { 0x02, 0x04, 0x09, 0x15, 0x12, 0x12, 0x0d, 0x00}, - [XF_GR_gamma] = { 0x00, 0x11, 0x0a, 0x0a, 0x04, 0x04, 0x08, 0x00}, - [XF_GR_epsilon] = { 0x00, 0x00, 0x0f, 0x10, 0x0e, 0x10, 0x0f, 0x00}, - [XF_GR_epsilonTONOS] = { 0x02, 0x04, 0x0f, 0x10, 0x0e, 0x10, 0x0f, 0x00}, - [XF_GR_zeta] = { 0x1e, 0x08, 0x10, 0x10, 0x0e, 0x01, 0x06, 0x00}, - [XF_GR_eta] = { 0x00, 0x16, 0x19, 0x11, 0x11, 0x11, 0x01, 0x00}, - [XF_GR_etaTONOS] = { 0x02, 0x04, 0x16, 0x19, 0x11, 0x11, 0x01, 0x00}, - [XF_GR_iota] = { 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x02, 0x00}, - [XF_GR_lambda] = { 0x88, 0x04, 0x04, 0x0a, 0x0a, 0x11, 0x11, 0x00}, - [XF_GR_xi] = { 0x0c, 0x10, 0x0c, 0x10, 0x0e, 0x01, 0x06, 0x00}, - [XF_GR_rho] = { 0x00, 0x0e, 0x11, 0x11, 0x19, 0x16, 0x10, 0x00}, - [XF_GR_FINALsigma] = { 0x00, 0x0e, 0x10, 0x10, 0x0e, 0x01, 0x06, 0x00}, - [XF_GR_sigma] = { 0x00, 0x00, 0x0f, 0x14, 0x12, 0x11, 0x0e, 0x00}, - [XF_GR_upsilon] = { 0x00, 0x00, 0x11, 0x09, 0x09, 0x09, 0x06, 0x00}, - [XF_GR_upsilonTONOS] = { 0x02, 0x04, 0x11, 0x09, 0x09, 0x09, 0x06, 0x00}, - [XF_GR_chi] = { 0x00, 0x12, 0x0a, 0x04, 0x04, 0x0a, 0x09, 0x00}, - [XF_GR_psi] = { 0x00, 0x15, 0x15, 0x15, 0x0e, 0x04, 0x04, 0x00}, - [XF_GR_omega] = { 0x00, 0x00, 0x0a, 0x11, 0x15, 0x15, 0x0a, 0x00}, - [XF_GR_omegaTONOS] = { 0x02, 0x04, 0x0a, 0x11, 0x15, 0x15, 0x0a, 0x00}, + [XF_GR_DELTA] = { 0x04, 0x04, 0x0a, 0x0a, 0x11, 0x11, 0x1f}, + [XF_GR_THETA] = { 0x0e, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x0e}, + [XF_GR_LAMBDA] = { 0x04, 0x04, 0x0a, 0x0a, 0x11, 0x11, 0x11}, + [XF_GR_XI] = { 0x1f, 0x11, 0x00, 0x0e, 0x00, 0x11, 0x1f}, + [XF_GR_PSI] = { 0x15, 0x15, 0x15, 0x15, 0x0e, 0x04, 0x04}, + [XF_GR_alpha] = { 0x00, 0x00, 0x09, 0x15, 0x12, 0x12, 0x0d}, + [XF_GR_alphaTONOS] = { 0x02, 0x04, 0x09, 0x15, 0x12, 0x12, 0x0d}, + [XF_GR_gamma] = { 0x00, 0x11, 0x0a, 0x0a, 0x04, 0x04, 0x08}, + [XF_GR_epsilon] = { 0x00, 0x00, 0x0f, 0x10, 0x0e, 0x10, 0x0f}, + [XF_GR_epsilonTONOS] = { 0x02, 0x04, 0x0f, 0x10, 0x0e, 0x10, 0x0f}, + [XF_GR_zeta] = { 0x1e, 0x08, 0x10, 0x10, 0x0e, 0x01, 0x06}, + [XF_GR_eta] = { 0x00, 0x16, 0x19, 0x11, 0x11, 0x11, 0x01}, + [XF_GR_etaTONOS] = { 0x02, 0x04, 0x16, 0x19, 0x11, 0x11, 0x01}, + [XF_GR_iota] = { 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x02}, + [XF_GR_lambda] = { 0x88, 0x04, 0x04, 0x0a, 0x0a, 0x11, 0x11}, + [XF_GR_xi] = { 0x0c, 0x10, 0x0c, 0x10, 0x0e, 0x01, 0x06}, + [XF_GR_rho] = { 0x00, 0x0e, 0x11, 0x11, 0x19, 0x16, 0x10}, + [XF_GR_FINALsigma] = { 0x00, 0x0e, 0x10, 0x10, 0x0e, 0x01, 0x06}, + [XF_GR_sigma] = { 0x00, 0x00, 0x0f, 0x14, 0x12, 0x11, 0x0e}, + [XF_GR_upsilon] = { 0x00, 0x00, 0x11, 0x09, 0x09, 0x09, 0x06}, + [XF_GR_upsilonTONOS] = { 0x02, 0x04, 0x11, 0x09, 0x09, 0x09, 0x06}, + [XF_GR_chi] = { 0x00, 0x12, 0x0a, 0x04, 0x04, 0x0a, 0x09}, + [XF_GR_psi] = { 0x00, 0x15, 0x15, 0x15, 0x0e, 0x04, 0x04}, + [XF_GR_omega] = { 0x00, 0x00, 0x0a, 0x11, 0x15, 0x15, 0x0a}, + [XF_GR_omegaTONOS] = { 0x02, 0x04, 0x0a, 0x11, 0x15, 0x15, 0x0a}, /* Cyrillic */ - [XF_CYR_BE] = { 0x1f, 0x10, 0x10, 0x1e, 0x11, 0x11, 0x1e, 0x00}, - [XF_CYR_GHE] = { 0x1f, 0x11, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00}, - [XF_CYR_DE] = { 0x07, 0x09, 0x09, 0x09, 0x09, 0x1f, 0x11, 0x00}, - [XF_CYR_ZHE] = { 0x15, 0x15, 0x0e, 0x04, 0x0e, 0x15, 0x15, 0x00}, - [XF_CYR_ZE] = { 0x0e, 0x11, 0x01, 0x0e, 0x01, 0x11, 0x0e, 0x00}, - [XF_CYR_I] = { 0x11, 0x11, 0x13, 0x15, 0x19, 0x11, 0x11, 0x00}, - [XF_CYR_SHORTI] = { 0x0a, 0x04, 0x11, 0x13, 0x15, 0x19, 0x11, 0x00}, - [XF_CYR_EL] = { 0x0f, 0x09, 0x09, 0x09, 0x09, 0x09, 0x11, 0x00}, - [XF_CYR_PE] = { 0x1f, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x00}, - [XF_CYR_TSE] = { 0x11, 0x11, 0x11, 0x11, 0x11, 0x1f, 0x01, 0x00}, - [XF_CYR_CHE] = { 0x11, 0x11, 0x11, 0x0f, 0x01, 0x01, 0x01, 0x00}, - [XF_CYR_SHA] = { 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x1f, 0x00}, - [XF_CYR_SHCHA] = { 0x15, 0x15, 0x15, 0x15, 0x15, 0x1f, 0x01, 0x00}, - [XF_CYR_HARD] = { 0x18, 0x08, 0x08, 0x0e, 0x09, 0x09, 0x0e, 0x00}, - [XF_CYR_YERU] = { 0x11, 0x11, 0x11, 0x19, 0x15, 0x15, 0x19, 0x00}, - [XF_CYR_E] = { 0x0e, 0x11, 0x01, 0x07, 0x01, 0x11, 0x0e, 0x00}, - [XF_CYR_YU] = { 0x12, 0x15, 0x15, 0x1d, 0x15, 0x15, 0x12, 0x00}, - [XF_CYR_YA] = { 0x0f, 0x11, 0x11, 0x0f, 0x05, 0x09, 0x11, 0x00}, - [XF_CYR_be] = { 0x0f, 0x10, 0x0e, 0x11, 0x11, 0x11, 0x0e, 0x00}, - [XF_CYR_ve] = { 0x00, 0x00, 0x1e, 0x11, 0x1e, 0x11, 0x1e, 0x00}, - [XF_CYR_ghe] = { 0x00, 0x00, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x00}, - [XF_CYR_de] = { 0x00, 0x00, 0x06, 0x0a, 0x0a, 0x1f, 0x11, 0x00}, - [XF_CYR_zhe] = { 0x00, 0x00, 0x15, 0x0e, 0x04, 0x0e, 0x15, 0x00}, - [XF_CYR_ze] = { 0x00, 0x00, 0x1e, 0x01, 0x0e, 0x01, 0x1e, 0x00}, - [XF_CYR_i] = { 0x00, 0x00, 0x11, 0x13, 0x15, 0x19, 0x11, 0x00}, - [XF_CYR_SHORTi] = { 0x0a, 0x04, 0x00, 0x11, 0x13, 0x15, 0x19, 0x00}, - [XF_CYR_ka] = { 0x00, 0x00, 0x11, 0x12, 0x1c, 0x12, 0x11, 0x00}, - [XF_CYR_el] = { 0x00, 0x00, 0x0f, 0x09, 0x09, 0x09, 0x11, 0x00}, - [XF_CYR_em] = { 0x00, 0x00, 0x11, 0x1b, 0x15, 0x11, 0x11, 0x00}, - [XF_CYR_en] = { 0x00, 0x00, 0x11, 0x11, 0x1f, 0x11, 0x11, 0x00}, - [XF_CYR_pe] = { 0x00, 0x00, 0x1f, 0x11, 0x11, 0x11, 0x11, 0x00}, - [XF_CYR_te] = { 0x00, 0x00, 0x1f, 0x04, 0x04, 0x04, 0x04, 0x00}, - [XF_CYR_tse] = { 0x00, 0x00, 0x11, 0x11, 0x11, 0x1f, 0x01, 0x00}, - [XF_CYR_che] = { 0x00, 0x00, 0x11, 0x11, 0x0f, 0x01, 0x01, 0x00}, - [XF_CYR_sha] = { 0x00, 0x00, 0x15, 0x15, 0x15, 0x15, 0x1f, 0x00}, - [XF_CYR_shcha] = { 0x00, 0x00, 0x15, 0x15, 0x15, 0x1f, 0x01, 0x00}, - [XF_CYR_hard] = { 0x00, 0x00, 0x18, 0x0e, 0x09, 0x09, 0x0e, 0x00}, - [XF_CYR_yeru] = { 0x00, 0x00, 0x11, 0x19, 0x15, 0x15, 0x19, 0x00}, - [XF_CYR_soft] = { 0x00, 0x00, 0x08, 0x0e, 0x09, 0x09, 0x0e, 0x00}, - [XF_CYR_e] = { 0x00, 0x00, 0x0e, 0x11, 0x03, 0x11, 0x0e, 0x00}, - [XF_CYR_yu] = { 0x00, 0x00, 0x12, 0x15, 0x1d, 0x15, 0x12, 0x00}, - [XF_CYR_ya] = { 0x00, 0x00, 0x0f, 0x11, 0x0f, 0x09, 0x11, 0x00}, + [XF_CYR_BE] = { 0x1f, 0x10, 0x10, 0x1e, 0x11, 0x11, 0x1e}, + [XF_CYR_GHE] = { 0x1f, 0x11, 0x10, 0x10, 0x10, 0x10, 0x10}, + [XF_CYR_DE] = { 0x07, 0x09, 0x09, 0x09, 0x09, 0x1f, 0x11}, + [XF_CYR_ZHE] = { 0x15, 0x15, 0x0e, 0x04, 0x0e, 0x15, 0x15}, + [XF_CYR_ZE] = { 0x0e, 0x11, 0x01, 0x0e, 0x01, 0x11, 0x0e}, + [XF_CYR_I] = { 0x11, 0x11, 0x13, 0x15, 0x19, 0x11, 0x11}, + [XF_CYR_SHORTI] = { 0x0a, 0x04, 0x11, 0x13, 0x15, 0x19, 0x11}, + [XF_CYR_EL] = { 0x0f, 0x09, 0x09, 0x09, 0x09, 0x09, 0x11}, + [XF_CYR_PE] = { 0x1f, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11}, + [XF_CYR_TSE] = { 0x11, 0x11, 0x11, 0x11, 0x11, 0x1f, 0x01}, + [XF_CYR_CHE] = { 0x11, 0x11, 0x11, 0x0f, 0x01, 0x01, 0x01}, + [XF_CYR_SHA] = { 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x1f}, + [XF_CYR_SHCHA] = { 0x15, 0x15, 0x15, 0x15, 0x15, 0x1f, 0x01}, + [XF_CYR_HARD] = { 0x18, 0x08, 0x08, 0x0e, 0x09, 0x09, 0x0e}, + [XF_CYR_YERU] = { 0x11, 0x11, 0x11, 0x19, 0x15, 0x15, 0x19}, + [XF_CYR_E] = { 0x0e, 0x11, 0x01, 0x07, 0x01, 0x11, 0x0e}, + [XF_CYR_YU] = { 0x12, 0x15, 0x15, 0x1d, 0x15, 0x15, 0x12}, + [XF_CYR_YA] = { 0x0f, 0x11, 0x11, 0x0f, 0x05, 0x09, 0x11}, + [XF_CYR_be] = { 0x0f, 0x10, 0x0e, 0x11, 0x11, 0x11, 0x0e}, + [XF_CYR_ve] = { 0x00, 0x00, 0x1e, 0x11, 0x1e, 0x11, 0x1e}, + [XF_CYR_ghe] = { 0x00, 0x00, 0x1f, 0x10, 0x10, 0x10, 0x10}, + [XF_CYR_de] = { 0x00, 0x00, 0x06, 0x0a, 0x0a, 0x1f, 0x11}, + [XF_CYR_zhe] = { 0x00, 0x00, 0x15, 0x0e, 0x04, 0x0e, 0x15}, + [XF_CYR_ze] = { 0x00, 0x00, 0x1e, 0x01, 0x0e, 0x01, 0x1e}, + [XF_CYR_i] = { 0x00, 0x00, 0x11, 0x13, 0x15, 0x19, 0x11}, + [XF_CYR_SHORTi] = { 0x0a, 0x04, 0x00, 0x11, 0x13, 0x15, 0x19}, + [XF_CYR_ka] = { 0x00, 0x00, 0x11, 0x12, 0x1c, 0x12, 0x11}, + [XF_CYR_el] = { 0x00, 0x00, 0x0f, 0x09, 0x09, 0x09, 0x11}, + [XF_CYR_em] = { 0x00, 0x00, 0x11, 0x1b, 0x15, 0x11, 0x11}, + [XF_CYR_en] = { 0x00, 0x00, 0x11, 0x11, 0x1f, 0x11, 0x11}, + [XF_CYR_pe] = { 0x00, 0x00, 0x1f, 0x11, 0x11, 0x11, 0x11}, + [XF_CYR_te] = { 0x00, 0x00, 0x1f, 0x04, 0x04, 0x04, 0x04}, + [XF_CYR_tse] = { 0x00, 0x00, 0x11, 0x11, 0x11, 0x1f, 0x01}, + [XF_CYR_che] = { 0x00, 0x00, 0x11, 0x11, 0x0f, 0x01, 0x01}, + [XF_CYR_sha] = { 0x00, 0x00, 0x15, 0x15, 0x15, 0x15, 0x1f}, + [XF_CYR_shcha] = { 0x00, 0x00, 0x15, 0x15, 0x15, 0x1f, 0x01}, + [XF_CYR_hard] = { 0x00, 0x00, 0x18, 0x0e, 0x09, 0x09, 0x0e}, + [XF_CYR_yeru] = { 0x00, 0x00, 0x11, 0x19, 0x15, 0x15, 0x19}, + [XF_CYR_soft] = { 0x00, 0x00, 0x08, 0x0e, 0x09, 0x09, 0x0e}, + [XF_CYR_e] = { 0x00, 0x00, 0x0e, 0x11, 0x03, 0x11, 0x0e}, + [XF_CYR_yu] = { 0x00, 0x00, 0x12, 0x15, 0x1d, 0x15, 0x12}, + [XF_CYR_ya] = { 0x00, 0x00, 0x0f, 0x11, 0x0f, 0x09, 0x11}, #endif /* !BOOTLOADER */ }; diff --git a/firmware/export/lcd-charcell.h b/firmware/export/lcd-charcell.h index 2676056e63..9a93cf19de 100644 --- a/firmware/export/lcd-charcell.h +++ b/firmware/export/lcd-charcell.h @@ -35,7 +35,7 @@ extern int hw_pattern_count; /* actual number of user-definable hw patterns */ extern const struct xchar_info *xchar_info; extern int xchar_info_size; /* number of entries */ -extern const unsigned char xfont_fixed[][8]; +extern const unsigned char xfont_fixed[][HW_PATTERN_SIZE]; void lcd_charset_init(void); -- cgit v1.2.3