Clemens Valens
/
LED_panel
32x64 3-color message board http://elektorembedded.blogspot.com/
Diff: arial_8pt.c
- Revision:
- 0:7a63bd42cf24
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/arial_8pt.c Wed May 05 12:04:34 2010 +0000 @@ -0,0 +1,405 @@ +/* +** Font data for Arial 8pt +*/ + +#include "font.h" +#include "arial_8pt.h" + +/* Character bitmaps for Arial 8pt */ +const uint8_t arial_8pt_char_bitmaps[] = +{ + /* @0 ' ' (2 pixels wide) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + /* @10 '!' (1 pixels wide) */ + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0x00, 0x00, + + /* @20 '"' (3 pixels wide) */ + 0xA0, 0xA0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + /* @30 '#' (5 pixels wide) */ + 0x28, 0x28, 0xF8, 0x50, 0x50, 0xF8, 0xA0, 0xA0, 0x00, 0x00, + + /* @40 '$' (5 pixels wide) */ + 0x70, 0xA8, 0xA0, 0x70, 0x28, 0x28, 0xA8, 0x70, 0x20, 0x00, + + /* @50 '%' (9 pixels wide) */ + 0x62, 0x00, 0x94, 0x00, 0x94, 0x00, 0x68, 0x00, 0x0B, 0x00, 0x14, 0x80, 0x14, 0x80, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, + + /* @70 '&' (6 pixels wide) */ + 0x30, 0x48, 0x48, 0x30, 0x50, 0x8C, 0x88, 0x74, 0x00, 0x00, + + /* @80 ''' (1 pixels wide) */ + 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + /* @90 '(' (3 pixels wide) */ + 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x20, + + /* @100 ')' (3 pixels wide) */ + 0x80, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x80, + + /* @110 '*' (3 pixels wide) */ + 0x40, 0xE0, 0x40, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + /* @120 '+' (5 pixels wide) */ + 0x00, 0x00, 0x20, 0x20, 0xF8, 0x20, 0x20, 0x00, 0x00, 0x00, + + /* @130 ',' (1 pixels wide) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, + + /* @140 '-' (3 pixels wide) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, + + /* @150 '.' (1 pixels wide) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + + /* @160 '/' (3 pixels wide) */ + 0x20, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, + + /* @170 '0' (5 pixels wide) */ + 0x70, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00, + + /* @180 '1' (3 pixels wide) */ + 0x20, 0x60, 0xA0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, + + /* @190 '2' (5 pixels wide) */ + 0x70, 0x88, 0x08, 0x08, 0x10, 0x20, 0x40, 0xF8, 0x00, 0x00, + + /* @200 '3' (5 pixels wide) */ + 0x70, 0x88, 0x08, 0x30, 0x08, 0x08, 0x88, 0x70, 0x00, 0x00, + + /* @210 '4' (5 pixels wide) */ + 0x10, 0x30, 0x50, 0x50, 0x90, 0xF8, 0x10, 0x10, 0x00, 0x00, + + /* @220 '5' (5 pixels wide) */ + 0x78, 0x40, 0x80, 0xF0, 0x08, 0x08, 0x88, 0x70, 0x00, 0x00, + + /* @230 '6' (5 pixels wide) */ + 0x70, 0x88, 0x80, 0xF0, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00, + + /* @240 '7' (5 pixels wide) */ + 0xF8, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x00, 0x00, + + /* @250 '8' (5 pixels wide) */ + 0x70, 0x88, 0x88, 0x70, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00, + + /* @260 '9' (5 pixels wide) */ + 0x70, 0x88, 0x88, 0x88, 0x78, 0x08, 0x88, 0x70, 0x00, 0x00, + + /* @270 ':' (1 pixels wide) */ + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + + /* @280 ';' (1 pixels wide) */ + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, + + /* @290 '<' (5 pixels wide) */ + 0x00, 0x00, 0x08, 0x70, 0x80, 0x70, 0x08, 0x00, 0x00, 0x00, + + /* @300 '=' (5 pixels wide) */ + 0x00, 0x00, 0x00, 0xF8, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00, + + /* @310 '>' (5 pixels wide) */ + 0x00, 0x00, 0x80, 0x70, 0x08, 0x70, 0x80, 0x00, 0x00, 0x00, + + /* @320 '?' (5 pixels wide) */ + 0x70, 0x88, 0x08, 0x10, 0x20, 0x20, 0x00, 0x20, 0x00, 0x00, + + /* @330 '@' (10 pixels wide) */ + 0x1F, 0x00, 0x60, 0x80, 0x4D, 0x40, 0x93, 0x40, 0xA2, 0x40, 0xA2, 0x40, 0xA6, 0x80, 0x9B, 0x00, 0x40, 0x40, 0x3F, 0x80, + + /* @350 'A' (7 pixels wide) */ + 0x10, 0x28, 0x28, 0x28, 0x44, 0x7C, 0x82, 0x82, 0x00, 0x00, + + /* @360 'B' (6 pixels wide) */ + 0xF8, 0x84, 0x84, 0xFC, 0x84, 0x84, 0x84, 0xF8, 0x00, 0x00, + + /* @370 'C' (6 pixels wide) */ + 0x38, 0x44, 0x80, 0x80, 0x80, 0x80, 0x44, 0x38, 0x00, 0x00, + + /* @380 'D' (6 pixels wide) */ + 0xF0, 0x88, 0x84, 0x84, 0x84, 0x84, 0x88, 0xF0, 0x00, 0x00, + + /* @390 'E' (5 pixels wide) */ + 0xF8, 0x80, 0x80, 0xF8, 0x80, 0x80, 0x80, 0xF8, 0x00, 0x00, + + /* @400 'F' (5 pixels wide) */ + 0xF8, 0x80, 0x80, 0xF0, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, + + /* @410 'G' (7 pixels wide) */ + 0x38, 0x44, 0x82, 0x80, 0x8E, 0x82, 0x44, 0x38, 0x00, 0x00, + + /* @420 'H' (6 pixels wide) */ + 0x84, 0x84, 0x84, 0xFC, 0x84, 0x84, 0x84, 0x84, 0x00, 0x00, + + /* @430 'I' (1 pixels wide) */ + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, + + /* @440 'J' (4 pixels wide) */ + 0x10, 0x10, 0x10, 0x10, 0x10, 0x90, 0x90, 0x60, 0x00, 0x00, + + /* @450 'K' (6 pixels wide) */ + 0x84, 0x88, 0x90, 0xB0, 0xD0, 0x88, 0x88, 0x84, 0x00, 0x00, + + /* @460 'L' (5 pixels wide) */ + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xF8, 0x00, 0x00, + + /* @470 'M' (7 pixels wide) */ + 0x82, 0xC6, 0xC6, 0xAA, 0xAA, 0xAA, 0x92, 0x92, 0x00, 0x00, + + /* @480 'N' (6 pixels wide) */ + 0x84, 0xC4, 0xA4, 0xA4, 0x94, 0x94, 0x8C, 0x84, 0x00, 0x00, + + /* @490 'O' (7 pixels wide) */ + 0x38, 0x44, 0x82, 0x82, 0x82, 0x82, 0x44, 0x38, 0x00, 0x00, + + /* @500 'P' (5 pixels wide) */ + 0xF0, 0x88, 0x88, 0x88, 0xF0, 0x80, 0x80, 0x80, 0x00, 0x00, + + /* @510 'Q' (7 pixels wide) */ + 0x38, 0x44, 0x82, 0x82, 0x82, 0x9A, 0x44, 0x3A, 0x00, 0x00, + + /* @520 'R' (6 pixels wide) */ + 0xF8, 0x84, 0x84, 0xF8, 0x90, 0x88, 0x88, 0x84, 0x00, 0x00, + + /* @530 'S' (6 pixels wide) */ + 0x78, 0x84, 0x80, 0x60, 0x18, 0x04, 0x84, 0x78, 0x00, 0x00, + + /* @540 'T' (5 pixels wide) */ + 0xF8, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, + + /* @550 'U' (6 pixels wide) */ + 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x78, 0x00, 0x00, + + /* @560 'V' (7 pixels wide) */ + 0x82, 0x82, 0x44, 0x44, 0x28, 0x28, 0x10, 0x10, 0x00, 0x00, + + /* @570 'W' (11 pixels wide) */ + 0x84, 0x20, 0x8A, 0x20, 0x4A, 0x40, 0x4A, 0x40, 0x51, 0x40, 0x51, 0x40, 0x20, 0x80, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, + + /* @590 'X' (6 pixels wide) */ + 0x84, 0x48, 0x48, 0x30, 0x30, 0x48, 0x48, 0x84, 0x00, 0x00, + + /* @600 'Y' (7 pixels wide) */ + 0x82, 0x44, 0x44, 0x28, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, + + /* @610 'Z' (6 pixels wide) */ + 0x7C, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0xFC, 0x00, 0x00, + + /* @620 '[' (2 pixels wide) */ + 0xC0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xC0, + + /* @630 '\' (3 pixels wide) */ + 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x00, 0x00, + + /* @640 ']' (2 pixels wide) */ + 0xC0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xC0, + + /* @650 '^' (5 pixels wide) */ + 0x20, 0x50, 0x50, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + /* @660 '_' (6 pixels wide) */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, + + /* @670 '`' (2 pixels wide) */ + 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + /* @680 'a' (5 pixels wide) */ + 0x00, 0x00, 0x70, 0x88, 0x78, 0x88, 0x98, 0x68, 0x00, 0x00, + + /* @690 'b' (5 pixels wide) */ + 0x80, 0x80, 0xB0, 0xC8, 0x88, 0x88, 0xC8, 0xB0, 0x00, 0x00, + + /* @700 'c' (5 pixels wide) */ + 0x00, 0x00, 0x70, 0x88, 0x80, 0x80, 0x88, 0x70, 0x00, 0x00, + + /* @710 'd' (5 pixels wide) */ + 0x08, 0x08, 0x68, 0x98, 0x88, 0x88, 0x98, 0x68, 0x00, 0x00, + + /* @720 'e' (5 pixels wide) */ + 0x00, 0x00, 0x70, 0x88, 0xF8, 0x80, 0x88, 0x70, 0x00, 0x00, + + /* @730 'f' (3 pixels wide) */ + 0x20, 0x40, 0xE0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, + + /* @740 'g' (5 pixels wide) */ + 0x00, 0x00, 0x68, 0x98, 0x88, 0x88, 0x98, 0x68, 0x08, 0xF0, + + /* @750 'h' (5 pixels wide) */ + 0x80, 0x80, 0xB0, 0xC8, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, + + /* @760 'i' (1 pixels wide) */ + 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, + + /* @770 'j' (2 pixels wide) */ + 0x40, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, + + /* @780 'k' (4 pixels wide) */ + 0x80, 0x80, 0x90, 0xA0, 0xC0, 0xA0, 0xA0, 0x90, 0x00, 0x00, + + /* @790 'l' (1 pixels wide) */ + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, + + /* @800 'm' (7 pixels wide) */ + 0x00, 0x00, 0xBC, 0xD2, 0x92, 0x92, 0x92, 0x92, 0x00, 0x00, + + /* @810 'n' (5 pixels wide) */ + 0x00, 0x00, 0xF0, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, + + /* @820 'o' (5 pixels wide) */ + 0x00, 0x00, 0x70, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00, 0x00, + + /* @830 'p' (5 pixels wide) */ + 0x00, 0x00, 0xB0, 0xC8, 0x88, 0x88, 0xC8, 0xB0, 0x80, 0x80, + + /* @840 'q' (5 pixels wide) */ + 0x00, 0x00, 0x68, 0x98, 0x88, 0x88, 0x98, 0x68, 0x08, 0x08, + + /* @850 'r' (3 pixels wide) */ + 0x00, 0x00, 0xA0, 0xC0, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, + + /* @860 's' (5 pixels wide) */ + 0x00, 0x00, 0x70, 0x88, 0x60, 0x10, 0x88, 0x70, 0x00, 0x00, + + /* @870 't' (3 pixels wide) */ + 0x40, 0x40, 0xE0, 0x40, 0x40, 0x40, 0x40, 0x60, 0x00, 0x00, + + /* @880 'u' (5 pixels wide) */ + 0x00, 0x00, 0x88, 0x88, 0x88, 0x88, 0x98, 0x68, 0x00, 0x00, + + /* @890 'v' (5 pixels wide) */ + 0x00, 0x00, 0x88, 0x88, 0x50, 0x50, 0x20, 0x20, 0x00, 0x00, + + /* @900 'w' (9 pixels wide) */ + 0x00, 0x00, 0x00, 0x00, 0x88, 0x80, 0x94, 0x80, 0x55, 0x00, 0x55, 0x00, 0x22, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, + + /* @920 'x' (5 pixels wide) */ + 0x00, 0x00, 0x88, 0x50, 0x20, 0x20, 0x50, 0x88, 0x00, 0x00, + + /* @930 'y' (5 pixels wide) */ + 0x00, 0x00, 0x88, 0x88, 0x50, 0x50, 0x20, 0x20, 0x20, 0x40, + + /* @940 'z' (5 pixels wide) */ + 0x00, 0x00, 0xF8, 0x10, 0x20, 0x20, 0x40, 0xF8, 0x00, 0x00, + + /* @950 '{' (3 pixels wide) */ + 0x20, 0x40, 0x40, 0x40, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, + + /* @960 '|' (1 pixels wide) */ + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, + + /* @970 '}' (3 pixels wide) */ + 0x80, 0x40, 0x40, 0x40, 0x20, 0x40, 0x40, 0x40, 0x40, 0x80, + + /* @980 '~' (5 pixels wide) */ + 0x00, 0x00, 0x00, 0xE8, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +/* Character descriptors for Arial 8pt */ +/* { [Char width in bits], [Offset into arial8ptCharBitmaps in bytes] } */ +const FONT_CHAR_INFO arial_8pt_char_descriptors[] = +{ + {2, 0}, /* */ + {1, 10}, /* ! */ + {3, 20}, /* " */ + {5, 30}, /* # */ + {5, 40}, /* $ */ + {9, 50}, /* % */ + {6, 70}, /* & */ + {1, 80}, /* ' */ + {3, 90}, /* ( */ + {3, 100}, /* ) */ + {3, 110}, /* * */ + {5, 120}, /* + */ + {1, 130}, /* , */ + {3, 140}, /* - */ + {1, 150}, /* . */ + {3, 160}, /* / */ + {5, 170}, /* 0 */ + {3, 180}, /* 1 */ + {5, 190}, /* 2 */ + {5, 200}, /* 3 */ + {5, 210}, /* 4 */ + {5, 220}, /* 5 */ + {5, 230}, /* 6 */ + {5, 240}, /* 7 */ + {5, 250}, /* 8 */ + {5, 260}, /* 9 */ + {1, 270}, /* : */ + {1, 280}, /* ; */ + {5, 290}, /* < */ + {5, 300}, /* = */ + {5, 310}, /* > */ + {5, 320}, /* ? */ + {10, 330}, /* @ */ + {7, 350}, /* A */ + {6, 360}, /* B */ + {6, 370}, /* C */ + {6, 380}, /* D */ + {5, 390}, /* E */ + {5, 400}, /* F */ + {7, 410}, /* G */ + {6, 420}, /* H */ + {1, 430}, /* I */ + {4, 440}, /* J */ + {6, 450}, /* K */ + {5, 460}, /* L */ + {7, 470}, /* M */ + {6, 480}, /* N */ + {7, 490}, /* O */ + {5, 500}, /* P */ + {7, 510}, /* Q */ + {6, 520}, /* R */ + {6, 530}, /* S */ + {5, 540}, /* T */ + {6, 550}, /* U */ + {7, 560}, /* V */ + {11, 570}, /* W */ + {6, 590}, /* X */ + {7, 600}, /* Y */ + {6, 610}, /* Z */ + {2, 620}, /* [ */ + {3, 630}, /* \ */ + {2, 640}, /* ] */ + {5, 650}, /* ^ */ + {6, 660}, /* _ */ + {2, 670}, /* ` */ + {5, 680}, /* a */ + {5, 690}, /* b */ + {5, 700}, /* c */ + {5, 710}, /* d */ + {5, 720}, /* e */ + {3, 730}, /* f */ + {5, 740}, /* g */ + {5, 750}, /* h */ + {1, 760}, /* i */ + {2, 770}, /* j */ + {4, 780}, /* k */ + {1, 790}, /* l */ + {7, 800}, /* m */ + {5, 810}, /* n */ + {5, 820}, /* o */ + {5, 830}, /* p */ + {5, 840}, /* q */ + {3, 850}, /* r */ + {5, 860}, /* s */ + {3, 870}, /* t */ + {5, 880}, /* u */ + {5, 890}, /* v */ + {9, 900}, /* w */ + {5, 920}, /* x */ + {5, 930}, /* y */ + {5, 940}, /* z */ + {3, 950}, /* { */ + {1, 960}, /* | */ + {3, 970}, /* } */ + {5, 980}, /* ~ */ +}; + +/* Font information for Arial 8pt */ +const FONT_INFO arial_8pt_font_info = +{ + 10, /* Character height in bits */ + ' ', /* Start character */ + arial_8pt_char_descriptors, /* Character decriptor array */ + arial_8pt_char_bitmaps, /* Character bitmap array */ +};