commit a51147d238c654188c9bb5748f2a82e32f020f4a Author: Přemysl Janouch Date: Sat Jul 20 23:28:52 2013 +0200 Initial commit diff --git a/nokia-big.c b/nokia-big.c new file mode 100644 index 0000000..68cefc7 --- /dev/null +++ b/nokia-big.c @@ -0,0 +1,111 @@ +struct +{ + int width; + int advance; + int rows[13]; +} +font_data[] = +{ + { 3, 4, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } }, // space + { 2, 3, { 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0x0000, 0xc000, 0xc000, 0x0000, 0x0000 } }, // ! + { 6, 7, { 0x4800, 0x4800, 0x4800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } }, // " + { 7, 8, { 0x0000, 0x0000, 0x6c00, 0x6c00, 0x6c00, 0xfe00, 0x6c00, 0xfe00, 0x6c00, 0x6c00, 0x6c00, 0x0000, 0x0000 } }, // # + { 7, 8, { 0x1000, 0x7c00, 0xd600, 0xd000, 0xd000, 0x7c00, 0x1600, 0x1600, 0x1600, 0xd600, 0x7c00, 0x1000, 0x1000 } }, // $ + { 7, 8, { 0x4600, 0xa400, 0xac00, 0x4800, 0x1800, 0x1000, 0x3000, 0x2400, 0x6a00, 0x4a00, 0xc400, 0x0000, 0x0000 } }, // % + { 8, 9, { 0x7000, 0xd800, 0xd800, 0xd800, 0xd800, 0x7200, 0xf600, 0xdc00, 0xcc00, 0xde00, 0x7300, 0x0000, 0x0000 } }, // & + { 1, 2, { 0x8000, 0x8000, 0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } }, // ' + { 3, 4, { 0x2000, 0x6000, 0x4000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0x4000, 0x6000, 0x2000 } }, // ( + { 3, 4, { 0x8000, 0xc000, 0x4000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x4000, 0xc000, 0x8000 } }, // ) + { 7, 8, { 0x0000, 0x0000, 0x0000, 0x4400, 0x6c00, 0x3800, 0xfe00, 0x3800, 0x6c00, 0x4400, 0x0000, 0x0000, 0x0000 } }, // * + { 7, 8, { 0x0000, 0x0000, 0x0000, 0x0000, 0x1800, 0x1800, 0x7e00, 0x1800, 0x1800, 0x0000, 0x0000, 0x0000, 0x0000 } }, // + + { 3, 4, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6000, 0x6000, 0xc000, 0x0000 } }, // , + { 5, 6, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf800, 0xf800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } }, // - + { 3, 4, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xc000, 0xc000, 0x0000, 0x0000 } }, // . + { 5, 6, { 0x1800, 0x1800, 0x3000, 0x3000, 0x3000, 0x6000, 0x6000, 0x6000, 0xc000, 0xc000, 0xc000, 0x0000, 0x0000 } }, // / + { 7, 8, { 0x7c00, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0x7c00, 0x0000, 0x0000 } }, // 0 + { 7, 8, { 0x1800, 0x3800, 0x7800, 0x5800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x0000, 0x0000 } }, // 1 + { 7, 8, { 0x7c00, 0xc600, 0xc600, 0x0600, 0x0600, 0x1c00, 0x7000, 0xc000, 0xc000, 0xc000, 0xfe00, 0x0000, 0x0000 } }, // 2 + { 7, 8, { 0x7c00, 0xc600, 0x0600, 0x0600, 0x3c00, 0x0600, 0x0600, 0x0600, 0x0600, 0xc600, 0x7c00, 0x0000, 0x0000 } }, // 3 + { 7, 8, { 0x0400, 0x0c00, 0x1c00, 0x2c00, 0x4c00, 0xcc00, 0xcc00, 0xfe00, 0x0c00, 0x0c00, 0x0c00, 0x0000, 0x0000 } }, // 4 + { 7, 8, { 0xfc00, 0xc000, 0xc000, 0xc000, 0xfc00, 0xc600, 0x0600, 0x0600, 0x0600, 0xc600, 0x7c00, 0x0000, 0x0000 } }, // 5 + { 7, 8, { 0x7c00, 0xc600, 0xc000, 0xc000, 0xfc00, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0x7c00, 0x0000, 0x0000 } }, // 6 + { 7, 8, { 0xfe00, 0x0600, 0x0600, 0x0c00, 0x0c00, 0x1800, 0x1800, 0x3000, 0x3000, 0x3000, 0x3000, 0x0000, 0x0000 } }, // 7 + { 7, 8, { 0x7c00, 0xc600, 0xc600, 0xc600, 0x7c00, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0x7c00, 0x0000, 0x0000 } }, // 8 + { 7, 8, { 0x7c00, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0x7e00, 0x0600, 0x0600, 0xc600, 0x7c00, 0x0000, 0x0000 } }, // 9 + { 3, 4, { 0x0000, 0x0000, 0x0000, 0x0000, 0x6000, 0x6000, 0x0000, 0x0000, 0x0000, 0x6000, 0x6000, 0x0000, 0x0000 } }, // : + { 3, 4, { 0x0000, 0x0000, 0x0000, 0x0000, 0x6000, 0x6000, 0x0000, 0x0000, 0x0000, 0x6000, 0x6000, 0xc000, 0x0000 } }, // ; + { 5, 6, { 0x0000, 0x0000, 0x0800, 0x1800, 0x3000, 0x6000, 0xc000, 0x6000, 0x3000, 0x1800, 0x0800, 0x0000, 0x0000 } }, // < + { 5, 6, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf800, 0x0000, 0x0000, 0xf800, 0x0000, 0x0000, 0x0000, 0x0000 } }, // = + { 5, 6, { 0x0000, 0x0000, 0x8000, 0xc000, 0x6000, 0x3000, 0x1800, 0x3000, 0x6000, 0xc000, 0x8000, 0x0000, 0x0000 } }, // > + { 6, 7, { 0x7800, 0x8c00, 0x8c00, 0x0c00, 0x0c00, 0x1800, 0x3000, 0x3000, 0x0000, 0x3000, 0x3000, 0x0000, 0x0000 } }, // ? + { 9, 10, { 0x0000, 0x3e00, 0x4100, 0x9480, 0xac80, 0xa480, 0xa480, 0xa500, 0x9a00, 0x4080, 0x3f00, 0x0000, 0x0000 } }, // @ + { 7, 8, { 0x7c00, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xfe00, 0xc600, 0xc600, 0xc600, 0x0000, 0x0000 } }, // A + { 7, 8, { 0xfc00, 0xc600, 0xc600, 0xc600, 0xf800, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xfc00, 0x0000, 0x0000 } }, // B + { 6, 7, { 0x7800, 0xcc00, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xcc00, 0x7800, 0x0000, 0x0000 } }, // C + { 7, 8, { 0xf800, 0xcc00, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xcc00, 0xf800, 0x0000, 0x0000 } }, // D + { 7, 8, { 0xfe00, 0xc000, 0xc000, 0xc000, 0xf800, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xfe00, 0x0000, 0x0000 } }, // E + { 7, 8, { 0xfe00, 0xc000, 0xc000, 0xc000, 0xf800, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0x0000, 0x0000 } }, // F + { 7, 8, { 0x7c00, 0xc600, 0xc000, 0xc000, 0xc000, 0xce00, 0xc600, 0xc600, 0xc600, 0xc600, 0x7e00, 0x0000, 0x0000 } }, // G + { 7, 8, { 0xc600, 0xc600, 0xc600, 0xc600, 0xfe00, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0x0000, 0x0000 } }, // H + { 2, 3, { 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0x0000, 0x0000 } }, // I + { 5, 6, { 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x9800, 0x7000, 0x0000, 0x0000 } }, // J + { 8, 9, { 0xc600, 0xcc00, 0xd800, 0xf000, 0xe000, 0xe000, 0xf000, 0xd800, 0xcc00, 0xc600, 0xc300, 0x0000, 0x0000 } }, // K + { 6, 7, { 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xfc00, 0x0000, 0x0000 } }, // L + { 9, 10, { 0x8080, 0xc180, 0xe380, 0xf780, 0xdd80, 0xc980, 0xc180, 0xc180, 0xc180, 0xc180, 0xc180, 0x0000, 0x0000 } }, // M + { 7, 8, { 0xc600, 0xc600, 0xe600, 0xe600, 0xf600, 0xd600, 0xde00, 0xce00, 0xce00, 0xc600, 0xc600, 0x0000, 0x0000 } }, // N + { 8, 9, { 0x7e00, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0x7e00, 0x0000, 0x0000 } }, // O + { 7, 8, { 0xfc00, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xfc00, 0xc000, 0xc000, 0xc000, 0xc000, 0x0000, 0x0000 } }, // P + { 8, 9, { 0x7e00, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xc300, 0xd300, 0xdb00, 0x7e00, 0x0600, 0x0000 } }, // Q + { 8, 8, { 0xfc00, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xfc00, 0xd800, 0xcc00, 0xc600, 0xc300, 0x0000, 0x0000 } }, // R + { 6, 7, { 0x7800, 0xcc00, 0xc000, 0xc000, 0xc000, 0x7800, 0x0c00, 0x0c00, 0x0c00, 0xcc00, 0x7800, 0x0000, 0x0000 } }, // S + { 6, 7, { 0xfc00, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x0000, 0x0000 } }, // T + { 7, 8, { 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0xc600, 0x7c00, 0x0000, 0x0000 } }, // U + { 8, 9, { 0xc300, 0xc300, 0xc300, 0xc300, 0x6600, 0x6600, 0x6600, 0x2400, 0x3c00, 0x1800, 0x1800, 0x0000, 0x0000 } }, // V + { 10, 11, { 0xc0c0, 0xc0c0, 0xc0c0, 0xc0c0, 0x6180, 0x6d80, 0x6d80, 0x6d80, 0x3f00, 0x3300, 0x3300, 0x0000, 0x0000 } }, // W + { 7, 8, { 0xc600, 0xc600, 0xc600, 0x6c00, 0x6c00, 0x3800, 0x6c00, 0x6c00, 0xc600, 0xc600, 0xc600, 0x0000, 0x0000 } }, // X + { 8, 9, { 0xc300, 0xc300, 0x6600, 0x6600, 0x3c00, 0x3c00, 0x1800, 0x1800, 0x1800, 0x1800, 0x1800, 0x0000, 0x0000 } }, // Y + { 7, 8, { 0xfe00, 0x0600, 0x0e00, 0x1c00, 0x3800, 0x7000, 0xe000, 0xc000, 0xc000, 0xc000, 0xfe00, 0x0000, 0x0000 } }, // Z + { 4, 5, { 0xf000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xf000 } }, // [ + { 5, 6, { 0xc000, 0xc000, 0x6000, 0x6000, 0x6000, 0x3000, 0x3000, 0x3000, 0x1800, 0x1800, 0x1800, 0x0000, 0x0000 } }, // backslash + { 4, 5, { 0xf000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0xf000 } }, // ] + { 5, 6, { 0x2000, 0x7000, 0xd800, 0x8800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } }, // ^ + { 8, 8, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xff00, 0x0000 } }, // _ + { 3, 4, { 0x8000, 0x4000, 0x2000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } }, // ` + { 6, 7, { 0x0000, 0x0000, 0x0000, 0x7800, 0x0c00, 0x0c00, 0x7c00, 0xcc00, 0xcc00, 0xcc00, 0x7c00, 0x0000, 0x0000 } }, // a + { 6, 7, { 0xc000, 0xc000, 0xc000, 0xf800, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xf800, 0x0000, 0x0000 } }, // b + { 5, 6, { 0x0000, 0x0000, 0x0000, 0x7000, 0xc800, 0xc000, 0xc000, 0xc000, 0xc000, 0xc800, 0x7000, 0x0000, 0x0000 } }, // c + { 6, 7, { 0x0c00, 0x0c00, 0x0c00, 0x7c00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0x7c00, 0x0000, 0x0000 } }, // d + { 6, 7, { 0x0000, 0x0000, 0x0000, 0x7800, 0xcc00, 0xcc00, 0xfc00, 0xc000, 0xc000, 0xc400, 0x7800, 0x0000, 0x0000 } }, // e + { 4, 5, { 0x3000, 0x6000, 0x6000, 0xf000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x0000, 0x0000 } }, // f + { 6, 7, { 0x0000, 0x0000, 0x0000, 0x7c00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0x7c00, 0x0c00, 0x7800 } }, // g + { 6, 7, { 0xc000, 0xc000, 0xc000, 0xf800, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0x0000, 0x0000 } }, // h + { 2, 3, { 0xc000, 0xc000, 0x0000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0x0000, 0x0000 } }, // i + { 3, 4, { 0x6000, 0x6000, 0x0000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0xc000 } }, // j + { 6, 7, { 0xc000, 0xc000, 0xc000, 0xcc00, 0xd800, 0xf000, 0xe000, 0xe000, 0xf000, 0xd800, 0xcc00, 0x0000, 0x0000 } }, // k + { 2, 3, { 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0x0000, 0x0000 } }, // l + { 8, 9, { 0x0000, 0x0000, 0x0000, 0xfe00, 0xdb00, 0xdb00, 0xdb00, 0xdb00, 0xdb00, 0xdb00, 0xdb00, 0x0000, 0x0000 } }, // m + { 6, 7, { 0x0000, 0x0000, 0x0000, 0xf800, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0x0000, 0x0000 } }, // n + { 6, 7, { 0x0000, 0x0000, 0x0000, 0x7800, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0x7800, 0x0000, 0x0000 } }, // o + { 6, 7, { 0x0000, 0x0000, 0x0000, 0xf800, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xf800, 0xc000, 0xc000 } }, // p + { 6, 7, { 0x0000, 0x0000, 0x0000, 0x7c00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0x7c00, 0x0c00, 0x0c00 } }, // q + { 5, 6, { 0x0000, 0x0000, 0x0000, 0xd800, 0xf800, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0x0000, 0x0000 } }, // r + { 5, 6, { 0x0000, 0x0000, 0x0000, 0x7800, 0xc000, 0xe000, 0x7000, 0x3800, 0x1800, 0x1800, 0xf000, 0x0000, 0x0000 } }, // s + { 4, 5, { 0x6000, 0x6000, 0x6000, 0xf000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x3000, 0x0000, 0x0000 } }, // t + { 6, 7, { 0x0000, 0x0000, 0x0000, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0x7c00, 0x0000, 0x0000 } }, // u + { 6, 7, { 0x0000, 0x0000, 0x0000, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0x4800, 0x7800, 0x3000, 0x3000, 0x0000, 0x0000 } }, // v + { 9, 10, { 0x0000, 0x0000, 0x0000, 0xc180, 0xc180, 0xc180, 0x6300, 0x6b00, 0x7f00, 0x3600, 0x3600, 0x0000, 0x0000 } }, // w + { 6, 7, { 0x0000, 0x0000, 0x0000, 0xcc00, 0xcc00, 0x7800, 0x3000, 0x3000, 0x7800, 0xcc00, 0xcc00, 0x0000, 0x0000 } }, // x + { 6, 7, { 0x0000, 0x0000, 0x0000, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0xcc00, 0x7c00, 0x0c00, 0x7800 } }, // y + { 6, 7, { 0x0000, 0x0000, 0x0000, 0xfc00, 0x0c00, 0x1c00, 0x3800, 0x7000, 0xe000, 0xc000, 0xfc00, 0x0000, 0x0000 } }, // z + { 3, 4, { 0x2000, 0x6000, 0x4000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0x4000, 0x6000, 0x2000 } }, // { + { 3, 4, { 0x8000, 0xc000, 0x4000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x6000, 0x4000, 0xc000, 0x8000 } }, // | + { 2, 3, { 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000 } }, // } + { 7, 8, { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3200, 0x7e00, 0x4c00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 } }, // ~ + { 11, 12, { 0x0780, 0x1ce0, 0x3820, 0x3000, 0xffc0, 0x3000, 0xff80, 0x3000, 0x3820, 0x1ce0, 0x0780, 0x0000, 0x0000 } }, // euro + { 7, 8, { 0x3800, 0x6c00, 0x6000, 0x6000, 0x6000, 0xf800, 0x6000, 0x6000, 0x6000, 0x6600, 0xfc00, 0x0000, 0x0000 } }, // pound + { 8, 9, { 0xc300, 0xc300, 0x6600, 0x6600, 0xff00, 0x1800, 0xff00, 0x1800, 0x1800, 0x1800, 0x1800, 0x0000, 0x0000 } }, // yen + { 9, 10, { 0x0000, 0x8080, 0x5d00, 0x2200, 0x4100, 0x4100, 0x4100, 0x2200, 0x5d00, 0x8080, 0x0000, 0x0000, 0x0000 } }, // currency + { 6, 7, { 0x3000, 0x3000, 0x0000, 0x3000, 0x3000, 0x6000, 0xc000, 0xc000, 0xc400, 0xc400, 0x7800, 0x0000, 0x0000 } }, // inverted ? + { 2, 3, { 0xc000, 0xc000, 0x0000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0xc000, 0x0000, 0x0000 } }, // inverted ! + { 6, 7, { 0x3800, 0x6c00, 0x6c00, 0x6000, 0xf000, 0xd800, 0xcc00, 0x6c00, 0x3c00, 0x1800, 0xd800, 0xd800, 0x7000 } }, // section +}; diff --git a/nokia-big.txt b/nokia-big.txt new file mode 100644 index 0000000..d8e492b --- /dev/null +++ b/nokia-big.txt @@ -0,0 +1,1431 @@ +# The big font (13px high, up to 11px wide) +# You can run this through xform.c + +111 +111 +111 +111 +111 +111 +111 +111 +111 +111 +111 +111 +111 + +00 +00 +00 +00 +00 +00 +00 +00 +11 +00 +00 +11 +11 + +101101 +101101 +101101 +111111 +111111 +111111 +111111 +111111 +111111 +111111 +111111 +111111 +111111 + +1111111 +1111111 +1001001 +1001001 +1001001 +0000000 +1001001 +0000000 +1001001 +1001001 +1001001 +1111111 +1111111 + +1110111 +1000001 +0010100 +0010111 +0010111 +1000001 +1110100 +1110100 +1110100 +0010100 +1000001 +1110111 +1110111 + +1011100 +0101101 +0101001 +1011011 +1110011 +1110111 +1100111 +1101101 +1001010 +1011010 +0011101 +1111111 +1111111 + +10001111 +00100111 +00100111 +00100111 +00100111 +10001101 +00001001 +00100011 +00110011 +00100001 +10001100 +11111111 +11111111 + +0 +0 +0 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 + +110 +100 +101 +001 +001 +001 +001 +001 +001 +001 +101 +100 +110 + +011 +001 +101 +100 +100 +100 +100 +100 +100 +100 +101 +001 +011 + +1111111 +1111111 +1111111 +1011101 +1001001 +1100011 +0000000 +1100011 +1001001 +1011101 +1111111 +1111111 +1111111 + +1111111 +1111111 +1111111 +1111111 +1110011 +1110011 +1000000 +1110011 +1110011 +1111111 +1111111 +1111111 +1111111 + +111 +111 +111 +111 +111 +111 +111 +111 +111 +100 +100 +001 +111 + +11111 +11111 +11111 +11111 +11111 +00000 +00000 +11111 +11111 +11111 +11111 +11111 +11111 + +111 +111 +111 +111 +111 +111 +111 +111 +111 +001 +001 +111 +111 + +11100 +11100 +11001 +11001 +11001 +10011 +10011 +10011 +00111 +00111 +00111 +11111 +11111 + +1000001 +0011100 +0011100 +0011100 +0011100 +0011100 +0011100 +0011100 +0011100 +0011100 +1000001 +1111111 +1111111 + +1110011 +1100011 +1000011 +1010011 +1110011 +1110011 +1110011 +1110011 +1110011 +1110011 +1110011 +1111111 +1111111 + +1000001 +0011100 +0011100 +1111100 +1111100 +1110001 +1000111 +0011111 +0011111 +0011111 +0000000 +1111111 +1111111 + +1000001 +0011100 +1111100 +1111100 +1100001 +1111100 +1111100 +1111100 +1111100 +0011100 +1000001 +1111111 +1111111 + +1111101 +1111001 +1110001 +1101001 +1011001 +0011001 +0011001 +0000000 +1111001 +1111001 +1111001 +1111111 +1111111 + +0000001 +0011111 +0011111 +0011111 +0000001 +0011100 +1111100 +1111100 +1111100 +0011100 +1000001 +1111111 +1111111 + +1000001 +0011100 +0011111 +0011111 +0000001 +0011100 +0011100 +0011100 +0011100 +0011100 +1000001 +1111111 +1111111 + +0000000 +1111100 +1111100 +1111001 +1111001 +1110011 +1110011 +1100111 +1100111 +1100111 +1100111 +1111111 +1111111 + +1000001 +0011100 +0011100 +0011100 +1000001 +0011100 +0011100 +0011100 +0011100 +0011100 +1000001 +1111111 +1111111 + +1000001 +0011100 +0011100 +0011100 +0011100 +0011100 +1000000 +1111100 +1111100 +0011100 +1000001 +1111111 +1111111 + +111 +111 +111 +111 +100 +100 +111 +111 +111 +100 +100 +111 +111 + +111 +111 +111 +111 +100 +100 +111 +111 +111 +100 +100 +001 +111 + +11111 +11111 +11110 +11100 +11001 +10011 +00111 +10011 +11001 +11100 +11110 +11111 +11111 + +11111 +11111 +11111 +11111 +11111 +00000 +11111 +11111 +00000 +11111 +11111 +11111 +11111 + +11111 +11111 +01111 +00111 +10011 +11001 +11100 +11001 +10011 +00111 +01111 +11111 +11111 + +100001 +011100 +011100 +111100 +111100 +111001 +110011 +110011 +111111 +110011 +110011 +111111 +111111 + +111111111 +110000011 +101111101 +011010110 +010100110 +010110110 +010110110 +010110101 +011001011 +101111110 +110000001 +111111111 +111111111 + +1000001 +0011100 +0011100 +0011100 +0011100 +0011100 +0011100 +0000000 +0011100 +0011100 +0011100 +1111111 +1111111 + +0000001 +0011100 +0011100 +0011100 +0000011 +0011100 +0011100 +0011100 +0011100 +0011100 +0000001 +1111111 +1111111 + +100001 +001100 +001111 +001111 +001111 +001111 +001111 +001111 +001111 +001100 +100001 +111111 +111111 + +0000011 +0011001 +0011100 +0011100 +0011100 +0011100 +0011100 +0011100 +0011100 +0011001 +0000011 +1111111 +1111111 + +0000000 +0011111 +0011111 +0011111 +0000011 +0011111 +0011111 +0011111 +0011111 +0011111 +0000000 +1111111 +1111111 + +0000000 +0011111 +0011111 +0011111 +0000011 +0011111 +0011111 +0011111 +0011111 +0011111 +0011111 +1111111 +1111111 + +1000001 +0011100 +0011111 +0011111 +0011111 +0011000 +0011100 +0011100 +0011100 +0011100 +1000000 +1111111 +1111111 + +0011100 +0011100 +0011100 +0011100 +0000000 +0011100 +0011100 +0011100 +0011100 +0011100 +0011100 +1111111 +1111111 + +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +11 +11 + +11100 +11100 +11100 +11100 +11100 +11100 +11100 +11100 +11100 +01100 +10001 +11111 +11111 + +00111001 +00110011 +00100111 +00001111 +00011111 +00011111 +00001111 +00100111 +00110011 +00111001 +00111100 +11111111 +11111111 + +001111 +001111 +001111 +001111 +001111 +001111 +001111 +001111 +001111 +001111 +000000 +111111 +111111 + +011111110 +001111100 +000111000 +000010000 +001000100 +001101100 +001111100 +001111100 +001111100 +001111100 +001111100 +111111111 +111111111 + +0011100 +0011100 +0001100 +0001100 +0000100 +0010100 +0010000 +0011000 +0011000 +0011100 +0011100 +1111111 +1111111 + +10000001 +00111100 +00111100 +00111100 +00111100 +00111100 +00111100 +00111100 +00111100 +00111100 +10000001 +11111111 +11111111 + +0000001 +0011100 +0011100 +0011100 +0011100 +0011100 +0000001 +0011111 +0011111 +0011111 +0011111 +1111111 +1111111 + +10000001 +00111100 +00111100 +00111100 +00111100 +00111100 +00111100 +00111100 +00101100 +00100100 +10000001 +11111001 +11111111 + +00000011 +00111001 +00111001 +00111001 +00111001 +00111001 +00000011 +00100111 +00110011 +00111001 +00111100 +11111111 +11111111 + +100001 +001100 +001111 +001111 +001111 +100001 +111100 +111100 +111100 +001100 +100001 +111111 +111111 + +000000 +110011 +110011 +110011 +110011 +110011 +110011 +110011 +110011 +110011 +110011 +111111 +111111 + +0011100 +0011100 +0011100 +0011100 +0011100 +0011100 +0011100 +0011100 +0011100 +0011100 +1000001 +1111111 +1111111 + +00111100 +00111100 +00111100 +00111100 +10011001 +10011001 +10011001 +11011011 +11000011 +11100111 +11100111 +11111111 +11111111 + +0011111100 +0011111100 +0011111100 +0011111100 +1001111001 +1001001001 +1001001001 +1001001001 +1100000011 +1100110011 +1100110011 +1111111111 +1111111111 + +0011100 +0011100 +0011100 +1001001 +1001001 +1100011 +1001001 +1001001 +0011100 +0011100 +0011100 +1111111 +1111111 + +00111100 +00111100 +10011001 +10011001 +11000011 +11000011 +11100111 +11100111 +11100111 +11100111 +11100111 +11111111 +11111111 + +0000000 +1111100 +1111000 +1110001 +1100011 +1000111 +0001111 +0011111 +0011111 +0011111 +0000000 +1111111 +1111111 + +0000 +0011 +0011 +0011 +0011 +0011 +0011 +0011 +0011 +0011 +0011 +0011 +0000 + +00111 +00111 +10011 +10011 +10011 +11001 +11001 +11001 +11100 +11100 +11100 +11111 +11111 + +0000 +1100 +1100 +1100 +1100 +1100 +1100 +1100 +1100 +1100 +1100 +1100 +0000 + +11011 +10001 +00100 +01110 +11111 +11111 +11111 +11111 +11111 +11111 +11111 +11111 +11111 + +11111111 +11111111 +11111111 +11111111 +11111111 +11111111 +11111111 +11111111 +11111111 +11111111 +11111111 +00000000 +11111111 + +011 +101 +110 +111 +111 +111 +111 +111 +111 +111 +111 +111 +111 + +111111 +111111 +111111 +100001 +111100 +111100 +100000 +001100 +001100 +001100 +100000 +111111 +111111 + +001111 +001111 +001111 +000001 +001100 +001100 +001100 +001100 +001100 +001100 +000001 +111111 +111111 + +11111 +11111 +11111 +10001 +00110 +00111 +00111 +00111 +00111 +00110 +10001 +11111 +11111 + +111100 +111100 +111100 +100000 +001100 +001100 +001100 +001100 +001100 +001100 +100000 +111111 +111111 + +111111 +111111 +111111 +100001 +001100 +001100 +000000 +001111 +001111 +001110 +100001 +111111 +111111 + +1100 +1001 +1001 +0000 +1001 +1001 +1001 +1001 +1001 +1001 +1001 +1111 +1111 + +111111 +111111 +111111 +100000 +001100 +001100 +001100 +001100 +001100 +001100 +100000 +111100 +100001 + +001111 +001111 +001111 +000001 +001100 +001100 +001100 +001100 +001100 +001100 +001100 +111111 +111111 + +00 +00 +11 +00 +00 +00 +00 +00 +00 +00 +00 +11 +11 + +100 +100 +111 +100 +100 +100 +100 +100 +100 +100 +100 +100 +001 + +001111 +001111 +001111 +001100 +001001 +000011 +000111 +000111 +000011 +001001 +001100 +111111 +111111 + +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +11 +11 + +11111111 +11111111 +11111111 +00000001 +00100100 +00100100 +00100100 +00100100 +00100100 +00100100 +00100100 +11111111 +11111111 + +111111 +111111 +111111 +000001 +001100 +001100 +001100 +001100 +001100 +001100 +001100 +111111 +111111 + +111111 +111111 +111111 +100001 +001100 +001100 +001100 +001100 +001100 +001100 +100001 +111111 +111111 + +111111 +111111 +111111 +000001 +001100 +001100 +001100 +001100 +001100 +001100 +000001 +001111 +001111 + +111111 +111111 +111111 +100000 +001100 +001100 +001100 +001100 +001100 +001100 +100000 +111100 +111100 + +11111 +11111 +11111 +00100 +00000 +00111 +00111 +00111 +00111 +00111 +00111 +11111 +11111 + +11111 +11111 +11111 +10000 +00111 +00011 +10001 +11000 +11100 +11100 +00001 +11111 +11111 + +1001 +1001 +1001 +0000 +1001 +1001 +1001 +1001 +1001 +1001 +1100 +1111 +1111 + +111111 +111111 +111111 +001100 +001100 +001100 +001100 +001100 +001100 +001100 +100000 +111111 +111111 + +111111 +111111 +111111 +001100 +001100 +001100 +001100 +101101 +100001 +110011 +110011 +111111 +111111 + +111111111 +111111111 +111111111 +001111100 +001111100 +001111100 +100111001 +100101001 +100000001 +110010011 +110010011 +111111111 +111111111 + +111111 +111111 +111111 +001100 +001100 +100001 +110011 +110011 +100001 +001100 +001100 +111111 +111111 + +111111 +111111 +111111 +001100 +001100 +001100 +001100 +001100 +001100 +001100 +100000 +111100 +100001 + +111111 +111111 +111111 +000000 +111100 +111000 +110001 +100011 +000111 +001111 +000000 +111111 +111111 + +110 +100 +101 +001 +001 +001 +001 +001 +001 +001 +101 +100 +110 + +011 +001 +101 +100 +100 +100 +100 +100 +100 +100 +101 +001 +011 + +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 +00 + +1111111 +1111111 +1111111 +1111111 +1111111 +1100110 +1000000 +1011001 +1111111 +1111111 +1111111 +1111111 +1111111 + +11111000011 +11100011000 +11000111110 +11001111111 +00000000001 +11001111111 +00000000011 +11001111111 +11000111110 +11100011000 +11111000011 +11111111111 +11111111111 + +1100011 +1001001 +1001111 +1001111 +1001111 +0000011 +1001111 +1001111 +1001111 +1001100 +0000001 +1111111 +1111111 + +00111100 +00111100 +10011001 +10011001 +00000000 +11100111 +00000000 +11100111 +11100111 +11100111 +11100111 +11111111 +11111111 + +111111111 +011111110 +101000101 +110111011 +101111101 +101111101 +101111101 +110111011 +101000101 +011111110 +111111111 +111111111 +111111111 + +110011 +110011 +111111 +110011 +110011 +100111 +001111 +001111 +001110 +001110 +100001 +111111 +111111 + +00 +00 +11 +00 +00 +00 +00 +00 +00 +00 +00 +11 +11 + +110001 +100100 +100100 +100111 +000011 +001001 +001100 +100100 +110000 +111001 +001001 +001001 +100011 + diff --git a/nokia-font.png b/nokia-font.png new file mode 100644 index 0000000..0207897 Binary files /dev/null and b/nokia-font.png differ diff --git a/nokia-menu.c b/nokia-menu.c new file mode 100644 index 0000000..b9e6e61 --- /dev/null +++ b/nokia-menu.c @@ -0,0 +1,22 @@ +struct +{ + int width; + int advance; + int rows[6]; +} +font_data[] = +{ + { 2, 3, { 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00 } }, // - + { 1, 2, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x80 } }, // . + { 3, 4, { 0x20, 0x20, 0x40, 0x40, 0x80, 0x80 } }, // / + { 5, 6, { 0x70, 0xd8, 0xd8, 0xd8, 0xd8, 0x70 } }, // 0 + { 5, 6, { 0x30, 0x70, 0x30, 0x30, 0x30, 0x30 } }, // 1 + { 5, 6, { 0xf0, 0x18, 0x18, 0x70, 0xc0, 0xf8 } }, // 2 + { 5, 6, { 0xf0, 0x18, 0x70, 0x18, 0x18, 0xf0 } }, // 3 + { 5, 6, { 0x18, 0x38, 0x58, 0xf8, 0x18, 0x18 } }, // 4 + { 5, 6, { 0xf0, 0xc0, 0xf0, 0x18, 0x18, 0xf0 } }, // 5 + { 5, 6, { 0x70, 0xc0, 0xf0, 0xd8, 0xd8, 0x70 } }, // 6 + { 5, 6, { 0xf8, 0x18, 0x30, 0x60, 0x60, 0x60 } }, // 7 + { 5, 6, { 0x70, 0xd8, 0x70, 0xd8, 0xd8, 0x70 } }, // 8 + { 5, 6, { 0x70, 0xd8, 0xd8, 0x78, 0x18, 0x70 } }, // 9 +}; diff --git a/nokia-menu.txt b/nokia-menu.txt new file mode 100644 index 0000000..0ddc1a3 --- /dev/null +++ b/nokia-menu.txt @@ -0,0 +1,94 @@ +# The very small font for locations in menu (6px high, up to 5px wide) +# You can run this through xform.c + +110 +110 +101 +101 +011 +011 + +11 +11 +11 +00 +11 +11 + +1 +1 +1 +1 +1 +0 + +10001 +00100 +00100 +00100 +00100 +10001 + +11001 +10001 +11001 +11001 +11001 +11001 + +00001 +11100 +11100 +10001 +00111 +00000 + +00001 +11100 +10001 +11100 +11100 +00001 + +11100 +11000 +10100 +00000 +11100 +11100 + +00001 +00111 +00001 +11100 +11100 +00001 + +10001 +00111 +00001 +00100 +00100 +10001 + +00000 +11100 +11001 +10011 +10011 +10011 + +10001 +00100 +10001 +00100 +00100 +10001 + +10001 +00100 +00100 +10000 +11100 +10001 + diff --git a/nokia-small-bold.c b/nokia-small-bold.c new file mode 100644 index 0000000..d3f579f --- /dev/null +++ b/nokia-small-bold.c @@ -0,0 +1,111 @@ +struct +{ + int width; + int advance; + int rows[8]; +} +font_data[] = +{ + { 3, 4, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, // space + { 2, 3, { 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0xc0, 0x00 } }, // ! + { 3, 4, { 0xa0, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, // " + { 5, 6, { 0x50, 0xf8, 0xf8, 0x50, 0xf8, 0xf8, 0x50, 0x00 } }, // # + { 5, 6, { 0x50, 0x78, 0xd0, 0xf0, 0x78, 0x58, 0xf0, 0x50 } }, // $ + { 6, 7, { 0xc8, 0xd8, 0x10, 0x30, 0x20, 0x6c, 0x4c, 0x00 } }, // % + { 6, 7, { 0x70, 0xd8, 0x70, 0xf4, 0xdc, 0xdc, 0x74, 0x00 } }, // & + { 1, 2, { 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, // ' + { 3, 4, { 0x20, 0x40, 0xc0, 0xc0, 0xc0, 0xc0, 0x40, 0x20 } }, // ( + { 3, 4, { 0x80, 0x40, 0x60, 0x60, 0x60, 0x60, 0x40, 0x80 } }, // ) + { 5, 6, { 0x20, 0xa8, 0xf8, 0x70, 0xf8, 0xa8, 0x20, 0x00 } }, // * + { 5, 6, { 0x00, 0x20, 0x20, 0xf8, 0x20, 0x20, 0x00, 0x00 } }, // + + { 2, 3, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x80 } }, // , + { 4, 5, { 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00 } }, // - + { 2, 3, { 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00 } }, // . + { 3, 4, { 0x20, 0x20, 0x60, 0x40, 0xc0, 0x80, 0x80, 0x00 } }, // / + { 5, 6, { 0x70, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0x70, 0x00 } }, // 0 + { 5, 6, { 0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00 } }, // 1 + { 5, 6, { 0xf0, 0x18, 0x18, 0x70, 0xc0, 0xc0, 0xf8, 0x00 } }, // 2 + { 5, 6, { 0xf0, 0x18, 0x18, 0x70, 0x18, 0x18, 0xf0, 0x00 } }, // 3 + { 5, 6, { 0x18, 0x38, 0x58, 0x98, 0xf8, 0x18, 0x18, 0x00 } }, // 4 + { 5, 6, { 0xf0, 0x80, 0xf0, 0x18, 0x18, 0x18, 0xf0, 0x00 } }, // 5 + { 5, 6, { 0x70, 0xc0, 0xf0, 0xd8, 0xd8, 0xd8, 0x70, 0x00 } }, // 6 + { 5, 6, { 0xf8, 0x18, 0x30, 0x30, 0x60, 0x60, 0x60, 0x00 } }, // 7 + { 5, 6, { 0x70, 0xd8, 0xd8, 0x70, 0xd8, 0xd8, 0x70, 0x00 } }, // 8 + { 5, 6, { 0x70, 0xd8, 0xd8, 0xd8, 0x78, 0x18, 0x70, 0x00 } }, // 9 + { 2, 3, { 0x00, 0x00, 0xc0, 0xc0, 0x00, 0xc0, 0xc0, 0x00 } }, // : + { 2, 3, { 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x40, 0xc0, 0x80 } }, // ; + { 4, 5, { 0x10, 0x30, 0x60, 0xc0, 0x60, 0x30, 0x10, 0x00 } }, // < + { 4, 5, { 0x00, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0x00 } }, // = + { 4, 5, { 0x80, 0xc0, 0x60, 0x30, 0x60, 0xc0, 0x80, 0x00 } }, // > + { 5, 6, { 0xf0, 0x18, 0x30, 0x60, 0x60, 0x00, 0x60, 0x00 } }, // ? + { 6, 7, { 0x00, 0x78, 0xcc, 0xfc, 0xdc, 0xfc, 0xc0, 0x78 } }, // @ + { 5, 6, { 0x70, 0xd8, 0xd8, 0xd8, 0xf8, 0xd8, 0xd8, 0x00 } }, // A + { 5, 6, { 0xf0, 0xd8, 0xf0, 0xd8, 0xd8, 0xd8, 0xf0, 0x00 } }, // B + { 5, 6, { 0x78, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x78, 0x00 } }, // C + { 5, 6, { 0xf0, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xf0, 0x00 } }, // D + { 5, 6, { 0xf8, 0xc0, 0xf0, 0xc0, 0xc0, 0xc0, 0xf8, 0x00 } }, // E + { 5, 6, { 0xf8, 0xc0, 0xf0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00 } }, // F + { 5, 6, { 0x70, 0xc0, 0xc0, 0xd8, 0xd8, 0xd8, 0x78, 0x00 } }, // G + { 5, 6, { 0xd8, 0xd8, 0xf8, 0xd8, 0xd8, 0xd8, 0xd8, 0x00 } }, // H + { 2, 3, { 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00 } }, // I + { 4, 5, { 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xe0, 0x00 } }, // J + { 6, 7, { 0xcc, 0xd8, 0xf0, 0xe0, 0xf0, 0xd8, 0xcc, 0x00 } }, // K + { 4, 5, { 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xf0, 0x00 } }, // L + { 7, 8, { 0x82, 0xc6, 0xee, 0xfe, 0xd6, 0xc6, 0xc6, 0x00 } }, // M + { 6, 7, { 0x8c, 0xcc, 0xec, 0xfc, 0xdc, 0xcc, 0xc4, 0x00 } }, // N + { 6, 7, { 0x78, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x78, 0x00 } }, // O + { 5, 6, { 0xf0, 0xd8, 0xd8, 0xd8, 0xf0, 0xc0, 0xc0, 0x00 } }, // P + { 6, 7, { 0x78, 0xcc, 0xcc, 0xcc, 0xcc, 0xdc, 0x78, 0x0c } }, // Q + { 5, 6, { 0xf0, 0xd8, 0xd8, 0xd8, 0xf0, 0xd0, 0xd8, 0x00 } }, // R + { 4, 5, { 0x70, 0xc0, 0xc0, 0x60, 0x30, 0x30, 0xe0, 0x00 } }, // S + { 6, 7, { 0xfc, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00 } }, // T + { 5, 6, { 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0x70, 0x00 } }, // U + { 6, 7, { 0xcc, 0xcc, 0xcc, 0x78, 0x78, 0x30, 0x30, 0x00 } }, // V + { 7, 8, { 0xc6, 0xc6, 0xd6, 0xfe, 0x7c, 0x7c, 0x6c, 0x00 } }, // W + { 6, 7, { 0xcc, 0xcc, 0x78, 0x30, 0x78, 0xcc, 0xcc, 0x00 } }, // X + { 6, 7, { 0xcc, 0xcc, 0x78, 0x30, 0x30, 0x30, 0x30, 0x00 } }, // Y + { 5, 6, { 0xf8, 0x18, 0x38, 0x70, 0xe0, 0xc0, 0xf8, 0x00 } }, // Z + { 3, 4, { 0xe0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0 } }, // [ + { 3, 4, { 0x80, 0x80, 0xc0, 0x40, 0x60, 0x20, 0x20, 0x00 } }, // backslash + { 3, 4, { 0xe0, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0xe0 } }, // ] + { 3, 4, { 0x40, 0xe0, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00 } }, // ^ + { 5, 5, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8 } }, // _ + { 2, 3, { 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, // ` + { 5, 6, { 0x00, 0x00, 0x70, 0x18, 0x78, 0xd8, 0x78, 0x00 } }, // a + { 5, 6, { 0xc0, 0xc0, 0xf0, 0xd8, 0xd8, 0xd8, 0xf0, 0x00 } }, // b + { 4, 5, { 0x00, 0x00, 0x70, 0xc0, 0xc0, 0xc0, 0x70, 0x00 } }, // c + { 5, 6, { 0x18, 0x18, 0x78, 0xd8, 0xd8, 0xd8, 0x78, 0x00 } }, // d + { 5, 6, { 0x00, 0x00, 0x70, 0xd8, 0xf8, 0xc0, 0x78, 0x00 } }, // e + { 3, 4, { 0x60, 0xc0, 0xe0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00 } }, // f + { 5, 6, { 0x00, 0x00, 0x78, 0xd8, 0xd8, 0x78, 0x18, 0x70 } }, // g + { 5, 6, { 0xc0, 0xc0, 0xf0, 0xd8, 0xd8, 0xd8, 0xd8, 0x00 } }, // h + { 2, 3, { 0xc0, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00 } }, // i + { 3, 4, { 0x60, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0xc0 } }, // j + { 5, 6, { 0xc0, 0xc0, 0xd8, 0xf0, 0xe0, 0xf0, 0xd8, 0x00 } }, // k + { 2, 3, { 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00 } }, // l + { 8, 9, { 0x00, 0x00, 0xfe, 0xdb, 0xdb, 0xdb, 0xdb, 0x00 } }, // m + { 5, 6, { 0x00, 0x00, 0xf0, 0xd8, 0xd8, 0xd8, 0xd8, 0x00 } }, // n + { 5, 6, { 0x00, 0x00, 0x70, 0xd8, 0xd8, 0xd8, 0x70, 0x00 } }, // o + { 5, 6, { 0x00, 0x00, 0xf0, 0xd8, 0xd8, 0xf0, 0xc0, 0xc0 } }, // p + { 5, 6, { 0x00, 0x00, 0x78, 0xd8, 0xd8, 0x78, 0x18, 0x18 } }, // q + { 4, 5, { 0x00, 0x00, 0xd0, 0xf0, 0xc0, 0xc0, 0xc0, 0x00 } }, // r + { 4, 5, { 0x00, 0x00, 0x70, 0xc0, 0xf0, 0x30, 0xe0, 0x00 } }, // s + { 3, 4, { 0xc0, 0xc0, 0xe0, 0xc0, 0xc0, 0xc0, 0x60, 0x00 } }, // t + { 5, 6, { 0x00, 0x00, 0xd8, 0xd8, 0xd8, 0xd8, 0x78, 0x00 } }, // u + { 5, 6, { 0x00, 0x00, 0xd8, 0xd8, 0x70, 0x70, 0x20, 0x00 } }, // v + { 7, 8, { 0x00, 0x00, 0xc6, 0xc6, 0xd6, 0x7c, 0x6c, 0x00 } }, // w + { 5, 6, { 0x00, 0x00, 0xd8, 0xd8, 0x70, 0xd8, 0xd8, 0x00 } }, // x + { 5, 6, { 0x00, 0x00, 0xd8, 0xd8, 0xd8, 0x78, 0x18, 0x70 } }, // y + { 5, 6, { 0x00, 0x00, 0xf8, 0x30, 0x60, 0xc0, 0xf8, 0x00 } }, // z + { 3, 4, { 0x20, 0x40, 0xc0, 0xc0, 0xc0, 0xc0, 0x40, 0x20 } }, // { + { 2, 3, { 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0 } }, // | + { 3, 4, { 0x80, 0x40, 0x60, 0x60, 0x60, 0x60, 0x40, 0x80 } }, // } + { 6, 7, { 0x00, 0x00, 0x00, 0x64, 0xfc, 0x98, 0x00, 0x00 } }, // ~ + { 6, 7, { 0x00, 0x38, 0x44, 0xf8, 0xf0, 0x44, 0x38, 0x00 } }, // euro + { 5, 6, { 0x38, 0x60, 0x60, 0x60, 0xf0, 0x60, 0xf8, 0x00 } }, // pound + { 6, 7, { 0xcc, 0x78, 0xfc, 0x30, 0xfc, 0x30, 0x30, 0x00 } }, // yen + { 5, 6, { 0x00, 0x88, 0x70, 0xd8, 0xd8, 0x70, 0x88, 0x00 } }, // currency + { 5, 6, { 0x30, 0x00, 0x30, 0x30, 0x60, 0xc0, 0x78, 0x00 } }, // inverted ? + { 2, 3, { 0xc0, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00 } }, // inverted ! + { 4, 5, { 0x60, 0xd0, 0xe0, 0xb0, 0xd0, 0x70, 0xb0, 0x60 } }, // section +}; diff --git a/nokia-small-bold.txt b/nokia-small-bold.txt new file mode 100644 index 0000000..3c9da28 --- /dev/null +++ b/nokia-small-bold.txt @@ -0,0 +1,921 @@ +# The bold variant of the small font (8px high, up to 8px wide) +# You can run this through xform.c + +111 +111 +111 +111 +111 +111 +111 +111 + +00 +00 +00 +00 +00 +11 +00 +11 + +010 +010 +111 +111 +111 +111 +111 +111 + +10101 +00000 +00000 +10101 +00000 +00000 +10101 +11111 + +10101 +10000 +00101 +00001 +10000 +10100 +00001 +10101 + +001101 +001001 +111011 +110011 +110111 +100100 +101100 +111111 + +100011 +001001 +100011 +000010 +001000 +001000 +100010 +111111 + +0 +0 +1 +1 +1 +1 +1 +1 + +110 +101 +001 +001 +001 +001 +101 +110 + +011 +101 +100 +100 +100 +100 +101 +011 + +11011 +01010 +00000 +10001 +00000 +01010 +11011 +11111 + +11111 +11011 +11011 +00000 +11011 +11011 +11111 +11111 + +11 +11 +11 +11 +11 +10 +00 +01 + +1111 +1111 +1111 +0000 +1111 +1111 +1111 +1111 + +11 +11 +11 +11 +11 +00 +00 +11 + +110 +110 +100 +101 +001 +011 +011 +111 + +10001 +00100 +00100 +00100 +00100 +00100 +10001 +11111 + +11001 +10001 +11001 +11001 +11001 +11001 +11001 +11111 + +00001 +11100 +11100 +10001 +00111 +00111 +00000 +11111 + +00001 +11100 +11100 +10001 +11100 +11100 +00001 +11111 + +11100 +11000 +10100 +01100 +00000 +11100 +11100 +11111 + +00001 +01111 +00001 +11100 +11100 +11100 +00001 +11111 + +10001 +00111 +00001 +00100 +00100 +00100 +10001 +11111 + +00000 +11100 +11001 +11001 +10011 +10011 +10011 +11111 + +10001 +00100 +00100 +10001 +00100 +00100 +10001 +11111 + +10001 +00100 +00100 +00100 +10000 +11100 +10001 +11111 + +11 +11 +00 +00 +11 +00 +00 +11 + +11 +11 +00 +00 +11 +10 +00 +01 + +1110 +1100 +1001 +0011 +1001 +1100 +1110 +1111 + +1111 +1111 +1111 +0000 +1111 +0000 +1111 +1111 + +0111 +0011 +1001 +1100 +1001 +0011 +0111 +1111 + +00001 +11100 +11001 +10011 +10011 +11111 +10011 +11111 + +111111 +100001 +001100 +000000 +001000 +000000 +001111 +100001 + +10001 +00100 +00100 +00100 +00000 +00100 +00100 +11111 + +00001 +00100 +00001 +00100 +00100 +00100 +00001 +11111 + +10000 +00111 +00111 +00111 +00111 +00111 +10000 +11111 + +00001 +00100 +00100 +00100 +00100 +00100 +00001 +11111 + +00000 +00111 +00001 +00111 +00111 +00111 +00000 +11111 + +00000 +00111 +00001 +00111 +00111 +00111 +00111 +11111 + +10001 +00111 +00111 +00100 +00100 +00100 +10000 +11111 + +00100 +00100 +00000 +00100 +00100 +00100 +00100 +11111 + +00 +00 +00 +00 +00 +00 +00 +11 + +1100 +1100 +1100 +1100 +1100 +1100 +0001 +1111 + +001100 +001001 +000011 +000111 +000011 +001001 +001100 +111111 + +0011 +0011 +0011 +0011 +0011 +0011 +0000 +1111 + +0111110 +0011100 +0001000 +0000000 +0010100 +0011100 +0011100 +1111111 + +011100 +001100 +000100 +000000 +001000 +001100 +001110 +111111 + +100001 +001100 +001100 +001100 +001100 +001100 +100001 +111111 + +00001 +00100 +00100 +00100 +00001 +00111 +00111 +11111 + +100001 +001100 +001100 +001100 +001100 +001000 +100001 +111100 + +00001 +00100 +00100 +00100 +00001 +00101 +00100 +11111 + +1000 +0011 +0011 +1001 +1100 +1100 +0001 +1111 + +000000 +110011 +110011 +110011 +110011 +110011 +110011 +111111 + +00100 +00100 +00100 +00100 +00100 +00100 +10001 +11111 + +001100 +001100 +001100 +100001 +100001 +110011 +110011 +111111 + +0011100 +0011100 +0010100 +0000000 +1000001 +1000001 +1001001 +1111111 + +001100 +001100 +100001 +110011 +100001 +001100 +001100 +111111 + +001100 +001100 +100001 +110011 +110011 +110011 +110011 +111111 + +00000 +11100 +11000 +10001 +00011 +00111 +00000 +11111 + +000 +001 +001 +001 +001 +001 +001 +000 + +011 +011 +001 +101 +100 +110 +110 +111 + +000 +100 +100 +100 +100 +100 +100 +000 + +101 +000 +010 +111 +111 +111 +111 +111 + +11111 +11111 +11111 +11111 +11111 +11111 +11111 +00000 + +01 +10 +11 +11 +11 +11 +11 +11 + +11111 +11111 +10001 +11100 +10000 +00100 +10000 +11111 + +00111 +00111 +00001 +00100 +00100 +00100 +00001 +11111 + +1111 +1111 +1000 +0011 +0011 +0011 +1000 +1111 + +11100 +11100 +10000 +00100 +00100 +00100 +10000 +11111 + +11111 +11111 +10001 +00100 +00000 +00111 +10000 +11111 + +100 +001 +000 +001 +001 +001 +001 +111 + +11111 +11111 +10000 +00100 +00100 +10000 +11100 +10001 + +00111 +00111 +00001 +00100 +00100 +00100 +00100 +11111 + +00 +11 +00 +00 +00 +00 +00 +11 + +100 +111 +100 +100 +100 +100 +100 +001 + +00111 +00111 +00100 +00001 +00011 +00001 +00100 +11111 + +00 +00 +00 +00 +00 +00 +00 +11 + +11111111 +11111111 +00000001 +00100100 +00100100 +00100100 +00100100 +11111111 + +11111 +11111 +00001 +00100 +00100 +00100 +00100 +11111 + +11111 +11111 +10001 +00100 +00100 +00100 +10001 +11111 + +11111 +11111 +00001 +00100 +00100 +00001 +00111 +00111 + +11111 +11111 +10000 +00100 +00100 +10000 +11100 +11100 + +1111 +1111 +0010 +0000 +0011 +0011 +0011 +1111 + +1111 +1111 +1000 +0011 +0000 +1100 +0001 +1111 + +001 +001 +000 +001 +001 +001 +100 +111 + +11111 +11111 +00100 +00100 +00100 +00100 +10000 +11111 + +11111 +11111 +00100 +00100 +10001 +10001 +11011 +11111 + +1111111 +1111111 +0011100 +0011100 +0010100 +1000001 +1001001 +1111111 + +11111 +11111 +00100 +00100 +10001 +00100 +00100 +11111 + +11111 +11111 +00100 +00100 +00100 +10000 +11100 +10001 + +11111 +11111 +00000 +11001 +10011 +00111 +00000 +11111 + +110 +101 +001 +001 +001 +001 +101 +110 + +00 +00 +00 +00 +00 +00 +00 +00 + +011 +101 +100 +100 +100 +100 +101 +011 + +111111 +111111 +111111 +100110 +000000 +011001 +111111 +111111 + +111111 +110001 +101110 +000001 +000011 +101110 +110001 +111111 + +11000 +10011 +10011 +10011 +00001 +10011 +00000 +11111 + +001100 +100001 +000000 +110011 +000000 +110011 +110011 +111111 + +11111 +01110 +10001 +00100 +00100 +10001 +01110 +11111 + +11001 +11111 +11001 +11001 +10011 +00111 +10000 +11111 + +00 +11 +00 +00 +00 +00 +00 +11 + +1001 +0010 +0001 +0100 +0010 +1000 +0100 +1001 + diff --git a/nokia-small.c b/nokia-small.c new file mode 100644 index 0000000..9d41714 --- /dev/null +++ b/nokia-small.c @@ -0,0 +1,111 @@ +struct +{ + int width; + int advance; + int rows[8]; +} +font_data[] = +{ + { 3, 4, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, // space + { 1, 2, { 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0x00 } }, // ! + { 3, 4, { 0xa0, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, // " + { 5, 6, { 0x50, 0x50, 0xf8, 0x50, 0x50, 0xf8, 0x50, 0x50 } }, // # + { 4, 5, { 0x20, 0x70, 0xa0, 0xe0, 0x70, 0x30, 0xe0, 0x20 } }, // $ + { 4, 5, { 0xd0, 0xd0, 0x20, 0x60, 0x40, 0xb0, 0xb0, 0x00 } }, // % + { 5, 6, { 0x40, 0xa0, 0xa0, 0x40, 0xa8, 0x90, 0x68, 0x00 } }, // & + { 1, 2, { 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, // ' + { 2, 3, { 0x40, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40 } }, // ( + { 2, 3, { 0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80 } }, // ) + { 5, 6, { 0x00, 0x50, 0x20, 0xf8, 0x20, 0x50, 0x00, 0x00 } }, // * + { 5, 6, { 0x00, 0x20, 0x20, 0xf8, 0x20, 0x20, 0x00, 0x00 } }, // + + { 2, 3, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80 } }, // , + { 4, 5, { 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00 } }, // - + { 1, 2, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00 } }, // . + { 3, 4, { 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x00 } }, // / + { 4, 5, { 0x60, 0x90, 0x90, 0x90, 0x90, 0x90, 0x60, 0x00 } }, // 0 + { 4, 5, { 0x20, 0x60, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00 } }, // 1 + { 4, 5, { 0xe0, 0x10, 0x10, 0x60, 0x80, 0x80, 0xf0, 0x00 } }, // 2 + { 4, 5, { 0xe0, 0x10, 0x10, 0x60, 0x10, 0x10, 0xe0, 0x00 } }, // 3 + { 4, 5, { 0x10, 0x30, 0x50, 0x90, 0xf0, 0x10, 0x10, 0x00 } }, // 4 + { 4, 5, { 0xe0, 0x80, 0xe0, 0x10, 0x10, 0x10, 0xe0, 0x00 } }, // 5 + { 4, 5, { 0x60, 0x80, 0xe0, 0x90, 0x90, 0x90, 0x60, 0x00 } }, // 6 + { 4, 5, { 0xf0, 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x00 } }, // 7 + { 4, 5, { 0x60, 0x90, 0x90, 0x60, 0x90, 0x90, 0x60, 0x00 } }, // 8 + { 4, 5, { 0x60, 0x90, 0x90, 0x90, 0x70, 0x10, 0x60, 0x00 } }, // 9 + { 1, 2, { 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00 } }, // : + { 2, 3, { 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x40, 0x80 } }, // ; + { 4, 5, { 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x00 } }, // < + { 4, 5, { 0x00, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0x00 } }, // = + { 4, 5, { 0x80, 0x40, 0x20, 0x10, 0x20, 0x40, 0x80, 0x00 } }, // > + { 4, 5, { 0xe0, 0x10, 0x20, 0x40, 0x40, 0x00, 0x40, 0x00 } }, // ? + { 5, 6, { 0x70, 0x88, 0xb8, 0xd8, 0xb0, 0x88, 0x70, 0x00 } }, // @ + { 4, 5, { 0x60, 0x90, 0x90, 0x90, 0xf0, 0x90, 0x90, 0x00 } }, // A + { 4, 5, { 0xe0, 0x90, 0xe0, 0x90, 0x90, 0x90, 0xe0, 0x00 } }, // B + { 4, 5, { 0x70, 0x80, 0x80, 0x80, 0x80, 0x80, 0x70, 0x00 } }, // C + { 4, 5, { 0xe0, 0x90, 0x90, 0x90, 0x90, 0x90, 0xe0, 0x00 } }, // D + { 4, 5, { 0xf0, 0x80, 0xe0, 0x80, 0x80, 0x80, 0xf0, 0x00 } }, // E + { 4, 5, { 0xf0, 0x80, 0xe0, 0x80, 0x80, 0x80, 0x80, 0x00 } }, // F + { 4, 5, { 0x70, 0x80, 0xb0, 0x90, 0x90, 0x90, 0x70, 0x00 } }, // G + { 4, 5, { 0x90, 0x90, 0xf0, 0x90, 0x90, 0x90, 0x90, 0x00 } }, // H + { 1, 2, { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00 } }, // I + { 3, 4, { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xc0, 0x00 } }, // J + { 4, 5, { 0x90, 0xa0, 0xc0, 0x80, 0xc0, 0xa0, 0x90, 0x00 } }, // K + { 4, 5, { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xf0, 0x00 } }, // L + { 5, 6, { 0x88, 0xd8, 0xa8, 0xa8, 0x88, 0x88, 0x88, 0x00 } }, // M + { 5, 6, { 0x88, 0xc8, 0xa8, 0x98, 0x88, 0x88, 0x88, 0x00 } }, // N + { 5, 6, { 0x70, 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, 0x00 } }, // O + { 4, 5, { 0xe0, 0x90, 0x90, 0x90, 0xe0, 0x80, 0x80, 0x00 } }, // P + { 5, 6, { 0x70, 0x88, 0x88, 0x88, 0x88, 0xa8, 0x70, 0x08 } }, // Q + { 4, 5, { 0xe0, 0x90, 0x90, 0x90, 0xe0, 0xa0, 0x90, 0x00 } }, // R + { 4, 5, { 0x70, 0x80, 0x80, 0x60, 0x10, 0x10, 0xe0, 0x00 } }, // S + { 5, 6, { 0xf8, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00 } }, // T + { 4, 5, { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x60, 0x00 } }, // U + { 5, 6, { 0x88, 0x88, 0x88, 0x50, 0x50, 0x20, 0x20, 0x00 } }, // V + { 7, 8, { 0x82, 0x82, 0x44, 0x54, 0x54, 0x28, 0x28, 0x00 } }, // W + { 5, 6, { 0x88, 0x88, 0x50, 0x20, 0x50, 0x88, 0x88, 0x00 } }, // X + { 5, 6, { 0x88, 0x88, 0x50, 0x20, 0x20, 0x20, 0x20, 0x00 } }, // Y + { 4, 5, { 0xf0, 0x10, 0x20, 0x40, 0x80, 0x80, 0xf0, 0x00 } }, // Z + { 2, 3, { 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0 } }, // [ + { 3, 4, { 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x00 } }, // backslash + { 2, 3, { 0xc0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0 } }, // ] + { 3, 4, { 0x40, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, // ^ + { 5, 5, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8 } }, // _ + { 2, 3, { 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }, // ` + { 4, 5, { 0x00, 0x00, 0x60, 0x10, 0x70, 0x90, 0x70, 0x00 } }, // a + { 4, 5, { 0x80, 0x80, 0xe0, 0x90, 0x90, 0x90, 0xe0, 0x00 } }, // b + { 3, 4, { 0x00, 0x00, 0x60, 0x80, 0x80, 0x80, 0x60, 0x00 } }, // c + { 4, 5, { 0x10, 0x10, 0x70, 0x90, 0x90, 0x90, 0x70, 0x00 } }, // d + { 4, 5, { 0x00, 0x00, 0x60, 0x90, 0xf0, 0x80, 0x60, 0x00 } }, // e + { 2, 3, { 0x40, 0x80, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x00 } }, // f + { 4, 5, { 0x00, 0x00, 0x70, 0x90, 0x90, 0x70, 0x10, 0x60 } }, // g + { 4, 5, { 0x80, 0x80, 0xe0, 0x90, 0x90, 0x90, 0x90, 0x00 } }, // h + { 1, 2, { 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00 } }, // i + { 2, 3, { 0x40, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80 } }, // j + { 4, 5, { 0x80, 0x80, 0x90, 0xa0, 0xc0, 0xa0, 0x90, 0x00 } }, // k + { 1, 2, { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00 } }, // l + { 5, 6, { 0x00, 0x00, 0xf0, 0xa8, 0xa8, 0xa8, 0xa8, 0x00 } }, // m + { 4, 5, { 0x00, 0x00, 0xe0, 0x90, 0x90, 0x90, 0x90, 0x00 } }, // n + { 4, 5, { 0x00, 0x00, 0x60, 0x90, 0x90, 0x90, 0x60, 0x00 } }, // o + { 4, 5, { 0x00, 0x00, 0xe0, 0x90, 0x90, 0xe0, 0x80, 0x80 } }, // p + { 4, 5, { 0x00, 0x00, 0x70, 0x90, 0x90, 0x70, 0x10, 0x10 } }, // q + { 3, 4, { 0x00, 0x00, 0xa0, 0xe0, 0x80, 0x80, 0x80, 0x00 } }, // r + { 3, 4, { 0x00, 0x00, 0x60, 0x80, 0x40, 0x20, 0xc0, 0x00 } }, // s + { 2, 3, { 0x80, 0x80, 0xc0, 0x80, 0x80, 0x80, 0x40, 0x00 } }, // t + { 4, 5, { 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x70, 0x00 } }, // u + { 5, 6, { 0x00, 0x00, 0x88, 0x88, 0x50, 0x50, 0x20, 0x00 } }, // v + { 5, 6, { 0x00, 0x00, 0x88, 0xa8, 0xa8, 0x50, 0x50, 0x00 } }, // w + { 4, 5, { 0x00, 0x00, 0x90, 0x90, 0x60, 0x90, 0x90, 0x00 } }, // x + { 4, 5, { 0x00, 0x00, 0x90, 0x90, 0x90, 0x70, 0x10, 0x60 } }, // y + { 4, 5, { 0x00, 0x00, 0xf0, 0x20, 0x40, 0x80, 0xf0, 0x00 } }, // z + { 2, 3, { 0x40, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40 } }, // { + { 1, 2, { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 } }, // | + { 2, 3, { 0x80, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80 } }, // } + { 6, 7, { 0x00, 0x00, 0x00, 0x64, 0x98, 0x00, 0x00, 0x00 } }, // ~ + { 6, 7, { 0x00, 0x38, 0x44, 0xf8, 0xf0, 0x44, 0x38, 0x00 } }, // euro + { 4, 5, { 0x70, 0x80, 0x80, 0xe0, 0x40, 0x40, 0xf0, 0x00 } }, // pound + { 5, 6, { 0x88, 0x50, 0xf8, 0x20, 0x70, 0x20, 0x20, 0x00 } }, // yen + { 4, 5, { 0x00, 0x90, 0x60, 0x90, 0x90, 0x60, 0x90, 0x00 } }, // currency + { 4, 5, { 0x20, 0x00, 0x20, 0x20, 0x40, 0x80, 0x70, 0x00 } }, // inverted ? + { 1, 2, { 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00 } }, // inverted ! + { 3, 4, { 0x40, 0xa0, 0xc0, 0xa0, 0xa0, 0x60, 0xa0, 0x40 } }, // section +}; diff --git a/nokia-small.txt b/nokia-small.txt new file mode 100644 index 0000000..ed31b64 --- /dev/null +++ b/nokia-small.txt @@ -0,0 +1,921 @@ +# The normal variant of the small font (8px high, up to 7px wide) +# You can run this through xform.c + +111 +111 +111 +111 +111 +111 +111 +111 + +0 +0 +0 +0 +0 +1 +0 +1 + +010 +010 +111 +111 +111 +111 +111 +111 + +10101 +10101 +00000 +10101 +10101 +00000 +10101 +10101 + +1101 +1000 +0101 +0001 +1000 +1100 +0001 +1101 + +0010 +0010 +1101 +1001 +1011 +0100 +0100 +1111 + +10111 +01011 +01011 +10111 +01010 +01101 +10010 +11111 + +0 +0 +1 +1 +1 +1 +1 +1 + +10 +01 +01 +01 +01 +01 +01 +10 + +01 +10 +10 +10 +10 +10 +10 +01 + +11111 +10101 +11011 +00000 +11011 +10101 +11111 +11111 + +11111 +11011 +11011 +00000 +11011 +11011 +11111 +11111 + +11 +11 +11 +11 +11 +11 +10 +01 + +1111 +1111 +1111 +0000 +1111 +1111 +1111 +1111 + +1 +1 +1 +1 +1 +1 +0 +1 + +110 +110 +101 +101 +101 +011 +011 +111 + +1001 +0110 +0110 +0110 +0110 +0110 +1001 +1111 + +1101 +1001 +1101 +1101 +1101 +1101 +1101 +1111 + +0001 +1110 +1110 +1001 +0111 +0111 +0000 +1111 + +0001 +1110 +1110 +1001 +1110 +1110 +0001 +1111 + +1110 +1100 +1010 +0110 +0000 +1110 +1110 +1111 + +0001 +0111 +0001 +1110 +1110 +1110 +0001 +1111 + +1001 +0111 +0001 +0110 +0110 +0110 +1001 +1111 + +0000 +1110 +1101 +1101 +1011 +1011 +1011 +1111 + +1001 +0110 +0110 +1001 +0110 +0110 +1001 +1111 + +1001 +0110 +0110 +0110 +1000 +1110 +1001 +1111 + +1 +1 +1 +0 +1 +1 +0 +1 + +11 +11 +11 +10 +11 +11 +10 +01 + +1110 +1101 +1011 +0111 +1011 +1101 +1110 +1111 + +1111 +1111 +1111 +0000 +1111 +0000 +1111 +1111 + +0111 +1011 +1101 +1110 +1101 +1011 +0111 +1111 + +0001 +1110 +1101 +1011 +1011 +1111 +1011 +1111 + +10001 +01110 +01000 +00100 +01001 +01110 +10001 +11111 + +1001 +0110 +0110 +0110 +0000 +0110 +0110 +1111 + +0001 +0110 +0001 +0110 +0110 +0110 +0001 +1111 + +1000 +0111 +0111 +0111 +0111 +0111 +1000 +1111 + +0001 +0110 +0110 +0110 +0110 +0110 +0001 +1111 + +0000 +0111 +0001 +0111 +0111 +0111 +0000 +1111 + +0000 +0111 +0001 +0111 +0111 +0111 +0111 +1111 + +1000 +0111 +0100 +0110 +0110 +0110 +1000 +1111 + +0110 +0110 +0000 +0110 +0110 +0110 +0110 +1111 + +0 +0 +0 +0 +0 +0 +0 +1 + +110 +110 +110 +110 +110 +110 +001 +111 + +0110 +0101 +0011 +0111 +0011 +0101 +0110 +1111 + +0111 +0111 +0111 +0111 +0111 +0111 +0000 +1111 + +01110 +00100 +01010 +01010 +01110 +01110 +01110 +11111 + +01110 +00110 +01010 +01100 +01110 +01110 +01110 +11111 + +10001 +01110 +01110 +01110 +01110 +01110 +10001 +11111 + +0001 +0110 +0110 +0110 +0001 +0111 +0111 +1111 + +10001 +01110 +01110 +01110 +01110 +01010 +10001 +11110 + +0001 +0110 +0110 +0110 +0001 +0101 +0110 +1111 + +1000 +0111 +0111 +1001 +1110 +1110 +0001 +1111 + +00000 +11011 +11011 +11011 +11011 +11011 +11011 +11111 + +0110 +0110 +0110 +0110 +0110 +0110 +1001 +1111 + +01110 +01110 +01110 +10101 +10101 +11011 +11011 +11111 + +0111110 +0111110 +1011101 +1010101 +1010101 +1101011 +1101011 +1111111 + +01110 +01110 +10101 +11011 +10101 +01110 +01110 +11111 + +01110 +01110 +10101 +11011 +11011 +11011 +11011 +11111 + +0000 +1110 +1101 +1011 +0111 +0111 +0000 +1111 + +00 +01 +01 +01 +01 +01 +01 +00 + +011 +011 +101 +101 +101 +110 +110 +111 + +00 +10 +10 +10 +10 +10 +10 +00 + +101 +010 +111 +111 +111 +111 +111 +111 + +11111 +11111 +11111 +11111 +11111 +11111 +11111 +00000 + +01 +10 +11 +11 +11 +11 +11 +11 + +1111 +1111 +1001 +1110 +1000 +0110 +1000 +1111 + +0111 +0111 +0001 +0110 +0110 +0110 +0001 +1111 + +111 +111 +100 +011 +011 +011 +100 +111 + +1110 +1110 +1000 +0110 +0110 +0110 +1000 +1111 + +1111 +1111 +1001 +0110 +0000 +0111 +1001 +1111 + +10 +01 +00 +01 +01 +01 +01 +11 + +1111 +1111 +1000 +0110 +0110 +1000 +1110 +1001 + +0111 +0111 +0001 +0110 +0110 +0110 +0110 +1111 + +0 +1 +0 +0 +0 +0 +0 +1 + +10 +11 +10 +10 +10 +10 +10 +01 + +0111 +0111 +0110 +0101 +0011 +0101 +0110 +1111 + +0 +0 +0 +0 +0 +0 +0 +1 + +11111 +11111 +00001 +01010 +01010 +01010 +01010 +11111 + +1111 +1111 +0001 +0110 +0110 +0110 +0110 +1111 + +1111 +1111 +1001 +0110 +0110 +0110 +1001 +1111 + +1111 +1111 +0001 +0110 +0110 +0001 +0111 +0111 + +1111 +1111 +1000 +0110 +0110 +1000 +1110 +1110 + +111 +111 +010 +000 +011 +011 +011 +111 + +111 +111 +100 +011 +101 +110 +001 +111 + +01 +01 +00 +01 +01 +01 +10 +11 + +1111 +1111 +0110 +0110 +0110 +0110 +1000 +1111 + +11111 +11111 +01110 +01110 +10101 +10101 +11011 +11111 + +11111 +11111 +01110 +01010 +01010 +10101 +10101 +11111 + +1111 +1111 +0110 +0110 +1001 +0110 +0110 +1111 + +1111 +1111 +0110 +0110 +0110 +1000 +1110 +1001 + +1111 +1111 +0000 +1101 +1011 +0111 +0000 +1111 + +10 +01 +01 +01 +01 +01 +01 +10 + +0 +0 +0 +0 +0 +0 +0 +0 + +01 +10 +10 +10 +10 +10 +10 +01 + +111111 +111111 +111111 +100110 +011001 +111111 +111111 +111111 + +111111 +110001 +101110 +000001 +000011 +101110 +110001 +111111 + +1000 +0111 +0111 +0001 +1011 +1011 +0000 +1111 + +01110 +10101 +00000 +11011 +10001 +11011 +11011 +11111 + +1111 +0110 +1001 +0110 +0110 +1001 +0110 +1111 + +1101 +1111 +1101 +1101 +1011 +0111 +1000 +1111 + +0 +1 +0 +0 +0 +0 +0 +1 + +101 +010 +001 +010 +010 +100 +010 +101 + diff --git a/xform.c b/xform.c new file mode 100644 index 0000000..19001cd --- /dev/null +++ b/xform.c @@ -0,0 +1,146 @@ +/* + * Trivial ASCII to C source transformation tool + * Public domain + */ + +#include +#include +#include + +#define H_MAX 32 +#define W_MAX 32 + +int +main (int argc, char *argv[]) +{ + if (argc != 3) + { + fprintf (stderr, "Usage: %s font_height font_width < input\n", argv[0]); + exit (1); + } + + char *p; + int font_height = strtol (argv[1], &p, 10); + if (*p || p == argv[1] || font_height <= 0 || font_height > H_MAX) + { + fprintf (stderr, "invalid font height\n"); + exit (1); + } + + int bit_width = strtol (argv[2], &p, 10); + if (*p || p == argv[2] || bit_width <= 0 || bit_width > W_MAX) + { + fprintf (stderr, "invalid font width\n"); + exit (1); + } + + // Width in pixels to width in bits, rounded up to bytes + bit_width = (bit_width + 7) / 8 * 8; + + int c, irow = 0, icol = 0, charw = 0; + char row_data[H_MAX * W_MAX] = { 0 }; + + printf ("struct\n"); + printf ("{\n"); + printf ("\tint width;\n"); + printf ("\tint advance;\n"); + printf ("\tint rows[%d];\n", font_height); + printf ("}\n"); + printf ("font_data[] =\n"); + printf ("{\n"); + + while ((c = getchar ()) != EOF) + { + if (c == '\n') + { + if (irow == 0) + { + // We expect a new character definition + if (icol != 0) + { + charw = icol; + + icol = 0; + irow++; + } + } + else if (irow < font_height) + { + // Just checking on consistency + if (icol != charw) + { + fprintf (stderr, "wrong line width\n"); + exit (1); + } + + icol = 0; + irow++; + } + else + { + // Flushing the character after a newline + if (icol != 0) + { + fprintf (stderr, "character too high\n"); + exit (1); + } + + // Character width, horizontal advance + printf ("\t{ %2d, %2d, { ", charw, charw + 1); + + int y, x; + for (y = 0; ; ) + { + unsigned bits = 0; + for (x = 0; x < charw; x++) + bits = (bits << 1) | row_data[y * W_MAX + x]; + if (charw < bit_width) + bits <<= (bit_width - charw); + + printf ("0x%0*x", (bit_width + 3) / 4, bits); + if (++y != font_height) + printf (", "); + else + break; + } + + printf (" } },\n"); + + memset (row_data, 0, sizeof row_data); + icol = irow = charw = 0; + } + } + else if (c == '#') + { + // Comments + while ((c = getchar ()) != '\n' && c != EOF) + ; + ungetc ('\n', stdin); + } + else + { + if (icol == W_MAX) + { + fprintf (stderr, "character too wide\n"); + exit (1); + } + + if (c != '0' && c != '1') + { + fprintf (stderr, "invalid input '%c'\n", c); + exit (1); + } + row_data[irow * W_MAX + icol++] = 1 - (c - '0'); + } + } + + if (icol != 0) + { + fprintf (stderr, "unexpected EOF\n"); + exit (1); + } + + printf ("};\n"); + return 0; +} +