summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/main.c8
-rw-r--r--apps/menu.c9
-rw-r--r--apps/recorder/icons.c10
-rw-r--r--apps/recorder/icons.h1
-rw-r--r--apps/tree.c36
-rw-r--r--firmware/Makefile10
-rw-r--r--firmware/X5x8.bdf1967
-rw-r--r--firmware/X5x8.c2853
-rw-r--r--firmware/drivers/lcd.c95
-rw-r--r--firmware/drivers/lcd.h7
-rw-r--r--firmware/font.c339
-rw-r--r--firmware/font.h53
-rw-r--r--firmware/fonts/clR6x8.bdf2895
-rw-r--r--firmware/loadfont.c212
-rwxr-xr-xtools/bdf2c217
-rwxr-xr-xtools/bdf2fnt39
-rw-r--r--tools/convbdf.c287
-rw-r--r--tools/loadrbf.c95
-rw-r--r--tools/writerbf.c112
-rw-r--r--uisimulator/win32/Makefile10
-rw-r--r--uisimulator/x11/Makefile19
21 files changed, 3422 insertions, 5852 deletions
diff --git a/apps/main.c b/apps/main.c
index 4b8c9e1e7e..b13e5448b9 100644
--- a/apps/main.c
+++ b/apps/main.c
@@ -68,6 +68,7 @@ void init(void)
show_logo();
settings_reset();
settings_load();
+ font_load(ROCKBOX_DIR "/default.fon");
sleep(HZ/2);
}
@@ -89,10 +90,7 @@ void init(void)
lcd_init();
- // FIXME should call font_init before this,
- // because may use loadable font in show_logo().
- // I didn't call font_init here, since
- // disk system isn't up yet.
+ font_init();
show_logo();
#ifdef DEBUG
@@ -148,6 +146,7 @@ void init(void)
}
settings_load();
+ font_load(ROCKBOX_DIR "/default.fon");
mpeg_init( global_settings.volume,
global_settings.bass,
@@ -160,7 +159,6 @@ void init(void)
status_init();
usb_start_monitoring();
power_init();
- font_init();
}
int main(void)
diff --git a/apps/menu.c b/apps/menu.c
index a42929ccf5..5f1b9b64ea 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -93,14 +93,19 @@ void put_cursorxy(int x, int y, bool on)
{
#ifdef HAVE_LCD_BITMAP
int fh, fw;
+ int xpos, ypos;
lcd_getfontsize(FONT_UI, &fw, &fh);
+ xpos = x*6;
+ ypos = y*fh + lcd_getymargin();
+ if ( fh > 8 )
+ ypos += (fh - 8) / 2;
#endif
/* place the cursor */
if(on) {
#ifdef HAVE_LCD_BITMAP
lcd_bitmap ( bitmap_icons_6x8[Cursor],
- x*6, y*fh + lcd_getymargin(), 4, 8, true);
+ xpos, ypos, 4, 8, true);
#elif defined(SIMULATOR)
/* player simulator */
unsigned char cursor[] = { 0x7f, 0x3e, 0x1c, 0x08 };
@@ -112,7 +117,7 @@ void put_cursorxy(int x, int y, bool on)
else {
#if defined(HAVE_LCD_BITMAP)
/* I use xy here since it needs to disregard the margins */
- lcd_clearrect (x*6, y*fh + lcd_getymargin(), 4, 8);
+ lcd_clearrect (xpos, ypos, 4, 8);
#elif defined(SIMULATOR)
/* player simulator in action */
lcd_clearrect (x*6, 12+y*16, 4, 8);
diff --git a/apps/recorder/icons.c b/apps/recorder/icons.c
index fbfaf6cd8c..0e628d8255 100644
--- a/apps/recorder/icons.c
+++ b/apps/recorder/icons.c
@@ -69,6 +69,8 @@ unsigned char bitmap_icons_6x8[LastIcon][6] =
{ 0x58, 0x5f, 0x42, 0x50, 0x55, 0x00 },
/* Mod or ajz file */
{ 0x63, 0x7f, 0x3a, 0x7f, 0x63, 0x00 },
+ /* Font file */
+ { 0x60, 0x70, 0x38, 0x2c, 0x7e, 0x7e },
};
unsigned char bitmap_icons_7x8[][7] =
@@ -234,10 +236,10 @@ void statusbar_icon_volume(int percent)
/* display volume lever numerical? */
if (TIME_BEFORE(current_tick,switch_tick)) {
snprintf(buffer, sizeof(buffer), "%2d", percent);
- lcd_getstringsize(buffer, FONT_UI, &width, &height);
+ lcd_getstringsize(buffer, FONT_SYSFIXED, &width, &height);
if (height <= STATUSBAR_HEIGHT)
lcd_putsxy(ICON_VOLUME_X_POS + ICON_VOLUME_WIDTH / 2 -
- width/2, STATUSBAR_Y_POS, buffer, 0);
+ width/2, STATUSBAR_Y_POS, buffer, FONT_SYSFIXED);
}
else { /* display volume bar */
volume = volume * 14 / 100;
@@ -309,8 +311,8 @@ void statusbar_time(int hour, int minute)
strncpy(buffer, "--:--", sizeof buffer);
}
- lcd_getstringsize(buffer, FONT_UI, &width, &height);
+ lcd_getstringsize(buffer, FONT_SYSFIXED, &width, &height);
if (height <= STATUSBAR_HEIGHT)
- lcd_putsxy(TIME_X_END - width, STATUSBAR_Y_POS, buffer, 0);
+ lcd_putsxy(TIME_X_END - width, STATUSBAR_Y_POS, buffer, FONT_SYSFIXED);
}
#endif
diff --git a/apps/recorder/icons.h b/apps/recorder/icons.h
index 3102093898..1cf75151da 100644
--- a/apps/recorder/icons.h
+++ b/apps/recorder/icons.h
@@ -28,6 +28,7 @@ enum icons_6x8 {
Box_Filled, Box_Empty, Slider_Horizontal, File,
Folder, Directory, Playlist, Repeat,
Selected, Cursor, Wps, Mod_Ajz,
+ Font,
LastIcon
};
diff --git a/apps/tree.c b/apps/tree.c
index 40d686490a..9689ac5ae9 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -137,7 +137,8 @@ extern unsigned char bitmap_icons_6x8[LastIcon][6];
#define TREE_ATTR_M3U 0x80 /* playlist */
#define TREE_ATTR_WPS 0x100 /* wps config file */
#define TREE_ATTR_MOD 0x200 /* firmware file */
-#define TREE_ATTR_EQ 0x300 /* EQ config file */
+#define TREE_ATTR_EQ 0x400 /* EQ config file */
+#define TREE_ATTR_FONT 0x800 /* font file */
#define TREE_ATTR_MASK 0xffd0 /* which bits tree.c uses (above + DIR) */
static int build_playlist(int start_index)
@@ -182,14 +183,12 @@ static int compare(const void* p1, const void* p2)
static int showdir(char *path, int start)
{
int icon_type = 0;
-#ifdef HAVE_LCD_BITMAP
- int line_height = LINE_HEIGTH;
-#endif
int i;
int tree_max_on_screen;
bool dir_buffer_full;
#ifdef HAVE_LCD_BITMAP
+ int line_height = LINE_HEIGTH;
int fw, fh;
lcd_getfontsize(FONT_UI, &fw, &fh);
tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh;
@@ -255,6 +254,8 @@ static int showdir(char *path, int start)
else if (!strcasecmp(&entry->d_name[len-4], ".wps"))
dptr->attr |= TREE_ATTR_WPS;
#ifdef HAVE_RECORDER_KEYPAD
+ else if (!strcasecmp(&entry->d_name[len-4], ".fnt"))
+ dptr->attr |= TREE_ATTR_FONT;
else if (!strcasecmp(&entry->d_name[len-4], ".ajz"))
#else
else if (!strcasecmp(&entry->d_name[len-4], ".mod"))
@@ -372,15 +373,24 @@ static int showdir(char *path, int start)
icon_type = Mod_Ajz;
break;
+#ifdef HAVE_LCD_BITMAP
+ case TREE_ATTR_FONT:
+ icon_type = Font;
+ break;
+#endif
default:
icon_type = 0;
}
if (icon_type) {
#ifdef HAVE_LCD_BITMAP
+ int offset=0;
+ if ( line_height > 8 )
+ offset = (line_height - 8) / 2;
lcd_bitmap(bitmap_icons_6x8[icon_type],
CURSOR_X * 6 + CURSOR_WIDTH,
- MARGIN_Y+(i-start)*line_height, 6, 8, true);
+ MARGIN_Y+(i-start)*line_height + offset,
+ 6, 8, true);
#else
lcd_define_pattern((i-start)*8,tree_icons_5x7[icon_type],8);
lcd_putc(LINE_X-1, i-start, i-start);
@@ -712,6 +722,22 @@ bool dirbrowse(char *root)
restore = true;
break;
+#ifdef HAVE_LCD_BITMAP
+ case TREE_ATTR_FONT:
+ snprintf(buf, sizeof buf, "%s/%s",
+ currdir, file->name);
+ font_load(buf);
+ lcd_getfontsize(FONT_UI, &fw, &fh);
+ tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh;
+ /* make sure cursor is on screen */
+ while ( dircursor > tree_max_on_screen ) {
+ dircursor--;
+ dirstart++;
+ }
+ restore = true;
+ break;
+#endif
+
#ifndef SIMULATOR
/* firmware file */
case TREE_ATTR_MOD:
diff --git a/firmware/Makefile b/firmware/Makefile
index 24f5b46614..a5ce323be9 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -19,6 +19,7 @@ SYSTEM_FONT = fonts/alt6x10.bdf
# store output files in this directory:
OBJDIR = .
+TOOLSDIR = ../tools
CFLAGS = -W -Wall -O -m1 -nostdlib -ffreestanding -Wstrict-prototypes $(INCLUDES) $(TARGET) $(EXTRA_DEFINES)
@@ -38,9 +39,8 @@ DIRS = $(subst $(DEPS),".",$(DEPDIRS))
OUTPUT = $(OBJDIR)/librockbox.a
-
-ifeq (LOADABLE_FONTS,$(findstring LOADABLE_FONTS, $(CFLAGS)))
- EXTRA_TARGETS = $(OBJDIR)/system.ajf
+ifeq (RECORDER,$(findstring RECORDER, $(CFLAGS)))
+ OBJS += $(OBJDIR)/sysfont.o
endif
all: $(OUTPUT) $(EXTRA_TARGETS)
@@ -70,6 +70,10 @@ clean:
$(OBJDIR)/thread.o: thread.c thread.h
$(CC) -c -O -fomit-frame-pointer $(CFLAGS) $< -o $@
+$(OBJDIR)/sysfont.o: fonts/clR6x8.bdf
+ $(TOOLSDIR)/convbdf -c -o $(OBJDIR)/sysfont.c $<
+ $(CC) $(CFLAGS) -c $(OBJDIR)/sysfont.c -o $@
+
$(OBJDIR)/$(DEPS)/%.d: %.c
@$(SHELL) -c 'for d in $(DEPDIRS); do { if [ ! -d $(OBJDIR)/$$d ]; then mkdir $(OBJDIR)/$$d; fi; }; done'
@echo "Updating dependencies for $<"
diff --git a/firmware/X5x8.bdf b/firmware/X5x8.bdf
deleted file mode 100644
index adb452a3ee..0000000000
--- a/firmware/X5x8.bdf
+++ /dev/null
@@ -1,1967 +0,0 @@
-STARTFONT 2.1
-COMMENT $Xorg: 5x8.bdf,v 1.3 2000/08/18 15:17:39 xorgcvs Exp $
-COMMENT Copyright 1989 Cognition Corp.
-COMMENT
-COMMENT Permission to use, copy, modify, and distribute this software and its
-COMMENT documentation for any purpose and without fee is hereby granted,
-COMMENT provided that the above copyright notice appear in all copies and that
-COMMENT both that copyright notice and this permission notice appear in
-COMMENT supporting documentation, and that the name of Cognition Corp. not be
-COMMENT used in advertising or publicity pertaining to distribution of the
-COMMENT software without specific, written prior permission. Cognition Corp.
-COMMENT makes no representations about the suitability of this software for any
-COMMENT purpose. It is provided "as is" without express or implied warranty.
-COMMENT
-COMMENT COGNITION CORP. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-COMMENT INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-COMMENT EVENT SHALL COGNITION CORP. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-COMMENT CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
-COMMENT USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-COMMENT OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-COMMENT PERFORMANCE OF THIS SOFTWARE.
-FONT -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO646.1991-IRV
-SIZE 11 75 75
-FONTBOUNDINGBOX 5 8 0 0
-STARTPROPERTIES 19
-FONTNAME_REGISTRY ""
-FOUNDRY "Misc"
-FAMILY_NAME "Fixed"
-WEIGHT_NAME "Medium"
-SLANT "R"
-SETWIDTH_NAME "Normal"
-ADD_STYLE_NAME ""
-PIXEL_SIZE 8
-POINT_SIZE 80
-RESOLUTION_X 75
-RESOLUTION_Y 75
-SPACING "C"
-AVERAGE_WIDTH 50
-CHARSET_REGISTRY "ISO646.1991"
-CHARSET_ENCODING "IRV"
-FONT_DESCENT 1
-FONT_ASCENT 7
-COPYRIGHT "Copyright 1989 by Cognition Corp."
-DEFAULT_CHAR 0
-ENDPROPERTIES
-CHARS 128
-STARTCHAR C000
-ENCODING 0
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-00
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR C001
-ENCODING 1
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-20
-70
-f8
-70
-20
-00
-00
-ENDCHAR
-STARTCHAR C002
-ENCODING 2
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-28
-50
-28
-50
-28
-50
-28
-ENDCHAR
-STARTCHAR C003
-ENCODING 3
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-50
-50
-70
-50
-50
-38
-10
-10
-ENDCHAR
-STARTCHAR C004
-ENCODING 4
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-e0
-80
-c0
-b8
-a0
-30
-20
-20
-ENDCHAR
-STARTCHAR C005
-ENCODING 5
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-60
-80
-60
-00
-30
-28
-30
-28
-ENDCHAR
-STARTCHAR C006
-ENCODING 6
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-80
-80
-80
-e0
-38
-20
-30
-20
-ENDCHAR
-STARTCHAR C007
-ENCODING 7
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-20
-50
-20
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR C010
-ENCODING 8
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-20
-70
-20
-00
-70
-00
-00
-ENDCHAR
-STARTCHAR C011
-ENCODING 9
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-90
-d0
-b0
-90
-20
-20
-20
-38
-ENDCHAR
-STARTCHAR C012
-ENCODING 10
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-a0
-a0
-a0
-40
-38
-10
-10
-10
-ENDCHAR
-STARTCHAR C013
-ENCODING 11
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-20
-20
-20
-e0
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR C014
-ENCODING 12
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-e0
-20
-20
-20
-20
-ENDCHAR
-STARTCHAR C015
-ENCODING 13
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-38
-20
-20
-20
-20
-ENDCHAR
-STARTCHAR C016
-ENCODING 14
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-20
-20
-20
-38
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR C017
-ENCODING 15
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-20
-20
-20
-f8
-20
-20
-20
-20
-ENDCHAR
-STARTCHAR C020
-ENCODING 16
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-f8
-00
-00
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR C021
-ENCODING 17
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-f8
-00
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR C022
-ENCODING 18
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-f8
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR C023
-ENCODING 19
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-00
-f8
-00
-00
-00
-ENDCHAR
-STARTCHAR C024
-ENCODING 20
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-00
-00
-f8
-00
-00
-ENDCHAR
-STARTCHAR C025
-ENCODING 21
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-20
-20
-20
-38
-20
-20
-20
-20
-ENDCHAR
-STARTCHAR C026
-ENCODING 22
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-20
-20
-20
-e0
-20
-20
-20
-20
-ENDCHAR
-STARTCHAR C027
-ENCODING 23
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-20
-20
-20
-f8
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR C030
-ENCODING 24
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-f8
-20
-20
-20
-20
-ENDCHAR
-STARTCHAR C031
-ENCODING 25
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-20
-20
-20
-20
-20
-20
-20
-20
-ENDCHAR
-STARTCHAR C032
-ENCODING 26
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-10
-20
-40
-20
-10
-70
-00
-ENDCHAR
-STARTCHAR C033
-ENCODING 27
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-40
-20
-10
-20
-40
-70
-00
-ENDCHAR
-STARTCHAR C034
-ENCODING 28
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-f8
-50
-50
-50
-50
-00
-00
-ENDCHAR
-STARTCHAR C035
-ENCODING 29
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-10
-f8
-20
-f8
-40
-00
-00
-ENDCHAR
-STARTCHAR C036
-ENCODING 30
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-30
-48
-e0
-40
-48
-b0
-00
-ENDCHAR
-STARTCHAR C037
-ENCODING 31
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-20
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR C040
-ENCODING 32
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-00
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR !
-ENCODING 33
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-20
-20
-20
-20
-00
-20
-00
-ENDCHAR
-STARTCHAR "
-ENCODING 34
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-50
-50
-50
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR #
-ENCODING 35
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-50
-50
-f8
-50
-f8
-50
-50
-00
-ENDCHAR
-STARTCHAR $
-ENCODING 36
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-20
-70
-a0
-70
-28
-70
-20
-00
-ENDCHAR
-STARTCHAR %
-ENCODING 37
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-40
-50
-20
-50
-10
-00
-00
-ENDCHAR
-STARTCHAR &
-ENCODING 38
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-20
-50
-50
-20
-50
-50
-28
-00
-ENDCHAR
-STARTCHAR '
-ENCODING 39
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-30
-20
-40
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR (
-ENCODING 40
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-10
-20
-20
-20
-10
-00
-00
-ENDCHAR
-STARTCHAR )
-ENCODING 41
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-40
-20
-20
-20
-40
-00
-00
-ENDCHAR
-STARTCHAR *
-ENCODING 42
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-48
-30
-78
-30
-48
-00
-00
-ENDCHAR
-STARTCHAR +
-ENCODING 43
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-20
-20
-f8
-20
-20
-00
-00
-ENDCHAR
-STARTCHAR ,
-ENCODING 44
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-00
-30
-20
-40
-00
-ENDCHAR
-STARTCHAR -
-ENCODING 45
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-00
-78
-00
-00
-00
-ENDCHAR
-STARTCHAR .
-ENCODING 46
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-00
-20
-70
-20
-00
-ENDCHAR
-STARTCHAR /
-ENCODING 47
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-08
-08
-10
-20
-40
-40
-00
-ENDCHAR
-STARTCHAR 0
-ENCODING 48
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-20
-50
-50
-50
-50
-20
-00
-ENDCHAR
-STARTCHAR 1
-ENCODING 49
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-20
-60
-20
-20
-20
-70
-00
-ENDCHAR
-STARTCHAR 2
-ENCODING 50
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-30
-48
-08
-30
-40
-78
-00
-ENDCHAR
-STARTCHAR 3
-ENCODING 51
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-30
-48
-10
-08
-48
-30
-00
-ENDCHAR
-STARTCHAR 4
-ENCODING 52
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-10
-30
-50
-78
-10
-10
-00
-ENDCHAR
-STARTCHAR 5
-ENCODING 53
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-78
-40
-70
-08
-48
-30
-00
-ENDCHAR
-STARTCHAR 6
-ENCODING 54
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-30
-40
-50
-68
-48
-30
-00
-ENDCHAR
-STARTCHAR 7
-ENCODING 55
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-78
-08
-10
-10
-20
-20
-00
-ENDCHAR
-STARTCHAR 8
-ENCODING 56
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-30
-48
-30
-48
-48
-30
-00
-ENDCHAR
-STARTCHAR 9
-ENCODING 57
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-30
-48
-58
-28
-08
-30
-00
-ENDCHAR
-STARTCHAR :
-ENCODING 58
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-30
-30
-00
-30
-30
-00
-00
-ENDCHAR
-STARTCHAR ;
-ENCODING 59
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-30
-30
-00
-30
-20
-40
-00
-ENDCHAR
-STARTCHAR <
-ENCODING 60
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-10
-20
-40
-40
-20
-10
-00
-ENDCHAR
-STARTCHAR =
-ENCODING 61
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-70
-00
-70
-00
-00
-00
-ENDCHAR
-STARTCHAR >
-ENCODING 62
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-40
-20
-10
-10
-20
-40
-00
-ENDCHAR
-STARTCHAR ?
-ENCODING 63
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-20
-50
-10
-20
-00
-20
-00
-ENDCHAR
-STARTCHAR @
-ENCODING 64
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-30
-48
-98
-a8
-a8
-90
-40
-30
-ENDCHAR
-STARTCHAR A
-ENCODING 65
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-30
-48
-48
-78
-48
-48
-00
-ENDCHAR
-STARTCHAR B
-ENCODING 66
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-70
-48
-70
-48
-48
-70
-00
-ENDCHAR
-STARTCHAR C
-ENCODING 67
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-30
-48
-40
-40
-48
-30
-00
-ENDCHAR
-STARTCHAR D
-ENCODING 68
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-70
-48
-48
-48
-48
-70
-00
-ENDCHAR
-STARTCHAR E
-ENCODING 69
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-78
-40
-70
-40
-40
-78
-00
-ENDCHAR
-STARTCHAR F
-ENCODING 70
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-78
-40
-70
-40
-40
-40
-00
-ENDCHAR
-STARTCHAR G
-ENCODING 71
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-30
-48
-40
-58
-48
-30
-00
-ENDCHAR
-STARTCHAR H
-ENCODING 72
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-48
-48
-78
-48
-48
-48
-00
-ENDCHAR
-STARTCHAR I
-ENCODING 73
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-70
-20
-20
-20
-20
-70
-00
-ENDCHAR
-STARTCHAR J
-ENCODING 74
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-38
-08
-08
-08
-48
-30
-00
-ENDCHAR
-STARTCHAR K
-ENCODING 75
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-48
-50
-60
-50
-50
-48
-00
-ENDCHAR
-STARTCHAR L
-ENCODING 76
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-40
-40
-40
-40
-40
-70
-00
-ENDCHAR
-STARTCHAR M
-ENCODING 77
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-48
-78
-78
-48
-48
-48
-00
-ENDCHAR
-STARTCHAR N
-ENCODING 78
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-48
-68
-78
-58
-58
-48
-00
-ENDCHAR
-STARTCHAR O
-ENCODING 79
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-30
-48
-48
-48
-48
-30
-00
-ENDCHAR
-STARTCHAR P
-ENCODING 80
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-70
-48
-48
-70
-40
-40
-00
-ENDCHAR
-STARTCHAR Q
-ENCODING 81
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-30
-48
-48
-68
-58
-30
-08
-ENDCHAR
-STARTCHAR R
-ENCODING 82
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-70
-48
-48
-70
-58
-48
-00
-ENDCHAR
-STARTCHAR S
-ENCODING 83
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-30
-48
-20
-10
-48
-30
-00
-ENDCHAR
-STARTCHAR T
-ENCODING 84
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-f8
-20
-20
-20
-20
-20
-00
-ENDCHAR
-STARTCHAR U
-ENCODING 85
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-48
-48
-48
-48
-48
-30
-00
-ENDCHAR
-STARTCHAR V
-ENCODING 86
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-48
-48
-48
-48
-30
-30
-00
-ENDCHAR
-STARTCHAR W
-ENCODING 87
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-48
-48
-48
-78
-78
-48
-00
-ENDCHAR
-STARTCHAR X
-ENCODING 88
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-48
-48
-30
-30
-48
-48
-00
-ENDCHAR
-STARTCHAR Y
-ENCODING 89
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-88
-88
-50
-20
-20
-20
-00
-ENDCHAR
-STARTCHAR Z
-ENCODING 90
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-78
-08
-10
-20
-40
-78
-00
-ENDCHAR
-STARTCHAR [
-ENCODING 91
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-70
-40
-40
-40
-40
-70
-00
-ENDCHAR
-STARTCHAR \
-ENCODING 92
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-40
-40
-20
-10
-08
-08
-00
-ENDCHAR
-STARTCHAR ]
-ENCODING 93
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-70
-10
-10
-10
-10
-70
-00
-ENDCHAR
-STARTCHAR ^
-ENCODING 94
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-20
-50
-50
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR _
-ENCODING 95
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-00
-00
-00
-00
-78
-ENDCHAR
-STARTCHAR `
-ENCODING 96
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-60
-40
-20
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR a
-ENCODING 97
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-28
-58
-58
-28
-00
-ENDCHAR
-STARTCHAR b
-ENCODING 98
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-40
-40
-70
-48
-48
-70
-00
-ENDCHAR
-STARTCHAR c
-ENCODING 99
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-30
-40
-40
-30
-00
-ENDCHAR
-STARTCHAR d
-ENCODING 100
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-08
-08
-28
-58
-58
-28
-00
-ENDCHAR
-STARTCHAR e
-ENCODING 101
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-30
-78
-40
-30
-00
-ENDCHAR
-STARTCHAR f
-ENCODING 102
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-10
-28
-20
-70
-20
-20
-00
-ENDCHAR
-STARTCHAR g
-ENCODING 103
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-30
-48
-38
-08
-30
-ENDCHAR
-STARTCHAR h
-ENCODING 104
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-40
-40
-70
-48
-48
-48
-00
-ENDCHAR
-STARTCHAR i
-ENCODING 105
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-20
-00
-60
-20
-20
-70
-00
-ENDCHAR
-STARTCHAR j
-ENCODING 106
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-10
-00
-10
-10
-10
-50
-20
-ENDCHAR
-STARTCHAR k
-ENCODING 107
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-40
-40
-48
-70
-48
-48
-00
-ENDCHAR
-STARTCHAR l
-ENCODING 108
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-60
-20
-20
-20
-20
-70
-00
-ENDCHAR
-STARTCHAR m
-ENCODING 109
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-50
-a8
-a8
-88
-00
-ENDCHAR
-STARTCHAR n
-ENCODING 110
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-70
-48
-48
-48
-00
-ENDCHAR
-STARTCHAR o
-ENCODING 111
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-30
-48
-48
-30
-00
-ENDCHAR
-STARTCHAR p
-ENCODING 112
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-70
-48
-70
-40
-40
-ENDCHAR
-STARTCHAR q
-ENCODING 113
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-38
-48
-38
-08
-08
-ENDCHAR
-STARTCHAR r
-ENCODING 114
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-50
-68
-40
-40
-00
-ENDCHAR
-STARTCHAR s
-ENCODING 115
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-70
-60
-10
-70
-00
-ENDCHAR
-STARTCHAR t
-ENCODING 116
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-20
-20
-70
-20
-28
-10
-00
-ENDCHAR
-STARTCHAR u
-ENCODING 117
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-48
-48
-48
-38
-00
-ENDCHAR
-STARTCHAR v
-ENCODING 118
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-50
-50
-50
-20
-00
-ENDCHAR
-STARTCHAR w
-ENCODING 119
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-88
-a8
-a8
-70
-00
-ENDCHAR
-STARTCHAR x
-ENCODING 120
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-48
-30
-30
-48
-00
-ENDCHAR
-STARTCHAR y
-ENCODING 121
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-48
-48
-38
-48
-30
-ENDCHAR
-STARTCHAR z
-ENCODING 122
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-78
-10
-20
-78
-00
-ENDCHAR
-STARTCHAR {
-ENCODING 123
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-18
-20
-10
-60
-10
-20
-18
-00
-ENDCHAR
-STARTCHAR |
-ENCODING 124
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-20
-20
-20
-20
-20
-20
-00
-ENDCHAR
-STARTCHAR }
-ENCODING 125
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-60
-10
-20
-18
-20
-10
-60
-00
-ENDCHAR
-STARTCHAR ~
-ENCODING 126
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-28
-50
-00
-00
-00
-00
-00
-ENDCHAR
-STARTCHAR C177
-ENCODING 127
-SWIDTH 1 0
-DWIDTH 5 0
-BBX 5 8 0 -1
-BITMAP
-00
-00
-00
-00
-00
-00
-00
-00
-ENDCHAR
-ENDFONT
diff --git a/firmware/X5x8.c b/firmware/X5x8.c
deleted file mode 100644
index 6422cc892d..0000000000
--- a/firmware/X5x8.c
+++ /dev/null
@@ -1,2853 +0,0 @@
-/* Generated by convbdf on Tue Sep 10 11:31:14 MDT 2002. */
-#include "config.h"
-#if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR)
-#include "font.h"
-
-/* Font information:
-
- name: -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO646.1991-IRV
- pixel size: 8
- ascent: 7
- descent: 1
-*/
-
-/* Font character bitmap data. */
-static MWIMAGEBITS X5x8_bits[] = {
-
-/* Character (0x00):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x01):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | *** |
- |***** |
- | *** |
- | * |
- | |
- | |
- +----------------+ */
-0x0000,
-0x2000,
-0x7000,
-0xf800,
-0x7000,
-0x2000,
-0x0000,
-0x0000,
-
-/* Character (0x02):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * * |
- | * * |
- | * * |
- | * * |
- | * * |
- | * * |
- | * * |
- +----------------+ */
-0x0000,
-0x2800,
-0x5000,
-0x2800,
-0x5000,
-0x2800,
-0x5000,
-0x2800,
-
-/* Character (0x03):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | * * |
- | * * |
- | *** |
- | * * |
- | * * |
- | *** |
- | * |
- | * |
- +----------------+ */
-0x5000,
-0x5000,
-0x7000,
-0x5000,
-0x5000,
-0x3800,
-0x1000,
-0x1000,
-
-/* Character (0x04):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- |*** |
- |* |
- |** |
- |* *** |
- |* * |
- | ** |
- | * |
- | * |
- +----------------+ */
-0xe000,
-0x8000,
-0xc000,
-0xb800,
-0xa000,
-0x3000,
-0x2000,
-0x2000,
-
-/* Character (0x05):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | ** |
- |* |
- | ** |
- | |
- | ** |
- | * * |
- | ** |
- | * * |
- +----------------+ */
-0x6000,
-0x8000,
-0x6000,
-0x0000,
-0x3000,
-0x2800,
-0x3000,
-0x2800,
-
-/* Character (0x06):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- |* |
- |* |
- |* |
- |*** |
- | *** |
- | * |
- | ** |
- | * |
- +----------------+ */
-0x8000,
-0x8000,
-0x8000,
-0xe000,
-0x3800,
-0x2000,
-0x3000,
-0x2000,
-
-/* Character (0x07):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * * |
- | * |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0x2000,
-0x5000,
-0x2000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x08):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | *** |
- | * |
- | |
- | *** |
- | |
- | |
- +----------------+ */
-0x0000,
-0x2000,
-0x7000,
-0x2000,
-0x0000,
-0x7000,
-0x0000,
-0x0000,
-
-/* Character (0x09):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- |* * |
- |** * |
- |* ** |
- |* * |
- | * |
- | * |
- | * |
- | *** |
- +----------------+ */
-0x9000,
-0xd000,
-0xb000,
-0x9000,
-0x2000,
-0x2000,
-0x2000,
-0x3800,
-
-/* Character (0x0a):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- |* * |
- |* * |
- |* * |
- | * |
- | *** |
- | * |
- | * |
- | * |
- +----------------+ */
-0xa000,
-0xa000,
-0xa000,
-0x4000,
-0x3800,
-0x1000,
-0x1000,
-0x1000,
-
-/* Character (0x0b):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | * |
- | * |
- | * |
- |*** |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x2000,
-0x2000,
-0x2000,
-0xe000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x0c):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- |*** |
- | * |
- | * |
- | * |
- | * |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0xe000,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-
-/* Character (0x0d):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | *** |
- | * |
- | * |
- | * |
- | * |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x3800,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-
-/* Character (0x0e):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | * |
- | * |
- | * |
- | *** |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x2000,
-0x2000,
-0x2000,
-0x3800,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x0f):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | * |
- | * |
- | * |
- |***** |
- | * |
- | * |
- | * |
- | * |
- +----------------+ */
-0x2000,
-0x2000,
-0x2000,
-0xf800,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-
-/* Character (0x10):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- |***** |
- | |
- | |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0xf800,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x11):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- |***** |
- | |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0xf800,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x12):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- |***** |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0xf800,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x13):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | |
- |***** |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0xf800,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x14):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | |
- | |
- |***** |
- | |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0xf800,
-0x0000,
-0x0000,
-
-/* Character (0x15):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | * |
- | * |
- | * |
- | *** |
- | * |
- | * |
- | * |
- | * |
- +----------------+ */
-0x2000,
-0x2000,
-0x2000,
-0x3800,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-
-/* Character (0x16):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | * |
- | * |
- | * |
- |*** |
- | * |
- | * |
- | * |
- | * |
- +----------------+ */
-0x2000,
-0x2000,
-0x2000,
-0xe000,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-
-/* Character (0x17):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | * |
- | * |
- | * |
- |***** |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x2000,
-0x2000,
-0x2000,
-0xf800,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x18):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- |***** |
- | * |
- | * |
- | * |
- | * |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0xf800,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-
-/* Character (0x19):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | * |
- | * |
- | * |
- | * |
- | * |
- | * |
- | * |
- | * |
- +----------------+ */
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-
-/* Character (0x1a):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | * |
- | * |
- | * |
- | *** |
- | |
- +----------------+ */
-0x0000,
-0x1000,
-0x2000,
-0x4000,
-0x2000,
-0x1000,
-0x7000,
-0x0000,
-
-/* Character (0x1b):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | * |
- | * |
- | * |
- | *** |
- | |
- +----------------+ */
-0x0000,
-0x4000,
-0x2000,
-0x1000,
-0x2000,
-0x4000,
-0x7000,
-0x0000,
-
-/* Character (0x1c):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- |***** |
- | * * |
- | * * |
- | * * |
- | * * |
- | |
- | |
- +----------------+ */
-0x0000,
-0xf800,
-0x5000,
-0x5000,
-0x5000,
-0x5000,
-0x0000,
-0x0000,
-
-/* Character (0x1d):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- |***** |
- | * |
- |***** |
- | * |
- | |
- | |
- +----------------+ */
-0x0000,
-0x1000,
-0xf800,
-0x2000,
-0xf800,
-0x4000,
-0x0000,
-0x0000,
-
-/* Character (0x1e):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | * * |
- |*** |
- | * |
- | * * |
- |* ** |
- | |
- +----------------+ */
-0x0000,
-0x3000,
-0x4800,
-0xe000,
-0x4000,
-0x4800,
-0xb000,
-0x0000,
-
-/* Character (0x1f):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | * |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x2000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x20):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x21):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | * |
- | * |
- | |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-0x0000,
-0x2000,
-0x0000,
-
-/* Character (0x22):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * * |
- | * * |
- | * * |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0x5000,
-0x5000,
-0x5000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x23):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | * * |
- | * * |
- |***** |
- | * * |
- |***** |
- | * * |
- | * * |
- | |
- +----------------+ */
-0x5000,
-0x5000,
-0xf800,
-0x5000,
-0xf800,
-0x5000,
-0x5000,
-0x0000,
-
-/* Character (0x24):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | * |
- | *** |
- |* * |
- | *** |
- | * * |
- | *** |
- | * |
- | |
- +----------------+ */
-0x2000,
-0x7000,
-0xa000,
-0x7000,
-0x2800,
-0x7000,
-0x2000,
-0x0000,
-
-/* Character (0x25):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * * |
- | * |
- | * * |
- | * |
- | |
- | |
- +----------------+ */
-0x0000,
-0x4000,
-0x5000,
-0x2000,
-0x5000,
-0x1000,
-0x0000,
-0x0000,
-
-/* Character (0x26):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | * |
- | * * |
- | * * |
- | * |
- | * * |
- | * * |
- | * * |
- | |
- +----------------+ */
-0x2000,
-0x5000,
-0x5000,
-0x2000,
-0x5000,
-0x5000,
-0x2800,
-0x0000,
-
-/* Character (0x27):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | * |
- | * |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0x3000,
-0x2000,
-0x4000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x28):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | * |
- | * |
- | * |
- | |
- | |
- +----------------+ */
-0x0000,
-0x1000,
-0x2000,
-0x2000,
-0x2000,
-0x1000,
-0x0000,
-0x0000,
-
-/* Character (0x29):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | * |
- | * |
- | * |
- | |
- | |
- +----------------+ */
-0x0000,
-0x4000,
-0x2000,
-0x2000,
-0x2000,
-0x4000,
-0x0000,
-0x0000,
-
-/* Character (0x2a):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * * |
- | ** |
- | **** |
- | ** |
- | * * |
- | |
- | |
- +----------------+ */
-0x0000,
-0x4800,
-0x3000,
-0x7800,
-0x3000,
-0x4800,
-0x0000,
-0x0000,
-
-/* Character (0x2b):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- |***** |
- | * |
- | * |
- | |
- | |
- +----------------+ */
-0x0000,
-0x2000,
-0x2000,
-0xf800,
-0x2000,
-0x2000,
-0x0000,
-0x0000,
-
-/* Character (0x2c):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | |
- | ** |
- | * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x3000,
-0x2000,
-0x4000,
-0x0000,
-
-/* Character (0x2d):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | |
- | **** |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x7800,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x2e):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | |
- | * |
- | *** |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x2000,
-0x7000,
-0x2000,
-0x0000,
-
-/* Character (0x2f):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | * |
- | * |
- | * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x0800,
-0x0800,
-0x1000,
-0x2000,
-0x4000,
-0x4000,
-0x0000,
-
-/* Character (0x30):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * * |
- | * * |
- | * * |
- | * * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x2000,
-0x5000,
-0x5000,
-0x5000,
-0x5000,
-0x2000,
-0x0000,
-
-/* Character (0x31):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | ** |
- | * |
- | * |
- | * |
- | *** |
- | |
- +----------------+ */
-0x0000,
-0x2000,
-0x6000,
-0x2000,
-0x2000,
-0x2000,
-0x7000,
-0x0000,
-
-/* Character (0x32):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | * * |
- | * |
- | ** |
- | * |
- | **** |
- | |
- +----------------+ */
-0x0000,
-0x3000,
-0x4800,
-0x0800,
-0x3000,
-0x4000,
-0x7800,
-0x0000,
-
-/* Character (0x33):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | * * |
- | * |
- | * |
- | * * |
- | ** |
- | |
- +----------------+ */
-0x0000,
-0x3000,
-0x4800,
-0x1000,
-0x0800,
-0x4800,
-0x3000,
-0x0000,
-
-/* Character (0x34):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | ** |
- | * * |
- | **** |
- | * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x1000,
-0x3000,
-0x5000,
-0x7800,
-0x1000,
-0x1000,
-0x0000,
-
-/* Character (0x35):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | **** |
- | * |
- | *** |
- | * |
- | * * |
- | ** |
- | |
- +----------------+ */
-0x0000,
-0x7800,
-0x4000,
-0x7000,
-0x0800,
-0x4800,
-0x3000,
-0x0000,
-
-/* Character (0x36):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | * |
- | * * |
- | ** * |
- | * * |
- | ** |
- | |
- +----------------+ */
-0x0000,
-0x3000,
-0x4000,
-0x5000,
-0x6800,
-0x4800,
-0x3000,
-0x0000,
-
-/* Character (0x37):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | **** |
- | * |
- | * |
- | * |
- | * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x7800,
-0x0800,
-0x1000,
-0x1000,
-0x2000,
-0x2000,
-0x0000,
-
-/* Character (0x38):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | * * |
- | ** |
- | * * |
- | * * |
- | ** |
- | |
- +----------------+ */
-0x0000,
-0x3000,
-0x4800,
-0x3000,
-0x4800,
-0x4800,
-0x3000,
-0x0000,
-
-/* Character (0x39):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | * * |
- | * ** |
- | * * |
- | * |
- | ** |
- | |
- +----------------+ */
-0x0000,
-0x3000,
-0x4800,
-0x5800,
-0x2800,
-0x0800,
-0x3000,
-0x0000,
-
-/* Character (0x3a):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | ** |
- | |
- | ** |
- | ** |
- | |
- | |
- +----------------+ */
-0x0000,
-0x3000,
-0x3000,
-0x0000,
-0x3000,
-0x3000,
-0x0000,
-0x0000,
-
-/* Character (0x3b):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | ** |
- | |
- | ** |
- | * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x3000,
-0x3000,
-0x0000,
-0x3000,
-0x2000,
-0x4000,
-0x0000,
-
-/* Character (0x3c):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | * |
- | * |
- | * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x1000,
-0x2000,
-0x4000,
-0x4000,
-0x2000,
-0x1000,
-0x0000,
-
-/* Character (0x3d):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | *** |
- | |
- | *** |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x7000,
-0x0000,
-0x7000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x3e):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | * |
- | * |
- | * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x4000,
-0x2000,
-0x1000,
-0x1000,
-0x2000,
-0x4000,
-0x0000,
-
-/* Character (0x3f):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * * |
- | * |
- | * |
- | |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x2000,
-0x5000,
-0x1000,
-0x2000,
-0x0000,
-0x2000,
-0x0000,
-
-/* Character (0x40):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | ** |
- | * * |
- |* ** |
- |* * * |
- |* * * |
- |* * |
- | * |
- | ** |
- +----------------+ */
-0x3000,
-0x4800,
-0x9800,
-0xa800,
-0xa800,
-0x9000,
-0x4000,
-0x3000,
-
-/* Character (0x41):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | * * |
- | * * |
- | **** |
- | * * |
- | * * |
- | |
- +----------------+ */
-0x0000,
-0x3000,
-0x4800,
-0x4800,
-0x7800,
-0x4800,
-0x4800,
-0x0000,
-
-/* Character (0x42):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | *** |
- | * * |
- | *** |
- | * * |
- | * * |
- | *** |
- | |
- +----------------+ */
-0x0000,
-0x7000,
-0x4800,
-0x7000,
-0x4800,
-0x4800,
-0x7000,
-0x0000,
-
-/* Character (0x43):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | * * |
- | * |
- | * |
- | * * |
- | ** |
- | |
- +----------------+ */
-0x0000,
-0x3000,
-0x4800,
-0x4000,
-0x4000,
-0x4800,
-0x3000,
-0x0000,
-
-/* Character (0x44):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | *** |
- | * * |
- | * * |
- | * * |
- | * * |
- | *** |
- | |
- +----------------+ */
-0x0000,
-0x7000,
-0x4800,
-0x4800,
-0x4800,
-0x4800,
-0x7000,
-0x0000,
-
-/* Character (0x45):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | **** |
- | * |
- | *** |
- | * |
- | * |
- | **** |
- | |
- +----------------+ */
-0x0000,
-0x7800,
-0x4000,
-0x7000,
-0x4000,
-0x4000,
-0x7800,
-0x0000,
-
-/* Character (0x46):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | **** |
- | * |
- | *** |
- | * |
- | * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x7800,
-0x4000,
-0x7000,
-0x4000,
-0x4000,
-0x4000,
-0x0000,
-
-/* Character (0x47):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | * * |
- | * |
- | * ** |
- | * * |
- | ** |
- | |
- +----------------+ */
-0x0000,
-0x3000,
-0x4800,
-0x4000,
-0x5800,
-0x4800,
-0x3000,
-0x0000,
-
-/* Character (0x48):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * * |
- | * * |
- | **** |
- | * * |
- | * * |
- | * * |
- | |
- +----------------+ */
-0x0000,
-0x4800,
-0x4800,
-0x7800,
-0x4800,
-0x4800,
-0x4800,
-0x0000,
-
-/* Character (0x49):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | *** |
- | * |
- | * |
- | * |
- | * |
- | *** |
- | |
- +----------------+ */
-0x0000,
-0x7000,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-0x7000,
-0x0000,
-
-/* Character (0x4a):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | *** |
- | * |
- | * |
- | * |
- | * * |
- | ** |
- | |
- +----------------+ */
-0x0000,
-0x3800,
-0x0800,
-0x0800,
-0x0800,
-0x4800,
-0x3000,
-0x0000,
-
-/* Character (0x4b):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * * |
- | * * |
- | ** |
- | * * |
- | * * |
- | * * |
- | |
- +----------------+ */
-0x0000,
-0x4800,
-0x5000,
-0x6000,
-0x5000,
-0x5000,
-0x4800,
-0x0000,
-
-/* Character (0x4c):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | * |
- | * |
- | * |
- | *** |
- | |
- +----------------+ */
-0x0000,
-0x4000,
-0x4000,
-0x4000,
-0x4000,
-0x4000,
-0x7000,
-0x0000,
-
-/* Character (0x4d):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * * |
- | **** |
- | **** |
- | * * |
- | * * |
- | * * |
- | |
- +----------------+ */
-0x0000,
-0x4800,
-0x7800,
-0x7800,
-0x4800,
-0x4800,
-0x4800,
-0x0000,
-
-/* Character (0x4e):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * * |
- | ** * |
- | **** |
- | * ** |
- | * ** |
- | * * |
- | |
- +----------------+ */
-0x0000,
-0x4800,
-0x6800,
-0x7800,
-0x5800,
-0x5800,
-0x4800,
-0x0000,
-
-/* Character (0x4f):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | * * |
- | * * |
- | * * |
- | * * |
- | ** |
- | |
- +----------------+ */
-0x0000,
-0x3000,
-0x4800,
-0x4800,
-0x4800,
-0x4800,
-0x3000,
-0x0000,
-
-/* Character (0x50):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | *** |
- | * * |
- | * * |
- | *** |
- | * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x7000,
-0x4800,
-0x4800,
-0x7000,
-0x4000,
-0x4000,
-0x0000,
-
-/* Character (0x51):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | * * |
- | * * |
- | ** * |
- | * ** |
- | ** |
- | * |
- +----------------+ */
-0x0000,
-0x3000,
-0x4800,
-0x4800,
-0x6800,
-0x5800,
-0x3000,
-0x0800,
-
-/* Character (0x52):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | *** |
- | * * |
- | * * |
- | *** |
- | * ** |
- | * * |
- | |
- +----------------+ */
-0x0000,
-0x7000,
-0x4800,
-0x4800,
-0x7000,
-0x5800,
-0x4800,
-0x0000,
-
-/* Character (0x53):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | * * |
- | * |
- | * |
- | * * |
- | ** |
- | |
- +----------------+ */
-0x0000,
-0x3000,
-0x4800,
-0x2000,
-0x1000,
-0x4800,
-0x3000,
-0x0000,
-
-/* Character (0x54):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- |***** |
- | * |
- | * |
- | * |
- | * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0xf800,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-0x0000,
-
-/* Character (0x55):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * * |
- | * * |
- | * * |
- | * * |
- | * * |
- | ** |
- | |
- +----------------+ */
-0x0000,
-0x4800,
-0x4800,
-0x4800,
-0x4800,
-0x4800,
-0x3000,
-0x0000,
-
-/* Character (0x56):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * * |
- | * * |
- | * * |
- | * * |
- | ** |
- | ** |
- | |
- +----------------+ */
-0x0000,
-0x4800,
-0x4800,
-0x4800,
-0x4800,
-0x3000,
-0x3000,
-0x0000,
-
-/* Character (0x57):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * * |
- | * * |
- | * * |
- | **** |
- | **** |
- | * * |
- | |
- +----------------+ */
-0x0000,
-0x4800,
-0x4800,
-0x4800,
-0x7800,
-0x7800,
-0x4800,
-0x0000,
-
-/* Character (0x58):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * * |
- | * * |
- | ** |
- | ** |
- | * * |
- | * * |
- | |
- +----------------+ */
-0x0000,
-0x4800,
-0x4800,
-0x3000,
-0x3000,
-0x4800,
-0x4800,
-0x0000,
-
-/* Character (0x59):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- |* * |
- |* * |
- | * * |
- | * |
- | * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x8800,
-0x8800,
-0x5000,
-0x2000,
-0x2000,
-0x2000,
-0x0000,
-
-/* Character (0x5a):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | **** |
- | * |
- | * |
- | * |
- | * |
- | **** |
- | |
- +----------------+ */
-0x0000,
-0x7800,
-0x0800,
-0x1000,
-0x2000,
-0x4000,
-0x7800,
-0x0000,
-
-/* Character (0x5b):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | *** |
- | * |
- | * |
- | * |
- | * |
- | *** |
- | |
- +----------------+ */
-0x0000,
-0x7000,
-0x4000,
-0x4000,
-0x4000,
-0x4000,
-0x7000,
-0x0000,
-
-/* Character (0x5c):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | * |
- | * |
- | * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x4000,
-0x4000,
-0x2000,
-0x1000,
-0x0800,
-0x0800,
-0x0000,
-
-/* Character (0x5d):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | *** |
- | * |
- | * |
- | * |
- | * |
- | *** |
- | |
- +----------------+ */
-0x0000,
-0x7000,
-0x1000,
-0x1000,
-0x1000,
-0x1000,
-0x7000,
-0x0000,
-
-/* Character (0x5e):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * * |
- | * * |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0x2000,
-0x5000,
-0x5000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x5f):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | **** |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x7800,
-
-/* Character (0x60):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | * |
- | * |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0x6000,
-0x4000,
-0x2000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x61):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | * * |
- | * ** |
- | * ** |
- | * * |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x2800,
-0x5800,
-0x5800,
-0x2800,
-0x0000,
-
-/* Character (0x62):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | *** |
- | * * |
- | * * |
- | *** |
- | |
- +----------------+ */
-0x0000,
-0x4000,
-0x4000,
-0x7000,
-0x4800,
-0x4800,
-0x7000,
-0x0000,
-
-/* Character (0x63):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | ** |
- | * |
- | * |
- | ** |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x3000,
-0x4000,
-0x4000,
-0x3000,
-0x0000,
-
-/* Character (0x64):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | * * |
- | * ** |
- | * ** |
- | * * |
- | |
- +----------------+ */
-0x0000,
-0x0800,
-0x0800,
-0x2800,
-0x5800,
-0x5800,
-0x2800,
-0x0000,
-
-/* Character (0x65):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | ** |
- | **** |
- | * |
- | ** |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x3000,
-0x7800,
-0x4000,
-0x3000,
-0x0000,
-
-/* Character (0x66):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * * |
- | * |
- | *** |
- | * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x1000,
-0x2800,
-0x2000,
-0x7000,
-0x2000,
-0x2000,
-0x0000,
-
-/* Character (0x67):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | ** |
- | * * |
- | *** |
- | * |
- | ** |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x3000,
-0x4800,
-0x3800,
-0x0800,
-0x3000,
-
-/* Character (0x68):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | *** |
- | * * |
- | * * |
- | * * |
- | |
- +----------------+ */
-0x0000,
-0x4000,
-0x4000,
-0x7000,
-0x4800,
-0x4800,
-0x4800,
-0x0000,
-
-/* Character (0x69):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | |
- | ** |
- | * |
- | * |
- | *** |
- | |
- +----------------+ */
-0x0000,
-0x2000,
-0x0000,
-0x6000,
-0x2000,
-0x2000,
-0x7000,
-0x0000,
-
-/* Character (0x6a):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | |
- | * |
- | * |
- | * |
- | * * |
- | * |
- +----------------+ */
-0x0000,
-0x1000,
-0x0000,
-0x1000,
-0x1000,
-0x1000,
-0x5000,
-0x2000,
-
-/* Character (0x6b):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | * * |
- | *** |
- | * * |
- | * * |
- | |
- +----------------+ */
-0x0000,
-0x4000,
-0x4000,
-0x4800,
-0x7000,
-0x4800,
-0x4800,
-0x0000,
-
-/* Character (0x6c):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | ** |
- | * |
- | * |
- | * |
- | * |
- | *** |
- | |
- +----------------+ */
-0x0000,
-0x6000,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-0x7000,
-0x0000,
-
-/* Character (0x6d):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | * * |
- |* * * |
- |* * * |
- |* * |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x5000,
-0xa800,
-0xa800,
-0x8800,
-0x0000,
-
-/* Character (0x6e):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | *** |
- | * * |
- | * * |
- | * * |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x7000,
-0x4800,
-0x4800,
-0x4800,
-0x0000,
-
-/* Character (0x6f):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | ** |
- | * * |
- | * * |
- | ** |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x3000,
-0x4800,
-0x4800,
-0x3000,
-0x0000,
-
-/* Character (0x70):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | *** |
- | * * |
- | *** |
- | * |
- | * |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x7000,
-0x4800,
-0x7000,
-0x4000,
-0x4000,
-
-/* Character (0x71):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | *** |
- | * * |
- | *** |
- | * |
- | * |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x3800,
-0x4800,
-0x3800,
-0x0800,
-0x0800,
-
-/* Character (0x72):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | * * |
- | ** * |
- | * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x5000,
-0x6800,
-0x4000,
-0x4000,
-0x0000,
-
-/* Character (0x73):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | *** |
- | ** |
- | * |
- | *** |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x7000,
-0x6000,
-0x1000,
-0x7000,
-0x0000,
-
-/* Character (0x74):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | *** |
- | * |
- | * * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x2000,
-0x2000,
-0x7000,
-0x2000,
-0x2800,
-0x1000,
-0x0000,
-
-/* Character (0x75):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | * * |
- | * * |
- | * * |
- | *** |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x4800,
-0x4800,
-0x4800,
-0x3800,
-0x0000,
-
-/* Character (0x76):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | * * |
- | * * |
- | * * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x5000,
-0x5000,
-0x5000,
-0x2000,
-0x0000,
-
-/* Character (0x77):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- |* * |
- |* * * |
- |* * * |
- | *** |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x8800,
-0xa800,
-0xa800,
-0x7000,
-0x0000,
-
-/* Character (0x78):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | * * |
- | ** |
- | ** |
- | * * |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x4800,
-0x3000,
-0x3000,
-0x4800,
-0x0000,
-
-/* Character (0x79):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | * * |
- | * * |
- | *** |
- | * * |
- | ** |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x4800,
-0x4800,
-0x3800,
-0x4800,
-0x3000,
-
-/* Character (0x7a):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | **** |
- | * |
- | * |
- | **** |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x7800,
-0x1000,
-0x2000,
-0x7800,
-0x0000,
-
-/* Character (0x7b):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | ** |
- | * |
- | * |
- | ** |
- | * |
- | * |
- | ** |
- | |
- +----------------+ */
-0x1800,
-0x2000,
-0x1000,
-0x6000,
-0x1000,
-0x2000,
-0x1800,
-0x0000,
-
-/* Character (0x7c):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * |
- | * |
- | * |
- | * |
- | * |
- | * |
- | |
- +----------------+ */
-0x0000,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-0x2000,
-0x0000,
-
-/* Character (0x7d):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | ** |
- | * |
- | * |
- | ** |
- | * |
- | * |
- | ** |
- | |
- +----------------+ */
-0x6000,
-0x1000,
-0x2000,
-0x1800,
-0x2000,
-0x1000,
-0x6000,
-0x0000,
-
-/* Character (0x7e):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | * * |
- | * * |
- | |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0x2800,
-0x5000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-
-/* Character (0x7f):
- bbw=5, bbh=8, bbx=0, bby=-1, width=5
- +----------------+
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- | |
- +----------------+ */
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-0x0000,
-};
-
-/* Character->glyph mapping. */
-static unsigned long X5x8_offset[] = {
- 0, /* (0x00) */
- 8, /* (0x01) */
- 16, /* (0x02) */
- 24, /* (0x03) */
- 32, /* (0x04) */
- 40, /* (0x05) */
- 48, /* (0x06) */
- 56, /* (0x07) */
- 64, /* (0x08) */
- 72, /* (0x09) */
- 80, /* (0x0a) */
- 88, /* (0x0b) */
- 96, /* (0x0c) */
- 104, /* (0x0d) */
- 112, /* (0x0e) */
- 120, /* (0x0f) */
- 128, /* (0x10) */
- 136, /* (0x11) */
- 144, /* (0x12) */
- 152, /* (0x13) */
- 160, /* (0x14) */
- 168, /* (0x15) */
- 176, /* (0x16) */
- 184, /* (0x17) */
- 192, /* (0x18) */
- 200, /* (0x19) */
- 208, /* (0x1a) */
- 216, /* (0x1b) */
- 224, /* (0x1c) */
- 232, /* (0x1d) */
- 240, /* (0x1e) */
- 248, /* (0x1f) */
- 256, /* (0x20) */
- 264, /* (0x21) */
- 272, /* (0x22) */
- 280, /* (0x23) */
- 288, /* (0x24) */
- 296, /* (0x25) */
- 304, /* (0x26) */
- 312, /* (0x27) */
- 320, /* (0x28) */
- 328, /* (0x29) */
- 336, /* (0x2a) */
- 344, /* (0x2b) */
- 352, /* (0x2c) */
- 360, /* (0x2d) */
- 368, /* (0x2e) */
- 376, /* (0x2f) */
- 384, /* (0x30) */
- 392, /* (0x31) */
- 400, /* (0x32) */
- 408, /* (0x33) */
- 416, /* (0x34) */
- 424, /* (0x35) */
- 432, /* (0x36) */
- 440, /* (0x37) */
- 448, /* (0x38) */
- 456, /* (0x39) */
- 464, /* (0x3a) */
- 472, /* (0x3b) */
- 480, /* (0x3c) */
- 488, /* (0x3d) */
- 496, /* (0x3e) */
- 504, /* (0x3f) */
- 512, /* (0x40) */
- 520, /* (0x41) */
- 528, /* (0x42) */
- 536, /* (0x43) */
- 544, /* (0x44) */
- 552, /* (0x45) */
- 560, /* (0x46) */
- 568, /* (0x47) */
- 576, /* (0x48) */
- 584, /* (0x49) */
- 592, /* (0x4a) */
- 600, /* (0x4b) */
- 608, /* (0x4c) */
- 616, /* (0x4d) */
- 624, /* (0x4e) */
- 632, /* (0x4f) */
- 640, /* (0x50) */
- 648, /* (0x51) */
- 656, /* (0x52) */
- 664, /* (0x53) */
- 672, /* (0x54) */
- 680, /* (0x55) */
- 688, /* (0x56) */
- 696, /* (0x57) */
- 704, /* (0x58) */
- 712, /* (0x59) */
- 720, /* (0x5a) */
- 728, /* (0x5b) */
- 736, /* (0x5c) */
- 744, /* (0x5d) */
- 752, /* (0x5e) */
- 760, /* (0x5f) */
- 768, /* (0x60) */
- 776, /* (0x61) */
- 784, /* (0x62) */
- 792, /* (0x63) */
- 800, /* (0x64) */
- 808, /* (0x65) */
- 816, /* (0x66) */
- 824, /* (0x67) */
- 832, /* (0x68) */
- 840, /* (0x69) */
- 848, /* (0x6a) */
- 856, /* (0x6b) */
- 864, /* (0x6c) */
- 872, /* (0x6d) */
- 880, /* (0x6e) */
- 888, /* (0x6f) */
- 896, /* (0x70) */
- 904, /* (0x71) */
- 912, /* (0x72) */
- 920, /* (0x73) */
- 928, /* (0x74) */
- 936, /* (0x75) */
- 944, /* (0x76) */
- 952, /* (0x77) */
- 960, /* (0x78) */
- 968, /* (0x79) */
- 976, /* (0x7a) */
- 984, /* (0x7b) */
- 992, /* (0x7c) */
- 1000, /* (0x7d) */
- 1008, /* (0x7e) */
- 1016, /* (0x7f) */
-};
-
-/* Exported structure definition. */
-MWCFONT font_X5x8 = {
- "X5x8",
- 5,
- 8,
- 7,
- 0,
- 128,
- X5x8_bits,
- X5x8_offset,
- 0, /* fixed width*/
- 0,
- sizeof(X5x8_bits)/sizeof(MWIMAGEBITS),
-};
-#endif /* HAVE_LCD_BITMAP */
-
diff --git a/firmware/drivers/lcd.c b/firmware/drivers/lcd.c
index 8abc638175..2293191139 100644
--- a/firmware/drivers/lcd.c
+++ b/firmware/drivers/lcd.c
@@ -547,7 +547,6 @@ void lcd_set_contrast(int val)
*/
unsigned char lcd_framebuffer[LCD_WIDTH][LCD_HEIGHT/8];
-static int font=0;
static int xmargin=0;
static int ymargin=0;
@@ -661,11 +660,6 @@ void lcd_clear_display (void)
#endif
}
-void lcd_setfont(int newfont)
-{
- font = newfont;
-}
-
void lcd_setmargins(int x, int y)
{
xmargin = x;
@@ -682,10 +676,11 @@ int lcd_getymargin(void)
return ymargin;
}
+static int curfont = FONT_SYSFIXED;
+
/*
* Put a string at specified character position
*/
-//FIXME require font parameter
void lcd_puts(int x, int y, unsigned char *str)
{
int xpos,ypos,w,h;
@@ -707,10 +702,10 @@ void lcd_puts(int x, int y, unsigned char *str)
if(!str || !str[0])
return;
- lcd_getstringsize(str, font, &w, &h);
- xpos = xmargin + x*w / strlen(str); //FIXME why strlen?
+ lcd_getstringsize(str, curfont, &w, &h);
+ xpos = xmargin + x*w / strlen(str);
ypos = ymargin + y*h;
- lcd_putsxy( xpos, ypos, str, font);
+ lcd_putsxy( xpos, ypos, str, curfont);
lcd_clearrect(xpos + w, ypos, LCD_WIDTH - (xpos + w), h);
#if defined(SIMULATOR) && defined(HAVE_LCD_CHARCELLS)
/* this function is being used when simulating a charcell LCD and
@@ -719,6 +714,80 @@ void lcd_puts(int x, int y, unsigned char *str)
#endif
}
+/* set current font*/
+void lcd_setfont(int newfont)
+{
+ curfont = newfont;
+}
+
+/*
+ * Return width and height of a given font.
+ */
+void lcd_getfontsize(int font, int *width, int *height)
+{
+ struct font* pf = font_get(font);
+
+ *width = pf->maxwidth;
+ *height = pf->height;
+}
+
+
+/*
+ * Return width and height of a given font.
+ */
+int lcd_getstringsize(unsigned char *str, int font, int *w, int *h)
+{
+ struct font* pf = font_get(font);
+ int ch;
+ int width = 0;
+
+ while((ch = *str++)) {
+ /* check input range*/
+ if (ch < pf->firstchar || ch >= pf->firstchar+pf->size)
+ ch = pf->defaultchar;
+ ch -= pf->firstchar;
+
+ /* get proportional width and glyph bits*/
+ width += pf->width? pf->width[ch]: pf->maxwidth;
+ }
+ *w = width;
+ *h = pf->height;
+
+ return width;
+}
+
+/*
+ * Put a string at specified bit position
+ */
+void lcd_putsxy(int x, int y, unsigned char *str, int font)
+{
+ int ch;
+ struct font* pf = font_get(font);
+
+ while (((ch = *str++) != '\0')) {
+ bitmap_t *bits;
+ int width;
+
+ /* check input range*/
+ if (ch < pf->firstchar || ch >= pf->firstchar+pf->size)
+ ch = pf->defaultchar;
+ ch -= pf->firstchar;
+
+ /* get proportional width and glyph bits*/
+ width = pf->width ? pf->width[ch] : pf->maxwidth;
+ if (x + width > LCD_WIDTH)
+ break;
+
+ /* no partial-height drawing for now...*/
+ if (y + pf->height > LCD_HEIGHT)
+ break;
+ bits = pf->bits + (pf->offset ? pf->offset[ch] : (pf->height * ch));
+
+ lcd_bitmap((unsigned char *)bits, x, y, width, pf->height, true);
+ x += width;
+ }
+}
+
/*
* Display a bitmap at (x, y), size (nx, ny)
* clear is true to clear destination area first
@@ -1038,14 +1107,14 @@ void lcd_puts_scroll(int x, int y, unsigned char* string )
unsigned char ch[2];
int w, h;
int width, height;
- lcd_getfontsize(font, &width, &height);
+ lcd_getfontsize(curfont, &width, &height);
ch[1] = 0; /* zero terminate */
ch[0] = string[0];
width = 0;
s->space = 0;
while ( ch[0] &&
- (width + lcd_getstringsize(ch, 0, &w, &h) <
+ (width + lcd_getstringsize(ch, curfont, &w, &h) <
(LCD_WIDTH - x*8))) {
width += w;
s->space++;
@@ -1058,7 +1127,7 @@ void lcd_puts_scroll(int x, int y, unsigned char* string )
#ifdef HAVE_LCD_BITMAP
s->space += 2;
- lcd_getstringsize(string,0,&w,&h);
+ lcd_getstringsize(string,curfont,&w,&h);
if ( w > LCD_WIDTH - xmargin ) {
#else
if ( s->textlen > s->space ) {
diff --git a/firmware/drivers/lcd.h b/firmware/drivers/lcd.h
index 8c89d4c057..388f31c1cf 100644
--- a/firmware/drivers/lcd.h
+++ b/firmware/drivers/lcd.h
@@ -99,9 +99,6 @@ extern void lcd_double_height (bool on);
*/
extern unsigned char lcd_framebuffer[LCD_WIDTH][LCD_HEIGHT/8];
-extern void lcd_putsxy(int x, int y, unsigned char *string, int font);
-extern void lcd_setfont(int font);
-extern void lcd_getfontsize(int font, int *width, int *height);
extern void lcd_setmargins(int xmargin, int ymargin);
extern int lcd_getxmargin(void);
extern int lcd_getymargin(void);
@@ -118,6 +115,10 @@ extern void lcd_clearpixel(int x, int y);
extern void lcd_invertpixel(int x, int y);
extern void lcd_roll(int pixels);
+extern void lcd_setfont(int font);
+extern void lcd_getfontsize(int font, int *width, int *height);
+extern void lcd_putsxy(int x, int y, unsigned char *string, int font);
+
#endif /* CHARCELLS / BITMAP */
extern int lcd_getstringsize(unsigned char *str, int font, int *w, int *h);
diff --git a/firmware/font.c b/firmware/font.c
index e9c70cd64e..72c7085b7a 100644
--- a/firmware/font.c
+++ b/firmware/font.c
@@ -30,165 +30,257 @@
#include <string.h>
#include "lcd.h"
#include "font.h"
+#include "file.h"
#include "debug.h"
#include "panic.h"
-/* available compiled-in fonts*/
-extern MWCFONT font_X5x8;
-/*extern MWCFONT font_X6x9; */
-/*extern MWCFONT font_courB08; */
-/*extern MWCFONT font_timR08; */
+#ifndef O_BINARY
+#define O_BINARY 0
+#endif
+
+/* compiled-in font */
+extern struct font sysfont;
-/* structure filled in by rbf_load_font*/
-static MWCFONT font_UI;
+/* structure filled in by font_load */
+static struct font font_ui;
-/* system font table, in order of FONT_xxx definition*/
-struct corefont sysfonts[MAXFONTS] = {
- { &font_X5x8, NULL }, /* compiled-in FONT_SYSFIXED*/
- { &font_UI, "/system.fnt" }, /* loaded FONT_UI*/
- { NULL, NULL }, /* no FONT_MP3*/
-};
+/* system font table, in order of FONT_xxx definition */
+static struct font* sysfonts[MAXFONTS] = { &sysfont, &font_ui };
-static void rotate_font_bits(PMWCFONT pf);
-static void rotleft(unsigned char *dst, MWIMAGEBITS *src, unsigned int width,
- unsigned int height);
+/* static buffer allocation structures */
+static unsigned char mbuf[MAX_FONT_SIZE];
+static unsigned char *freeptr = mbuf;
+static unsigned char *fileptr;
+static unsigned char *eofptr;
-void
-font_init(void)
+static void rotate_font_bits(struct font* pf);
+static void rotleft(unsigned char *dst,
+ bitmap_t *src,
+ unsigned int width,
+ unsigned int height);
+
+void font_init(void)
{
- struct corefont *cfp;
-
- for (cfp=sysfonts; cfp < &sysfonts[MAXFONTS]; ++cfp) {
- if (cfp->pf && cfp->diskname) {
- cfp->pf = rbf_load_font(cfp->diskname, cfp->pf);
-#if defined(DEBUG) || defined(SIMULATOR)
- if (!cfp->pf)
- DEBUGF("Font load failed: %s\n", cfp->diskname);
-#endif
- }
+ rotate_font_bits(&sysfont);
+ memset(&font_ui, 0, sizeof(struct font));
+}
- /* one-time rotate font bits to rockbox format*/
- if (cfp->pf && cfp->pf->height)
- rotate_font_bits(cfp->pf);
- }
+static int readshort(unsigned short *sp)
+{
+ unsigned short s;
+
+ s = *fileptr++ & 0xff;
+ *sp = (*fileptr++ << 8) | s;
+ return (fileptr <= eofptr);
}
-/*
- * Return a pointer to an incore font structure.
- * If the requested font isn't loaded/compiled-in,
- * decrement the font number and try again.
- */
-PMWCFONT
-getfont(int font)
+static int readlong(unsigned long *lp)
{
- PMWCFONT pf;
+ unsigned long l;
- if (font >= MAXFONTS)
- font = 0;
- while (1) {
- pf = sysfonts[font].pf;
- if (pf && pf->height)
- return pf;
- if (--font < 0)
- panicf("No font!");
- }
+ l = *fileptr++ & 0xff;
+ l |= *fileptr++ << 8;
+ l |= *fileptr++ << 16;
+ *lp = (*fileptr++ << 24) | l;
+ return (fileptr <= eofptr);
}
-/*
- * Return width and height of a given font.
- */
-void lcd_getfontsize(int font, int *width, int *height)
+/* read count bytes*/
+static int readstr(char *buf, int count)
{
- PMWCFONT pf = getfont(font);
+ int n = count;
- *width = pf->maxwidth;
- *height = pf->height;
+ while (--n >= 0)
+ *buf++ = *fileptr++;
+ return (fileptr <= eofptr)? count: 0;
}
-/*
- * Return width and height of a given font.
- */
-//FIXME rename to font_gettextsize, add baseline
-int
-lcd_getstringsize(unsigned char *str, int font, int *w, int *h)
+/* read totlen bytes, return NUL terminated string*/
+/* may write 1 past buf[totlen]; removes blank pad*/
+static int readstrpad(char *buf, int totlen)
{
- PMWCFONT pf = getfont(font);
- int ch;
- int width = 0;
-
- while((ch = *str++)) {
- /* check input range*/
- if (ch < pf->firstchar || ch >= pf->firstchar+pf->size)
- ch = pf->defaultchar;
- ch -= pf->firstchar;
-
- /* get proportional width and glyph bits*/
- width += pf->width? pf->width[ch]: pf->maxwidth;
+ char *p = buf;
+ int n = totlen;
+
+ while (--n >= 0)
+ *p++ = *fileptr++;
+ if (fileptr > eofptr)
+ return 0;
+
+ p = &buf[totlen];
+ *p-- = 0;
+ while (*p == ' ' && p >= buf)
+ *p-- = '\0';
+ return totlen;
+}
+
+/* read and load font into incore font structure*/
+struct font* font_load(char *path)
+{
+ int fd, filesize;
+ unsigned short maxwidth, height, ascent, pad;
+ unsigned long firstchar, defaultchar, size;
+ unsigned long i, nbits, noffset, nwidth;
+ char version[4+1];
+ char copyright[256+1];
+ struct font* pf = &font_ui;
+
+ memset(pf, 0, sizeof(struct font));
+
+ /* open and read entire font file*/
+ fd = open(path, O_RDONLY|O_BINARY);
+ if (fd < 0) {
+ DEBUGF("Can't open font: %s\n", path);
+ return NULL;
+ }
+
+ /* currently, font loading replaces earlier font allocation*/
+ freeptr = (unsigned char *)(((int)mbuf + 3) & ~3);
+
+ fileptr = freeptr;
+ filesize = read(fd, fileptr, MAX_FONT_SIZE);
+ eofptr = fileptr + filesize;
+
+ /* no need for multiple font loads currently*/
+ /*freeptr += filesize;*/
+ /*freeptr = (unsigned char *)(freeptr + 3) & ~3;*/ /* pad freeptr*/
+
+ close(fd);
+ if (filesize == MAX_FONT_SIZE) {
+ DEBUGF("Font %s too large: %d\n", path, filesize);
+ return NULL;
}
- *w = width;
- *h = pf->height;
- return width;
+ /* read magic and version #*/
+ memset(version, 0, sizeof(version));
+ if (readstr(version, 4) != 4)
+ return NULL;
+ if (strcmp(version, VERSION) != 0)
+ return NULL;
+
+ /* internal font name*/
+ pf->name = fileptr;
+ if (readstrpad(pf->name, 64) != 64)
+ return NULL;
+
+ /* copyright, not currently stored*/
+ if (readstrpad(copyright, 256) != 256)
+ return NULL;
+
+ /* font info*/
+ if (!readshort(&maxwidth))
+ return NULL;
+ pf->maxwidth = maxwidth;
+ if (!readshort(&height))
+ return NULL;
+ pf->height = height;
+ if (!readshort(&ascent))
+ return NULL;
+ pf->ascent = ascent;
+ if (!readshort(&pad))
+ return NULL;
+ if (!readlong(&firstchar))
+ return NULL;
+ pf->firstchar = firstchar;
+ if (!readlong(&defaultchar))
+ return NULL;
+ pf->defaultchar = defaultchar;
+ if (!readlong(&size))
+ return NULL;
+ pf->size = size;
+
+ /* get variable font data sizes*/
+ /* # words of bitmap_t*/
+ if (!readlong(&nbits))
+ return NULL;
+ pf->bits_size = nbits;
+
+ /* # longs of offset*/
+ if (!readlong(&noffset))
+ return NULL;
+
+ /* # bytes of width*/
+ if (!readlong(&nwidth))
+ return NULL;
+
+ /* variable font data*/
+ pf->bits = (bitmap_t *)fileptr;
+ for (i=0; i<nbits; ++i)
+ if (!readshort(&pf->bits[i]))
+ return NULL;
+ /* pad to longword boundary*/
+ fileptr = (unsigned char *)(((int)fileptr + 3) & ~3);
+
+ if (noffset) {
+ pf->offset = (unsigned long *)fileptr;
+ for (i=0; i<noffset; ++i)
+ if (!readlong(&pf->offset[i]))
+ return NULL;
+ }
+ else
+ pf->offset = NULL;
+
+ if (nwidth) {
+ pf->width = (unsigned char *)fileptr;
+ fileptr += nwidth*sizeof(unsigned char);
+ }
+ else
+ pf->width = NULL;
+
+ if (fileptr > eofptr)
+ return NULL;
+
+ /* one-time rotate font bits to rockbox format*/
+ rotate_font_bits(pf);
+
+ return pf; /* success!*/
}
/*
- * Put a string at specified bit position
+ * Return a pointer to an incore font structure.
+ * If the requested font isn't loaded/compiled-in,
+ * decrement the font number and try again.
*/
-//FIXME rename font_putsxy?
-void
-lcd_putsxy(int x, int y, unsigned char *str, int font)
+struct font* font_get(int font)
{
- int ch;
- PMWCFONT pf = getfont(font);
-
- while (((ch = *str++) != '\0')) {
- MWIMAGEBITS *bits;
- int width;
-
- /* check input range*/
- if (ch < pf->firstchar || ch >= pf->firstchar+pf->size)
- ch = pf->defaultchar;
- ch -= pf->firstchar;
-
- /* get proportional width and glyph bits*/
- width = pf->width? pf->width[ch]: pf->maxwidth;
- if (x + width > LCD_WIDTH)
- break;
-
- /* no partial-height drawing for now...*/
- if (y + pf->height > LCD_HEIGHT)
- break;
- bits = pf->bits + (pf->offset? pf->offset[ch]: (pf->height * ch));
-
- lcd_bitmap((unsigned char *)bits, x, y, width, pf->height, true);
- x += width;
+ struct font* pf;
+
+ if (font >= MAXFONTS)
+ font = 0;
+
+ while (1) {
+ pf = sysfonts[font];
+ if (pf && pf->height)
+ return pf;
+ if (--font < 0)
+ panicf("No font!");
}
}
/* convert font bitmap data inplace to rockbox format*/
-static void
-rotate_font_bits(PMWCFONT pf)
+static void rotate_font_bits(struct font* pf)
{
int i;
- int defaultchar = pf->defaultchar - pf->firstchar;
- int did_defaultchar = 0;
+ unsigned long defaultchar = pf->defaultchar - pf->firstchar;
+ bool did_defaultchar = false;
unsigned char buf[256];
for (i=0; i<pf->size; ++i) {
- MWIMAGEBITS *bits = pf->bits +
- (pf->offset? pf->offset[i]: (pf->height * i));
+ bitmap_t *bits = pf->bits +
+ (pf->offset ? pf->offset[i] : (pf->height * i));
int width = pf->width? pf->width[i]: pf->maxwidth;
- int src_bytes = MWIMAGE_BYTES(width) * pf->height;
+ int src_bytes = BITMAP_BYTES(width) * pf->height;
/*
* Due to the way the offset map works,
* non-mapped characters are mapped to the default
* character, and shouldn't be rotated twice.
*/
- if (i == defaultchar) {
+
+ if (pf->offset && pf->offset[i] == defaultchar) {
if (did_defaultchar)
continue;
- did_defaultchar = 1;
+ did_defaultchar = true;
}
/* rotate left for lcd_bitmap function input*/
@@ -200,16 +292,15 @@ rotate_font_bits(PMWCFONT pf)
}
/*
- * Take an MWIMAGEBITS bitmap and convert to Rockbox format.
+ * Take an bitmap_t bitmap and convert to Rockbox format.
* Used for converting font glyphs for the time being.
* Can use for standard X11 and Win32 images as well.
*
* Doing it this way keeps fonts in standard formats,
* as well as keeping Rockbox hw bitmap format.
*/
-static void
-rotleft(unsigned char *dst, MWIMAGEBITS *src, unsigned int width,
- unsigned int height)
+static void rotleft(unsigned char *dst, bitmap_t *src, unsigned int width,
+ unsigned int height)
{
unsigned int i,j;
unsigned int dst_col = 0; /* destination column*/
@@ -221,17 +312,17 @@ rotleft(unsigned char *dst, MWIMAGEBITS *src, unsigned int width,
dst_linelen = (height-1)/8+1;
/* calc words of input image*/
- src_words = MWIMAGE_WORDS(width) * height;
+ src_words = BITMAP_WORDS(width) * height;
/* clear background*/
memset(dst, 0, dst_linelen*width);
for (i=0; i < src_words; i++) {
- MWIMAGEBITS srcmap; /* current src input bit*/
- MWIMAGEBITS dstmap; /* current dst output bit*/
+ bitmap_t srcmap; /* current src input bit*/
+ bitmap_t dstmap; /* current dst output bit*/
/* calc src input bit*/
- srcmap = 1 << (sizeof(MWIMAGEBITS)*8-1);
+ srcmap = 1 << (sizeof(bitmap_t)*8-1);
/* calc dst output bit*/
if (i>0 && (i%8==0)) {
@@ -244,9 +335,9 @@ rotleft(unsigned char *dst, MWIMAGEBITS *src, unsigned int width,
for(j=0; j < width; j++) {
/* calc input bitmask*/
- MWIMAGEBITS bit = srcmap >> j;
+ bitmap_t bit = srcmap >> j;
if (bit==0) {
- srcmap = 1 << (sizeof(MWIMAGEBITS)*8-1);
+ srcmap = 1 << (sizeof(bitmap_t)*8-1);
bit = srcmap >> (j % 16);
}
diff --git a/firmware/font.h b/firmware/font.h
index 645848ee18..44b975bb78 100644
--- a/firmware/font.h
+++ b/firmware/font.h
@@ -38,13 +38,14 @@
* must be available at system startup.
* Fonts are specified in firmware/font.c.
*/
-#define FONT_SYSFIXED 0 /* system fixed pitch font*/
-#define FONT_UI 1 /* system porportional font*/
-#define FONT_MP3 2 /* font used for mp3 info*/
-#define MAXFONTS 3 /* max # fonts*/
+enum {
+ FONT_SYSFIXED, /* system fixed pitch font*/
+ FONT_UI, /* system porportional font*/
+ MAXFONTS
+};
/*
- * .fnt (.rbf) loadable font file format definition
+ * .fnt loadable font file format definition
*
* format len description
* ------------------------- ---- ------------------------------
@@ -70,54 +71,42 @@
/* loadable font magic and version #*/
#define VERSION "RB11"
-/* MWIMAGEBITS helper macros*/
-#define MWIMAGE_WORDS(x) (((x)+15)/16) /* image size in words*/
-#define MWIMAGE_BYTES(x) (MWIMAGE_WORDS(x)*sizeof(MWIMAGEBITS))
-#define MWIMAGE_BITSPERIMAGE (sizeof(MWIMAGEBITS) * 8)
-#define MWIMAGE_BITVALUE(n) ((MWIMAGEBITS) (((MWIMAGEBITS) 1) << (n)))
-#define MWIMAGE_FIRSTBIT (MWIMAGE_BITVALUE(MWIMAGE_BITSPERIMAGE - 1))
-#define MWIMAGE_TESTBIT(m) ((m) & MWIMAGE_FIRSTBIT)
-#define MWIMAGE_SHIFTBIT(m) ((MWIMAGEBITS) ((m) << 1))
+typedef unsigned short bitmap_t; /* bitmap image unit size*/
-typedef unsigned short MWIMAGEBITS; /* bitmap image unit size*/
+/* bitmap_t helper macros*/
+#define BITMAP_WORDS(x) (((x)+15)/16) /* image size in words*/
+#define BITMAP_BYTES(x) (BITMAP_WORDS(x)*sizeof(bitmap_t))
+#define BITMAP_BITSPERIMAGE (sizeof(bitmap_t) * 8)
+#define BITMAP_BITVALUE(n) ((bitmap_t) (((bitmap_t) 1) << (n)))
+#define BITMAP_FIRSTBIT (BITMAP_BITVALUE(BITMAP_BITSPERIMAGE - 1))
+#define BITMAP_TESTBIT(m) ((m) & BITMAP_FIRSTBIT)
+#define BITMAP_SHIFTBIT(m) ((bitmap_t) ((m) << 1))
/* builtin C-based proportional/fixed font structure */
/* based on The Microwindows Project http://microwindows.org */
-typedef struct {
+struct font {
char * name; /* font name*/
int maxwidth; /* max width in pixels*/
unsigned int height; /* height in pixels*/
int ascent; /* ascent (baseline) height*/
int firstchar; /* first character in bitmap*/
int size; /* font size in glyphs*/
- MWIMAGEBITS *bits; /* 16-bit right-padded bitmap data*/
+ bitmap_t *bits; /* 16-bit right-padded bitmap data*/
unsigned long *offset; /* offsets into bitmap data*/
unsigned char *width; /* character widths or NULL if fixed*/
int defaultchar; /* default char (not glyph index)*/
- long bits_size; /* # words of MWIMAGEBITS bits*/
-#if 0
- char * facename; /* facename of font*/
- char * copyright; /* copyright info for loadable fonts*/
-#endif
-} MWCFONT, *PMWCFONT;
-
-/* structure for rockbox startup font selection*/
-struct corefont {
- PMWCFONT pf; /* compiled-in or loaded font*/
- char *diskname; /* diskname if not compiled-in*/
+ long bits_size; /* # words of bitmap_t bits*/
};
-extern struct corefont sysfonts[MAXFONTS];
-
/* font routines*/
-PMWCFONT getfont(int font);
-PMWCFONT rbf_load_font(char *path, PMWCFONT pf);
-
void font_init(void);
+struct font* font_load(char *path);
+struct font* font_get(int font);
#else /* HAVE_LCD_BITMAP */
#define font_init()
+#define font_load(x)
#endif
diff --git a/firmware/fonts/clR6x8.bdf b/firmware/fonts/clR6x8.bdf
new file mode 100644
index 0000000000..7216efa806
--- /dev/null
+++ b/firmware/fonts/clR6x8.bdf
@@ -0,0 +1,2895 @@
+STARTFONT 2.1
+COMMENT $XConsortium: clR6x8.bdf,v 1.2 94/04/11 12:08:36 gildea Exp $
+COMMENT
+COMMENT Copyright 1989 Dale Schumacher, dal@syntel.mn.org
+COMMENT 399 Beacon Ave.
+COMMENT St. Paul, MN 55104-3527
+COMMENT
+COMMENT Permission to use, copy, modify, and distribute this software and
+COMMENT its documentation for any purpose and without fee is hereby
+COMMENT granted, provided that the above copyright notice appear in all
+COMMENT copies and that both that copyright notice and this permission
+COMMENT notice appear in supporting documentation, and that the name of
+COMMENT Dale Schumacher not be used in advertising or publicity pertaining to
+COMMENT distribution of the software without specific, written prior
+COMMENT permission. Dale Schumacher makes no representations about the
+COMMENT suitability of this software for any purpose. It is provided "as
+COMMENT is" without express or implied warranty.
+COMMENT
+FONT -Schumacher-Clean-Medium-R-Normal--8-80-75-75-C-60-ISO646.1991-IRV
+SIZE 8 75 75
+FONTBOUNDINGBOX 6 8 0 -1
+STARTPROPERTIES 20
+FONTNAME_REGISTRY ""
+FOUNDRY "Schumacher"
+FAMILY_NAME "Clean"
+WEIGHT_NAME "Medium"
+SLANT "R"
+SETWIDTH_NAME "Normal"
+ADD_STYLE_NAME ""
+PIXEL_SIZE 8
+POINT_SIZE 80
+RESOLUTION_X 75
+RESOLUTION_Y 75
+SPACING "C"
+AVERAGE_WIDTH 60
+CHARSET_REGISTRY "ISO646.1991"
+CHARSET_ENCODING "IRV"
+FONT_ASCENT 7
+FONT_DESCENT 1
+DEFAULT_CHAR 0
+COPYRIGHT "Copyright 1989 Dale Schumacher."
+_XMBDFED_INFO "Edited with xmbdfed 4.5."
+ENDPROPERTIES
+CHARS 190
+STARTCHAR space
+ENCODING 32
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR exclamation mark
+ENCODING 33
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+10
+10
+10
+10
+00
+10
+00
+ENDCHAR
+STARTCHAR double quote
+ENCODING 34
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+28
+28
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR hash
+ENCODING 35
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+28
+7C
+28
+7C
+28
+00
+00
+ENDCHAR
+STARTCHAR dollar sign
+ENCODING 36
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+3C
+50
+38
+14
+78
+10
+00
+ENDCHAR
+STARTCHAR percent sign
+ENCODING 37
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+60
+64
+08
+10
+20
+4C
+0C
+00
+ENDCHAR
+STARTCHAR ampersand
+ENCODING 38
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+30
+48
+48
+30
+54
+48
+34
+00
+ENDCHAR
+STARTCHAR apostrophe
+ENCODING 39
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+20
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR open bracket
+ENCODING 40
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+04
+08
+10
+10
+10
+08
+04
+00
+ENDCHAR
+STARTCHAR close bracket
+ENCODING 41
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+40
+20
+10
+10
+10
+20
+40
+00
+ENDCHAR
+STARTCHAR asterisk
+ENCODING 42
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+10
+54
+38
+54
+10
+00
+00
+ENDCHAR
+STARTCHAR plus sign
+ENCODING 43
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+10
+10
+7C
+10
+10
+00
+00
+ENDCHAR
+STARTCHAR comma
+ENCODING 44
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+10
+10
+20
+ENDCHAR
+STARTCHAR minus sign
+ENCODING 45
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+00
+7C
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR full stop
+ENCODING 46
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+10
+10
+00
+ENDCHAR
+STARTCHAR slash
+ENCODING 47
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+04
+04
+08
+08
+10
+10
+20
+20
+ENDCHAR
+STARTCHAR digit zero
+ENCODING 48
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+4C
+54
+64
+44
+38
+00
+ENDCHAR
+STARTCHAR digit one
+ENCODING 49
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+30
+10
+10
+10
+10
+10
+00
+ENDCHAR
+STARTCHAR digit two
+ENCODING 50
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+04
+08
+10
+20
+7C
+00
+ENDCHAR
+STARTCHAR digit three
+ENCODING 51
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+04
+18
+04
+44
+38
+00
+ENDCHAR
+STARTCHAR digit four
+ENCODING 52
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+08
+18
+28
+48
+7C
+08
+08
+00
+ENDCHAR
+STARTCHAR digit five
+ENCODING 53
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+7C
+40
+78
+04
+04
+44
+38
+00
+ENDCHAR
+STARTCHAR digit six
+ENCODING 54
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+18
+20
+40
+78
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR digit seven
+ENCODING 55
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+7C
+44
+04
+08
+08
+10
+10
+00
+ENDCHAR
+STARTCHAR digit eight
+ENCODING 56
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+44
+38
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR digit nine
+ENCODING 57
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+44
+3C
+04
+08
+30
+00
+ENDCHAR
+STARTCHAR colon
+ENCODING 58
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+10
+10
+00
+00
+10
+10
+00
+ENDCHAR
+STARTCHAR semicolon
+ENCODING 59
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+10
+10
+00
+00
+10
+10
+20
+ENDCHAR
+STARTCHAR less-than sign
+ENCODING 60
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+0C
+30
+C0
+30
+0C
+00
+00
+ENDCHAR
+STARTCHAR equal sign
+ENCODING 61
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+7C
+00
+7C
+00
+00
+00
+ENDCHAR
+STARTCHAR greater-than sign
+ENCODING 62
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+C0
+30
+0C
+30
+C0
+00
+00
+ENDCHAR
+STARTCHAR question mark
+ENCODING 63
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+04
+08
+10
+00
+10
+00
+ENDCHAR
+STARTCHAR commercial at
+ENCODING 64
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+5C
+5C
+58
+40
+38
+00
+ENDCHAR
+STARTCHAR A
+ENCODING 65
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+28
+44
+44
+7C
+44
+44
+00
+ENDCHAR
+STARTCHAR B
+ENCODING 66
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+78
+44
+44
+78
+44
+44
+78
+00
+ENDCHAR
+STARTCHAR C
+ENCODING 67
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+40
+40
+40
+44
+38
+00
+ENDCHAR
+STARTCHAR D
+ENCODING 68
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+70
+48
+44
+44
+44
+48
+70
+00
+ENDCHAR
+STARTCHAR E
+ENCODING 69
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+7C
+40
+40
+78
+40
+40
+7C
+00
+ENDCHAR
+STARTCHAR F
+ENCODING 70
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+7C
+40
+40
+78
+40
+40
+40
+00
+ENDCHAR
+STARTCHAR G
+ENCODING 71
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+40
+4C
+44
+44
+3C
+00
+ENDCHAR
+STARTCHAR H
+ENCODING 72
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+44
+44
+44
+7C
+44
+44
+44
+00
+ENDCHAR
+STARTCHAR I
+ENCODING 73
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+7C
+10
+10
+10
+10
+10
+7C
+00
+ENDCHAR
+STARTCHAR J
+ENCODING 74
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+1C
+04
+04
+04
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR K
+ENCODING 75
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+44
+48
+50
+60
+50
+48
+44
+00
+ENDCHAR
+STARTCHAR L
+ENCODING 76
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+40
+40
+40
+40
+40
+40
+7C
+00
+ENDCHAR
+STARTCHAR M
+ENCODING 77
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+44
+6C
+54
+54
+44
+44
+44
+00
+ENDCHAR
+STARTCHAR N
+ENCODING 78
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+44
+64
+64
+54
+4C
+4C
+44
+00
+ENDCHAR
+STARTCHAR O
+ENCODING 79
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+44
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR P
+ENCODING 80
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+78
+44
+44
+78
+40
+40
+40
+00
+ENDCHAR
+STARTCHAR Q
+ENCODING 81
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+44
+44
+44
+44
+38
+0C
+ENDCHAR
+STARTCHAR R
+ENCODING 82
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+78
+44
+44
+78
+50
+48
+44
+00
+ENDCHAR
+STARTCHAR S
+ENCODING 83
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+40
+38
+04
+44
+38
+00
+ENDCHAR
+STARTCHAR T
+ENCODING 84
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+7C
+10
+10
+10
+10
+10
+10
+00
+ENDCHAR
+STARTCHAR U
+ENCODING 85
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+44
+44
+44
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR V
+ENCODING 86
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+44
+44
+44
+28
+28
+10
+10
+00
+ENDCHAR
+STARTCHAR W
+ENCODING 87
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+44
+44
+44
+54
+54
+6C
+44
+00
+ENDCHAR
+STARTCHAR X
+ENCODING 88
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+44
+44
+28
+10
+28
+44
+44
+00
+ENDCHAR
+STARTCHAR Y
+ENCODING 89
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+44
+44
+28
+10
+10
+10
+10
+00
+ENDCHAR
+STARTCHAR Z
+ENCODING 90
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+7C
+04
+08
+10
+20
+40
+7C
+00
+ENDCHAR
+STARTCHAR left square bracket
+ENCODING 91
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+1C
+10
+10
+10
+10
+10
+1C
+00
+ENDCHAR
+STARTCHAR backslash
+ENCODING 92
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+20
+20
+10
+10
+08
+08
+04
+04
+ENDCHAR
+STARTCHAR right square bracket
+ENCODING 93
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+70
+10
+10
+10
+10
+10
+70
+00
+ENDCHAR
+STARTCHAR circumflex accent
+ENCODING 94
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+28
+44
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR underscore
+ENCODING 95
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+00
+FC
+00
+ENDCHAR
+STARTCHAR grave accent
+ENCODING 96
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+08
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR a
+ENCODING 97
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+3C
+44
+44
+4C
+34
+00
+ENDCHAR
+STARTCHAR b
+ENCODING 98
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+40
+40
+78
+44
+44
+44
+78
+00
+ENDCHAR
+STARTCHAR c
+ENCODING 99
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+3C
+40
+40
+40
+3C
+00
+ENDCHAR
+STARTCHAR d
+ENCODING 100
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+04
+04
+3C
+44
+44
+44
+3C
+00
+ENDCHAR
+STARTCHAR e
+ENCODING 101
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+38
+44
+7C
+40
+38
+00
+ENDCHAR
+STARTCHAR f
+ENCODING 102
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+1C
+20
+78
+20
+20
+20
+20
+00
+ENDCHAR
+STARTCHAR g
+ENCODING 103
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+3C
+44
+44
+3C
+04
+38
+ENDCHAR
+STARTCHAR h
+ENCODING 104
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+40
+40
+78
+44
+44
+44
+44
+00
+ENDCHAR
+STARTCHAR i
+ENCODING 105
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+00
+30
+10
+10
+10
+38
+00
+ENDCHAR
+STARTCHAR j
+ENCODING 106
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+08
+00
+38
+08
+08
+08
+08
+70
+ENDCHAR
+STARTCHAR k
+ENCODING 107
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+40
+40
+48
+50
+60
+50
+48
+00
+ENDCHAR
+STARTCHAR l
+ENCODING 108
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+30
+10
+10
+10
+10
+10
+38
+00
+ENDCHAR
+STARTCHAR m
+ENCODING 109
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+68
+54
+54
+54
+44
+00
+ENDCHAR
+STARTCHAR n
+ENCODING 110
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+58
+64
+44
+44
+44
+00
+ENDCHAR
+STARTCHAR o
+ENCODING 111
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+38
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR p
+ENCODING 112
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+78
+44
+44
+44
+78
+40
+ENDCHAR
+STARTCHAR q
+ENCODING 113
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+3C
+44
+44
+44
+3C
+04
+ENDCHAR
+STARTCHAR r
+ENCODING 114
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+58
+60
+40
+40
+40
+00
+ENDCHAR
+STARTCHAR s
+ENCODING 115
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+3C
+40
+38
+04
+78
+00
+ENDCHAR
+STARTCHAR t
+ENCODING 116
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+10
+7C
+10
+10
+10
+0C
+00
+ENDCHAR
+STARTCHAR u
+ENCODING 117
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+44
+44
+44
+4C
+34
+00
+ENDCHAR
+STARTCHAR v
+ENCODING 118
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+44
+44
+28
+28
+10
+00
+ENDCHAR
+STARTCHAR w
+ENCODING 119
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+44
+54
+54
+54
+28
+00
+ENDCHAR
+STARTCHAR x
+ENCODING 120
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+44
+28
+10
+28
+44
+00
+ENDCHAR
+STARTCHAR y
+ENCODING 121
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+44
+44
+44
+3C
+04
+38
+ENDCHAR
+STARTCHAR z
+ENCODING 122
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+7C
+08
+10
+20
+7C
+00
+ENDCHAR
+STARTCHAR left curly bracket
+ENCODING 123
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+04
+08
+08
+10
+08
+08
+04
+00
+ENDCHAR
+STARTCHAR pipe symbol
+ENCODING 124
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+10
+10
+10
+10
+10
+10
+00
+ENDCHAR
+STARTCHAR right curly bracket
+ENCODING 125
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+40
+20
+20
+10
+20
+20
+40
+00
+ENDCHAR
+STARTCHAR tilde
+ENCODING 126
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+20
+54
+08
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR inverted exclamation
+ENCODING 161
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+00
+10
+10
+10
+10
+10
+00
+ENDCHAR
+STARTCHAR cent sign
+ENCODING 162
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+10
+3C
+50
+50
+3C
+10
+00
+ENDCHAR
+STARTCHAR pound sign
+ENCODING 163
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+18
+24
+20
+78
+20
+20
+7C
+00
+ENDCHAR
+STARTCHAR euro sign
+ENCODING 164
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+1C
+20
+78
+20
+78
+20
+1C
+00
+ENDCHAR
+STARTCHAR yen sign
+ENCODING 165
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+44
+44
+28
+7C
+10
+7C
+10
+00
+ENDCHAR
+STARTCHAR broken bar
+ENCODING 166
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+10
+10
+00
+10
+10
+10
+00
+ENDCHAR
+STARTCHAR section sign
+ENCODING 167
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+18
+24
+30
+48
+30
+90
+60
+00
+ENDCHAR
+STARTCHAR dieresis
+ENCODING 168
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+44
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR copyright sign
+ENCODING 169
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+30
+48
+B4
+A4
+B4
+48
+30
+00
+ENDCHAR
+STARTCHAR feminine ordinal
+ENCODING 170
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+3C
+44
+44
+4C
+34
+00
+7C
+00
+ENDCHAR
+STARTCHAR guillemot left
+ENCODING 171
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+24
+48
+24
+00
+00
+00
+ENDCHAR
+STARTCHAR not sign
+ENCODING 172
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+00
+78
+08
+00
+00
+00
+ENDCHAR
+STARTCHAR soft hyphen
+ENCODING 173
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR registered trademark
+ENCODING 174
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+30
+48
+B4
+B4
+AC
+48
+30
+00
+ENDCHAR
+STARTCHAR macron
+ENCODING 175
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+7C
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR degree sign
+ENCODING 176
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+28
+38
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR plus or minus
+ENCODING 177
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+10
+7C
+10
+10
+00
+7C
+00
+ENDCHAR
+STARTCHAR superscript 2
+ENCODING 178
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+28
+08
+10
+38
+00
+00
+00
+ENDCHAR
+STARTCHAR superscript 3
+ENCODING 179
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+30
+08
+30
+08
+30
+00
+00
+00
+ENDCHAR
+STARTCHAR spacing acute
+ENCODING 180
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+20
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR micro sign
+ENCODING 181
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+48
+48
+48
+48
+74
+40
+ENDCHAR
+STARTCHAR paragraph sign
+ENCODING 182
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+3C
+54
+54
+54
+34
+14
+14
+00
+ENDCHAR
+STARTCHAR middle dot
+ENCODING 183
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+00
+10
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR cedilla
+ENCODING 184
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+00
+10
+30
+ENDCHAR
+STARTCHAR suprtscript 1
+ENCODING 185
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+30
+10
+10
+10
+00
+00
+00
+ENDCHAR
+STARTCHAR masculine ordinal
+ENCODING 186
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+44
+44
+38
+00
+7C
+00
+ENDCHAR
+STARTCHAR guillemot right
+ENCODING 187
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+48
+24
+48
+00
+00
+00
+ENDCHAR
+STARTCHAR one quarter
+ENCODING 188
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR one half
+ENCODING 189
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR three quarters
+ENCODING 190
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+00
+00
+00
+00
+00
+00
+ENDCHAR
+STARTCHAR inverted question
+ENCODING 191
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+00
+10
+08
+04
+44
+38
+00
+ENDCHAR
+STARTCHAR large A, grave accent
+ENCODING 192
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+20
+10
+10
+28
+44
+7C
+44
+00
+ENDCHAR
+STARTCHAR large A, acute accent
+ENCODING 193
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+20
+10
+28
+44
+7C
+44
+00
+ENDCHAR
+STARTCHAR large A, circumflex accent
+ENCODING 194
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+10
+28
+44
+7C
+44
+00
+ENDCHAR
+STARTCHAR large A, tilde
+ENCODING 195
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+24
+58
+10
+28
+44
+7C
+44
+00
+ENDCHAR
+STARTCHAR large A, dieresis
+ENCODING 196
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+44
+10
+28
+44
+7C
+44
+44
+00
+ENDCHAR
+STARTCHAR large A, circle
+ENCODING 197
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+28
+10
+28
+44
+7C
+44
+00
+ENDCHAR
+STARTCHAR large AE, diphtong
+ENCODING 198
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+0C
+18
+28
+4C
+78
+48
+4C
+00
+ENDCHAR
+STARTCHAR large C, cedilla
+ENCODING 199
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+40
+40
+44
+38
+10
+30
+ENDCHAR
+STARTCHAR large E, grave accent
+ENCODING 200
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+20
+10
+7C
+40
+70
+40
+7C
+00
+ENDCHAR
+STARTCHAR large E, acute accent
+ENCODING 201
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+08
+10
+7C
+40
+70
+40
+7C
+00
+ENDCHAR
+STARTCHAR large E, circumflex accent
+ENCODING 202
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+28
+7C
+40
+70
+40
+7C
+00
+ENDCHAR
+STARTCHAR large E, dieresis
+ENCODING 203
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+28
+00
+7C
+40
+70
+40
+7C
+00
+ENDCHAR
+STARTCHAR capital I, grave accent
+ENCODING 204
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+20
+10
+7C
+10
+10
+10
+7C
+00
+ENDCHAR
+STARTCHAR capital I, acute accent
+ENCODING 205
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+08
+10
+7C
+10
+10
+10
+7C
+00
+ENDCHAR
+STARTCHAR capital I, circumflex accent
+ENCODING 206
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+28
+7C
+10
+10
+10
+7C
+00
+ENDCHAR
+STARTCHAR capital I, dieresis
+ENCODING 207
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+28
+00
+7C
+10
+10
+10
+7C
+00
+ENDCHAR
+STARTCHAR capital Eth, Icelandic
+ENCODING 208
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+70
+48
+44
+E4
+44
+48
+70
+00
+ENDCHAR
+STARTCHAR capital N, tilde
+ENCODING 209
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+24
+58
+44
+64
+54
+4C
+44
+00
+ENDCHAR
+STARTCHAR capital O, grave accent
+ENCODING 210
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+20
+10
+38
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR capital O, acute accent
+ENCODING 211
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+08
+10
+38
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR capital O, circumflex accent
+ENCODING 212
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+28
+38
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR capital O, tilde
+ENCODING 213
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+24
+58
+38
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR capital O, dieresis
+ENCODING 214
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+44
+38
+44
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR multiply sign
+ENCODING 215
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+44
+28
+10
+28
+44
+00
+00
+ENDCHAR
+STARTCHAR capital O, slash
+ENCODING 216
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+4C
+54
+64
+44
+38
+00
+ENDCHAR
+STARTCHAR capital U, grave accent
+ENCODING 217
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+20
+10
+44
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR capital U, acute accent
+ENCODING 218
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+08
+10
+44
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR capital U, circumflex accent
+ENCODING 219
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+28
+00
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR capital U, dieresis
+ENCODING 220
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+44
+00
+44
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR capital Y, acute accent
+ENCODING 221
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+08
+10
+44
+28
+10
+10
+10
+00
+ENDCHAR
+STARTCHAR capital Thorn, Icelandic
+ENCODING 222
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+40
+78
+44
+44
+44
+78
+40
+00
+ENDCHAR
+STARTCHAR sharp s, German
+ENCODING 223
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+44
+44
+48
+44
+44
+58
+00
+ENDCHAR
+STARTCHAR small a, grave accent
+ENCODING 224
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+20
+10
+3C
+44
+44
+4C
+34
+00
+ENDCHAR
+STARTCHAR small a, acute accent
+ENCODING 225
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+08
+10
+3C
+44
+44
+4C
+34
+00
+ENDCHAR
+STARTCHAR small a, circumflex accent
+ENCODING 226
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+28
+00
+3C
+44
+4C
+34
+00
+ENDCHAR
+STARTCHAR small a, tilde
+ENCODING 227
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+24
+58
+00
+3C
+44
+4C
+34
+00
+ENDCHAR
+STARTCHAR small a, dieresis
+ENCODING 228
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+28
+00
+3C
+44
+44
+4C
+34
+00
+ENDCHAR
+STARTCHAR small a, circle
+ENCODING 229
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+28
+10
+3C
+44
+4C
+34
+00
+ENDCHAR
+STARTCHAR small ae, diphtong
+ENCODING 230
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+38
+54
+5C
+50
+3C
+00
+ENDCHAR
+STARTCHAR small c, cedilla
+ENCODING 231
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+3C
+40
+40
+3C
+10
+30
+ENDCHAR
+STARTCHAR small e, grave accent
+ENCODING 232
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+20
+10
+38
+44
+7C
+40
+38
+00
+ENDCHAR
+STARTCHAR small e, acute accent
+ENCODING 233
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+08
+10
+38
+44
+7C
+40
+38
+00
+ENDCHAR
+STARTCHAR small e, circumflex accent
+ENCODING 234
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+28
+38
+44
+7C
+40
+38
+00
+ENDCHAR
+STARTCHAR small e, dieresis
+ENCODING 235
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+28
+00
+38
+44
+7C
+40
+38
+00
+ENDCHAR
+STARTCHAR small i, grave accent
+ENCODING 236
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+20
+10
+00
+30
+10
+10
+38
+00
+ENDCHAR
+STARTCHAR small i, acute accent
+ENCODING 237
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+08
+10
+00
+30
+10
+10
+38
+00
+ENDCHAR
+STARTCHAR small i, circumflex accent
+ENCODING 238
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+28
+00
+30
+10
+10
+38
+00
+ENDCHAR
+STARTCHAR small i, dieresis
+ENCODING 239
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+28
+00
+30
+10
+10
+10
+38
+00
+ENDCHAR
+STARTCHAR small eth, Icelandic
+ENCODING 240
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+38
+14
+04
+1C
+24
+24
+18
+00
+ENDCHAR
+STARTCHAR small n, tilde
+ENCODING 241
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+24
+58
+00
+58
+64
+44
+44
+00
+ENDCHAR
+STARTCHAR small o, grave accent
+ENCODING 242
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+20
+10
+38
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR small o, acute accent
+ENCODING 243
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+08
+10
+38
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR small o, circumflex accent
+ENCODING 244
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+28
+38
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR small o, tilde
+ENCODING 245
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+24
+58
+38
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR small o, dieresis
+ENCODING 246
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+28
+00
+38
+44
+44
+44
+38
+00
+ENDCHAR
+STARTCHAR division sign
+ENCODING 247
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+10
+00
+7C
+00
+10
+00
+00
+ENDCHAR
+STARTCHAR small o, slash
+ENCODING 248
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+00
+00
+3C
+4C
+54
+64
+78
+00
+ENDCHAR
+STARTCHAR small u, grave accent
+ENCODING 249
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+20
+10
+44
+44
+44
+4C
+34
+00
+ENDCHAR
+STARTCHAR small u, acute accent
+ENCODING 250
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+08
+10
+44
+44
+44
+4C
+34
+00
+ENDCHAR
+STARTCHAR small u, circumflex accent
+ENCODING 251
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+10
+28
+00
+44
+44
+4C
+34
+00
+ENDCHAR
+STARTCHAR small u, dieresis
+ENCODING 252
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+28
+00
+44
+44
+44
+4C
+34
+00
+ENDCHAR
+STARTCHAR small y, acute accent
+ENCODING 253
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+08
+10
+44
+44
+44
+3C
+04
+38
+ENDCHAR
+STARTCHAR small thorn, Icelandic
+ENCODING 254
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+40
+70
+48
+48
+48
+70
+40
+00
+ENDCHAR
+STARTCHAR small y, dieresis
+ENCODING 255
+SWIDTH 720 0
+DWIDTH 6 0
+BBX 6 8 0 -1
+BITMAP
+28
+00
+44
+44
+44
+3C
+04
+38
+ENDCHAR
+ENDFONT
diff --git a/firmware/loadfont.c b/firmware/loadfont.c
deleted file mode 100644
index e78f208b13..0000000000
--- a/firmware/loadfont.c
+++ /dev/null
@@ -1,212 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (c) 2002 by Greg Haerr <greg@censoft.com>
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-/*
- * Load an rbf font, store in incore format.
- */
-#include "config.h"
-
-#if defined(HAVE_LCD_BITMAP) || defined(SIMULATOR)
-
-#include <stdio.h>
-#include <string.h>
-#include "font.h"
-#include "file.h"
-
-#ifndef DEBUGF
-#include "debug.h"
-#endif
-
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
-/* static buffer allocation structures*/
-static unsigned char mbuf[MAX_FONT_SIZE];
-static unsigned char *freeptr = mbuf;
-static unsigned char *fileptr;
-static unsigned char *eofptr;
-
-static int
-READSHORT(unsigned short *sp)
-{
- unsigned short s;
-
- s = *fileptr++ & 0xff;
- *sp = (*fileptr++ << 8) | s;
- return (fileptr <= eofptr);
-}
-
-static int
-READLONG(unsigned long *lp)
-{
- unsigned long l;
-
- l = *fileptr++ & 0xff;
- l |= *fileptr++ << 8;
- l |= *fileptr++ << 16;
- *lp = (*fileptr++ << 24) | l;
- return (fileptr <= eofptr);
-}
-
-/* read count bytes*/
-static int
-READSTR(char *buf, int count)
-{
- int n = count;
-
- while (--n >= 0)
- *buf++ = *fileptr++;
- return (fileptr <= eofptr)? count: 0;
-}
-
-/* read totlen bytes, return NUL terminated string*/
-/* may write 1 past buf[totlen]; removes blank pad*/
-static int
-READSTRPAD(char *buf, int totlen)
-{
- char *p = buf;
- int n = totlen;
-
- while (--n >= 0)
- *p++ = *fileptr++;
- if (fileptr > eofptr)
- return 0;
-
- p = &buf[totlen];
- *p-- = 0;
- while (*p == ' ' && p >= buf)
- *p-- = '\0';
- return totlen;
-}
-
-/* read and load font into incore font structure*/
-PMWCFONT
-rbf_load_font(char *path, PMWCFONT pf)
-{
- int fd, filesize;
- unsigned short maxwidth, height, ascent, pad;
- unsigned long firstchar, defaultchar, size;
- unsigned long i, nbits, noffset, nwidth;
- char version[4+1];
- char copyright[256+1];
-
- memset(pf, 0, sizeof(MWCFONT));
-
- /* open and read entire font file*/
- fd = open(path, O_RDONLY|O_BINARY);
- if (fd < 0) {
- DEBUGF("Can't open font: %s\n", path);
- return NULL;
- }
-freeptr = (unsigned char *)(((int)mbuf + 3) & ~3);
- fileptr = freeptr;
- filesize = read(fd, fileptr, MAX_FONT_SIZE);
- eofptr = fileptr + filesize;
- //freeptr += filesize;
- //freeptr = (unsigned char *)(freeptr + 3) & ~3; /* pad freeptr*/
- close(fd);
- if (filesize == MAX_FONT_SIZE) {
- DEBUGF("Font %s too large: %d\n", path, filesize);
- return NULL;
- }
-
- /* read magic and version #*/
- memset(version, 0, sizeof(version));
- if (READSTR(version, 4) != 4)
- return NULL;
- if (strcmp(version, VERSION) != 0)
- return NULL;
-
- /* internal font name*/
- pf->name = fileptr;
- if (READSTRPAD(pf->name, 64) != 64)
- return NULL;
-
- /* copyright, not currently stored*/
- if (READSTRPAD(copyright, 256) != 256)
- return NULL;
-
- /* font info*/
- if (!READSHORT(&maxwidth))
- return NULL;
- pf->maxwidth = maxwidth;
- if (!READSHORT(&height))
- return NULL;
- pf->height = height;
- if (!READSHORT(&ascent))
- return NULL;
- pf->ascent = ascent;
- if (!READSHORT(&pad))
- return NULL;
- if (!READLONG(&firstchar))
- return NULL;
- pf->firstchar = firstchar;
- if (!READLONG(&defaultchar))
- return NULL;
- pf->defaultchar = defaultchar;
- if (!READLONG(&size))
- return NULL;
- pf->size = size;
-
- /* get variable font data sizes*/
- /* # words of MWIMAGEBITS*/
- if (!READLONG(&nbits))
- return NULL;
- pf->bits_size = nbits;
-
- /* # longs of offset*/
- if (!READLONG(&noffset))
- return NULL;
-
- /* # bytes of width*/
- if (!READLONG(&nwidth))
- return NULL;
-
- /* variable font data*/
- pf->bits = (MWIMAGEBITS *)fileptr;
- for (i=0; i<nbits; ++i)
- if (!READSHORT(&pf->bits[i]))
- return NULL;
- /* pad to longword boundary*/
- fileptr = (unsigned char *)(((int)fileptr + 3) & ~3);
-
- if (noffset) {
- pf->offset = (unsigned long *)fileptr;
- for (i=0; i<noffset; ++i)
- if (!READLONG(&pf->offset[i]))
- return NULL;
- } else pf->offset = NULL;
-
- if (nwidth) {
- pf->width = (unsigned char *)fileptr;
- fileptr += nwidth*sizeof(unsigned char);
- } else pf->width = NULL;
-
- if (fileptr > eofptr)
- return NULL;
- return pf; /* success!*/
-}
-#endif /* HAVE_LCD_BITMAP */
-
-/* -----------------------------------------------------------------
- * local variables:
- * eval: (load-file "rockbox-mode.el")
- * vim: et sw=4 ts=8 sts=4 tw=78
- * end:
- */
diff --git a/tools/bdf2c b/tools/bdf2c
deleted file mode 100755
index 6832e5ce8f..0000000000
--- a/tools/bdf2c
+++ /dev/null
@@ -1,217 +0,0 @@
-#! /usr/bin/perl -w
-#
-# Convert BDF files to incore MWCFONT structure 'C' source
-# Copyright (c) 2002 by Greg Haerr <greg@censoft.com>
-#
-# from The Microwindows Project (http://microwindows.org)
-#
-# modified 09/13/02 correct output when no DEFAULT_CHAR, allow numeric font name
-# modified 09/12/02 added -limit <max_encode_hex_value> option
-# modified on 09/10/02 by G Haerr
-# - fixed DWIDTH 0 parsing
-# - don't limit font size to 0x7e characters
-# - changed offset data to unsigned long for large fonts
-# - don't generate width table if fixed-width
-# - added defaultchar to output
-# - added bits_size member for loadable fonts
-# modified on 3/26/00 by G Haerr added ascent field, fixed $IMAGE_BITS
-# modified on 2/10/00 by K Harris to accept any size input character
-# modified by G Haerr from bdftobogl for 16 bit MWIMAGEBITS
-# originally from BOGL - Ben's Own Graphics Library <pfaffben@debian.org>.
-
-use POSIX;
-
-$name = (reverse split /\//, $0)[0];
-$limit_char = 65535;
-
-while (defined $ARGV[0]) {
- my $arg = shift;
-
- if (($arg eq "-limit") && scalar(@ARGV) > 0) {
- $limit_char = hex shift;
- } elsif ($arg =~ "-.+") {
- print "$name: unknown option '$arg'\n";
- exit 1;
- } else {
- unshift(@ARGV, $arg);
- last;
- }
-}
-
-if ($#ARGV < 0) {
- print "Usage: $name [-limit <max_encode_hex_value>] font.bdf > font.c\n";
- exit 1;
-}
-
-$IMAGE_BITS = 16;
-$IMAGE_NIBBLES = $IMAGE_BITS/4;
-$IMAGE_MASK = 0xffff;
-
-$file = $ARGV[0];
-
-$font = $file;
-$font =~ s/\.bdf//;
-$font =~ tr/a-zA-Z0-9_/_/cs;
-
-print "/* Generated by $name on ", substr(`date`, 0, -1), ". */\n";
-print "#include \"font.h\"\n\n";
-
-open BDF, "<$file" || die;
-while (<BDF>) {
- chop;
- $pixel_size = $1 if /^PIXEL_SIZE (\d+)$/;
- $font_ascent = $1 if /^FONT_ASCENT (\d+)$/;
- $font_descent = $1 if /^FONT_DESCENT (\d+)$/;
- $font_name = $1 if /^FONT (.*)$/;
- $default_char = $1 if /^DEFAULT_CHAR (\d+)$/;
- ($fbbw, $fbbh, $fbbx, $fbby) = ($1, $2, $3, $4) if /^FONTBOUNDINGBOX (-?\d+) (-?\d+) (-?\d+) (-?\d+)/;
-
- last if /^CHARS /;
-}
-
-$font_width = $fbbw - $fbbx;
-undef $fbbw, undef $fbbh, undef $fbbx, undef $fbby;
-
-print "/* Font information:\n\n";
-print " name: $font_name\n";
-print " pixel size: $pixel_size\n" if defined $pixel_size;
-print " ascent: $font_ascent\n";
-print " descent: $font_descent\n";
-print "*/\n\n";
-
-print "/* Font character bitmap data. */\n";
-print "static MWIMAGEBITS _${font}_bits[] = {\n";
-
-$ch_height = $font_ascent + $font_descent;
-$ofs = 0;
-$maxwidth = 0;
-$firstchar = -1;
-$lastchar = -1;
-while (<BDF>) {
- chop;
- undef $encoding, undef $width, undef $bbx, undef $bby, undef $bbw, undef $bbh if /^STARTCHAR /;
- $encoding = $1 if /^ENCODING (\d+)/;
- last if defined $encoding && $encoding > $limit_char;
- $width = $1 if /^DWIDTH (-?\d+)/;
- $width = $font_width if defined $width && $width <= 0;
- ($bbw, $bbh, $bbx, $bby) = ($1, $2, $3, $4) if /^BBX (-?\d+) (-?\d+) (-?\d+) (-?\d+)/;
-
- if (/^BITMAP$/) {
- next if !defined $encoding;
- $firstchar = $encoding if $firstchar < 0;
- $lastchar = $encoding if $lastchar < $encoding;
- $encoding_tab[$encoding] = $ofs;
- $width -= $bbx, $bbx = 0 if $bbx < 0;
- $width[$encoding] = $width;
- $maxwidth = $width if $width > $maxwidth;
- $ch_words = int (($width+$IMAGE_BITS-1)/$IMAGE_BITS);
- $ch_bits = $ch_words*$IMAGE_BITS;
- for (my $i = 0; $i < $ch_height; $i++) {
- for (my $k = 0; $k < $ch_words; $k++) {
- $bm[$i][$k] = 0;
- }
- }
- for (my $i = 0; ; $i++) {
- $_ = <BDF>;
- chop;
- last if /^ENDCHAR$/;
-
- @hexnibbles = split //,$_;
- for (my $k=0; $k<$ch_words; $k++) {
- $ndx = $k*$IMAGE_NIBBLES;
- $padnibbles = @hexnibbles - $ndx;
- last if $padnibbles <= 0; # if bbx pushes bits into next word
- # and no more bits from bdf file
- $padnibbles = 0 if $padnibbles >= $IMAGE_NIBBLES;
- $value = hex join '',@hexnibbles[$ndx..($ndx+$IMAGE_NIBBLES-1-$padnibbles)];
- $value = $value << ($padnibbles*$IMAGE_NIBBLES);
- $bm[$ch_height - $font_descent - $bby - $bbh + $i][$k] |=
- $value >> ($bbx);
- if ($bbx) { # handle overflow into next image_word
- $bm[$ch_height - $font_descent - $bby - $bbh + $i][$k+1] =
- ($value << ($IMAGE_BITS - $bbx)) & $IMAGE_MASK;
- }
- }
- }
-
-### printf "\n/* Character %c (0x%02x):\n", $encoding, $encoding;
- printf "\n/* Character (0x%02x):\n", $encoding;
- print " bbw=$bbw, bbh=$bbh, bbx=$bbx, bby=$bby, width=$width\n";
- print " +", ("-" x $ch_bits), "+\n";
- for (my $i = 0; $i < $ch_height; $i++) {
- print " |";
- for (my $k = 0; $k < $ch_words; $k++) {
- for (my $j = $IMAGE_BITS - 1; $j >= 0; $j--) {
- print $bm[$i][$k] & (1 << $j) ? "*" : " ";
- }
- }
- print "|\n";
- }
- print " +", ("-" x $ch_bits), "+ */\n";
-
- for (my $i = 0; $i < $ch_height; $i++) {
- for ($k=0; $k<$ch_words; $k++) {
- $ofs++;
- printf "0x%04x, ", $bm[$i][$k];
- }
- printf "\n";
- }
- }
-}
-
-print "};\n\n";
-
-##print STDERR "Maximum character width=$maxwidth\n";
-
-$default_char = $firstchar if !defined $default_char;
-
-print "/* Character->glyph mapping. */\n";
-print "static unsigned long _${font}_offset[] = {\n";
-for (my $i = $firstchar; $i <= $lastchar; $i++) {
- my $char = $i;
- my $ofs = $encoding_tab[$i];
- $ofs = $encoding_tab[$default_char], $char = $default_char if !defined $ofs;
-### printf " $ofs,\t/* %c (0x%02x) */\n", $char, $i;
- printf " $ofs,\t/* (0x%02x) */\n", $i;
-}
-print "};\n\n";
-
-$gen_width_table = 0;
-for (my $i = $firstchar; $i <= $lastchar; $i++) {
- my $char = $i;
- my $width = $width[$i];
- $width = $width[$default_char] if !defined $encoding_tab[$i];
- $gen_width_table = 1 if $width != $maxwidth
-}
-
-if ($gen_width_table) {
- print "/* Character width data. */\n";
- print "static unsigned char _${font}_width[] = {\n";
- for (my $i = $firstchar; $i <= $lastchar; $i++) {
- my $char = $i;
- my $width = $width[$i];
- $width = $width[$default_char], $char = $default_char if !defined $encoding_tab[$i];
- ### printf " $width,\t/* %c (0x%02x) */\n", $char, $i;
- printf " $width,\t/* (0x%02x) */\n", $i;
- }
- print "};\n\n";
-}
-
-$size = $lastchar - $firstchar + 1;
-
-print "/* Exported structure definition. */\n";
-print "MWCFONT font_${font} = {\n";
-print " \"$font\",\n";
-print " $maxwidth,\n";
-print " $ch_height,\n";
-print " $font_ascent,\n";
-print " $firstchar,\n";
-print " $size,\n";
-print " _${font}_bits,\n";
-print " _${font}_offset,\n";
-if ($gen_width_table) {
- print " _${font}_width,\n";
-} else { print " 0, /* fixed width*/\n"; }
-print " $default_char,\n";
-print " sizeof(_${font}_bits)/sizeof(MWIMAGEBITS),\n";
-print "};\n";
diff --git a/tools/bdf2fnt b/tools/bdf2fnt
deleted file mode 100755
index 2793d11764..0000000000
--- a/tools/bdf2fnt
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash
-#
-# bdf2fnt - shell script to convert a BDF file to RBF format
-#
-# usage: bdf2fnt bdffile (don't use .bdf extension!)
-#
-# Example: bdf2fnt courB08
-# creates ./courB08.fnt and /tmp/courB08.c
-# the .fnt file can be renamed /system.fnt for loading
-# the .c file can be moved to firmware dir to compile-in font
-#
-
-# convert from bdf to C source
-./bdf2c $1.bdf > /tmp/$1.c
-
-# compile writerbf with linked C source font
-gcc -DARCHOS_RECORDER -DFONT=font_$1 -I../firmware -I../firmware/common -o /tmp/writerbf writerbf.c /tmp/$1.c
-
-# run writerbf, will write linked incore font to .rbf format
-/tmp/writerbf
-rm /tmp/writerbf
-
-# load .rbf font and display it for test
-gcc -DARCHOS_RECORDER -DMAX_FONT_SIZE=500000 -I../firmware/common -o /tmp/loadrbf loadrbf.c
-/tmp/loadrbf $1.fnt > /tmp/$1.1
-rm /tmp/loadrbf
-
-# link .c font and diff with .fnt load for test
-gcc -DARCHOS_RECORDER -DFONT=font_$1 -I../firmware -I../firmware/common -o /tmp/loadrbf loadrbf.c /tmp/$1.c
-/tmp/loadrbf > /tmp/$1.2
-rm /tmp/loadrbf
-
-#
-# we diff the output to ensure correctness
-diff /tmp/$1.1 /tmp/$1.2
-
-# clean up
-rm /tmp/$1.1 /tmp/$1.2
-#rm /tmp/$1.c
diff --git a/tools/convbdf.c b/tools/convbdf.c
index c8e5837575..00db9ae61f 100644
--- a/tools/convbdf.c
+++ b/tools/convbdf.c
@@ -16,31 +16,31 @@
/* loadable font magic and version #*/
#define VERSION "RB11"
-/* MWIMAGEBITS helper macros*/
-#define MWIMAGE_WORDS(x) (((x)+15)/16) /* image size in words*/
-#define MWIMAGE_BYTES(x) (MWIMAGE_WORDS(x)*sizeof(MWIMAGEBITS))
-#define MWIMAGE_BITSPERIMAGE (sizeof(MWIMAGEBITS) * 8)
-#define MWIMAGE_BITVALUE(n) ((MWIMAGEBITS) (((MWIMAGEBITS) 1) << (n)))
-#define MWIMAGE_FIRSTBIT (MWIMAGE_BITVALUE(MWIMAGE_BITSPERIMAGE - 1))
-#define MWIMAGE_TESTBIT(m) ((m) & MWIMAGE_FIRSTBIT)
-#define MWIMAGE_SHIFTBIT(m) ((MWIMAGEBITS) ((m) << 1))
+/* bitmap_t helper macros*/
+#define BITMAP_WORDS(x) (((x)+15)/16) /* image size in words*/
+#define BITMAP_BYTES(x) (BITMAP_WORDS(x)*sizeof(bitmap_t))
+#define BITMAP_BITSPERIMAGE (sizeof(bitmap_t) * 8)
+#define BITMAP_BITVALUE(n) ((bitmap_t) (((bitmap_t) 1) << (n)))
+#define BITMAP_FIRSTBIT (BITMAP_BITVALUE(BITMAP_BITSPERIMAGE - 1))
+#define BITMAP_TESTBIT(m) ((m) & BITMAP_FIRSTBIT)
+#define BITMAP_SHIFTBIT(m) ((bitmap_t) ((m) << 1))
-typedef unsigned short MWIMAGEBITS; /* bitmap image unit size*/
+typedef unsigned short bitmap_t; /* bitmap image unit size*/
/* builtin C-based proportional/fixed font structure */
/* based on The Microwindows Project http://microwindows.org */
-typedef struct {
+struct font {
char * name; /* font name*/
int maxwidth; /* max width in pixels*/
int height; /* height in pixels*/
int ascent; /* ascent (baseline) height*/
int firstchar; /* first character in bitmap*/
int size; /* font size in glyphs*/
- MWIMAGEBITS * bits; /* 16-bit right-padded bitmap data*/
- unsigned long * offset; /* offsets into bitmap data*/
- unsigned char * width; /* character widths or NULL if fixed*/
+ bitmap_t* bits; /* 16-bit right-padded bitmap data*/
+ unsigned long* offset; /* offsets into bitmap data*/
+ unsigned char* width; /* character widths or NULL if fixed*/
int defaultchar; /* default char (not glyph index)*/
- long bits_size; /* # words of MWIMAGEBITS bits*/
+ long bits_size; /* # words of bitmap_t bits*/
/* unused by runtime system, read in by convbdf*/
char * facename; /* facename of font*/
@@ -48,7 +48,7 @@ typedef struct {
int pixel_size;
int descent;
int fbbw, fbbh, fbbx, fbby;
-} MWCFONT, *PMWCFONT;
+};
/* END font.h*/
#define isprefix(buf,str) (!strncmp(buf, str, strlen(str)))
@@ -64,19 +64,19 @@ int limit_char = 65535;
int oflag = 0;
char outfile[256];
-void usage(void);
-void getopts(int *pac, char ***pav);
-int convbdf(char *path);
+void usage(void);
+void getopts(int *pac, char ***pav);
+int convbdf(char *path);
-void free_font(PMWCFONT pf);
-PMWCFONT bdf_read_font(char *path);
-int bdf_read_header(FILE *fp, PMWCFONT pf);
-int bdf_read_bitmaps(FILE *fp, PMWCFONT pf);
-char * bdf_getline(FILE *fp, char *buf, int len);
-MWIMAGEBITS bdf_hexval(unsigned char *buf, int ndx1, int ndx2);
+void free_font(struct font* pf);
+struct font* bdf_read_font(char *path);
+int bdf_read_header(FILE *fp, struct font* pf);
+int bdf_read_bitmaps(FILE *fp, struct font* pf);
+char * bdf_getline(FILE *fp, char *buf, int len);
+bitmap_t bdf_hexval(unsigned char *buf, int ndx1, int ndx2);
-int gen_c_source(PMWCFONT pf, char *path);
-int gen_fnt_file(PMWCFONT pf, char *path);
+int gen_c_source(struct font* pf, char *path);
+int gen_fnt_file(struct font* pf, char *path);
void
usage(void)
@@ -96,8 +96,7 @@ usage(void)
}
/* parse command line options*/
-void
-getopts(int *pac, char ***pav)
+void getopts(int *pac, char ***pav)
{
char *p;
char **av;
@@ -171,8 +170,7 @@ getopts(int *pac, char ***pav)
}
/* remove directory prefix and file suffix from full path*/
-char *
-basename(char *path)
+char *basename(char *path)
{
char *p, *b;
static char base[256];
@@ -193,10 +191,9 @@ basename(char *path)
return base;
}
-int
-convbdf(char *path)
+int convbdf(char *path)
{
- PMWCFONT pf;
+ struct font* pf;
int ret = 0;
pf = bdf_read_font(path);
@@ -223,8 +220,7 @@ convbdf(char *path)
return ret;
}
-int
-main(int ac, char **av)
+int main(int ac, char **av)
{
int ret = 0;
@@ -251,8 +247,7 @@ main(int ac, char **av)
}
/* free font structure*/
-void
-free_font(PMWCFONT pf)
+void free_font(struct font* pf)
{
if (!pf)
return;
@@ -270,11 +265,10 @@ free_font(PMWCFONT pf)
}
/* build incore structure from .bdf file*/
-PMWCFONT
-bdf_read_font(char *path)
+struct font* bdf_read_font(char *path)
{
FILE *fp;
- PMWCFONT pf;
+ struct font* pf;
fp = fopen(path, "rb");
if (!fp) {
@@ -282,7 +276,7 @@ bdf_read_font(char *path)
return NULL;
}
- pf = (PMWCFONT)calloc(1, sizeof(MWCFONT));
+ pf = (struct font*)calloc(1, sizeof(struct font));
if (!pf)
goto errout;
@@ -308,8 +302,7 @@ bdf_read_font(char *path)
}
/* read bdf font header information, return 0 on error*/
-int
-bdf_read_header(FILE *fp, PMWCFONT pf)
+int bdf_read_header(FILE *fp, struct font* pf)
{
int encoding;
int nchars, maxwidth;
@@ -391,7 +384,10 @@ bdf_read_header(FILE *fp, PMWCFONT pf)
fprintf(stderr, "Error: bad 'ENCODING'\n");
return 0;
}
- if (encoding >= 0 && encoding <= limit_char && encoding >= start_char) {
+ if (encoding >= 0 &&
+ encoding <= limit_char &&
+ encoding >= start_char) {
+
if (firstchar > encoding)
firstchar = encoding;
if (lastchar < encoding)
@@ -411,7 +407,9 @@ bdf_read_header(FILE *fp, PMWCFONT pf)
pf->height = pf->ascent + pf->descent;
/* calc default char*/
- if (pf->defaultchar < 0 || pf->defaultchar < firstchar)
+ if (pf->defaultchar < 0 ||
+ pf->defaultchar < firstchar ||
+ pf->defaultchar > limit_char )
pf->defaultchar = firstchar;
/* calc font size (offset/width entries)*/
@@ -423,10 +421,10 @@ bdf_read_header(FILE *fp, PMWCFONT pf)
maxwidth = pf->fbbw;
/* initially use font maxwidth * height for bits allocation*/
- pf->bits_size = nchars * MWIMAGE_WORDS(maxwidth) * pf->height;
+ pf->bits_size = nchars * BITMAP_WORDS(maxwidth) * pf->height;
/* allocate bits, offset, and width arrays*/
- pf->bits = (MWIMAGEBITS *)malloc(pf->bits_size * sizeof(MWIMAGEBITS) + EXTRA);
+ pf->bits = (bitmap_t *)malloc(pf->bits_size * sizeof(bitmap_t) + EXTRA);
pf->offset = (unsigned long *)malloc(pf->size * sizeof(unsigned long));
pf->width = (unsigned char *)malloc(pf->size * sizeof(unsigned char));
@@ -439,8 +437,7 @@ bdf_read_header(FILE *fp, PMWCFONT pf)
}
/* read bdf font bitmaps, return 0 on error*/
-int
-bdf_read_bitmaps(FILE *fp, PMWCFONT pf)
+int bdf_read_bitmaps(FILE *fp, struct font* pf)
{
long ofs = 0;
int maxwidth = 0;
@@ -494,7 +491,7 @@ bdf_read_bitmaps(FILE *fp, PMWCFONT pf)
continue;
}
if (strequal(buf, "BITMAP")) {
- MWIMAGEBITS *ch_bitmap = pf->bits + ofs;
+ bitmap_t *ch_bitmap = pf->bits + ofs;
int ch_words;
if (encoding < 0)
@@ -520,11 +517,11 @@ bdf_read_bitmaps(FILE *fp, PMWCFONT pf)
pf->width[encoding-pf->firstchar] = width;
/* clear bitmap*/
- memset(ch_bitmap, 0, MWIMAGE_BYTES(width) * pf->height);
+ memset(ch_bitmap, 0, BITMAP_BYTES(width) * pf->height);
- ch_words = MWIMAGE_WORDS(width);
+ ch_words = BITMAP_WORDS(width);
#define BM(row,col) (*(ch_bitmap + ((row)*ch_words) + (col)))
-#define MWIMAGE_NIBBLES (MWIMAGE_BITSPERIMAGE/4)
+#define BITMAP_NIBBLES (BITMAP_BITSPERIMAGE/4)
/* read bitmaps*/
for (i=0; ; ++i) {
@@ -539,30 +536,30 @@ bdf_read_bitmaps(FILE *fp, PMWCFONT pf)
hexnibbles = strlen(buf);
for (k=0; k<ch_words; ++k) {
- int ndx = k * MWIMAGE_NIBBLES;
+ int ndx = k * BITMAP_NIBBLES;
int padnibbles = hexnibbles - ndx;
- MWIMAGEBITS value;
+ bitmap_t value;
if (padnibbles <= 0)
break;
- if (padnibbles >= MWIMAGE_NIBBLES)
+ if (padnibbles >= BITMAP_NIBBLES)
padnibbles = 0;
value = bdf_hexval((unsigned char *)buf,
- ndx, ndx+MWIMAGE_NIBBLES-1-padnibbles);
- value <<= padnibbles * MWIMAGE_NIBBLES;
+ ndx, ndx+BITMAP_NIBBLES-1-padnibbles);
+ value <<= padnibbles * BITMAP_NIBBLES;
BM(pf->height - pf->descent - bby - bbh + i, k) |=
value >> bbx;
/* handle overflow into next image word*/
if (bbx) {
BM(pf->height - pf->descent - bby - bbh + i, k+1) =
- value << (MWIMAGE_BITSPERIMAGE - bbx);
+ value << (BITMAP_BITSPERIMAGE - bbx);
}
}
}
- ofs += MWIMAGE_WORDS(width) * pf->height;
+ ofs += BITMAP_WORDS(width) * pf->height;
continue;
}
@@ -590,7 +587,7 @@ bdf_read_bitmaps(FILE *fp, PMWCFONT pf)
encodetable = 1;
break;
}
- l += MWIMAGE_WORDS(pf->width[i]) * pf->height;
+ l += BITMAP_WORDS(pf->width[i]) * pf->height;
}
if (!encodetable) {
free(pf->offset);
@@ -611,23 +608,25 @@ bdf_read_bitmaps(FILE *fp, PMWCFONT pf)
/* reallocate bits array to actual bits used*/
if (ofs < pf->bits_size) {
- pf->bits = realloc(pf->bits, ofs * sizeof(MWIMAGEBITS));
+ pf->bits = realloc(pf->bits, ofs * sizeof(bitmap_t));
pf->bits_size = ofs;
- } else if (ofs > pf->bits_size) {
- fprintf(stderr, "Warning: DWIDTH spec > max FONTBOUNDINGBOX\n");
- if (ofs > pf->bits_size+EXTRA) {
- fprintf(stderr, "Error: Not enough bits initially allocated\n");
- return 0;
+ }
+ else {
+ if (ofs > pf->bits_size) {
+ fprintf(stderr, "Warning: DWIDTH spec > max FONTBOUNDINGBOX\n");
+ if (ofs > pf->bits_size+EXTRA) {
+ fprintf(stderr, "Error: Not enough bits initially allocated\n");
+ return 0;
+ }
+ pf->bits_size = ofs;
}
- pf->bits_size = ofs;
}
return 1;
}
/* read the next non-comment line, returns buf or NULL if EOF*/
-char *
-bdf_getline(FILE *fp, char *buf, int len)
+char *bdf_getline(FILE *fp, char *buf, int len)
{
int c;
char *b;
@@ -653,36 +652,37 @@ bdf_getline(FILE *fp, char *buf, int len)
}
/* return hex value of portion of buffer*/
-MWIMAGEBITS
-bdf_hexval(unsigned char *buf, int ndx1, int ndx2)
+bitmap_t bdf_hexval(unsigned char *buf, int ndx1, int ndx2)
{
- MWIMAGEBITS val = 0;
+ bitmap_t val = 0;
int i, c;
for (i=ndx1; i<=ndx2; ++i) {
c = buf[i];
if (c >= '0' && c <= '9')
c -= '0';
- else if (c >= 'A' && c <= 'F')
- c = c - 'A' + 10;
- else if (c >= 'a' && c <= 'f')
- c = c - 'a' + 10;
- else c = 0;
+ else
+ if (c >= 'A' && c <= 'F')
+ c = c - 'A' + 10;
+ else
+ if (c >= 'a' && c <= 'f')
+ c = c - 'a' + 10;
+ else
+ c = 0;
val = (val << 4) | c;
}
return val;
}
/* generate C source from in-core font*/
-int
-gen_c_source(PMWCFONT pf, char *path)
+int gen_c_source(struct font* pf, char *path)
{
FILE *ofp;
int i;
int did_defaultchar = 0;
int did_syncmsg = 0;
time_t t = time(0);
- MWIMAGEBITS *ofs = pf->bits;
+ bitmap_t *ofs = pf->bits;
char buf[256];
char obuf[256];
char hdr1[] = {
@@ -704,7 +704,7 @@ gen_c_source(PMWCFONT pf, char *path)
"*/\n"
"\n"
"/* Font character bitmap data. */\n"
- "static MWIMAGEBITS _%s_bits[] = {\n"
+ "static bitmap_t _font_bits[] = {\n"
};
ofp = fopen(path, "w");
@@ -712,7 +712,6 @@ gen_c_source(PMWCFONT pf, char *path)
fprintf(stderr, "Can't create %s\n", path);
return 1;
}
- fprintf(stderr, "Generating %s\n", path);
strcpy(buf, ctime(&t));
buf[strlen(buf)-1] = 0;
@@ -727,8 +726,7 @@ gen_c_source(PMWCFONT pf, char *path)
pf->firstchar+pf->size-1, pf->firstchar+pf->size-1,
pf->defaultchar, pf->defaultchar,
pf->width? "yes": "no",
- pf->copyright? pf->copyright: "",
- pf->name);
+ pf->copyright? pf->copyright: "");
/* generate bitmaps*/
for (i=0; i<pf->size; ++i) {
@@ -736,15 +734,16 @@ gen_c_source(PMWCFONT pf, char *path)
int bitcount = 0;
int width = pf->width ? pf->width[i] : pf->maxwidth;
int height = pf->height;
- MWIMAGEBITS *bits = pf->bits + (pf->offset? pf->offset[i]: (height * i));
- MWIMAGEBITS bitvalue;
+ bitmap_t *bits = pf->bits + (pf->offset? pf->offset[i]: (height * i));
+ bitmap_t bitvalue;
/*
* Generate bitmap bits only if not this index isn't
* the default character in encode map, or the default
* character hasn't been generated yet.
*/
- if (pf->offset && (pf->offset[i] == pf->offset[pf->defaultchar-pf->firstchar])) {
+ if (pf->offset &&
+ (pf->offset[i] == pf->offset[pf->defaultchar-pf->firstchar])) {
if (did_defaultchar)
continue;
did_defaultchar = 1;
@@ -763,13 +762,13 @@ gen_c_source(PMWCFONT pf, char *path)
if (x == 0) fprintf(ofp, " |");
if (bitcount <= 0) {
- bitcount = MWIMAGE_BITSPERIMAGE;
+ bitcount = BITMAP_BITSPERIMAGE;
bitvalue = *bits++;
}
- fprintf(ofp, MWIMAGE_TESTBIT(bitvalue)? "*": " ");
+ fprintf(ofp, BITMAP_TESTBIT(bitvalue)? "*": " ");
- bitvalue = MWIMAGE_SHIFTBIT(bitvalue);
+ bitvalue = BITMAP_SHIFTBIT(bitvalue);
--bitcount;
if (++x == width) {
fprintf(ofp, "|\n");
@@ -779,13 +778,15 @@ gen_c_source(PMWCFONT pf, char *path)
}
}
fprintf(ofp, " +");
- for (x=0; x<width; ++x) fprintf(ofp, "-");
+ for (x=0; x<width; ++x)
+ fprintf(ofp, "-");
fprintf(ofp, "+ */\n");
- } else
+ }
+ else
fprintf(ofp, " */\n");
bits = pf->bits + (pf->offset? pf->offset[i]: (pf->height * i));
- for (x=MWIMAGE_WORDS(width)*pf->height; x>0; --x) {
+ for (x=BITMAP_WORDS(width)*pf->height; x>0; --x) {
fprintf(ofp, "0x%04x,\n", *bits);
if (!did_syncmsg && *bits++ != *ofs++) {
fprintf(stderr, "Warning: found encoding values in non-sorted order (not an error).\n");
@@ -793,80 +794,79 @@ gen_c_source(PMWCFONT pf, char *path)
}
}
}
- fprintf(ofp, "};\n\n");
+ fprintf(ofp, "};\n\n");
if (pf->offset) {
/* output offset table*/
fprintf(ofp, "/* Character->glyph mapping. */\n"
- "static unsigned long _%s_offset[] = {\n",
- pf->name);
+ "static unsigned long _sysfont_offset[] = {\n");
for (i=0; i<pf->size; ++i)
- fprintf(ofp, " %ld,\t/* (0x%02x) */\n", pf->offset[i], i+pf->firstchar);
+ fprintf(ofp, " %ld,\t/* (0x%02x) */\n",
+ pf->offset[i], i+pf->firstchar);
fprintf(ofp, "};\n\n");
}
/* output width table for proportional fonts*/
if (pf->width) {
- fprintf(ofp, "/* Character width data. */\n"
- "static unsigned char _%s_width[] = {\n",
- pf->name);
+ fprintf(ofp, "/* Character width data. */\n"
+ "static unsigned char _sysfont_width[] = {\n");
for (i=0; i<pf->size; ++i)
- fprintf(ofp, " %d,\t/* (0x%02x) */\n", pf->width[i], i+pf->firstchar);
+ fprintf(ofp, " %d,\t/* (0x%02x) */\n",
+ pf->width[i], i+pf->firstchar);
fprintf(ofp, "};\n\n");
}
- /* output MWCFONT struct*/
+ /* output struct font struct*/
if (pf->offset)
- sprintf(obuf, "_%s_offset,", pf->name);
- else sprintf(obuf, "0, /* no encode table*/");
+ sprintf(obuf, "_sysfont_offset,");
+ else
+ sprintf(obuf, "0, /* no encode table*/");
+
if (pf->width)
- sprintf(buf, "_%s_width,", pf->name);
- else sprintf(buf, "0, /* fixed width*/");
+ sprintf(buf, "_sysfont_width,");
+ else
+ sprintf(buf, "0, /* fixed width*/");
+
fprintf(ofp, "/* Exported structure definition. */\n"
- "MWCFONT font_%s = {\n"
+ "struct font sysfont = {\n"
" \"%s\",\n"
" %d,\n"
" %d,\n"
" %d,\n"
" %d,\n"
" %d,\n"
- " _%s_bits,\n"
+ " _font_bits,\n"
" %s\n"
" %s\n"
" %d,\n"
- " sizeof(_%s_bits)/sizeof(MWIMAGEBITS),\n"
+ " sizeof(_font_bits)/sizeof(bitmap_t),\n"
"};\n",
- pf->name, pf->name,
+ pf->name,
pf->maxwidth, pf->height,
pf->ascent,
pf->firstchar,
pf->size,
- pf->name,
obuf,
buf,
- pf->defaultchar,
- pf->name);
+ pf->defaultchar);
return 0;
}
-static int
-WRITEBYTE(FILE *fp, unsigned char c)
+static int writebyte(FILE *fp, unsigned char c)
{
return putc(c, fp) != EOF;
}
-static int
-WRITESHORT(FILE *fp, unsigned short s)
+static int writeshort(FILE *fp, unsigned short s)
{
putc(s, fp);
return putc(s>>8, fp) != EOF;
}
-static int
-WRITELONG(FILE *fp, unsigned long l)
+static int writelong(FILE *fp, unsigned long l)
{
putc(l, fp);
putc(l>>8, fp);
@@ -874,30 +874,28 @@ WRITELONG(FILE *fp, unsigned long l)
return putc(l>>24, fp) != EOF;
}
-static int
-WRITESTR(FILE *fp, char *str, int count)
+static int writestr(FILE *fp, char *str, int count)
{
return fwrite(str, 1, count, fp) == count;
}
-static int
-WRITESTRPAD(FILE *fp, char *str, int totlen)
+static int writestrpad(FILE *fp, char *str, int totlen)
{
int ret;
- while (str && *str && totlen > 0)
+ while (str && *str && totlen > 0) {
if (*str) {
ret = putc(*str++, fp);
--totlen;
}
+ }
while (--totlen >= 0)
ret = putc(' ', fp);
return ret;
}
/* generate .fnt format file from in-core font*/
-int
-gen_fnt_file(PMWCFONT pf, char *path)
+int gen_fnt_file(struct font* pf, char *path)
{
FILE *ofp;
int i;
@@ -907,44 +905,43 @@ gen_fnt_file(PMWCFONT pf, char *path)
fprintf(stderr, "Can't create %s\n", path);
return 1;
}
- fprintf(stderr, "Generating %s\n", path);
/* write magic and version #*/
- WRITESTR(ofp, VERSION, 4);
+ writestr(ofp, VERSION, 4);
/* internal font name*/
- WRITESTRPAD(ofp, pf->name, 64);
+ writestrpad(ofp, pf->name, 64);
/* copyright*/
- WRITESTRPAD(ofp, pf->copyright, 256);
+ writestrpad(ofp, pf->copyright, 256);
/* font info*/
- WRITESHORT(ofp, pf->maxwidth);
- WRITESHORT(ofp, pf->height);
- WRITESHORT(ofp, pf->ascent);
- WRITESHORT(ofp, 0);
- WRITELONG(ofp, pf->firstchar);
- WRITELONG(ofp, pf->defaultchar);
- WRITELONG(ofp, pf->size);
+ writeshort(ofp, pf->maxwidth);
+ writeshort(ofp, pf->height);
+ writeshort(ofp, pf->ascent);
+ writeshort(ofp, 0);
+ writelong(ofp, pf->firstchar);
+ writelong(ofp, pf->defaultchar);
+ writelong(ofp, pf->size);
/* variable font data sizes*/
- WRITELONG(ofp, pf->bits_size); /* # words of MWIMAGEBITS*/
- WRITELONG(ofp, pf->offset? pf->size: 0); /* # longs of offset*/
- WRITELONG(ofp, pf->width? pf->size: 0); /* # bytes of width*/
+ writelong(ofp, pf->bits_size); /* # words of bitmap_t*/
+ writelong(ofp, pf->offset? pf->size: 0); /* # longs of offset*/
+ writelong(ofp, pf->width? pf->size: 0); /* # bytes of width*/
/* variable font data*/
for (i=0; i<pf->bits_size; ++i)
- WRITESHORT(ofp, pf->bits[i]);
+ writeshort(ofp, pf->bits[i]);
if (ftell(ofp) & 2)
- WRITESHORT(ofp, 0); /* pad to 32-bit boundary*/
+ writeshort(ofp, 0); /* pad to 32-bit boundary*/
if (pf->offset)
for (i=0; i<pf->size; ++i)
- WRITELONG(ofp, pf->offset[i]);
+ writelong(ofp, pf->offset[i]);
if (pf->width)
for (i=0; i<pf->size; ++i)
- WRITEBYTE(ofp, pf->width[i]);
+ writebyte(ofp, pf->width[i]);
fclose(ofp);
return 0;
diff --git a/tools/loadrbf.c b/tools/loadrbf.c
deleted file mode 100644
index 769195ea99..0000000000
--- a/tools/loadrbf.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Load an rbf font, store in incore format and display - or -
- * Read an incore font and display it.
- *
- * If FONT defined, just link in FONT and display it
- * otherwise, load av[1] and display it
- *
- * Copyright (c) 2002 by Greg Haerr <greg@censoft.com>
- */
-#include <stdio.h>
-
-/* this should go in a library...*/
-#define DEBUGF printf
-#include "../firmware/loadfont.c"
-
-#ifdef FONT
-extern MWCFONT FONT;
-PMWCFONT pf = &FONT;
-#endif
-
-/* printf display an incore font*/
-void
-dispfont(PMWCFONT pf)
-{
- int i;
-
- printf("Font: '%s' %dx%d ", pf->name, pf->maxwidth, pf->height);
- printf("0x%02x-0x%02x (size %d)\n", pf->firstchar,
- pf->firstchar+pf->size, pf->size);
- printf("\tDefault char 0x%02x ", pf->defaultchar);
- printf("(%s width)\n", pf->width? "proportional": "fixed");
-
- for (i=0; i<pf->size; ++i) {
- int width = pf->width ? pf->width[i] : pf->maxwidth;
- int height = pf->height;
- int x;
- int bitcount = 0;
- MWIMAGEBITS *bits = pf->bits + (pf->offset? pf->offset[i]: (height * i));
- MWIMAGEBITS bitvalue;
-
- printf("\nCharacter 0x%02x (width %d)\n", i+pf->firstchar, width);
- printf("+");
- for (x=0; x<width; ++x) printf("-");
- printf("+\n");
-
- x = 0;
- while (height > 0) {
- if (x == 0) printf("|");
-
- if (bitcount <= 0) {
- bitcount = MWIMAGE_BITSPERIMAGE;
- bitvalue = *bits++;
- }
-
- printf( MWIMAGE_TESTBIT(bitvalue)? "*": " ");
-
- bitvalue = MWIMAGE_SHIFTBIT(bitvalue);
- --bitcount;
- if (++x == width) {
- printf("|\n");
- --height;
- x = 0;
- bitcount = 0;
- }
- }
- printf("+");
- for (x=0; x<width; ++x) printf("-");
- printf("+\n");
- }
-}
-
-int
-main(int ac, char **av)
-{
- PMWCFONT pf;
- MWCFONT font;
-#ifdef FONT
- /* if FONT defined, just display linked-in font*/
- extern MWCFONT FONT;
- pf = &FONT;
-#else
- if (ac != 2) {
- printf("usage: loadrbf font.rbf\n");
- exit(1);
- }
-
- pf = rbf_load_font(av[1], &font);
- if (!pf) {
- printf("loadrbf: read error: %s\n", av[1]);
- exit(1);
- }
-#endif
- dispfont(pf);
- return 0;
-}
diff --git a/tools/writerbf.c b/tools/writerbf.c
deleted file mode 100644
index 3bd55a7c80..0000000000
--- a/tools/writerbf.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * writerbf - write an incore font in .rbf format.
- * Must be compiled with -DFONT=font_name and linked
- * with compiled in font.
- *
- * Copyright (c) 2002 by Greg Haerr <greg@censoft.com>
- */
-#include <stdio.h>
-#include "../firmware/font.h"
-
-extern MWCFONT FONT;
-PMWCFONT pf = &FONT;
-
-static int
-WRITEBYTE(FILE *fp, unsigned char c)
-{
- return putc(c, fp) != EOF;
-}
-
-static int
-WRITESHORT(FILE *fp, unsigned short s)
-{
- putc(s, fp);
- return putc(s>>8, fp) != EOF;
-}
-
-static int
-WRITELONG(FILE *fp, unsigned long l)
-{
- putc(l, fp);
- putc(l>>8, fp);
- putc(l>>16, fp);
- return putc(l>>24, fp) != EOF;
-}
-
-static int
-WRITESTR(FILE *fp, char *str, int count)
-{
- return fwrite(str, 1, count, fp) == count;
-}
-
-static int
-WRITESTRPAD(FILE *fp, char *str, int totlen)
-{
- int ret;
-
- while (*str && totlen > 0)
- if (*str) {
- ret = putc(*str++, fp);
- --totlen;
- }
- while (--totlen >= 0)
- ret = putc(' ', fp);
- return ret;
-}
-
-/* write font, < 0 return is error*/
-int
-rbf_write_font(PMWCFONT pf)
-{
- FILE *ofp;
- int i;
- char name[256];
-
- sprintf(name, "%s.fnt", pf->name);
- ofp = fopen(name, "wb");
- if (!ofp)
- return -1;
-
- /* write magic and version #*/
- WRITESTR(ofp, VERSION, 4);
-
- /* internal font name*/
- WRITESTRPAD(ofp, pf->name, 64);
-
- /* copyright - FIXME not converted with bdf2c*/
- WRITESTRPAD(ofp, " ", 256);
-
- /* font info*/
- WRITESHORT(ofp, pf->maxwidth);
- WRITESHORT(ofp, pf->height);
- WRITESHORT(ofp, pf->ascent);
- WRITESHORT(ofp, 0);
- WRITELONG(ofp, pf->firstchar);
- WRITELONG(ofp, pf->defaultchar);
- WRITELONG(ofp, pf->size);
-
- /* variable font data sizes*/
- WRITELONG(ofp, pf->bits_size); /* # words of MWIMAGEBITS*/
- WRITELONG(ofp, pf->offset? pf->size: 0); /* # longs of offset*/
- WRITELONG(ofp, pf->width? pf->size: 0); /* # bytes of width*/
-
- /* variable font data*/
- for (i=0; i<pf->bits_size; ++i)
- WRITESHORT(ofp, pf->bits[i]);
- if (ftell(ofp) & 2)
- WRITESHORT(ofp, 0); /* pad to 32-bit boundary*/
-
- if (pf->offset)
- for (i=0; i<pf->size; ++i)
- WRITELONG(ofp, pf->offset[i]);
-
- if (pf->width)
- for (i=0; i<pf->size; ++i)
- WRITEBYTE(ofp, pf->width[i]);
-}
-
-int
-main(int ac, char **av)
-{
- rbf_write_font(pf);
-}
diff --git a/uisimulator/win32/Makefile b/uisimulator/win32/Makefile
index 1b0464779c..382e71b886 100644
--- a/uisimulator/win32/Makefile
+++ b/uisimulator/win32/Makefile
@@ -63,7 +63,7 @@ CFLAGS = $(DEBUG) $(DEFINES) $(INCLUDES) -W -Wall -mwindows
APPCFLAGS = $(DEBUG) $(DEFINES) $(APPINCLUDES) -W -Wall -mwindows
FIRMSRCS = lcd.c power.c sprintf.c id3.c usb.c \
- mpeg.c powermgmt.c font.c loadfont.c X5x8.c
+ mpeg.c powermgmt.c font.c sysfont.c
APPS = main.c tree.c menu.c credits.c main_menu.c icons.c \
playlist.c showtext.c wps.c wps-display.c settings.c status.c
@@ -187,11 +187,9 @@ $(OBJDIR)/id3.o: $(FIRMWAREDIR)/id3.c
$(OBJDIR)/font.o: $(FIRMWAREDIR)/font.c
$(CC) $(CFLAGS) -c $< -o $@
-$(OBJDIR)/loadfont.o: $(FIRMWAREDIR)/loadfont.c
- $(CC) $(CFLAGS) -c $< -o $@
-
-$(OBJDIR)/X5x8.o: $(FIRMWAREDIR)/X5x8.c
- $(CC) $(CFLAGS) -c $< -o $@
+$(OBJDIR)/sysfont.o: $(FIRMWAREDIR)/fonts/clR6x8.bdf
+ $(TOOLSDIR)/convbdf -c -o $(OBJDIR)/sysfont.c $<
+ $(CC) $(APPCFLAGS) -c $(OBJDIR)/sysfont.c -o $@
$(OBJDIR)/status.o: $(APPDIR)/status.c
$(CC) $(APPCFLAGS) -c $< -o $@
diff --git a/uisimulator/x11/Makefile b/uisimulator/x11/Makefile
index 821e13553f..3f9b999acb 100644
--- a/uisimulator/x11/Makefile
+++ b/uisimulator/x11/Makefile
@@ -78,7 +78,7 @@ CFLAGS = $(DEBUG) $(DEFINES) $(INCLUDES) -W -Wall
APPCFLAGS = $(DEBUG) $(DEFINES) -DAPPSVERSION=\"$(VERSION)\" $(APPINCLUDES) -W -Wall
FIRMSRCS = lcd.c sprintf.c id3.c debug.c usb.c mpeg.c power.c\
- powermgmt.c font.c X5x8.c loadfont.c panic.c
+ powermgmt.c font.c panic.c sysfont.c
APPS = main.c tree.c menu.c credits.c main_menu.c\
playlist.c showtext.c wps.c wps-display.c settings.c status.c icons.c
@@ -221,24 +221,13 @@ $(OBJDIR)/lang.o: $(APPDIR)/lang/$(LANGUAGE).lang
$(OBJDIR)/lcd.o: $(DRIVERS)/lcd.c
$(CC) $(CFLAGS) -c $< -o $@
-$(OBJDIR)/X5x8.o: $(FIRMWAREDIR)/X5x8.c
- $(CC) $(APPCFLAGS) -c $< -o $@
-
-$(OBJDIR)/X6x9.o: $(FIRMWAREDIR)/X6x9.c
- $(CC) $(APPCFLAGS) -c $< -o $@
-
-$(OBJDIR)/timR08.o: $(FIRMWAREDIR)/timR08.c
- $(CC) $(APPCFLAGS) -c $< -o $@
-
-$(OBJDIR)/courB08.o: $(FIRMWAREDIR)/courB08.c
- $(CC) $(APPCFLAGS) -c $< -o $@
+$(OBJDIR)/sysfont.o: $(FIRMWAREDIR)/fonts/clR6x8.bdf
+ $(TOOLSDIR)/convbdf -c -o $(OBJDIR)/sysfont.c $<
+ $(CC) $(APPCFLAGS) -c $(OBJDIR)/sysfont.c -o $@
$(OBJDIR)/font.o: $(FIRMWAREDIR)/font.c
$(CC) $(APPCFLAGS) -c $< -o $@
-$(OBJDIR)/loadfont.o: $(FIRMWAREDIR)/loadfont.c
- $(CC) $(APPCFLAGS) -c $< -o $@
-
$(OBJDIR)/settings.o: $(APPDIR)/settings.c
$(CC) $(APPCFLAGS) -c $< -o $@