Forum Menu




 


Log in Problems?
New User? Sign Up!
AVR Freaks Forum Index

Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Author Message
barnacle
PostPosted: Oct 09, 2008 - 06:20 PM
Raving lunatic


Joined: Jan 03, 2006
Posts: 4417
Location: Hemel Hemsptead, UK

Here are the definitions for two bitmap fonts intended for use on small graphics devices like LCD graphic displays.

Cut'n'paste to insert in your program. They're in C but easy to translate to assembler; they're only a lump of data. Neither of them carries any information for characters below ascii ' ' - 0x20 - the non-printing characters, to save space. They're formatted to suit the bitmap display of most of the common LCDs where 8-bit bytes are stacked vertically with bit0 at the top, with adjacent bytes in the next vertical column.

The first if 5 wide by 7 high, so no true descenders, but it fits in a 6 by 8 character cell. To display, subtract 0x20 from your ascii code, use the result as a pointer into the table, set up the address on the LCD chip, and write five bytes in sequence. Then write a zero to the next byte. The internal pointers will then look after themselves and you're ready for the next character. (You'll want to keep an eye on line position).

Code:
const unsigned char font[480] PROGMEM = {
   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5f,0x00,0x00,   //  !
   0x00,0x03,0x00,0x03,0x00,0x14,0x7f,0x14,0x7f,0x14,   // "#
   0x24,0x2a,0x7f,0x2a,0x12,0x23,0x13,0x08,0x64,0x62,   // $%
   0x36,0x49,0x55,0x22,0x50,0x00,0x05,0x03,0x00,0x00,   // &'
   0x00,0x1c,0x22,0x41,0x00,0x00,0x41,0x22,0x1c,0x00,   // ()
   0x14,0x08,0x3e,0x08,0x14,0x08,0x08,0x3e,0x08,0x08,   // *+
   0x00,0x50,0x30,0x00,0x00,0x08,0x08,0x08,0x08,0x08,   // ,-
   0x00,0x60,0x60,0x00,0x00,0x20,0x10,0x08,0x04,0x02,   // ./
   0x3e,0x51,0x49,0x45,0x3e,0x00,0x42,0x7f,0x40,0x00,   // 01
   0x42,0x61,0x51,0x49,0x46,0x21,0x41,0x45,0x4b,0x31,   // 23
   0x18,0x14,0x12,0x7f,0x10,0x27,0x45,0x45,0x45,0x39,   // 45
   0x3c,0x4a,0x49,0x49,0x30,0x01,0x71,0x09,0x05,0x03,   // 67
   0x36,0x49,0x49,0x49,0x36,0x06,0x49,0x49,0x29,0x1e,   // 89
   0x00,0x36,0x36,0x00,0x00,0x00,0x56,0x36,0x00,0x00,   // :;
   0x08,0x14,0x22,0x41,0x00,0x14,0x14,0x14,0x14,0x14,   // <=
   0x00,0x41,0x22,0x14,0x08,0x02,0x01,0x51,0x09,0x06,   // >?
   0x32,0x49,0x79,0x41,0x3e,0x7e,0x11,0x11,0x11,0x7e,   //  @A
   0x7f,0x49,0x49,0x49,0x36,0x3e,0x41,0x41,0x41,0x22,   // BC
   0x7f,0x41,0x41,0x22,0x1c,0x7f,0x49,0x49,0x49,0x41,   // DE
   0x7f,0x09,0x09,0x09,0x01,0x3e,0x41,0x49,0x49,0x7a,   // FG
   0x7f,0x08,0x08,0x08,0x7f,0x00,0x41,0x7f,0x41,0x00,   // HI
   0x20,0x40,0x41,0x3f,0x01,0x7f,0x08,0x14,0x22,0x41,   // JK
   0x7f,0x40,0x40,0x40,0x40,0x7f,0x02,0x0c,0x02,0x7f,   // LM
   0x7f,0x04,0x08,0x10,0x7f,0x3e,0x41,0x41,0x41,0x3e,   // NO
   0x7f,0x09,0x09,0x09,0x06,0x3e,0x41,0x51,0x21,0x5e,   // PQ
   0x7f,0x09,0x19,0x29,0x46,0x46,0x49,0x49,0x49,0x31,   // RS
   0x01,0x01,0x7f,0x01,0x01,0x3f,0x40,0x40,0x40,0x3f,   // TU
   0x1f,0x20,0x40,0x20,0x1f,0x3f,0x40,0x38,0x40,0x3f,   // VW
   0x63,0x14,0x08,0x14,0x63,0x07,0x08,0x70,0x08,0x07,   // XY
   0x61,0x51,0x49,0x45,0x43,0x00,0x7f,0x41,0x41,0x00,   // Z[
   0x02,0x04,0x08,0x10,0x20,0x00,0x41,0x41,0x7f,0x00,   // \]
   0x04,0x02,0x01,0x02,0x04,0x40,0x40,0x40,0x40,0x40,   // ^_
   0x00,0x01,0x02,0x04,0x00,0x20,0x54,0x54,0x54,0x78,   // `a
   0x7f,0x48,0x44,0x44,0x38,0x38,0x44,0x44,0x44,0x20,   // bc
   0x38,0x44,0x44,0x48,0x7f,0x38,0x54,0x54,0x54,0x18,   // de
   0x08,0x7e,0x09,0x01,0x02,0x0c,0x52,0x52,0x52,0x3e,   // fg
   0x7f,0x08,0x04,0x04,0x78,0x00,0x44,0x7d,0x40,0x00,   // hi
   0x20,0x40,0x44,0x3d,0x00,0x7f,0x10,0x28,0x44,0x00,   // jk
   0x00,0x41,0x7f,0x40,0x00,0x7c,0x04,0x18,0x04,0x78,   // lm
   0x7c,0x08,0x04,0x04,0x78,0x38,0x44,0x44,0x44,0x38,   // no
   0x7c,0x14,0x14,0x14,0x08,0x08,0x14,0x14,0x18,0x7c,   // pq
   0x7c,0x08,0x04,0x04,0x08,0x48,0x54,0x54,0x54,0x20,   // rs
   0x04,0x3f,0x44,0x40,0x20,0x3c,0x40,0x40,0x20,0x7c,   // tu
   0x1c,0x20,0x40,0x20,0x1c,0x3c,0x40,0x30,0x40,0x3c,   // vw
   0x44,0x28,0x10,0x28,0x44,0x0c,0x50,0x50,0x50,0x3c,   // xy
   0x44,0x64,0x54,0x4c,0x44,0x00,0x08,0x36,0x41,0x00,   // z{
   0x00,0x00,0x7f,0x00,0x00,0x00,0x41,0x36,0x08,0x00,   // |}
   0x10,0x08,0x08,0x10,0x08,0x00,0x00,0x02,0x05,0x02};   // ^degree


The second table use a character of 5 by 12 in a 6 by 16 cell - that is two bytes above each other in the LCD cell. For this font, you need to multiply the ascii value (minus 0x20, of course) by ten to get the pointer to the start of the character. The first five bytes write the top half of the character; the next five write the bottom half.

Code:
const unsigned char font[] PROGMEM = {
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    // ' '
   0x00, 0x00, 0x00, 0x00, 0x0B, 0xF8, 0x00, 0x00, 0x00, 0x00,    // '!'
   0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00,    // '"'
   0x02, 0x20, 0x0F, 0xF8, 0x02, 0x20, 0x0F, 0xF8, 0x02, 0x20,    // '#'
   0x04, 0x60, 0x08, 0x90, 0x1F, 0xF8, 0x09, 0x10, 0x06, 0x20,    // '$'
   0x06, 0x10, 0x01, 0x28, 0x04, 0x90, 0x0A, 0x40, 0x04, 0x30,    // '%'
   0x07, 0x30, 0x08, 0xC8, 0x09, 0x30, 0x06, 0x00, 0x09, 0x00,    // '&'
   0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00,    // '''
   0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x10, 0x04, 0x00, 0x00,    // '('
   0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x0F, 0xF8, 0x00, 0x00,    // ')'
   0x01, 0x10, 0x00, 0xA0, 0x03, 0xF8, 0x00, 0xA0, 0x01, 0x10,    // '*'
   0x01, 0x00, 0x01, 0x00, 0x07, 0xC0, 0x01, 0x00, 0x01, 0x00,    // '+'
   0x00, 0x00, 0x2C, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00,    // ','
   0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00,    // '-'
   0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    // '.'
   0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0, 0x00, 0x38, 0x00, 0x00,    // '/'
   0x07, 0xF0, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x07, 0xF0,    // '0'
   0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x0F, 0xF8, 0x00, 0x00,    // '1'
   0x0C, 0x10, 0x0A, 0x08, 0x09, 0x08, 0x08, 0x88, 0x08, 0x70,    // '2'
   0x04, 0x10, 0x08, 0x08, 0x08, 0x88, 0x08, 0x88, 0x07, 0x70,    // '3'
   0x03, 0x00, 0x02, 0xC0, 0x02, 0x30, 0x0F, 0xF8, 0x02, 0x00,    // '4'
   0x04, 0xF8, 0x08, 0x48, 0x08, 0x48, 0x08, 0x48, 0x07, 0x88,    // '5'
   0x07, 0xF0, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x07, 0x10,    // '6'
   0x00, 0x08, 0x0E, 0x08, 0x01, 0x88, 0x00, 0x68, 0x00, 0x18,    // '7'
   0x07, 0x70, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x07, 0x70,    // '8'
   0x04, 0x70, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x07, 0xF0,    // '9'
   0x0C, 0xC0, 0x0C, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    // ':'
   0x00, 0x00, 0x2C, 0xC0, 0x1C, 0xC0, 0x00, 0x00, 0x00, 0x00,    // ';'
   0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x20, 0x00, 0x00,    // '<'
   0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80,    // '='
   0x08, 0x20, 0x04, 0x40, 0x02, 0x80, 0x01, 0x00, 0x00, 0x00,    // '>'
   0x00, 0x10, 0x00, 0x08, 0x0B, 0x08, 0x00, 0x88, 0x00, 0x70,    // '?'
   0x01, 0xE0, 0x02, 0x10, 0x04, 0xC8, 0x05, 0x28, 0x02, 0xF0,    // '@'
   0x0F, 0x00, 0x02, 0xE0, 0x02, 0x18, 0x02, 0xE0, 0x0F, 0x00,    // 'A'
   0x0F, 0xF8, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x07, 0x70,    // 'B'
   0x07, 0xF0, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x10,    // 'C'
   0x0F, 0xF8, 0x08, 0x08, 0x08, 0x08, 0x04, 0x10, 0x03, 0xE0,    // 'D'
   0x0F, 0xF8, 0x08, 0x88, 0x08, 0x88, 0x08, 0x08, 0x00, 0x00,    // 'E'
   0x0F, 0xF8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x08, 0x00, 0x00,    // 'F'
   0x07, 0xF0, 0x08, 0x08, 0x08, 0x88, 0x04, 0x88, 0x0F, 0x90,    // 'G'
   0x0F, 0xF8, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x0F, 0xF8,    // 'H'
   0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    // 'I'
   0x06, 0x00, 0x08, 0x00, 0x08, 0x00, 0x07, 0xF8, 0x00, 0x00,    // 'J'
   0x0F, 0xF8, 0x00, 0xC0, 0x01, 0x20, 0x02, 0x10, 0x0C, 0x08,    // 'K'
   0x0F, 0xF8, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00,    // 'L'
   0x0F, 0xF8, 0x00, 0x70, 0x01, 0x80, 0x00, 0x70, 0x0F, 0xF8,    // 'M'
   0x0F, 0xF8, 0x00, 0x30, 0x00, 0xC0, 0x03, 0x00, 0x0F, 0xF8,    // 'N'
   0x07, 0xF0, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x07, 0xF0,    // 'O'
   0x0F, 0xF8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x70,    // 'P'
   0x07, 0xF0, 0x08, 0x08, 0x0A, 0x08, 0x0C, 0x08, 0x17, 0xF0,    // 'Q'
   0x0F, 0xF8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x0F, 0x70,    // 'R'
   0x04, 0x70, 0x08, 0x88, 0x08, 0x88, 0x08, 0x88, 0x07, 0x10,    // 'S'
   0x00, 0x08, 0x00, 0x08, 0x0F, 0xF8, 0x00, 0x08, 0x00, 0x08,    // 'T'
   0x07, 0xF8, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x07, 0xF8,    // 'U'
   0x00, 0x38, 0x03, 0xC0, 0x0C, 0x00, 0x03, 0xC0, 0x00, 0x38,    // 'V'
   0x00, 0xF8, 0x0F, 0x00, 0x00, 0xE0, 0x0F, 0x00, 0x00, 0xF8,    // 'W'
   0x0E, 0x38, 0x01, 0x40, 0x00, 0x80, 0x01, 0x40, 0x0E, 0x38,    // 'X'
   0x00, 0x38, 0x00, 0x40, 0x0F, 0x80, 0x00, 0x40, 0x00, 0x38,    // 'Y'
   0x0C, 0x08, 0x0B, 0x08, 0x08, 0x88, 0x08, 0x68, 0x08, 0x18,    // 'Z'
   0x00, 0x00, 0x1F, 0xFC, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00,    // '['
   0x00, 0x00, 0x00, 0x38, 0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00,    // '\'
   0x00, 0x00, 0x10, 0x04, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x00,    // ']'
   0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10,    // '^'
   0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00,    // '_'
   0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    // '`'
   0x06, 0x00, 0x09, 0x40, 0x09, 0x40, 0x09, 0x40, 0x0F, 0x80,    // 'a'
   0x0F, 0xF8, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x07, 0x80,    // 'b'
   0x07, 0x80, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x04, 0x80,    // 'c'
   0x07, 0x80, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x0F, 0xF8,    // 'd'
   0x07, 0x80, 0x09, 0x40, 0x09, 0x40, 0x09, 0x40, 0x05, 0x80,    // 'e'
   0x0F, 0xF0, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x10,    // 'f'
   0x27, 0x80, 0x28, 0x40, 0x28, 0x40, 0x28, 0x40, 0x1F, 0xC0,    // 'g'
   0x0F, 0xF8, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40, 0x0F, 0x80,    // 'h'
   0x00, 0x00, 0x00, 0x00, 0x0F, 0xC8, 0x00, 0x00, 0x00, 0x00,    // 'i'
   0x20, 0x00, 0x20, 0x00, 0x1F, 0xC8, 0x00, 0x00, 0x00, 0x00,    // 'j'
   0x0F, 0xF8, 0x01, 0x00, 0x02, 0x80, 0x04, 0x40, 0x08, 0x00,    // 'k'
   0x00, 0x00, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x00,    // 'l'
   0x0F, 0xC0, 0x00, 0x40, 0x0F, 0x80, 0x00, 0x40, 0x0F, 0x80,    // 'm'
   0x0F, 0xC0, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40, 0x0F, 0x80,    // 'n'
   0x07, 0x80, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x07, 0x80,    // 'o'
   0x3F, 0xC0, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x07, 0x80,    // 'p'
   0x07, 0x80, 0x08, 0x40, 0x08, 0x40, 0x08, 0x40, 0x3F, 0xC0,    // 'q'
   0x0F, 0xC0, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00,    // 'r'
   0x04, 0x80, 0x09, 0x40, 0x0A, 0x40, 0x04, 0x80, 0x00, 0x00,    // 's'
   0x07, 0xF0, 0x08, 0x40, 0x08, 0x40, 0x00, 0x00, 0x00, 0x00,    // 't'
   0x07, 0xC0, 0x08, 0x00, 0x08, 0x00, 0x04, 0x00, 0x0F, 0xC0,    // 'u'
   0x00, 0xC0, 0x03, 0x00, 0x0C, 0x00, 0x03, 0x00, 0x00, 0xC0,    // 'v'
   0x01, 0xC0, 0x0E, 0x00, 0x01, 0xC0, 0x0E, 0x00, 0x01, 0xC0,    // 'w'
   0x0C, 0xC0, 0x03, 0x00, 0x03, 0x00, 0x0C, 0xC0, 0x00, 0x00,    // 'x'
   0x20, 0x00, 0x23, 0xC0, 0x1C, 0x00, 0x04, 0x00, 0x03, 0xC0,    // 'y'
   0x0C, 0x40, 0x0A, 0x40, 0x09, 0x40, 0x08, 0xC0, 0x00, 0x00,    // 'z'
   0x00, 0x00, 0x00, 0x80, 0x0F, 0x78, 0x10, 0x04, 0x00, 0x00,    // '{'
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00,    // '|'
   0x00, 0x00, 0x10, 0x04, 0x0F, 0x78, 0x00, 0x80, 0x00, 0x00,    // '}'
   0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10,    // '~'
   0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38,    // ''
   };


Another font; this time 7 by 11 in an 8 by 16 cell (so it can be used in an 8 by 12 cell). This one is organised for a normal video raster display; individual bytes hold the dot pattern across the raster and sequential bytes hold the image moving down the character. Bit zero is on the right, but seven on the left - that is, if you're outputting these as a raster, you send the high bit first.

You'll note that this is in assembler, and the comment that the bytes must be assigned in pairs. I'd rather stack the bytes so you can see the shape of the letter, but if you define them on separate lines the assembler will align each to a word boundary (and complain at you).

Code:
// font8-12.inc
// note that for packing, bytes *must* be defined in pairs or
// multiples of two.

// ' '
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// !
   .db 0b00000000,0b00010000,0b00010000,0b00010000
   .db 0b00010000,0b00010000,0b00010000,0b00000000
   .db 0b00010000,0b00010000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// "
   .db 0b00101000,0b00101000,0b00101000,0b00101000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// #
   .db 0b00000000,0b00010010,0b00010010,0b00010110
   .db 0b01111111,0b00100100,0b00100100,0b11111110
   .db 0b00101000,0b01001000,0b01001000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// $
   .db 0b00001000,0b00111110,0b01001001,0b01001000
   .db 0b00111000,0b00001110,0b00001001,0b01001001
   .db 0b00111110,0b00001000,0b00001000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// %
   .db 0b00000000,0b01100000,0b10010000,0b10010000
   .db 0b01100010,0b00011100,0b01100110,0b00001001
   .db 0b00001001,0b00000110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// &
   .db 0b00000000,0b00011100,0b00100000,0b00100000
   .db 0b00110000,0b01001001,0b01001101,0b01000101
   .db 0b01100010,0b00111101,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// '
   .db 0b00000000,0b00010000,0b00010000,0b00010000
   .db 0b00010000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// (
   .db 0b00001100,0b00001000,0b00001000,0b00010000
   .db 0b00010000,0b00010000,0b00010000,0b00010000
   .db 0b00010000,0b00001000,0b00001000,0b00000100
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// )
   .db 0b00110000,0b00010000,0b00010000,0b00001000
   .db 0b00001000,0b00001000,0b00001000,0b00001000
   .db 0b00001000,0b00010000,0b00010000,0b00110000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// *
   .db 0b00000000,0b00000000,0b00001000,0b01001001
   .db 0b00111110,0b00011100,0b01101011,0b00001000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// +
   .db 0b00000000,0b00000000,0b00010000,0b00010000
   .db 0b00010000,0b11111110,0b00010000,0b00010000
   .db 0b00010000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// ,
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00011000
   .db 0b00011000,0b00010000,0b00100000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// -
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00111000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// .
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00011000
   .db 0b00011000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// /
   .db 0b00000010,0b00000100,0b00000100,0b00001000
   .db 0b00001000,0b00011000,0b00010000,0b00010000
   .db 0b00100000,0b00100000,0b01000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// 0
   .db 0b00000000,0b00011100,0b00100010,0b01000001
   .db 0b01000001,0b01001001,0b01000001,0b01000001
   .db 0b00100010,0b00011100,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// 1
   .db 0b00000000,0b00111000,0b00001000,0b00001000
   .db 0b00001000,0b00001000,0b00001000,0b00001000
   .db 0b00001000,0b00111110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// 2
   .db 0b00000000,0b00111110,0b01000011,0b00000001
   .db 0b00000001,0b00000010,0b00001100,0b00011000
   .db 0b00100000,0b01111111,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// 3
   .db 0b00000000,0b00111110,0b01000001,0b00000001
   .db 0b00000011,0b00011100,0b00000011,0b00000001
   .db 0b01000011,0b00111110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// 4
   .db 0b00000000,0b00000110,0b00001010,0b00011010
   .db 0b00010010,0b00100010,0b01000010,0b01111111
   .db 0b00000010,0b00000010,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// 5
   .db 0b00000000,0b01111110,0b01000000,0b01000000
   .db 0b01111100,0b00000011,0b00000001,0b00000001
   .db 0b01000011,0b00111100,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// 6
   .db 0b00000000,0b00011110,0b00100001,0b01000000
   .db 0b01011110,0b01100011,0b01000001,0b01000001
   .db 0b00100011,0b00011110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// 7
   .db 0b00000000,0b01111111,0b00000010,0b00000010
   .db 0b00000100,0b00000100,0b00001000,0b00011000

   .db 0b00010000,0b00100000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// 8
   .db 0b00000000,0b00111110,0b01000001,0b01000001
   .db 0b01000001,0b00111110,0b01000001,0b01000001
   .db 0b01100001,0b00111110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// 9
   .db 0b00000000,0b00111100,0b01100010,0b01000001
   .db 0b01000001,0b01100011,0b00111101,0b00000001
   .db 0b01000010,0b00111100,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// :
   .db 0b00000000,0b00000000,0b00000000,0b00011000
   .db 0b00011000,0b00000000,0b00000000,0b00000000
   .db 0b00011000,0b00011000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// ;
   .db 0b00000000,0b00000000,0b00000000,0b00011000
   .db 0b00011000,0b00000000,0b00000000,0b00000000
   .db 0b00011000,0b00011000,0b00010000,0b00100000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// <
   .db 0b00000000,0b00000000,0b00000000,0b00000001
   .db 0b00001110,0b01110000,0b01110000,0b00001110
   .db 0b00000001,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// =
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b01111111,0b00000000,0b00000000,0b01111111
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// >
   .db 0b00000000,0b00000000,0b00000000,0b01000000
   .db 0b00111000,0b00000111,0b00000111,0b00111000
   .db 0b01000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// ?
   .db 0b00000000,0b00111000,0b01000100,0b00000100
   .db 0b00001000,0b00010000,0b00010000,0b00000000
   .db 0b00010000,0b00010000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// @
   .db 0b00000000,0b00011110,0b00110011,0b00100001
   .db 0b01000111,0b01001001,0b01001001,0b01001001
   .db 0b01000111,0b00100000,0b00110000,0b00011110
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// A
   .db 0b00000000,0b00001000,0b00010100,0b00010100
   .db 0b00010100,0b00100010,0b00100010,0b00111110
   .db 0b01100011,0b01000001,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// B
   .db 0b00000000,0b01111110,0b01000001,0b01000001
   .db 0b01000001,0b01111110,0b01000001,0b01000001
   .db 0b01000001,0b01111110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// C
   .db 0b00000000,0b00011110,0b00100001,0b01000000
   .db 0b01000000,0b01000000,0b01000000,0b01000000
   .db 0b00100001,0b00011110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// D
   .db 0b00000000,0b01111100,0b01000010,0b01000001
   .db 0b01000001,0b01000001,0b01000001,0b01000001
   .db 0b01000010,0b01111100,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// E
   .db 0b00000000,0b01111111,0b01000000,0b01000000
   .db 0b01000000,0b01111111,0b01000000,0b01000000
   .db 0b01000000,0b01111111,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// F
   .db 0b00000000,0b01111111,0b01000000,0b01000000
   .db 0b01000000,0b01111111,0b01000000,0b01000000
   .db 0b01000000,0b01000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// G
   .db 0b00000000,0b00011110,0b00100001,0b01000000
   .db 0b01000000,0b01000011,0b01000001,0b01000001
   .db 0b00100001,0b00011110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// H
   .db 0b00000000,0b01000001,0b01000001,0b01000001
   .db 0b01000001,0b01111111,0b01000001,0b01000001
   .db 0b01000001,0b01000001,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// I
   .db 0b00000000,0b01111100,0b00010000,0b00010000
   .db 0b00010000,0b00010000,0b00010000,0b00010000
   .db 0b00010000,0b01111100,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// J
   .db 0b00000000,0b00011100,0b00000100,0b00000100
   .db 0b00000100,0b00000100,0b00000100,0b00000100
   .db 0b01000100,0b00111000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// K
   .db 0b00000000,0b01000010,0b01000100,0b01001000
   .db 0b01010000,0b01110000,0b01001000,0b01000100
   .db 0b01000100,0b01000010,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// L
   .db 0b00000000,0b01000000,0b01000000,0b01000000
   .db 0b01000000,0b01000000,0b01000000,0b01000000
   .db 0b01000000,0b01111111,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// M
   .db 0b00000000,0b01100011,0b01100011,0b01010101
   .db 0b01010101,0b01010101,0b01001001,0b01000001
   .db 0b01000001,0b01000001,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// N
   .db 0b00000000,0b01100001,0b01100001,0b01010001
   .db 0b01010001,0b01001001,0b01000101,0b01000101
   .db 0b01000011,0b01000011,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// O
   .db 0b00000000,0b00011100,0b00100010,0b01000001
   .db 0b01000001,0b01000001,0b01000001,0b01000001
   .db 0b00100010,0b00011100,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// P
   .db 0b00000000,0b01111110,0b01000011,0b01000001
   .db 0b01000001,0b01000011,0b01111110,0b01000000
   .db 0b01000000,0b01000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// Q
   .db 0b00000000,0b00011100,0b00100010,0b01000001
   .db 0b01000001,0b01000001,0b01000001,0b01000001
   .db 0b00100010,0b00011110,0b00000110,0b00000010
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// R
   .db 0b00000000,0b01111110,0b01000011,0b01000001
   .db 0b01000001,0b01111110,0b01000010,0b01000001
   .db 0b01000001,0b01000001,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// S
   .db 0b00000000,0b00111110,0b01100001,0b01000000
   .db 0b01100000,0b00111110,0b00000011,0b00000001
   .db 0b01000011,0b00111110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// T
   .db 0b00000000,0b01111111,0b00001000,0b00001000
   .db 0b00001000,0b00001000,0b00001000,0b00001000
   .db 0b00001000,0b00001000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// U
   .db 0b00000000,0b01000001,0b01000001,0b01000001
   .db 0b01000001,0b01000001,0b01000001,0b01000001
   .db 0b01000001,0b00111110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// V
   .db 0b00000000,0b01000001,0b01100011,0b00100010
   .db 0b00100010,0b00100010,0b00010100,0b00010100
   .db 0b00010100,0b00001000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// W
   .db 0b00000000,0b10000001,0b10000001,0b10000001
   .db 0b01011010,0b01011010,0b01011010,0b01100110
   .db 0b01100110,0b01100110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// X
   .db 0b00000000,0b01100011,0b00100010,0b00010100
   .db 0b00011100,0b00001000,0b00010100,0b00110110
   .db 0b00100010,0b01000001,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// Y
   .db 0b00000000,0b01000001,0b00100010,0b00010100
   .db 0b00010100,0b00001000,0b00001000,0b00001000
   .db 0b00001000,0b00001000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   // Z
   .db 0b00000000,0b01111111,0b00000011,0b00000110
   .db 0b00000100,0b00001000,0b00010000,0b00110000
   .db 0b01100000,0b01111111,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// [
   .db 0b00011100,0b00010000,0b00010000,0b00010000
   .db 0b00010000,0b00010000,0b00010000,0b00010000
   .db 0b00010000,0b00010000,0b00010000,0b00011100
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// \
   .db 0b00000000,0b01000000,0b00100000,0b00100000
   .db 0b00010000,0b00010000,0b00011000,0b00001000
   .db 0b00001000,0b00000100,0b00000100,0b00000010
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// ]
   .db 0b00111000,0b00001000,0b00001000,0b00001000
   .db 0b00001000,0b00001000,0b00001000,0b00001000
   .db 0b00001000,0b00001000,0b00001000,0b00111000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// ^
   .db 0b00000000,0b00010000,0b00101000,0b01000100
   .db 0b11000110,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// _
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b11111111
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// `
   .db 0b00010000,0b00001000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// a
   .db 0b00000000,0b00000000,0b00000000,0b00011100
   .db 0b00100010,0b00000010,0b00111110,0b01000010
   .db 0b01000110,0b00111010,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// b,
   .db 0b00000000,0b01000000,0b01000000,0b01000000
   .db 0b01000000,0b01111100,0b01100110,0b01000010
   .db 0b01100110,0b01111100,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// c
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00011100,0b00100010,0b01000000,0b01000000
   .db 0b00100010,0b00011100,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// d
   .db 0b00000000,0b00000010,0b00000010,0b00000010
   .db 0b00000010,0b00111110,0b01100110,0b01000010
   .db 0b01100110,0b00111010,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// e
   .db 0b00000000,0b00000000,0b00000000,0b00111100
   .db 0b01100110,0b01000010,0b01111110,0b01000000
   .db 0b01100010,0b00111100,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// f
   .db 0b00000000,0b00001100,0b00010000,0b00010000
   .db 0b00010000,0b01111100,0b00010000,0b00010000
   .db 0b00010000,0b00010000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// g
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00111110,0b01100110,0b01000010,0b01100110
   .db 0b00111010,0b00000010,0b00100010,0b00011100
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// h
   .db 0b00000000,0b01000000,0b01000000,0b01000000
   .db 0b01000000,0b01011100,0b01100010,0b01000010
   .db 0b01000010,0b01000010,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// i
   .db 0b00000000,0b00000000,0b00010000,0b00000000
   .db 0b01110000,0b00010000,0b00010000,0b00010000
   .db 0b00010000,0b01111100,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// j
   .db 0b00000000,0b00000000,0b00001000,0b00000000
   .db 0b00111000,0b00001000,0b00001000,0b00001000
   .db 0b00001000,0b00001000,0b00001000,0b01110000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// k
   .db 0b00000000,0b01000000,0b01000000,0b01000100
   .db 0b01001000,0b01010000,0b01110000,0b01001000
   .db 0b01000100,0b01000010,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// l
   .db 0b00000000,0b01110000,0b00010000,0b00010000
   .db 0b00010000,0b00010000,0b00010000,0b00010000
   .db 0b00010000,0b00001110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// m
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b01111111,0b01001001,0b01001001
   .db 0b01001001,0b01001001,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// n
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b01011100,0b01100010,0b01000010
   .db 0b01000010,0b01000010,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// o
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00111100,0b01100110,0b01000010
   .db 0b01100110,0b00111100,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// p
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b01111100,0b01100110,0b01000010
   .db 0b01100110,0b01111100,0b01000000,0b01000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// q
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00111110,0b01100110,0b01000010
   .db 0b01100110,0b00111010,0b00000010,0b00000010
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// r
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00111100,0b00110010,0b00100000,0b00100000
   .db 0b00100000,0b00100000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// s   
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00111100,0b01000010,0b00111100,0b00000010
   .db 0b01000010,0b00111100,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// t
   .db 0b00000000,0b00010000,0b00010000,0b01111110
   .db 0b00010000,0b00010000,0b00010000,0b00010000
   .db 0b00010000,0b00001110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// u
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b01000010,0b01000010,0b01000010,0b01000010
   .db 0b01000110,0b00111010,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// v
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b01000010,0b01100110,0b00100100,0b00111100
   .db 0b00011000,0b00011000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// w
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b10000001,0b10000001,0b01011010,0b01011010
   .db 0b00100100,0b00100100,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// x
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b01100110,0b00100100,0b00011000,0b00011000
   .db 0b00100100,0b01100110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// y
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b01000010,0b00100010,0b00100100,0b00010100
   .db 0b00011000,0b00001000,0b00010000,0b00110000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// z
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b01111110,0b00000110,0b00011000,0b00100000
   .db 0b01000000,0b01111110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// {
   .db 0b00011100,0b00010000,0b00010000,0b00010000
   .db 0b00010000,0b01100000,0b00010000,0b00010000
   .db 0b00010000,0b00010000,0b00010000,0b00001100
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// |
   .db 0b00010000,0b00010000,0b00010000,0b00010000
   .db 0b00010000,0b00010000,0b00010000,0b00010000
   .db 0b00010000,0b00010000,0b00010000,0b00010000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// }
   .db 0b01110000,0b00010000,0b00010000,0b00010000
   .db 0b00010000,0b00001100,0b00010000,0b00010000
   .db 0b00010000,0b00010000,0b00010000,0b01100000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
// ^
   .db 0b00000000,0b00010000,0b00101000,0b01000100
   .db 0b11000110,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000

// ~
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00111001,0b01000110,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   .db 0b00000000,0b00000000,0b00000000,0b00000000
   


Neil

_________________
Neil Barnes
www.nailed-barnacle.co.uk
 
 View user's profile Send private message Send e-mail Visit poster's website 
Reply with quote Back to top
Display posts from previous:     
Jump to:  
All times are GMT + 1 Hour
Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Powered by PNphpBB2 © 2003-2006 The PNphpBB Group
Credits