diff options
| author | Peter Moraliyski | 2002-11-30 15:41:07 +0000 | 
|---|---|---|
| committer | Peter Moraliyski | 2002-11-30 15:41:07 +0000 | 
| commit | 0a17046c4a29b406fa3303887b26571e89f7a644 (patch) | |
| tree | 4fb63e210d02431ae371dd1b49cb57bcdf2fc1e3 /backends/gp32 | |
| parent | f9a833abf01109021bc5f73521685263882dd017 (diff) | |
| download | scummvm-rg350-0a17046c4a29b406fa3303887b26571e89f7a644.tar.gz scummvm-rg350-0a17046c4a29b406fa3303887b26571e89f7a644.tar.bz2 scummvm-rg350-0a17046c4a29b406fa3303887b26571e89f7a644.zip  | |
B
gp32 sdk headerCVgp32 sdk header files
S ----------------------------------------------------------------------
svn-id: r5760
Diffstat (limited to 'backends/gp32')
| -rw-r--r-- | backends/gp32/h/defines.h | 71 | ||||
| -rw-r--r-- | backends/gp32/h/gpdef.h | 100 | ||||
| -rw-r--r-- | backends/gp32/h/gpfont.h | 67 | ||||
| -rw-r--r-- | backends/gp32/h/gpfont_port.h | 11 | ||||
| -rw-r--r-- | backends/gp32/h/gpfontres.dat | 650 | ||||
| -rw-r--r-- | backends/gp32/h/gpgraphic.h | 176 | ||||
| -rw-r--r-- | backends/gp32/h/gpmem.h | 65 | ||||
| -rw-r--r-- | backends/gp32/h/gpmm.h | 45 | ||||
| -rw-r--r-- | backends/gp32/h/gpos_def.h | 74 | ||||
| -rw-r--r-- | backends/gp32/h/gpsockdef.h | 65 | ||||
| -rw-r--r-- | backends/gp32/h/gpstdio.h | 145 | ||||
| -rw-r--r-- | backends/gp32/h/gpstdlib.h | 55 | ||||
| -rw-r--r-- | backends/gp32/h/initval_port.h | 37 | 
13 files changed, 1561 insertions, 0 deletions
diff --git a/backends/gp32/h/defines.h b/backends/gp32/h/defines.h new file mode 100644 index 0000000000..d842bd1908 --- /dev/null +++ b/backends/gp32/h/defines.h @@ -0,0 +1,71 @@ +/* defines.h */ + +#ifndef __DEFINES_H__ +#define __DEFINES_H__ + +typedef unsigned char u8; +typedef signed char s8; +typedef unsigned short u16; +typedef short s16; +typedef unsigned int u32; +typedef int s32; + +//#define	LITTLE_ENDIAN +/* +typedef union +  { +#ifdef LITTLE_ENDIAN +    struct +      { +        u8 low; +        u8 high; +      } byte; +#else +    struct +      { +        u8 high; +        u8 low; +      } byte; +#endif +    u16 word; +  } word; + + +typedef union +  { +#ifdef	LITTLE_ENDIAN +    struct +      { +        word low; +        word high; +      } word; +#else +    struct +      { +        word high; +        word low; +      } word; +#endif +    u32	dword; +  } dword; + + + + + +#ifndef BOOL +#define	BOOL	int +#endif +#ifndef TRUE +#define	TRUE	1 +#endif +#ifndef FALSE +#define	FALSE	0 +#endif + +#ifndef	NULL +#define	NULL	0 +#endif +*/ +#endif + diff --git a/backends/gp32/h/gpdef.h b/backends/gp32/h/gpdef.h new file mode 100644 index 0000000000..99a00a2f9c --- /dev/null +++ b/backends/gp32/h/gpdef.h @@ -0,0 +1,100 @@ + +#ifndef __GPDEF_H__ +#define __GPDEF_H__ + +#include "gpos_def.h" + +#ifndef NULL +#define NULL 	0 +#endif + +#ifndef TRUE +#define TRUE	1 +#else +#undef TRUE +#define TRUE	1 +#endif + +#ifndef	FALSE +#define FALSE	0 +#else +#undef	FALSE +#define FALSE	0 +#endif + +#ifndef __size_t +#define __size_t 1 +   typedef unsigned int size_t; +#endif + +//ph0x +//#undef byte  +//#define byte	char + +#undef ubyte +#define ubyte	unsigned char + +#undef uchar +#define uchar unsigned char + +#undef word +#define word	short + +#undef uword +#define uword	unsigned short + +#undef ushort +#define ushort unsigned short + +#undef dword +#define dword	long + +#undef udword +#define udword	unsigned long + +#undef ulong +#define ulong unsigned long + +/* Button definitions */ +#define	GPC_VK_NONE		0x00 +#define	GPC_VK_LEFT		0x01 +#define	GPC_VK_UP		0x08 +#define	GPC_VK_RIGHT	0x04 +#define	GPC_VK_DOWN		0x02 + +#define GPC_VK_F1		0x80	/*AT OLD, VK_ENTER*/ +#define GPC_VK_F2		0x10	/*AT OLD, VK_F3*/ +#define GPC_VK_F3		0x20	/*AT OLD, VK_F2*/ +#define GPC_VK_ENTER	0x40	/*AT OLD, VK_F1*/ + +#define GPC_VK_START	0x100 +#define GPC_VK_SELECT	0x200 + +#define GPC_VK_FA		GPC_VK_ENTER +#define GPC_VK_FB		GPC_VK_F3 +#define GPC_VK_FL		GPC_VK_F2 +#define GPC_VK_FR		GPC_VK_F1 + +/* LCD Definitions */ +#define	GPC_LCD_WIDTH	320 +#define	GPC_LCD_HEIGHT	240 +#define GPC_LCD_PHYSICAL_W	240 +#define GPC_LCD_PHYSICAL_H	320 + +typedef struct tagGPRECT{ +	int left; +	int top; +	int right; +	int bottom; +}GPRECT; + +typedef struct tagGPPOINT{ +	int X; +	int Y; +} GPPOINT; + +/* file stuff */ +#define MAX_PATH_NAME_LEN	256 + +#endif /*__GPDEF_H__*/ + diff --git a/backends/gp32/h/gpfont.h b/backends/gp32/h/gpfont.h new file mode 100644 index 0000000000..8f1d0383ff --- /dev/null +++ b/backends/gp32/h/gpfont.h @@ -0,0 +1,67 @@ + +#ifndef __GPFONT_H__ +#define	__GPFONT_H__ + +#include "gpdef.h"  +#include "gpgraphic.h" + +typedef struct tagBGFONTINFO{ +	int kor_w; +	int kor_h; +	int eng_w; +	int eng_h; +	int chargap;	 +	int linegap; +}BGFONTINFO; + +void GpFontInit (BGFONTINFO * ptr); + +void GpFontResSet (unsigned char * p_kor, unsigned char * p_eng); +unsigned char * GpKorFontResGet(void); +unsigned char * GpEngFontResGet(void); + +void GpSysFontGet (BGFONTINFO *fInfo); +int GpTextWidthGet (const char * lpsz); +int GpTextHeightGet (const char * lpsz); +int GpTextLenGet (const char * str); + +void GpTextOut (GPDRAWTAG * gptag, GPDRAWSURFACE * ptgpds, int x, int y, +              char * source, unsigned char color); +void GpCharOut (GPDRAWTAG * gptag, GPDRAWSURFACE * ptgpds, int x, int y,  +              char * source, unsigned char color); +void GpTextNOut (GPDRAWTAG * gptag, GPDRAWSURFACE * ptgpds, int x, int y,  +		      char * source, int nStart, int nString, unsigned char color); +		       +#define GPC_GT_BOTTOM		0x2 +#define GPC_GT_HCENTER		0x8 +#define GPC_GT_LEFT		0x10 +#define GPC_GT_RIGHT		0x20 +#define GPC_GT_TOP		0x40 +#define GPC_GT_WORDBREAK	0x80 +#define GPC_GT_VCENTER		0x100 +		       +void GpTextDraw (GPDRAWSURFACE * ptgpds, GPRECT * cRect, unsigned int uFormat,  +		      char * source, int nStart, int nCount, unsigned char color); + +typedef struct tagEXT_FONT{ +	int fx_flag; +	unsigned char * lpsz; +	unsigned char * pBmFont; +	int ex_font_w; +	int ex_font_h; +	int ex_chargap; +	int ex_linegap; +	int color1; +	int color2; +} EXT_FONT; + +int GpCustTextOut (GPDRAWTAG * gptag, GPDRAWSURFACE * ptgpds, int x, int y, EXT_FONT * y_font); + +void GpHAutomatonInit (void); +int GpHAutomatonInput (const char * p_input, char ** p_working); +int GpHAutomatonDelete (char ** p_working); +char * GpHAutomatonBuffered (void); + +#endif + + diff --git a/backends/gp32/h/gpfont_port.h b/backends/gp32/h/gpfont_port.h new file mode 100644 index 0000000000..4ea71b60d4 --- /dev/null +++ b/backends/gp32/h/gpfont_port.h @@ -0,0 +1,11 @@ +#ifndef __GPFONT_PORT_H__ +#define	__GPFONT_PORT_H__ + +#define KORFONT_W		12	/* pixel */ +#define KORFONT_H		12	/* pixel */ +#define ENGFONT_W		8	/* pixel */ +#define ENGFONT_H 		16	/* pixel */ +#define FONT_CHARGAP   	4	/* percentage */ +#define FONT_LINEGAP	4	/* percentage */ + +#endif diff --git a/backends/gp32/h/gpfontres.dat b/backends/gp32/h/gpfontres.dat new file mode 100644 index 0000000000..a1cee658f6 --- /dev/null +++ b/backends/gp32/h/gpfontres.dat @@ -0,0 +1,650 @@ +/*font size : (12, 12), font number : 344*/ +const unsigned char fontresKor[] = { /* Foreign lang */ +0x00, 0x00, 0x02, 0x04, 0x02, 0x04, 0x04, 0x04, 0x18, 0x04, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x08, 0x04, 0xf2, 0x07,  +0x04, 0x04, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xfe, 0x07, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04,  +0x02, 0x04, 0x02, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x04, 0x42, 0x04, 0x42, 0x04,  +0x42, 0x04, 0xc2, 0x07, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x42, 0x00, 0x42, 0x00,  +0x42, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xfe, 0x07, 0x42, 0x00, 0xfe, 0x07, 0x42, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x38, 0x00, 0xc0, 0x07,  +0x20, 0x00, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x04, 0x00, 0x38, 0x00, 0xc2, 0x07, 0x3c, 0x00, 0xe0, 0x07, 0x18, 0x00, 0x04, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x02, 0x04, 0x02, 0x04,  +0x02, 0x04, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x06, 0x04, 0x38, 0x04, 0xc0, 0x07, 0x30, 0x04, 0x0c, 0x04, 0x02, 0x04, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x04, 0x30, 0x04, 0xc6, 0x07,  +0x38, 0x04, 0xe0, 0x07, 0x18, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x02, 0x01, 0x0c, 0x05, 0xf0, 0x05, 0x08, 0x05, 0x04, 0x05, 0x02, 0x01, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x04, 0x42, 0x04, 0x44, 0x04,  +0x48, 0x04, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xfe, 0x07, 0x42, 0x04, 0x42, 0x04, 0x42, 0x04, 0x42, 0x04, 0x02, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0xfe, 0x05, 0x02, 0x04,  +0x02, 0x04, 0xfe, 0x05, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x3c, 0x01, 0x42, 0x05, 0x42, 0x05, 0x42, 0x05, 0x3c, 0x01, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04,  +0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x08, 0x04, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x04, 0x08, 0x04, 0x30, 0x04, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x04, 0x08, 0x04,  +0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x00,  +0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04,  +0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x04,  +0x20, 0x04, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0xf0, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04,  +0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x04,  +0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01,  +0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x01,  +0x20, 0x01, 0xe0, 0x07, 0x20, 0x01, 0x20, 0x01, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00,  +0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x07,  +0xc0, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x40, 0x02,  +0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x04, 0x40, 0x04,  +0x80, 0x04, 0x00, 0x07, 0x80, 0x04, 0x40, 0x04, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x20, 0x04, 0x40, 0x04, 0x80, 0x07, 0x40, 0x04, 0x20, 0x04, 0x40, 0x04, 0x80, 0x07,  +0x40, 0x04, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x20, 0x05,  +0x40, 0x05, 0x80, 0x05, 0x40, 0x05, 0x20, 0x05, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x48, 0x04,  +0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x90, 0x04,  +0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x20, 0x04, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0xe0, 0x07,  +0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x60, 0x01, 0x90, 0x05,  +0x10, 0x05, 0x10, 0x05, 0x10, 0x05, 0x90, 0x05, 0x60, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x20, 0x04,  +0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04,  +0x20, 0x04, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x04, 0x20, 0x04, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00,  +0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x04,  +0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x04, 0x40, 0x04, 0xc0, 0x07, 0x40, 0x04, 0x40, 0x04,  +0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x05, 0x40, 0x05,  +0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04,  +0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x01,  +0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x01, 0x40, 0x01, 0xc0, 0x07, 0x40, 0x01, 0x40, 0x01,  +0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01,  +0x00, 0x02, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x06, 0x80, 0x01, 0x40, 0x00, 0x80, 0x01, 0x00, 0x06,  +0x80, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x40, 0x04,  +0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x80, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x05, 0x80, 0x04,  +0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x80, 0x04, 0x00, 0x07,  +0x80, 0x04, 0x40, 0x04, 0x80, 0x04, 0x00, 0x07, 0x80, 0x04, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x20, 0x01, 0x40, 0x05, 0x80, 0x05, 0x00, 0x05, 0x80, 0x05, 0x40, 0x05,  +0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x80, 0x04,  +0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0xa0, 0x04, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x05, 0x20, 0x05, 0x20, 0x05, 0x20, 0x05, 0x20, 0x05,  +0x20, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x04, 0xe0, 0x05,  +0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0xe0, 0x05, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x01, 0x40, 0x01, 0xa0, 0x05, 0x20, 0x05, 0x20, 0x05, 0x20, 0x05, 0xa0, 0x05,  +0x40, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04,  +0x08, 0x04, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x04, 0x10, 0x04, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x04, 0xf0, 0x07, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x00, 0x40, 0x00,  +0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04,  +0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xf0, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04,  +0x20, 0x04, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xe0, 0x07, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x01, 0xe0, 0x07,  +0x20, 0x01, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x20, 0x07,  +0xc0, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xc0, 0x03, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x04, 0x40, 0x04, 0x80, 0x07,  +0x80, 0x04, 0x40, 0x04, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x40, 0x04, 0x80, 0x07, 0x40, 0x04, 0x80, 0x07, 0x80, 0x04, 0x40, 0x04, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x20, 0x05, 0xc0, 0x05,  +0x40, 0x05, 0x20, 0x05, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x90, 0x04, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x90, 0x04, 0x90, 0x04,  +0x90, 0x04, 0x90, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x20, 0x04, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0xe0, 0x07, 0x20, 0x04, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x90, 0x05, 0x10, 0x05,  +0x90, 0x05, 0x60, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x40, 0x04, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x04, 0x80, 0x07,  +0x00, 0x00, 0x40, 0x04, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x80, 0x07, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x04, 0x40, 0x04,  +0x40, 0x04, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xc0, 0x07, 0x40, 0x04, 0x40, 0x04, 0xc0, 0x07, 0x40, 0x04, 0x40, 0x04, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x05, 0x40, 0x05, 0x40, 0x05,  +0x40, 0x05, 0x40, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x80, 0x07, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x01, 0x40, 0x01,  +0x40, 0x01, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xc0, 0x07, 0x40, 0x01, 0xc0, 0x07, 0x40, 0x01, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x06,  +0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x80, 0x00, 0x00, 0x07, 0x00, 0x01, 0x80, 0x00, 0x00, 0x07, 0x00, 0x01, 0x80, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x40, 0x04, 0x40, 0x04,  +0x40, 0x04, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x40, 0x04, 0x80, 0x04, 0x00, 0x07, 0x00, 0x05, 0x80, 0x04, 0x40, 0x04, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x80, 0x07, 0x40, 0x04,  +0x80, 0x07, 0x80, 0x04, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x40, 0x01, 0x40, 0x05, 0x80, 0x05, 0x80, 0x05, 0x40, 0x05, 0x40, 0x01, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04,  +0xa0, 0x04, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xc0, 0x07, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0xc0, 0x07, 0x40, 0x04,  +0x40, 0x04, 0xc0, 0x07, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x40, 0x01, 0xa0, 0x05, 0x20, 0x05, 0xa0, 0x05, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x10, 0x04, 0x20, 0x04,  +0x40, 0x04, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x20, 0x04, 0x40, 0x04, 0x90, 0x07, 0x20, 0x04, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x00, 0x20, 0x00,  +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04,  +0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xf0, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x07, 0x10, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04,  +0x20, 0x04, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xf0, 0x07, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x10, 0x01, 0xf0, 0x07,  +0x10, 0x01, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x10, 0x00, 0x60, 0x00, 0x80, 0x07, 0x80, 0x00, 0x40, 0x00, 0x30, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x20, 0x07,  +0xc0, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xc0, 0x03, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x60, 0x04, 0x80, 0x07,  +0x40, 0x04, 0x20, 0x04, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x20, 0x04, 0xc0, 0x04, 0x20, 0x07, 0xc0, 0x04, 0x80, 0x07, 0x40, 0x04, 0x20, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x20, 0x05, 0xc0, 0x05,  +0x40, 0x05, 0x20, 0x05, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0xa0, 0x04, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x90, 0x04, 0x90, 0x04,  +0x90, 0x04, 0x10, 0x04, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x10, 0x04, 0xf0, 0x05, 0x10, 0x04, 0x10, 0x04, 0xf0, 0x05, 0x10, 0x04, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x90, 0x05, 0x10, 0x05,  +0x90, 0x05, 0x60, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x80, 0x04,  +0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x80, 0x04,  +0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x80, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,  +0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x04,  +0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x04, 0x80, 0x04, 0x80, 0x07, 0x80, 0x04, 0x80, 0x04,  +0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x05, 0x40, 0x05,  +0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04,  +0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x02,  +0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x02, 0x80, 0x02, 0x80, 0x07, 0x80, 0x02, 0x80, 0x02,  +0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01,  +0x00, 0x02, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x00, 0x06,  +0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x04,  +0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x04, 0x00, 0x06, 0x00, 0x05,  +0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x05, 0x00, 0x06,  +0x00, 0x05, 0x80, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x05, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x40, 0x01, 0x40, 0x05, 0x80, 0x05, 0x40, 0x05, 0x40, 0x01,  +0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05,  +0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x40, 0x05, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05,  +0x40, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x80, 0x07,  +0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x07, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x02, 0x80, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x06, 0x40, 0x02, 0x40, 0x03,  +0x80, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04,  +0x80, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x04, 0x80, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x80, 0x07, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x01,  +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x80, 0x07, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x04, 0x80, 0x04,  +0x80, 0x07, 0x80, 0x04, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xc0, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x04, 0x80, 0x04,  +0x80, 0x04, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x80, 0x07, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x02, 0x80, 0x07,  +0x80, 0x02, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x07, 0x00, 0x01,  +0x80, 0x00, 0x80, 0x07, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x03, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x80, 0x04, 0x00, 0x07,  +0x00, 0x05, 0x80, 0x04, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x80, 0x04, 0x00, 0x07, 0x80, 0x04, 0x00, 0x07, 0x00, 0x05, 0x80, 0x04, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x40, 0x05, 0x80, 0x05,  +0x80, 0x05, 0x40, 0x05, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x40, 0x05, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x05, 0x40, 0x05,  +0x40, 0x05, 0x40, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x40, 0x04, 0xc0, 0x07, 0x40, 0x04, 0x40, 0x04, 0xc0, 0x07, 0x40, 0x04, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x40, 0x03, 0x40, 0x06,  +0x40, 0x03, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0xff, 0x07, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x20, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0xff, 0x07, 0x90, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x90, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00,  +0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x90, 0x00,  +0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7e, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00,  +0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x3e, 0x00,  +0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0xff, 0x07, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x02, 0x00, 0x7e, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0xff, 0x07,  +0x20, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x7e, 0x00, 0x02, 0x00,  +0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7e, 0x00, 0x02, 0x00, 0x7e, 0x00, 0x02, 0x00, 0x02, 0x00,  +0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00,  +0x10, 0x00, 0x1f, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x20, 0x00, 0x22, 0x00, 0x3c, 0x00, 0x20, 0x00, 0x20, 0x00, 0x28, 0x00, 0x08, 0x00,  +0x08, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x22, 0x00, 0x3c, 0x00,  +0x20, 0x00, 0x28, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x20, 0x00, 0x22, 0x00, 0x3c, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00,  +0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x1f, 0x00,  +0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x1f, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00,  +0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00,  +0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07,  +0x40, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x90, 0x00, 0x90, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07,  +0x90, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,  +0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x90, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x90, 0x00,  +0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00,  +0x02, 0x00, 0x1e, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00,  +0xff, 0x07, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x1e, 0x00,  +0x02, 0x00, 0x02, 0x00, 0xff, 0x07, 0x20, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00,  +0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x00,  +0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x08, 0x00,  +0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x12, 0x00, 0x1c, 0x00,  +0x10, 0x00, 0x14, 0x00, 0x14, 0x00, 0x04, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x10, 0x00, 0x12, 0x00, 0x1c, 0x00, 0x10, 0x00, 0x10, 0x00, 0x12, 0x00, 0x02, 0x00,  +0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x11, 0x00, 0x1e, 0x00,  +0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00,  +0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00,  +0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00,  +0x04, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0xf8, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x80, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0xf8, 0x07, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x20, 0x02, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00,  +0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x80, 0x00, 0xf0, 0x07, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x20, 0x02,  +0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x40, 0x02, 0xf0, 0x07, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xe0, 0x01, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00,  +0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x01, 0x20, 0x00,  +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x20, 0x00, 0xe0, 0x01, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xe0, 0x07,  +0x80, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x01, 0x20, 0x00,  +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0xc0, 0x01, 0x40, 0x00, 0xc0, 0x01, 0x40, 0x00, 0x40, 0x00,  +0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00,  +0x40, 0x00, 0x70, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x78, 0x00, 0x40, 0x00, 0x40, 0x00, 0x50, 0x00, 0x10, 0x00,  +0xfc, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x70, 0x00,  +0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x02, 0xf0, 0x07, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00,  +0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x70, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00,  +0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00,  +0x70, 0x00, 0x40, 0x00, 0x40, 0x00, 0x70, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00,  +0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00,  +0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x80, 0x00,  +0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x40, 0x01,  +0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xf0, 0x07, 0x00, 0x00,  +0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x40, 0x01, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0xf0, 0x07, 0x00, 0x00,  +0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00,  +0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00,  +0xe0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0xe0, 0x00,  +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xe0, 0x07, 0x80, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0xe0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00,  +0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x60, 0x00,  +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00, 0x20, 0x00, 0x20, 0x00,  +0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00,  +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x02, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x01, 0xf0, 0x07,  +0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00,  +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00,  +0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00,  +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00,  +0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00,  +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00,  +0x08, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00,  +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00,  +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x01, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0c, 0x00,  +0x0a, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00,  +0x01, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00, 0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00,  +0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00,  +0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00,  +0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x05, 0x00,  +0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x01, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00,  +0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00,  +0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00,  +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00,  +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x05, 0x00, 0x05, 0x00,  +0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00,  +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00,  +0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00,  +0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00,  +0x0a, 0x00, 0x0c, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x15, 0x00, 0x16, 0x00, 0x14, 0x00, 0x16, 0x00, 0x15, 0x00,  +0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0a, 0x00,  +0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x0f, 0x00,  +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x19, 0x00, 0x09, 0x00, 0x0d, 0x00,  +0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00,  +0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x08, 0x00,  +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00,  +0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,  +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00,  +0x01, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00,  +0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00,  +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x11, 0x00,  +0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x05, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x01, 0x00, 0x02, 0x00, 0x1c, 0x00,  +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x11, 0x00,  +0x1f, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00, 0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00,  +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x05, 0x00,  +0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x0f, 0x00, 0x05, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00,  +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,  +0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00,  +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00,  +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x0a, 0x00, 0x09, 0x00,  +0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x15, 0x00,  +0x16, 0x00, 0x14, 0x00, 0x16, 0x00, 0x15, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00,  +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00,  +0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0f, 0x00,  +0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0d, 0x00,  +0x09, 0x00, 0x19, 0x00, 0x09, 0x00, 0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00,  +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00,  +0x08, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00,  +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00,  +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x01, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0c, 0x00,  +0x0a, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00,  +0x01, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00, 0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00,  +0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00,  +0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00,  +0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x05, 0x00,  +0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x01, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00,  +0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00,  +0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00,  +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00,  +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x05, 0x00, 0x05, 0x00,  +0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00,  +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00,  +0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00,  +0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00,  +0x0a, 0x00, 0x0c, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x15, 0x00, 0x16, 0x00, 0x14, 0x00, 0x16, 0x00, 0x15, 0x00,  +0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0a, 0x00,  +0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x0f, 0x00,  +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x19, 0x00, 0x09, 0x00, 0x0d, 0x00,  +0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00,  +0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x08, 0x00,  +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00,  +0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,  +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00,  +0x01, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00,  +0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00,  +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x11, 0x00,  +0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x05, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x01, 0x00, 0x02, 0x00, 0x1c, 0x00,  +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x11, 0x00,  +0x1f, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00,  +0x1d, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00, 0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00,  +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x05, 0x00,  +0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x0f, 0x00, 0x05, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00,  +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,  +0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00,  +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00,  +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x0a, 0x00, 0x09, 0x00,  +0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x15, 0x00,  +0x16, 0x00, 0x14, 0x00, 0x16, 0x00, 0x15, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00,  +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00,  +0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0f, 0x00,  +0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0d, 0x00,  +0x09, 0x00, 0x19, 0x00, 0x09, 0x00, 0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +/*font size : (8, 16), font number : 128*/ +const unsigned char fontresEng[] = { /* Ascii code */ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0xe0, 0x0f, 0x10, 0x10, 0x90, 0x14, 0xd0, 0x10, 0xd0, 0x10, 0x90, 0x14, 0x10, 0x10, 0xe0, 0x0f,  +0xe0, 0x0f, 0xf0, 0x1f, 0x70, 0x1b, 0x30, 0x1f, 0x30, 0x1f, 0x70, 0x1b, 0xf0, 0x1f, 0xe0, 0x0f,  +0x00, 0x00, 0x80, 0x07, 0xc0, 0x0f, 0xe0, 0x0f, 0xf0, 0x07, 0xe0, 0x0f, 0xc0, 0x0f, 0x80, 0x07,  +0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xc0, 0x07, 0xe0, 0x0f, 0xc0, 0x07, 0x80, 0x03, 0x00, 0x01,  +0x80, 0x03, 0x80, 0x03, 0x90, 0x0f, 0x70, 0x1c, 0x70, 0x1c, 0x90, 0x0f, 0x80, 0x03, 0x80, 0x03,  +0x00, 0x03, 0x80, 0x07, 0x90, 0x0f, 0xf0, 0x1f, 0xf0, 0x1f, 0x90, 0x0f, 0x80, 0x07, 0x00, 0x03,  +0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xc0, 0x03, 0xc0, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00,  +0xfe, 0x7f, 0xfe, 0x7f, 0x7e, 0x7e, 0x3e, 0x7c, 0x3e, 0x7c, 0x7e, 0x7e, 0xfe, 0x7f, 0xfe, 0x7f,  +0x00, 0x00, 0xc0, 0x03, 0x60, 0x06, 0x20, 0x04, 0x20, 0x04, 0x60, 0x06, 0xc0, 0x03, 0x00, 0x00,  +0xfe, 0x7f, 0x3e, 0x7c, 0x9e, 0x79, 0xde, 0x7b, 0xde, 0x7b, 0x9e, 0x79, 0x3e, 0x7c, 0xfe, 0x7f,  +0x00, 0x00, 0xe0, 0x00, 0xf0, 0x01, 0x10, 0x03, 0x10, 0x17, 0xf0, 0x1d, 0xe0, 0x18, 0x00, 0x1e,  +0x00, 0x00, 0x40, 0x0e, 0x40, 0x1f, 0xf0, 0x11, 0xf0, 0x11, 0x40, 0x1f, 0x40, 0x0e, 0x00, 0x00,  +0x00, 0x0e, 0x00, 0x1f, 0x00, 0x11, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x10, 0xf0, 0x1f, 0xf0, 0x1f,  +0x30, 0x00, 0x70, 0x00, 0xf0, 0x1f, 0xe0, 0x1f, 0x00, 0x14, 0x00, 0x14, 0x00, 0x1c, 0x00, 0x1c,  +0x38, 0x00, 0xf8, 0x1f, 0xf0, 0x1f, 0x00, 0x14, 0x00, 0x14, 0x70, 0x14, 0xf0, 0x1f, 0xe0, 0x1f,  +0x00, 0x00, 0xe0, 0x01, 0xe0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,  +0x00, 0x00, 0xf0, 0x1f, 0xe0, 0x0f, 0xc0, 0x07, 0x80, 0x03, 0x80, 0x03, 0x00, 0x01, 0x00, 0x01,  +0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x80, 0x03, 0x80, 0x03, 0xc0, 0x07, 0xe0, 0x0f, 0xf0, 0x1f,  +0x00, 0x00, 0x40, 0x04, 0x60, 0x0c, 0xf0, 0x1f, 0xf0, 0x1f, 0x60, 0x0c, 0x40, 0x04, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0xb0, 0x1f, 0xb0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x1f, 0xb0, 0x1f,  +0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xe0, 0x01, 0xe0, 0x01,  +0x00, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00,  +0x00, 0x00, 0x48, 0x04, 0x68, 0x0c, 0xf8, 0x1f, 0xf8, 0x1f, 0x68, 0x0c, 0x48, 0x04, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x04, 0x00, 0x0c, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x0c, 0x00, 0x04, 0x00, 0x00,  +0x00, 0x00, 0x40, 0x00, 0x60, 0x00, 0xf0, 0x1f, 0xf0, 0x1f, 0x60, 0x00, 0x40, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x40, 0x05, 0xc0, 0x07, 0x80, 0x03, 0x00, 0x01,  +0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xc0, 0x07, 0x40, 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,  +0x00, 0x00, 0xc0, 0x03, 0xc0, 0x03, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00,  +0x00, 0x01, 0x80, 0x03, 0xc0, 0x07, 0x00, 0x01, 0x00, 0x01, 0xc0, 0x07, 0x80, 0x03, 0x00, 0x01,  +0x00, 0x00, 0x60, 0x00, 0xe0, 0x01, 0xe0, 0x07, 0xe0, 0x0f, 0xe0, 0x07, 0xe0, 0x01, 0x60, 0x00,  +0x00, 0x00, 0x00, 0x0c, 0x00, 0x0f, 0xc0, 0x0f, 0xe0, 0x0f, 0xc0, 0x0f, 0x00, 0x0f, 0x00, 0x0c,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xb0, 0x1f, 0xb0, 0x1f, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x38, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x38,  +0x00, 0x00, 0x40, 0x04, 0xf0, 0x1f, 0xf0, 0x1f, 0x40, 0x04, 0xf0, 0x1f, 0xf0, 0x1f, 0x40, 0x04,  +0x00, 0x00, 0x60, 0x0e, 0x30, 0x1f, 0x10, 0x11, 0x1c, 0x71, 0x1c, 0x71, 0xf0, 0x19, 0xe0, 0x0c,  +0x00, 0x00, 0x10, 0x06, 0x30, 0x06, 0x60, 0x00, 0xc0, 0x00, 0x80, 0x01, 0x30, 0x03, 0x30, 0x06,  +0x00, 0x00, 0xe0, 0x00, 0xf0, 0x0d, 0x10, 0x1f, 0x90, 0x13, 0xe0, 0x1e, 0xf0, 0x0d, 0x10, 0x01,  +0x00, 0x00, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0xe0, 0x0f, 0x30, 0x18, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x30, 0x18, 0xe0, 0x0f, 0xc0, 0x07, 0x00, 0x00,  +0x00, 0x01, 0x40, 0x05, 0xc0, 0x07, 0x80, 0x03, 0x80, 0x03, 0xc0, 0x07, 0x40, 0x05, 0x00, 0x01,  +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xe0, 0x0f, 0xe0, 0x0f, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,  +0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x78, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x60, 0x00, 0xc0, 0x00, 0x80, 0x01, 0x00, 0x03, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x18,  +0x00, 0x00, 0xe0, 0x0f, 0xf0, 0x1f, 0x90, 0x11, 0x10, 0x13, 0x10, 0x16, 0xf0, 0x1f, 0xe0, 0x0f,  +0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x10, 0x0c, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x00, 0x10, 0x00,  +0x00, 0x00, 0x30, 0x08, 0x70, 0x18, 0xd0, 0x10, 0x90, 0x11, 0x10, 0x13, 0x30, 0x1e, 0x30, 0x0c,  +0x00, 0x00, 0x20, 0x08, 0x30, 0x18, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0xf0, 0x1f, 0xe0, 0x0e,  +0x00, 0x00, 0x80, 0x01, 0x80, 0x03, 0x80, 0x06, 0x90, 0x0c, 0xf0, 0x1f, 0xf0, 0x1f, 0x90, 0x00,  +0x00, 0x00, 0x20, 0x1f, 0x30, 0x1f, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0xf0, 0x11, 0xe0, 0x10,  +0x00, 0x00, 0xe0, 0x07, 0xf0, 0x0f, 0x10, 0x19, 0x10, 0x11, 0x10, 0x11, 0xf0, 0x01, 0xe0, 0x00,  +0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0xf0, 0x10, 0xf0, 0x11, 0x00, 0x13, 0x00, 0x1e, 0x00, 0x1c,  +0x00, 0x00, 0xe0, 0x0e, 0xf0, 0x1f, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0xf0, 0x1f, 0xe0, 0x0e,  +0x00, 0x00, 0x00, 0x0e, 0x10, 0x1f, 0x10, 0x11, 0x10, 0x11, 0x30, 0x11, 0xe0, 0x1f, 0xc0, 0x0f,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x60, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x70, 0x0c, 0x60, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xc0, 0x06, 0x60, 0x0c, 0x30, 0x18, 0x10, 0x10, 0x00, 0x00,  +0x00, 0x00, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x00, 0x00,  +0x00, 0x00, 0x10, 0x10, 0x30, 0x18, 0x60, 0x0c, 0xc0, 0x06, 0x80, 0x03, 0x00, 0x01, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x10, 0xb0, 0x11, 0xb0, 0x13, 0x00, 0x1e, 0x00, 0x0c,  +0x00, 0x00, 0xe0, 0x0f, 0xf0, 0x1f, 0x10, 0x10, 0xd0, 0x13, 0xd0, 0x13, 0xd0, 0x1f, 0x80, 0x0f,  +0x00, 0x00, 0xf0, 0x03, 0xf0, 0x07, 0x80, 0x0c, 0x80, 0x18, 0x80, 0x0c, 0xf0, 0x07, 0xf0, 0x03,  +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x11, 0x10, 0x11, 0xf0, 0x1f, 0xe0, 0x0e,  +0x00, 0x00, 0xc0, 0x07, 0xe0, 0x0f, 0x30, 0x18, 0x10, 0x10, 0x10, 0x10, 0x30, 0x18, 0x60, 0x0c,  +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x10, 0x30, 0x18, 0xe0, 0x0f, 0xc0, 0x07,  +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x11, 0x90, 0x13, 0x30, 0x18, 0x70, 0x1c,  +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x11, 0x80, 0x13, 0x00, 0x18, 0x00, 0x1c,  +0x00, 0x00, 0xc0, 0x07, 0xe0, 0x0f, 0x30, 0x18, 0x90, 0x10, 0x90, 0x10, 0xe0, 0x18, 0xf0, 0x0c,  +0x00, 0x00, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xf0, 0x1f, 0xf0, 0x1f,  +0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x60, 0x00, 0x70, 0x00, 0x10, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xe0, 0x1f, 0x00, 0x10,  +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x01, 0xc0, 0x07, 0xf0, 0x1e, 0x30, 0x18,  +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x10, 0x10, 0x00, 0x30, 0x00, 0x70, 0x00,  +0x00, 0x00, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x0c, 0xf0, 0x1f, 0xf0, 0x1f,  +0x00, 0x00, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x0e, 0x00, 0x07, 0x80, 0x03, 0xf0, 0x1f, 0xf0, 0x1f,  +0x00, 0x00, 0xc0, 0x07, 0xe0, 0x0f, 0x30, 0x18, 0x10, 0x10, 0x30, 0x18, 0xe0, 0x0f, 0xc0, 0x07,  +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x11, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x0e,  +0x00, 0x00, 0xc0, 0x0f, 0xe0, 0x1f, 0x20, 0x10, 0xe0, 0x10, 0x78, 0x10, 0xf8, 0x1f, 0xc8, 0x0f,  +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x11, 0x80, 0x11, 0xf0, 0x1f, 0x70, 0x0e,  +0x00, 0x00, 0x60, 0x0c, 0x70, 0x1e, 0x10, 0x13, 0x10, 0x11, 0x90, 0x11, 0xf0, 0x1c, 0x60, 0x0c,  +0x00, 0x18, 0x00, 0x10, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x10, 0x00, 0x10, 0x00, 0x18,  +0x00, 0x00, 0xe0, 0x1f, 0xf0, 0x1f, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xf0, 0x1f, 0xe0, 0x1f,  +0x00, 0x00, 0xc0, 0x1f, 0xe0, 0x1f, 0x30, 0x00, 0x10, 0x00, 0x30, 0x00, 0xe0, 0x1f, 0xc0, 0x1f,  +0x00, 0x00, 0xf0, 0x1f, 0xf0, 0x1f, 0x60, 0x00, 0xc0, 0x00, 0x60, 0x00, 0xf0, 0x1f, 0xf0, 0x1f,  +0x00, 0x00, 0x70, 0x1c, 0xf0, 0x1e, 0x80, 0x03, 0x00, 0x01, 0x80, 0x03, 0xf0, 0x1e, 0x70, 0x1c,  +0x00, 0x00, 0x00, 0x1c, 0x10, 0x1e, 0xf0, 0x03, 0xf0, 0x01, 0xf0, 0x03, 0x10, 0x1e, 0x00, 0x1c,  +0x00, 0x00, 0x70, 0x1c, 0xf0, 0x18, 0x90, 0x11, 0x10, 0x13, 0x10, 0x16, 0x30, 0x1c, 0x70, 0x18,  +0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x1c, 0x00, 0x0e, 0x00, 0x07, 0x80, 0x03, 0xc0, 0x01, 0xe0, 0x00, 0x70, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x08,  +0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x70, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x60, 0x00, 0xf0, 0x02, 0x90, 0x02, 0x90, 0x02, 0xe0, 0x03, 0xf0, 0x01, 0x10, 0x00,  +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xe0, 0x1f, 0x10, 0x02, 0x10, 0x03, 0xf0, 0x01, 0xe0, 0x00,  +0x00, 0x00, 0xe0, 0x01, 0xf0, 0x03, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x30, 0x03, 0x20, 0x01,  +0x00, 0x00, 0xe0, 0x00, 0xf0, 0x01, 0x10, 0x03, 0x10, 0x12, 0xe0, 0x1f, 0xf0, 0x1f, 0x10, 0x00,  +0x00, 0x00, 0xe0, 0x01, 0xf0, 0x03, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0xb0, 0x03, 0xa0, 0x01,  +0x00, 0x00, 0x10, 0x01, 0xf0, 0x0f, 0xf0, 0x1f, 0x10, 0x11, 0x00, 0x19, 0x00, 0x0c, 0x00, 0x00,  +0x00, 0x00, 0xc8, 0x01, 0xec, 0x03, 0x24, 0x02, 0x24, 0x02, 0xfc, 0x01, 0xf8, 0x03, 0x00, 0x02,  +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x01, 0x00, 0x02, 0xf0, 0x03, 0xf0, 0x01,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x02, 0xf0, 0x1b, 0xf0, 0x1b, 0x10, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x18, 0x00, 0x1c, 0x00, 0x04, 0x00, 0x04, 0x02, 0xfc, 0x1b, 0xf8, 0x1b, 0x00, 0x00,  +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x80, 0x00, 0xc0, 0x01, 0x70, 0x03, 0x30, 0x02,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x00, 0x00, 0x00,  +0x00, 0x00, 0xf0, 0x01, 0xf0, 0x03, 0x00, 0x01, 0xf0, 0x01, 0x00, 0x01, 0xf0, 0x03, 0xf0, 0x01,  +0x00, 0x00, 0x00, 0x02, 0xf0, 0x03, 0xf0, 0x01, 0x00, 0x02, 0x00, 0x02, 0xf0, 0x03, 0xf0, 0x01,  +0x00, 0x00, 0xe0, 0x01, 0xf0, 0x03, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0xf0, 0x03, 0xe0, 0x01,  +0x00, 0x00, 0x04, 0x02, 0xfc, 0x03, 0xfc, 0x01, 0x24, 0x02, 0x20, 0x02, 0xe0, 0x03, 0xc0, 0x01,  +0x00, 0x00, 0xc0, 0x01, 0xe0, 0x03, 0x20, 0x02, 0x24, 0x02, 0xfc, 0x01, 0xfc, 0x03, 0x04, 0x02,  +0x00, 0x00, 0x10, 0x02, 0xf0, 0x03, 0xf0, 0x01, 0x10, 0x03, 0x00, 0x02, 0x80, 0x03, 0x80, 0x01,  +0x00, 0x00, 0x20, 0x01, 0xb0, 0x03, 0x90, 0x02, 0xd0, 0x02, 0x50, 0x02, 0x70, 0x03, 0x20, 0x01,  +0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0xe0, 0x0f, 0xf0, 0x1f, 0x10, 0x02, 0x30, 0x02, 0x20, 0x00,  +0x00, 0x00, 0xe0, 0x03, 0xf0, 0x03, 0x10, 0x00, 0x10, 0x00, 0xe0, 0x03, 0xf0, 0x03, 0x10, 0x00,  +0x00, 0x00, 0x80, 0x03, 0xc0, 0x03, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0xc0, 0x03, 0x80, 0x03,  +0x00, 0x00, 0xe0, 0x03, 0xf0, 0x03, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xf0, 0x03, 0xe0, 0x03,  +0x00, 0x00, 0x10, 0x02, 0x30, 0x03, 0xe0, 0x01, 0xc0, 0x00, 0xe0, 0x01, 0x30, 0x03, 0x10, 0x02,  +0x00, 0x00, 0xc0, 0x03, 0xe4, 0x03, 0x24, 0x00, 0x24, 0x00, 0x2c, 0x00, 0xf8, 0x03, 0xf0, 0x03,  +0x00, 0x00, 0x10, 0x03, 0x30, 0x03, 0x70, 0x02, 0xd0, 0x02, 0x90, 0x03, 0x30, 0x03, 0x30, 0x02,  +0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xe0, 0x0f, 0xf0, 0x1e, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1e, 0xf0, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  +0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0xf0, 0x1e, 0xe0, 0x0f, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00,  +0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x10, 0x00, 0x18, 0x00, 0x08, 0x00, 0x18, 0x00, 0x10,  +0x00, 0x00, 0xe0, 0x00, 0xe0, 0x01, 0x20, 0x03, 0x20, 0x06, 0x20, 0x03, 0xe0, 0x01, 0xe0, 0x00, }; + diff --git a/backends/gp32/h/gpgraphic.h b/backends/gp32/h/gpgraphic.h new file mode 100644 index 0000000000..f1ead3c59c --- /dev/null +++ b/backends/gp32/h/gpgraphic.h @@ -0,0 +1,176 @@ + +#ifndef 	__GRAPHIC_H__ +#define		__GRAPHIC_H__ + +#define GPC_DRAW_OK				0 +#define	GPC_DRAW_ERR_FULL		1 +#define GPC_DRAW_ERR_PARAM		2 +#define GPC_DRAW_ERR_UNKNOWN	3 +#define GPC_DRAW_ERR_OUTOFMEM	4 + +#define GPC_LCD_ON_BIT			0x80 +#define GPC_LCD_VACTIVE			0x40 +#define GPC_LCD_HACTIVE			0x20 + +typedef struct tagGPLCDINFO{ +	union{ +		int U32_lcd; +		struct{ +			char clk_value; +			char lcd_buf_count; +			char bpp; +			char b_lcd_on; +		}U8_lcd; +	}lcd_global; +	unsigned int buffer_size; +	unsigned int * buf_addr[4]; +	unsigned int * r_palette; +	unsigned int * m_palette; +}GPLCDINFO; + +typedef struct tagGPDRAWTAG{ +	int restoreflag; +	short clip_x; +	short clip_y; +	short clip_w; +	short clip_h; +}GPDRAWTAG; + +typedef struct tagGPDRAWSURFACE{ +	unsigned char * ptbuffer; +	int bpp;	/*reserved*/ +	int buf_w; +	int buf_h; +	int ox; +	int oy; +	unsigned char * o_buffer; +} GPDRAWSURFACE; + +#define GPC_DFLAG_1BPP	1 +#define GPC_DFLAG_2BPP	2 +#define GPC_DFLAG_4BPP	4 +#define GPC_DFLAG_8BPP	8 +#define GPC_DFLAG_16BPP	16 + +int GpGraphicModeSet(int gd_bpp, int * gp_pal); +void GpLcdInfoGet(GPLCDINFO * p_info); +void GpLcdEnable(void); +void GpLcdDisable(void); +int GpLcdStatusGet(void); +int GpLcdSurfaceGet(GPDRAWSURFACE * ptgpds, int idx); +int GpMemSurfaceGet(GPDRAWSURFACE * ptgpds); +extern void (*GpSurfaceSet)(GPDRAWSURFACE * ptgpds); +extern void (*GpSurfaceFlip)(GPDRAWSURFACE * ptgpds); +unsigned char * GpLcdLock(void); +void GpLcdUnlock(void); + +#define GPC_PAL_RED_MASK	0xf800 +#define GPC_PAL_GREEN_MASK	0x07c0 +#define GPC_PAL_BLUE_MASK	0x003e +#define GPC_PALCHAN_RED_BIT		0x4 +#define GPC_PALCHAN_GREEN_BIT	0x2 +#define GPC_PALCHAN_BLUE_BIT	0x1 + +typedef unsigned short GP_PALETTEENTRY; +typedef struct tag_GP_LOGPALENTRY{ +	unsigned char peRed; +	unsigned char peGreen; +	unsigned char peBlue; +	unsigned char peFlags; +}GP_LOGPALENTRY; + +typedef unsigned long * GP_HPALETTE; +GP_HPALETTE GpPaletteCreate (int entry_num, GP_PALETTEENTRY * pal_entry); +GP_HPALETTE GpPaletteCreateEx (int entry_num, GP_LOGPALENTRY * pal_entry); + +GP_HPALETTE GpPaletteSelect(GP_HPALETTE h_new); + +unsigned int GpPaletteRealize (void); +int GpPaletteDelete (GP_HPALETTE hPal); +#define GPC_PAL_SYNC_REALIZE	0 +#define GPC_PAL_ASYNC_REALIZE	1 +#define GPC_PAL_NO_REALIZE		2 +int GpPaletteEntryChange (int pal_offset, int entry_num, GP_PALETTEENTRY * pal_entry, int flag); +int GpPaletteEntryChangeEx (int pal_offset, int entry_num, GP_LOGPALENTRY * pal_entry, int flag); + +GP_HPALETTE GpRegPalGet (void); +GP_HPALETTE GpLogPalGet (void); + +int GpLcdFade (int fade_step, GP_HPALETTE old_pal); +void GpLcdNoFade (GP_HPALETTE old_pal); +int GpLcdChanFade (int fade_step, int chan, GP_HPALETTE old_pal); +int GpLcdFadeNormalize (GP_HPALETTE basic_pal); + +int GpBitBlt (GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char * src, int sx,int sy,int imgw,int imgh); +int GpTransBlt (GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char *src,int sx,int sy,int imgw,int imgh,unsigned char color); +int GpBitLRBlt (GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char * src,int sx,int sy,int imgw,int imgh); +int GpTransLRBlt (GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char* src,int sx,int sy,int imgw,int imgh,unsigned char color); +int GpBitUDBlt (GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char * src,int sx,int sy,int imgw,int imgh); +int GpTransUDBlt(GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char* src,int sx,int sy,int imgw,int imgh,unsigned char color); +int GpRectFill(GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char color); + +void GpPointSet(GPDRAWSURFACE * ptgpds,int x, int y, unsigned char color); +void GpLineDraw(GPDRAWSURFACE * ptgpds,int xS,int yS,int xE,int yE,unsigned char color); +void GpRectDraw(GPDRAWSURFACE * ptgpds,int left,int top,int right,int bottom,unsigned char color); +void GpEllipseDraw(GPDRAWSURFACE * ptgpds,int xS,int yS,int w,int h,unsigned char color); + +/************************************************************************************************* + +GPGRAPHIC Effect API + +	You must import libgpg_ex??.a for using the following: + + +CURRENTLY, THE FOLLOWING ARE ALLOWED + +  GPC_GDFX_COPY +  GPC_GDFX_TRANS +  GPC_GDFX_EASYBLEND +  GPC_GDFX_TRANS | GPC_GDFX_EASYBLEND +  GPC_GDFX_BLEND +  GPC_GDFX_TRANS | GPC_GDFX_BLEND +  GPC_GDFX_INVERT +  GPC_GDFX_TRANS | GPC_GDFX_INVERT +  GPC_GDFX_LRFLIP +  GPC_GDFX_UDFLIP +  GPC_GDFX_TRANS | GPC_GDFX_LRFLIP +  GPC_GDFX_TRANS | GPC_GDFX_UDFLIP +  GPC_GDFX_RAYPLUS +  GPC_GDFX_TRANS | GPC_GDFX_RAYPLUS +  GPC_GDFX_TRANS | GPC_GDFX_MASKING +  GPC_GDFX_MASKING | GPC_GDFX_RAYPLUS +  GPC_GDFX_TRANS | GPC_GDFX_CHRAYPLUS +  GPC_GDFX_TRANS | GPC_GDFX_PART_RAY +  GPC_GDFX_RAYMINUS +  GPC_GDFX_TRANS | GPC_GDFX_RAYMINUS +  GPC_GDFX_MASKING | GPC_GDFX_RAYMINUS +*****************************************************************************************************/ + +#define GPC_GDFX_NOEFFECT	0x00 +#define GPC_GDFX_COPY		0x01 +#define GPC_GDFX_TRANS		0x02 +#define GPC_GDFX_EASYBLEND	0x04 +#define GPC_GDFX_BLEND		0x08 +#define GPC_GDFX_EXCHANGE	0x10 +#define GPC_GDFX_INVERT		0x20 +#define GPC_GDFX_LRFLIP		0x40 +#define GPC_GDFX_UDFLIP		0x80 +#define GPC_GDFX_RAYPLUS	0x100 +#define GPC_GDFX_MASKING	0x200 +#define GPC_GDFX_CHRAYPLUS	0x400 +#define GPC_GDFX_PART_RAY	0x800 +#define GPC_GDFX_RAYMINUS	0x1000 +#define GPC_GDFX_SRC_RPLUS	0x2000 + +typedef struct tagGPGD_FX{ +	int fx_flag;		/*effect option*/ +	int v_default;		/*default value*/ +	int v_tmp;		/*temporary value*/ +	int * v_list;		/*value list (not yet used)*/ +}GPGD_FX; + +int GpFxBlt(GPDRAWTAG *gptag, GPDRAWSURFACE *tggpds, int dx, int dy, int width, int height, GPDRAWSURFACE *srcgpds, GPGD_FX *gpfx); + +#endif /*__gpgraphic_h__*/ + + diff --git a/backends/gp32/h/gpmem.h b/backends/gp32/h/gpmem.h new file mode 100644 index 0000000000..304e1ebdb4 --- /dev/null +++ b/backends/gp32/h/gpmem.h @@ -0,0 +1,65 @@ + +#ifndef __GPMEM_H__ +#define	 __GPMEM_H__  + +typedef struct tagGM_HEAP_DEF{ +	void * heapstart; +	void * heapend; +        } GM_HEAP_DEF; + +struct tagGPMEMFUNC{ +	void * (*malloc)(unsigned int size); +	void * (*zimalloc)(unsigned int size); +	void * (*calloc)(int count, unsigned int size); +	void (*free)(void * pt); +	unsigned int (*availablemem)(void); +	void * (*malloc_ex)(unsigned int size, int ex_flag, unsigned char init_val); +	void (*free_ex)(void); +	void * (*make_mem_partition)(struct tagGPMEMFUNC * p_mem_sub, unsigned int size, int * err_no); +        }; +typedef struct tagGPMEMFUNC GPMEMFUNC; + +typedef struct tagGPSTRFUNC{ +	void (*memset)(void * ptr, unsigned char val, unsigned int size); +	void * (*memcpy)(void * s1, const void * s2, unsigned int size); +	char * (*strcpy)(char * s1, const char * s2); +	char * (*strncpy)(char * s1, const char * s2, unsigned int size);  +	char * (*strcat)(char * s1, const char * s2); +	char * (*strncat)(char * s1, const char * s2, unsigned int size); +	int (*gpstrlen)(const char * s); +	int (*sprintf)(char * buf, const char * fmt, ...); +	void (*uppercase)(char *ptr, int count); +	void (*lowercase)(char *ptr, int count); +	int (*compare)(const char *pt1, const char *pt2); +	void (*trim_right)(const char *ptr); +} GPSTRFUNC; + +void gm_heap_init(GM_HEAP_DEF * p_def); + +extern void * gm_malloc(unsigned int size); +extern void * gm_zi_malloc(unsigned int size); +#define MALLOC_EX_AUTOFREE		0x1 +#define MALLOC_EX_MEMSET		0x2 +extern void * gm_malloc_ex(unsigned int size, int ex_flag, unsigned char init_val); +extern void * gm_calloc(int count, unsigned int size); +extern void gm_free(void * pt); +extern void gm_free_ex(void); +extern unsigned int gm_availablesize(void); +extern void * gm_make_mem_part(GPMEMFUNC * p_mem_sub, unsigned int size, int * err_no); + +extern void gm_memset(void * /*ptr*/, unsigned char /*val*/, unsigned int /*size*/); +extern void * gm_memcpy(void * /*s1*/, const void * /*s2*/, unsigned int /*size*/); +extern char * gm_strcpy(char * /*s1*/, const char * /*s2*/); +extern char * gm_strncpy(char * /*s1*/, const char * /*s2*/, unsigned int /*size*/); +extern char * gm_strcat(char * /*s1*/, const char * /*s2*/); +extern char * gm_strncat(char * /*s1*/, const char * /*s2*/, unsigned int /*size*/); +extern int gm_lstrlen(const char * /*s*/); +extern int gm_sprintf(char * buf, const char * fmt, ...); +extern void gm_lowercase(char * ptr, int count); +extern void gm_uppercase(char * ptr, int count); +extern int gm_compare(const char * pt1, const char * pt2); +extern void gm_trim_right(const char * ptr); + +#endif /*__GPMEM_H__*/ + + diff --git a/backends/gp32/h/gpmm.h b/backends/gp32/h/gpmm.h new file mode 100644 index 0000000000..2d804762d7 --- /dev/null +++ b/backends/gp32/h/gpmm.h @@ -0,0 +1,45 @@ + +#ifndef	__GPMM_H__ +#define	__GPMM_H__ + +/* MIDI related  */ +#define GPC_MIDISTATUS_BUSY	1 +#define GPC_MIDISTATUS_READY	0 +#define GPC_MIDISTATUS_PAUSED 	2 + +void GpMidiPlay (unsigned char * midisrc,int repeatcount); +void GpMidiListPlay (unsigned char ** srclist,int listcount); +void GpMidiStop (void); +void GpMidiPause (void); +void GpMidiReplay (void); +int GpMidiStatusGet (int * played); + +/* PCM related */ +#define GPC_EPCM_OK		0 +#define GPC_EPCM_FULL		1 +#define GPC_EPCM_NO_INIT	2 + +typedef enum{ +	PCM_M11, +	PCM_S11, +	PCM_M22, +	PCM_S22, +	PCM_M44, +	PCM_S44 +} PCM_SR; + +typedef enum{ +	PCM_8BIT, +	PCM_16BIT +} PCM_BIT; + +int GpPcmInit (PCM_SR sr, PCM_BIT bit_count); +int GpPcmPlay (unsigned short * src, int size, int repeatflag); +void GpPcmRemove (unsigned short * src); +void GpPcmStop (void); +int GpPcmEnvGet (PCM_SR * p_sr, PCM_BIT * p_bit_count, int * p_real_sr); + +int GpPcmLock (unsigned short * p_src, int * idx_buf, unsigned int * addr_of_playing_buf); +void GpPcmOnlyKill (unsigned short * p_src); + +#endif	/*__GENERALMIDI_H__*/ diff --git a/backends/gp32/h/gpos_def.h b/backends/gp32/h/gpos_def.h new file mode 100644 index 0000000000..fc462a97ab --- /dev/null +++ b/backends/gp32/h/gpos_def.h @@ -0,0 +1,74 @@ +#ifndef __gpos_def_h__ +#define __gpos_def_h__ + +typedef enum{ +	H_THREAD_SOUND, +	H_THREAD_IDLE, +	H_THREAD_GPMAIN, +	H_THREAD_NET, +	H_THREAD_TMR0, +	H_THREAD_TMR1, +	H_THREAD_TMR2, +	H_THREAD_TMR3 +}H_THREAD; + +/************************************************************* +* OS launching flag			                                 * +*************************************************************/ +#define ALLOW_PRIORITY_REVERSION	0x1						//BIT [0] flag : if set, allow reversion. + +/*******************************************************************/ +/*Schedule related define*/ +#define GPOS_DFT_RUNNING_TIME	20	//20*2 = 40ms +#define GPOS_DFT_SUSPEND_TIME	5	//5*2 = 10ms +/*******************************************************************/ + +/*******************************************************************/ +/*Priority define*/ +#define GPOS_PRIO_ABOVE_NORMAL	2 +#define GPOS_PRIO_NORMAL		3 +#define GPOS_PRIO_BELOW_NORMAL	4 +#define GPOS_PRIO_LOW			5 +/*******************************************************************/ + +/*******************************************************************/ +/*GP kernel related return values list*/ +#define GPOS_ERR_OK					0 +#define GPOS_ERR_NOEFFECT			1 +#define GPOS_ERR_INVALIDARG			2 +#define GPOS_ERR_ALREADY_USED		3 +#define GPOS_ERR_INVALID_ACCESS		4 +#define GPOS_ERR_OUTOFMEM			5 +#define GPOS_ERR_STACK				6 +#define GPOS_ERR_PENDED_THREAD		7 +/*******************************************************************/ + +/*******************************************************************/ +/*User thread define*/ +#define GPC_MAXPROGTIMER	4 + +int GpTimerOptSet(int idx, int tmr_tps, int max_exec_tick, void (*irq_tmrfunc)(void)); +int GpTimerSet(int idx); +int GpTimerPause(int idx); +int GpTimerResume(int idx); +void GpTimerKill(int idx); +/*******************************************************************/ + +/*******************************************************************/ +/*GP kernel control define*/ +void GpMain(void * arg); +void GpKernelInitialize(void); +void GpKernelStart(void); +void GpKernelOptSet(int flag); +void GpKernelLock(void); +void GpKernelUnlock(void); +void GpThreadSleep(unsigned int delay); +int GpThreadOptSet(H_THREAD th, int priority, int stk_size);	/*return ok or err*/ +H_THREAD GpThreadHandleGet(void); +void GpNetThreadAct(void (*t_func)(void)); +void GpNetThreadDelete(void); +/*******************************************************************/ + +int GpPredefinedStackGet(H_THREAD th); + +#endif diff --git a/backends/gp32/h/gpsockdef.h b/backends/gp32/h/gpsockdef.h new file mode 100644 index 0000000000..a49144474f --- /dev/null +++ b/backends/gp32/h/gpsockdef.h @@ -0,0 +1,65 @@ + +#ifndef __GPSOCKDEF_H__ +#define __GPSOCKDEF_H__ + +/*****************************************************************************/ +typedef enum{ +	GNS_MDM_INIT, +	GNS_MDM_DIAL, +	GNS_MDM_HANGUP, +	GNS_TIME_OUT,	/*lcp or ipcp time out for an ack long enough */ +	GNS_LCP_UP, +	GNS_IP_UP, +	GNS_USR_SEND, +	GNS_PPP_QUIT, +	GNS_ERR_CHAP, +	GNS_ERR_PAP +}GP_NET_STATE; + +/***************************************************************************/ +struct tagGP_COMM_OPT{ +	int baudrate; +	void (*uart_reset)(int ch); +	void (*uart_open)(int ch, int baudrate, int en_int); +	void (*uart_sendc)(int ch, unsigned char data); +	int (*uart_getc)(int ch, unsigned char * data); +	int (*uart_sendready)(int channel); +	unsigned int (*get_nettick)(void); +}; +typedef struct tagGP_COMM_OPT GP_COMM_OPT; + +struct tagGP_COMM_MEM{ +	void* (*malloc)(unsigned int nbyte); +	void (*free)(void * pt); +}; +typedef struct tagGP_COMM_MEM GP_COMM_MEM;  + +/*****************************************************************************/ +#define MAX_PARAM_STRING	128 + +struct tagGP_INET_OPT{ +	char gp_phone_num[MAX_PARAM_STRING]; +	char gp_userid[MAX_PARAM_STRING]; +	char gp_pwd[MAX_PARAM_STRING]; +	char gp_fhost[MAX_PARAM_STRING]; +	int gp_fport; +	char gp_modem_init_cmd[MAX_PARAM_STRING]; +	char gp_modem_sub_cmd[MAX_PARAM_STRING]; +	int gp_ppp_tmo; +	int gp_line_tmo; +	void (*deliver_state)(GP_NET_STATE msg); +	char gp_dns_addr[MAX_PARAM_STRING]; +#ifdef GPNET_DEBUG +	void (*deliver_msg)(const char *p_str); +	void (*copy_tx)(unsigned char data); +	void (*copy_rx)(unsigned char data); +#endif	 +}; +typedef struct tagGP_INET_OPT GP_INET_OPT; + +/****************************************************************************/ +extern GP_COMM_OPT gp_comm_opt; +extern GP_COMM_MEM gp_comm_mem; +extern GP_INET_OPT gp_inet_opt; + +#endif /*__GPSOCKDEF_H__*/ diff --git a/backends/gp32/h/gpstdio.h b/backends/gp32/h/gpstdio.h new file mode 100644 index 0000000000..bfcbdb1ca4 --- /dev/null +++ b/backends/gp32/h/gpstdio.h @@ -0,0 +1,145 @@ + +#ifndef __GPSTDIO_H__ +#define __GPSTDIO_H__ + +#include "gpdef.h" +/*****************************************************************/ +/*GP32 FAT                                                        */ +/*****************************************************************/ +typedef enum { +	SM_OK,					/* 0 */ +	ERR_FLASH_STATUS, +	ERR_CARD_NOT_DETECTED, +	ERR_CARD_CHANGED, +	ERR_NOT_ERASED, +	ERR_NOT_FORMATTED, +	ERR_INVALID_MBR, +	ERR_INVALID_PBR, +	ERR_INVALID_FAT, +	ERR_INVALID_NAME, +	ERR_INVALID_HANDLE,		/* 10 */ +	ERR_INVALID_PARAM, +	ERR_NO_EMPTY_BLOCK, +	ERR_INVALID_BLOCK, +	ERR_ECC, +	ERR_ECC_CORRECTABLE, +	ERR_FILE_OPENED, +	ERR_FILE_EXIST, +	ERR_DIR_NOT_EMPTY, +	ERR_EOF, +	ERR_FILE_NOT_OPENED,	/* 20 */ +	ERR_FILE_NOT_EXIST, +	ERR_NO_LONG_NAME, +	ERR_NOT_FOUND, +	ERR_INCORRECT_FAT, +	ERR_ROOT_DIR, +	ERR_LOCKED, +	ERR_NOT_PERMITTED, +	ERR_OUT_OF_MEMORY, +	ERR_OUT_OF_ROOT_ENTRY, +	ERR_NO_MORE_ENTRY,		/* 30 */ +	ERR_SM_TIMEOUT, +	ERR_SYSTEM_PARAMETER, +	ERR_INTERNAL, +	ERR_FILE_NAME_LEN_TOO_LONG, +	ERR_NO_EMPTY_CLUSTER, +	ERR_INVALID_R_PATH, +	ERR_ID_NOT_FOUND, +	ERR_ID_INVALID, +	ERR_NOT_INITIALIZED +} ERR_CODE;		/* 0 when success. otherwise error code */ + +typedef long F_HANDLE;	/* MSB is 1, when error. otherwise cluster +						 * number +						 *	(bits 30 - 24: device number (0 - 128)) +						 *	(bits 23 - 17: file opened id) => +						 *		used multi-access mode +						 */ +						  +/* fcreate mode */ +#define NOT_IF_EXIST		0 +#define ALWAYS_CREATE		1 + +/* open mode (can be ORed) */ +#define OPEN_R				1 +#define OPEN_W				2 + +/* ddel mode */ +#define NOT_IF_NOT_EMPTY	0 +#define ALWAYS_DELETE		1 + +/* seek mode */ +#define FROM_CURRENT		0 +#define FROM_BEGIN			1 +#define FROM_END			2 + +/* format mode */ +#define FORMAT_NORMAL		0 +#define FORMAT_RESCUE		1 + + +typedef struct { +     uword year; +     ubyte month; +     ubyte day; +     ubyte hour; +     ubyte min; +     ubyte sec; +     ubyte msec; +}sTIME; + +/********** + * attr + *	7-6 Reserved. Must be 0's. + *	5: 1 = ARCHIVE file was modified + *	4: 1 = DIRECTORY, 0 = file + *	3: 1 = VOLUME label + *	2: 1 = SYSTEM file or directory + *	1: 1 = HIDDEN file or directory + *	0: 1 = READONLY file + **********/ +typedef struct { +	udword attr; +	udword cluster; +	udword size; +	sTIME time; +} GPFILEATTR; + +typedef struct {            +	char name[16]; +} GPDIRENTRY; + + +ERR_CODE GpFatInit (void); +ERR_CODE GpRelativePathSet (const char * p_path); +void GpRelativePathGet (char *p_path); + +ERR_CODE GpFileCreate (const char * p_file_name, ulong fcreate_mode, F_HANDLE *p_handle); +ERR_CODE GpFileOpen (const char * p_file_name, ulong fopen_mode, F_HANDLE *p_handle); +ERR_CODE GpFileRead (F_HANDLE h_file, void * p_buf, ulong buf_size, ulong * p_read_count); +ERR_CODE GpFileWrite (F_HANDLE h_file, const void * p_buf, ulong count); +ERR_CODE GpFileSeek (F_HANDLE h_file, ulong seek_mode, ulong offset, long * p_old_offset); +ERR_CODE GpFileClose (F_HANDLE h_file); +ERR_CODE GpFileRemove (const char * p_file_name); +ERR_CODE GpFileGetSize (const char * p_file_name, ulong * p_size); +ERR_CODE GpFileExtend (F_HANDLE h_file, ulong size); +ERR_CODE GpFileMove (const char * old_path, const char * new_path); +ERR_CODE GpFileRename (const char * old_path, const char * new_path); + +ERR_CODE GpDirCreate (const char * p_dir_name, ulong dcreate_mode); +ERR_CODE GpDirRemove (const char * p_dir_name, ulong ddel_mode); +ERR_CODE GpDirEnumNum (const char * p_dir_name, ulong * p_num); +ERR_CODE GpDirEnumList (const char * p_dir_name, ulong entry_start, ulong entry_count, GPDIRENTRY * p_list, ulong * p_read_count); + +ERR_CODE GpFileAttr (const char * p_name, GPFILEATTR * p_attr); + +ERR_CODE GpVolumeInfo (const char * p_vol_name, ulong * total_size, ulong * used_size, ulong * free_size); +ERR_CODE GpFormat (const char * p_vol_name, ulong format_id, ulong * p_bad_block); + +ERR_CODE GpNoFATUpdate (const char * p_vol_name); +ERR_CODE GpFATUpdate (const char * p_vol_name); + +ERR_CODE GpFatInitialized (void); +ERR_CODE GpSMCDetected (void); + +#endif diff --git a/backends/gp32/h/gpstdlib.h b/backends/gp32/h/gpstdlib.h new file mode 100644 index 0000000000..f7a27e7275 --- /dev/null +++ b/backends/gp32/h/gpstdlib.h @@ -0,0 +1,55 @@ +#ifndef __GPSTDLIB_H__ +#define __GPSTDLIB_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************/ +/*SYS INITIALIZE FUNCTION*/ +void _gp_sdk_init(void); +void _gp_key_polling_time_set(int loop_cnt); + + +/************************************************************************/ +int GpAppPathSet(const char * p_path, int n_len); +char * GpAppPathGet(int * n_len /* optional */); +int GpUserInfoGet(char * p_id, char * p_pwd); +int GpArgSet(int len, char * p_arg); +int GpAppExecute(char * p_code_ptr, const char * s_path); +void GpAppExit(void); +unsigned int GpTickCountGet(void); +void GpNetTpsSet(int tps); +int GpUSBLineCheck(void); + +/*Keyboard*/ +void GpKeyInit(void); +int GpKeyGet(void);							/*return key data*/ +int GpKeyGetEx(int * key_status);			/*return GpKeyChanged()*/ +int GpKeyChanged(void); + +/*CPU Speed*/ +int GpClockSpeedChange(int master_speed, int div_factor, int clk_mode); +unsigned int GpMClkGet(void); +unsigned int GpHClkGet(void); +unsigned int GpPClkGet(void); +/***********************************************************************/ + +/***********************************************************************/ +	#include "gpmem.h" + +extern GPMEMFUNC gp_mem_func; +extern GPSTRFUNC gp_str_func; +/***********************************************************************/ + +/***********************************************************************/ +void GpSrand(int seed); +unsigned int GpRand(void); +unsigned int GpRandN(unsigned n); +/***********************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif /*__k41lib_h__*/ diff --git a/backends/gp32/h/initval_port.h b/backends/gp32/h/initval_port.h new file mode 100644 index 0000000000..e069f85a58 --- /dev/null +++ b/backends/gp32/h/initval_port.h @@ -0,0 +1,37 @@ +#ifndef __INITVAL_PORT_H__ +#define __INITVAL_PORT_H__ + +/*******************************************************************/ +/*at loading time, thread stack define -- implemented in gpstart.c*/ +#define GPMAIN_STACK_SIZE		(100<<10)		/*100KB	-- access code = 0*/ +#define NET_STACK_SIZE			(64<<10)		/*64KB	-- access code = 1*/ +#define USER_STACK_SIZE			(4 << 10)		/*4KB   -- access code = 2*/ +/*******************************************************************/ + +/************************************************************* +* Heap Management Library Attach                             * +*************************************************************/ +#define USE_GP_MEM		1									/* If you don't use gpmem.alf, change USE_GP_MEM to 0 */ + +/************************************************************* +* Button Checking Loop count	                             * +*************************************************************/ +#define KEYPOLLING_NUM	20									/* You can change polling number, but the valus must be as small as possible. */ + +/************************************************************* +* Processor Clock speed		                                 * +*************************************************************/ +#define DEFAULT_MCLK	67800000 +#define CHANGE_MCLK		0									/* If the CHANGE_MCLK is zero, the clock speed of process is 40MHz */ +#if CHANGE_MCLK												/* If the CHANGE_MCLK is non-zero, select CLOCKSPEED */ +	#define YOUR_SELECT_CLK		0 +	#if (YOUR_SELECT_CLK == 0) +		#define CLK_SPEED       59250000 +		#define DIV_FACTOR      0x47022 +		#define CLK_MODE        1 +	#elif (YOUR_SELECT_CLK == 1 ) +	#else +	#endif +#endif /*CHANGE_MCLK*/ + +#endif /*__initval_port_h__*/  | 
