summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Makefile95
-rw-r--r--src/config.c7
-rw-r--r--src/config.h3
-rw-r--r--src/font.h1201
-rw-r--r--src/gfx.c31
-rw-r--r--src/gfx.h11
-rw-r--r--src/gui.c149
-rw-r--r--src/gui.h45
-rw-r--r--src/main.c22
9 files changed, 948 insertions, 616 deletions
diff --git a/src/Makefile b/src/Makefile
index 2d87ddc..9486c2b 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -18,7 +18,7 @@
#
# -------------------------------------------------------------------------
#
-# $Id: Makefile,v 1.3 2003-12-19 01:14:08 ianc Exp $
+# $Id: Makefile,v 1.4 2003-12-19 19:31:57 ianc Exp $
#
@@ -36,12 +36,14 @@ SOURCE = main.c \
zx81.c \
config.c \
gfx.c \
+ gui.c \
exit.c
OBJECTS = main.o \
zx81.o \
config.o \
gfx.o \
+ gui.o \
exit.o
EMMA = emma
@@ -70,3 +72,94 @@ depend:
cd z80; make depend ; cd ..
# DO NOT DELETE THIS LINE -- make depend depends on it
+
+main.o: /usr/include/stdlib.h /usr/include/sys/cdefs.h
+main.o: /usr/include/sys/_types.h /usr/include/machine/_types.h
+main.o: /usr/include/stdio.h /usr/local/include/SDL/SDL.h
+main.o: /usr/local/include/SDL/SDL_main.h /usr/local/include/SDL/SDL_types.h
+main.o: /usr/local/include/SDL/SDL_getenv.h
+main.o: /usr/local/include/SDL/SDL_error.h
+main.o: /usr/local/include/SDL/begin_code.h
+main.o: /usr/local/include/SDL/close_code.h
+main.o: /usr/local/include/SDL/SDL_rwops.h /usr/local/include/SDL/SDL_timer.h
+main.o: /usr/local/include/SDL/SDL_audio.h
+main.o: /usr/local/include/SDL/SDL_byteorder.h
+main.o: /usr/local/include/SDL/SDL_cdrom.h
+main.o: /usr/local/include/SDL/SDL_joystick.h
+main.o: /usr/local/include/SDL/SDL_events.h
+main.o: /usr/local/include/SDL/SDL_active.h
+main.o: /usr/local/include/SDL/SDL_keyboard.h
+main.o: /usr/local/include/SDL/SDL_keysym.h
+main.o: /usr/local/include/SDL/SDL_mouse.h /usr/local/include/SDL/SDL_video.h
+main.o: /usr/local/include/SDL/SDL_mutex.h /usr/local/include/SDL/SDL_quit.h
+main.o: /usr/local/include/SDL/SDL_version.h z80/z80.h zx81.h gfx.h gui.h
+main.o: config.h exit.h
+zx81.o: /usr/include/stdlib.h /usr/include/sys/cdefs.h
+zx81.o: /usr/include/sys/_types.h /usr/include/machine/_types.h
+zx81.o: /usr/include/stdio.h /usr/include/string.h /usr/include/strings.h
+zx81.o: zx81.h z80/z80.h config.h exit.h
+config.o: /usr/include/stdlib.h /usr/include/sys/cdefs.h
+config.o: /usr/include/sys/_types.h /usr/include/machine/_types.h
+config.o: /usr/include/stdio.h /usr/include/string.h /usr/include/strings.h
+config.o: exit.h config.h
+gfx.o: /usr/include/stdlib.h /usr/include/sys/cdefs.h
+gfx.o: /usr/include/sys/_types.h /usr/include/machine/_types.h
+gfx.o: /usr/include/stdio.h /usr/include/string.h /usr/include/strings.h
+gfx.o: /usr/include/stdarg.h gfx.h /usr/local/include/SDL/SDL.h
+gfx.o: /usr/local/include/SDL/SDL_main.h /usr/local/include/SDL/SDL_types.h
+gfx.o: /usr/local/include/SDL/SDL_getenv.h /usr/local/include/SDL/SDL_error.h
+gfx.o: /usr/local/include/SDL/begin_code.h
+gfx.o: /usr/local/include/SDL/close_code.h /usr/local/include/SDL/SDL_rwops.h
+gfx.o: /usr/local/include/SDL/SDL_timer.h /usr/local/include/SDL/SDL_audio.h
+gfx.o: /usr/local/include/SDL/SDL_byteorder.h
+gfx.o: /usr/local/include/SDL/SDL_cdrom.h
+gfx.o: /usr/local/include/SDL/SDL_joystick.h
+gfx.o: /usr/local/include/SDL/SDL_events.h
+gfx.o: /usr/local/include/SDL/SDL_active.h
+gfx.o: /usr/local/include/SDL/SDL_keyboard.h
+gfx.o: /usr/local/include/SDL/SDL_keysym.h /usr/local/include/SDL/SDL_mouse.h
+gfx.o: /usr/local/include/SDL/SDL_video.h /usr/local/include/SDL/SDL_mutex.h
+gfx.o: /usr/local/include/SDL/SDL_quit.h /usr/local/include/SDL/SDL_version.h
+gfx.o: exit.h config.h font.h
+gui.o: /usr/include/stdlib.h /usr/include/sys/cdefs.h
+gui.o: /usr/include/sys/_types.h /usr/include/machine/_types.h
+gui.o: /usr/include/stdio.h /usr/include/string.h /usr/include/strings.h
+gui.o: /usr/include/stdarg.h gui.h /usr/local/include/SDL/SDL.h
+gui.o: /usr/local/include/SDL/SDL_main.h /usr/local/include/SDL/SDL_types.h
+gui.o: /usr/local/include/SDL/SDL_getenv.h /usr/local/include/SDL/SDL_error.h
+gui.o: /usr/local/include/SDL/begin_code.h
+gui.o: /usr/local/include/SDL/close_code.h /usr/local/include/SDL/SDL_rwops.h
+gui.o: /usr/local/include/SDL/SDL_timer.h /usr/local/include/SDL/SDL_audio.h
+gui.o: /usr/local/include/SDL/SDL_byteorder.h
+gui.o: /usr/local/include/SDL/SDL_cdrom.h
+gui.o: /usr/local/include/SDL/SDL_joystick.h
+gui.o: /usr/local/include/SDL/SDL_events.h
+gui.o: /usr/local/include/SDL/SDL_active.h
+gui.o: /usr/local/include/SDL/SDL_keyboard.h
+gui.o: /usr/local/include/SDL/SDL_keysym.h /usr/local/include/SDL/SDL_mouse.h
+gui.o: /usr/local/include/SDL/SDL_video.h /usr/local/include/SDL/SDL_mutex.h
+gui.o: /usr/local/include/SDL/SDL_quit.h /usr/local/include/SDL/SDL_version.h
+gui.o: gfx.h exit.h
+exit.o: /usr/include/stdlib.h /usr/include/sys/cdefs.h
+exit.o: /usr/include/sys/_types.h /usr/include/machine/_types.h
+exit.o: /usr/include/stdarg.h exit.h /usr/local/include/SDL/SDL.h
+exit.o: /usr/local/include/SDL/SDL_main.h /usr/local/include/SDL/SDL_types.h
+exit.o: /usr/local/include/SDL/SDL_getenv.h
+exit.o: /usr/local/include/SDL/SDL_error.h
+exit.o: /usr/local/include/SDL/begin_code.h
+exit.o: /usr/local/include/SDL/close_code.h
+exit.o: /usr/local/include/SDL/SDL_rwops.h /usr/include/stdio.h
+exit.o: /usr/local/include/SDL/SDL_timer.h /usr/local/include/SDL/SDL_audio.h
+exit.o: /usr/local/include/SDL/SDL_byteorder.h
+exit.o: /usr/local/include/SDL/SDL_cdrom.h
+exit.o: /usr/local/include/SDL/SDL_joystick.h
+exit.o: /usr/local/include/SDL/SDL_events.h
+exit.o: /usr/local/include/SDL/SDL_active.h
+exit.o: /usr/local/include/SDL/SDL_keyboard.h
+exit.o: /usr/local/include/SDL/SDL_keysym.h
+exit.o: /usr/local/include/SDL/SDL_mouse.h /usr/local/include/SDL/SDL_video.h
+exit.o: /usr/local/include/SDL/SDL_mutex.h /usr/local/include/SDL/SDL_quit.h
+exit.o: /usr/local/include/SDL/SDL_version.h
+emma.o: /usr/include/stdlib.h /usr/include/sys/cdefs.h
+emma.o: /usr/include/sys/_types.h /usr/include/machine/_types.h
+emma.o: /usr/include/stdio.h z80/z80.h
diff --git a/src/config.c b/src/config.c
index edff062..3fdb00a 100644
--- a/src/config.c
+++ b/src/config.c
@@ -44,7 +44,8 @@ static const char ident_h[]=EZX81_CONFIG_H;
/* ---------------------------------------- CONFIG
*/
-static char rompath[FILENAME_MAX]="zx81.rom";
+static char rompath[FILENAME_MAX]="./zx81.rom";
+static char tapedir[FILENAME_MAX]=".";
static int fullscreen=FALSE;
static int memsize=16;
static int frames=50;
@@ -57,6 +58,7 @@ static const struct
int is_int;
} config[]= {
{"rompath", rompath, FALSE},
+ {"tapedir", tapedir, FALSE},
{"fullscreen", &fullscreen, TRUE},
{"memsize", &memsize, TRUE},
{"frames", &frames, TRUE},
@@ -160,7 +162,8 @@ const char *SConfig(SConfigVar v)
{
static const char *vars[]=
{
- rompath
+ rompath,
+ tapedir
};
return vars[v];
diff --git a/src/config.h b/src/config.h
index d655998..d937cb6 100644
--- a/src/config.h
+++ b/src/config.h
@@ -43,7 +43,8 @@ typedef enum
*/
typedef enum
{
- CONF_ROMFILE
+ CONF_ROMFILE,
+ CONF_TAPEDIR
} SConfigVar;
diff --git a/src/font.h b/src/font.h
index 440488b..f7aabbe 100644
--- a/src/font.h
+++ b/src/font.h
@@ -97,24 +97,24 @@ static const FontChar font[128]=
0,0,0,0,0,0,0,0,
},
{ /* 07 FONT_CURSOR */
- 0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,
+ 1,1,1,1,1,1,1,1,
+ 1,0,1,1,1,1,1,1,
+ 1,0,1,1,1,1,1,1,
+ 1,0,1,1,1,1,1,1,
+ 1,0,1,1,1,1,1,1,
+ 1,0,1,1,1,1,1,1,
+ 1,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,
},
{ /* 08 FONT_COPYRIGHT */
- 0,0,1,1,1,0,0,0,
- 0,1,0,0,0,1,0,0,
- 1,0,0,1,1,0,1,0,
- 1,0,1,0,0,0,1,0,
- 1,0,0,1,1,0,1,0,
- 0,1,0,0,0,1,0,0,
- 0,0,1,1,1,0,0,0,
- 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 1,0,0,1,1,0,0,1,
+ 1,0,1,0,0,0,0,1,
+ 1,0,1,0,0,0,0,1,
+ 1,0,0,1,1,0,0,1,
+ 0,1,0,0,0,0,1,0,
+ 0,0,1,1,1,1,0,0,
},
NULLCHARDEF, /* 09 */
@@ -141,7 +141,7 @@ static const FontChar font[128]=
NULLCHARDEF, /* 1e */
NULLCHARDEF, /* 1f */
- { /* 20 ' ' */
+ { /* 20 ' ' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
@@ -151,17 +151,18 @@ static const FontChar font[128]=
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 21 '!' */
- 0,1,0,0,0,0,0,0,
- 0,1,0,0,0,0,0,0,
- 0,1,0,0,0,0,0,0,
- 0,1,0,0,0,0,0,0,
- 0,1,0,0,0,0,0,0,
+ { /* 21 '!' */
0,0,0,0,0,0,0,0,
- 0,1,0,0,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 22 '"' */
+ { /* 22 '"' */
+ 0,0,0,0,0,0,0,0,
0,0,1,0,0,1,0,0,
0,0,1,0,0,1,0,0,
0,0,0,0,0,0,0,0,
@@ -169,50 +170,49 @@ static const FontChar font[128]=
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,
},
- { /* 23 '#' */
- 0,0,1,0,1,0,0,0,
- 0,0,1,0,1,0,0,0,
- 1,1,1,1,1,1,1,0,
- 0,0,1,0,1,0,0,0,
- 1,1,1,1,1,1,1,0,
- 0,0,1,0,1,0,0,0,
- 0,0,1,0,1,0,0,0,
+ { /* 23 '#' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,0,0,1,0,0,
+ 0,1,1,1,1,1,1,0,
+ 0,0,1,0,0,1,0,0,
+ 0,0,1,0,0,1,0,0,
+ 0,1,1,1,1,1,1,0,
+ 0,0,1,0,0,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 24 '$' */
- 0,0,0,1,0,0,0,0,
- 0,0,1,1,1,1,0,0,
- 0,1,0,1,0,0,0,0,
- 0,0,1,1,1,0,0,0,
- 0,0,0,1,0,1,0,0,
- 0,1,1,1,1,0,0,0,
- 0,0,0,1,0,0,0,0,
+ { /* 24 '$' */
0,0,0,0,0,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,1,1,1,1,1,0,
+ 0,0,1,0,1,0,0,0,
+ 0,0,1,1,1,1,1,0,
+ 0,0,0,0,1,0,1,0,
+ 0,0,1,1,1,1,1,0,
+ 0,0,0,0,1,0,0,0,
},
- { /* 25 '%' */
- 0,0,0,0,0,0,1,0,
+ { /* 25 '%' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,1,0,0,0,1,0,
0,1,1,0,0,1,0,0,
- 0,1,1,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
0,0,0,1,0,0,0,0,
- 0,0,1,0,0,0,0,0,
+ 0,0,1,0,0,1,1,0,
0,1,0,0,0,1,1,0,
- 1,0,0,0,0,1,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 26 '&' */
- 0,1,1,1,0,0,0,0,
- 1,0,0,0,1,0,0,0,
- 1,0,0,0,1,0,0,0,
- 0,1,1,1,0,0,0,0,
- 1,0,0,0,1,0,1,0,
- 1,0,0,0,0,1,0,0,
- 0,1,1,1,1,0,1,0,
+ { /* 26 '&' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,1,0,1,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,1,0,1,0,1,0,
+ 0,1,0,0,0,1,0,0,
+ 0,0,1,1,1,0,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 27 ''' */
- 0,0,0,0,0,1,0,0,
+ { /* 27 ''' */
+ 0,0,0,0,0,0,0,0,
0,0,0,0,1,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,0,
@@ -221,557 +221,557 @@ static const FontChar font[128]=
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 28 '(' */
+ { /* 28 '(' */
+ 0,0,0,0,0,0,0,0,
0,0,0,0,0,1,0,0,
0,0,0,0,1,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
0,0,0,0,1,0,0,0,
0,0,0,0,0,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 29 ')' */
+ { /* 29 ')' */
+ 0,0,0,0,0,0,0,0,
0,0,1,0,0,0,0,0,
0,0,0,1,0,0,0,0,
- 0,0,0,0,1,0,0,0,
- 0,0,0,0,1,0,0,0,
- 0,0,0,0,1,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 2a '*' */
- 0,0,0,1,0,0,0,0,
- 0,1,0,1,0,1,0,0,
- 0,0,1,1,1,0,0,0,
- 1,1,1,1,1,1,1,0,
- 0,0,1,1,1,0,0,0,
- 0,1,0,1,0,1,0,0,
- 0,0,0,1,0,0,0,0,
+ { /* 2a '*' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,1,0,1,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,1,1,1,1,1,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,1,0,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 2b '+' */
+ { /* 2b '+' */
0,0,0,0,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,1,1,1,1,1,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,1,1,1,1,1,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 2c ',' */
+ { /* 2c ',' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,1,0,0,0,0,0,
},
- { /* 2d '-' */
+ { /* 2d '-' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 0,1,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,1,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 2e '.' */
- 0,0,0,0,0,0,0,0,
+ { /* 2e '.' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 0,0,0,1,0,0,0,0,
+ 0,0,0,1,1,0,0,0,
+ 0,0,0,1,1,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 2f '/' */
+ { /* 2f '/' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
0,0,0,0,0,0,1,0,
0,0,0,0,0,1,0,0,
0,0,0,0,1,0,0,0,
0,0,0,1,0,0,0,0,
0,0,1,0,0,0,0,0,
- 0,1,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 30 '0' */
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,1,1,0,
- 1,0,0,0,1,0,1,0,
- 1,0,0,1,0,0,1,0,
- 1,0,1,0,0,0,1,0,
- 1,1,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
+ { /* 30 '0' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,1,1,0,
+ 0,1,0,0,1,0,1,0,
+ 0,1,0,1,0,0,1,0,
+ 0,1,1,0,0,0,1,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 31 '1' */
- 0,0,0,1,0,0,0,0,
- 0,0,1,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,1,1,1,0,0,0,
+ { /* 31 '1' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,1,1,0,0,0,
+ 0,0,1,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,1,1,1,1,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 32 '2' */
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
+ { /* 32 '2' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
0,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,1,1,1,1,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 33 '3' */
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 0,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
+ { /* 33 '3' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,0,0,1,1,0,0,
0,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 34 '4' */
- 1,0,0,0,0,0,0,0,
- 1,0,0,1,0,0,0,0,
- 1,0,0,1,0,0,0,0,
- 1,1,1,1,1,1,1,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
+ { /* 34 '4' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,1,1,0,0,0,
+ 0,0,1,0,1,0,0,0,
+ 0,1,0,0,1,0,0,0,
+ 0,1,1,1,1,1,1,0,
+ 0,0,0,0,1,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 35 '5' */
- 1,1,1,1,1,1,1,0,
- 1,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,0,0,
- 0,0,0,0,0,0,1,0,
- 0,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
+ { /* 35 '5' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,1,1,1,1,1,0,
+ 0,1,0,0,0,0,0,0,
0,1,1,1,1,1,0,0,
+ 0,0,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 36 '6' */
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
+ { /* 36 '6' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,0,0,0,
0,1,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 37 '7' */
- 1,1,1,1,1,1,1,0,
+ { /* 37 '7' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,1,1,1,1,1,0,
+ 0,0,0,0,0,0,1,0,
0,0,0,0,0,1,0,0,
0,0,0,0,1,0,0,0,
0,0,0,1,0,0,0,0,
- 0,0,1,0,0,0,0,0,
- 0,1,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 38 '8' */
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
+ { /* 38 '8' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 39 '9' */
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,1,0,
+ { /* 39 '9' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,1,1,1,1,1,0,
0,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 3a ':' */
+ { /* 3a ':' */
0,0,0,0,0,0,0,0,
- 0,0,1,0,0,0,0,0,
- 0,0,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 0,0,1,0,0,0,0,0,
- 0,0,1,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
},
- { /* 3b ';' */
+ { /* 3b ';' */
0,0,0,0,0,0,0,0,
- 0,0,1,0,0,0,0,0,
- 0,0,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 0,0,1,0,0,0,0,0,
- 0,0,1,0,0,0,0,0,
- 0,1,0,0,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- },
- { /* 3c '<' */
- 0,0,0,0,1,0,0,0,
+ 0,0,0,1,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,1,0,0,0,0,0,
- 0,1,0,0,0,0,0,0,
- 0,0,1,0,0,0,0,0,
+ },
+ { /* 3c '<' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,1,0,0,
+ 0,0,0,0,1,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,0,1,0,0,0,
+ 0,0,0,0,0,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 3d '=' */
+ { /* 3d '=' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 0,1,1,1,1,1,1,0,
0,0,0,0,0,0,0,0,
- 0,1,1,1,1,1,1,0,
+ 0,0,1,1,1,1,1,0,
0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,1,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 3e '>' */
- 0,0,1,0,0,0,0,0,
+ { /* 3e '>' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,0,1,0,0,0,
0,0,0,0,0,1,0,0,
0,0,0,0,1,0,0,0,
0,0,0,1,0,0,0,0,
- 0,0,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 3f '?' */
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 0,0,0,0,0,0,1,0,
- 0,0,0,0,1,1,0,0,
- 0,0,0,1,0,0,0,0,
+ { /* 3f '?' */
0,0,0,0,0,0,0,0,
- 0,0,0,1,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,0,0,0,1,0,0,
+ 0,0,0,0,1,0,0,0,
0,0,0,0,0,0,0,0,
- },
- { /* 40 '@' */
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,1,1,0,1,0,
- 1,0,1,0,0,0,1,0,
- 1,0,0,1,1,1,0,0,
- 1,0,0,0,0,0,0,0,
- 0,1,1,1,1,1,1,0,
+ 0,0,0,0,1,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 41 'A' */
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,1,1,1,1,1,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
+ { /* 40 '@' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,1,0,1,0,
+ 0,1,0,1,0,1,1,0,
+ 0,1,0,1,1,1,1,0,
+ 0,1,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 42 'B' */
- 1,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,1,1,1,1,1,0,0,
+ { /* 41 'A' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,1,1,1,1,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 43 'C' */
+ { /* 42 'B' */
+ 0,0,0,0,0,0,0,0,
0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
0,1,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 44 'D' */
- 1,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,1,1,1,1,1,0,0,
+ { /* 43 'C' */
0,0,0,0,0,0,0,0,
- },
- { /* 45 'E' */
- 1,1,1,1,1,1,1,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 46 'F' */
- 1,1,1,1,1,1,1,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
+ { /* 44 'D' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,1,1,1,0,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,1,1,1,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 47 'G' */
+ { /* 45 'E' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,1,1,1,1,1,0,
+ 0,1,0,0,0,0,0,0,
0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,1,1,1,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,1,1,1,1,1,0,
+ 0,0,0,0,0,0,0,0,
+ },
+ { /* 46 'F' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,1,1,1,1,1,0,
+ 0,1,0,0,0,0,0,0,
0,1,1,1,1,1,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 48 'H' */
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,1,1,1,1,1,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
+ { /* 47 'G' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,0,0,1,1,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 49 'I' */
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
+ { /* 48 'H' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,1,1,1,1,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 4a 'J' */
- 0,0,0,0,0,0,1,0,
- 0,0,0,0,0,0,1,0,
+ { /* 49 'I' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,1,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,1,1,1,1,1,0,
+ 0,0,0,0,0,0,0,0,
+ },
+ { /* 4a 'J' */
+ 0,0,0,0,0,0,0,0,
0,0,0,0,0,0,1,0,
0,0,0,0,0,0,1,0,
0,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 4b 'K' */
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,1,0,0,
- 1,0,0,0,1,0,0,0,
- 1,1,1,1,0,0,0,0,
- 1,0,0,0,1,0,0,0,
- 1,0,0,0,0,1,0,0,
- 1,0,0,0,0,0,1,0,
+ { /* 4b 'K' */
0,0,0,0,0,0,0,0,
- },
- { /* 4c 'L' */
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,1,0,0,0,
+ 0,1,1,1,0,0,0,0,
+ 0,1,0,0,1,0,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,0,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 4d 'M' */
- 1,0,0,0,0,0,1,0,
- 1,1,0,0,0,1,1,0,
- 1,0,1,0,1,0,1,0,
- 1,0,0,1,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
+ { /* 4c 'L' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,1,1,1,1,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 4e 'N' */
- 1,0,0,0,0,0,1,0,
- 1,1,0,0,0,0,1,0,
- 1,0,1,0,0,0,1,0,
- 1,0,0,1,0,0,1,0,
- 1,0,0,0,1,0,1,0,
- 1,0,0,0,0,1,1,0,
- 1,0,0,0,0,0,1,0,
+ { /* 4d 'M' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,1,0,0,1,1,0,
+ 0,1,0,1,1,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 4f 'O' */
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
+ { /* 4e 'N' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,1,0,0,0,1,0,
+ 0,1,0,1,0,0,1,0,
+ 0,1,0,0,1,0,1,0,
+ 0,1,0,0,0,1,1,0,
+ 0,1,0,0,0,0,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 50 'P' */
- 1,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
+ { /* 4f 'O' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 51 'Q' */
+ { /* 50 'P' */
+ 0,0,0,0,0,0,0,0,
0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,1,0,1,0,
- 1,0,0,0,0,1,0,0,
- 0,1,1,1,1,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,1,1,1,1,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 52 'R' */
- 1,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
+ { /* 51 'Q' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,1,0,0,1,0,
+ 0,1,0,0,1,0,1,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 53 'S' */
+ { /* 52 'R' */
+ 0,0,0,0,0,0,0,0,
0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
0,1,1,1,1,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,0,0,0,0,0,0,
+ },
+ { /* 53 'S' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 54 'T' */
+ { /* 54 'T' */
+ 0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,0,
0,0,0,1,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 55 'U' */
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
+ { /* 55 'U' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 56 'V' */
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,0,0,0,1,0,0,
- 0,0,1,0,1,0,0,0,
- 0,0,0,1,0,0,0,0,
+ { /* 56 'V' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,1,0,0,1,0,0,
+ 0,0,0,1,1,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 57 'W' */
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,1,0,0,1,0,
- 1,0,1,0,1,0,1,0,
- 1,1,0,0,0,1,1,0,
- 1,0,0,0,0,0,1,0,
+ { /* 57 'W' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,0,0,0,1,0,
+ 0,1,0,1,1,0,1,0,
+ 0,0,1,0,0,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 58 'X' */
- 1,0,0,0,0,0,1,0,
- 0,1,0,0,0,1,0,0,
- 0,0,1,0,1,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,1,0,1,0,0,0,
- 0,1,0,0,0,1,0,0,
- 1,0,0,0,0,0,1,0,
+ { /* 58 'X' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,0,1,0,
+ 0,0,1,0,0,1,0,0,
+ 0,0,0,1,1,0,0,0,
+ 0,0,0,1,1,0,0,0,
+ 0,0,1,0,0,1,0,0,
+ 0,1,0,0,0,0,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 59 'Y' */
- 1,0,0,0,0,0,1,0,
+ { /* 59 'Y' */
+ 0,0,0,0,0,0,0,0,
1,0,0,0,0,0,1,0,
0,1,0,0,0,1,0,0,
0,0,1,0,1,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
},
- { /* 5a 'Z' */
- 1,1,1,1,1,1,1,0,
+ { /* 5a 'Z' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,1,1,1,1,1,0,
0,0,0,0,0,1,0,0,
0,0,0,0,1,0,0,0,
0,0,0,1,0,0,0,0,
0,0,1,0,0,0,0,0,
- 0,1,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,0,
+ 0,1,1,1,1,1,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 5b '[' */
- 0,0,1,1,1,1,0,0,
- 0,0,1,0,0,0,0,0,
- 0,0,1,0,0,0,0,0,
- 0,0,1,0,0,0,0,0,
- 0,0,1,0,0,0,0,0,
- 0,0,1,0,0,0,0,0,
- 0,0,1,1,1,1,0,0,
+ { /* 5b '[' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,1,1,1,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,1,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 5c '\' */
- 1,0,0,0,0,0,0,0,
+ { /* 5c '\' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
0,1,0,0,0,0,0,0,
0,0,1,0,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,0,1,0,0,0,
0,0,0,0,0,1,0,0,
- 0,0,0,0,0,0,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 5d ']' */
- 0,0,1,1,1,1,0,0,
- 0,0,0,0,0,1,0,0,
- 0,0,0,0,0,1,0,0,
- 0,0,0,0,0,1,0,0,
- 0,0,0,0,0,1,0,0,
- 0,0,0,0,0,1,0,0,
- 0,0,1,1,1,1,0,0,
+ { /* 5d ']' */
0,0,0,0,0,0,0,0,
- },
- { /* 5e '^' */
+ 0,1,1,1,0,0,0,0,
0,0,0,1,0,0,0,0,
- 0,0,1,0,1,0,0,0,
- 0,1,0,0,0,1,0,0,
- 0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,1,1,1,0,0,0,0,
0,0,0,0,0,0,0,0,
+ },
+ { /* 5e '^' */
0,0,0,0,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,1,1,1,0,0,0,
+ 0,1,0,1,0,1,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 5f '_' */
+ { /* 5f '_' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
@@ -781,317 +781,316 @@ static const FontChar font[128]=
0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,
},
- { /* 60 '`' */
- 0,0,1,0,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,0,1,0,0,0,
- 0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,
+ { /* 60 '`' */
0,0,0,0,0,0,0,0,
+ 0,0,0,1,1,1,0,0,
+ 0,0,1,0,0,0,1,0,
+ 0,1,1,1,1,0,0,0,
+ 0,0,1,0,0,0,0,0,
+ 0,0,1,0,0,0,0,0,
+ 0,1,1,1,1,1,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 61 'a' */
+ { /* 61 'a' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 0,1,1,1,1,1,0,0,
- 0,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,1,0,
+ 0,0,1,1,1,0,0,0,
+ 0,0,0,0,0,1,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 62 'b' */
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,1,1,1,1,1,0,0,
+ { /* 62 'b' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,0,0,0,0,0,
+ 0,0,1,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,0,1,0,0,0,1,0,
+ 0,0,1,0,0,0,1,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 63 'c' */
+ { /* 63 'c' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
+ 0,0,0,1,1,1,0,0,
+ 0,0,1,0,0,0,0,0,
+ 0,0,1,0,0,0,0,0,
+ 0,0,1,0,0,0,0,0,
+ 0,0,0,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 64 'd' */
- 0,0,0,0,0,0,1,0,
- 0,0,0,0,0,0,1,0,
- 0,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,1,0,
+ { /* 64 'd' */
0,0,0,0,0,0,0,0,
- },
- { /* 65 'e' */
+ 0,0,0,0,0,1,0,0,
+ 0,0,0,0,0,1,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
+ },
+ { /* 65 'e' */
0,0,0,0,0,0,0,0,
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,1,1,1,1,1,1,0,
- 1,0,0,0,0,0,0,0,
- 0,1,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
- },
- { /* 66 'f' */
- 0,0,1,1,0,0,0,0,
- 0,1,0,0,0,0,0,0,
- 0,1,0,0,0,0,0,0,
- 1,1,1,1,0,0,0,0,
- 0,1,0,0,0,0,0,0,
- 0,1,0,0,0,0,0,0,
+ 0,0,1,1,1,0,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,1,1,1,0,0,0,
0,1,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 67 'g' */
+ { /* 66 'f' */
0,0,0,0,0,0,0,0,
+ 0,0,0,0,1,1,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,1,1,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,0,
- 0,1,1,1,1,1,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,1,0,
- 0,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
+ },
+ { /* 67 'g' */
0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,0,0,0,0,1,0,0,
+ 0,0,1,1,1,0,0,0,
},
- { /* 68 'h' */
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
+ { /* 68 'h' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,1,1,1,0,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 69 'i' */
+ { /* 69 'i' */
0,0,0,0,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,0,
+ 0,0,1,1,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
+ 0,0,1,1,1,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 6a 'j' */
- 0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,1,0,
+ { /* 6a 'j' */
0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,1,0,
- 0,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
+ 0,0,0,0,0,1,0,0,
0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,1,0,0,
+ 0,0,0,0,0,1,0,0,
+ 0,0,0,0,0,1,0,0,
+ 0,0,1,0,0,1,0,0,
+ 0,0,0,1,1,0,0,0,
},
- { /* 6b 'k' */
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,1,0,0,
- 1,1,1,1,1,0,0,0,
- 1,0,0,0,0,1,0,0,
- 1,0,0,0,0,0,1,0,
+ { /* 6b 'k' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,1,0,0,0,0,0,
+ 0,0,1,0,1,0,0,0,
+ 0,0,1,1,0,0,0,0,
+ 0,0,1,1,0,0,0,0,
+ 0,0,1,0,1,0,0,0,
+ 0,0,1,0,0,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 6c 'l' */
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
+ { /* 6c 'l' */
+ 0,0,0,0,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,1,0,0,0,0,
+ 0,0,0,0,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 6d 'm' */
+ { /* 6d 'm' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 0,1,0,0,0,1,0,0,
- 1,0,1,0,1,0,1,0,
- 1,0,0,1,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
+ 0,1,1,0,1,0,0,0,
+ 0,1,0,1,0,1,0,0,
+ 0,1,0,1,0,1,0,0,
+ 0,1,0,1,0,1,0,0,
+ 0,1,0,1,0,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 6e 'n' */
+ { /* 6e 'n' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
+ 0,1,1,1,1,0,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 6f 'o' */
+ { /* 6f 'o' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
+ 0,0,1,1,1,0,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,0,1,1,1,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 70 'p' */
- 0,0,0,0,0,0,0,0,
+ { /* 70 'p' */
0,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
+ 0,1,1,1,1,0,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,1,1,1,0,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,1,0,0,0,0,0,0,
},
- { /* 71 'q' */
+ { /* 71 'q' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 0,1,1,1,1,1,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,1,0,
- 0,0,0,0,0,0,1,0,
- 0,0,0,0,0,0,1,0,
- 0,0,0,0,0,0,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,0,1,1,1,1,0,0,
+ 0,0,0,0,0,1,0,0,
+ 0,0,0,0,0,1,1,0,
},
- { /* 72 'r' */
+ { /* 72 'r' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,0,0,
+ 0,0,0,1,1,1,0,0,
+ 0,0,1,0,0,0,0,0,
+ 0,0,1,0,0,0,0,0,
+ 0,0,1,0,0,0,0,0,
+ 0,0,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 73 's' */
+ { /* 73 's' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 0,1,1,1,1,1,0,0,
- 1,0,0,0,0,0,0,0,
- 0,1,1,1,1,1,0,0,
- 0,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
+ 0,0,1,1,1,0,0,0,
+ 0,1,0,0,0,0,0,0,
+ 0,0,1,1,1,0,0,0,
+ 0,0,0,0,0,1,0,0,
+ 0,1,1,1,1,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 74 't' */
- 0,1,0,0,0,0,0,0,
- 0,1,0,0,0,0,0,0,
- 0,1,0,0,0,0,0,0,
- 1,1,1,1,0,0,0,0,
- 0,1,0,0,0,0,0,0,
- 0,1,0,0,0,0,1,0,
- 0,0,1,1,1,1,0,0,
+ { /* 74 't' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,1,1,1,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,0,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 75 'u' */
+ { /* 75 'u' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,0,1,1,1,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 76 'v' */
+ { /* 76 'v' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,0,1,0,1,0,0,0,
0,0,1,0,1,0,0,0,
0,0,0,1,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 77 'w' */
+ { /* 77 'w' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,1,0,0,1,0,
- 1,0,1,0,1,0,1,0,
0,1,0,0,0,1,0,0,
+ 0,1,0,1,0,1,0,0,
+ 0,1,0,1,0,1,0,0,
+ 0,1,0,1,0,1,0,0,
+ 0,0,1,0,1,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 78 'x' */
+ { /* 78 'x' */
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,1,0,
0,1,0,0,0,1,0,0,
- 0,0,1,1,1,0,0,0,
+ 0,0,1,0,1,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,1,0,1,0,0,0,
0,1,0,0,0,1,0,0,
- 1,0,0,0,0,0,1,0,
0,0,0,0,0,0,0,0,
},
- { /* 79 'y' */
- 0,0,0,0,0,0,0,0,
+ { /* 79 'y' */
0,0,0,0,0,0,0,0,
- 1,0,0,0,0,0,1,0,
- 1,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,1,0,
- 0,0,0,0,0,0,1,0,
- 0,1,1,1,1,1,0,0,
- 0,0,0,0,0,0,0,0,
- },
- { /* 7a 'z' */
0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,1,0,0,0,1,0,0,
+ 0,0,1,1,1,1,0,0,
0,0,0,0,0,1,0,0,
0,0,1,1,1,0,0,0,
- 0,1,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,0,
- 0,0,0,0,0,0,0,0,
},
- { /* 7b '{' */
+ { /* 7a 'z' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ 0,1,1,1,1,1,0,0,
0,0,0,0,1,0,0,0,
0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
0,0,1,0,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,0,1,0,0,0,
+ 0,1,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 7c '|' */
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
- 0,0,0,1,0,0,0,0,
+ { /* 7b '{' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,0,1,1,1,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,1,1,0,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,1,1,0,
+ 0,0,0,0,0,0,0,0,
},
- { /* 7d '}' */
- 0,0,0,1,0,0,0,0,
+ { /* 7c '|' */
+ 0,0,0,0,0,0,0,0,
0,0,0,0,1,0,0,0,
0,0,0,0,1,0,0,0,
- 0,0,0,0,0,1,0,0,
0,0,0,0,1,0,0,0,
0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,1,0,0,0,
+ 0,0,0,0,0,0,0,0,
+ },
+ { /* 7d '}' */
+ 0,0,0,0,0,0,0,0,
+ 0,1,1,1,0,0,0,0,
0,0,0,1,0,0,0,0,
+ 0,0,0,0,1,1,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,0,0,1,0,0,0,0,
+ 0,1,1,1,0,0,0,0,
0,0,0,0,0,0,0,0,
},
- { /* 7d '~' */
- 0,1,1,0,0,0,0,0,
- 1,0,0,1,0,0,0,1,
- 0,0,0,0,1,1,1,0,
+ { /* 7e '~' */
+ 0,0,0,0,0,0,0,0,
+ 0,0,0,1,0,1,0,0,
+ 0,0,1,0,1,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
},
-
NULLCHARDEF, /* 7f */
};
diff --git a/src/gfx.c b/src/gfx.c
index 80e5b5c..57be20c 100644
--- a/src/gfx.c
+++ b/src/gfx.c
@@ -20,7 +20,7 @@
-------------------------------------------------------------------------
- Config file
+ Wrapper to SDL
*/
static const char ident[]="$Id$";
@@ -171,8 +171,6 @@ void GFXInit(void)
if (SDL_Init(SDL_INIT_TIMER|SDL_INIT_VIDEO))
Exit("Failed to init SDL: %s\n",SDL_GetError());
- printf("scale = %d\n",scale);
-
if (!(surface=SDL_SetVideoMode(SCR_W*scale,
SCR_H*scale,
0,
@@ -227,6 +225,33 @@ void GFXEndFrame(int delay)
}
+SDL_Event *GFXGetKey(void)
+{
+ static SDL_Event e;
+
+ while(SDL_PollEvent(&e))
+ {
+ if (e.type==SDL_KEYUP || e.type==SDL_KEYDOWN)
+ return &e;
+ }
+
+ return NULL;
+}
+
+
+SDL_Event *GFXWaitKey(void)
+{
+ static SDL_Event e;
+
+ do
+ {
+ SDL_WaitEvent(&e);
+ } while (e.type!=SDL_KEYUP);
+
+ return &e;
+}
+
+
void GFXPlot(int x, int y, Uint32 col)
{
LOCK;
diff --git a/src/gfx.h b/src/gfx.h
index b9b353a..93eef60 100644
--- a/src/gfx.h
+++ b/src/gfx.h
@@ -72,10 +72,21 @@ void GFXStartFrame(void);
/* Indicate a frame is done and refreshes the screen
If delay is TRUE, sleeps to implement the frames_per_sec config.
+ It's safe to call this multiple times without a matching GFXStartFrame().
*/
void GFXEndFrame(int delay);
+/* Suck out keyboard events. Returns NULL if no more keyboard events
+*/
+SDL_Event *GFXGetKey(void);
+
+
+/* Wait for a keypress (key up event)
+*/
+SDL_Event *GFXWaitKey(void);
+
+
/*
Note that no bound checking (except for GFXPrint()) is done - it is the
callers responsibility to plot onscreen.
diff --git a/src/gui.c b/src/gui.c
new file mode 100644
index 0000000..bda46d3
--- /dev/null
+++ b/src/gui.c
@@ -0,0 +1,149 @@
+/*
+
+ ezx81 - X11 ZX81 emulator
+
+ Copyright (C) 2003 Ian Cowburn (ianc@noddybox.demon.co.uk)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ -------------------------------------------------------------------------
+
+ Basic GUI routines
+
+*/
+static const char ident[]="$Id$";
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+
+#include "gui.h"
+#include "gfx.h"
+#include "exit.h"
+
+static const char ident_h[]=EZX81_GUI_H;
+
+
+/* ---------------------------------------- MACROS
+*/
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+/* Must match gfx.c
+*/
+#define SCR_W 320
+#define SCR_H 200
+
+/* ---------------------------------------- STATICS
+*/
+
+
+/* ---------------------------------------- PRIVATE FUNCTIONS
+*/
+static void *Malloc(size_t size)
+{
+ void *p=malloc(size);
+
+ if (!p)
+ Exit("malloc failed for %lu bytes\n",(unsigned long)size);
+
+ return p;
+}
+
+
+static void Centre(const char *p, int y, int r, int g, int b)
+{
+ GFXPrint((SCR_W-strlen(p)*8)/2,y,GFXRGB(r,g,b),"%s",p);
+}
+
+
+/* ---------------------------------------- EXPORTED INTERFACES
+*/
+void GUIMessage(const char *title, const char *format,...)
+{
+ char buff[257];
+ va_list va;
+ char *p;
+ int no;
+ int f;
+ char **line;
+ int width;
+ int height;
+ int x,y;
+
+ va_start(va,format);
+ vsprintf(buff,format,va);
+ va_end(va);
+
+ p=buff;
+ no=1;
+
+ while(*p)
+ {
+ if (*p=='\n')
+ no++;
+
+ p++;
+ }
+
+ line=Malloc(sizeof *line * no);
+
+ line[0]=strtok(buff,"\n");
+ width=strlen(line[0]);
+
+ for(f=1;f<no;f++)
+ {
+ line[f]=strtok(NULL,"\n");
+
+ if (strlen(line[f])>width)
+ width=strlen(line[f]);
+ }
+
+ width=(width*8)+16;
+ height=(no+3)*10;
+ y=(SCR_H-height)/2;
+ x=(SCR_W-width)/2;
+
+ GFXRect(x-1,y-1,
+ width+2,height+2,
+ GFXRGB(255,255,255),FALSE);
+
+ GFXRect(x,y,
+ width,height,
+ GFXRGB(0,0,0),TRUE);
+
+ Centre(title,y+2,255,255,255);
+ GFXHLine(x+2,x+width-4,y+10,GFXRGB(255,255,255));
+
+ for(f=0;f<no;f++)
+ Centre(line[f],y+5+10*(f+1),200,200,200);
+
+ Centre("Press a key",y+height-10,255,0,0);
+
+ GFXEndFrame(FALSE);
+
+ GFXWaitKey();
+
+ free(line);
+}
+
+
+/* END OF FILE */
diff --git a/src/gui.h b/src/gui.h
new file mode 100644
index 0000000..02a5db5
--- /dev/null
+++ b/src/gui.h
@@ -0,0 +1,45 @@
+/*
+
+ ezx81 - X11 ZX81 emulator
+
+ Copyright (C) 2003 Ian Cowburn (ianc@noddybox.demon.co.uk)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ -------------------------------------------------------------------------
+
+ Basic GUI routines
+
+*/
+
+#ifndef EZX81_GUI_H
+#define EZX81_GUI_H "$Id$"
+
+#include "SDL.h"
+
+
+/* ---------------------------------------- INTERFACES
+*/
+
+/* Display a simple message box. A message of longer than 256 bytes causes
+ undefined behaviour. Newlines cause a line break.
+*/
+void GUIMessage(const char *title, const char *format,...);
+
+
+#endif
+
+
+/* END OF FILE */
diff --git a/src/main.c b/src/main.c
index edf772f..d4bb65d 100644
--- a/src/main.c
+++ b/src/main.c
@@ -31,6 +31,7 @@ static const char id[]="$Id$";
#include "z80.h"
#include "zx81.h"
#include "gfx.h"
+#include "gui.h"
#include "config.h"
#include "exit.h"
@@ -83,28 +84,33 @@ int main(int argc, char *argv[])
GFXClear(grey);
GFXPrint(1,1,black,"Quick SDL check");
GFXPrint(2,2,white,"Quick SDL check");
- GFXRect(100,100,20,20,white,TRUE);
+ GFXRect(100,100,20,20,black,TRUE);
GFXRect(99,99,22,22,white,FALSE);
+ GFXRect(80,80,1,1,black,TRUE);
+ GFXRect(80,90,1,1,black,FALSE);
+
+ GFXRect(90,80,2,2,black,TRUE);
+ GFXRect(90,90,2,2,black,FALSE);
+
+ GFXRect(100,80,3,3,black,TRUE);
+ GFXRect(100,90,3,3,black,FALSE);
+
GFXHLine(0,319,0,white);
GFXVLine(0,1,199,black);
{
- SDL_Event e;
int f;
- for(f=0;f<1000;f++)
+ for(f=0;f<10;f++)
{
GFXPlot(rand()%320,rand()%200,white);
GFXEndFrame(FALSE);
}
-
- do
- {
- SDL_WaitEvent(&e);
- } while(e.type!=SDL_KEYUP);
}
+ GUIMessage("Test Message","Hello\nWorld\n%s",SConfig(CONF_TAPEDIR));
+
SDL_Quit();
return EXIT_SUCCESS;