diff --git a/Makefile.prizm b/Makefile.prizm index fefadf8..fced1c9 100644 --- a/Makefile.prizm +++ b/Makefile.prizm @@ -9,35 +9,68 @@ CC = sh-elf-gcc CONFIG_H = include/SDL_config.h TARGET = libSDL_prizm.a SOURCES = \ - src/*.c \ - src/audio/*.c \ - src/cdrom/*.c \ - src/cpuinfo/*.c \ - src/events/*.c \ - src/file/*.c \ - src/joystick/*.c \ - src/stdlib/*.c \ - src/thread/*.c \ - src/timer/*.c \ - src/video/*.c \ - src/audio/dummy/*.c \ - src/video/dummy/*.c \ - src/joystick/dummy/*.c \ - src/cdrom/dummy/*.c \ - src/thread/generic/*.c \ - src/timer/dummy/*.c \ - src/loadso/dummy/*.c \ + src/SDL.c \ + src/SDL_error.c \ + src/SDL_fatal.c \ + src/audio/SDL_audio.c \ + src/audio/SDL_audiocvt.c \ + src/cpuinfo/SDL_cpuinfo.c \ + src/events/SDL_active.c \ + src/events/SDL_events.c \ + src/events/SDL_expose.c \ + src/events/SDL_keyboard.c \ + src/events/SDL_mouse.c \ + src/events/SDL_quit.c \ + src/events/SDL_resize.c \ + src/file/SDL_rwops.c \ + src/joystick/SDL_joystick.c \ + src/stdlib/SDL_getenv.c \ + src/stdlib/SDL_iconv.c \ + src/stdlib/SDL_malloc.c \ + src/stdlib/SDL_qsort.c \ + src/stdlib/SDL_stdlib.c \ + src/stdlib/SDL_string.c \ + src/thread/SDL_thread.c \ + src/thread/generic/SDL_syscond.c \ + src/thread/generic/SDL_sysmutex.c \ + src/thread/generic/SDL_syssem.c \ + src/thread/generic/SDL_systhread.c \ + src/timer/SDL_timer.c \ + src/timer/prizm/SDL_systimer.c \ + src/video/SDL_blit.c \ + src/video/SDL_blit_0.c \ + src/video/SDL_blit_1.c \ + src/video/SDL_blit_A.c \ + src/video/SDL_blit_N.c \ + src/video/SDL_bmp.c \ + src/video/SDL_cursor.c \ + src/video/SDL_gamma.c \ + src/video/SDL_pixels.c \ + src/video/SDL_RLEaccel.c \ + src/video/SDL_stretch.c \ + src/video/SDL_surface.c \ + src/video/SDL_video.c \ + src/video/SDL_yuv.c \ + src/video/SDL_yuv_mmx.c \ + src/video/SDL_yuv_sw.c \ + src/video/prizm/SDL_prizmevents.c \ + src/video/prizm/SDL_prizmfonts.c \ + src/video/prizm/SDL_prizmnti.c \ + src/video/prizm/SDL_prizmutils.c \ + src/video/prizm/SDL_prizmvideo.c -OBJECTS = $(shell echo $(SOURCES) | sed -e 's,\.c,\.o,g') +OBJECTS = $(SOURCES:.c=.o) all: $(TARGET) -$(TARGET): $(CONFIG_H) $(OBJECTS) - $(AR) crv $@ $^ +$(TARGET): $(OBJECTS) + #cp $(CONFIG_H).default $(CONFIG_H) + $(AR) cr $@ $^ $(RANLIB) $@ + #$(STRIP) --strip-unneeded $@ -$(CONFIG_H): - cp $(CONFIG_H).default $(CONFIG_H) +.c.o: + $(CC) $(INCLUDE) $(CFLAGS) -c $< -o $@ clean: - rm -f $(TARGET) $(OBJECTS) + rm -f $(OBJECTS) $(TARGET) diff --git a/TODO.txt b/TODO.txt new file mode 100644 index 0000000..4680a52 --- /dev/null +++ b/TODO.txt @@ -0,0 +1,13 @@ +timers : src/timer/prizm/SDL_systimer.c + + implement : + void SDL_StartTicks(void); + Uint32 SDL_GetTicks (void); + void SDL_Delay (Uint32 ms) + + check if : + #include "SDL_thread.h" is working or not + + +video : + diff --git a/cSDL1_2_15.cbp b/cSDL1_2_15.cbp index 7b8d5d9..9c19679 100644 --- a/cSDL1_2_15.cbp +++ b/cSDL1_2_15.cbp @@ -15,6 +15,8 @@ + + @@ -193,6 +195,9 @@ + + @@ -270,6 +275,25 @@ + + + + + + + + + + + + + + diff --git a/cSDL1_2_15.layout b/cSDL1_2_15.layout index d107655..3d6d100 100644 --- a/cSDL1_2_15.layout +++ b/cSDL1_2_15.layout @@ -2,19 +2,77 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + - + - + + + + + + + + + + + diff --git a/include/SDL_config.h b/include/SDL_config.h index 119491e..0d9a007 100644 --- a/include/SDL_config.h +++ b/include/SDL_config.h @@ -23,8 +23,12 @@ #ifndef _SDL_config_h #define _SDL_config_h +#define FXCG50 1 + #include "SDL_platform.h" + + /* Add any platform that doesn't build using the configure system */ #if defined(__DREAMCAST__) #include "SDL_config_dreamcast.h" @@ -44,8 +48,7 @@ #include "SDL_config_prizm.h" #else -//#include "SDL_config_minimal.h" -#include "SDL_config_prizm.h" +#include "SDL_config_minimal.h" #endif /* platform config */ #endif /* _SDL_config_h */ diff --git a/include/SDL_config_prizm.h b/include/SDL_config_prizm.h index 28ef82a..b0ec1cf 100644 --- a/include/SDL_config_prizm.h +++ b/include/SDL_config_prizm.h @@ -29,6 +29,23 @@ #include + +#define PRZ_DEBUG_BUILD 1 +//#define DEBUG_BUILD 1 +//#define DEBUG_VIDEO 1 +//#define DEBUG_ERROR 1 + + +#define PRZ_WARNING(s) fprintf(stderr, "[nSDL] Warning: %s\n", s) + +#if PRZ_DEBUG_BUILD +#define PRZ_DEBUG(fmt, args...) \ + fprintf(stderr, "[nSDL] %s(): " fmt "\n", __FUNCTION__, ## args) +#else +#define PRZ_DEBUG(fmt, args...) (void)0 +#endif + + #define SDL_HAS_64BIT_TYPE 1 /* Endianness */ @@ -80,4 +97,24 @@ #define SDL_TIMER_DUMMY 1 +/* Enable various timer systems */ +#define SDL_TIMER_PRIZM 1 + +/* Enable various video drivers */ +#define SDL_VIDEO_DRIVER_PRIZM 1 + +/* Enable assembly routines */ +#define SDL_ASSEMBLY_ROUTINES 1 + +/* Fonts; needs to match nsp_font_charmaps in SDL_tinspirefonts.c */ +enum { + NSDL_FONT_THIN = 0, + NSDL_FONT_SPACE, + NSDL_FONT_VGA, + NSDL_FONT_FANTASY, + NSDL_FONT_TINYTYPE, + NSP_NUMFONTS +}; + + #endif /* _SDL_config_prizm_h */ diff --git a/include/SDL_video.h b/include/SDL_video.h index f9c4e07..e94aeec 100644 --- a/include/SDL_video.h +++ b/include/SDL_video.h @@ -253,6 +253,62 @@ typedef enum { #define SDL_PHYSPAL 0x02 /*@}*/ +/* Public Casio PRIZM-specific stuff */ +#ifdef __CASIOPRIZM__ + +#define PRZ_FONT_NUMCHARS 256 +#define PRZ_FONT_WIDTH 8 +#define PRZ_FONT_HEIGHT 8 + +typedef struct nSDL_Font { + SDL_Surface *chars[PRZ_FONT_NUMCHARS]; + Uint8 char_width[PRZ_FONT_NUMCHARS]; + int hspacing, vspacing; + SDL_bool monospaced; +} nSDL_Font; + +nSDL_Font *nSDL_LoadFont(int font_index, Uint8 r, Uint8 g, Uint8 b); +void nSDL_SetFontSpacing(nSDL_Font *font, int hspacing, int vspacing); +void nSDL_EnableFontMonospaced(nSDL_Font *font, SDL_bool toggle); +void nSDL_FreeFont(nSDL_Font *font); +int nSDL_DrawString(SDL_Surface *surface, nSDL_Font *font, + int x, int y, const char *format, ...); +int nSDL_GetStringWidth(nSDL_Font *font, const char *s); +int nSDL_GetStringHeight(nSDL_Font *font, const char *s); +SDL_Surface *nSDL_LoadImage(Uint16 *data); +int nSDL_EnableRelativePaths(char **argv); + +#define PRZ_PIXEL_ADDR(origin, x, y, pitch, bpp) ((Uint8 *)origin + ((x) * (bpp)) + ((y) * (pitch))) + +#define PXL(bpp) PRZ_PIXEL_ADDR(surface->pixels, x, y, surface->pitch, bpp) + +static __inline__ __attribute__((always_inline)) +Uint32 nSDL_GetPixel(SDL_Surface *surface, int x, int y) +{ + switch ( surface->format->BytesPerPixel ) { + case 2: return(*(Uint16 *)PXL(2)); + case 1: return(*PXL(1)); + case 4: return(*(Uint32 *)PXL(4)); + case 3: SDL_Unsupported(); + default: return(0); + } +} + +static __inline__ __attribute__((always_inline)) +void nSDL_SetPixel(SDL_Surface *surface, int x, int y, Uint32 color) +{ + switch ( surface->format->BytesPerPixel ) { + case 2: *(Uint16 *)PXL(2) = (Uint16)color; return; + case 1: *PXL(1) = (Uint8)color; return; + case 4: *(Uint32 *)PXL(4) = (Uint32)color; return; + case 3: SDL_Unsupported(); + default: return; + } +} + +#endif + + /* Function prototypes */ /** @@ -314,11 +370,11 @@ extern DECLSPEC int SDLCALL SDL_VideoModeOK(int width, int height, int bpp, Uint /** * Return a pointer to an array of available screen dimensions for the - * given format and video flags, sorted largest to smallest. Returns - * NULL if there are no dimensions available for a particular format, + * given format and video flags, sorted largest to smallest. Returns + * NULL if there are no dimensions available for a particular format, * or (SDL_Rect **)-1 if any dimension is okay for the given format. * - * If 'format' is NULL, the mode list will be for the format given + * If 'format' is NULL, the mode list will be for the format given * by SDL_GetVideoInfo()->vfmt */ extern DECLSPEC SDL_Rect ** SDLCALL SDL_ListModes(SDL_PixelFormat *format, Uint32 flags); @@ -347,21 +403,21 @@ extern DECLSPEC SDL_Rect ** SDLCALL SDL_ListModes(SDL_PixelFormat *format, Uint3 * Otherwise, in 8-bit mode, SDL_SetColors() may not be able to set all * of the colors exactly the way they are requested, and you should look * at the video surface structure to determine the actual palette. - * If SDL cannot guarantee that the colors you request can be set, + * If SDL cannot guarantee that the colors you request can be set, * i.e. if the colormap is shared, then the video surface may be created * under emulation in system memory, overriding the SDL_HWSURFACE flag. * * If SDL_FULLSCREEN is set in 'flags', the SDL library will try to set * a fullscreen video mode. The default is to create a windowed mode * if the current graphics system has a window manager. - * If the SDL library is able to set a fullscreen video mode, this flag + * If the SDL library is able to set a fullscreen video mode, this flag * will be set in the surface that is returned. * * If SDL_DOUBLEBUF is set in 'flags', the SDL library will try to set up - * two surfaces in video memory and swap between them when you call + * two surfaces in video memory and swap between them when you call * SDL_Flip(). This is usually slower than the normal single-buffering - * scheme, but prevents "tearing" artifacts caused by modifying video - * memory while the monitor is refreshing. It should only be used by + * scheme, but prevents "tearing" artifacts caused by modifying video + * memory while the monitor is refreshing. It should only be used by * applications that redraw the entire screen on every update. * * If SDL_RESIZABLE is set in 'flags', the SDL library will allow the @@ -416,7 +472,7 @@ extern DECLSPEC int SDLCALL SDL_Flip(SDL_Surface *screen); /** * Set the gamma correction for each of the color channels. * The gamma values range (approximately) between 0.1 and 10.0 - * + * * If this function isn't supported directly by the hardware, it will * be emulated using gamma ramps, if available. If successful, this * function returns 0, otherwise it returns -1. @@ -429,7 +485,7 @@ extern DECLSPEC int SDLCALL SDL_SetGamma(float red, float green, float blue); * representing a mapping between the input and output for that channel. * The input is the index into the array, and the output is the 16-bit * gamma value at that index, scaled to the output color precision. - * + * * You may pass NULL for any of the channels to leave it unchanged. * If the call succeeds, it will return 0. If the display driver or * hardware does not support gamma translation, or otherwise fails, @@ -439,7 +495,7 @@ extern DECLSPEC int SDLCALL SDL_SetGammaRamp(const Uint16 *red, const Uint16 *gr /** * Retrieve the current values of the gamma translation tables. - * + * * You must pass in valid pointers to arrays of 256 16-bit quantities. * Any of the pointers may be NULL to ignore that channel. * If the call succeeds, it will return 0. If the display driver or @@ -457,13 +513,13 @@ extern DECLSPEC int SDLCALL SDL_GetGammaRamp(Uint16 *red, Uint16 *green, Uint16 * determine the actual color palette. * * When 'surface' is the surface associated with the current display, the - * display colormap will be updated with the requested colors. If + * display colormap will be updated with the requested colors. If * SDL_HWPALETTE was set in SDL_SetVideoMode() flags, SDL_SetColors() * will always return 1, and the palette is guaranteed to be set the way * you desire, even if the window colormap has to be warped or run under * emulation. */ -extern DECLSPEC int SDLCALL SDL_SetColors(SDL_Surface *surface, +extern DECLSPEC int SDLCALL SDL_SetColors(SDL_Surface *surface, SDL_Color *colors, int firstcolor, int ncolors); /** @@ -537,7 +593,7 @@ extern DECLSPEC void SDLCALL SDL_GetRGBA(Uint32 pixel, * two surfaces in video memory, SDL will try to place the surface in * video memory. If this isn't possible or if there is no hardware * acceleration available, the surface will be placed in system memory. - * SDL_SRCALPHA means that the surface will be used for alpha blits and + * SDL_SRCALPHA means that the surface will be used for alpha blits and * if the hardware supports hardware acceleration of alpha blits between * two surfaces in video memory, to place the surface in video memory * if possible, otherwise it will be placed in system memory. @@ -551,7 +607,7 @@ extern DECLSPEC void SDLCALL SDL_GetRGBA(Uint32 pixel, * the SDL_HWSURFACE flag set, and will be created in system memory instead. */ extern DECLSPEC SDL_Surface * SDLCALL SDL_CreateRGBSurface - (Uint32 flags, int width, int height, int depth, + (Uint32 flags, int width, int height, int depth, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask); /** @sa SDL_CreateRGBSurface */ extern DECLSPEC SDL_Surface * SDLCALL SDL_CreateRGBSurfaceFrom(void *pixels, @@ -562,8 +618,8 @@ extern DECLSPEC void SDLCALL SDL_FreeSurface(SDL_Surface *surface); /** * SDL_LockSurface() sets up a surface for directly accessing the pixels. * Between calls to SDL_LockSurface()/SDL_UnlockSurface(), you can write - * to and read from 'surface->pixels', using the pixel format stored in - * 'surface->format'. Once you are done accessing the surface, you should + * to and read from 'surface->pixels', using the pixel format stored in + * 'surface->format'. Once you are done accessing the surface, you should * use SDL_UnlockSurface() to release it. * * Not all surfaces require locking. If SDL_MUSTLOCK(surface) evaluates @@ -571,7 +627,7 @@ extern DECLSPEC void SDLCALL SDL_FreeSurface(SDL_Surface *surface); * pixel format of the surface will not change. In particular, if the * SDL_HWSURFACE flag is not given when calling SDL_SetVideoMode(), you * will not need to lock the display surface before accessing it. - * + * * No operating system or library calls should be made between lock/unlock * pairs, as critical system locks may be held during this time. * @@ -605,7 +661,7 @@ extern DECLSPEC int SDLCALL SDL_SaveBMP_RW /** * Sets the color key (transparent pixel) in a blittable surface. - * If 'flag' is SDL_SRCCOLORKEY (optionally OR'd with SDL_RLEACCEL), + * If 'flag' is SDL_SRCCOLORKEY (optionally OR'd with SDL_RLEACCEL), * 'key' will be the transparent pixel in the source image of a blit. * SDL_RLEACCEL requests RLE acceleration for the surface if present, * and removes RLE acceleration if absent. @@ -654,11 +710,11 @@ extern DECLSPEC SDL_bool SDLCALL SDL_SetClipRect(SDL_Surface *surface, const SDL extern DECLSPEC void SDLCALL SDL_GetClipRect(SDL_Surface *surface, SDL_Rect *rect); /** - * Creates a new surface of the specified format, and then copies and maps - * the given surface to it so the blit of the converted surface will be as + * Creates a new surface of the specified format, and then copies and maps + * the given surface to it so the blit of the converted surface will be as * fast as possible. If this function fails, it returns NULL. * - * The 'flags' parameter is passed to SDL_CreateRGBSurface() and has those + * The 'flags' parameter is passed to SDL_CreateRGBSurface() and has those * semantics. You can also pass SDL_RLEACCEL in the flags parameter and * SDL will try to RLE accelerate colorkey and alpha blits in the resulting * surface. @@ -690,7 +746,7 @@ extern DECLSPEC SDL_Surface * SDLCALL SDL_ConvertSurface * if SDL_SRCCOLORKEY set, only copy the pixels matching the * RGB values of the source colour key, ignoring alpha in the * comparison. - * + * * RGB->RGBA: * SDL_SRCALPHA set: * alpha-blend (using the source per-surface alpha value); @@ -700,7 +756,7 @@ extern DECLSPEC SDL_Surface * SDLCALL SDL_ConvertSurface * both: * if SDL_SRCCOLORKEY set, only copy the pixels matching the * source colour key. - * + * * RGBA->RGBA: * SDL_SRCALPHA set: * alpha-blend (using the source alpha channel) the RGB values; @@ -711,8 +767,8 @@ extern DECLSPEC SDL_Surface * SDLCALL SDL_ConvertSurface * if SDL_SRCCOLORKEY set, only copy the pixels matching the * RGB values of the source colour key, ignoring alpha in the * comparison. - * - * RGB->RGB: + * + * RGB->RGB: * SDL_SRCALPHA set: * alpha-blend (using the source per-surface alpha value). * SDL_SRCALPHA not set: @@ -722,7 +778,7 @@ extern DECLSPEC SDL_Surface * SDLCALL SDL_ConvertSurface * source colour key. * * If either of the surfaces were in video memory, and the blit returns -2, - * the video memory was lost, so it should be reloaded with artwork and + * the video memory was lost, so it should be reloaded with artwork and * re-blitted: * @code * while ( SDL_BlitSurface(image, imgrect, screen, dstrect) == -2 ) { @@ -760,7 +816,7 @@ extern DECLSPEC int SDLCALL SDL_LowerBlit * The given rectangle is clipped to the destination surface clip area * and the final fill rectangle is saved in the passed in pointer. * If 'dstrect' is NULL, the whole surface will be filled with 'color' - * The color should be a pixel of the format used by the surface, and + * The color should be a pixel of the format used by the surface, and * can be generated by the SDL_MapRGB() function. * This function returns 0 on success, or -1 on error. */ @@ -813,7 +869,7 @@ extern DECLSPEC void SDLCALL SDL_UnlockYUVOverlay(SDL_Overlay *overlay); /** Blit a video overlay to the display surface. * The contents of the video surface underneath the blit destination are - * not defined. + * not defined. * The width and height of the destination rectangle may be different from * that of the overlay, but currently only 2x scaling is supported. */ @@ -908,7 +964,7 @@ extern DECLSPEC int SDLCALL SDL_WM_IconifyWindow(void); * If the display surface does not require locking before accessing * the pixel information, then the memory pointers will not change. * - * If this function was able to toggle fullscreen mode (change from + * If this function was able to toggle fullscreen mode (change from * running in a window to fullscreen, or vice-versa), it will return 1. * If it is not implemented, or fails, it returns 0. * @@ -941,7 +997,7 @@ extern DECLSPEC SDL_GrabMode SDLCALL SDL_WM_GrabInput(SDL_GrabMode mode); /** @internal Not in public API at the moment - do not use! */ extern DECLSPEC int SDLCALL SDL_SoftStretch(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect); - + /* Ends C function definitions when using C++ */ #ifdef __cplusplus } diff --git a/libSDL_prizm.a b/libSDL_prizm.a deleted file mode 100644 index 3f2925a..0000000 Binary files a/libSDL_prizm.a and /dev/null differ diff --git a/src/audio/SDL_audiodev.o b/src/audio/SDL_audiodev.o new file mode 100644 index 0000000..0d30593 Binary files /dev/null and b/src/audio/SDL_audiodev.o differ diff --git a/src/audio/SDL_mixer.o b/src/audio/SDL_mixer.o new file mode 100644 index 0000000..98939e4 Binary files /dev/null and b/src/audio/SDL_mixer.o differ diff --git a/src/audio/SDL_mixer_MMX.o b/src/audio/SDL_mixer_MMX.o new file mode 100644 index 0000000..84d64e3 Binary files /dev/null and b/src/audio/SDL_mixer_MMX.o differ diff --git a/src/audio/SDL_mixer_MMX_VC.o b/src/audio/SDL_mixer_MMX_VC.o new file mode 100644 index 0000000..f370377 Binary files /dev/null and b/src/audio/SDL_mixer_MMX_VC.o differ diff --git a/src/audio/SDL_mixer_m68k.o b/src/audio/SDL_mixer_m68k.o new file mode 100644 index 0000000..3c9c08e Binary files /dev/null and b/src/audio/SDL_mixer_m68k.o differ diff --git a/src/audio/SDL_wave.o b/src/audio/SDL_wave.o new file mode 100644 index 0000000..1aa48cb Binary files /dev/null and b/src/audio/SDL_wave.o differ diff --git a/src/audio/dummy/SDL_dummyaudio.o b/src/audio/dummy/SDL_dummyaudio.o new file mode 100644 index 0000000..9894b3d Binary files /dev/null and b/src/audio/dummy/SDL_dummyaudio.o differ diff --git a/src/cdrom/SDL_cdrom.o b/src/cdrom/SDL_cdrom.o new file mode 100644 index 0000000..372d3ad Binary files /dev/null and b/src/cdrom/SDL_cdrom.o differ diff --git a/src/cdrom/dummy/SDL_syscdrom.o b/src/cdrom/dummy/SDL_syscdrom.o new file mode 100644 index 0000000..09d5574 Binary files /dev/null and b/src/cdrom/dummy/SDL_syscdrom.o differ diff --git a/src/joystick/dummy/SDL_sysjoystick.o b/src/joystick/dummy/SDL_sysjoystick.o new file mode 100644 index 0000000..57c1532 Binary files /dev/null and b/src/joystick/dummy/SDL_sysjoystick.o differ diff --git a/src/loadso/dummy/SDL_sysloadso.o b/src/loadso/dummy/SDL_sysloadso.o new file mode 100644 index 0000000..262035b Binary files /dev/null and b/src/loadso/dummy/SDL_sysloadso.o differ diff --git a/src/timer/dummy/SDL_systimer.o b/src/timer/dummy/SDL_systimer.o new file mode 100644 index 0000000..114d47e Binary files /dev/null and b/src/timer/dummy/SDL_systimer.o differ diff --git a/src/timer/prizm/SDL_systimer.c b/src/timer/prizm/SDL_systimer.c new file mode 100644 index 0000000..476d8d9 --- /dev/null +++ b/src/timer/prizm/SDL_systimer.c @@ -0,0 +1,107 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2012 Sam Lantinga + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Sam Lantinga + slouken@libsdl.org +*/ + +#include +#include +#include + +#include "SDL_config.h" + +#ifdef SDL_TIMER_PRIZM + +#include "SDL_timer.h" +#include "../SDL_timer_c.h" + +static volatile unsigned *value; +static volatile unsigned *control; +Uint32 tick_sum = 0; +Uint32 start = 0; + +/* +Uses the first timer (0x900C0000) +TC: http://hackspire.unsads.com/wiki/index.php/Memory-mapped_I/O_ports#900C0000_-_First_timer +CX: http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0271d/Babehiha.html +*/ + +void SDL_StartTicks(void) +{ + +} + +Uint32 SDL_GetTicks (void) +{ + +} + +void SDL_Delay (Uint32 ms) +{ + +} + +#include "SDL_thread.h" + +/* Data to handle a single periodic alarm */ +static int timer_alive = 0; +static SDL_Thread *timer = NULL; + +static int RunTimer(void *unused) +{ + while ( timer_alive ) { + if ( SDL_timer_running ) { + SDL_ThreadedTimerCheck(); + } + SDL_Delay(1); + } + return(0); +} + +/* This is only called if the event thread is not running */ +int SDL_SYS_TimerInit(void) +{ + timer_alive = 1; + timer = SDL_CreateThread(RunTimer, NULL); + if ( timer == NULL ) + return(-1); + return(SDL_SetTimerThreaded(1)); +} + +void SDL_SYS_TimerQuit(void) +{ + timer_alive = 0; + if ( timer ) { + SDL_WaitThread(timer, NULL); + timer = NULL; + } +} + +int SDL_SYS_StartTimer(void) +{ + //SDL_SetError("Timers not implemented on the TI-Nspire"); + return(-1); +} + +void SDL_SYS_StopTimer(void) +{ + return; +} + +#endif /* SDL_TIMER_PRIZM */ diff --git a/src/video/SDL_sysvideo.h b/src/video/SDL_sysvideo.h index 436450e..b6835bc 100644 --- a/src/video/SDL_sysvideo.h +++ b/src/video/SDL_sysvideo.h @@ -53,7 +53,7 @@ struct SDL_VideoDevice { /* * * */ /* Initialization/Query functions */ - /* Initialize the native video subsystem, filling 'vformat' with the + /* Initialize the native video subsystem, filling 'vformat' with the "best" display pixel format, returning 0 or -1 if there's an error. */ int (*VideoInit)(_THIS, SDL_PixelFormat *vformat); @@ -119,7 +119,7 @@ struct SDL_VideoDevice { /* The pixel format used when SDL_CreateRGBSurface creates SDL_HWSURFACEs with alpha */ SDL_PixelFormat* displayformatalphapixel; - + /* Allocates a surface in video memory */ int (*AllocHWSurface)(_THIS, SDL_Surface *surface); @@ -195,7 +195,7 @@ struct SDL_VideoDevice { GLuint texture; #endif int is_32bit; - + /* * * */ /* Window manager functions */ @@ -410,6 +410,9 @@ extern VideoBootStrap AALIB_bootstrap; #if SDL_VIDEO_DRIVER_CACA extern VideoBootStrap CACA_bootstrap; #endif +#if SDL_VIDEO_DRIVER_PRIZME +extern VideoBootStrap PRZ_bootstrap; +#endif #if SDL_VIDEO_DRIVER_DUMMY extern VideoBootStrap DUMMY_bootstrap; #endif diff --git a/src/video/dummy/SDL_nullevents.o b/src/video/dummy/SDL_nullevents.o new file mode 100644 index 0000000..d0a0db5 Binary files /dev/null and b/src/video/dummy/SDL_nullevents.o differ diff --git a/src/video/dummy/SDL_nullmouse.o b/src/video/dummy/SDL_nullmouse.o new file mode 100644 index 0000000..c1fb0ce Binary files /dev/null and b/src/video/dummy/SDL_nullmouse.o differ diff --git a/src/video/dummy/SDL_nullvideo.o b/src/video/dummy/SDL_nullvideo.o new file mode 100644 index 0000000..d7f4912 Binary files /dev/null and b/src/video/dummy/SDL_nullvideo.o differ diff --git a/src/video/prizm/SDL_prizmevents.c b/src/video/prizm/SDL_prizmevents.c new file mode 100644 index 0000000..101a4c8 --- /dev/null +++ b/src/video/prizm/SDL_prizmevents.c @@ -0,0 +1,100 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2012 Sam Lantinga + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Sam Lantinga + slouken@libsdl.org +*/ +#include "SDL_config.h" + +#include "SDL.h" +#include "../../events/SDL_sysevents.h" +#include "../../events/SDL_events_c.h" +#include "../SDL_cursor_c.h" + +#include + +#include "SDL_prizmvideo.h" +#include "SDL_prizmevents_c.h" + +static int nspk_keymap[PRZ_NUMKEYS]; +static SDLKey sdlk_keymap[PRZ_NUMKEYS]; +static Uint8 key_state[PRZ_NUMKEYS]; + +static SDLKey sdlak_keymap[4] = {SDLK_UP, SDLK_RIGHT, SDLK_DOWN, SDLK_LEFT}; +static Uint8 arrow_key_state[4]; + +static void nsp_update_keyboard(void) +{ + int i; + for ( i = 0; i < PRZ_NUMKEYS; ++i ) { + bool key_pressed; + if ( sdlk_keymap[i] == SDLK_UNKNOWN ) + continue; + key_pressed = keydown(nspk_keymap[i]); + PRZ_UPDATE_KEY_EVENT(sdlk_keymap[i], i, key_state[i], key_pressed); + } +} + +static void nsp_update_arrow_keys(void) +{ + bool arrow_key_pressed[4] = { + keydown(KEY_UP), + keydown(KEY_RIGHT), + keydown(KEY_DOWN), + keydown(KEY_LEFT) + }; + int i; + for ( i = 0; i < 4; ++i ) + PRZ_UPDATE_KEY_EVENT(sdlak_keymap[i], i, arrow_key_state[i], arrow_key_pressed[i]); +} + +void PRZ_PumpEvents(_THIS) +{ + nsp_update_keyboard(); + nsp_update_arrow_keys(); +} + +void PRZ_InitOSKeymap(_THIS) +{ + /* Enum value -> KEY_NSPIRE_* */ + + + //nspk_keymap[NSP_KEY_RET] = KEY_NSPIRE_RET; + + /* + ** + ** + ** + ** + */ + + /* Enum value -> SDLK_* + This is the actual key mapping part. */ + + + // sdlk_keymap[NSP_KEY_A] = SDLK_a; + /* + ** + ** + ** + ** + */ +} + +/* end of SDL_tinspireevents.c ... */ + diff --git a/src/video/prizm/SDL_prizmevents_c.h b/src/video/prizm/SDL_prizmevents_c.h new file mode 100644 index 0000000..ad75330 --- /dev/null +++ b/src/video/prizm/SDL_prizmevents_c.h @@ -0,0 +1,102 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2012 Sam Lantinga + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Sam Lantinga + slouken@libsdl.org +*/ +#include "SDL_config.h" + +#include "SDL_prizmvideo.h" + +#define PRZ_UPDATE_KEY_EVENT(s, sc, ks, kp) do { \ + SDL_keysym keysym; \ + keysym.scancode = sc; \ + keysym.sym = s; \ + if ( ks == SDL_RELEASED ) { \ + if ( kp ) { \ + SDL_PrivateKeyboard(SDL_PRESSED, &keysym); \ + ks = SDL_PRESSED; \ + } \ + } else if ( ! kp ) { \ + SDL_PrivateKeyboard(SDL_RELEASED, &keysym); \ + ks = SDL_RELEASED; \ + } \ +} while (0) + +/* Keys */ +enum { + PRZ_KEY_F1, + PRZ_KEY_F2, + PRZ_KEY_F3, + PRZ_KEY_F4, + PRZ_KEY_F5, + PRZ_KEY_F6, + PRZ_KEY_SHIFT, + PRZ_KEY_OPTN, + PRZ_KEY_VARS, + PRZ_KEY_MENU, + PRZ_KEY_LEFT, + PRZ_KEY_UP, + PRZ_KEY_ALPHA, + PRZ_KEY_SQUARE, + PRZ_KEY_POWER, + PRZ_KEY_EXIT, + PRZ_KEY_DOWN, + PRZ_KEY_RIGHT, + PRZ_KEY_XOT, + PRZ_KEY_LOG, + PRZ_KEY_LN, + PRZ_KEY_SIN, + PRZ_KEY_COS, + PRZ_KEY_TAN, + PRZ_KEY_FRAC, + PRZ_KEY_FD, + PRZ_KEY_LEFTP, + PRZ_KEY_RIGHTP, + PRZ_KEY_COMMA, + PRZ_KEY_ARROW, + PRZ_KEY_7, + PRZ_KEY_8, + PRZ_KEY_9, + PRZ_KEY_DEL, + PRZ_KEY_4, + PRZ_KEY_5, + PRZ_KEY_6, + PRZ_KEY_MUL, + PRZ_KEY_DIV, + PRZ_KEY_1, + PRZ_KEY_2, + PRZ_KEY_3, + PRZ_KEY_ADD, + PRZ_KEY_SUB, + PRZ_KEY_0, + PRZ_KEY_DOT, + PRZ_KEY_EXP, + PRZ_KEY_NEG, + PRZ_KEY_EXE, + PRZ_KEY_ACON, + PRZ_NUMKEYS +}; + +/* Variables and functions exported by SDL_sysevents.c to other parts + of the native video subsystem (SDL_sysvideo.c) +*/ +extern void PRZ_InitOSKeymap(_THIS); +extern void PRZ_PumpEvents(_THIS); + +/* end of SDL_tinspireevents_c.h ... */ diff --git a/src/video/prizm/SDL_prizmfonts.c b/src/video/prizm/SDL_prizmfonts.c new file mode 100644 index 0000000..430498c --- /dev/null +++ b/src/video/prizm/SDL_prizmfonts.c @@ -0,0 +1,133 @@ +#include "SDL_config.h" +#include "../SDL_sysvideo.h" +#include "SDL_prizmvideo.h" +#include "SDL_prizmfonts.h" + +nSDL_Font *nSDL_LoadFont(int font_index, Uint8 r, Uint8 g, Uint8 b) +{ + nSDL_Font *font; + int i, j, k; + + font = SDL_malloc(sizeof(*font)); + if ( font == NULL ) { + SDL_OutOfMemory(); + return(NULL); + } + + for ( i = 0; i < NSP_FONT_NUMCHARS; ++i ) { + int offset = 8 * i; + int max_width = 0; + Uint32 color; + SDL_Surface *tmp = SDL_CreateRGBSurface(SDL_SWSURFACE, NSP_FONT_WIDTH, NSP_FONT_HEIGHT, + 16, PRZ_RMASK16, PRZ_GMASK16, PRZ_BMASK16, 0); + if ( tmp == NULL ) { + SDL_OutOfMemory(); + return(NULL); + } + color = SDL_MapRGB(tmp->format, r, g, b); + SDL_FillRect(tmp, NULL, ! color); + SDL_SetColorKey(tmp, SDL_SRCCOLORKEY, ! color); + font->char_width[i] = NSP_FONT_WIDTH; + SDL_LockSurface(tmp); + for ( j = 0; j < NSP_FONT_HEIGHT; ++j ) + for ( k = 0; k < NSP_FONT_WIDTH; ++k ) { + if ( nsp_font_charmaps[font_index][offset + j] & (1 << (NSP_FONT_WIDTH - k - 1)) ) { /* "Pixel" set */ + if ( k > max_width ) { + font->char_width[i] = k + 1; + max_width = k; + } + nSDL_SetPixel(tmp, k, j, color); + } + } + SDL_UnlockSurface(tmp); + font->chars[i] = SDL_DisplayFormat(tmp); + SDL_FreeSurface(tmp); + font->hspacing = font->vspacing = 0; + font->monospaced = SDL_FALSE; + } + + return(font); +} + +void nSDL_SetFontSpacing(nSDL_Font *font, int hspacing, int vspacing) +{ + font->hspacing = hspacing; + font->vspacing = vspacing; +} + +void nSDL_EnableFontMonospaced(nSDL_Font *font, SDL_bool toggle) +{ + font->monospaced = toggle; +} + +void nSDL_FreeFont(nSDL_Font *font) +{ + int i; + if ( font == NULL ) + return; + for ( i = 0; i < NSP_FONT_NUMCHARS; ++i ) + SDL_FreeSurface(font->chars[i]); + SDL_free(font); +} + +int nSDL_DrawString(SDL_Surface *surface, nSDL_Font *font, + int x, int y, const char *format, ...) +{ + char buf[PRZ_BUF_SIZE]; + int length; + SDL_Rect pos; + va_list args; + int i; + + va_start(args, format); + if ( vsprintf(buf, format, args) < 0 ) + return(-1); + va_end(args); + length = (int)strlen(buf); + pos.x = x; + pos.y = y; + PRZ_DEBUG("\"%s\" at (%d, %d)", buf, pos.x, pos.y); + + for ( i = 0; i < length; ++i ) { + int c = buf[i]; + if ( c == '\n' ) { + pos.x = x; + pos.y += NSP_FONT_HEIGHT + font->vspacing; + } else { + SDL_Rect rect; + rect.x = rect.y = 0; + rect.w = font->char_width[c]; + rect.h = NSP_FONT_HEIGHT; + if ( SDL_BlitSurface(font->chars[c], &rect, surface, &pos) == -1 ) + return(-1); + pos.x += NSP_CHAR_WIDTH(font, c) + font->hspacing; + } + } + + return(0); +} + +int nSDL_GetStringWidth(nSDL_Font *font, const char *s) +{ + int width = 0; + int max_width = 0; + do { + if ( *s == '\n' || *s == '\0' ) { + if ( width > max_width ) + max_width = width; + width = 0; + } else + width += NSP_CHAR_WIDTH(font, *s) + font->hspacing; + } while ( *s++ ); + return(max_width - font->hspacing); +} + +int nSDL_GetStringHeight(nSDL_Font *font, const char *s) +{ + int height = 0; + do { + if ( *s == '\n' || *s == '\0' ) + height += NSP_FONT_HEIGHT + font->vspacing; + } while ( *s++ ); + return(height - font->vspacing); +} diff --git a/src/video/prizm/SDL_prizmfonts.h b/src/video/prizm/SDL_prizmfonts.h new file mode 100644 index 0000000..d61ca66 --- /dev/null +++ b/src/video/prizm/SDL_prizmfonts.h @@ -0,0 +1,1309 @@ +#ifndef _SDL_tinspirefonts_h +#define _SDL_tinspirefonts_h + +#define NSP_CHAR_WIDTH(font, c) (font->monospaced ? NSP_FONT_WIDTH : font->char_width[(int)c]) + + +static unsigned char nsp_font_charmaps[NSP_NUMFONTS][2048] = { + /* NSDL_FONT_THIN */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 000 (.) + 0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E, // Char 001 (.) + 0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E, // Char 002 (.) + 0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, // Char 003 (.) + 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, // Char 004 (.) + 0x38, 0x38, 0x38, 0xFE, 0xFE, 0xD6, 0x10, 0x38, // Char 005 (.) + 0x10, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x10, 0x38, // Char 006 (.) + 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, // Char 007 (.) + 0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, // Char 008 (.) + 0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, // Char 009 (.) + 0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, // Char 010 (.) + 0x0F, 0x03, 0x05, 0x7D, 0x84, 0x84, 0x84, 0x78, // Char 011 (.) + 0x3C, 0x42, 0x42, 0x42, 0x3C, 0x18, 0x7E, 0x18, // Char 012 (.) + 0x3F, 0x21, 0x3F, 0x20, 0x20, 0x60, 0xE0, 0xC0, // Char 013 (.) + 0x3F, 0x21, 0x3F, 0x21, 0x23, 0x67, 0xE6, 0xC0, // Char 014 (.) + 0x18, 0xDB, 0x3C, 0xE7, 0xE7, 0x3C, 0xDB, 0x18, // Char 015 (.) + 0x80, 0xE0, 0xF8, 0xFE, 0xF8, 0xE0, 0x80, 0x00, // Char 016 (.) + 0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, 0x00, // Char 017 (.) + 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x7E, 0x3C, 0x18, // Char 018 (.) + 0x24, 0x24, 0x24, 0x24, 0x24, 0x00, 0x24, 0x00, // Char 019 (.) + 0x7F, 0x92, 0x92, 0x72, 0x12, 0x12, 0x12, 0x00, // Char 020 (.) + 0x3E, 0x63, 0x38, 0x44, 0x44, 0x38, 0xCC, 0x78, // Char 021 (.) + 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00, // Char 022 (.) + 0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, 0xFF, // Char 023 (.) + 0x10, 0x38, 0x7C, 0x54, 0x10, 0x10, 0x10, 0x00, // Char 024 (.) + 0x10, 0x10, 0x10, 0x54, 0x7C, 0x38, 0x10, 0x00, // Char 025 (.) + 0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, // Char 026 (.) + 0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00, // Char 027 (.) + 0x00, 0x00, 0x40, 0x40, 0x40, 0x7E, 0x00, 0x00, // Char 028 (.) + 0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00, // Char 029 (.) + 0x00, 0x10, 0x38, 0x7C, 0xFE, 0xFE, 0x00, 0x00, // Char 030 (.) + 0x00, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, // Char 031 (.) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 032 ( ) + 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x10, 0x00, // Char 033 (!) + 0x24, 0x24, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 034 (") + 0x24, 0x24, 0x7E, 0x24, 0x7E, 0x24, 0x24, 0x00, // Char 035 (#) + 0x18, 0x3E, 0x40, 0x3C, 0x02, 0x7C, 0x18, 0x00, // Char 036 ($) + 0x00, 0x62, 0x64, 0x08, 0x10, 0x26, 0x46, 0x00, // Char 037 (%) + 0x30, 0x48, 0x30, 0x56, 0x88, 0x88, 0x76, 0x00, // Char 038 (&) + 0x10, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 039 (') + 0x10, 0x20, 0x40, 0x40, 0x40, 0x20, 0x10, 0x00, // Char 040 (() + 0x20, 0x10, 0x08, 0x08, 0x08, 0x10, 0x20, 0x00, // Char 041 ()) + 0x00, 0x44, 0x38, 0xFE, 0x38, 0x44, 0x00, 0x00, // Char 042 (*) + 0x00, 0x10, 0x10, 0x7C, 0x10, 0x10, 0x00, 0x00, // Char 043 (+) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x20, // Char 044 (,) + 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, // Char 045 (-) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, // Char 046 (.) + 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00, // Char 047 (/) + 0x3C, 0x42, 0x46, 0x4A, 0x52, 0x62, 0x3C, 0x00, // Char 048 (0) + 0x10, 0x30, 0x50, 0x10, 0x10, 0x10, 0x7C, 0x00, // Char 049 (1) + 0x3C, 0x42, 0x02, 0x0C, 0x30, 0x42, 0x7E, 0x00, // Char 050 (2) + 0x3C, 0x42, 0x02, 0x1C, 0x02, 0x42, 0x3C, 0x00, // Char 051 (3) + 0x08, 0x18, 0x28, 0x48, 0xFE, 0x08, 0x1C, 0x00, // Char 052 (4) + 0x7E, 0x40, 0x7C, 0x02, 0x02, 0x42, 0x3C, 0x00, // Char 053 (5) + 0x1C, 0x20, 0x40, 0x7C, 0x42, 0x42, 0x3C, 0x00, // Char 054 (6) + 0x7E, 0x42, 0x04, 0x08, 0x10, 0x10, 0x10, 0x00, // Char 055 (7) + 0x3C, 0x42, 0x42, 0x3C, 0x42, 0x42, 0x3C, 0x00, // Char 056 (8) + 0x3C, 0x42, 0x42, 0x3E, 0x02, 0x04, 0x38, 0x00, // Char 057 (9) + 0x00, 0x10, 0x10, 0x00, 0x00, 0x10, 0x10, 0x00, // Char 058 (:) + 0x00, 0x10, 0x10, 0x00, 0x00, 0x10, 0x10, 0x20, // Char 059 (;) + 0x08, 0x10, 0x20, 0x40, 0x20, 0x10, 0x08, 0x00, // Char 060 (<) + 0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00, // Char 061 (=) + 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x00, // Char 062 (>) + 0x3C, 0x42, 0x02, 0x04, 0x08, 0x00, 0x08, 0x00, // Char 063 (?) + 0x3C, 0x42, 0x5E, 0x52, 0x5E, 0x40, 0x3C, 0x00, // Char 064 (@) + 0x18, 0x24, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x00, // Char 065 (A) + 0x7C, 0x22, 0x22, 0x3C, 0x22, 0x22, 0x7C, 0x00, // Char 066 (B) + 0x1C, 0x22, 0x40, 0x40, 0x40, 0x22, 0x1C, 0x00, // Char 067 (C) + 0x78, 0x24, 0x22, 0x22, 0x22, 0x24, 0x78, 0x00, // Char 068 (D) + 0x7E, 0x22, 0x28, 0x38, 0x28, 0x22, 0x7E, 0x00, // Char 069 (E) + 0x7E, 0x22, 0x28, 0x38, 0x28, 0x20, 0x70, 0x00, // Char 070 (F) + 0x1C, 0x22, 0x40, 0x40, 0x4E, 0x22, 0x1E, 0x00, // Char 071 (G) + 0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x00, // Char 072 (H) + 0x38, 0x10, 0x10, 0x10, 0x10, 0x10, 0x38, 0x00, // Char 073 (I) + 0x0E, 0x04, 0x04, 0x04, 0x44, 0x44, 0x38, 0x00, // Char 074 (J) + 0x62, 0x24, 0x28, 0x30, 0x28, 0x24, 0x63, 0x00, // Char 075 (K) + 0x70, 0x20, 0x20, 0x20, 0x20, 0x22, 0x7E, 0x00, // Char 076 (L) + 0x63, 0x55, 0x49, 0x41, 0x41, 0x41, 0x41, 0x00, // Char 077 (M) + 0x62, 0x52, 0x4A, 0x46, 0x42, 0x42, 0x42, 0x00, // Char 078 (N) + 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, // Char 079 (O) + 0x7C, 0x22, 0x22, 0x3C, 0x20, 0x20, 0x70, 0x00, // Char 080 (P) + 0x3C, 0x42, 0x42, 0x42, 0x4A, 0x3C, 0x03, 0x00, // Char 081 (Q) + 0x7C, 0x22, 0x22, 0x3C, 0x28, 0x24, 0x72, 0x00, // Char 082 (R) + 0x3C, 0x42, 0x40, 0x3C, 0x02, 0x42, 0x3C, 0x00, // Char 083 (S) + 0x7F, 0x49, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, // Char 084 (T) + 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, // Char 085 (U) + 0x41, 0x41, 0x41, 0x41, 0x22, 0x14, 0x08, 0x00, // Char 086 (V) + 0x41, 0x41, 0x41, 0x49, 0x49, 0x49, 0x36, 0x00, // Char 087 (W) + 0x41, 0x22, 0x14, 0x08, 0x14, 0x22, 0x41, 0x00, // Char 088 (X) + 0x41, 0x22, 0x14, 0x08, 0x08, 0x08, 0x1C, 0x00, // Char 089 (Y) + 0x7F, 0x42, 0x04, 0x08, 0x10, 0x21, 0x7F, 0x00, // Char 090 (Z) + 0x78, 0x40, 0x40, 0x40, 0x40, 0x40, 0x78, 0x00, // Char 091 ([) + 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, // Char 092 (\) + 0x78, 0x08, 0x08, 0x08, 0x08, 0x08, 0x78, 0x00, // Char 093 (]) + 0x10, 0x28, 0x44, 0x82, 0x00, 0x00, 0x00, 0x00, // Char 094 (^) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, // Char 095 (_) + 0x10, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 096 (`) + 0x00, 0x00, 0x3C, 0x02, 0x3E, 0x42, 0x3F, 0x00, // Char 097 (a) + 0x60, 0x20, 0x20, 0x2E, 0x31, 0x31, 0x2E, 0x00, // Char 098 (b) + 0x00, 0x00, 0x3C, 0x42, 0x40, 0x42, 0x3C, 0x00, // Char 099 (c) + 0x06, 0x02, 0x02, 0x3A, 0x46, 0x46, 0x3B, 0x00, // Char 100 (d) + 0x00, 0x00, 0x3C, 0x42, 0x7E, 0x40, 0x3C, 0x00, // Char 101 (e) + 0x0C, 0x12, 0x10, 0x38, 0x10, 0x10, 0x38, 0x00, // Char 102 (f) + 0x00, 0x00, 0x3D, 0x42, 0x42, 0x3E, 0x02, 0x7C, // Char 103 (g) + 0x60, 0x20, 0x2C, 0x32, 0x22, 0x22, 0x62, 0x00, // Char 104 (h) + 0x10, 0x00, 0x30, 0x10, 0x10, 0x10, 0x38, 0x00, // Char 105 (i) + 0x02, 0x00, 0x06, 0x02, 0x02, 0x42, 0x42, 0x3C, // Char 106 (j) + 0x60, 0x20, 0x24, 0x28, 0x30, 0x28, 0x26, 0x00, // Char 107 (k) + 0x30, 0x10, 0x10, 0x10, 0x10, 0x10, 0x38, 0x00, // Char 108 (l) + 0x00, 0x00, 0x76, 0x49, 0x49, 0x49, 0x49, 0x00, // Char 109 (m) + 0x00, 0x00, 0x5C, 0x62, 0x42, 0x42, 0x42, 0x00, // Char 110 (n) + 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x3C, 0x00, // Char 111 (o) + 0x00, 0x00, 0x6C, 0x32, 0x32, 0x2C, 0x20, 0x70, // Char 112 (p) + 0x00, 0x00, 0x36, 0x4C, 0x4C, 0x34, 0x04, 0x0E, // Char 113 (q) + 0x00, 0x00, 0x6C, 0x32, 0x22, 0x20, 0x70, 0x00, // Char 114 (r) + 0x00, 0x00, 0x3E, 0x40, 0x3C, 0x02, 0x7C, 0x00, // Char 115 (s) + 0x10, 0x10, 0x7C, 0x10, 0x10, 0x12, 0x0C, 0x00, // Char 116 (t) + 0x00, 0x00, 0x42, 0x42, 0x42, 0x46, 0x3A, 0x00, // Char 117 (u) + 0x00, 0x00, 0x41, 0x41, 0x22, 0x14, 0x08, 0x00, // Char 118 (v) + 0x00, 0x00, 0x41, 0x49, 0x49, 0x49, 0x36, 0x00, // Char 119 (w) + 0x00, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, // Char 120 (x) + 0x00, 0x00, 0x42, 0x42, 0x42, 0x3E, 0x02, 0x7C, // Char 121 (y) + 0x00, 0x00, 0x7C, 0x08, 0x10, 0x20, 0x7C, 0x00, // Char 122 (z) + 0x0C, 0x10, 0x10, 0x60, 0x10, 0x10, 0x0C, 0x00, // Char 123 ({) + 0x10, 0x10, 0x10, 0x00, 0x10, 0x10, 0x10, 0x00, // Char 124 (|) + 0x30, 0x08, 0x08, 0x06, 0x08, 0x08, 0x30, 0x00, // Char 125 (}) + 0x32, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 126 (~) + 0x00, 0x08, 0x14, 0x22, 0x41, 0x41, 0x7F, 0x00, // Char 127 (.) + 0x3C, 0x42, 0x40, 0x42, 0x3C, 0x0C, 0x02, 0x3C, // Char 128 (.) + 0x00, 0x44, 0x00, 0x44, 0x44, 0x44, 0x3E, 0x00, // Char 129 (.) + 0x0C, 0x00, 0x3C, 0x42, 0x7E, 0x40, 0x3C, 0x00, // Char 130 (.) + 0x3C, 0x42, 0x38, 0x04, 0x3C, 0x44, 0x3E, 0x00, // Char 131 (.) + 0x42, 0x00, 0x38, 0x04, 0x3C, 0x44, 0x3E, 0x00, // Char 132 (.) + 0x30, 0x00, 0x38, 0x04, 0x3C, 0x44, 0x3E, 0x00, // Char 133 (.) + 0x10, 0x00, 0x38, 0x04, 0x3C, 0x44, 0x3E, 0x00, // Char 134 (.) + 0x00, 0x00, 0x3C, 0x40, 0x40, 0x3C, 0x06, 0x1C, // Char 135 (.) + 0x3C, 0x42, 0x3C, 0x42, 0x7E, 0x40, 0x3C, 0x00, // Char 136 (.) + 0x42, 0x00, 0x3C, 0x42, 0x7E, 0x40, 0x3C, 0x00, // Char 137 (.) + 0x30, 0x00, 0x3C, 0x42, 0x7E, 0x40, 0x3C, 0x00, // Char 138 (.) + 0x24, 0x00, 0x18, 0x08, 0x08, 0x08, 0x1C, 0x00, // Char 139 (.) + 0x7C, 0x82, 0x30, 0x10, 0x10, 0x10, 0x38, 0x00, // Char 140 (.) + 0x30, 0x00, 0x18, 0x08, 0x08, 0x08, 0x1C, 0x00, // Char 141 (.) + 0x42, 0x18, 0x24, 0x42, 0x7E, 0x42, 0x42, 0x00, // Char 142 (.) + 0x18, 0x18, 0x00, 0x3C, 0x42, 0x7E, 0x42, 0x00, // Char 143 (.) + 0x0C, 0x00, 0x7C, 0x20, 0x38, 0x20, 0x7C, 0x00, // Char 144 (.) + 0x00, 0x00, 0x33, 0x0C, 0x3F, 0x44, 0x3B, 0x00, // Char 145 (.) + 0x1F, 0x24, 0x44, 0x7F, 0x44, 0x44, 0x47, 0x00, // Char 146 (.) + 0x18, 0x24, 0x00, 0x3C, 0x42, 0x42, 0x3C, 0x00, // Char 147 (.) + 0x00, 0x42, 0x00, 0x3C, 0x42, 0x42, 0x3C, 0x00, // Char 148 (.) + 0x20, 0x10, 0x00, 0x3C, 0x42, 0x42, 0x3C, 0x00, // Char 149 (.) + 0x18, 0x24, 0x00, 0x42, 0x42, 0x42, 0x3C, 0x00, // Char 150 (.) + 0x20, 0x10, 0x00, 0x42, 0x42, 0x42, 0x3C, 0x00, // Char 151 (.) + 0x00, 0x42, 0x00, 0x42, 0x42, 0x3E, 0x02, 0x3C, // Char 152 (.) + 0x42, 0x18, 0x24, 0x42, 0x42, 0x24, 0x18, 0x00, // Char 153 (.) + 0x42, 0x00, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, // Char 154 (.) + 0x08, 0x08, 0x3E, 0x40, 0x40, 0x3E, 0x08, 0x08, // Char 155 (.) + 0x18, 0x24, 0x20, 0x70, 0x20, 0x42, 0x7C, 0x00, // Char 156 (.) + 0x44, 0x28, 0x7C, 0x10, 0x7C, 0x10, 0x10, 0x00, // Char 157 (.) + 0xF8, 0x4C, 0x78, 0x44, 0x4F, 0x44, 0x45, 0xE6, // Char 158 (.) + 0x1C, 0x12, 0x10, 0x7C, 0x10, 0x10, 0x90, 0x60, // Char 159 (.) + 0x0C, 0x00, 0x38, 0x04, 0x3C, 0x44, 0x3E, 0x00, // Char 160 (.) + 0x0C, 0x00, 0x18, 0x08, 0x08, 0x08, 0x1C, 0x00, // Char 161 (.) + 0x04, 0x08, 0x00, 0x3C, 0x42, 0x42, 0x3C, 0x00, // Char 162 (.) + 0x00, 0x04, 0x08, 0x42, 0x42, 0x42, 0x3C, 0x00, // Char 163 (.) + 0x32, 0x4C, 0x00, 0x7C, 0x42, 0x42, 0x42, 0x00, // Char 164 (.) + 0x32, 0x4C, 0x00, 0x62, 0x52, 0x4A, 0x46, 0x00, // Char 165 (.) + 0x3C, 0x44, 0x44, 0x3E, 0x00, 0x7E, 0x00, 0x00, // Char 166 (.) + 0x38, 0x44, 0x44, 0x38, 0x00, 0x7C, 0x00, 0x00, // Char 167 (.) + 0x10, 0x00, 0x10, 0x20, 0x40, 0x42, 0x3C, 0x00, // Char 168 (.) + 0x00, 0x00, 0x00, 0x7E, 0x40, 0x40, 0x00, 0x00, // Char 169 (.) + 0x00, 0x00, 0x00, 0x7E, 0x02, 0x02, 0x00, 0x00, // Char 170 (.) + 0x42, 0xC4, 0x48, 0xF6, 0x29, 0x43, 0x8C, 0x1F, // Char 171 (.) + 0x42, 0xC4, 0x4A, 0xF6, 0x2A, 0x5F, 0x82, 0x02, // Char 172 (.) + 0x00, 0x10, 0x00, 0x10, 0x10, 0x10, 0x10, 0x00, // Char 173 (.) + 0x00, 0x12, 0x24, 0x48, 0x24, 0x12, 0x00, 0x00, // Char 174 (.) + 0x00, 0x48, 0x24, 0x12, 0x24, 0x48, 0x00, 0x00, // Char 175 (.) + 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, // Char 176 (.) + 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, // Char 177 (.) + 0xDB, 0x77, 0xDB, 0xEE, 0xDB, 0x77, 0xDB, 0xEE, // Char 178 (.) + 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, // Char 179 (.) + 0x10, 0x10, 0x10, 0x10, 0xF0, 0x10, 0x10, 0x10, // Char 180 (.) + 0x10, 0x10, 0xF0, 0x10, 0xF0, 0x10, 0x10, 0x10, // Char 181 (.) + 0x14, 0x14, 0x14, 0x14, 0xF4, 0x14, 0x14, 0x14, // Char 182 (.) + 0x00, 0x00, 0x00, 0x00, 0xFC, 0x14, 0x14, 0x14, // Char 183 (.) + 0x00, 0x00, 0xF0, 0x10, 0xF0, 0x10, 0x10, 0x10, // Char 184 (.) + 0x14, 0x14, 0xF4, 0x04, 0xF4, 0x14, 0x14, 0x14, // Char 185 (.) + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, // Char 186 (.) + 0x00, 0x00, 0xFC, 0x04, 0xF4, 0x14, 0x14, 0x14, // Char 187 (.) + 0x14, 0x14, 0xF4, 0x04, 0xFC, 0x00, 0x00, 0x00, // Char 188 (.) + 0x14, 0x14, 0x14, 0x14, 0xFC, 0x00, 0x00, 0x00, // Char 189 (.) + 0x10, 0x10, 0xF0, 0x10, 0xF0, 0x00, 0x00, 0x00, // Char 190 (.) + 0x00, 0x00, 0x00, 0x00, 0xF0, 0x10, 0x10, 0x10, // Char 191 (.) + 0x10, 0x10, 0x10, 0x10, 0x1F, 0x00, 0x00, 0x00, // Char 192 (.) + 0x10, 0x10, 0x10, 0x10, 0xFF, 0x00, 0x00, 0x00, // Char 193 (.) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x10, 0x10, 0x10, // Char 194 (.) + 0x10, 0x10, 0x10, 0x10, 0x1F, 0x10, 0x10, 0x10, // Char 195 (.) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, // Char 196 (.) + 0x10, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, // Char 197 (.) + 0x10, 0x10, 0x1F, 0x10, 0x1F, 0x10, 0x10, 0x10, // Char 198 (.) + 0x14, 0x14, 0x14, 0x14, 0x17, 0x14, 0x14, 0x14, // Char 199 (.) + 0x14, 0x14, 0x17, 0x10, 0x1F, 0x00, 0x00, 0x00, // Char 200 (.) + 0x00, 0x00, 0x1F, 0x10, 0x17, 0x14, 0x14, 0x14, // Char 201 (.) + 0x14, 0x14, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, // Char 202 (.) + 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x14, 0x14, 0x14, // Char 203 (.) + 0x14, 0x14, 0x17, 0x10, 0x17, 0x14, 0x14, 0x14, // Char 204 (.) + 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, // Char 205 (.) + 0x14, 0x14, 0xF7, 0x00, 0xF7, 0x14, 0x14, 0x14, // Char 206 (.) + 0x10, 0x10, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, // Char 207 (.) + 0x14, 0x14, 0x14, 0x14, 0xFF, 0x00, 0x00, 0x00, // Char 208 (.) + 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x10, 0x10, 0x10, // Char 209 (.) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x14, 0x14, 0x14, // Char 210 (.) + 0x14, 0x14, 0x14, 0x14, 0x1F, 0x00, 0x00, 0x00, // Char 211 (.) + 0x10, 0x10, 0x1F, 0x10, 0x1F, 0x00, 0x00, 0x00, // Char 212 (.) + 0x00, 0x00, 0x1F, 0x10, 0x1F, 0x10, 0x10, 0x10, // Char 213 (.) + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x14, 0x14, 0x14, // Char 214 (.) + 0x14, 0x14, 0x14, 0x14, 0xFF, 0x14, 0x14, 0x14, // Char 215 (.) + 0x10, 0x10, 0xFF, 0x10, 0xFF, 0x10, 0x10, 0x10, // Char 216 (.) + 0x10, 0x10, 0x10, 0x10, 0xF0, 0x00, 0x00, 0x00, // Char 217 (.) + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x10, 0x10, // Char 218 (.) + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Char 219 (.) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, // Char 220 (.) + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, // Char 221 (.) + 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, // Char 222 (.) + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, // Char 223 (.) + 0x00, 0x00, 0x31, 0x4A, 0x44, 0x4A, 0x31, 0x00, // Char 224 (.) + 0x00, 0x3C, 0x42, 0x7C, 0x42, 0x7C, 0x40, 0x40, // Char 225 (.) + 0x00, 0x7E, 0x42, 0x40, 0x40, 0x40, 0x40, 0x00, // Char 226 (.) + 0x00, 0x3F, 0x54, 0x14, 0x14, 0x14, 0x14, 0x00, // Char 227 (.) + 0x7E, 0x42, 0x20, 0x18, 0x20, 0x42, 0x7E, 0x00, // Char 228 (.) + 0x00, 0x00, 0x3E, 0x48, 0x48, 0x48, 0x30, 0x00, // Char 229 (.) + 0x00, 0x44, 0x44, 0x44, 0x7A, 0x40, 0x40, 0x80, // Char 230 (.) + 0x00, 0x33, 0x4C, 0x08, 0x08, 0x08, 0x08, 0x00, // Char 231 (.) + 0x7C, 0x10, 0x38, 0x44, 0x44, 0x38, 0x10, 0x7C, // Char 232 (.) + 0x18, 0x24, 0x42, 0x7E, 0x42, 0x24, 0x18, 0x00, // Char 233 (.) + 0x18, 0x24, 0x42, 0x42, 0x24, 0x24, 0x66, 0x00, // Char 234 (.) + 0x1C, 0x20, 0x18, 0x3C, 0x42, 0x42, 0x3C, 0x00, // Char 235 (.) + 0x00, 0x62, 0x95, 0x89, 0x95, 0x62, 0x00, 0x00, // Char 236 (.) + 0x02, 0x04, 0x3C, 0x4A, 0x52, 0x3C, 0x40, 0x80, // Char 237 (.) + 0x0C, 0x10, 0x20, 0x3C, 0x20, 0x10, 0x0C, 0x00, // Char 238 (.) + 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x00, // Char 239 (.) + 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, // Char 240 (.) + 0x10, 0x10, 0x7C, 0x10, 0x10, 0x00, 0x7C, 0x00, // Char 241 (.) + 0x10, 0x08, 0x04, 0x08, 0x10, 0x00, 0x7E, 0x00, // Char 242 (.) + 0x08, 0x10, 0x20, 0x10, 0x08, 0x00, 0x7E, 0x00, // Char 243 (.) + 0x0C, 0x12, 0x12, 0x10, 0x10, 0x10, 0x10, 0x10, // Char 244 (.) + 0x10, 0x10, 0x10, 0x10, 0x10, 0x90, 0x90, 0x60, // Char 245 (.) + 0x18, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00, // Char 246 (.) + 0x00, 0x32, 0x4C, 0x00, 0x32, 0x4C, 0x00, 0x00, // Char 247 (.) + 0x30, 0x48, 0x48, 0x30, 0x00, 0x00, 0x00, 0x00, // Char 248 (.) + 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, // Char 249 (.) + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, // Char 250 (.) + 0x0F, 0x08, 0x08, 0x08, 0x08, 0xC8, 0x28, 0x18, // Char 251 (.) + 0x78, 0x44, 0x44, 0x44, 0x44, 0x00, 0x00, 0x00, // Char 252 (.) + 0x30, 0x48, 0x10, 0x20, 0x78, 0x00, 0x00, 0x00, // Char 253 (.) + 0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, // Char 254 (.) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Char 255 (.) + }, + + /* NSDL_FONT_SPACE */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 000 (.) + 0x20, 0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, // Char 001 (.) + 0x7E, 0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, // Char 002 (.) + 0x7E, 0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, // Char 003 (.) + 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, // Char 004 (.) + 0x00, 0x38, 0x7C, 0x38, 0xFE, 0xFE, 0x7C, 0x38, // Char 005 (.) + 0x7C, 0x10, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, // Char 006 (.) + 0x7C, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, // Char 007 (.) + 0x00, 0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, // Char 008 (.) + 0xFF, 0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, // Char 009 (.) + 0x00, 0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, // Char 010 (.) + 0xFF, 0x0F, 0x07, 0x0F, 0x7D, 0xCC, 0xCC, 0xCC, // Char 011 (.) + 0x78, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, // Char 012 (.) + 0x18, 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x70, 0xF0, // Char 013 (.) + 0xE0, 0x7F, 0x63, 0x7F, 0x63, 0x63, 0x67, 0xE6, // Char 014 (.) + 0xC0, 0x99, 0x5A, 0x3C, 0xE7, 0xE7, 0x3C, 0x5A, // Char 015 (.) + 0x99, 0x80, 0xE0, 0xF8, 0xFE, 0xF8, 0xE0, 0x80, // Char 016 (.) + 0x00, 0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, // Char 017 (.) + 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x7E, 0x3C, // Char 018 (.) + 0x18, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, // Char 019 (.) + 0x00, 0x7F, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, // Char 020 (.) + 0x00, 0x3E, 0x63, 0x38, 0x6C, 0x6C, 0x38, 0xCC, // Char 021 (.) + 0x78, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, // Char 022 (.) + 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, // Char 023 (.) + 0xFF, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, // Char 024 (.) + 0x00, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, // Char 025 (.) + 0x00, 0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, // Char 026 (.) + 0x00, 0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, // Char 027 (.) + 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, // Char 028 (.) + 0x00, 0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, // Char 029 (.) + 0x00, 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x00, // Char 030 (.) + 0x00, 0x00, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, 0x00, // Char 031 (.) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 032 ( ) + 0x00, 0x30, 0x78, 0x78, 0x30, 0x30, 0x00, 0x30, // Char 033 (!) + 0x00, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, // Char 034 (") + 0x00, 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, // Char 035 (#) + 0x00, 0x30, 0x7C, 0xC0, 0x78, 0x0C, 0xF8, 0x30, // Char 036 ($) + 0x00, 0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, // Char 037 (%) + 0x00, 0x38, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0x76, // Char 038 (&) + 0x00, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, // Char 039 (') + 0x00, 0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, // Char 040 (() + 0x00, 0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, // Char 041 ()) + 0x00, 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, // Char 042 (*) + 0x00, 0x00, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x00, // Char 043 (+) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, // Char 044 (,) + 0x60, 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, // Char 045 (-) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, // Char 046 (.) + 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, // Char 047 (/) + 0x00, 0xFE, 0x86, 0x8E, 0xD2, 0xE2, 0xC2, 0xFE, // Char 048 (0) + 0x00, 0x10, 0x10, 0x10, 0x30, 0x30, 0x30, 0x30, // Char 049 (1) + 0x00, 0x3C, 0x46, 0x06, 0x0C, 0x30, 0x60, 0x7E, // Char 050 (2) + 0x00, 0x3C, 0x46, 0x06, 0x1C, 0x02, 0x62, 0x7C, // Char 051 (3) + 0x00, 0x4C, 0x4C, 0x44, 0x44, 0x7C, 0x0C, 0x0C, // Char 052 (4) + 0x00, 0x7E, 0x40, 0x7C, 0x02, 0x02, 0x62, 0x7C, // Char 053 (5) + 0x00, 0x3C, 0x66, 0x40, 0x7C, 0x62, 0x62, 0x3C, // Char 054 (6) + 0x00, 0x7C, 0x0C, 0x04, 0x04, 0x0C, 0x0C, 0x0C, // Char 055 (7) + 0x00, 0x3C, 0x46, 0x46, 0x3C, 0x62, 0x62, 0x3C, // Char 056 (8) + 0x00, 0x3C, 0x46, 0x46, 0x3E, 0x02, 0x62, 0x3C, // Char 057 (9) + 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x30, 0x30, // Char 058 (:) + 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x30, 0x30, // Char 059 (;) + 0x60, 0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, // Char 060 (<) + 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, // Char 061 (=) + 0x00, 0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60, // Char 062 (>) + 0x00, 0x78, 0xCC, 0x0C, 0x18, 0x30, 0x00, 0x30, // Char 063 (?) + 0x00, 0x7C, 0xC6, 0xDE, 0xDE, 0xDE, 0xC0, 0x78, // Char 064 (@) + 0x00, 0x7E, 0x46, 0x42, 0x42, 0x7E, 0x62, 0x62, // Char 065 (A) + 0x00, 0x7C, 0x4C, 0x44, 0x7E, 0x62, 0x62, 0x7E, // Char 066 (B) + 0x00, 0x7E, 0x46, 0x40, 0x60, 0x60, 0x62, 0x7E, // Char 067 (C) + 0x00, 0x7C, 0x46, 0x46, 0x42, 0x62, 0x62, 0x7C, // Char 068 (D) + 0x00, 0x7E, 0x46, 0x40, 0x78, 0x60, 0x62, 0x7E, // Char 069 (E) + 0x00, 0x7E, 0x46, 0x40, 0x78, 0x60, 0x60, 0x60, // Char 070 (F) + 0x00, 0x7E, 0x46, 0x40, 0x4E, 0x62, 0x62, 0x7E, // Char 071 (G) + 0x00, 0x4C, 0x4C, 0x44, 0x7C, 0x64, 0x64, 0x64, // Char 072 (H) + 0x00, 0x10, 0x10, 0x10, 0x18, 0x18, 0x18, 0x18, // Char 073 (I) + 0x00, 0x06, 0x06, 0x02, 0x02, 0x62, 0x62, 0x7E, // Char 074 (J) + 0x00, 0x46, 0x46, 0x4C, 0x78, 0x64, 0x62, 0x62, // Char 075 (K) + 0x00, 0x40, 0x40, 0x40, 0x60, 0x60, 0x60, 0x7E, // Char 076 (L) + 0x00, 0xC6, 0xEE, 0xBE, 0x92, 0xD2, 0xC2, 0xC2, // Char 077 (M) + 0x00, 0x46, 0x46, 0x62, 0x52, 0x6A, 0x66, 0x62, // Char 078 (N) + 0x00, 0x7E, 0x46, 0x46, 0x62, 0x62, 0x62, 0x7E, // Char 079 (O) + 0x00, 0x7E, 0x46, 0x46, 0x7E, 0x60, 0x60, 0x60, // Char 080 (P) + 0x00, 0x7E, 0x46, 0x46, 0x62, 0x62, 0x7E, 0x1C, // Char 081 (Q) + 0x04, 0x7E, 0x46, 0x46, 0x7C, 0x68, 0x64, 0x62, // Char 082 (R) + 0x00, 0x7E, 0x46, 0x60, 0x18, 0x06, 0x62, 0x7E, // Char 083 (S) + 0x00, 0x7E, 0x16, 0x10, 0x18, 0x18, 0x18, 0x18, // Char 084 (T) + 0x00, 0x46, 0x46, 0x42, 0x62, 0x62, 0x62, 0x7E, // Char 085 (U) + 0x00, 0x46, 0x46, 0x46, 0x42, 0x64, 0x38, 0x10, // Char 086 (V) + 0x00, 0x86, 0x86, 0x82, 0xD2, 0xFA, 0xEE, 0xC6, // Char 087 (W) + 0x00, 0x86, 0x86, 0x4C, 0x30, 0x68, 0xE4, 0xC2, // Char 088 (X) + 0x00, 0x46, 0x46, 0x42, 0x3C, 0x18, 0x18, 0x18, // Char 089 (Y) + 0x00, 0xFE, 0x06, 0x08, 0x10, 0x20, 0xC0, 0xFE, // Char 090 (Z) + 0x00, 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, // Char 091 ([) + 0x00, 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x02, // Char 092 (\) + 0x00, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, // Char 093 (]) + 0x00, 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, // Char 094 (^) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 095 (_) + 0xFF, 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, // Char 096 (`) + 0x00, 0x00, 0x00, 0x7E, 0x06, 0x7E, 0x62, 0x7E, // Char 097 (a) + 0x00, 0x40, 0x40, 0x40, 0x7E, 0x62, 0x62, 0x7E, // Char 098 (b) + 0x00, 0x00, 0x00, 0x7E, 0x46, 0x60, 0x60, 0x7E, // Char 099 (c) + 0x00, 0x06, 0x06, 0x02, 0x7E, 0x62, 0x62, 0x7E, // Char 100 (d) + 0x00, 0x00, 0x00, 0x7E, 0x46, 0x7E, 0x60, 0x7E, // Char 101 (e) + 0x00, 0x0C, 0x1C, 0x20, 0x78, 0x60, 0x60, 0x60, // Char 102 (f) + 0x00, 0x00, 0x00, 0x7E, 0x46, 0x42, 0x7E, 0x06, // Char 103 (g) + 0x78, 0x40, 0x40, 0x40, 0x7E, 0x62, 0x62, 0x62, // Char 104 (h) + 0x00, 0x10, 0x00, 0x10, 0x10, 0x18, 0x18, 0x18, // Char 105 (i) + 0x00, 0x0C, 0x00, 0x0C, 0x04, 0x04, 0x64, 0x64, // Char 106 (j) + 0x7C, 0x40, 0x40, 0x46, 0x4C, 0x78, 0x64, 0x62, // Char 107 (k) + 0x00, 0x10, 0x10, 0x10, 0x10, 0x18, 0x18, 0x18, // Char 108 (l) + 0x00, 0x00, 0x00, 0xFE, 0x96, 0x96, 0xD2, 0xD2, // Char 109 (m) + 0x00, 0x00, 0x00, 0x7E, 0x46, 0x62, 0x62, 0x62, // Char 110 (n) + 0x00, 0x00, 0x00, 0x7E, 0x46, 0x62, 0x62, 0x7E, // Char 111 (o) + 0x00, 0x00, 0x00, 0x7E, 0x46, 0x42, 0x7E, 0x60, // Char 112 (p) + 0x60, 0x00, 0x00, 0x7E, 0x46, 0x42, 0x7E, 0x02, // Char 113 (q) + 0x02, 0x00, 0x00, 0x7E, 0x46, 0x60, 0x60, 0x60, // Char 114 (r) + 0x00, 0x00, 0x00, 0x7C, 0x40, 0x7C, 0x04, 0x7C, // Char 115 (s) + 0x00, 0x10, 0x10, 0x3C, 0x10, 0x10, 0x18, 0x1C, // Char 116 (t) + 0x00, 0x00, 0x00, 0x46, 0x46, 0x62, 0x62, 0x7E, // Char 117 (u) + 0x00, 0x00, 0x00, 0x46, 0x46, 0x66, 0x34, 0x18, // Char 118 (v) + 0x00, 0x00, 0x00, 0x86, 0x96, 0xD2, 0xFE, 0x6C, // Char 119 (w) + 0x00, 0x00, 0x00, 0x46, 0x2C, 0x18, 0x34, 0x62, // Char 120 (x) + 0x00, 0x00, 0x00, 0x46, 0x46, 0x62, 0x7E, 0x02, // Char 121 (y) + 0x7C, 0x00, 0x00, 0x7E, 0x0C, 0x18, 0x30, 0x7E, // Char 122 (z) + 0x00, 0x1C, 0x30, 0x30, 0xE0, 0x30, 0x30, 0x1C, // Char 123 ({) + 0x00, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, // Char 124 (|) + 0x00, 0xE0, 0x30, 0x30, 0x1C, 0x30, 0x30, 0xE0, // Char 125 (}) + 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 126 (~) + 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, // Char 127 (.) + 0x00, 0x7E, 0x46, 0x40, 0x60, 0x62, 0x7E, 0x0C, // Char 128 (.) + 0x18, 0x00, 0x66, 0x00, 0x46, 0x62, 0x62, 0x7E, // Char 129 (.) + 0x00, 0x1C, 0x00, 0x7E, 0x46, 0x7E, 0x60, 0x7E, // Char 130 (.) + 0x00, 0x3C, 0x42, 0x3C, 0x06, 0x7E, 0x62, 0x7E, // Char 131 (.) + 0x00, 0x66, 0x00, 0x7E, 0x06, 0x7E, 0x62, 0x7E, // Char 132 (.) + 0x00, 0x70, 0x00, 0x7E, 0x06, 0x7E, 0x62, 0x7E, // Char 133 (.) + 0x00, 0x30, 0x30, 0x78, 0x0C, 0x7C, 0xCC, 0x7E, // Char 134 (.) + 0x00, 0x00, 0x00, 0x7E, 0x46, 0x60, 0x7E, 0x0C, // Char 135 (.) + 0x38, 0x3C, 0x42, 0x3C, 0x66, 0x7E, 0x60, 0x7E, // Char 136 (.) + 0x00, 0x66, 0x00, 0x7E, 0x46, 0x7E, 0x60, 0x7E, // Char 137 (.) + 0x00, 0x70, 0x00, 0x7E, 0x46, 0x7E, 0x60, 0x7E, // Char 138 (.) + 0x00, 0x66, 0x00, 0x10, 0x10, 0x18, 0x18, 0x18, // Char 139 (.) + 0x00, 0x38, 0x44, 0x10, 0x10, 0x18, 0x18, 0x18, // Char 140 (.) + 0x00, 0x60, 0x00, 0x10, 0x10, 0x18, 0x18, 0x18, // Char 141 (.) + 0x00, 0xC6, 0x38, 0x4C, 0x86, 0xFE, 0xC2, 0xC2, // Char 142 (.) + 0x00, 0x18, 0x18, 0x00, 0x3C, 0x46, 0x7E, 0x62, // Char 143 (.) + 0x00, 0x1C, 0x00, 0x7E, 0x42, 0x78, 0x60, 0x7E, // Char 144 (.) + 0x00, 0x00, 0x00, 0x7F, 0x0C, 0x7F, 0xCC, 0x7F, // Char 145 (.) + 0x00, 0x3E, 0x6C, 0xCC, 0xFE, 0xCC, 0xCC, 0xCE, // Char 146 (.) + 0x00, 0x18, 0x2C, 0x00, 0x7E, 0x46, 0x62, 0x7E, // Char 147 (.) + 0x00, 0x00, 0x66, 0x00, 0x7E, 0x46, 0x62, 0x7E, // Char 148 (.) + 0x00, 0x00, 0x70, 0x00, 0x7E, 0x46, 0x62, 0x7E, // Char 149 (.) + 0x00, 0x18, 0x2C, 0x00, 0x46, 0x46, 0x62, 0x7E, // Char 150 (.) + 0x00, 0x00, 0x70, 0x00, 0x46, 0x46, 0x62, 0x7E, // Char 151 (.) + 0x00, 0x00, 0x6E, 0x00, 0x46, 0x66, 0x7E, 0x02, // Char 152 (.) + 0x7C, 0xC3, 0x3C, 0x46, 0x46, 0x62, 0x62, 0x7E, // Char 153 (.) + 0x00, 0x66, 0x00, 0x46, 0x46, 0x62, 0x62, 0x7E, // Char 154 (.) + 0x00, 0x18, 0x18, 0x7E, 0xC0, 0xC0, 0x7E, 0x18, // Char 155 (.) + 0x18, 0x38, 0x6C, 0x64, 0xF0, 0x60, 0xE6, 0xFC, // Char 156 (.) + 0x00, 0xCC, 0xCC, 0x78, 0xFC, 0x30, 0xFC, 0x30, // Char 157 (.) + 0x30, 0xF8, 0xCC, 0xCC, 0xFA, 0xC6, 0xCF, 0xC6, // Char 158 (.) + 0xC7, 0x0E, 0x1B, 0x18, 0x3C, 0x18, 0x18, 0xD8, // Char 159 (.) + 0x70, 0x0E, 0x00, 0x7E, 0x06, 0x7E, 0x62, 0x7E, // Char 160 (.) + 0x00, 0x1C, 0x00, 0x20, 0x20, 0x30, 0x30, 0x30, // Char 161 (.) + 0x00, 0x00, 0x0E, 0x00, 0x7E, 0x46, 0x62, 0x7E, // Char 162 (.) + 0x00, 0x00, 0x0E, 0x00, 0x46, 0x46, 0x62, 0x7E, // Char 163 (.) + 0x00, 0x32, 0x4C, 0x00, 0x7E, 0x46, 0x62, 0x62, // Char 164 (.) + 0x00, 0x7E, 0x00, 0x46, 0x66, 0x72, 0x6A, 0x66, // Char 165 (.) + 0x00, 0x3C, 0x0C, 0x3C, 0x3C, 0x00, 0x3C, 0x00, // Char 166 (.) + 0x00, 0x3C, 0x24, 0x34, 0x3C, 0x00, 0x3C, 0x00, // Char 167 (.) + 0x00, 0x30, 0x00, 0x30, 0x60, 0xC0, 0xCC, 0x78, // Char 168 (.) + 0x00, 0x00, 0x00, 0x00, 0xFC, 0xC0, 0xC0, 0x00, // Char 169 (.) + 0x00, 0x00, 0x00, 0x00, 0xFC, 0x0C, 0x0C, 0x00, // Char 170 (.) + 0x00, 0xC3, 0xC6, 0xCC, 0xDE, 0x33, 0x66, 0xCC, // Char 171 (.) + 0x0F, 0xC3, 0xC6, 0xCC, 0xDB, 0x37, 0x6F, 0xCF, // Char 172 (.) + 0x03, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, // Char 173 (.) + 0x00, 0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, // Char 174 (.) + 0x00, 0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, // Char 175 (.) + 0x00, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, // Char 176 (.) + 0x88, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, // Char 177 (.) + 0xAA, 0xDB, 0x77, 0xDB, 0xEE, 0xDB, 0x77, 0xDB, // Char 178 (.) + 0xEE, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // Char 179 (.) + 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, // Char 180 (.) + 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, // Char 181 (.) + 0x18, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, // Char 182 (.) + 0x36, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, // Char 183 (.) + 0x36, 0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, // Char 184 (.) + 0x18, 0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, // Char 185 (.) + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // Char 186 (.) + 0x36, 0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, // Char 187 (.) + 0x36, 0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, // Char 188 (.) + 0x00, 0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, // Char 189 (.) + 0x00, 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, // Char 190 (.) + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, // Char 191 (.) + 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, // Char 192 (.) + 0x00, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, // Char 193 (.) + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, // Char 194 (.) + 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, // Char 195 (.) + 0x18, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, // Char 196 (.) + 0x00, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, // Char 197 (.) + 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, // Char 198 (.) + 0x18, 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, // Char 199 (.) + 0x36, 0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, // Char 200 (.) + 0x00, 0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, // Char 201 (.) + 0x36, 0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, // Char 202 (.) + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, // Char 203 (.) + 0x36, 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, // Char 204 (.) + 0x36, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, // Char 205 (.) + 0x00, 0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, // Char 206 (.) + 0x36, 0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, // Char 207 (.) + 0x00, 0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, // Char 208 (.) + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, // Char 209 (.) + 0x18, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, // Char 210 (.) + 0x36, 0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, // Char 211 (.) + 0x00, 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, // Char 212 (.) + 0x00, 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, // Char 213 (.) + 0x18, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, // Char 214 (.) + 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, // Char 215 (.) + 0x36, 0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, // Char 216 (.) + 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, // Char 217 (.) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, // Char 218 (.) + 0x18, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Char 219 (.) + 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, // Char 220 (.) + 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, // Char 221 (.) + 0xF0, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, // Char 222 (.) + 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, // Char 223 (.) + 0x00, 0x00, 0x00, 0x76, 0xDC, 0xC8, 0xDC, 0x76, // Char 224 (.) + 0x00, 0x00, 0x78, 0xCC, 0xF8, 0xCC, 0xF8, 0xC0, // Char 225 (.) + 0xC0, 0x00, 0xFC, 0xCC, 0xC0, 0xC0, 0xC0, 0xC0, // Char 226 (.) + 0x00, 0x00, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, // Char 227 (.) + 0x00, 0xFC, 0xCC, 0x60, 0x30, 0x60, 0xCC, 0xFC, // Char 228 (.) + 0x00, 0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0x70, // Char 229 (.) + 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, // Char 230 (.) + 0xC0, 0x00, 0x76, 0xDC, 0x18, 0x18, 0x18, 0x18, // Char 231 (.) + 0x00, 0xFC, 0x30, 0x78, 0xCC, 0xCC, 0x78, 0x30, // Char 232 (.) + 0xFC, 0x38, 0x6C, 0xC6, 0xFE, 0xC6, 0x6C, 0x38, // Char 233 (.) + 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x6C, 0xEE, // Char 234 (.) + 0x00, 0x1C, 0x30, 0x18, 0x7C, 0xCC, 0xCC, 0x78, // Char 235 (.) + 0x00, 0x00, 0x00, 0x7E, 0xDB, 0xDB, 0x7E, 0x00, // Char 236 (.) + 0x00, 0x06, 0x0C, 0x7E, 0xDB, 0xDB, 0x7E, 0x60, // Char 237 (.) + 0xC0, 0x38, 0x60, 0xC0, 0xF8, 0xC0, 0x60, 0x38, // Char 238 (.) + 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, // Char 239 (.) + 0x00, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, // Char 240 (.) + 0x00, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x00, 0xFC, // Char 241 (.) + 0x00, 0x60, 0x30, 0x18, 0x30, 0x60, 0x00, 0xFC, // Char 242 (.) + 0x00, 0x18, 0x30, 0x60, 0x30, 0x18, 0x00, 0xFC, // Char 243 (.) + 0x00, 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, // Char 244 (.) + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, // Char 245 (.) + 0x70, 0x30, 0x30, 0x00, 0xFC, 0x00, 0x30, 0x30, // Char 246 (.) + 0x00, 0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, // Char 247 (.) + 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, // Char 248 (.) + 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, // Char 249 (.) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, // Char 250 (.) + 0x00, 0x0F, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x3C, // Char 251 (.) + 0x1C, 0x78, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, // Char 252 (.) + 0x00, 0x70, 0x18, 0x30, 0x60, 0x78, 0x00, 0x00, // Char 253 (.) + 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, // Char 254 (.) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Char 255 (.) + }, + + /* NSDL_FONT_VGA */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 000 (.) + 0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E, // Char 001 (.) + 0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E, // Char 002 (.) + 0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, // Char 003 (.) + 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, // Char 004 (.) + 0x38, 0x7C, 0x38, 0xFE, 0xFE, 0x7C, 0x38, 0x7C, // Char 005 (.) + 0x10, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x7C, // Char 006 (.) + 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, // Char 007 (.) + 0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, // Char 008 (.) + 0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, // Char 009 (.) + 0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, // Char 010 (.) + 0x0F, 0x07, 0x0F, 0x7D, 0xCC, 0xCC, 0xCC, 0x78, // Char 011 (.) + 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, // Char 012 (.) + 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x70, 0xF0, 0xE0, // Char 013 (.) + 0x7F, 0x63, 0x7F, 0x63, 0x63, 0x67, 0xE6, 0xC0, // Char 014 (.) + 0x99, 0x5A, 0x3C, 0xE7, 0xE7, 0x3C, 0x5A, 0x99, // Char 015 (.) + 0x80, 0xE0, 0xF8, 0xFE, 0xF8, 0xE0, 0x80, 0x00, // Char 016 (.) + 0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, 0x00, // Char 017 (.) + 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x7E, 0x3C, 0x18, // Char 018 (.) + 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00, // Char 019 (.) + 0x7F, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x00, // Char 020 (.) + 0x3E, 0x63, 0x38, 0x6C, 0x6C, 0x38, 0xCC, 0x78, // Char 021 (.) + 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00, // Char 022 (.) + 0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, 0xFF, // Char 023 (.) + 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00, // Char 024 (.) + 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, // Char 025 (.) + 0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, // Char 026 (.) + 0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00, // Char 027 (.) + 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00, // Char 028 (.) + 0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00, // Char 029 (.) + 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x00, 0x00, // Char 030 (.) + 0x00, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00, // Char 031 (.) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 032 ( ) + 0x30, 0x78, 0x78, 0x30, 0x30, 0x00, 0x30, 0x00, // Char 033 (!) + 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 034 (") + 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00, // Char 035 (#) + 0x30, 0x7C, 0xC0, 0x78, 0x0C, 0xF8, 0x30, 0x00, // Char 036 ($) + 0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00, // Char 037 (%) + 0x38, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0x76, 0x00, // Char 038 (&) + 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 039 (') + 0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00, // Char 040 (() + 0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00, // Char 041 ()) + 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, // Char 042 (*) + 0x00, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x00, 0x00, // Char 043 (+) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x60, // Char 044 (,) + 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, // Char 045 (-) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, // Char 046 (.) + 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00, // Char 047 (/) + 0x7C, 0xC6, 0xCE, 0xDE, 0xF6, 0xE6, 0x7C, 0x00, // Char 048 (0) + 0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0xFC, 0x00, // Char 049 (1) + 0x78, 0xCC, 0x0C, 0x38, 0x60, 0xCC, 0xFC, 0x00, // Char 050 (2) + 0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00, // Char 051 (3) + 0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x1E, 0x00, // Char 052 (4) + 0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00, // Char 053 (5) + 0x38, 0x60, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00, // Char 054 (6) + 0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00, // Char 055 (7) + 0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00, // Char 056 (8) + 0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0x18, 0x70, 0x00, // Char 057 (9) + 0x00, 0x30, 0x30, 0x00, 0x00, 0x30, 0x30, 0x00, // Char 058 (:) + 0x00, 0x30, 0x30, 0x00, 0x00, 0x30, 0x30, 0x60, // Char 059 (;) + 0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00, // Char 060 (<) + 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00, // Char 061 (=) + 0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60, 0x00, // Char 062 (>) + 0x78, 0xCC, 0x0C, 0x18, 0x30, 0x00, 0x30, 0x00, // Char 063 (?) + 0x7C, 0xC6, 0xDE, 0xDE, 0xDE, 0xC0, 0x78, 0x00, // Char 064 (@) + 0x30, 0x78, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0x00, // Char 065 (A) + 0xFC, 0x66, 0x66, 0x7C, 0x66, 0x66, 0xFC, 0x00, // Char 066 (B) + 0x3C, 0x66, 0xC0, 0xC0, 0xC0, 0x66, 0x3C, 0x00, // Char 067 (C) + 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, // Char 068 (D) + 0xFE, 0x62, 0x68, 0x78, 0x68, 0x62, 0xFE, 0x00, // Char 069 (E) + 0xFE, 0x62, 0x68, 0x78, 0x68, 0x60, 0xF0, 0x00, // Char 070 (F) + 0x3C, 0x66, 0xC0, 0xC0, 0xCE, 0x66, 0x3E, 0x00, // Char 071 (G) + 0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00, // Char 072 (H) + 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, // Char 073 (I) + 0x1E, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, // Char 074 (J) + 0xE6, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0xE6, 0x00, // Char 075 (K) + 0xF0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00, // Char 076 (L) + 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00, // Char 077 (M) + 0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, // Char 078 (N) + 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, // Char 079 (O) + 0xFC, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00, // Char 080 (P) + 0x78, 0xCC, 0xCC, 0xCC, 0xDC, 0x78, 0x1C, 0x00, // Char 081 (Q) + 0xFC, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0xE6, 0x00, // Char 082 (R) + 0x78, 0xCC, 0xE0, 0x70, 0x1C, 0xCC, 0x78, 0x00, // Char 083 (S) + 0xFC, 0xB4, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, // Char 084 (T) + 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFC, 0x00, // Char 085 (U) + 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, // Char 086 (V) + 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00, // Char 087 (W) + 0xC6, 0xC6, 0x6C, 0x38, 0x38, 0x6C, 0xC6, 0x00, // Char 088 (X) + 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x78, 0x00, // Char 089 (Y) + 0xFE, 0xC6, 0x8C, 0x18, 0x32, 0x66, 0xFE, 0x00, // Char 090 (Z) + 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00, // Char 091 ([) + 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x02, 0x00, // Char 092 (\) + 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00, // Char 093 (]) + 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, // Char 094 (^) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, // Char 095 (_) + 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 096 (`) + 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, // Char 097 (a) + 0xE0, 0x60, 0x60, 0x7C, 0x66, 0x66, 0xDC, 0x00, // Char 098 (b) + 0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00, // Char 099 (c) + 0x1C, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00, // Char 100 (d) + 0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, // Char 101 (e) + 0x38, 0x6C, 0x60, 0xF0, 0x60, 0x60, 0xF0, 0x00, // Char 102 (f) + 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, // Char 103 (g) + 0xE0, 0x60, 0x6C, 0x76, 0x66, 0x66, 0xE6, 0x00, // Char 104 (h) + 0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, // Char 105 (i) + 0x0C, 0x00, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, // Char 106 (j) + 0xE0, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0xE6, 0x00, // Char 107 (k) + 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, // Char 108 (l) + 0x00, 0x00, 0xCC, 0xFE, 0xFE, 0xD6, 0xC6, 0x00, // Char 109 (m) + 0x00, 0x00, 0xF8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, // Char 110 (n) + 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00, // Char 111 (o) + 0x00, 0x00, 0xDC, 0x66, 0x66, 0x7C, 0x60, 0xF0, // Char 112 (p) + 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0x1E, // Char 113 (q) + 0x00, 0x00, 0xDC, 0x76, 0x66, 0x60, 0xF0, 0x00, // Char 114 (r) + 0x00, 0x00, 0x7C, 0xC0, 0x78, 0x0C, 0xF8, 0x00, // Char 115 (s) + 0x10, 0x30, 0x7C, 0x30, 0x30, 0x34, 0x18, 0x00, // Char 116 (t) + 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, // Char 117 (u) + 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, // Char 118 (v) + 0x00, 0x00, 0xC6, 0xD6, 0xFE, 0xFE, 0x6C, 0x00, // Char 119 (w) + 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00, // Char 120 (x) + 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, // Char 121 (y) + 0x00, 0x00, 0xFC, 0x98, 0x30, 0x64, 0xFC, 0x00, // Char 122 (z) + 0x1C, 0x30, 0x30, 0xE0, 0x30, 0x30, 0x1C, 0x00, // Char 123 ({) + 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, // Char 124 (|) + 0xE0, 0x30, 0x30, 0x1C, 0x30, 0x30, 0xE0, 0x00, // Char 125 (}) + 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 126 (~) + 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00, // Char 127 (.) + 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x18, 0x0C, 0x78, // Char 128 (.) + 0x00, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0x7E, 0x00, // Char 129 (.) + 0x1C, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, // Char 130 (.) + 0x7E, 0xC3, 0x3C, 0x06, 0x3E, 0x66, 0x3F, 0x00, // Char 131 (.) + 0xCC, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x7E, 0x00, // Char 132 (.) + 0xE0, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x7E, 0x00, // Char 133 (.) + 0x30, 0x30, 0x78, 0x0C, 0x7C, 0xCC, 0x7E, 0x00, // Char 134 (.) + 0x00, 0x00, 0x78, 0xC0, 0xC0, 0x78, 0x0C, 0x38, // Char 135 (.) + 0x7E, 0xC3, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, // Char 136 (.) + 0xCC, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, // Char 137 (.) + 0xE0, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, // Char 138 (.) + 0xCC, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, // Char 139 (.) + 0x7C, 0xC6, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00, // Char 140 (.) + 0xE0, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, // Char 141 (.) + 0xC6, 0x38, 0x6C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, // Char 142 (.) + 0x30, 0x30, 0x00, 0x78, 0xCC, 0xFC, 0xCC, 0x00, // Char 143 (.) + 0x1C, 0x00, 0xFC, 0x60, 0x78, 0x60, 0xFC, 0x00, // Char 144 (.) + 0x00, 0x00, 0x7F, 0x0C, 0x7F, 0xCC, 0x7F, 0x00, // Char 145 (.) + 0x3E, 0x6C, 0xCC, 0xFE, 0xCC, 0xCC, 0xCE, 0x00, // Char 146 (.) + 0x78, 0xCC, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, // Char 147 (.) + 0x00, 0xCC, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, // Char 148 (.) + 0x00, 0xE0, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, // Char 149 (.) + 0x78, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0x7E, 0x00, // Char 150 (.) + 0x00, 0xE0, 0x00, 0xCC, 0xCC, 0xCC, 0x7E, 0x00, // Char 151 (.) + 0x00, 0xCC, 0x00, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, // Char 152 (.) + 0xC3, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x18, 0x00, // Char 153 (.) + 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, // Char 154 (.) + 0x18, 0x18, 0x7E, 0xC0, 0xC0, 0x7E, 0x18, 0x18, // Char 155 (.) + 0x38, 0x6C, 0x64, 0xF0, 0x60, 0xE6, 0xFC, 0x00, // Char 156 (.) + 0xCC, 0xCC, 0x78, 0xFC, 0x30, 0xFC, 0x30, 0x30, // Char 157 (.) + 0xF8, 0xCC, 0xCC, 0xFA, 0xC6, 0xCF, 0xC6, 0xC7, // Char 158 (.) + 0x0E, 0x1B, 0x18, 0x3C, 0x18, 0x18, 0xD8, 0x70, // Char 159 (.) + 0x1C, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x7E, 0x00, // Char 160 (.) + 0x38, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, // Char 161 (.) + 0x00, 0x1C, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, // Char 162 (.) + 0x00, 0x1C, 0x00, 0xCC, 0xCC, 0xCC, 0x7E, 0x00, // Char 163 (.) + 0x00, 0xF8, 0x00, 0xF8, 0xCC, 0xCC, 0xCC, 0x00, // Char 164 (.) + 0xFC, 0x00, 0xCC, 0xEC, 0xFC, 0xDC, 0xCC, 0x00, // Char 165 (.) + 0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00, // Char 166 (.) + 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00, // Char 167 (.) + 0x30, 0x00, 0x30, 0x60, 0xC0, 0xCC, 0x78, 0x00, // Char 168 (.) + 0x00, 0x00, 0x00, 0xFC, 0xC0, 0xC0, 0x00, 0x00, // Char 169 (.) + 0x00, 0x00, 0x00, 0xFC, 0x0C, 0x0C, 0x00, 0x00, // Char 170 (.) + 0xC3, 0xC6, 0xCC, 0xDE, 0x33, 0x66, 0xCC, 0x0F, // Char 171 (.) + 0xC3, 0xC6, 0xCC, 0xDB, 0x37, 0x6F, 0xCF, 0x03, // Char 172 (.) + 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, // Char 173 (.) + 0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00, // Char 174 (.) + 0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00, // Char 175 (.) + 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, // Char 176 (.) + 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, // Char 177 (.) + 0xDB, 0x77, 0xDB, 0xEE, 0xDB, 0x77, 0xDB, 0xEE, // Char 178 (.) + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // Char 179 (.) + 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18, // Char 180 (.) + 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, // Char 181 (.) + 0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36, // Char 182 (.) + 0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36, // Char 183 (.) + 0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, // Char 184 (.) + 0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36, // Char 185 (.) + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // Char 186 (.) + 0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36, // Char 187 (.) + 0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00, // Char 188 (.) + 0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00, // Char 189 (.) + 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00, // Char 190 (.) + 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18, // Char 191 (.) + 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00, // Char 192 (.) + 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00, // Char 193 (.) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, // Char 194 (.) + 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18, // Char 195 (.) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, // Char 196 (.) + 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, // Char 197 (.) + 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, // Char 198 (.) + 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, // Char 199 (.) + 0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00, // Char 200 (.) + 0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36, // Char 201 (.) + 0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, // Char 202 (.) + 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36, // Char 203 (.) + 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, // Char 204 (.) + 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, // Char 205 (.) + 0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36, // Char 206 (.) + 0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, // Char 207 (.) + 0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00, // Char 208 (.) + 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18, // Char 209 (.) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36, // Char 210 (.) + 0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00, // Char 211 (.) + 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00, // Char 212 (.) + 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, // Char 213 (.) + 0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36, // Char 214 (.) + 0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36, // Char 215 (.) + 0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18, // Char 216 (.) + 0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00, // Char 217 (.) + 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, // Char 218 (.) + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Char 219 (.) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, // Char 220 (.) + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, // Char 221 (.) + 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, // Char 222 (.) + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, // Char 223 (.) + 0x00, 0x00, 0x76, 0xDC, 0xC8, 0xDC, 0x76, 0x00, // Char 224 (.) + 0x00, 0x78, 0xCC, 0xF8, 0xCC, 0xF8, 0xC0, 0xC0, // Char 225 (.) + 0x00, 0xFC, 0xCC, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, // Char 226 (.) + 0x00, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, // Char 227 (.) + 0xFC, 0xCC, 0x60, 0x30, 0x60, 0xCC, 0xFC, 0x00, // Char 228 (.) + 0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0x70, 0x00, // Char 229 (.) + 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0xC0, // Char 230 (.) + 0x00, 0x76, 0xDC, 0x18, 0x18, 0x18, 0x18, 0x00, // Char 231 (.) + 0xFC, 0x30, 0x78, 0xCC, 0xCC, 0x78, 0x30, 0xFC, // Char 232 (.) + 0x38, 0x6C, 0xC6, 0xFE, 0xC6, 0x6C, 0x38, 0x00, // Char 233 (.) + 0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x6C, 0xEE, 0x00, // Char 234 (.) + 0x1C, 0x30, 0x18, 0x7C, 0xCC, 0xCC, 0x78, 0x00, // Char 235 (.) + 0x00, 0x00, 0x7E, 0xDB, 0xDB, 0x7E, 0x00, 0x00, // Char 236 (.) + 0x06, 0x0C, 0x7E, 0xDB, 0xDB, 0x7E, 0x60, 0xC0, // Char 237 (.) + 0x38, 0x60, 0xC0, 0xF8, 0xC0, 0x60, 0x38, 0x00, // Char 238 (.) + 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, // Char 239 (.) + 0x00, 0xFC, 0x00, 0xFC, 0x00, 0xFC, 0x00, 0x00, // Char 240 (.) + 0x30, 0x30, 0xFC, 0x30, 0x30, 0x00, 0xFC, 0x00, // Char 241 (.) + 0x60, 0x30, 0x18, 0x30, 0x60, 0x00, 0xFC, 0x00, // Char 242 (.) + 0x18, 0x30, 0x60, 0x30, 0x18, 0x00, 0xFC, 0x00, // Char 243 (.) + 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18, // Char 244 (.) + 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0x70, // Char 245 (.) + 0x30, 0x30, 0x00, 0xFC, 0x00, 0x30, 0x30, 0x00, // Char 246 (.) + 0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00, // Char 247 (.) + 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, // Char 248 (.) + 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, // Char 249 (.) + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, // Char 250 (.) + 0x0F, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x3C, 0x1C, // Char 251 (.) + 0x78, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, // Char 252 (.) + 0x70, 0x18, 0x30, 0x60, 0x78, 0x00, 0x00, 0x00, // Char 253 (.) + 0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, // Char 254 (.) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Char 255 (.) + }, + + /* NSDL_FONT_FANTASY */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 000 (.) + 0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E, // Char 001 (.) + 0x3C, 0x7E, 0xDB, 0xFF, 0xC3, 0x7E, 0x3C, 0x00, // Char 002 (.) + 0x00, 0x6C, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, // Char 003 (.) + 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, // Char 004 (.) + 0x00, 0x3C, 0x18, 0x7E, 0x7E, 0x08, 0x18, 0x00, // Char 005 (.) + 0x10, 0x38, 0x7C, 0xFE, 0xFE, 0x10, 0x38, 0x00, // Char 006 (.) + 0x00, 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0x00, // Char 007 (.) + 0xFF, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0xFF, 0xFF, // Char 008 (.) + 0x00, 0x3C, 0x42, 0x81, 0x81, 0x42, 0x3C, 0x00, // Char 009 (.) + 0xFF, 0xC3, 0xBD, 0x7E, 0x7E, 0xBD, 0xC3, 0xFF, // Char 010 (.) + 0x1F, 0x07, 0x0D, 0x7C, 0xC6, 0xC6, 0x7C, 0x00, // Char 011 (.) + 0x00, 0x7E, 0xC3, 0xC3, 0x7E, 0x18, 0x7E, 0x18, // Char 012 (.) + 0x04, 0x06, 0x07, 0x04, 0x04, 0xFC, 0xF8, 0x00, // Char 013 (.) + 0x0C, 0x0A, 0x0D, 0x0B, 0xF9, 0xF9, 0x1F, 0x1F, // Char 014 (.) + 0x00, 0x92, 0x7C, 0x44, 0xC6, 0x7C, 0x92, 0x00, // Char 015 (.) + 0x00, 0x00, 0x04, 0x02, 0xFF, 0x02, 0x04, 0x00, // Char 016 (.) + 0x00, 0x00, 0x20, 0x40, 0xFF, 0x40, 0x20, 0x00, // Char 017 (.) + 0x18, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x18, // Char 018 (.) + 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00, // Char 019 (.) + 0xFF, 0xB6, 0x76, 0x36, 0x36, 0x36, 0x36, 0x00, // Char 020 (.) + 0x7E, 0xC1, 0xDC, 0x22, 0x22, 0x1F, 0x83, 0x7E, // Char 021 (.) + 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x00, 0x00, // Char 022 (.) + 0x18, 0x7E, 0x18, 0x18, 0x7E, 0x18, 0x00, 0xFF, // Char 023 (.) + 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00, // Char 024 (.) + 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, // Char 025 (.) + 0x00, 0x04, 0x06, 0xFF, 0x06, 0x04, 0x00, 0x00, // Char 026 (.) + 0x00, 0x20, 0x60, 0xFF, 0x60, 0x20, 0x00, 0x00, // Char 027 (.) + 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFF, 0x00, // Char 028 (.) + 0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00, // Char 029 (.) + 0x00, 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x00, 0x00, // Char 030 (.) + 0x00, 0x00, 0x00, 0xFE, 0x7C, 0x38, 0x10, 0x00, // Char 031 (.) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 032 ( ) + 0x10, 0x38, 0x38, 0x38, 0x10, 0x00, 0x10, 0x00, // Char 033 (!) + 0x66, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 034 (") + 0x66, 0x66, 0xFF, 0x66, 0x66, 0xFF, 0x66, 0x66, // Char 035 (#) + 0x14, 0x7E, 0xD4, 0x7E, 0x95, 0x7E, 0x14, 0x00, // Char 036 ($) + 0x60, 0x94, 0x68, 0x10, 0x2C, 0x52, 0x8C, 0x00, // Char 037 (%) + 0x30, 0x48, 0x30, 0x48, 0x8E, 0x8C, 0x78, 0x00, // Char 038 (&) + 0x0C, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 039 (') + 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x01, // Char 040 (() + 0x80, 0x40, 0x20, 0x20, 0x20, 0x20, 0x40, 0x80, // Char 041 ()) + 0x00, 0x54, 0x38, 0xFE, 0x38, 0x54, 0x00, 0x00, // Char 042 (*) + 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, // Char 043 (+) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, // Char 044 (,) + 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, // Char 045 (-) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, // Char 046 (.) + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, // Char 047 (/) + 0x7C, 0x86, 0x8A, 0x92, 0xA2, 0xC2, 0x7C, 0x00, // Char 048 (0) + 0x10, 0x30, 0x70, 0x10, 0x10, 0x10, 0x7C, 0x00, // Char 049 (1) + 0x78, 0x84, 0x08, 0x30, 0x40, 0x80, 0xFC, 0x00, // Char 050 (2) + 0x78, 0x84, 0x04, 0x38, 0x04, 0x84, 0x78, 0x00, // Char 051 (3) + 0x80, 0x44, 0x48, 0x48, 0xFC, 0x08, 0x08, 0x00, // Char 052 (4) + 0xFE, 0x80, 0x80, 0x7C, 0x02, 0x82, 0x7C, 0x00, // Char 053 (5) + 0x7A, 0x84, 0x80, 0xBC, 0xC2, 0x82, 0x7C, 0x00, // Char 054 (6) + 0xFE, 0x84, 0x08, 0x10, 0x38, 0x10, 0x10, 0x00, // Char 055 (7) + 0x7C, 0x82, 0x7C, 0x82, 0x82, 0x82, 0x7C, 0x00, // Char 056 (8) + 0x7C, 0x82, 0x86, 0x7A, 0x02, 0x82, 0x7C, 0x00, // Char 057 (9) + 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, // Char 058 (:) + 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x20, 0x00, // Char 059 (;) + 0x08, 0x10, 0x20, 0x40, 0x20, 0x10, 0x08, 0x00, // Char 060 (<) + 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00, // Char 061 (=) + 0x20, 0x10, 0x08, 0x04, 0x08, 0x10, 0x20, 0x00, // Char 062 (>) + 0x7C, 0x82, 0x04, 0x08, 0x10, 0x00, 0x10, 0x00, // Char 063 (?) + 0x7C, 0x82, 0x9A, 0xAA, 0xAA, 0x9E, 0x7C, 0x00, // Char 064 (@) + 0xF8, 0x44, 0x42, 0xFE, 0x42, 0x42, 0xC6, 0x00, // Char 065 (A) + 0xFC, 0x42, 0x42, 0xFC, 0x42, 0x42, 0xFC, 0x00, // Char 066 (B) + 0x7A, 0x84, 0x80, 0x80, 0x80, 0x82, 0x7C, 0x00, // Char 067 (C) + 0xFC, 0x42, 0x42, 0x42, 0x42, 0x42, 0xFC, 0x00, // Char 068 (D) + 0xFE, 0x42, 0x40, 0x70, 0xC0, 0x42, 0xFE, 0x00, // Char 069 (E) + 0xFE, 0x42, 0x40, 0x70, 0xC0, 0x40, 0xE0, 0x00, // Char 070 (F) + 0x7A, 0x84, 0x80, 0x80, 0x9C, 0x82, 0x7E, 0x02, // Char 071 (G) + 0x82, 0x44, 0x44, 0x5E, 0xF4, 0x44, 0x82, 0x00, // Char 072 (H) + 0x10, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x00, // Char 073 (I) + 0x7E, 0x08, 0x04, 0x04, 0x04, 0x84, 0x78, 0x00, // Char 074 (J) + 0xCC, 0x44, 0x48, 0xF0, 0x48, 0x44, 0xC6, 0x00, // Char 075 (K) + 0xC0, 0x40, 0x40, 0x40, 0x40, 0x42, 0xFE, 0x00, // Char 076 (L) + 0xC6, 0x6A, 0x5A, 0x4A, 0x4A, 0x42, 0xC6, 0x00, // Char 077 (M) + 0xCC, 0x64, 0x54, 0x54, 0x54, 0x54, 0xCC, 0x00, // Char 078 (N) + 0x78, 0x84, 0x84, 0x84, 0x84, 0x84, 0x78, 0x00, // Char 079 (O) + 0xF8, 0x44, 0x44, 0xF8, 0x40, 0x40, 0xE0, 0x00, // Char 080 (P) + 0x78, 0x84, 0x84, 0x84, 0x84, 0x8C, 0x7D, 0x02, // Char 081 (Q) + 0xFC, 0x42, 0x42, 0xFC, 0x42, 0x42, 0xC6, 0x00, // Char 082 (R) + 0x74, 0x88, 0x80, 0x78, 0x04, 0x84, 0x78, 0x00, // Char 083 (S) + 0x7C, 0x54, 0x10, 0x10, 0x10, 0x10, 0x30, 0x00, // Char 084 (T) + 0xC6, 0x44, 0x44, 0x82, 0x82, 0x82, 0x7C, 0x00, // Char 085 (U) + 0xCC, 0x44, 0x44, 0x44, 0x44, 0x28, 0x10, 0x00, // Char 086 (V) + 0xC6, 0x42, 0x42, 0x4A, 0x5A, 0x6A, 0xCC, 0x00, // Char 087 (W) + 0x82, 0x44, 0x28, 0x10, 0x28, 0x44, 0x82, 0x00, // Char 088 (X) + 0xCC, 0x44, 0x44, 0x38, 0x10, 0x10, 0x30, 0x00, // Char 089 (Y) + 0xFE, 0x84, 0x08, 0x10, 0x20, 0x42, 0xFE, 0x00, // Char 090 (Z) + 0x1C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1C, 0x00, // Char 091 ([) + 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, // Char 092 (\) + 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x38, 0x00, // Char 093 (]) + 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, // Char 094 (^) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, // Char 095 (_) + 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 096 (`) + 0x00, 0x00, 0x7A, 0x04, 0x7C, 0x84, 0x7A, 0x00, // Char 097 (a) + 0x80, 0x40, 0x40, 0x5C, 0x62, 0x42, 0xBC, 0x00, // Char 098 (b) + 0x00, 0x00, 0x7A, 0x84, 0x80, 0x82, 0x7C, 0x00, // Char 099 (c) + 0x02, 0x04, 0x74, 0x8C, 0x84, 0x84, 0x7A, 0x00, // Char 100 (d) + 0x00, 0x00, 0xBC, 0x42, 0x7C, 0x40, 0x3E, 0x00, // Char 101 (e) + 0x34, 0x48, 0x40, 0xE0, 0x40, 0x40, 0x80, 0x00, // Char 102 (f) + 0x00, 0x00, 0x7A, 0x84, 0x8C, 0x74, 0x04, 0x78, // Char 103 (g) + 0x80, 0x40, 0x78, 0x44, 0x44, 0x44, 0x88, 0x00, // Char 104 (h) + 0x10, 0x00, 0x10, 0x08, 0x08, 0x08, 0x04, 0x00, // Char 105 (i) + 0x00, 0x10, 0x00, 0x10, 0x08, 0x08, 0x88, 0x70, // Char 106 (j) + 0xC0, 0x40, 0x48, 0x50, 0xE0, 0x50, 0xC8, 0x00, // Char 107 (k) + 0x30, 0x10, 0x10, 0x10, 0x10, 0x10, 0x38, 0x00, // Char 108 (l) + 0x00, 0x00, 0xAC, 0x54, 0x54, 0x44, 0xCC, 0x00, // Char 109 (m) + 0x00, 0x00, 0xB8, 0x44, 0x44, 0x44, 0xCC, 0x00, // Char 110 (n) + 0x00, 0x00, 0x78, 0x84, 0x84, 0x84, 0x78, 0x00, // Char 111 (o) + 0x00, 0x00, 0xB8, 0x44, 0x44, 0x78, 0x40, 0x80, // Char 112 (p) + 0x00, 0x00, 0x74, 0x88, 0x88, 0x78, 0x04, 0x02, // Char 113 (q) + 0x00, 0x00, 0xB0, 0x48, 0x40, 0x40, 0x40, 0x00, // Char 114 (r) + 0x00, 0x00, 0x78, 0x80, 0x70, 0x08, 0xF0, 0x00, // Char 115 (s) + 0x00, 0x20, 0x10, 0x7C, 0x10, 0x10, 0x08, 0x00, // Char 116 (t) + 0x00, 0x00, 0x90, 0x48, 0x84, 0x84, 0x78, 0x00, // Char 117 (u) + 0x00, 0x00, 0x82, 0x44, 0x44, 0x28, 0x10, 0x00, // Char 118 (v) + 0x00, 0x00, 0x84, 0x42, 0x52, 0x6A, 0x46, 0x00, // Char 119 (w) + 0x00, 0x00, 0x88, 0x50, 0x20, 0x50, 0x88, 0x00, // Char 120 (x) + 0x00, 0x00, 0x82, 0x44, 0x44, 0x3C, 0x04, 0x78, // Char 121 (y) + 0x00, 0x00, 0x7C, 0x88, 0x30, 0x44, 0xF8, 0x00, // Char 122 (z) + 0x0E, 0x10, 0x10, 0x60, 0x10, 0x10, 0x0E, 0x00, // Char 123 ({) + 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, // Char 124 (|) + 0xE0, 0x10, 0x10, 0x0C, 0x10, 0x10, 0xE0, 0x00, // Char 125 (}) + 0x00, 0x00, 0x70, 0x9A, 0x0C, 0x00, 0x00, 0x00, // Char 126 (~) + 0x00, 0x00, 0x18, 0x3C, 0x66, 0xFF, 0x00, 0x00, // Char 127 (.) + 0x7A, 0x84, 0x80, 0x80, 0x80, 0x82, 0x7C, 0x18, // Char 128 (.) + 0x66, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x00, // Char 129 (.) + 0x0E, 0x18, 0x7C, 0xC6, 0xFE, 0xC0, 0x7C, 0x00, // Char 130 (.) + 0x18, 0x24, 0x7C, 0x06, 0x7E, 0xC6, 0x7E, 0x00, // Char 131 (.) + 0x66, 0x00, 0x7C, 0x06, 0x7E, 0xC6, 0x7E, 0x00, // Char 132 (.) + 0x38, 0x0C, 0x7C, 0x06, 0x7E, 0xC6, 0x7E, 0x00, // Char 133 (.) + 0x18, 0x00, 0x7C, 0x06, 0x7E, 0xC6, 0x7E, 0x00, // Char 134 (.) + 0x00, 0x00, 0x7C, 0xC0, 0xC0, 0x7C, 0x18, 0x70, // Char 135 (.) + 0x18, 0x24, 0x7C, 0xC6, 0xFE, 0xC0, 0x7C, 0x00, // Char 136 (.) + 0x66, 0x00, 0x7C, 0xC6, 0xFE, 0xC0, 0x7C, 0x00, // Char 137 (.) + 0x70, 0x18, 0x7C, 0xC6, 0xFE, 0xC0, 0x7C, 0x00, // Char 138 (.) + 0x66, 0x00, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00, // Char 139 (.) + 0x18, 0x24, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00, // Char 140 (.) + 0x38, 0x0C, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00, // Char 141 (.) + 0x66, 0x00, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, // Char 142 (.) + 0x18, 0x00, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, // Char 143 (.) + 0x0E, 0x18, 0xFE, 0x60, 0x78, 0x60, 0xFE, 0x00, // Char 144 (.) + 0x00, 0x00, 0x7C, 0x1A, 0x7E, 0xD8, 0x7E, 0x00, // Char 145 (.) + 0x7E, 0xD8, 0xD8, 0xDE, 0xF8, 0xD8, 0xDE, 0x00, // Char 146 (.) + 0x18, 0x24, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, // Char 147 (.) + 0x66, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, // Char 148 (.) + 0x38, 0x0C, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, // Char 149 (.) + 0x18, 0x24, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x00, // Char 150 (.) + 0x38, 0x0C, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x00, // Char 151 (.) + 0x66, 0x00, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x7C, // Char 152 (.) + 0x66, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, // Char 153 (.) + 0xC6, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, // Char 154 (.) + 0x18, 0x7C, 0xC6, 0xC0, 0xC6, 0x7C, 0x18, 0x00, // Char 155 (.) + 0x1E, 0x32, 0x30, 0x78, 0x30, 0x70, 0xFE, 0x00, // Char 156 (.) + 0x66, 0x3C, 0x18, 0x7E, 0x18, 0x3C, 0x18, 0x00, // Char 157 (.) + 0xFC, 0xC6, 0xFC, 0xC0, 0xCC, 0xDE, 0xCC, 0x0E, // Char 158 (.) + 0x00, 0x1C, 0x32, 0x30, 0xFC, 0x30, 0xF0, 0x00, // Char 159 (.) + 0x0E, 0x18, 0x7C, 0x06, 0x7E, 0xC6, 0x7E, 0x00, // Char 160 (.) + 0x1A, 0x30, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00, // Char 161 (.) + 0x0E, 0x18, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, // Char 162 (.) + 0x0E, 0x18, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x00, // Char 163 (.) + 0x66, 0x98, 0xFC, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, // Char 164 (.) + 0x66, 0x98, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0x00, // Char 165 (.) + 0x7C, 0x06, 0x7E, 0xC6, 0x7E, 0x00, 0xFE, 0x00, // Char 166 (.) + 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0xFE, 0x00, // Char 167 (.) + 0x18, 0x00, 0x18, 0x30, 0x60, 0xC6, 0x7C, 0x00, // Char 168 (.) + 0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, // Char 169 (.) + 0x00, 0x00, 0xFE, 0x06, 0x06, 0x06, 0x06, 0x00, // Char 170 (.) + 0x80, 0x88, 0x90, 0xA0, 0x5C, 0x82, 0x08, 0x1E, // Char 171 (.) + 0x80, 0x88, 0x90, 0xA0, 0x50, 0x94, 0x1E, 0x04, // Char 172 (.) + 0x30, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, // Char 173 (.) + 0x00, 0x12, 0x24, 0x48, 0x24, 0x12, 0x00, 0x00, // Char 174 (.) + 0x00, 0x90, 0x48, 0x24, 0x48, 0x90, 0x00, 0x00, // Char 175 (.) + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, // Char 176 (.) + 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, // Char 177 (.) + 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, // Char 178 (.) + 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, // Char 179 (.) + 0x18, 0x18, 0x18, 0xF0, 0x18, 0x18, 0x18, 0x18, // Char 180 (.) + 0x18, 0x18, 0x18, 0xF0, 0x18, 0xF0, 0x18, 0x18, // Char 181 (.) + 0x36, 0x36, 0x36, 0xE6, 0x36, 0x36, 0x36, 0x36, // Char 182 (.) + 0x00, 0x00, 0x00, 0xFC, 0x36, 0x36, 0x36, 0x36, // Char 183 (.) + 0x00, 0x00, 0x00, 0xF0, 0x18, 0xF8, 0x18, 0x18, // Char 184 (.) + 0x36, 0x36, 0x36, 0xE6, 0x06, 0xE6, 0x36, 0x36, // Char 185 (.) + 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, // Char 186 (.) + 0x00, 0x00, 0x00, 0xFC, 0x06, 0xE6, 0x36, 0x36, // Char 187 (.) + 0x36, 0x36, 0x36, 0xE6, 0x06, 0xFC, 0x00, 0x00, // Char 188 (.) + 0x36, 0x36, 0x36, 0xFC, 0x00, 0x00, 0x00, 0x00, // Char 189 (.) + 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF0, 0x00, 0x00, // Char 190 (.) + 0x00, 0x00, 0x00, 0xF0, 0x18, 0x18, 0x18, 0x18, // Char 191 (.) + 0x18, 0x18, 0x18, 0x0F, 0x00, 0x00, 0x00, 0x00, // Char 192 (.) + 0x18, 0x18, 0x18, 0xE7, 0x00, 0x00, 0x00, 0x00, // Char 193 (.) + 0x00, 0x00, 0x00, 0xE7, 0x18, 0x18, 0x18, 0x18, // Char 194 (.) + 0x18, 0x18, 0x18, 0x0F, 0x18, 0x18, 0x18, 0x18, // Char 195 (.) + 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, // Char 196 (.) + 0x18, 0x18, 0x18, 0xE7, 0x18, 0x18, 0x18, 0x18, // Char 197 (.) + 0x18, 0x18, 0x18, 0x0F, 0x18, 0x0F, 0x18, 0x18, // Char 198 (.) + 0x36, 0x36, 0x36, 0x33, 0x36, 0x36, 0x36, 0x36, // Char 199 (.) + 0x36, 0x36, 0x36, 0x33, 0x30, 0x1F, 0x00, 0x00, // Char 200 (.) + 0x00, 0x00, 0x00, 0x1F, 0x30, 0x33, 0x36, 0x36, // Char 201 (.) + 0x36, 0x36, 0x36, 0xE3, 0x00, 0xFF, 0x00, 0x00, // Char 202 (.) + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xE3, 0x36, 0x36, // Char 203 (.) + 0x36, 0x36, 0x36, 0x33, 0x30, 0x33, 0x36, 0x36, // Char 204 (.) + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, // Char 205 (.) + 0x36, 0x36, 0x36, 0xE3, 0x00, 0xE3, 0x36, 0x36, // Char 206 (.) + 0x18, 0x18, 0x18, 0xE7, 0x00, 0xFF, 0x00, 0x00, // Char 207 (.) + 0x36, 0x36, 0x36, 0xC9, 0x00, 0x00, 0x00, 0x00, // Char 208 (.) + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xE7, 0x18, 0x18, // Char 209 (.) + 0x00, 0x00, 0x00, 0xC9, 0x36, 0x36, 0x36, 0x36, // Char 210 (.) + 0x36, 0x36, 0x36, 0x1F, 0x00, 0x00, 0x00, 0x00, // Char 211 (.) + 0x18, 0x18, 0x18, 0x1F, 0x18, 0x0F, 0x00, 0x00, // Char 212 (.) + 0x00, 0x00, 0x00, 0x0F, 0x18, 0x1F, 0x18, 0x18, // Char 213 (.) + 0x00, 0x00, 0x00, 0x1F, 0x36, 0x36, 0x36, 0x36, // Char 214 (.) + 0x36, 0x36, 0x36, 0xC9, 0x36, 0x36, 0x36, 0x36, // Char 215 (.) + 0x18, 0x18, 0x18, 0xE7, 0x18, 0xE7, 0x18, 0x18, // Char 216 (.) + 0x18, 0x18, 0x18, 0xF0, 0x00, 0x00, 0x00, 0x00, // Char 217 (.) + 0x00, 0x00, 0x00, 0x0F, 0x18, 0x18, 0x18, 0x18, // Char 218 (.) + 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Char 219 (.) + 0x00, 0x00, 0x00, 0x00, 0x7E, 0xFF, 0xFF, 0x7E, // Char 220 (.) + 0x60, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x60, // Char 221 (.) + 0x06, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x06, // Char 222 (.) + 0x7E, 0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00, 0x00, // Char 223 (.) + 0x00, 0x00, 0x77, 0x98, 0x98, 0x77, 0x00, 0x00, // Char 224 (.) + 0x1C, 0x36, 0x66, 0xFC, 0xC6, 0xC6, 0xFC, 0xC0, // Char 225 (.) + 0xFE, 0x62, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, // Char 226 (.) + 0x00, 0x00, 0xFF, 0x66, 0x66, 0x66, 0x66, 0x00, // Char 227 (.) + 0xFE, 0x62, 0x30, 0x18, 0x30, 0x62, 0xFE, 0x00, // Char 228 (.) + 0x00, 0x00, 0x3F, 0x66, 0xC6, 0xCC, 0x78, 0x00, // Char 229 (.) + 0x00, 0x00, 0x33, 0x33, 0x33, 0x3E, 0x30, 0xF0, // Char 230 (.) + 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x00, // Char 231 (.) + 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x18, 0x3C, // Char 232 (.) + 0x00, 0x7C, 0xC6, 0xFE, 0xC6, 0x7C, 0x00, 0x00, // Char 233 (.) + 0x00, 0x7E, 0xC3, 0xC3, 0xC3, 0x66, 0xE7, 0x00, // Char 234 (.) + 0x1E, 0x19, 0x3C, 0x66, 0xC6, 0xCC, 0x78, 0x00, // Char 235 (.) + 0x00, 0x00, 0x66, 0x99, 0x99, 0x66, 0x00, 0x00, // Char 236 (.) + 0x00, 0x03, 0x7C, 0xCE, 0xE6, 0x7C, 0xC0, 0x00, // Char 237 (.) + 0x00, 0x3E, 0xC0, 0xFE, 0xC0, 0x3E, 0x00, 0x00, // Char 238 (.) + 0x00, 0x7E, 0xC3, 0xC3, 0xC3, 0xC3, 0x00, 0x00, // Char 239 (.) + 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, // Char 240 (.) + 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x7E, 0x00, // Char 241 (.) + 0x20, 0x10, 0x08, 0x10, 0x20, 0x00, 0xFE, 0x00, // Char 242 (.) + 0x08, 0x10, 0x20, 0x10, 0x08, 0x00, 0xFE, 0x00, // Char 243 (.) + 0x00, 0x0E, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18, // Char 244 (.) + 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0x70, 0x00, // Char 245 (.) + 0x00, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x00, 0x00, // Char 246 (.) + 0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00, // Char 247 (.) + 0x3C, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 248 (.) + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, // Char 249 (.) + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, // Char 250 (.) + 0x0F, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x38, 0x00, // Char 251 (.) + 0xD8, 0xEC, 0xCC, 0xCC, 0x00, 0x00, 0x00, 0x00, // Char 252 (.) + 0xF0, 0x30, 0xC0, 0xF0, 0x00, 0x00, 0x00, 0x00, // Char 253 (.) + 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, // Char 254 (.) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Char 255 (.) + }, + + /* NSDL_FONT_TINYTYPE */ + { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 000 (.) + 0x7E, 0x81, 0xA5, 0x81, 0xA5, 0x99, 0x81, 0x7E, // Char 001 (.) + 0x3C, 0x7E, 0xDB, 0xFF, 0xC3, 0x7E, 0x3C, 0x00, // Char 002 (.) + 0x00, 0x6C, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, // Char 003 (.) + 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, // Char 004 (.) + 0x00, 0x3C, 0x18, 0xFF, 0xFF, 0x08, 0x18, 0x00, // Char 005 (.) + 0x10, 0x38, 0x7C, 0xFE, 0xFE, 0x10, 0x38, 0x00, // Char 006 (.) + 0x00, 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0x00, // Char 007 (.) + 0xFF, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0xFF, 0xFF, // Char 008 (.) + 0x00, 0x3C, 0x42, 0x81, 0x81, 0x42, 0x3C, 0x00, // Char 009 (.) + 0xFF, 0xC3, 0xBD, 0x7E, 0x7E, 0xBD, 0xC3, 0xFF, // Char 010 (.) + 0x1F, 0x07, 0x0D, 0x7C, 0xC6, 0xC6, 0x7C, 0x00, // Char 011 (.) + 0x00, 0x7E, 0xC3, 0xC3, 0x7E, 0x18, 0x7E, 0x18, // Char 012 (.) + 0x04, 0x06, 0x07, 0x04, 0x04, 0xFC, 0xF8, 0x00, // Char 013 (.) + 0x0C, 0x0A, 0x0D, 0x0B, 0xF9, 0xF9, 0x1F, 0x1F, // Char 014 (.) + 0x00, 0x92, 0x7C, 0x6C, 0xC6, 0x6C, 0x7C, 0x92, // Char 015 (.) + 0x00, 0x00, 0x60, 0x78, 0x7E, 0x78, 0x60, 0x00, // Char 016 (.) + 0x00, 0x00, 0x06, 0x1E, 0x7E, 0x1E, 0x06, 0x00, // Char 017 (.) + 0x18, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x18, // Char 018 (.) + 0x24, 0x24, 0x24, 0x24, 0x24, 0x00, 0x24, 0x00, // Char 019 (.) + 0xFF, 0xB6, 0x76, 0x36, 0x36, 0x36, 0x36, 0x00, // Char 020 (.) + 0x7E, 0xC1, 0xDC, 0x22, 0x22, 0x1F, 0x83, 0x7E, // Char 021 (.) + 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x00, 0x00, 0x00, // Char 022 (.) + 0x18, 0x7E, 0x18, 0x18, 0x7E, 0x18, 0x00, 0xFF, // Char 023 (.) + 0x08, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, // Char 024 (.) + 0x08, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x08, 0x00, // Char 025 (.) + 0x00, 0x00, 0x02, 0xFF, 0x02, 0x00, 0x00, 0x00, // Char 026 (.) + 0x00, 0x00, 0x40, 0xFF, 0x40, 0x00, 0x00, 0x00, // Char 027 (.) + 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFF, 0x00, // Char 028 (.) + 0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00, // Char 029 (.) + 0x00, 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x00, 0x00, // Char 030 (.) + 0x00, 0x00, 0x00, 0xFE, 0x7C, 0x38, 0x10, 0x00, // Char 031 (.) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 032 ( ) + 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x10, 0x00, // Char 033 (!) + 0x44, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 034 (") + 0x28, 0x28, 0xFE, 0x28, 0xFE, 0x28, 0x28, 0x00, // Char 035 (#) + 0x28, 0x7C, 0xA8, 0x7C, 0x2A, 0x7C, 0x28, 0x00, // Char 036 ($) + 0x60, 0x94, 0x68, 0x10, 0x2C, 0x52, 0x8C, 0x00, // Char 037 (%) + 0x30, 0x48, 0x30, 0x48, 0x86, 0x84, 0x78, 0x00, // Char 038 (&) + 0x04, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 039 (') + 0x10, 0x20, 0x40, 0x40, 0x40, 0x20, 0x10, 0x00, // Char 040 (() + 0x10, 0x08, 0x04, 0x04, 0x04, 0x08, 0x10, 0x00, // Char 041 ()) + 0x00, 0x54, 0x38, 0x7C, 0x38, 0x54, 0x00, 0x00, // Char 042 (*) + 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, // Char 043 (+) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, // Char 044 (,) + 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, // Char 045 (-) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, // Char 046 (.) + 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, // Char 047 (/) + 0x00, 0x18, 0x24, 0x2C, 0x34, 0x24, 0x18, 0x00, // Char 048 (0) + 0x00, 0x10, 0x30, 0x10, 0x10, 0x10, 0x38, 0x00, // Char 049 (1) + 0x00, 0x18, 0x24, 0x04, 0x18, 0x20, 0x3C, 0x00, // Char 050 (2) + 0x00, 0x38, 0x04, 0x18, 0x04, 0x04, 0x38, 0x00, // Char 051 (3) + 0x00, 0x20, 0x28, 0x28, 0x3C, 0x08, 0x08, 0x00, // Char 052 (4) + 0x00, 0x3C, 0x20, 0x38, 0x04, 0x04, 0x38, 0x00, // Char 053 (5) + 0x00, 0x1C, 0x20, 0x38, 0x24, 0x24, 0x18, 0x00, // Char 054 (6) + 0x00, 0x3C, 0x04, 0x08, 0x10, 0x10, 0x10, 0x00, // Char 055 (7) + 0x00, 0x18, 0x24, 0x18, 0x24, 0x24, 0x18, 0x00, // Char 056 (8) + 0x00, 0x18, 0x24, 0x24, 0x1C, 0x04, 0x38, 0x00, // Char 057 (9) + 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, // Char 058 (:) + 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x20, 0x00, // Char 059 (;) + 0x00, 0x08, 0x10, 0x20, 0x10, 0x08, 0x00, 0x00, // Char 060 (<) + 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00, // Char 061 (=) + 0x00, 0x20, 0x10, 0x08, 0x10, 0x20, 0x00, 0x00, // Char 062 (>) + 0x7C, 0x82, 0x04, 0x08, 0x10, 0x00, 0x10, 0x00, // Char 063 (?) + 0x7C, 0x82, 0x9A, 0xAA, 0xAA, 0x9E, 0x7C, 0x00, // Char 064 (@) + 0x00, 0x18, 0x24, 0x24, 0x3C, 0x24, 0x24, 0x00, // Char 065 (A) + 0x00, 0x38, 0x24, 0x38, 0x24, 0x24, 0x38, 0x00, // Char 066 (B) + 0x00, 0x18, 0x24, 0x20, 0x20, 0x24, 0x18, 0x00, // Char 067 (C) + 0x00, 0x38, 0x24, 0x24, 0x24, 0x24, 0x38, 0x00, // Char 068 (D) + 0x00, 0x3C, 0x20, 0x38, 0x20, 0x20, 0x3C, 0x00, // Char 069 (E) + 0x00, 0x3C, 0x20, 0x38, 0x20, 0x20, 0x20, 0x00, // Char 070 (F) + 0x00, 0x18, 0x24, 0x20, 0x2C, 0x24, 0x18, 0x00, // Char 071 (G) + 0x00, 0x24, 0x24, 0x3C, 0x24, 0x24, 0x24, 0x00, // Char 072 (H) + 0x00, 0x38, 0x10, 0x10, 0x10, 0x10, 0x38, 0x00, // Char 073 (I) + 0x00, 0x04, 0x04, 0x04, 0x04, 0x24, 0x18, 0x00, // Char 074 (J) + 0x00, 0x28, 0x28, 0x30, 0x28, 0x24, 0x24, 0x00, // Char 075 (K) + 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x00, // Char 076 (L) + 0x00, 0x44, 0x6C, 0x54, 0x44, 0x44, 0x44, 0x00, // Char 077 (M) + 0x00, 0x24, 0x34, 0x34, 0x2C, 0x2C, 0x24, 0x00, // Char 078 (N) + 0x00, 0x18, 0x24, 0x24, 0x24, 0x24, 0x18, 0x00, // Char 079 (O) + 0x00, 0x38, 0x24, 0x24, 0x38, 0x20, 0x20, 0x00, // Char 080 (P) + 0x00, 0x18, 0x24, 0x24, 0x24, 0x24, 0x1C, 0x02, // Char 081 (Q) + 0x00, 0x38, 0x24, 0x24, 0x38, 0x24, 0x24, 0x00, // Char 082 (R) + 0x00, 0x1C, 0x20, 0x18, 0x04, 0x04, 0x38, 0x00, // Char 083 (S) + 0x00, 0x38, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, // Char 084 (T) + 0x00, 0x24, 0x24, 0x24, 0x24, 0x24, 0x3C, 0x00, // Char 085 (U) + 0x00, 0x24, 0x24, 0x24, 0x24, 0x14, 0x0C, 0x00, // Char 086 (V) + 0x00, 0x44, 0x44, 0x44, 0x54, 0x6C, 0x44, 0x00, // Char 087 (W) + 0x00, 0x24, 0x24, 0x10, 0x08, 0x24, 0x24, 0x00, // Char 088 (X) + 0x00, 0x22, 0x22, 0x14, 0x08, 0x08, 0x08, 0x00, // Char 089 (Y) + 0x00, 0x3C, 0x04, 0x08, 0x10, 0x20, 0x3C, 0x00, // Char 090 (Z) + 0x1C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1C, 0x00, // Char 091 ([) + 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, // Char 092 (\) + 0x70, 0x10, 0x10, 0x10, 0x10, 0x10, 0x70, 0x00, // Char 093 (]) + 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, // Char 094 (^) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, // Char 095 (_) + 0x10, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 096 (`) + 0x00, 0x00, 0x18, 0x24, 0x3C, 0x24, 0x24, 0x00, // Char 097 (a) + 0x00, 0x00, 0x38, 0x24, 0x38, 0x24, 0x38, 0x00, // Char 098 (b) + 0x00, 0x00, 0x18, 0x24, 0x20, 0x24, 0x18, 0x00, // Char 099 (c) + 0x00, 0x00, 0x38, 0x24, 0x24, 0x24, 0x38, 0x00, // Char 100 (d) + 0x00, 0x00, 0x3C, 0x20, 0x38, 0x20, 0x3C, 0x00, // Char 101 (e) + 0x00, 0x00, 0x3C, 0x20, 0x38, 0x20, 0x20, 0x00, // Char 102 (f) + 0x00, 0x00, 0x1C, 0x20, 0x2C, 0x24, 0x18, 0x00, // Char 103 (g) + 0x00, 0x00, 0x24, 0x24, 0x3C, 0x24, 0x24, 0x00, // Char 104 (h) + 0x00, 0x00, 0x1C, 0x08, 0x08, 0x08, 0x1C, 0x00, // Char 105 (i) + 0x00, 0x00, 0x04, 0x04, 0x04, 0x24, 0x18, 0x00, // Char 106 (j) + 0x00, 0x00, 0x24, 0x28, 0x30, 0x28, 0x24, 0x00, // Char 107 (k) + 0x00, 0x00, 0x20, 0x20, 0x20, 0x20, 0x3C, 0x00, // Char 108 (l) + 0x00, 0x00, 0x42, 0x66, 0x5A, 0x42, 0x42, 0x00, // Char 109 (m) + 0x00, 0x00, 0x24, 0x34, 0x3C, 0x2C, 0x24, 0x00, // Char 110 (n) + 0x00, 0x00, 0x18, 0x24, 0x24, 0x24, 0x18, 0x00, // Char 111 (o) + 0x00, 0x00, 0x38, 0x24, 0x38, 0x20, 0x20, 0x00, // Char 112 (p) + 0x00, 0x00, 0x18, 0x24, 0x24, 0x24, 0x1C, 0x02, // Char 113 (q) + 0x00, 0x00, 0x38, 0x24, 0x38, 0x24, 0x24, 0x00, // Char 114 (r) + 0x00, 0x00, 0x1C, 0x20, 0x18, 0x04, 0x38, 0x00, // Char 115 (s) + 0x00, 0x00, 0x38, 0x10, 0x10, 0x10, 0x10, 0x00, // Char 116 (t) + 0x00, 0x00, 0x24, 0x24, 0x24, 0x24, 0x3C, 0x00, // Char 117 (u) + 0x00, 0x00, 0x24, 0x24, 0x24, 0x14, 0x0C, 0x00, // Char 118 (v) + 0x00, 0x00, 0x42, 0x42, 0x5A, 0x66, 0x42, 0x00, // Char 119 (w) + 0x00, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, // Char 120 (x) + 0x00, 0x00, 0x44, 0x28, 0x10, 0x10, 0x10, 0x00, // Char 121 (y) + 0x00, 0x00, 0x7C, 0x08, 0x10, 0x20, 0x7C, 0x00, // Char 122 (z) + 0x0E, 0x10, 0x10, 0x20, 0x10, 0x10, 0x0E, 0x00, // Char 123 ({) + 0x08, 0x08, 0x08, 0x00, 0x08, 0x08, 0x08, 0x00, // Char 124 (|) + 0xE0, 0x10, 0x10, 0x08, 0x10, 0x10, 0xE0, 0x00, // Char 125 (}) + 0x00, 0x00, 0x60, 0x92, 0x0C, 0x00, 0x00, 0x00, // Char 126 (~) + 0x00, 0x00, 0x18, 0x24, 0x42, 0xFF, 0x00, 0x00, // Char 127 (.) + 0x7C, 0x82, 0x80, 0x80, 0x82, 0x7C, 0x08, 0x30, // Char 128 (.) + 0x48, 0x00, 0x84, 0x84, 0x84, 0x84, 0x7C, 0x00, // Char 129 (.) + 0x0C, 0x10, 0x7C, 0x82, 0xFC, 0x80, 0x7C, 0x00, // Char 130 (.) + 0x18, 0x24, 0x7C, 0x02, 0x7E, 0x82, 0x7C, 0x00, // Char 131 (.) + 0x24, 0x00, 0x7C, 0x02, 0x7E, 0x82, 0x7C, 0x00, // Char 132 (.) + 0x18, 0x04, 0x7C, 0x02, 0x7E, 0x82, 0x7C, 0x00, // Char 133 (.) + 0x10, 0x00, 0x7C, 0x02, 0x7E, 0x82, 0x7C, 0x00, // Char 134 (.) + 0x00, 0x00, 0x7C, 0x80, 0x80, 0x7C, 0x08, 0x30, // Char 135 (.) + 0x18, 0x24, 0x7C, 0x82, 0xFC, 0x80, 0x7C, 0x00, // Char 136 (.) + 0x24, 0x00, 0x7C, 0x82, 0xFC, 0x80, 0x7C, 0x00, // Char 137 (.) + 0x30, 0x08, 0x7C, 0x82, 0xFC, 0x80, 0x7C, 0x00, // Char 138 (.) + 0x24, 0x00, 0x18, 0x08, 0x08, 0x08, 0x1C, 0x00, // Char 139 (.) + 0x18, 0x24, 0x18, 0x08, 0x08, 0x08, 0x1C, 0x00, // Char 140 (.) + 0x18, 0x04, 0x18, 0x08, 0x08, 0x08, 0x1C, 0x00, // Char 141 (.) + 0x24, 0x00, 0x38, 0x44, 0x7C, 0x44, 0x44, 0x00, // Char 142 (.) + 0x18, 0x00, 0x38, 0x44, 0x7C, 0x44, 0x44, 0x00, // Char 143 (.) + 0x0C, 0x10, 0xFE, 0x40, 0x78, 0x40, 0xFE, 0x00, // Char 144 (.) + 0x00, 0x00, 0x7C, 0x1A, 0x7E, 0xD8, 0x7E, 0x00, // Char 145 (.) + 0x7E, 0xD8, 0xD8, 0xDE, 0xF8, 0xD8, 0xDE, 0x00, // Char 146 (.) + 0x18, 0x24, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, // Char 147 (.) + 0x66, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, // Char 148 (.) + 0x38, 0x0C, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, // Char 149 (.) + 0x18, 0x24, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x00, // Char 150 (.) + 0x38, 0x0C, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x00, // Char 151 (.) + 0x66, 0x00, 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x7C, // Char 152 (.) + 0x66, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, // Char 153 (.) + 0xC6, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, // Char 154 (.) + 0x18, 0x7C, 0xC6, 0xC0, 0xC6, 0x7C, 0x18, 0x00, // Char 155 (.) + 0x1E, 0x32, 0x30, 0x78, 0x30, 0x70, 0xFE, 0x00, // Char 156 (.) + 0x66, 0x3C, 0x18, 0x7E, 0x18, 0x3C, 0x18, 0x00, // Char 157 (.) + 0xFC, 0xC6, 0xFC, 0xC0, 0xCC, 0xDE, 0xCC, 0x0E, // Char 158 (.) + 0x00, 0x1C, 0x32, 0x30, 0xFC, 0x30, 0xF0, 0x00, // Char 159 (.) + 0x0E, 0x18, 0x7C, 0x06, 0x7E, 0xC6, 0x7E, 0x00, // Char 160 (.) + 0x1A, 0x30, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00, // Char 161 (.) + 0x0E, 0x18, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, // Char 162 (.) + 0x0E, 0x18, 0xC6, 0xC6, 0xC6, 0xC6, 0x7E, 0x00, // Char 163 (.) + 0x66, 0x98, 0xFC, 0xC6, 0xC6, 0xC6, 0xC6, 0x00, // Char 164 (.) + 0x66, 0x98, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0x00, // Char 165 (.) + 0x7C, 0x06, 0x7E, 0xC6, 0x7E, 0x00, 0xFE, 0x00, // Char 166 (.) + 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0xFE, 0x00, // Char 167 (.) + 0x18, 0x00, 0x18, 0x30, 0x60, 0xC6, 0x7C, 0x00, // Char 168 (.) + 0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, // Char 169 (.) + 0x00, 0x00, 0xFE, 0x06, 0x06, 0x06, 0x06, 0x00, // Char 170 (.) + 0x80, 0x80, 0x80, 0x9C, 0x02, 0x08, 0x1E, 0x00, // Char 171 (.) + 0x80, 0x80, 0x80, 0x90, 0x14, 0x1E, 0x04, 0x00, // Char 172 (.) + 0x10, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, // Char 173 (.) + 0x00, 0x22, 0x44, 0x88, 0x44, 0x22, 0x00, 0x00, // Char 174 (.) + 0x00, 0x88, 0x44, 0x22, 0x44, 0x88, 0x00, 0x00, // Char 175 (.) + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, // Char 176 (.) + 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, // Char 177 (.) + 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, 0x44, 0x22, // Char 178 (.) + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, // Char 179 (.) + 0x08, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x08, 0x08, // Char 180 (.) + 0x08, 0x08, 0x08, 0xF8, 0x08, 0xF8, 0x08, 0x08, // Char 181 (.) + 0x14, 0x14, 0x14, 0xF4, 0x14, 0x14, 0x14, 0x14, // Char 182 (.) + 0x00, 0x00, 0x00, 0xFC, 0x14, 0x14, 0x14, 0x14, // Char 183 (.) + 0x00, 0x00, 0x00, 0xF8, 0x08, 0xF8, 0x08, 0x08, // Char 184 (.) + 0x14, 0x14, 0x14, 0xF4, 0x04, 0xF4, 0x14, 0x14, // Char 185 (.) + 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, // Char 186 (.) + 0x00, 0x00, 0x00, 0xFC, 0x04, 0xF4, 0x14, 0x14, // Char 187 (.) + 0x14, 0x14, 0x14, 0xF4, 0x04, 0xFC, 0x00, 0x00, // Char 188 (.) + 0x14, 0x14, 0x14, 0xFC, 0x00, 0x00, 0x00, 0x00, // Char 189 (.) + 0x08, 0x08, 0x08, 0xF8, 0x08, 0xF8, 0x00, 0x00, // Char 190 (.) + 0x00, 0x00, 0x00, 0xF8, 0x08, 0x08, 0x08, 0x08, // Char 191 (.) + 0x08, 0x08, 0x08, 0x0F, 0x00, 0x00, 0x00, 0x00, // Char 192 (.) + 0x08, 0x08, 0x08, 0xFF, 0x00, 0x00, 0x00, 0x00, // Char 193 (.) + 0x00, 0x00, 0x00, 0xFF, 0x08, 0x08, 0x08, 0x08, // Char 194 (.) + 0x08, 0x08, 0x08, 0x0F, 0x08, 0x08, 0x08, 0x08, // Char 195 (.) + 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, // Char 196 (.) + 0x08, 0x08, 0x08, 0xFF, 0x08, 0x08, 0x08, 0x08, // Char 197 (.) + 0x08, 0x08, 0x08, 0x0F, 0x08, 0x0F, 0x08, 0x08, // Char 198 (.) + 0x14, 0x14, 0x14, 0x17, 0x14, 0x14, 0x14, 0x14, // Char 199 (.) + 0x14, 0x14, 0x14, 0x17, 0x10, 0x1F, 0x00, 0x00, // Char 200 (.) + 0x00, 0x00, 0x00, 0x1F, 0x10, 0x17, 0x14, 0x14, // Char 201 (.) + 0x14, 0x14, 0x14, 0xF7, 0x00, 0xFF, 0x00, 0x00, // Char 202 (.) + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x14, 0x14, // Char 203 (.) + 0x14, 0x14, 0x14, 0x17, 0x10, 0x17, 0x14, 0x14, // Char 204 (.) + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, // Char 205 (.) + 0x14, 0x14, 0x14, 0xF7, 0x00, 0xF7, 0x14, 0x14, // Char 206 (.) + 0x08, 0x08, 0x08, 0xFF, 0x00, 0xFF, 0x00, 0x00, // Char 207 (.) + 0x14, 0x14, 0x14, 0xFF, 0x00, 0x00, 0x00, 0x00, // Char 208 (.) + 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x08, 0x08, // Char 209 (.) + 0x00, 0x00, 0x00, 0xFF, 0x14, 0x14, 0x14, 0x14, // Char 210 (.) + 0x14, 0x14, 0x14, 0x1F, 0x00, 0x00, 0x00, 0x00, // Char 211 (.) + 0x08, 0x08, 0x08, 0x0F, 0x08, 0x0F, 0x00, 0x00, // Char 212 (.) + 0x00, 0x00, 0x00, 0x1F, 0x10, 0x1F, 0x10, 0x10, // Char 213 (.) + 0x00, 0x00, 0x00, 0x1F, 0x14, 0x14, 0x14, 0x14, // Char 214 (.) + 0x14, 0x14, 0x14, 0xFF, 0x14, 0x14, 0x14, 0x14, // Char 215 (.) + 0x08, 0x08, 0x08, 0xFF, 0x08, 0xFF, 0x08, 0x08, // Char 216 (.) + 0x08, 0x08, 0x08, 0xF8, 0x00, 0x00, 0x00, 0x00, // Char 217 (.) + 0x00, 0x00, 0x00, 0x0F, 0x08, 0x08, 0x08, 0x08, // Char 218 (.) + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Char 219 (.) + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, // Char 220 (.) + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, // Char 221 (.) + 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, // Char 222 (.) + 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, // Char 223 (.) + 0x00, 0x00, 0x77, 0x98, 0x98, 0x77, 0x00, 0x00, // Char 224 (.) + 0x1C, 0x36, 0x66, 0xFC, 0xC6, 0xC6, 0xFC, 0xC0, // Char 225 (.) + 0xFE, 0x62, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, // Char 226 (.) + 0x00, 0x00, 0xFF, 0x66, 0x66, 0x66, 0x66, 0x00, // Char 227 (.) + 0xFE, 0x62, 0x30, 0x18, 0x30, 0x62, 0xFE, 0x00, // Char 228 (.) + 0x00, 0x00, 0x3F, 0x66, 0xC6, 0xCC, 0x78, 0x00, // Char 229 (.) + 0x00, 0x00, 0x33, 0x33, 0x33, 0x3E, 0x30, 0xF0, // Char 230 (.) + 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, 0x18, 0x00, // Char 231 (.) + 0x3C, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x18, 0x3C, // Char 232 (.) + 0x00, 0x7C, 0xC6, 0xFE, 0xC6, 0x7C, 0x00, 0x00, // Char 233 (.) + 0x00, 0x7E, 0xC3, 0xC3, 0xC3, 0x66, 0xE7, 0x00, // Char 234 (.) + 0x1E, 0x19, 0x3C, 0x66, 0xC6, 0xCC, 0x78, 0x00, // Char 235 (.) + 0x00, 0x00, 0x66, 0x99, 0x99, 0x66, 0x00, 0x00, // Char 236 (.) + 0x00, 0x03, 0x7C, 0xCE, 0xE6, 0x7C, 0xC0, 0x00, // Char 237 (.) + 0x00, 0x3E, 0xC0, 0xFE, 0xC0, 0x3E, 0x00, 0x00, // Char 238 (.) + 0x00, 0x7E, 0xC3, 0xC3, 0xC3, 0xC3, 0x00, 0x00, // Char 239 (.) + 0x00, 0xFE, 0x00, 0xFE, 0x00, 0xFE, 0x00, 0x00, // Char 240 (.) + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x3E, 0x00, // Char 241 (.) + 0x30, 0x08, 0x04, 0x08, 0x30, 0x00, 0x7E, 0x00, // Char 242 (.) + 0x18, 0x20, 0x40, 0x20, 0x18, 0x00, 0xFC, 0x00, // Char 243 (.) + 0x00, 0x0E, 0x11, 0x10, 0x10, 0x10, 0x10, 0x10, // Char 244 (.) + 0x10, 0x10, 0x10, 0x10, 0x10, 0x90, 0x60, 0x00, // Char 245 (.) + 0x00, 0x08, 0x00, 0x3E, 0x00, 0x08, 0x00, 0x00, // Char 246 (.) + 0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00, // Char 247 (.) + 0x3C, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 248 (.) + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, // Char 249 (.) + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, // Char 250 (.) + 0x0F, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x38, 0x00, // Char 251 (.) + 0x50, 0x68, 0x48, 0x48, 0x00, 0x00, 0x00, 0x00, // Char 252 (.) + 0xF0, 0x30, 0xC0, 0xF0, 0x00, 0x00, 0x00, 0x00, // Char 253 (.) + 0x00, 0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, // Char 254 (.) + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // Char 255 (.) + } +}; + +#endif /* _SDL_tinspirefonts_h */ diff --git a/src/video/prizm/SDL_prizmnti.c b/src/video/prizm/SDL_prizmnti.c new file mode 100644 index 0000000..04fb600 --- /dev/null +++ b/src/video/prizm/SDL_prizmnti.c @@ -0,0 +1,38 @@ +#include "SDL_video.h" +#include "SDL_prizmvideo.h" +#include "SDL_prizmnti.h" + +static void nti_get_info(nti_info_t *nti_info, Uint16 *data) +{ + nti_info->magic = data[0] >> 8; + nti_info->version = data[0] & 0x00ff; + nti_info->width = data[1]; + nti_info->height = data[2]; + nti_info->reserved = data[3]; +} + +SDL_Surface *nSDL_LoadImage(Uint16 *data) +{ + SDL_Surface *image; + nti_info_t nti_info; + int i, j; + nti_get_info(&nti_info, data); + if ( nti_info.magic != 42 ) { + SDL_SetError("[PRZ] Invalid NTI image"); + return(NULL); + } + PRZ_DEBUG("Loading NTI v%d (%dx%d)", nti_info.version, nti_info.width, nti_info.height); + image = SDL_CreateRGBSurface(SDL_SWSURFACE, nti_info.width, nti_info.height, + 16, PRZ_RMASK16, PRZ_GMASK16, PRZ_BMASK16, 0); + if ( image == NULL ) { + SDL_OutOfMemory(); + return(NULL); + } + data = (Uint16 *)(data + 4); + SDL_LockSurface(image); + for ( i = 0; i < nti_info.height; ++i ) + for( j = 0; j < nti_info.width; ++j) + nSDL_SetPixel(image, j, i, data[j + (nti_info.width * i)]); + SDL_UnlockSurface(image); + return(image); +} diff --git a/src/video/prizm/SDL_prizmnti.h b/src/video/prizm/SDL_prizmnti.h new file mode 100644 index 0000000..bafc06e --- /dev/null +++ b/src/video/prizm/SDL_prizmnti.h @@ -0,0 +1,15 @@ +#ifndef _SDL_tinspirenti_h +#define _SDL_tinspirenti_h + +#include "SDL_stdinc.h" + +/* NTI specification: https://github.com/Hoffa/nSDL/wiki/NTI-specification */ + +typedef struct nti_info_t { + Uint8 magic; + Uint8 version; + Uint16 width, height; + Uint16 reserved; +} nti_info_t; + +#endif /* _SDL_tinspirenti_h */ \ No newline at end of file diff --git a/src/video/prizm/SDL_prizmutils.c b/src/video/prizm/SDL_prizmutils.c new file mode 100644 index 0000000..deb356b --- /dev/null +++ b/src/video/prizm/SDL_prizmutils.c @@ -0,0 +1,17 @@ +#include +#include "SDL_video.h" +#include "SDL_prizmvideo.h" + +int nSDL_EnableRelativePaths(char **argv) +{ + /* + char buf[NSP_BUF_SIZE], *p; + strcpy(buf, argv[0]); + p = strrchr(buf, '/'); + if ( ! p ) + return(-1); + *p = '\0'; + return(NU_Set_Current_Dir(buf) ? -1 : 0); + */ + return(0); +} diff --git a/src/video/prizm/SDL_prizmvideo.c b/src/video/prizm/SDL_prizmvideo.c new file mode 100644 index 0000000..4516f2e --- /dev/null +++ b/src/video/prizm/SDL_prizmvideo.c @@ -0,0 +1,257 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2012 Sam Lantinga + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Sam Lantinga + slouken@libsdl.org +*/ + +#include "SDL.h" +#include "SDL_config.h" +#include "SDL_mouse.h" +#include "../SDL_sysvideo.h" +#include "../SDL_pixels_c.h" +#include "../../events/SDL_events_c.h" + +#include "SDL_prizmvideo.h" +#include "SDL_prizmevents_c.h" +#include +#include + + +//#include "SDL_tinspireevents_c.h" + +static Uint16 prz_palette[256] = {0}; + +/* Initialization/Query functions */ +static int PRZ_VideoInit(_THIS, SDL_PixelFormat *vformat); +static SDL_Rect **PRZ_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags); +static SDL_Surface *PRZ_SetVideoMode(_THIS, SDL_Surface *current, int width, int height, int bpp, Uint32 flags); +static int PRZ_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors); +static void PRZ_VideoQuit(_THIS); + +/* etc. */ +static void PRZ_UpdateRects(_THIS, int numrects, SDL_Rect *rects); + +/* NSP driver bootstrap functions */ +static int PRZ_Available(void) +{ + return(1); +} + +static void PRZ_DeleteDevice(SDL_VideoDevice *device) +{ + SDL_free(device->hidden); + SDL_free(device); +} + +static SDL_VideoDevice *PRZ_CreateDevice(int devindex) +{ + SDL_VideoDevice *device; + + /* Initialize all variables that we clean on shutdown */ + device = (SDL_VideoDevice *)SDL_malloc(sizeof(SDL_VideoDevice)); + if ( device ) { + SDL_memset(device, 0, (sizeof *device)); + device->hidden = (struct SDL_PrivateVideoData *) + SDL_malloc((sizeof *device->hidden)); + } + if ( (device == NULL) || (device->hidden == NULL) ) { + SDL_OutOfMemory(); + if ( device ) { + SDL_free(device); + } + return(0); + } + SDL_memset(device->hidden, 0, (sizeof *device->hidden)); + + /* Set the function pointers */ + device->VideoInit = PRZ_VideoInit; + device->ListModes = PRZ_ListModes; + device->SetVideoMode = PRZ_SetVideoMode; + device->SetColors = PRZ_SetColors; + device->UpdateRects = PRZ_UpdateRects; + device->VideoQuit = PRZ_VideoQuit; + device->InitOSKeymap = PRZ_InitOSKeymap; + device->PumpEvents = PRZ_PumpEvents; + + device->free = PRZ_DeleteDevice; + + return device; +} + +VideoBootStrap PRZ_bootstrap = { + "prizm", "SDL Casio PRIZM video driver", + PRZ_Available, PRZ_CreateDevice +}; + +static int PRZ_VideoInit(_THIS, SDL_PixelFormat *vformat) +{ + this->hidden->cx = (int) true; + this->info.current_w = DWIDTH; + this->info.current_h = DHEIGHT; + + if ( this->hidden->cx ) { + vformat->BitsPerPixel = 16; + vformat->Rmask = PRZ_RMASK16; + vformat->Gmask = PRZ_GMASK16; + vformat->Bmask = PRZ_BMASK16; + } + + return(0); +} + +static SDL_Rect **PRZ_ListModes(_THIS, SDL_PixelFormat *format, Uint32 flags) +{ + return (SDL_Rect **) -1; +} + +static SDL_Surface *PRZ_SetVideoMode(_THIS, SDL_Surface *current, + int width, int height, int bpp, Uint32 flags) +{ + Uint32 rmask, gmask, bmask; + + //NSP_DEBUG("Initializing display (%dx%dx%d)", width, height, bpp); + + //if ( flags != SDL_SWSURFACE ) + // NSP_WARNING("Initializing with non-typical flags"); + + if ( width < DWIDTH || height < DHEIGHT ) { + int win_x = (DWIDTH - width) / 2; + int win_y = (DHEIGHT - height) / 2; + this->hidden->offset = (int)PRZ_PIXEL_ADDR(0, win_x, win_y, 2 * DWIDTH, 2); + this->hidden->win_x = win_x; + } else + this->hidden->offset = this->hidden->win_x = 0; + + if ( bpp == 16 ) { + rmask = PRZ_RMASK16; + gmask = PRZ_GMASK16; + bmask = PRZ_BMASK16; + } + + if ( this->hidden->buffer ) { + SDL_free( this->hidden->buffer ); + } + + + this->hidden->buffer2 = SDL_malloc((bpp / 8) * DWIDTH * DHEIGHT); + if ( ! this->hidden->buffer2 ) { + //SDL_SetError("Couldn't allocate buffer2 for requested mode"); + return(NULL); + } + + this->hidden->buffer = SDL_malloc((bpp / 8) * width * height); + if ( ! this->hidden->buffer ) { + SDL_free(this->hidden->buffer2); + //SDL_SetError("Couldn't allocate buffer for requested mode"); + return(NULL); + } + + memset(this->hidden->buffer2, 0, (bpp / 8) * DWIDTH * DHEIGHT); + memset(this->hidden->buffer, 0, (bpp / 8) * width * height); + + /* Allocate the new pixel format for the screen */ + if ( ! SDL_ReallocFormat(current, bpp, rmask, gmask, bmask, 0) ) { + SDL_free(this->hidden->buffer); + this->hidden->buffer = NULL; + //SDL_SetError("Couldn't allocate new pixel format for requested mode"); + return(NULL); + } + + /* Set up the new mode framebuffer */ + current->flags = flags; + this->hidden->w = this->info.current_w = current->w = width; + this->hidden->h = this->info.current_h = current->h = height; + current->pitch = (bpp / 8) * current->w; + current->pixels = this->hidden->buffer; + + //NSP_DEBUG("Done (0x%p)", current); + + /* We're done */ + return(current); +} + +#define PRZ_DRAW_LOOP(code) do { \ + while ( rows-- ) { \ + j = 0, k = 0; \ + code \ + src_addr += src_skip; \ + dst_addr += dst_skip; \ + } \ +} while (0) + +static void PRZ_UpdateRects(_THIS, int numrects, SDL_Rect *rects) +{ + int src_skip = SDL_VideoSurface->pitch; + int dst_skip = (2 * DWIDTH); + int i, j, k; + + if ( this->hidden->buffer2 == NULL ) + return; + + for ( i = 0; i < numrects; ++i ) { + SDL_Rect *rect = &rects[i]; + Uint8 *src_addr, *dst_addr; + SDL_bool odd_left, odd_right; + int row_bytes, rows; + + if ( ! rect ) + continue; + + src_addr = PRZ_PIXEL_ADDR(SDL_VideoSurface->pixels, rect->x, rect->y, + SDL_VideoSurface->pitch, SDL_VideoSurface->format->BytesPerPixel); + dst_addr = PRZ_PIXEL_ADDR(this->hidden->buffer2, rect->x, rect->y, 2 * DWIDTH, 2); + dst_addr += this->hidden->offset; + + odd_left = (this->hidden->win_x + rect->x) & 1; + odd_right = (this->hidden->win_x + rect->x + rect->w) & 1; + row_bytes = SDL_VideoSurface->format->BytesPerPixel * ((rect->x + rect->w > DWIDTH) ? DWIDTH : rect->w); + rows = (rect->y + rect->h > DHEIGHT) ? DHEIGHT : rect->h; + + if ( ! this->hidden->cx && odd_right ) + --row_bytes; + + if ( this->hidden->cx ) { + if ( SDL_VideoSurface->format->BitsPerPixel == 16 ) { + /* 16 bpp SW, 16 bpp HW */ + PRZ_DRAW_LOOP( + SDL_memcpy(dst_addr, src_addr, row_bytes); + ); + } + dupdate(); + } + } +} + +#define PRZ_MAP_RGB(r, g, b) ((((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3))) + +static int PRZ_SetColors(_THIS, int firstcolor, int ncolors, SDL_Color *colors) +{ + int i; + for ( i = firstcolor; i < firstcolor + ncolors; ++i ) + prz_palette[i] = PRZ_MAP_RGB(colors[i].r, colors[i].g, colors[i].b); + return(1); +} + +/* Note: If we are terminated, this could be called in the middle of + another SDL video routine -- notably UpdateRects. +*/ +static void PRZ_VideoQuit(_THIS) +{ + //NSP_DEBUG("Closing video"); +} diff --git a/src/video/prizm/SDL_prizmvideo.h b/src/video/prizm/SDL_prizmvideo.h new file mode 100644 index 0000000..73ca9dd --- /dev/null +++ b/src/video/prizm/SDL_prizmvideo.h @@ -0,0 +1,52 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2012 Sam Lantinga + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Sam Lantinga + slouken@libsdl.org +*/ + +#include + +#include "SDL_config.h" + +#ifndef _SDL_prizmvideo_h +#define _SDL_prizmvideo_h + +#include "../SDL_sysvideo.h" + +/* Hidden "this" pointer for the video functions */ +#define _THIS SDL_VideoDevice *this + +#define PRZ_BUF_SIZE 512 + +#define PRZ_RMASK16 0xF800 +#define PRZ_GMASK16 0x07E0 +#define PRZ_BMASK16 0x001F + +/* Private display data */ + +struct SDL_PrivateVideoData { + int w, h; + int offset; + int win_x; + void *buffer; + void *buffer2; + int cx; +}; + +#endif /* _SDL_tinspirevideo_h */