From 2b658954f9307f47584e7512f3ea69219ffb51fa Mon Sep 17 00:00:00 2001 From: Aaron Culliney Date: Sun, 19 Apr 2015 14:20:39 -0700 Subject: [PATCH] Various additions/changes to interface glyphs --- src/font.c | 480 ++++++++++++++++++++++++++++++---------------- src/font.txt | 212 ++++++++++---------- src/genfont.c | 7 +- src/video/video.h | 48 +++-- 4 files changed, 462 insertions(+), 285 deletions(-) diff --git a/src/font.c b/src/font.c index fd43d971..8a24802b 100644 --- a/src/font.c +++ b/src/font.c @@ -5,176 +5,336 @@ const unsigned char ucase_glyphs[512] = { - 0x1c, 0x22, 0x2a, 0x3a, 0x1a, 0x02, 0x3c, 0x00, - 0x08, 0x14, 0x22, 0x22, 0x3e, 0x22, 0x22, 0x00, - 0x1e, 0x22, 0x22, 0x1e, 0x22, 0x22, 0x1e, 0x00, - 0x1c, 0x22, 0x02, 0x02, 0x02, 0x22, 0x1c, 0x00, - 0x1e, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1e, 0x00, - 0x3e, 0x02, 0x02, 0x1e, 0x02, 0x02, 0x3e, 0x00, - 0x3e, 0x02, 0x02, 0x1e, 0x02, 0x02, 0x02, 0x00, - 0x3c, 0x02, 0x02, 0x02, 0x32, 0x22, 0x3c, 0x00, - 0x22, 0x22, 0x22, 0x3e, 0x22, 0x22, 0x22, 0x00, - 0x1c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1c, 0x00, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x1c, 0x00, - 0x22, 0x12, 0x0a, 0x06, 0x0a, 0x12, 0x22, 0x00, - 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x3e, 0x00, - 0x22, 0x36, 0x2a, 0x2a, 0x22, 0x22, 0x22, 0x00, - 0x22, 0x22, 0x26, 0x2a, 0x32, 0x22, 0x22, 0x00, - 0x1c, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1c, 0x00, - 0x1e, 0x22, 0x22, 0x1e, 0x02, 0x02, 0x02, 0x00, - 0x1c, 0x22, 0x22, 0x22, 0x2a, 0x12, 0x2c, 0x00, - 0x1e, 0x22, 0x22, 0x1e, 0x0a, 0x12, 0x22, 0x00, - 0x1c, 0x22, 0x02, 0x1c, 0x20, 0x22, 0x1c, 0x00, - 0x3e, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1c, 0x00, - 0x22, 0x22, 0x22, 0x22, 0x22, 0x14, 0x08, 0x00, - 0x22, 0x22, 0x22, 0x2a, 0x2a, 0x36, 0x22, 0x00, - 0x22, 0x22, 0x14, 0x08, 0x14, 0x22, 0x22, 0x00, - 0x22, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x3e, 0x20, 0x10, 0x08, 0x04, 0x02, 0x3e, 0x00, - 0x3e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3e, 0x00, - 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, - 0x3e, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3e, 0x00, - 0x00, 0x00, 0x08, 0x14, 0x22, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08, 0x00, - 0x14, 0x14, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x14, 0x14, 0x3e, 0x14, 0x3e, 0x14, 0x14, 0x00, - 0x08, 0x3c, 0x0a, 0x1c, 0x28, 0x1e, 0x08, 0x00, - 0x06, 0x26, 0x10, 0x08, 0x04, 0x32, 0x30, 0x00, - 0x04, 0x0a, 0x0a, 0x04, 0x2a, 0x12, 0x2c, 0x00, - 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x04, 0x02, 0x02, 0x02, 0x04, 0x08, 0x00, - 0x08, 0x10, 0x20, 0x20, 0x20, 0x10, 0x08, 0x00, - 0x08, 0x2a, 0x1c, 0x08, 0x1c, 0x2a, 0x08, 0x00, - 0x00, 0x08, 0x08, 0x3e, 0x08, 0x08, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x04, 0x00, - 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x00, - 0x1c, 0x22, 0x32, 0x2a, 0x26, 0x22, 0x1c, 0x00, - 0x08, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x1c, 0x00, - 0x1c, 0x22, 0x20, 0x18, 0x04, 0x02, 0x3e, 0x00, - 0x3e, 0x20, 0x10, 0x18, 0x20, 0x22, 0x1c, 0x00, - 0x10, 0x18, 0x14, 0x12, 0x3e, 0x10, 0x10, 0x00, - 0x3e, 0x02, 0x1e, 0x20, 0x20, 0x22, 0x1c, 0x00, - 0x38, 0x04, 0x02, 0x1e, 0x22, 0x22, 0x1c, 0x00, - 0x3e, 0x20, 0x10, 0x08, 0x04, 0x04, 0x04, 0x00, - 0x1c, 0x22, 0x22, 0x1c, 0x22, 0x22, 0x1c, 0x00, - 0x1c, 0x22, 0x22, 0x3c, 0x20, 0x10, 0x0e, 0x00, - 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x08, 0x00, 0x08, 0x08, 0x04, 0x00, - 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x00, - 0x00, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x00, 0x00, - 0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x04, 0x00, - 0x1c, 0x22, 0x10, 0x08, 0x08, 0x00, 0x08, 0x00 + /* : 0x00 */ +0x1c, 0x22, 0x2a, 0x3a, 0x1a, 0x02, 0x3c, 0x00, + /* : 0x01 */ +0x08, 0x14, 0x22, 0x22, 0x3e, 0x22, 0x22, 0x00, + /* : 0x02 */ +0x1e, 0x22, 0x22, 0x1e, 0x22, 0x22, 0x1e, 0x00, + /* : 0x03 */ +0x1c, 0x22, 0x02, 0x02, 0x02, 0x22, 0x1c, 0x00, + /* : 0x04 */ +0x1e, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1e, 0x00, + /* : 0x05 */ +0x3e, 0x02, 0x02, 0x1e, 0x02, 0x02, 0x3e, 0x00, + /* : 0x06 */ +0x3e, 0x02, 0x02, 0x1e, 0x02, 0x02, 0x02, 0x00, + /* : 0x07 */ +0x3c, 0x02, 0x02, 0x02, 0x32, 0x22, 0x3c, 0x00, + /* : 0x08 */ +0x22, 0x22, 0x22, 0x3e, 0x22, 0x22, 0x22, 0x00, + /* : 0x09 */ +0x1c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1c, 0x00, + /* : 0x0a */ +0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x1c, 0x00, + /* : 0x0b */ +0x22, 0x12, 0x0a, 0x06, 0x0a, 0x12, 0x22, 0x00, + /* : 0x0c */ +0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x3e, 0x00, + /* : 0x0d */ +0x22, 0x36, 0x2a, 0x2a, 0x22, 0x22, 0x22, 0x00, + /* : 0x0e */ +0x22, 0x22, 0x26, 0x2a, 0x32, 0x22, 0x22, 0x00, + /* : 0x0f */ +0x1c, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1c, 0x00, + /* : 0x10 */ +0x1e, 0x22, 0x22, 0x1e, 0x02, 0x02, 0x02, 0x00, + /* : 0x11 */ +0x1c, 0x22, 0x22, 0x22, 0x2a, 0x12, 0x2c, 0x00, + /* : 0x12 */ +0x1e, 0x22, 0x22, 0x1e, 0x0a, 0x12, 0x22, 0x00, + /* : 0x13 */ +0x1c, 0x22, 0x02, 0x1c, 0x20, 0x22, 0x1c, 0x00, + /* : 0x14 */ +0x3e, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + /* : 0x15 */ +0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1c, 0x00, + /* : 0x16 */ +0x22, 0x22, 0x22, 0x22, 0x22, 0x14, 0x08, 0x00, + /* : 0x17 */ +0x22, 0x22, 0x22, 0x2a, 0x2a, 0x36, 0x22, 0x00, + /* : 0x18 */ +0x22, 0x22, 0x14, 0x08, 0x14, 0x22, 0x22, 0x00, + /* : 0x19 */ +0x22, 0x22, 0x14, 0x08, 0x08, 0x08, 0x08, 0x00, + /* : 0x1a */ +0x3e, 0x20, 0x10, 0x08, 0x04, 0x02, 0x3e, 0x00, + /* : 0x1b */ +0x3e, 0x06, 0x06, 0x06, 0x06, 0x06, 0x3e, 0x00, + /* : 0x1c */ +0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, + /* : 0x1d */ +0x3e, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3e, 0x00, + /* : 0x1e */ +0x00, 0x00, 0x08, 0x14, 0x22, 0x00, 0x00, 0x00, + /* : 0x1f */ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, + /* : 0x20 */ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* : 0x21 */ +0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x08, 0x00, + /* : 0x22 */ +0x14, 0x14, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, + /* : 0x23 */ +0x14, 0x14, 0x3e, 0x14, 0x3e, 0x14, 0x14, 0x00, + /* : 0x24 */ +0x08, 0x3c, 0x0a, 0x1c, 0x28, 0x1e, 0x08, 0x00, + /* : 0x25 */ +0x06, 0x26, 0x10, 0x08, 0x04, 0x32, 0x30, 0x00, + /* : 0x26 */ +0x04, 0x0a, 0x0a, 0x04, 0x2a, 0x12, 0x2c, 0x00, + /* : 0x27 */ +0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + /* : 0x28 */ +0x08, 0x04, 0x02, 0x02, 0x02, 0x04, 0x08, 0x00, + /* : 0x29 */ +0x08, 0x10, 0x20, 0x20, 0x20, 0x10, 0x08, 0x00, + /* : 0x2a */ +0x08, 0x2a, 0x1c, 0x08, 0x1c, 0x2a, 0x08, 0x00, + /* : 0x2b */ +0x00, 0x08, 0x08, 0x3e, 0x08, 0x08, 0x00, 0x00, + /* : 0x2c */ +0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x04, 0x00, + /* : 0x2d */ +0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, + /* : 0x2e */ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, + /* : 0x2f */ +0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x00, + /* : 0x30 */ +0x1c, 0x22, 0x32, 0x2a, 0x26, 0x22, 0x1c, 0x00, + /* : 0x31 */ +0x08, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x1c, 0x00, + /* : 0x32 */ +0x1c, 0x22, 0x20, 0x18, 0x04, 0x02, 0x3e, 0x00, + /* : 0x33 */ +0x3e, 0x20, 0x10, 0x18, 0x20, 0x22, 0x1c, 0x00, + /* : 0x34 */ +0x10, 0x18, 0x14, 0x12, 0x3e, 0x10, 0x10, 0x00, + /* : 0x35 */ +0x3e, 0x02, 0x1e, 0x20, 0x20, 0x22, 0x1c, 0x00, + /* : 0x36 */ +0x38, 0x04, 0x02, 0x1e, 0x22, 0x22, 0x1c, 0x00, + /* : 0x37 */ +0x3e, 0x20, 0x10, 0x08, 0x04, 0x04, 0x04, 0x00, + /* : 0x38 */ +0x1c, 0x22, 0x22, 0x1c, 0x22, 0x22, 0x1c, 0x00, + /* : 0x39 */ +0x1c, 0x22, 0x22, 0x3c, 0x20, 0x10, 0x0e, 0x00, + /* : 0x3a */ +0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, + /* : 0x3b */ +0x00, 0x00, 0x08, 0x00, 0x08, 0x08, 0x04, 0x00, + /* : 0x3c */ +0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x00, + /* : 0x3d */ +0x00, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x00, 0x00, + /* : 0x3e */ +0x04, 0x08, 0x10, 0x20, 0x10, 0x08, 0x04, 0x00, + /* : 0x3f */ +0x1c, 0x22, 0x10, 0x08, 0x08, 0x00, 0x08, 0x00 }; const unsigned char lcase_glyphs[256] = { - 0x02, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1c, 0x20, 0x3c, 0x22, 0x3c, 0x00, - 0x02, 0x02, 0x1e, 0x22, 0x22, 0x22, 0x1e, 0x00, - 0x00, 0x00, 0x3c, 0x02, 0x02, 0x02, 0x3c, 0x00, - 0x20, 0x20, 0x3c, 0x22, 0x22, 0x22, 0x3c, 0x00, - 0x00, 0x00, 0x1c, 0x22, 0x3e, 0x02, 0x3c, 0x00, - 0x18, 0x24, 0x04, 0x0e, 0x04, 0x04, 0x04, 0x00, - 0x00, 0x00, 0x1c, 0x22, 0x22, 0x3c, 0x20, 0x1c, - 0x02, 0x02, 0x1e, 0x22, 0x22, 0x22, 0x22, 0x00, - 0x08, 0x00, 0x0c, 0x08, 0x08, 0x08, 0x1c, 0x00, - 0x10, 0x00, 0x18, 0x10, 0x10, 0x10, 0x12, 0x0c, - 0x02, 0x02, 0x22, 0x12, 0x0e, 0x12, 0x22, 0x00, - 0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1c, 0x00, - 0x00, 0x00, 0x16, 0x2a, 0x2a, 0x2a, 0x2a, 0x00, - 0x00, 0x00, 0x1e, 0x22, 0x22, 0x22, 0x22, 0x00, - 0x00, 0x00, 0x1c, 0x22, 0x22, 0x22, 0x1c, 0x00, - 0x00, 0x00, 0x1e, 0x22, 0x22, 0x1e, 0x02, 0x02, - 0x00, 0x00, 0x3c, 0x22, 0x22, 0x3c, 0x20, 0x20, - 0x00, 0x00, 0x3a, 0x06, 0x02, 0x02, 0x02, 0x00, - 0x00, 0x00, 0x3c, 0x02, 0x1c, 0x20, 0x1e, 0x00, - 0x04, 0x04, 0x3e, 0x04, 0x04, 0x24, 0x18, 0x00, - 0x00, 0x00, 0x22, 0x22, 0x22, 0x32, 0x2c, 0x00, - 0x00, 0x00, 0x22, 0x22, 0x22, 0x14, 0x08, 0x00, - 0x00, 0x00, 0x22, 0x2a, 0x2a, 0x2a, 0x14, 0x00, - 0x00, 0x00, 0x22, 0x14, 0x08, 0x14, 0x22, 0x00, - 0x00, 0x00, 0x22, 0x22, 0x22, 0x3c, 0x20, 0x1c, - 0x00, 0x00, 0x3e, 0x10, 0x08, 0x04, 0x3e, 0x00, - 0x38, 0x0c, 0x0c, 0x06, 0x0c, 0x0c, 0x38, 0x00, - 0x08, 0x08, 0x08, 0x00, 0x08, 0x08, 0x08, 0x00, - 0x0e, 0x18, 0x18, 0x30, 0x18, 0x18, 0x0e, 0x00, - 0x2c, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x2a, 0x14, 0x2a, 0x14, 0x2a, 0x00, 0x00 + /* : 0x60 */ +0x02, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, + /* : 0x61 */ +0x00, 0x00, 0x1c, 0x20, 0x3c, 0x22, 0x3c, 0x00, + /* : 0x62 */ +0x02, 0x02, 0x1e, 0x22, 0x22, 0x22, 0x1e, 0x00, + /* : 0x63 */ +0x00, 0x00, 0x3c, 0x02, 0x02, 0x02, 0x3c, 0x00, + /* : 0x64 */ +0x20, 0x20, 0x3c, 0x22, 0x22, 0x22, 0x3c, 0x00, + /* : 0x65 */ +0x00, 0x00, 0x1c, 0x22, 0x3e, 0x02, 0x3c, 0x00, + /* : 0x66 */ +0x18, 0x24, 0x04, 0x0e, 0x04, 0x04, 0x04, 0x00, + /* : 0x67 */ +0x00, 0x00, 0x1c, 0x22, 0x22, 0x3c, 0x20, 0x1c, + /* : 0x68 */ +0x02, 0x02, 0x1e, 0x22, 0x22, 0x22, 0x22, 0x00, + /* : 0x69 */ +0x08, 0x00, 0x0c, 0x08, 0x08, 0x08, 0x1c, 0x00, + /* : 0x6a */ +0x10, 0x00, 0x18, 0x10, 0x10, 0x10, 0x12, 0x0c, + /* : 0x6b */ +0x02, 0x02, 0x22, 0x12, 0x0e, 0x12, 0x22, 0x00, + /* : 0x6c */ +0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1c, 0x00, + /* : 0x6d */ +0x00, 0x00, 0x16, 0x2a, 0x2a, 0x2a, 0x2a, 0x00, + /* : 0x6e */ +0x00, 0x00, 0x1e, 0x22, 0x22, 0x22, 0x22, 0x00, + /* : 0x6f */ +0x00, 0x00, 0x1c, 0x22, 0x22, 0x22, 0x1c, 0x00, + /* : 0x70 */ +0x00, 0x00, 0x1e, 0x22, 0x22, 0x1e, 0x02, 0x02, + /* : 0x71 */ +0x00, 0x00, 0x3c, 0x22, 0x22, 0x3c, 0x20, 0x20, + /* : 0x72 */ +0x00, 0x00, 0x3a, 0x06, 0x02, 0x02, 0x02, 0x00, + /* : 0x73 */ +0x00, 0x00, 0x3c, 0x02, 0x1c, 0x20, 0x1e, 0x00, + /* : 0x74 */ +0x04, 0x04, 0x3e, 0x04, 0x04, 0x24, 0x18, 0x00, + /* : 0x75 */ +0x00, 0x00, 0x22, 0x22, 0x22, 0x32, 0x2c, 0x00, + /* : 0x76 */ +0x00, 0x00, 0x22, 0x22, 0x22, 0x14, 0x08, 0x00, + /* : 0x77 */ +0x00, 0x00, 0x22, 0x2a, 0x2a, 0x2a, 0x14, 0x00, + /* : 0x78 */ +0x00, 0x00, 0x22, 0x14, 0x08, 0x14, 0x22, 0x00, + /* : 0x79 */ +0x00, 0x00, 0x22, 0x22, 0x22, 0x3c, 0x20, 0x1c, + /* : 0x7a */ +0x00, 0x00, 0x3e, 0x10, 0x08, 0x04, 0x3e, 0x00, + /* : 0x7b */ +0x38, 0x0c, 0x0c, 0x06, 0x0c, 0x0c, 0x38, 0x00, + /* : 0x7c */ +0x08, 0x08, 0x08, 0x00, 0x08, 0x08, 0x08, 0x00, + /* : 0x7d */ +0x0e, 0x18, 0x18, 0x30, 0x18, 0x18, 0x0e, 0x00, + /* : 0x7e */ +0x2c, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* : 0x7f */ +0x00, 0x2a, 0x14, 0x2a, 0x14, 0x2a, 0x00, 0x00 }; const unsigned char mousetext_glyphs[256] = { - 0x10, 0x08, 0x36, 0x7f, 0x3f, 0x3f, 0x7e, 0x36, - 0x10, 0x08, 0x36, 0x41, 0x21, 0x21, 0x4a, 0x36, - 0x00, 0x00, 0x02, 0x06, 0x0e, 0x1e, 0x36, 0x42, - 0x7f, 0x22, 0x14, 0x08, 0x08, 0x14, 0x22, 0x7f, - 0x00, 0x40, 0x20, 0x11, 0x0a, 0x04, 0x04, 0x00, - 0x7f, 0x3f, 0x5f, 0x6e, 0x75, 0x7b, 0x7b, 0x7f, - 0x70, 0x60, 0x7e, 0x31, 0x79, 0x30, 0x3f, 0x02, - 0x00, 0x18, 0x07, 0x00, 0x07, 0x0c, 0x08, 0x70, - 0x08, 0x04, 0x02, 0x7f, 0x02, 0x04, 0x08, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, - 0x08, 0x08, 0x08, 0x08, 0x49, 0x2a, 0x1c, 0x08, - 0x08, 0x1c, 0x2a, 0x49, 0x08, 0x08, 0x08, 0x08, - 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x40, 0x44, 0x46, 0x7f, 0x06, 0x04, - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, - 0x13, 0x18, 0x1c, 0x7e, 0x1c, 0x18, 0x10, 0x6f, - 0x64, 0x0c, 0x1c, 0x3f, 0x1c, 0x0c, 0x04, 0x7b, - 0x40, 0x48, 0x08, 0x7f, 0x3e, 0x1c, 0x48, 0x40, - 0x40, 0x48, 0x1c, 0x3e, 0x7f, 0x08, 0x48, 0x40, - 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x7f, - 0x08, 0x10, 0x20, 0x7f, 0x20, 0x10, 0x08, 0x00, - 0x2a, 0x55, 0x2a, 0x55, 0x2a, 0x55, 0x2a, 0x55, - 0x55, 0x2a, 0x55, 0x2a, 0x55, 0x2a, 0x55, 0x2a, - 0x00, 0x3e, 0x41, 0x01, 0x01, 0x01, 0x7f, 0x00, - 0x00, 0x00, 0x3f, 0x40, 0x40, 0x40, 0x7f, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, - 0x08, 0x1c, 0x3e, 0x7f, 0x3e, 0x1c, 0x08, 0x00, - 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, - 0x14, 0x14, 0x77, 0x00, 0x77, 0x14, 0x14, 0x00, - 0x7f, 0x40, 0x40, 0x4c, 0x4c, 0x40, 0x40, 0x7f, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 + /* : 0x00 */ +0x10, 0x08, 0x36, 0x7f, 0x3f, 0x3f, 0x7e, 0x36, + /* : 0x01 */ +0x10, 0x08, 0x36, 0x41, 0x21, 0x21, 0x4a, 0x36, + /* : 0x02 */ +0x00, 0x00, 0x02, 0x06, 0x0e, 0x1e, 0x36, 0x42, + /* : 0x03 */ +0x7f, 0x22, 0x14, 0x08, 0x08, 0x14, 0x22, 0x7f, + /* : 0x04 */ +0x00, 0x40, 0x20, 0x11, 0x0a, 0x04, 0x04, 0x00, + /* : 0x05 */ +0x7f, 0x3f, 0x5f, 0x6e, 0x75, 0x7b, 0x7b, 0x7f, + /* : 0x06 */ +0x70, 0x60, 0x7e, 0x31, 0x79, 0x30, 0x3f, 0x02, + /* : 0x07 */ +0x00, 0x18, 0x07, 0x00, 0x07, 0x0c, 0x08, 0x70, + /* : 0x08 */ +0x08, 0x04, 0x02, 0x7f, 0x02, 0x04, 0x08, 0x00, + /* : 0x09 */ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, + /* : 0x0a */ +0x08, 0x08, 0x08, 0x08, 0x49, 0x2a, 0x1c, 0x08, + /* : 0x0b */ +0x08, 0x1c, 0x2a, 0x49, 0x08, 0x08, 0x08, 0x08, + /* : 0x0c */ +0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* : 0x0d */ +0x40, 0x40, 0x40, 0x44, 0x46, 0x7f, 0x06, 0x04, + /* : 0x0e */ +0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, + /* : 0x0f */ +0x13, 0x18, 0x1c, 0x7e, 0x1c, 0x18, 0x10, 0x6f, + /* : 0x10 */ +0x64, 0x0c, 0x1c, 0x3f, 0x1c, 0x0c, 0x04, 0x7b, + /* : 0x11 */ +0x40, 0x48, 0x08, 0x7f, 0x3e, 0x1c, 0x48, 0x40, + /* : 0x12 */ +0x40, 0x48, 0x1c, 0x3e, 0x7f, 0x08, 0x48, 0x40, + /* : 0x13 */ +0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, + /* : 0x14 */ +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x7f, + /* : 0x15 */ +0x08, 0x10, 0x20, 0x7f, 0x20, 0x10, 0x08, 0x00, + /* : 0x16 */ +0x2a, 0x55, 0x2a, 0x55, 0x2a, 0x55, 0x2a, 0x55, + /* : 0x17 */ +0x55, 0x2a, 0x55, 0x2a, 0x55, 0x2a, 0x55, 0x2a, + /* : 0x18 */ +0x00, 0x3e, 0x41, 0x01, 0x01, 0x01, 0x7f, 0x00, + /* : 0x19 */ +0x00, 0x00, 0x3f, 0x40, 0x40, 0x40, 0x7f, 0x00, + /* : 0x1a */ +0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + /* : 0x1b */ +0x08, 0x1c, 0x3e, 0x7f, 0x3e, 0x1c, 0x08, 0x00, + /* : 0x1c */ +0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, + /* : 0x1d */ +0x14, 0x14, 0x77, 0x00, 0x77, 0x14, 0x14, 0x00, + /* : 0x1e */ +0x7f, 0x40, 0x40, 0x4c, 0x4c, 0x40, 0x40, 0x7f, + /* : 0x1f */ +0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }; const unsigned char interface_glyphs[256] = { - 0x00, 0x00, 0x00, 0x00, 0x78, 0x08, 0x08, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x0f, 0x08, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x08, 0x78, 0x00, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x78, 0x08, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x7f, 0x08, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x08, 0x7f, 0x00, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x7f, 0x08, 0x08, 0x08, - 0x00, 0x7e, 0x02, 0x02, 0x02, 0x42, 0x22, 0x22, - 0x00, 0x7f, 0x40, 0x20, 0x40, 0x43, 0x44, 0x44, - 0x22, 0x42, 0x02, 0x02, 0x02, 0x02, 0x7e, 0x00, - 0x44, 0x43, 0x40, 0x41, 0x41, 0x41, 0x7e, 0x00, - 0x1c, 0x24, 0x04, 0x3e, 0x22, 0x22, 0x2a, 0x3e, - 0x01, 0x01, 0x01, 0x11, 0x31, 0x7f, 0x30, 0x10, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + /* : 0x00 ----------------------- menu borders */ +0x00, 0x00, 0x00, 0x00, 0x78, 0x08, 0x08, 0x08, + /* : 0x01 */ +0x00, 0x00, 0x00, 0x00, 0x0f, 0x08, 0x08, 0x08, + /* : 0x02 */ +0x08, 0x08, 0x08, 0x08, 0x78, 0x00, 0x00, 0x00, + /* : 0x03 */ +0x08, 0x08, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x00, + /* : 0x04 */ +0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + /* : 0x05 */ +0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + /* : 0x06 */ +0x08, 0x08, 0x08, 0x08, 0x78, 0x08, 0x08, 0x08, + /* : 0x07 */ +0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, + /* : 0x08 */ +0x00, 0x00, 0x00, 0x00, 0x7f, 0x08, 0x08, 0x08, + /* : 0x09 */ +0x08, 0x08, 0x08, 0x08, 0x7f, 0x00, 0x00, 0x00, + /* : 0x0A */ +0x08, 0x08, 0x08, 0x08, 0x7f, 0x08, 0x08, 0x08, + /* : 0x0B ----------------------- disk icon quad */ +0x00, 0x7e, 0x02, 0x02, 0x02, 0x42, 0x22, 0x22, + /* : 0x0C */ +0x00, 0x7f, 0x40, 0x20, 0x40, 0x43, 0x44, 0x44, + /* : 0x0D */ +0x22, 0x42, 0x02, 0x02, 0x02, 0x02, 0x7e, 0x00, + /* : 0x0E */ +0x44, 0x43, 0x40, 0x41, 0x41, 0x41, 0x7e, 0x00, + /* : 0x0F ----------------------- unlock icon */ +0x1c, 0x24, 0x04, 0x3e, 0x22, 0x22, 0x2a, 0x3e, + /* : 0x10 ----------------------- reverse return arrow */ +0x01, 0x01, 0x01, 0x11, 0x31, 0x7f, 0x30, 0x10, + /* : 0x11 */ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* : 0x12 */ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* : 0x13 */ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* : 0x14 ----------------------- glyph_lowercase */ +0x00, 0x1c, 0x20, 0x3c, 0x22, 0x3c, 0x00, 0x3e, + /* : 0x15 ----------------------- glyph_uppercase */ +0x08, 0x14, 0x22, 0x3e, 0x22, 0x22, 0x00, 0x3e, + /* : 0x16 ----------------------- glyph_backspace */ +0x00, 0x08, 0x04, 0x7e, 0x04, 0x08, 0x00, 0x00, + /* : 0x17 ----------------------- glyph_showalt1 */ +0x00, 0x7f, 0x01, 0x09, 0x1d, 0x09, 0x01, 0x7f, + /* : 0x18 ----------------------- glyph_showalt2 */ +0x00, 0x7f, 0x40, 0x40, 0x5c, 0x40, 0x40, 0x7f, + /* : 0x19 ----------------------- glyph_leftspace */ +0x00, 0x7e, 0x02, 0x42, 0x42, 0x42, 0x02, 0x7e, + /* : 0x1A ----------------------- glyph_midspace */ +0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x7f, + /* : 0x1B ----------------------- glyph_rightspace */ +0x00, 0x3f, 0x20, 0x21, 0x21, 0x21, 0x20, 0x3f, + /* : 0x1C ----------------------- glyph_tab */ +0x08, 0x18, 0x28, 0x4c, 0x28, 0x18, 0x08, 0x00, + /* : 0x1D ----------------------- glyph_return left */ +0x00, 0x00, 0x00, 0x10, 0x18, 0x7c, 0x18, 0x10, + /* : 0x1E ----------------------- glyph_return right */ +0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x00, 0x00, + /* : 0x1F ----------------------- glyph_nonactionable */ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; diff --git a/src/font.txt b/src/font.txt index 42f7abba..d1664dc2 100644 --- a/src/font.txt +++ b/src/font.txt @@ -1174,7 +1174,7 @@ #...... #...... =interface_glyphs,32 -: 0x00 +: 0x00 ----------------------- menu borders ....... ....... ....... @@ -1273,8 +1273,7 @@ ...#... ...#... ...#... -; ----------------------- disk icon quad -: 0x0B +: 0x0B ----------------------- disk icon quad ....... .###### .#..... @@ -1310,8 +1309,7 @@ #.....# .###### ....... -; ----------------------- unlock icon -: 0x0F +: 0x0F ----------------------- unlock icon ..###.. ..#..#. ..#.... @@ -1320,8 +1318,7 @@ .#...#. .#.#.#. .#####. -; ----------------------- reverse return arrow -: 0x10 +: 0x10 ----------------------- reverse return arrow #...... #...... #...... @@ -1330,7 +1327,6 @@ ####### ....##. ....#.. -; ----------------------- : 0x11 ....... ....... @@ -1358,106 +1354,106 @@ ....... ....... ....... -: 0x14 -....... -....... -....... -....... -....... -....... -....... -....... -: 0x15 -....... -....... -....... -....... -....... -....... -....... -....... -: 0x16 -....... -....... -....... -....... -....... -....... -....... -....... -: 0x17 -....... -....... -....... -....... -....... -....... -....... -....... -: 0x18 -....... -....... -....... -....... -....... -....... -....... -....... -: 0x19 -....... -....... -....... -....... -....... -....... -....... -....... -: 0x1A -....... -....... -....... -....... -....... -....... -....... -....... -: 0x1B -....... -....... -....... -....... -....... -....... -....... -....... -: 0x1C -....... -....... -....... -....... -....... -....... -....... -....... -: 0x1D -....... -....... -....... -....... -....... -....... -....... -....... -: 0x1E -....... -....... -....... -....... -....... -....... -....... -....... -: 0x1F +: 0x14 ----------------------- glyph_lowercase +....... +..###.. +.....#. +..####. +.#...#. +..####. +....... +.#####. +: 0x15 ----------------------- glyph_uppercase +...#... +..#.#.. +.#...#. +.#####. +.#...#. +.#...#. +....... +.#####. +: 0x16 ----------------------- glyph_backspace +....... +...#... +..#.... +.###### +..#.... +...#... +....... +....... +: 0x17 ----------------------- glyph_showalt1 +....... +####### +#...... +#..#... +#.###.. +#..#... +#...... +####### +: 0x18 ----------------------- glyph_showalt2 +....... +####### +......# +......# +..###.# +......# +......# +####### +: 0x19 ----------------------- glyph_leftspace +....... +.###### +.#..... +.#....# +.#....# +.#....# +.#..... +.###### +: 0x1A ----------------------- glyph_midspace +....... +####### +....... +....... +....... +####### +....... +####### +: 0x1B ----------------------- glyph_rightspace +....... +######. +.....#. +#....#. +#....#. +#....#. +.....#. +######. +: 0x1C ----------------------- glyph_tab +...#... +...##.. +...#.#. +..##..# +...#.#. +...##.. +...#... +....... +: 0x1D ----------------------- glyph_return left +....... +....... +....... +....#.. +...##.. +..##### +...##.. +....#.. +: 0x1E ----------------------- glyph_return right +.....#. +.....#. +.....#. +.....#. +.....#. +######. +....... +....... +: 0x1F ----------------------- glyph_nonactionable ....... ....... ....... diff --git a/src/genfont.c b/src/genfont.c index 32832a99..3c22819c 100644 --- a/src/genfont.c +++ b/src/genfont.c @@ -82,6 +82,11 @@ int main(void) if (line[0] == ':') { int j = 8; + { + int len = strlen(line); + line[len-1] = '\0'; // kill newline + printf("/* %s */\n", line); + } while (j--) { @@ -97,7 +102,7 @@ int main(void) while (k--) { byte <<= 1; - byte += (line[k] == '#'); + byte += (line[k] == '#') ? 1 : 0; } if (j) diff --git a/src/video/video.h b/src/video/video.h index bc8ca1ed..4cc1d565 100644 --- a/src/video/video.h +++ b/src/video/video.h @@ -164,24 +164,40 @@ uint8_t floating_bus_hibit(const bool hibit); #define FONT_WIDTH_PIXELS 14 #define FONT80_WIDTH_PIXELS 7 -#define MOUSETEXT_BEGIN 0x90 -#define MOUSETEXT_UP (MOUSETEXT_BEGIN+0x0b) -#define MOUSETEXT_LEFT (MOUSETEXT_BEGIN+0x08) -#define MOUSETEXT_RIGHT (MOUSETEXT_BEGIN+0x15) -#define MOUSETEXT_DOWN (MOUSETEXT_BEGIN+0x0a) -#define MOUSETEXT_OPENAPPLE (MOUSETEXT_BEGIN + 0x01) -#define MOUSETEXT_CLOSEDAPPLE (MOUSETEXT_BEGIN + 0x00) +#define MOUSETEXT_BEGIN 0x80 // offset + 0x20 length +#define MOUSETEXT_UP (MOUSETEXT_BEGIN+0x0b) +#define MOUSETEXT_LEFT (MOUSETEXT_BEGIN+0x08) +#define MOUSETEXT_RIGHT (MOUSETEXT_BEGIN+0x15) +#define MOUSETEXT_DOWN (MOUSETEXT_BEGIN+0x0a) +#define MOUSETEXT_OPENAPPLE (MOUSETEXT_BEGIN+0x01) +#define MOUSETEXT_CLOSEDAPPLE (MOUSETEXT_BEGIN+0x00) +#define MOUSETEXT_HOURGLASS (MOUSETEXT_BEGIN+0x03) -#define ICONTEXT_BEGIN 0xB0 -#define ICONTEXT_MENU_BEGIN ICONTEXT_BEGIN -#define ICONTEXT_MENU_END (ICONTEXT_MENU_BEGIN+0x0A) +#define ICONTEXT_BEGIN 0xA0 // offset + 0x20 length +#define ICONTEXT_MENU_BEGIN ICONTEXT_BEGIN +#define ICONTEXT_MENU_END (ICONTEXT_MENU_BEGIN+0x0A) -#define ICONTEXT_DISK_UL (ICONTEXT_BEGIN+0x0B) -#define ICONTEXT_DISK_UR (ICONTEXT_BEGIN+0x0C) -#define ICONTEXT_DISK_LL (ICONTEXT_BEGIN+0x0D) -#define ICONTEXT_DISK_LR (ICONTEXT_BEGIN+0x0E) -#define ICONTEXT_UNLOCK (ICONTEXT_BEGIN+0x0F) -#define ICONTEXT_GOTO (ICONTEXT_BEGIN+0x10) +#define ICONTEXT_DISK_UL (ICONTEXT_BEGIN+0x0B) +#define ICONTEXT_DISK_UR (ICONTEXT_BEGIN+0x0C) +#define ICONTEXT_DISK_LL (ICONTEXT_BEGIN+0x0D) +#define ICONTEXT_DISK_LR (ICONTEXT_BEGIN+0x0E) +#define ICONTEXT_UNLOCK (ICONTEXT_BEGIN+0x0F) +#define ICONTEXT_GOTO (ICONTEXT_BEGIN+0x10) + +#define ICONTEXT_KBD_BEGIN (ICONTEXT_BEGIN+0x14) +#define ICONTEXT_LOWERCASE (ICONTEXT_KBD_BEGIN+0x00) +#define ICONTEXT_UPPERCASE (ICONTEXT_KBD_BEGIN+0x01) +#define ICONTEXT_BACKSPACE (ICONTEXT_KBD_BEGIN+0x02) +#define ICONTEXT_SHOWALT1 (ICONTEXT_KBD_BEGIN+0x03) +#define ICONTEXT_SHOWALT2 (ICONTEXT_KBD_BEGIN+0x04) +#define ICONTEXT_LEFTSPACE (ICONTEXT_KBD_BEGIN+0x05) +#define ICONTEXT_MIDSPACE (ICONTEXT_KBD_BEGIN+0x06) +#define ICONTEXT_RIGHTSPACE (ICONTEXT_KBD_BEGIN+0x07) +#define ICONTEXT_TAB (ICONTEXT_KBD_BEGIN+0x08) +#define ICONTEXT_RETURN_L (ICONTEXT_KBD_BEGIN+0x09) +#define ICONTEXT_RETURN_R (ICONTEXT_KBD_BEGIN+0x0A) +#define ICONTEXT_NONACTIONABLE (ICONTEXT_KBD_BEGIN+0x0B) +#define ICONTEXT_KBD_END (ICONTEXT_BEGIN+0x1F) #define COLOR_BLACK 0