public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* c/7453: ARM -fverbose-asm segfault
@ 2002-07-30 23:46 gccbug
0 siblings, 0 replies; only message in thread
From: gccbug @ 2002-07-30 23:46 UTC (permalink / raw)
To: gcc-gnats
>Number: 7453
>Category: c
>Synopsis: -fverbose-asm causes gcc -S to crash
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Tue Jul 30 23:46:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Tim Newsome
>Release: 3.1
>Organization:
>Environment:
System: Linux froody 2.4.7 #2 Thu Feb 28 21:08:52 PST 2002 i686 unknown
Architecture: i686
Debian installation with a manually compiled gcc. Running gcc on an x86 host
(AMD Duron), targeting ARM.
drz@froody:cvs/gba/game% ldd /home/drz/gba/usr/bin/arm-thumb-elf-gcc
libc.so.6 => /lib/libc.so.6 (0x40023000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
drz@froody:cvs/gba/game% /home/drz/gba/usr/bin/arm-thumb-elf-gcc -v
Reading specs from /home/drz/gba/usr/lib/gcc-lib/arm-thumb-elf/3.1/specs
Configured with: ../gcc-3.1/configure --target=arm-thumb-elf --prefix=/home/drz/gba/usr -v
Thread model: single
gcc version 3.1
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: arm-thumb-elf
configured with: ../gcc-3.1/configure --target=arm-thumb-elf --prefix=/home/drz/gba/usr -v
>Description:
When using the -fverbose-asm option, gcc segfaults. When I don't use this
option everything works fine.
>How-To-Repeat:
Save the following file as foo.c, and run the following command line:
/home/drz/gba/usr/bin/arm-thumb-elf-gcc -Wall -pipe -Wno-unused -fno-builtin -O2 -fomit-frame-pointer -S -o foo.s foo.c -fverbose-asm
The compiler output:
In file included from main.c:3:
math.h: In function `sin':
math.h:21: internal error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
---[ cut here ]---
# 1 "main.c"
# 1 "gba.h" 1
# 1 "types.h" 1
typedef unsigned char uint8;
typedef unsigned short uint16;
typedef unsigned long uint32;
typedef signed char int8;
typedef signed short int16;
typedef signed long int32;
# 4 "gba.h" 2
static void gba_vsync()
{
while ((*(volatile uint16 *) 0x4000006) != 160)
;
}
void gba_init_sprites(void);
# 1 "main.c" 2
# 1 "fixedpoint.h" 1
static inline int fp_mul(int a, int b)
{
return (a * b) >> 8;
}
static inline int fp(int a)
{
return a << 8;
}
static inline int fp_val(int a)
{
return a >> 8;
}
# 2 "main.c" 2
# 1 "math.h" 1
# 1 "sintable.h" 1
extern int16 sintable[];
# 1 "math.h" 2
static uint32 sin(int angle)
{
angle &= 0xff;
if (angle < 128) {
if (angle < 64) {
return sintable[angle];
} else {
return sintable[127 - angle];
}
} else {
if (angle < 192) {
return -sintable[angle - 128];
} else {
return -sintable[255 - angle];
}
}
}
static uint32 cos(int angle)
{
angle &= 0xff;
return sin(angle + 256 / 4);
}
# 3 "main.c" 2
# 1 "libc.h" 1
# 1 "/usr/lib/gcc-lib/i386-linux/2.95.4/include/stdarg.h" 1 3
typedef void *__gnuc_va_list;
void va_end (__gnuc_va_list);
# 175 "/usr/lib/gcc-lib/i386-linux/2.95.4/include/stdarg.h" 3
typedef __gnuc_va_list va_list;
# 4 "libc.h" 2
void memcpy(void *dest, const void *src, int bytes);
void memset(void *dest, int c, int bytes);
void srand(uint32 seed);
uint8 rand8(void);
uint16 rand16(void);
uint32 rand32(void);
uint32 sprintf(char *str, const char *format, ...);
uint32 vsprintf(char *str, const char *format, va_list ap);
uint32 strlen(const char *s);
# 5 "main.c" 2
# 1 "util.h" 1
# 7 "main.c" 2
# 1 "ship.h" 1
uint16 ship_palette[] = {
0x0000,
0x7c00,
0x7c00,
0x7800,
0x5e40,
0x7420,
0x35ce,
0x7420,
0x31ad,
0x3d8f,
0x7020,
0x45f1,
0x396b,
0x354e,
0x7c60,
0x2dec,
};
uint8 ship_data[] = {
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x30, 0x00, 0x00,
0x00, 0x50, 0x00, 0x00,
0x00, 0x33, 0x00, 0x00,
0x00, 0x33, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x03, 0x00,
0x00, 0x00, 0x03, 0x00,
0x00, 0x00, 0x3a, 0x00,
0x00, 0x00, 0x12, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0xe0,
0x00, 0x00, 0x00, 0x80,
0x20, 0x33, 0x00, 0x00,
0x30, 0x03, 0x00, 0x00,
0x33, 0x03, 0x00, 0x00,
0x31, 0x02, 0x00, 0x00,
0x33, 0x03, 0x00, 0x30,
0x33, 0x00, 0x00, 0x43,
0x33, 0x03, 0x00, 0x43,
0x33, 0xa3, 0x33, 0x43,
0x00, 0x00, 0x33, 0x03,
0x00, 0x00, 0x30, 0x03,
0x00, 0x00, 0x30, 0xe1,
0x00, 0x00, 0x20, 0x13,
0x03, 0x00, 0x30, 0x31,
0x34, 0x00, 0x00, 0x52,
0x34, 0x00, 0x30, 0x33,
0x34, 0xa3, 0x33, 0x3a,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x90,
0x00, 0x00, 0x00, 0xc0,
0x00, 0x00, 0x00, 0x30,
0x00, 0x00, 0x00, 0x30,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x32, 0x53, 0x23, 0x3e,
0x33, 0xe3, 0x33, 0x73,
0x33, 0x5e, 0x33, 0x32,
0xaa, 0x00, 0x60, 0xdb,
0x33, 0x0a, 0xb0, 0xfb,
0x21, 0x0a, 0x00, 0x00,
0x33, 0x03, 0x00, 0x00,
0x10, 0x02, 0x00, 0x00,
0x33, 0xae, 0x13, 0xa3,
0x32, 0x32, 0x33, 0x23,
0x32, 0x25, 0x32, 0x3e,
0x69, 0x06, 0x00, 0xa3,
0xff, 0x08, 0x30, 0x13,
0x00, 0x00, 0x30, 0x33,
0x00, 0x00, 0x30, 0xaa,
0x00, 0x00, 0x30, 0x03,
0x09, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00,
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, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x50, 0x33, 0x00, 0x00,
0x00, 0x35, 0x00, 0x00,
0x00, 0x23, 0x00, 0x00,
0x00, 0x20, 0x00, 0x00,
0x00, 0xa0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x31, 0x0e,
0x00, 0x00, 0xa3, 0x00,
0x00, 0x00, 0x35, 0x00,
0x00, 0x00, 0x03, 0x00,
0x00, 0x00, 0x03, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
};
# 10 "main.c" 2
# 1 "bullet.h" 1
uint16 bullet_palette[] = {
0x0000,
0x001f,
0x085f,
0x109f,
0x14bf,
0x18df,
0x295f,
0x2d7f,
0x3dff,
0x463f,
0x5eff,
};
uint8 bullet_data[] = {
0x00, 0x11, 0x11, 0x00,
0x10, 0x32, 0x34, 0x02,
0x21, 0x65, 0x67, 0x25,
0x31, 0x86, 0x89, 0x36,
0x41, 0x97, 0x9a, 0x47,
0x31, 0x86, 0x89, 0x36,
0x20, 0x65, 0x67, 0x05,
0x00, 0x32, 0x34, 0x00,
};
# 11 "main.c" 2
# 1 "font.h" 1
uint16 font_palette[] = {
0x0000,
0x7fff,
};
uint8 font_data[] = {
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x01, 0x00,
0x00, 0x01, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x00,
0x00, 0x11, 0x11, 0x01,
0x10, 0x00, 0x01, 0x00,
0x00, 0x11, 0x10, 0x01,
0x00, 0x00, 0x00, 0x11,
0x00, 0x11, 0x11, 0x01,
0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x11, 0x00,
0x00, 0x00, 0x01, 0x00,
0x00, 0x10, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x11, 0x00,
0x00, 0x11, 0x00, 0x00,
0x10, 0x01, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00,
0x10, 0x01, 0x00, 0x00,
0x00, 0x11, 0x00, 0x00,
0x00, 0x10, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x11, 0x00,
0x00, 0x00, 0x10, 0x01,
0x00, 0x00, 0x00, 0x11,
0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x11,
0x00, 0x00, 0x10, 0x01,
0x00, 0x10, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x01, 0x00,
0x00, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 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, 0x10, 0x11, 0x00,
0x00, 0x00, 0x01, 0x00,
0x00, 0x10, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x11,
0x00, 0x00, 0x10, 0x01,
0x00, 0x10, 0x11, 0x00,
0x00, 0x11, 0x00, 0x00,
0x10, 0x01, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x10, 0x01, 0x00, 0x10,
0x10, 0x10, 0x00, 0x10,
0x10, 0x00, 0x01, 0x10,
0x10, 0x00, 0x10, 0x11,
0x10, 0x01, 0x10, 0x01,
0x00, 0x11, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x11, 0x01,
0x00, 0x01, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x10, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10,
0x00, 0x10, 0x11, 0x01,
0x00, 0x01, 0x00, 0x00,
0x10, 0x00, 0x00, 0x10,
0x10, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x10, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x11, 0x11,
0x00, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x00, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x10, 0x00,
0x00, 0x11, 0x11, 0x10,
0x00, 0x00, 0x10, 0x00,
0x00, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00,
0x10, 0x11, 0x11, 0x01,
0x10, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x11,
0x00, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x00,
0x10, 0x11, 0x11, 0x01,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x00, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x10, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x01,
0x00, 0x00, 0x11, 0x11,
0x00, 0x00, 0x10, 0x00,
0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x00, 0x11, 0x11, 0x11,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x00, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x00, 0x11, 0x11, 0x11,
0x00, 0x00, 0x00, 0x10,
0x00, 0x01, 0x00, 0x11,
0x00, 0x10, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x11, 0x00,
0x00, 0x00, 0x01, 0x00,
0x00, 0x10, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x10, 0x00, 0x00, 0x10,
0x00, 0x00, 0x10, 0x11,
0x00, 0x10, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x01, 0x01,
0x00, 0x01, 0x01, 0x01,
0x00, 0x01, 0x01, 0x01,
0x00, 0x01, 0x01, 0x01,
0x00, 0x01, 0x01, 0x01,
0x00, 0x01, 0x01, 0x01,
0x10, 0x00, 0x01, 0x10,
0x00, 0x00, 0x00, 0x00,
0x00, 0x10, 0x11, 0x11,
0x00, 0x11, 0x00, 0x00,
0x00, 0x01, 0x00, 0x10,
0x00, 0x01, 0x00, 0x10,
0x00, 0x01, 0x11, 0x11,
0x00, 0x01, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x00,
0x10, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x10,
0x00, 0x01, 0x00, 0x10,
0x00, 0x01, 0x11, 0x01,
0x00, 0x01, 0x00, 0x10,
0x00, 0x01, 0x00, 0x10,
0x10, 0x10, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x10, 0x01, 0x00, 0x10,
0x10, 0x00, 0x00, 0x01,
0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x10,
0x00, 0x10, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x00,
0x10, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x10,
0x00, 0x01, 0x00, 0x10,
0x00, 0x01, 0x00, 0x10,
0x00, 0x01, 0x00, 0x11,
0x10, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x10, 0x01, 0x00, 0x10,
0x10, 0x00, 0x00, 0x00,
0x10, 0x11, 0x01, 0x00,
0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x10,
0x00, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x10, 0x11, 0x11, 0x01,
0x10, 0x01, 0x00, 0x11,
0x10, 0x00, 0x00, 0x00,
0x10, 0x11, 0x01, 0x00,
0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x10, 0x11, 0x11, 0x01,
0x10, 0x01, 0x00, 0x11,
0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x10, 0x01,
0x10, 0x00, 0x01, 0x10,
0x10, 0x00, 0x00, 0x10,
0x10, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x10, 0x11, 0x11, 0x11,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x11,
0x10, 0x00, 0x01, 0x00,
0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x01, 0x10,
0x10, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x11,
0x10, 0x01, 0x00, 0x11,
0x00, 0x11, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x10,
0x00, 0x01, 0x00, 0x11,
0x00, 0x10, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x10,
0x00, 0x01, 0x00, 0x01,
0x00, 0x01, 0x10, 0x00,
0x00, 0x11, 0x11, 0x00,
0x00, 0x01, 0x00, 0x01,
0x10, 0x01, 0x00, 0x10,
0x10, 0x01, 0x00, 0x10,
0x00, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00,
0x00, 0x01, 0x00, 0x01,
0x00, 0x11, 0x00, 0x10,
0x10, 0x11, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x10, 0x00,
0x10, 0x11, 0x10, 0x01,
0x10, 0x11, 0x11, 0x10,
0x10, 0x00, 0x01, 0x10,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x00, 0x01, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x01,
0x00, 0x01, 0x00, 0x10,
0x00, 0x11, 0x00, 0x10,
0x00, 0x11, 0x01, 0x10,
0x00, 0x01, 0x11, 0x11,
0x00, 0x01, 0x00, 0x11,
0x10, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x10, 0x01, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x11,
0x10, 0x01, 0x10, 0x01,
0x00, 0x11, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00,
0x10, 0x11, 0x11, 0x01,
0x00, 0x01, 0x00, 0x10,
0x00, 0x01, 0x00, 0x11,
0x00, 0x11, 0x11, 0x01,
0x00, 0x01, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x10, 0x01, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x10, 0x10,
0x10, 0x01, 0x00, 0x01,
0x00, 0x11, 0x11, 0x10,
0x00, 0x00, 0x00, 0x00,
0x10, 0x11, 0x11, 0x01,
0x00, 0x01, 0x00, 0x10,
0x00, 0x01, 0x00, 0x11,
0x00, 0x11, 0x11, 0x01,
0x00, 0x01, 0x11, 0x00,
0x00, 0x01, 0x10, 0x01,
0x10, 0x00, 0x00, 0x11,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x10, 0x00, 0x00, 0x10,
0x10, 0x01, 0x00, 0x00,
0x00, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x11,
0x00, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x10, 0x11, 0x11, 0x11,
0x10, 0x00, 0x01, 0x10,
0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x01, 0x00,
0x00, 0x10, 0x11, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x01,
0x10, 0x01, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x10, 0x01, 0x00, 0x11,
0x00, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x01,
0x10, 0x00, 0x10, 0x01,
0x10, 0x00, 0x11, 0x00,
0x00, 0x11, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x01,
0x10, 0x00, 0x00, 0x10,
0x10, 0x00, 0x00, 0x10,
0x10, 0x10, 0x01, 0x10,
0x10, 0x10, 0x01, 0x10,
0x10, 0x11, 0x10, 0x11,
0x00, 0x11, 0x10, 0x01,
0x00, 0x00, 0x00, 0x00,
0x10, 0x01, 0x00, 0x01,
0x00, 0x11, 0x10, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x10, 0x01, 0x00,
0x00, 0x01, 0x10, 0x00,
0x10, 0x01, 0x00, 0x01,
0x10, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x11,
0x00, 0x01, 0x00, 0x10,
0x00, 0x10, 0x00, 0x11,
0x00, 0x00, 0x10, 0x01,
0x00, 0x00, 0x11, 0x01,
0x00, 0x10, 0x11, 0x00,
0x00, 0x11, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x11, 0x11, 0x11,
0x10, 0x00, 0x00, 0x01,
0x00, 0x00, 0x10, 0x00,
0x00, 0x00, 0x01, 0x00,
0x00, 0x10, 0x00, 0x00,
0x00, 0x11, 0x00, 0x10,
0x10, 0x11, 0x11, 0x01,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
};
# 12 "main.c" 2
# 1 "font_8x8.h" 1
static unsigned char fontdata_8x8[] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x7e,
0x81,
0xa5,
0x81,
0xbd,
0x99,
0x81,
0x7e,
0x7e,
0xff,
0xdb,
0xff,
0xc3,
0xe7,
0xff,
0x7e,
0x6c,
0xfe,
0xfe,
0xfe,
0x7c,
0x38,
0x10,
0x00,
0x10,
0x38,
0x7c,
0xfe,
0x7c,
0x38,
0x10,
0x00,
0x38,
0x7c,
0x38,
0xfe,
0xfe,
0xd6,
0x10,
0x38,
0x10,
0x38,
0x7c,
0xfe,
0xfe,
0x7c,
0x10,
0x38,
0x00,
0x00,
0x18,
0x3c,
0x3c,
0x18,
0x00,
0x00,
0xff,
0xff,
0xe7,
0xc3,
0xc3,
0xe7,
0xff,
0xff,
0x00,
0x3c,
0x66,
0x42,
0x42,
0x66,
0x3c,
0x00,
0xff,
0xc3,
0x99,
0xbd,
0xbd,
0x99,
0xc3,
0xff,
0x0f,
0x07,
0x0f,
0x7d,
0xcc,
0xcc,
0xcc,
0x78,
0x3c,
0x66,
0x66,
0x66,
0x3c,
0x18,
0x7e,
0x18,
0x3f,
0x33,
0x3f,
0x30,
0x30,
0x70,
0xf0,
0xe0,
0x7f,
0x63,
0x7f,
0x63,
0x63,
0x67,
0xe6,
0xc0,
0x18,
0xdb,
0x3c,
0xe7,
0xe7,
0x3c,
0xdb,
0x18,
0x80,
0xe0,
0xf8,
0xfe,
0xf8,
0xe0,
0x80,
0x00,
0x02,
0x0e,
0x3e,
0xfe,
0x3e,
0x0e,
0x02,
0x00,
0x18,
0x3c,
0x7e,
0x18,
0x18,
0x7e,
0x3c,
0x18,
0x66,
0x66,
0x66,
0x66,
0x66,
0x00,
0x66,
0x00,
0x7f,
0xdb,
0xdb,
0x7b,
0x1b,
0x1b,
0x1b,
0x00,
0x3e,
0x61,
0x3c,
0x66,
0x66,
0x3c,
0x86,
0x7c,
0x00,
0x00,
0x00,
0x00,
0x7e,
0x7e,
0x7e,
0x00,
0x18,
0x3c,
0x7e,
0x18,
0x7e,
0x3c,
0x18,
0xff,
0x18,
0x3c,
0x7e,
0x18,
0x18,
0x18,
0x18,
0x00,
0x18,
0x18,
0x18,
0x18,
0x7e,
0x3c,
0x18,
0x00,
0x00,
0x18,
0x0c,
0xfe,
0x0c,
0x18,
0x00,
0x00,
0x00,
0x30,
0x60,
0xfe,
0x60,
0x30,
0x00,
0x00,
0x00,
0x00,
0xc0,
0xc0,
0xc0,
0xfe,
0x00,
0x00,
0x00,
0x24,
0x66,
0xff,
0x66,
0x24,
0x00,
0x00,
0x00,
0x18,
0x3c,
0x7e,
0xff,
0xff,
0x00,
0x00,
0x00,
0xff,
0xff,
0x7e,
0x3c,
0x18,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x18,
0x3c,
0x3c,
0x18,
0x18,
0x00,
0x18,
0x00,
0x66,
0x66,
0x24,
0x00,
0x00,
0x00,
0x00,
0x00,
0x6c,
0x6c,
0xfe,
0x6c,
0xfe,
0x6c,
0x6c,
0x00,
0x18,
0x3e,
0x60,
0x3c,
0x06,
0x7c,
0x18,
0x00,
0x00,
0xc6,
0xcc,
0x18,
0x30,
0x66,
0xc6,
0x00,
0x38,
0x6c,
0x38,
0x76,
0xdc,
0xcc,
0x76,
0x00,
0x18,
0x18,
0x30,
0x00,
0x00,
0x00,
0x00,
0x00,
0x0c,
0x18,
0x30,
0x30,
0x30,
0x18,
0x0c,
0x00,
0x30,
0x18,
0x0c,
0x0c,
0x0c,
0x18,
0x30,
0x00,
0x00,
0x66,
0x3c,
0xff,
0x3c,
0x66,
0x00,
0x00,
0x00,
0x18,
0x18,
0x7e,
0x18,
0x18,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x18,
0x18,
0x30,
0x00,
0x00,
0x00,
0x7e,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x18,
0x18,
0x00,
0x06,
0x0c,
0x18,
0x30,
0x60,
0xc0,
0x80,
0x00,
0x38,
0x6c,
0xc6,
0xd6,
0xc6,
0x6c,
0x38,
0x00,
0x18,
0x38,
0x18,
0x18,
0x18,
0x18,
0x7e,
0x00,
0x7c,
0xc6,
0x06,
0x1c,
0x30,
0x66,
0xfe,
0x00,
0x7c,
0xc6,
0x06,
0x3c,
0x06,
0xc6,
0x7c,
0x00,
0x1c,
0x3c,
0x6c,
0xcc,
0xfe,
0x0c,
0x1e,
0x00,
0xfe,
0xc0,
0xc0,
0xfc,
0x06,
0xc6,
0x7c,
0x00,
0x38,
0x60,
0xc0,
0xfc,
0xc6,
0xc6,
0x7c,
0x00,
0xfe,
0xc6,
0x0c,
0x18,
0x30,
0x30,
0x30,
0x00,
0x7c,
0xc6,
0xc6,
0x7c,
0xc6,
0xc6,
0x7c,
0x00,
0x7c,
0xc6,
0xc6,
0x7e,
0x06,
0x0c,
0x78,
0x00,
0x00,
0x18,
0x18,
0x00,
0x00,
0x18,
0x18,
0x00,
0x00,
0x18,
0x18,
0x00,
0x00,
0x18,
0x18,
0x30,
0x06,
0x0c,
0x18,
0x30,
0x18,
0x0c,
0x06,
0x00,
0x00,
0x00,
0x7e,
0x00,
0x00,
0x7e,
0x00,
0x00,
0x60,
0x30,
0x18,
0x0c,
0x18,
0x30,
0x60,
0x00,
0x7c,
0xc6,
0x0c,
0x18,
0x18,
0x00,
0x18,
0x00,
0x7c,
0xc6,
0xde,
0xde,
0xde,
0xc0,
0x78,
0x00,
0x38,
0x6c,
0xc6,
0xfe,
0xc6,
0xc6,
0xc6,
0x00,
0xfc,
0x66,
0x66,
0x7c,
0x66,
0x66,
0xfc,
0x00,
0x3c,
0x66,
0xc0,
0xc0,
0xc0,
0x66,
0x3c,
0x00,
0xf8,
0x6c,
0x66,
0x66,
0x66,
0x6c,
0xf8,
0x00,
0xfe,
0x62,
0x68,
0x78,
0x68,
0x62,
0xfe,
0x00,
0xfe,
0x62,
0x68,
0x78,
0x68,
0x60,
0xf0,
0x00,
0x3c,
0x66,
0xc0,
0xc0,
0xce,
0x66,
0x3a,
0x00,
0xc6,
0xc6,
0xc6,
0xfe,
0xc6,
0xc6,
0xc6,
0x00,
0x3c,
0x18,
0x18,
0x18,
0x18,
0x18,
0x3c,
0x00,
0x1e,
0x0c,
0x0c,
0x0c,
0xcc,
0xcc,
0x78,
0x00,
0xe6,
0x66,
0x6c,
0x78,
0x6c,
0x66,
0xe6,
0x00,
0xf0,
0x60,
0x60,
0x60,
0x62,
0x66,
0xfe,
0x00,
0xc6,
0xee,
0xfe,
0xfe,
0xd6,
0xc6,
0xc6,
0x00,
0xc6,
0xe6,
0xf6,
0xde,
0xce,
0xc6,
0xc6,
0x00,
0x7c,
0xc6,
0xc6,
0xc6,
0xc6,
0xc6,
0x7c,
0x00,
0xfc,
0x66,
0x66,
0x7c,
0x60,
0x60,
0xf0,
0x00,
0x7c,
0xc6,
0xc6,
0xc6,
0xc6,
0xce,
0x7c,
0x0e,
0xfc,
0x66,
0x66,
0x7c,
0x6c,
0x66,
0xe6,
0x00,
0x3c,
0x66,
0x30,
0x18,
0x0c,
0x66,
0x3c,
0x00,
0x7e,
0x7e,
0x5a,
0x18,
0x18,
0x18,
0x3c,
0x00,
0xc6,
0xc6,
0xc6,
0xc6,
0xc6,
0xc6,
0x7c,
0x00,
0xc6,
0xc6,
0xc6,
0xc6,
0xc6,
0x6c,
0x38,
0x00,
0xc6,
0xc6,
0xc6,
0xd6,
0xd6,
0xfe,
0x6c,
0x00,
0xc6,
0xc6,
0x6c,
0x38,
0x6c,
0xc6,
0xc6,
0x00,
0x66,
0x66,
0x66,
0x3c,
0x18,
0x18,
0x3c,
0x00,
0xfe,
0xc6,
0x8c,
0x18,
0x32,
0x66,
0xfe,
0x00,
0x3c,
0x30,
0x30,
0x30,
0x30,
0x30,
0x3c,
0x00,
0xc0,
0x60,
0x30,
0x18,
0x0c,
0x06,
0x02,
0x00,
0x3c,
0x0c,
0x0c,
0x0c,
0x0c,
0x0c,
0x3c,
0x00,
0x10,
0x38,
0x6c,
0xc6,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xff,
0x30,
0x18,
0x0c,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x78,
0x0c,
0x7c,
0xcc,
0x76,
0x00,
0xe0,
0x60,
0x7c,
0x66,
0x66,
0x66,
0xdc,
0x00,
0x00,
0x00,
0x7c,
0xc6,
0xc0,
0xc6,
0x7c,
0x00,
0x1c,
0x0c,
0x7c,
0xcc,
0xcc,
0xcc,
0x76,
0x00,
0x00,
0x00,
0x7c,
0xc6,
0xfe,
0xc0,
0x7c,
0x00,
0x3c,
0x66,
0x60,
0xf8,
0x60,
0x60,
0xf0,
0x00,
0x00,
0x00,
0x76,
0xcc,
0xcc,
0x7c,
0x0c,
0xf8,
0xe0,
0x60,
0x6c,
0x76,
0x66,
0x66,
0xe6,
0x00,
0x18,
0x00,
0x38,
0x18,
0x18,
0x18,
0x3c,
0x00,
0x06,
0x00,
0x06,
0x06,
0x06,
0x66,
0x66,
0x3c,
0xe0,
0x60,
0x66,
0x6c,
0x78,
0x6c,
0xe6,
0x00,
0x38,
0x18,
0x18,
0x18,
0x18,
0x18,
0x3c,
0x00,
0x00,
0x00,
0xec,
0xfe,
0xd6,
0xd6,
0xd6,
0x00,
0x00,
0x00,
0xdc,
0x66,
0x66,
0x66,
0x66,
0x00,
0x00,
0x00,
0x7c,
0xc6,
0xc6,
0xc6,
0x7c,
0x00,
0x00,
0x00,
0xdc,
0x66,
0x66,
0x7c,
0x60,
0xf0,
0x00,
0x00,
0x76,
0xcc,
0xcc,
0x7c,
0x0c,
0x1e,
0x00,
0x00,
0xdc,
0x76,
0x60,
0x60,
0xf0,
0x00,
0x00,
0x00,
0x7e,
0xc0,
0x7c,
0x06,
0xfc,
0x00,
0x30,
0x30,
0xfc,
0x30,
0x30,
0x36,
0x1c,
0x00,
0x00,
0x00,
0xcc,
0xcc,
0xcc,
0xcc,
0x76,
0x00,
0x00,
0x00,
0xc6,
0xc6,
0xc6,
0x6c,
0x38,
0x00,
0x00,
0x00,
0xc6,
0xd6,
0xd6,
0xfe,
0x6c,
0x00,
0x00,
0x00,
0xc6,
0x6c,
0x38,
0x6c,
0xc6,
0x00,
0x00,
0x00,
0xc6,
0xc6,
0xc6,
0x7e,
0x06,
0xfc,
0x00,
0x00,
0x7e,
0x4c,
0x18,
0x32,
0x7e,
0x00,
0x0e,
0x18,
0x18,
0x70,
0x18,
0x18,
0x0e,
0x00,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x00,
0x70,
0x18,
0x18,
0x0e,
0x18,
0x18,
0x70,
0x00,
0x76,
0xdc,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x10,
0x38,
0x6c,
0xc6,
0xc6,
0xfe,
0x00,
0x7c,
0xc6,
0xc0,
0xc0,
0xc6,
0x7c,
0x0c,
0x78,
0xcc,
0x00,
0xcc,
0xcc,
0xcc,
0xcc,
0x76,
0x00,
0x0c,
0x18,
0x7c,
0xc6,
0xfe,
0xc0,
0x7c,
0x00,
0x7c,
0x82,
0x78,
0x0c,
0x7c,
0xcc,
0x76,
0x00,
0xc6,
0x00,
0x78,
0x0c,
0x7c,
0xcc,
0x76,
0x00,
0x30,
0x18,
0x78,
0x0c,
0x7c,
0xcc,
0x76,
0x00,
0x30,
0x30,
0x78,
0x0c,
0x7c,
0xcc,
0x76,
0x00,
0x00,
0x00,
0x7e,
0xc0,
0xc0,
0x7e,
0x0c,
0x38,
0x7c,
0x82,
0x7c,
0xc6,
0xfe,
0xc0,
0x7c,
0x00,
0xc6,
0x00,
0x7c,
0xc6,
0xfe,
0xc0,
0x7c,
0x00,
0x30,
0x18,
0x7c,
0xc6,
0xfe,
0xc0,
0x7c,
0x00,
0x66,
0x00,
0x38,
0x18,
0x18,
0x18,
0x3c,
0x00,
0x7c,
0x82,
0x38,
0x18,
0x18,
0x18,
0x3c,
0x00,
0x30,
0x18,
0x00,
0x38,
0x18,
0x18,
0x3c,
0x00,
0xc6,
0x38,
0x6c,
0xc6,
0xfe,
0xc6,
0xc6,
0x00,
0x38,
0x6c,
0x7c,
0xc6,
0xfe,
0xc6,
0xc6,
0x00,
0x18,
0x30,
0xfe,
0xc0,
0xf8,
0xc0,
0xfe,
0x00,
0x00,
0x00,
0x7e,
0x18,
0x7e,
0xd8,
0x7e,
0x00,
0x3e,
0x6c,
0xcc,
0xfe,
0xcc,
0xcc,
0xce,
0x00,
0x7c,
0x82,
0x7c,
0xc6,
0xc6,
0xc6,
0x7c,
0x00,
0xc6,
0x00,
0x7c,
0xc6,
0xc6,
0xc6,
0x7c,
0x00,
0x30,
0x18,
0x7c,
0xc6,
0xc6,
0xc6,
0x7c,
0x00,
0x78,
0x84,
0x00,
0xcc,
0xcc,
0xcc,
0x76,
0x00,
0x60,
0x30,
0xcc,
0xcc,
0xcc,
0xcc,
0x76,
0x00,
0xc6,
0x00,
0xc6,
0xc6,
0xc6,
0x7e,
0x06,
0xfc,
0xc6,
0x38,
0x6c,
0xc6,
0xc6,
0x6c,
0x38,
0x00,
0xc6,
0x00,
0xc6,
0xc6,
0xc6,
0xc6,
0x7c,
0x00,
0x18,
0x18,
0x7e,
0xc0,
0xc0,
0x7e,
0x18,
0x18,
0x38,
0x6c,
0x64,
0xf0,
0x60,
0x66,
0xfc,
0x00,
0x66,
0x66,
0x3c,
0x7e,
0x18,
0x7e,
0x18,
0x18,
0xf8,
0xcc,
0xcc,
0xfa,
0xc6,
0xcf,
0xc6,
0xc7,
0x0e,
0x1b,
0x18,
0x3c,
0x18,
0xd8,
0x70,
0x00,
0x18,
0x30,
0x78,
0x0c,
0x7c,
0xcc,
0x76,
0x00,
0x0c,
0x18,
0x00,
0x38,
0x18,
0x18,
0x3c,
0x00,
0x0c,
0x18,
0x7c,
0xc6,
0xc6,
0xc6,
0x7c,
0x00,
0x18,
0x30,
0xcc,
0xcc,
0xcc,
0xcc,
0x76,
0x00,
0x76,
0xdc,
0x00,
0xdc,
0x66,
0x66,
0x66,
0x00,
0x76,
0xdc,
0x00,
0xe6,
0xf6,
0xde,
0xce,
0x00,
0x3c,
0x6c,
0x6c,
0x3e,
0x00,
0x7e,
0x00,
0x00,
0x38,
0x6c,
0x6c,
0x38,
0x00,
0x7c,
0x00,
0x00,
0x18,
0x00,
0x18,
0x18,
0x30,
0x63,
0x3e,
0x00,
0x00,
0x00,
0x00,
0xfe,
0xc0,
0xc0,
0x00,
0x00,
0x00,
0x00,
0x00,
0xfe,
0x06,
0x06,
0x00,
0x00,
0x63,
0xe6,
0x6c,
0x7e,
0x33,
0x66,
0xcc,
0x0f,
0x63,
0xe6,
0x6c,
0x7a,
0x36,
0x6a,
0xdf,
0x06,
0x18,
0x00,
0x18,
0x18,
0x3c,
0x3c,
0x18,
0x00,
0x00,
0x33,
0x66,
0xcc,
0x66,
0x33,
0x00,
0x00,
0x00,
0xcc,
0x66,
0x33,
0x66,
0xcc,
0x00,
0x00,
0x22,
0x88,
0x22,
0x88,
0x22,
0x88,
0x22,
0x88,
0x55,
0xaa,
0x55,
0xaa,
0x55,
0xaa,
0x55,
0xaa,
0x77,
0xdd,
0x77,
0xdd,
0x77,
0xdd,
0x77,
0xdd,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0xf8,
0x18,
0x18,
0x18,
0x18,
0x18,
0xf8,
0x18,
0xf8,
0x18,
0x18,
0x18,
0x36,
0x36,
0x36,
0x36,
0xf6,
0x36,
0x36,
0x36,
0x00,
0x00,
0x00,
0x00,
0xfe,
0x36,
0x36,
0x36,
0x00,
0x00,
0xf8,
0x18,
0xf8,
0x18,
0x18,
0x18,
0x36,
0x36,
0xf6,
0x06,
0xf6,
0x36,
0x36,
0x36,
0x36,
0x36,
0x36,
0x36,
0x36,
0x36,
0x36,
0x36,
0x00,
0x00,
0xfe,
0x06,
0xf6,
0x36,
0x36,
0x36,
0x36,
0x36,
0xf6,
0x06,
0xfe,
0x00,
0x00,
0x00,
0x36,
0x36,
0x36,
0x36,
0xfe,
0x00,
0x00,
0x00,
0x18,
0x18,
0xf8,
0x18,
0xf8,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xf8,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x1f,
0x00,
0x00,
0x00,
0x18,
0x18,
0x18,
0x18,
0xff,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0xff,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x1f,
0x18,
0x18,
0x18,
0x00,
0x00,
0x00,
0x00,
0xff,
0x00,
0x00,
0x00,
0x18,
0x18,
0x18,
0x18,
0xff,
0x18,
0x18,
0x18,
0x18,
0x18,
0x1f,
0x18,
0x1f,
0x18,
0x18,
0x18,
0x36,
0x36,
0x36,
0x36,
0x37,
0x36,
0x36,
0x36,
0x36,
0x36,
0x37,
0x30,
0x3f,
0x00,
0x00,
0x00,
0x00,
0x00,
0x3f,
0x30,
0x37,
0x36,
0x36,
0x36,
0x36,
0x36,
0xf7,
0x00,
0xff,
0x00,
0x00,
0x00,
0x00,
0x00,
0xff,
0x00,
0xf7,
0x36,
0x36,
0x36,
0x36,
0x36,
0x37,
0x30,
0x37,
0x36,
0x36,
0x36,
0x00,
0x00,
0xff,
0x00,
0xff,
0x00,
0x00,
0x00,
0x36,
0x36,
0xf7,
0x00,
0xf7,
0x36,
0x36,
0x36,
0x18,
0x18,
0xff,
0x00,
0xff,
0x00,
0x00,
0x00,
0x36,
0x36,
0x36,
0x36,
0xff,
0x00,
0x00,
0x00,
0x00,
0x00,
0xff,
0x00,
0xff,
0x18,
0x18,
0x18,
0x00,
0x00,
0x00,
0x00,
0xff,
0x36,
0x36,
0x36,
0x36,
0x36,
0x36,
0x36,
0x3f,
0x00,
0x00,
0x00,
0x18,
0x18,
0x1f,
0x18,
0x1f,
0x00,
0x00,
0x00,
0x00,
0x00,
0x1f,
0x18,
0x1f,
0x18,
0x18,
0x18,
0x00,
0x00,
0x00,
0x00,
0x3f,
0x36,
0x36,
0x36,
0x36,
0x36,
0x36,
0x36,
0xff,
0x36,
0x36,
0x36,
0x18,
0x18,
0xff,
0x18,
0xff,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0xf8,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x1f,
0x18,
0x18,
0x18,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0x00,
0x00,
0x00,
0x00,
0xff,
0xff,
0xff,
0xff,
0xf0,
0xf0,
0xf0,
0xf0,
0xf0,
0xf0,
0xf0,
0xf0,
0x0f,
0x0f,
0x0f,
0x0f,
0x0f,
0x0f,
0x0f,
0x0f,
0xff,
0xff,
0xff,
0xff,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x76,
0xdc,
0xc8,
0xdc,
0x76,
0x00,
0x78,
0xcc,
0xcc,
0xd8,
0xcc,
0xc6,
0xcc,
0x00,
0xfe,
0xc6,
0xc0,
0xc0,
0xc0,
0xc0,
0xc0,
0x00,
0x00,
0x00,
0xfe,
0x6c,
0x6c,
0x6c,
0x6c,
0x00,
0xfe,
0xc6,
0x60,
0x30,
0x60,
0xc6,
0xfe,
0x00,
0x00,
0x00,
0x7e,
0xd8,
0xd8,
0xd8,
0x70,
0x00,
0x00,
0x00,
0x66,
0x66,
0x66,
0x66,
0x7c,
0xc0,
0x00,
0x76,
0xdc,
0x18,
0x18,
0x18,
0x18,
0x00,
0x7e,
0x18,
0x3c,
0x66,
0x66,
0x3c,
0x18,
0x7e,
0x38,
0x6c,
0xc6,
0xfe,
0xc6,
0x6c,
0x38,
0x00,
0x38,
0x6c,
0xc6,
0xc6,
0x6c,
0x6c,
0xee,
0x00,
0x0e,
0x18,
0x0c,
0x3e,
0x66,
0x66,
0x3c,
0x00,
0x00,
0x00,
0x7e,
0xdb,
0xdb,
0x7e,
0x00,
0x00,
0x06,
0x0c,
0x7e,
0xdb,
0xdb,
0x7e,
0x60,
0xc0,
0x1e,
0x30,
0x60,
0x7e,
0x60,
0x30,
0x1e,
0x00,
0x00,
0x7c,
0xc6,
0xc6,
0xc6,
0xc6,
0xc6,
0x00,
0x00,
0xfe,
0x00,
0xfe,
0x00,
0xfe,
0x00,
0x00,
0x18,
0x18,
0x7e,
0x18,
0x18,
0x00,
0x7e,
0x00,
0x30,
0x18,
0x0c,
0x18,
0x30,
0x00,
0x7e,
0x00,
0x0c,
0x18,
0x30,
0x18,
0x0c,
0x00,
0x7e,
0x00,
0x0e,
0x1b,
0x1b,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0x18,
0xd8,
0xd8,
0x70,
0x00,
0x18,
0x00,
0x7e,
0x00,
0x18,
0x00,
0x00,
0x00,
0x76,
0xdc,
0x00,
0x76,
0xdc,
0x00,
0x00,
0x38,
0x6c,
0x6c,
0x38,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x18,
0x18,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x18,
0x00,
0x00,
0x00,
0x00,
0x0f,
0x0c,
0x0c,
0x0c,
0xec,
0x6c,
0x3c,
0x1c,
0x6c,
0x36,
0x36,
0x36,
0x36,
0x00,
0x00,
0x00,
0x78,
0x0c,
0x18,
0x30,
0x7c,
0x00,
0x00,
0x00,
0x00,
0x00,
0x3c,
0x3c,
0x3c,
0x3c,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
};
# 13 "main.c" 2
static inline void setup_screen(void)
{
(*(volatile uint16 *) 0x4000000) = (0 << 0 ) | (1 << 6) | (1 << 8) | (1 << 10) |
(1 << 12) ;
}
static void pal_random(uint16 *palette, uint16 color, int noise)
{
int i;
int red, green, blue;
for (i = 0; i < 16; i++) {
red = color & 0x1f;
green = (color >> 5) & 0x1f;
blue = (color >> 10) & 0x1f;
red += (rand32() % (2*noise)) - noise;
red = (( red ) > ( 0 ) ? ( red ) : ( 0 )) ;
red = (( red ) < ( 0x1f ) ? ( red ) : ( 0x1f )) ;
green += (rand32() % (2*noise)) - noise;
green = (( green ) > ( 0 ) ? ( green ) : ( 0 )) ;
green = (( green ) < ( 0x1f ) ? ( green ) : ( 0x1f )) ;
blue += (rand32() % (2*noise)) - noise;
blue = (( blue ) > ( 0 ) ? ( blue ) : ( 0 )) ;
blue = (( blue ) < ( 0x1f ) ? ( blue ) : ( 0x1f )) ;
palette[i] = (( red ) | (( green ) << 5) | (( blue ) << 10)) ;
}
}
static void pal_gradient(uint16 *palette, uint16 a, uint16 b)
{
int i;
int a_r, a_g, a_b;
int b_r, b_g, b_b;
a_r = a & 0x1f;
a_g = (a >> 5) & 0x1f;
a_b = (a >> 10) & 0x1f;
b_r = b & 0x1f;
b_g = (b >> 5) & 0x1f;
b_b = (b >> 10) & 0x1f;
for (i = 0; i < 16; i++) {
int red, green, blue;
red = (i * b_r - (16-i) * a_r) / 16;
green = (i * b_g - (16-i) * a_g) / 16;
blue = (i * b_b - (16-i) * a_b) / 16;
palette[i] = (( red ) | (( green ) << 5) | (( blue ) << 10)) ;
}
}
static void map_random_tile(int tile, int x, int y)
{
int i;
uint32 r;
srand(x ^ (y << 8));
for (i = 0; i < 8; i++) {
r = rand32();
if ((r & 0xf) == 0)
r |= 0x1;
if ((r & 0xf0) == 0)
r |= 0x10;
if ((r & 0xf00) == 0)
r |= 0x100;
if ((r & 0xf000) == 0)
r |= 0x1000;
if ((r & 0xf0000) == 0)
r |= 0x10000;
if ((r & 0xf00000) == 0)
r |= 0x100000;
if ((r & 0xf000000) == 0)
r |= 0x1000000;
if ((r & 0xf0000000) == 0)
r |= 0x10000000;
((uint32 *) ((volatile uint16 *) (0x6000000 + 0x4000 * ( 0 ))) )[tile * 8 + i] = r;
}
}
void map_blank_tile(int tile)
{
uint32 *data = (uint32 *) (((volatile uint16 *) (0x6000000 + 0x4000 * ( 0 ))) + tile * 16);
*data++ = 0;
*data++ = 0;
*data++ = 0;
*data++ = 0;
*data++ = 0;
*data++ = 0;
*data++ = 0;
*data++ = 0;
}
static uint8 map[(512 / 4 ) * (512 / 4 ) ];
static void map_init(void)
{
int x, y;
uint8 *map_entry = map;
for (y = 0; y < (512 / 4 ) ; y++)
for (x = 0; x < (512 / 4 ) ; x++)
*map_entry++ = rand8();
}
static void map_color_tile(int tile, int color)
{
uint32 line;
uint32 *data = (uint32 *) (((volatile uint16 *) (0x6000000 + 0x4000 * ( 0 ))) + tile * 16);
line = color;
line |= line << 4;
line |= line << 8;
line |= line << 16;
*data++ = line;
*data++ = line;
*data++ = line;
*data++ = line;
*data++ = line;
*data++ = line;
*data++ = line;
*data++ = line;
}
static void map_render_tile(int tile, int tile_x, int tile_y)
{
int x, y;
int c;
uint32 line;
int top_left, top_right, bottom_left, bottom_right;
int left_x, top_y;
int map_x, map_y;
uint32 *data = ((uint32 *) ((volatile uint16 *) (0x6000000 + 0x4000 * ( 0 ))) ) + tile * 8;
tile_x = tile_x & (512 - 1);
tile_y = tile_y & (512 - 1);
map_x = tile_x / 4 ;
map_y = tile_y / 4 ;
tile_x = tile_x % 4 ;
tile_y = tile_y % 4 ;
top_left = map[map_x + (512 / 4 ) * map_y];
top_right = map[(map_x + 1) % (512 / 4 ) + (512 / 4 ) * map_y];
bottom_left = map[map_x + (512 / 4 ) * ((map_y + 1) % (512 / 4 ) )];
bottom_right = map[(map_x + 1) % (512 / 4 ) + (512 / 4 ) *
((map_y + 1) % (512 / 4 ) )];
for (y = tile_y * 8; y < tile_y*8 + 8; y++) {
int left, right, increment;
left = (top_left * (8* 4 -(8*tile_x)) *
(8* 4 -y) +
top_right * (8*tile_x) * (8* 4 -y) +
bottom_left * (8* 4 -(8*tile_x)) * y +
bottom_right * (8*tile_x) * y) / 64 / 4;
right = (top_left * (8* 4 -(8*tile_x+8)) *
(8* 4 -y) +
top_right * (8*tile_x+8) * (8* 4 -y) +
bottom_left * (8* 4 -(8*tile_x+8)) * y +
bottom_right * (8*tile_x+8) * y) / 64 / 4;
left <<= 8;
right <<= 8;
increment = (right - left) / 8;
line = 0;
for (x = 0; x < 8; x++) {
c = (left + (x%8) * increment) >> 8;
line |= (c/16) << (4*(x%8));
}
*data++ = line;
}
}
static void font_init(void)
{
int i;
uint32 *tile;
uint32 line;
uint8 *data;
tile = (uint32 *) ((volatile uint16 *) (0x6000000 + 0x4000 * ( 2 ))) ;
data = fontdata_8x8 + 8 * 32;
for (i = 0; i < 96 * 8; i++) {
uint8 c;
c = *data++;
line = 0;
line = ((c >> 0) & 1) << 28;
line |= ((c >> 1) & 1) << 24;
line |= ((c >> 2) & 1) << 20;
line |= ((c >> 3) & 1) << 16;
line |= ((c >> 4) & 1) << 12;
line |= ((c >> 5) & 1) << 8;
line |= ((c >> 6) & 1) << 4;
line |= ((c >> 7) & 1) << 0;
if (i >= 8)
line += 0x11111111;
*tile++ = line;
}
((volatile uint16 *) 0x5000000) [64] = 0;
((volatile uint16 *) 0x5000000) [65] = 0xffff;
((volatile uint16 *) 0x5000000) [66] = 0;
memset((void *) ((volatile uint16 *) (0x6000000 + 0x800 * ( 30 ))) , 0, 0x800);
(*(volatile uint16 *) 0x04000008) = (2 << 0 ) |
(2 << 2 ) |
(30 << 8 ) |
(0 << 14 ) ;
(*(volatile uint16 *) 0x04000010) = 0;
(*(volatile uint16 *) 0x04000012) = 0;
}
static void font_text(int line, const char *string)
{
int i;
volatile uint16 *map_entry = ((volatile uint16 *) (0x6000000 + 0x800 * ( 30 ))) + line * 32;
while (*string) {
*map_entry++ = (4 << 12) | (*string - 32);
string++;
}
}
static void status_line(const char *format, ...)
{
static char buf[31];
va_list ap;
int i;
( ap = ((__gnuc_va_list) __builtin_next_arg ( format ))) ;
i = vsprintf(buf, format, ap);
((void)0) ;
for (; i < 31; i++)
buf[i] = ' ';
buf[i] = 0;
font_text(160 /8 - 1, buf);
}
typedef struct
{
int vx, vy;
int x, y;
int rotation;
} sprite_t;
static sprite_t sprites[128];
void AgbMain()
{
int i, frames = 0, fps = 0;
int viewx, viewy;
(*(volatile uint16 *) 0x0400010e) = (3<< 0 ) | (1<<7) ;
setup_screen();
map_init();
font_init();
pal_random((uint16 *) ((volatile uint16 *) 0x5000000) , (( ( 79 )>>3 ) | (( ( 118 )>>3 ) << 5) | (( ( 234 )>>3 ) << 10)) , 4);
pal_gradient((uint16 *) ((volatile uint16 *) 0x5000000) , (( ( 0 )>>3 ) | (( ( 0 )>>3 ) << 5) | (( ( 0 )>>3 ) << 10)) ,
(( ( 0 )>>3 ) | (( ( 255 )>>3 ) << 5) | (( ( 0 )>>3 ) << 10)) );
pal_random((uint16 *) ((volatile uint16 *) 0x5000000) + 16, (( ( 229 )>>3 ) | (( ( 195 )>>3 ) << 5) | (( ( 22 )>>3 ) << 10)) , 3);
pal_random((uint16 *) ((volatile uint16 *) 0x5000000) + 16, (( ( 72 )>>3 ) | (( ( 255 )>>3 ) << 5) | (( ( 56 )>>3 ) << 10)) , 4);
memcpy((void *) ((volatile uint16 *) 0x6010000) , ship_data, 32 * 32 );
memcpy((void *) ((volatile uint16 *) 0x5000200) , ship_palette, sizeof(ship_palette));
memcpy((uint16 *) ((volatile uint16 *) 0x6010000) + 16 * 16, bullet_data,
8 * 8 );
memcpy((uint16 *) ((volatile uint16 *) 0x5000200) +16, bullet_palette, sizeof(bullet_palette));
{
int x, y, tile;
tile = 0;
for (y = 0; y < 256/8; y++)
for (x = 0; x < 256/8; x++) {
((volatile uint16 *) (0x6000000 + 0x800 * ( 31 ))) [y * 256/8 + x] =
(y * 256/8 + x) |
(1 << 10) |
(0 << 12);
}
}
(*(volatile uint16 *) 0x0400000c) = (3 << 0 ) |
(0 << 2 ) |
(31 << 8 ) |
(0 << 14 ) ;
gba_init_sprites();
((volatile uint16 *) 0x7000000) [2] = (0 << 0 ) |
(0 << 10 ) |
(0 << 12 );
((volatile uint16 *) 0x7000000) [6] = (16 << 0 ) |
(0 << 10 ) | (1 << 12 );
sprites[0].x = fp(200);
sprites[0].y = fp(0);
sprites[0].vx = fp(0);
sprites[0].vy = fp(0);
sprites[0].rotation = 0;
viewx = fp(0);
viewy = fp(0);
sprites[1].x = 0;
sprites[1].y = 0;
while (1) {
uint32 keys;
int ax, ay;
gba_vsync();
{
int tmpx, tmpy;
tmpx = fp_val(sprites[0].x - viewx) - 32 ;
tmpy = fp_val(sprites[0].y - viewy) - 32 ;
((volatile uint16 *) 0x7000000) [0] = ((tmpy << 0 ) & (0xff << 0 ) ) |
(0 << 14 ) | (1 << 8) | (1 << 9) ;
((volatile uint16 *) 0x7000000) [1] = ((tmpx << 0 ) & (0x1ff << 0 ) ) |
(2 << 14 ) | (0 << 9 );
}
((volatile uint16 *) 0x7000000) [3] = cos(sprites[0].rotation);
((volatile uint16 *) 0x7000000) [7] = sin(sprites[0].rotation);
((volatile uint16 *) 0x7000000) [11] = -sin(sprites[0].rotation);
((volatile uint16 *) 0x7000000) [15] = cos(sprites[0].rotation);
# 426 "main.c"
(*(volatile uint16 *) 0x04000018) = fp_val(viewx);
(*(volatile uint16 *) 0x0400001a) = fp_val(viewy);
{
if ((*(volatile uint16 *) 0x0400010c) >= 0x4000) {
fps = (0x4000 * frames) / (*(volatile uint16 *) 0x0400010c) ;
frames = 0;
(*(volatile uint16 *) 0x0400010c) = 0;
}
status_line("fps=%x", fps);
}
keys = (*(volatile uint32 *) 0x04000130) ;
ax = fp(0);
ay = fp(0);
if (keys & 0x100 ) {
if (!(keys & 0x20 ))
ax -= 32 ;
if (!(keys & 0x10 ))
ax += 32 ;
if (!(keys & 0x40 ))
ay -= 32 ;
if (!(keys & 0x80 ))
ay += 32 ;
} else {
int target_angle = 0;
int power = 128 ;
if ((keys & (0x20 | 0x40 )) == 0)
target_angle = 224;
else if ((keys & (0x40 | 0x10 )) == 0)
target_angle = 32;
else if ((keys & (0x10 | 0x80 )) == 0)
target_angle = 96;
else if ((keys & (0x80 | 0x20 )) == 0)
target_angle = 160;
else if (!(keys & 0x20 ))
target_angle = 192;
else if (!(keys & 0x40 ))
target_angle = 0;
else if (!(keys & 0x10 ))
target_angle = 64;
else if (!(keys & 0x80 ))
target_angle = 128;
else
power = 0;
if (power) {
if (target_angle > sprites[0].rotation) {
if (target_angle - sprites[0].rotation <= 128)
sprites[0].rotation += 4 ;
else
sprites[0].rotation -= 4 ;
} else if (target_angle < sprites[0].rotation) {
if (sprites[0].rotation - target_angle <= 128)
sprites[0].rotation -= 4 ;
else
sprites[0].rotation += 4 ;
}
sprites[0].rotation = sprites[0].rotation & 0xff;
ax = fp_mul(power, sin(sprites[0].rotation));
ay = fp_mul(power, -cos(sprites[0].rotation));
}
}
sprites[0].vx += ax;
sprites[0].vy += ay;
sprites[0].vx = fp_mul(sprites[0].vx, 0xf0);
if (sprites[0].vx < 0x10 && sprites[0].vx > -0x10)
sprites[0].vx = 0;
sprites[0].vy = fp_mul(sprites[0].vy, 0xf0);
if (sprites[0].vy < 0x10 && sprites[0].vy > -0x10)
sprites[0].vy = 0;
sprites[0].x += sprites[0].vx;
sprites[0].y += sprites[0].vy;
if (sprites[0].x - viewx < fp((8+ 32 /2) ))
viewx = sprites[0].x - fp((8+ 32 /2) );
if (sprites[0].x - viewx > fp(240 - (8+ 32 /2) ))
viewx = sprites[0].x - fp(240 ) + fp((8+ 32 /2) );
if (sprites[0].y - viewy < fp((8+ 32 /2) ))
viewy = sprites[0].y - fp((8+ 32 /2) );
if (sprites[0].y - viewy > fp(160 - (8+ 32 /2) ))
viewy = sprites[0].y - fp(160 ) + fp((8+ 32 /2) );
{
int x, y;
uint16 *tile = (uint16 *) ((volatile uint16 *) (0x6000000 + 0x800 * ( 31 ))) ;
int tilex = viewx >> 11;
int tiley = viewy >> 11;
int visx0 = (tilex & 31);
int visx1 = (( 256/8 ) < ( visx0 + ((240 /8) + 1) ) ? ( 256/8 ) : ( visx0 + ((240 /8) + 1) )) ;
int visw = ((240 /8) + 1) - (visx1 - visx0);
int visy0 = (tiley & 31);
int visy1 = (( 256/8 ) < ( visy0 + ((160 /8) + 1) ) ? ( 256/8 ) : ( visy0 + ((160 /8) + 1) )) ;
int vish = ((160 /8) + 1) - (visy1 - visy0);
tilex &= ~31;
tiley &= ~31;
for (y = 0; y < 256/8; y++) {
if ((y >= visy0 && y < visy1) || y < vish) {
int realy;
realy = tiley + y;
if (y < vish)
realy += 256/8;
for (x = 0; x < 256/8; x++) {
if ((x >= visx0 && x < visx1) || x < visw) {
if (*tile & (1<<10)) {
int realx;
*tile &= ~(1<<10);
realx = tilex + x;
if (x < visw)
realx += 256/8;
map_render_tile(*tile & 0x3ff, realx, realy);
}
} else {
*tile |= 1<<10;
}
tile++;
}
} else {
for (x = 0; x < 256/8/2; x++) {
*(uint32 *) tile |= (1<<10) | (1<<26);
tile++;
tile++;
}
}
}
}
frames++;
}
}
---[ cut here ]---
>Fix:
Don't use -fverbose-asm.
>Release-Note:
>Audit-Trail:
>Unformatted:
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-07-31 6:46 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-07-30 23:46 c/7453: ARM -fverbose-asm segfault gccbug
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).