source codes

This commit is contained in:
oniku_taro 2021-02-24 02:32:05 +09:00
parent 41c95b6007
commit 146ffbcee0
34 changed files with 5071 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/cd_root/

13
Makefile Normal file
View File

@ -0,0 +1,13 @@
include ../../Makefile.cfg
all:
mkdir -p cd_root
$(CC) $(CCFLAGS)-O2 -DEXAMPLES_VMODE=VMODE_NTSC main.c system573_lib/ksys573_pad.c ksys573_dump.c ksys573_flash_check.c ksys573_rtc_util.c ksys573_sio_check.c ksys573_input_check.c system573_lib/ksys573_flash_mem.c ksys573_font.c system573_lib/ksys573_psx_gpu.c system573_lib/ksys573_nvram.c system573_lib/ksys573_sio.c -o PSX.elf
elf2exe PSX.elf cd_root/PSX.exe -mark_jpn
systemcnf PSX.exe > cd_root/system.cnf
mkisofs -o PSX.hsf -V GAMEISO -sysid PLAYSTATION cd_root
mkpsxiso PSX.hsf PSX.bin /share/licenses/infojap.dat
rm -f PSX.hsf

14
ksys573.h Normal file
View File

@ -0,0 +1,14 @@
#ifndef _KSYS573_H
#define _KSYS573_H
#include <psx.h>
#include "system573_lib/ksys573_pad.h"
#include "ksys573_input_check.h"
#include "ksys573_font.h"
#include "ksys573_flash_check.h"
#include "ksys573_sio_check.h"
#include "ksys573_dump.h"
#include "system573_lib/ksys573_psx_gpu.h"
#include "system573_lib/ksys573_nvram.h"
#include "system573_lib/ksys573_flash_mem.h"
#include "system573_lib/ksys573_sio.h"
#endif

549
ksys573_dump.c Normal file
View File

@ -0,0 +1,549 @@
#include "main.h"
unsigned short crc16table[256] = {
0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241,
0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440,
0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40,
0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841,
0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40,
0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41,
0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641,
0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040,
0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240,
0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441,
0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41,
0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840,
0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41,
0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40,
0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640,
0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041,
0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240,
0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441,
0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41,
0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840,
0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41,
0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40,
0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640,
0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041,
0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241,
0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440,
0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40,
0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841,
0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40,
0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41,
0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641,
0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040
};
unsigned short crc16(int deviceid,int bank)
{
int i = 0;
int count=0x3FFFFF;
unsigned int crc=0;
crc = ~crc;
for (i = 0; i < count; i++) {
unsigned char c = flash_mem_read_data(deviceid,i,bank);
crc = (crc >> 8) ^ crc16table[(crc ^ c) & 0x00ff];
}
return ~crc;
}
unsigned int crc32table[256] = {
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,
0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,
0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,
0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,
0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,
0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,
0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,
0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,
0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,
0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,
0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,
0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,
0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,
0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,
0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,
};
//FB1062B9;
unsigned long crc32(int deviceid,int bank)
{
char hex_temp[255];
unsigned long crcinit = 0;
unsigned long crc = 0;
int count=0x400000;
if(deviceid==0xFF)
{
count=0x1FF8;
}
int i=0;
unsigned char c=0x00;
crc = crcinit ^ 0xFFFFFFFF;
for (i = 0; i < count; i++) {
if(deviceid==0xFF)
{
c = nvram_read_byte(i);
}else{
c = flash_mem_read_data(deviceid,i,bank);
}
*wachdog=0x0;
crc = ((crc >> 8) & 0x00FFFFFF) ^ crc32table[(crc ^ c) & 0xFF];
}
return crc ^ 0xFFFFFFFF;
}
void read_serial_ram(int deviceid,int bank)
{
int count=0x400000;
int abort=0;
unsigned char data1=0x00;
unsigned char data2=0x00;
int in_byte=0;
long timeout=0x50000;
long timeout_count=0;
char hex_temp[255];
int display_fresh=1000;
int display_fresh_count=0;
flash_mem_reset(deviceid,bank);
if(deviceid==0xFF)
{
count=0x1FF8;
}
while(abort==0)
{
//停止ボタン
button_update();
if(pushed_button_hold[2][2]==PAD_ON)
{
abort=1;
}
if(abort==0)
{
if(SIOCheckInBuffer()!=0)
{
if(in_byte%2==0)
{
data1=SIOReadByte();
}else{
data2=SIOReadByte();
if(deviceid==0xFF)
{
nvram_write_byte(in_byte-1,data1);
nvram_write_byte(in_byte,data2);
}else{
flash_mem_write_data(deviceid,in_byte-1,bank,data1,data2);
}
}
timeout_count=0;
in_byte++;
}else{
timeout_count++;
if(timeout_count>timeout){
abort=1;
}
}
if(in_byte>count)
{
abort=1;
}
}
display_fresh_count++;
if(display_fresh==display_fresh_count)
{
if(display_is_old)
{
DoubleBuffering();
ClearScreen();
print_str(30,70,11,"WRITE START");
print_str(30,80,28,"Pless Service Button = Abort");
print_str(30,90,30,"timeout_count->0x50000 = Abort");
print_set_font_color(0xFF,0,0);
sprintf(hex_temp, "timeout_count=%08X",timeout_count);
print_str(30,110,22,hex_temp);
sprintf(hex_temp, "%08x/%08X",in_byte,count);
print_str(30,120,17,hex_temp);
print_set_font_color(0xFF,0xFF,0xFF);
GsDrawList();
while(GsIsDrawing());
display_is_old=0;
}
display_fresh_count=0;
}
*wachdog=0x0;
}
flash_mem_reset(deviceid,bank);
}
void send_serial_ram(int deviceid,int bank)
{
int count=0x400000;
int i=0;
int abort=0;
unsigned char data=0x00;
if(deviceid==0xFF)
{
count=0x1FF8;
}
for (i = 0; i < count; i++) {
button_update();
if(pushed_button_hold[2][2]==PAD_ON){
i=count+1;
abort=1;
}
if(abort==0)
{
if(deviceid==0xFF)
{
data = nvram_read_byte(i);
}else{
data = flash_mem_read_data(deviceid,i,bank);
}
*wachdog=0x0;
}
print_str(30,130,4,"EXIT");
}
}
void dump()
{
int cursor_pos_down_wait=0;
int count_wait=0;
int in_game_end=1;
int test_off=0;
int i=0;
int in_game_mode=0;
int is_init=0;
unsigned char temp_data[256];
int in_byte=0;
int get_command_index=0;
button_clear();
unsigned short status=0;
char hex_temp[255];
char hex_calc[255];
char *command1 = "CONNECT";
char *command2 = "SETBANK";
char *command3 = "SETDEV_";
char *command4 = "CALCCRC";
char *command5 = "READ___";
char *command6 = "WRITE__";
char *command7 = "DISCONE";
char *retmessage = "OK";
int command_is_ok=0;
int bank=0;
int devid=0;
int calc_crc=0;
int connect=0;
int read=0;
int write=0;
int j=0;
//init
while(SIOCheckInBuffer()!=0)
{
SIOReadByte();
}
memset(temp_data,0x00,256);
sprintf(hex_calc, "--------");
//デバッグ用
//write=1;
//devid=ONBOARD;
while(in_game_end)
{
if(display_is_old)
{
DoubleBuffering();
ClearScreen();
button_update();
print_set_font_color(0xFF,0xFF,0xFF);
print_set_font_status(1,1);
print_str(30,20,4,"DUMP");
print_str(30,40,26,"RS232 STATUS 115200bps 8N1");
print_str(30,130,4,"EXIT");
switch(in_game_mode){
case 0:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,130,4,"EXIT");
print_set_font_color(0xFF,0xFF,0xFF);
break;
}
if(pushed_button_hold[2][2]==PAD_ON){
if(cursor_pos_down_wait==0)
{
if(in_game_mode!=0){
in_game_mode++;
}else{
in_game_mode=0;
}
}
cursor_pos_down_wait++;
if(cursor_pos_down_wait==10)
{
cursor_pos_down_wait=0;
}
}else{
cursor_pos_down_wait=0;
}
if(pad_read(PAD_TEST)!=PAD_ON){
test_off=1;
}
if(pad_read(PAD_TEST)==PAD_ON&&test_off==1){
if(count_wait==0){
count_wait=0;
switch(in_game_mode){
case 0:
game_mode=0;
in_game_end=0;
SIOStop();
break;
defalut:
break;
}
}
count_wait++;
}else{
count_wait=0;
}
sprintf(hex_temp, "%02x",get_command_index);
print_str(30,30,2,hex_temp);
//main util
if(is_init==0)
{
SIOStart_Ksys573();
is_init=1;
}
in_byte=SIOCheckInBuffer();
if(in_byte!=0)
{
temp_data[get_command_index]=SIOReadByte();
get_command_index++;
}
if(strncmp(temp_data,command1,7)==0){
command_is_ok=1;
get_command_index=0;
connect=1;
}
if(strncmp(temp_data,command2,7)==0){
in_byte=SIOCheckInBuffer();
if(in_byte!=0)
{
temp_data[get_command_index]=SIOReadByte();
bank=temp_data[get_command_index];
command_is_ok=1;
get_command_index=0;
}
}
if(strncmp(temp_data,command3,7)==0){
in_byte=SIOCheckInBuffer();
if(in_byte!=0)
{
temp_data[get_command_index]=SIOReadByte();
devid=temp_data[get_command_index];
command_is_ok=1;
get_command_index=0;
}
}
if(strncmp(temp_data,command4,7)==0){
command_is_ok=1;
get_command_index=0;
switch(devid)
{
case ONBOARD:
case PCCARD1:
case PCCARD2:
case 0xFF:
calc_crc=1;
break;
}
}
if(strncmp(temp_data,command5,7)==0){
command_is_ok=1;
get_command_index=0;
read=1;
}
if(strncmp(temp_data,command6,7)==0){
command_is_ok=1;
get_command_index=0;
write=1;
}
if(strncmp(temp_data,command7,7)==0){
get_command_index=0;
connect=0;
}
if(command_is_ok==1)
{
if(read==0&&write==0){
for(i=0;i<2;i++){
SIOSendByte_wait_txen(retmessage[i],0xFFF);
}
}
memset(temp_data,0x00,256);
while(SIOCheckInBuffer()!=0)
{
SIOReadByte();
}
command_is_ok=0;
}
if(calc_crc==2)
{
sprintf(hex_calc, "%08x",crc32(devid,bank));
calc_crc=0;
}
if(calc_crc==1)
{
sprintf(hex_calc, "WAIT ");
calc_crc=2;
}
if(connect==0)
{
print_str(30,60,10,"CONNECT --");
}else
{
print_str(30,60,7,"CONNECT");
print_set_font_color(0,0xFF,0);
print_str(70,60,2,"OK");
print_set_font_color(0xFF,0xFF,0xFF);
}
if(read==2)
{
switch(devid)
{
case ONBOARD:
case PCCARD1:
case PCCARD2:
case 0xFF:
send_serial_ram(devid,bank);
break;
default:
break;
}
read=0;
}
if(read==1)
{
print_str(30,100,11,"READ START");
print_set_font_color(0xFF,0,0);
print_str(30,110,28,"Pless Service Button = Abort");
print_set_font_color(0xFF,0xFF,0xFF);
read=2;
}
if(write==2)
{
switch(devid)
{
case ONBOARD:
case PCCARD1:
case PCCARD2:
case 0xFF:
read_serial_ram(devid,bank);
break;
default:
break;
}
write=0;
}
if(write==1)
{
print_str(30,100,11,"WRITE START");
print_set_font_color(0xFF,0,0);
print_str(30,110,28,"Pless Service Button = Abort");
print_set_font_color(0xFF,0xFF,0xFF);
write=2;
}
sprintf(hex_temp, "BANK %02x",bank);
print_str(30,70,10,hex_temp);
switch(devid)
{
case ONBOARD:
print_str(30,80,15,"DEVICE ONBOARD");
break;
case PCCARD1:
print_str(30,80,15,"DEVICE PCCARD1");
break;
case PCCARD2:
print_str(30,80,15,"DEVICE PCCARD2");
break;
case 0xFF:
print_str(30,80,15,"DEVICE NVRAM");
break;
default:
print_str(30,80,15,"DEVICE UNKNOWN");
break;
}
print_str(30,90,7,"CRC32 ");
print_str(70,90,8,hex_calc);
GsDrawList();
while(GsIsDrawing());
display_is_old=0;
}
}
}

8
ksys573_dump.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef _KSYS573_DUMP_H
#define _KSYS573_DUMP_H
void sio_check();
unsigned short crc16(int deviceid,int bank);
unsigned long crc32(int deviceid,int bank);
void read_serial_ram(int deviceid,int bank);
void send_serial_ram(int deviceid,int bank);
#endif

315
ksys573_flash_check.c Normal file
View File

@ -0,0 +1,315 @@
#include "main.h"
#define END_MENU 6
void flash_check()
{
int cursor_pos_down_wait=0;
int count_wait=0;
int in_game_end=1;
int test_off=0;
int i=0;
int in_game_mode=0;
button_clear();
//init
unsigned char data_temp[256];
unsigned char data_temp2[4];
unsigned char data_first_1[64];
unsigned char data_first_2[64];
unsigned char data_end_1[64];
unsigned char data_end_2[64];
char hex_temp[2];
char hex_temp2[2];
int erase_sector=0;
int y=0;
int x=0;
int deviceid=0;
int select_device=0;
//END MENU
int menu_exit=END_MENU;
int bank=0;
for(i=0;i<64;i++)
{
data_first_1[i]=0;
data_first_2[i]=0;
data_end_1[i]=0;
data_end_2[i]=0;
}
while(in_game_end) {
if(display_is_old) {
DoubleBuffering();
ClearScreen();
button_update();
print_set_font_color(0xFF,0xFF,0xFF);
print_set_font_status(1,1);
print_str(30,20,11,"FLASH CHECK");
print_str(30,40,13,"SELECT DEVICE");
switch(select_device)
{
case 0:
deviceid=ONBOARD;
break;
case 1:
deviceid=PCCARD1;
break;
case 2:
deviceid=PCCARD2;
break;
}
switch(select_device)
{
case 0:
print_str(100,40,7,"ONBOARD");
break;
case 1:
print_str(100,40,7,"PCCARD1");
break;
case 2:
print_str(100,40,7,"PCCARD2");
break;
case 3:
print_str(100,40,5,"NVRAM");
break;
}
sprintf(data_temp, "BANK %02d",bank);
print_str(30,50,16,data_temp);
print_str(30,60,5,"RESET");
print_str(100,60,5,"ERASE");
print_str(30,70,10,"AUTOSELECT");
print_str(100,70,5,"WRITE");
print_str(150,60,2,hex_temp2);
print_str(30,190,4,"EXIT");
switch(in_game_mode){
case 0:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,40,13,"SELECT DEVICE");
switch(select_device)
{
case 0:
print_str(100,40,7,"ONBOARD");
break;
case 1:
print_str(100,40,7,"PCCARD1");
break;
case 2:
print_str(100,40,7,"PCCARD2");
break;
case 3:
print_str(100,40,5,"NVRAM");
break;
}
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 1:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,50,16,data_temp);
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 2:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,60,5,"RESET");
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 3:
print_set_font_color(0xFF,0x00,0x00);
print_str(100,60,5,"ERASE");
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 4:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,70,10,"AUTOSELECT");
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 5:
print_set_font_color(0xFF,0x00,0x00);
print_str(100,70,5,"WRITE");
print_set_font_color(0xFF,0xFF,0xFF);
break;
case END_MENU:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,190,4,"EXIT");
print_set_font_color(0xFF,0xFF,0xFF);
break;
}
if(pushed_button_hold[2][2]==PAD_ON){
if(cursor_pos_down_wait==0)
{
if(in_game_mode!=menu_exit){
in_game_mode++;
}else{
in_game_mode=0;
}
}
cursor_pos_down_wait++;
if(cursor_pos_down_wait==10)
{
cursor_pos_down_wait=0;
}
}else{
cursor_pos_down_wait=0;
}
if(pad_read(PAD_TEST)!=PAD_ON){
test_off=1;
};
if(pad_read(PAD_TEST)==PAD_ON&&test_off==1){
if(count_wait==0){
count_wait=0;
if(in_game_mode==0)
{
select_device++;
if(select_device==4)
{
select_device=0;
}
}
if(in_game_mode==1)
{
bank++;
if(bank==16)
{
bank=0;
}
}
if(in_game_mode==2)
{
flash_mem_reset(deviceid,bank);
}
if(in_game_mode==3)
{
flash_mem_reset(deviceid,bank);
for(erase_sector=0;erase_sector<32;erase_sector++)
{
DoubleBuffering();
ClearScreen();
sprintf( hex_temp, "%02d",erase_sector);
flash_mem_erase(deviceid,erase_sector,bank);
print_str(10,100,12,"Erase Sector");
print_str(100,100,2,hex_temp);
print_str(116,100,3,"/31");
GsDrawList();
while(GsIsDrawing());
display_is_old=0;
}
flash_mem_reset(deviceid,bank);
}
if(in_game_mode==4)
{
flash_mem_reset(deviceid,bank);
flash_mem_autoselect(deviceid,bank);
}
if(in_game_mode==5)
{
flash_mem_reset(deviceid,bank);
flash_mem_write_data(deviceid,0,bank,0xAA,0xBB);
flash_mem_write_data(deviceid,2,bank,0xCC,0xDD);
flash_mem_write_data(deviceid,4,bank,0xEE,0xFF);
flash_mem_write_data(deviceid,0x3FFFF0,bank,0x00,0x11);
flash_mem_write_data(deviceid,0x3FFFF2,bank,0x22,0x33);
flash_mem_write_data(deviceid,0x3FFFF4,bank,0x44,0x55);
flash_mem_write_data(deviceid,0x3FFFF6,bank,0x66,0x77);
flash_mem_write_data(deviceid,0x3FFFF8,bank,0x88,0x99);
flash_mem_write_data(deviceid,0x3FFFFA,bank,0xAA,0xBB);
flash_mem_write_data(deviceid,0x3FFFFC,bank,0xCC,0xDD);
flash_mem_write_data(deviceid,0x3FFFFE,bank,0xCC,0xDD);
}
if(in_game_mode==menu_exit)
{
game_mode=0;
in_game_end=0;
}
}
count_wait++;
}else{
count_wait=0;
}
//main util
y=0;
x=0;
if(in_game_mode!=menu_exit)
{
if(select_device<3){
print_str(30,90,10,"0x00->0x3F");
for(i=0;i<64;i++)
{
data_first_1[i]=flash_mem_read_data(deviceid,i,bank);
sprintf( hex_temp, "%02x",data_first_1[i]);
print_str(30+(x*10)+2,100+(y*10),2,hex_temp);
x++;
if(x%16==0)
{
x=0;
y++;
}
}
y=0;
x=0;
print_str(30,140,18,"0x3FFFC0->0x3FFFFF");
for(i=0;i<64;i++)
{
data_first_2[i]=flash_mem_read_data(deviceid,i+0x3FFFC0,bank);
sprintf( hex_temp, "%02x",data_first_2[i]);
print_str(30+(x*10)+2,150+(y*10),2,hex_temp);
x++;
if(x%16==0)
{
x=0;
y++;
}
}
}else{
print_str(30,90,10,"0x00->0x3F");
for(i=0;i<64;i++)
{
data_end_1[i]=nvram_read_byte(i);
sprintf( hex_temp, "%02x",data_end_1[i]);
print_str(30+(x*10)+2,100+(y*10),2,hex_temp);
x++;
if(x%16==0)
{
x=0;
y++;
}
}
y=0;
x=0;
print_str(30,140,14,"0x1FC0->0x1FFF");
for(i=0;i<64;i++)
{
data_end_2[i]=nvram_read_byte(i+0x1fc0);
sprintf( hex_temp, "%02x",data_end_2[i]);
print_str(30+(x*10)+2,150+(y*10),2,hex_temp);
x++;
if(x%16==0)
{
x=0;
y++;
}
}
}
}
GsDrawList();
while(GsIsDrawing());
display_is_old=0;
}
}
}

6
ksys573_flash_check.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef _KSYS573_FLASH_CHECK_H
#define _KSYS573_FLASH_CHECK_H
void flash_check();
#endif

81
ksys573_font.c Normal file
View File

@ -0,0 +1,81 @@
#include "ksys573_font.h"
#include "tim/font.h"
void print_int(int x,int y,int val){
int digit = 0;
int i=0;
int temp=0;
int temp_val=val;
int temp_digit=temp_val;
if(temp_val==0){
sprite_font[0x10].x=x;
sprite_font[0x10].y=y;
sprite_font[0x10].r=font_r;
sprite_font[0x10].g=font_g;
sprite_font[0x10].b=font_b;
sprite_font[0x10].scalex=font_size;
sprite_font[0x10].scaley=font_size;
GsSortSprite(&sprite_font[0x10]);
}
while(temp_digit!=0){
temp_digit=temp_digit/10;
++digit;
}
for(i=0;0<temp_val;i++){
temp = temp_val % 10;
temp_val = temp_val / 10;
sprite_font[temp+0x10].r=font_r;
sprite_font[temp+0x10].g=font_g;
sprite_font[temp+0x10].b=font_b;
sprite_font[temp+0x10].scalex=font_size;
sprite_font[temp+0x10].scaley=font_size;
sprite_font[temp+0x10].x=(font_x*(digit-i-1))+x;
sprite_font[temp+0x10].y=y;
GsSortSprite(&sprite_font[temp+0x10]);
}
}
void print_set_font_color(int r,int g ,int b)
{
font_r=r;
font_g=g;
font_b=b;
}
void print_set_font_status( int size,int interval){
font_size=size;
font_interval=interval;
}
void print_str(int x,int y,int length,char str[]){
int i=0;
int temp;
for(i=0;i<length;i++){
temp=str[i];
sprite_font[temp-0x20].r=font_r;
sprite_font[temp-0x20].g=font_g;
sprite_font[temp-0x20].b=font_b;
sprite_font[temp-0x20].scalex=font_size;
sprite_font[temp-0x20].scaley=font_size;
sprite_font[temp-0x20].x=x+(i*(font_x+font_interval));
sprite_font[temp-0x20].y=y;
GsSortSprite(&sprite_font[temp-0x20]);
}
}
void load_font()
{
int i=0;
int j=0;
GsImageFromTim(&game_image,font);
GsUploadImage(&game_image);
print_set_font_color(0x00,0x00,0x00);
print_set_font_status(1,0);
for(j=0;j<6 ;j++){
for(i=0;i<16 ;i++){
GsSpriteFromImage(&sprite_font[i+(16*j)], &game_image, 1);
sprite_font[i+(16*j)].w = font_x ;
sprite_font[i+(16*j)].h = font_y ;
sprite_font[i+(16*j)].u = font_x*i;
sprite_font[i+(16*j)].v = font_y*j;
}
}
}

19
ksys573_font.h Normal file
View File

@ -0,0 +1,19 @@
#ifndef _KSYS573_FONT_H
#define _KSYS573_FONT_H
#include "main.h"
#define font_x 4
#define font_y 8
#define font_max 96
GsSprite sprite_font[font_max];
int font_size;
int font_interval;
int font_r;
int font_g;
int font_b;
void print_int(int x,int y,int val);
void print_set_font_color(int r,int g ,int b);
void print_set_font_status( int size,int interval);
void print_str(int x,int y,int length,char str[]);
void load_font();
#endif

620
ksys573_input_check.c Normal file
View File

@ -0,0 +1,620 @@
#include "main.h"
void input_check_1()
{
GsLine line;
int mode_end=1;
int end_flag=0;
int push_start_on=0;
int push_start_count=0;
int *timer;
int time0=0;
int time60=0;
int time120=0;
int test_x=105;
int status_interval=100;
int test_y=50;
int p1_x=30;
int p1_y=100;
int p2_x=180;
int p2_y=100;
while(mode_end) {
if(display_is_old)
{
DoubleBuffering();
ClearScreen();
button_update();
GsSortCls(0,0,0);
print_set_font_color(0xFF,0xFF,0xFF);
print_set_font_status(2,5);
print_str(120,10,9,"I/O CHECK");
print_set_font_status(1,1);
print_str(135,30,11,"INPUT CHECK");
print_str(p1_x,test_y+((font_y*font_size)*0),11,"TEST BUTTON");
print_str(p1_x,test_y+((font_y*font_size)*1),14,"SERVICE BUTTON");
print_str(p1_x,test_y+((font_y*font_size)*2),10,"COIN1 MECH");
print_str(p1_x,test_y+((font_y*font_size)*3),10,"COIN2 MECH");
print_str(p2_x,test_y+((font_y*font_size)*0),3,"DIP");
print_str(p2_x,test_y+((font_y*font_size)*1),7,"PCCARD1");
print_str(p2_x,test_y+((font_y*font_size)*2),7,"PCCARD2");
print_str(p1_x,p1_y+((font_y*font_size)*0),8,"P1 START");
print_str(p1_x,p1_y+((font_y*font_size)*1),5,"P1 UP");
print_str(p1_x,p1_y+((font_y*font_size)*2),7,"P1 DOWN");
print_str(p1_x,p1_y+((font_y*font_size)*3),7,"P1 LEFT");
print_str(p1_x,p1_y+((font_y*font_size)*4),8,"P1 RIGHT");
print_str(p1_x,p1_y+((font_y*font_size)*5),10,"P1 BUTTON1");
print_str(p1_x,p1_y+((font_y*font_size)*6),10,"P1 BUTTON2");
print_str(p1_x,p1_y+((font_y*font_size)*7),10,"P1 BUTTON3");
print_str(p1_x,p1_y+((font_y*font_size)*8),10,"P1 BUTTON4");
print_str(p1_x,p1_y+((font_y*font_size)*9),10,"P1 BUTTON5");
print_str(p1_x,p1_y+((font_y*font_size)*10),10,"P1 BUTTON6");
print_str(p2_x,p2_y+((font_y*font_size)*0),8,"P2 START");
print_str(p2_x,p2_y+((font_y*font_size)*1),5,"P2 UP");
print_str(p2_x,p2_y+((font_y*font_size)*2),7,"P2 DOWN");
print_str(p2_x,p2_y+((font_y*font_size)*3),7,"P2 LEFT");
print_str(p2_x,p2_y+((font_y*font_size)*4),8,"P2 RIGHT");
print_str(p2_x,p2_y+((font_y*font_size)*5),10,"P2 BUTTON1");
print_str(p2_x,p2_y+((font_y*font_size)*6),10,"P2 BUTTON2");
print_str(p2_x,p2_y+((font_y*font_size)*7),10,"P2 BUTTON3");
print_str(p2_x,p2_y+((font_y*font_size)*8),10,"P2 BUTTON4");
print_str(p2_x,p2_y+((font_y*font_size)*9),10,"P2 BUTTON5");
print_str(p2_x,p2_y+((font_y*font_size)*10),10,"P2 BUTTON6");
print_str(85,220,32,"PRESS TEST + SERVICE = EXIT");
if(pushed_button_hold[2][2]==PAD_ON&&pushed_button_hold[2][3]==PAD_ON)
{
end_flag=1;
}
if(pushed_button_hold[2][2]!=PAD_ON&&pushed_button_hold[2][3]!=PAD_ON&&end_flag==1)
{
end_flag=1;
game_mode=0;
mode_end=0;
}
/*pushed_button[2][4]=pad_read(PAD_DIP1);
pushed_button[2][5]=pad_read(PAD_DIP2);
pushed_button[2][6]=pad_read(PAD_DIP3);
pushed_button[2][7]=pad_read(PAD_DIP4);
pushed_button[2][8]=pad_read(PAD_PCCARD1);
pushed_button[2][9]=pad_read(PAD_PCCARD2);*/
if(pushed_button_hold[2][8]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval,test_y+((font_y*font_size)*1),2,"OK");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval,test_y+((font_y*font_size)*1),2,"--");
}
if(pushed_button_hold[2][9]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval,test_y+((font_y*font_size)*2),2,"OK");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval,test_y+((font_y*font_size)*2),2,"--");
}
if(pushed_button_hold[2][4]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval,test_y+((font_y*font_size)*0),2,"1");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval,test_y+((font_y*font_size)*0),3,"1");
}
if(pushed_button_hold[2][5]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval+5,test_y+((font_y*font_size)*0),2,"2");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval+5,test_y+((font_y*font_size)*0),3,"2");
}
if(pushed_button_hold[2][6]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval+10,test_y+((font_y*font_size)*0),2,"3");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval+10,test_y+((font_y*font_size)*0),3,"3");
}
if(pushed_button_hold[2][7]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval+15,test_y+((font_y*font_size)*0),2,"4");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval+15,test_y+((font_y*font_size)*0),3,"4");
}
if(pushed_button_hold[2][3]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p1_x+status_interval,test_y+((font_y*font_size)*0),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p1_x+status_interval,test_y+((font_y*font_size)*0),3,"OFF");
}
if(pushed_button_hold[2][2]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p1_x+status_interval,test_y+((font_y*font_size)*1),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p1_x+status_interval,test_y+((font_y*font_size)*1),3,"OFF");
}
if(pushed_button_hold[2][0]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p1_x+status_interval,test_y+((font_y*font_size)*2),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p1_x+status_interval,test_y+((font_y*font_size)*2),3,"OFF");
}
if(pushed_button_hold[2][1]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p1_x+status_interval,test_y+((font_y*font_size)*3),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p1_x+status_interval,test_y+((font_y*font_size)*3),3,"OFF");
}
if(pushed_button_hold[0][0]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*0),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*0),3,"OFF");
}
if(pushed_button_hold[0][1]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*1),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*1),3,"OFF");
}
if(pushed_button_hold[0][2]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*2),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*2),3,"OFF");
}
if(pushed_button_hold[0][3]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*3),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*3),3,"OFF");
}
if(pushed_button_hold[0][4]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*4),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*4),3,"OFF");
}
if(pushed_button_hold[0][5]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*5),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*5),3,"OFF");
}
if(pushed_button_hold[0][6]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*6),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*6),3,"OFF");
}
if(pushed_button_hold[0][7]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*7),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*7),3,"OFF");
}
if(pushed_button_hold[0][8]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*8),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*8),3,"OFF");
}
if(pushed_button_hold[0][9]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*9),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*9),3,"OFF");
}
if(pushed_button_hold[0][10]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*10),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p1_x+status_interval,p1_y+((font_y*font_size)*10),3,"OFF");
}
if(pushed_button_hold[1][0]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*0),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*0),3,"OFF");
}
if(pushed_button_hold[1][1]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*1),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*1),3,"OFF");
}
if(pushed_button_hold[1][2]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*2),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*2),3,"OFF");
}
if(pushed_button_hold[1][3]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*3),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*3),3,"OFF");
}
if(pushed_button_hold[1][4]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*4),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*4),3,"OFF");
}
if(pushed_button_hold[1][5]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*5),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*5),3,"OFF");
}
if(pushed_button_hold[1][6]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*6),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*6),3,"OFF");
}
if(pushed_button_hold[1][7]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*7),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*7),3,"OFF");
}
if(pushed_button_hold[1][8]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*8),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*8),3,"OFF");
}
if(pushed_button_hold[1][9]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*9),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*9),3,"OFF");
}
if(pushed_button_hold[1][10]==PAD_ON)
{
print_set_font_color(0,0xFF,0);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*10),2,"ON");
}else{
print_set_font_color(0xFF,0xFF,0xFF);
print_str(p2_x+status_interval,p2_y+((font_y*font_size)*10),3,"OFF");
}
GsDrawList();
while(GsIsDrawing());
display_is_old=0;
}
}
}
void input_check_2()
{
GsLine line;
GsLine line1;
GsLine line2;
GsLine line3;
int page=1;
int timing_counter=0;
int end_flag=0;
int next_page_flag=0;
int pre_page_flag=0;
int mode_end=1;
int push_start_on=0;
int push_start_count=0;
int count_start=0;
int test_clear=0;
int pushed_buttons[600][2][11];
int j=0;
int i=0;
int k=0;
button_clear();
line.r=0xFF;
line.g=0xFF;
line.b=0xFF;
line1.r=0xFF;
line1.g=0xFF;
line1.b=0xFF;
line2.r=0xFF;
line2.g=0xFF;
line2.b=0xFF;
line3.r=0xFF;
line3.g=0xFF;
line3.b=0xFF;
line1.x[0]=40;
line1.x[1]=40;
line1.y[0]=50;
line1.y[1]=55;
line2.y[0]=50;
line2.y[1]=55;
line2.x[0]=160;
line2.x[1]=160;
line3.y[0]=50;
line3.y[1]=55;
line3.x[0]=279;
line3.x[1]=279;
line.y[0]=55;
line.y[1]=70;
for(k=0;k<600;k++){
for(j=0;j<2;j++)
{
for(i=0;i<11;i++)
{
pushed_buttons[k][j][i]=0;
}
}
}
while(mode_end) {
if(display_is_old)
{
DoubleBuffering();
ClearScreen();
button_clear();
button_update();
print_set_font_color(0xFF,0xFF,0xFF);
print_set_font_status(2,5);
print_str(120,10,9,"I/O CHECK");
print_set_font_status(1,1);
print_str(120,30,18,"INPUT TIMING CHECK");
if(count_start==0)
{
if(pushed_button[2][3]!=PAD_ON){
test_clear=1;
}
print_str(85,215,27,"PRESS TEST = COUNT START");
if(pushed_button[2][3]==PAD_ON&&test_clear==1){
count_start=1;
timing_counter=0;
}
frame_counter=0;
}
if(count_start==1)
{
print_str(85,215,25,"PRESS SERVICE = COUNT END");
}
if(count_start==2)
{
print_str(85,205,26,"PRESS SERVICE = NEXT PAGE");
print_str(85,215,26,"PRESS TEST = PREVIOUS PAGE");
if(pushed_button_hold[2][3]==PAD_ON)
{
next_page_flag=1;
pre_page_flag=0;
}
if(pushed_button_hold[2][3]!=PAD_ON&&next_page_flag==1)
{
next_page_flag=0;
page=page+1;
if(page>40)
{
page=40;
}
}
if(pushed_button_hold[2][2]==PAD_ON)
{
pre_page_flag=1;
next_page_flag=0;
}
if(pushed_button_hold[2][2]!=PAD_ON&&pre_page_flag==1)
{
pre_page_flag=0;
page=page-1;
if(page<1)
{
page=1;
}
}
}
print_str(85,225,27,"PRESS SERVICE + TEST = EXIT");
if(pushed_button_hold[2][2]==PAD_ON&&pushed_button_hold[2][3]==PAD_ON)
{
end_flag=1;
}
if(pushed_button_hold[2][2]!=PAD_ON&&pushed_button_hold[2][3]!=PAD_ON&&end_flag==1)
{
game_mode=0;
mode_end=0;
}
line.x[0]=(frame_counter*2)+40;
line.x[1]=(frame_counter*2)+40;
if(count_start==1)
{
for(j=0;j<2;j++)
{
for(i=0;i<11;i++)
{
if(pushed_button[j][i]==PAD_ON)
{
pushed_buttons[timing_counter][j][i]=1;
print_str(160,120,6,"PUSHED");
}
else
{
pushed_buttons[timing_counter][j][i]=0;
}
}
}
print_str(80,120,6,"last ");
print_int(130,120,600-timing_counter);
timing_counter++;
if(pushed_button_hold[2][2]==PAD_ON||timing_counter==600)
{
count_start=2;
}
}
if(count_start==2){
print_set_font_color(0xFF,0xFF,0xFF);
print_str(20,30,6,"PAGE:");
print_int(50,30,page);
for(k=0;k<15;k++)
{
print_set_font_color(0xFF,0xFF,0xFF);
print_int((k*20)+10,40,(page-1)*15+k);
for(j=0;j<2;j++)
{
if(j==0){
print_set_font_color(255,50,50);
}else{
print_set_font_color(50,50,255);
}
for(i=0;i<11;i++)
{
if(pushed_buttons[(page-1)*15+k][j][i]==1)
{
switch(i)
{
case 0:
print_str((k*20)+10,(i*7)+51+(j*70),1,"S");
break;
case 1:
print_str((k*20)+10,(i*7)+51+(j*70),1,"U");
break;
case 2:
print_str((k*20)+10,(i*7)+51+(j*70),1,"D");
break;
case 3:
print_str((k*20)+10,(i*7)+51+(j*70),1,"L");
break;
case 4:
print_str((k*20)+10,(i*7)+51+(j*70),1,"R");
break;
case 5:
print_str((k*20)+10,(i*7)+51+(j*70),1,"1");
break;
case 6:
print_str((k*20)+10,(i*7)+51+(j*70),1,"2");
break;
case 7:
print_str((k*20)+10,(i*7)+51+(j*70),1,"3");
break;
case 8:
print_str((k*20)+10,(i*7)+51+(j*70),1,"4");
break;
case 9:
print_str((k*20)+10,(i*7)+51+(j*70),1,"5");
break;
case 10:
print_str((k*20)+10,(i*7)+51+(j*70),1,"6");
break;
}
}
}
}
}
}else{
GsSortLine(&line);
GsSortLine(&line1);
GsSortLine(&line2);
GsSortLine(&line3);
}
GsDrawList();
while(GsIsDrawing());
display_is_old=0;
}
}
}

6
ksys573_input_check.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef _KSYS573_INPUT_CHECK_H
#define _KSYS573_INPUT_CHECK_H
void input_check_1();
void input_check_2();
#endif

653
ksys573_rtc_util.c Normal file
View File

@ -0,0 +1,653 @@
#include "main.h"
void set_time()
{
int set_time_year= nvram_get_year();
int set_time_month= nvram_get_month() ;
int set_time_date= nvram_get_date() ;
int set_time_wod= nvram_get_day_of_the_week();
int set_time_hour= nvram_get_hour();
int set_time_minites= nvram_get_minites();
int set_time_seconds= nvram_get_seconds();
int cursor_pos_down_wait=0;
int count_wait=0;
int in_game_end=1;
int test_off=0;
char hex_temp[2];
int in_game_mode=0;
while(in_game_end) {
if(display_is_old) {
DoubleBuffering();
ClearScreen();
print_set_font_color(0xFF,0xFF,0xFF);
print_set_font_status(1,1);
print_str(30,20,8,"SET TIME");
sprintf( hex_temp, "%02x",set_time_year );
print_str(30,40,2,hex_temp);
print_str(40,40,1,"/");
sprintf( hex_temp, "%02x", set_time_month );
print_str(45,40,2,hex_temp);
print_str(55,40,1,"/");
sprintf( hex_temp, "%02x", set_time_date );
print_str(60,40,2,hex_temp);
print_str(70,40,1,"-");
print_str(75, 40,4,get_day_of_the_week_from_int(set_time_wod));
sprintf( hex_temp, "%02x", set_time_hour);
print_str(160,40,2,hex_temp);
print_str(170,40,1,":");
sprintf( hex_temp, "%02x", set_time_minites);
print_str(175,40,2,hex_temp);
print_str(185,40,1,"-");;
sprintf( hex_temp, "%02x", set_time_seconds);
print_str(190,40,2,hex_temp);
print_str(30,120,9,"SAVE TIME");
print_str(30,130,4,"EXIT");
switch(in_game_mode){
case 0:
print_set_font_color(0xFF,0x00,0x00);
sprintf( hex_temp, "%02x",set_time_year );
print_str(30,40,2,hex_temp);
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 1:
print_set_font_color(0xFF,0x00,0x00);
sprintf( hex_temp, "%02x", set_time_month );
print_str(45,40,2,hex_temp);
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 2:
print_set_font_color(0xFF,0x00,0x00);
sprintf( hex_temp, "%02x", set_time_date );
print_str(60,40,2,hex_temp);
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 3:
print_set_font_color(0xFF,0x00,0x00);
print_str(75, 40,4,get_day_of_the_week_from_int(set_time_wod));
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 4:
print_set_font_color(0xFF,0x00,0x00);
sprintf( hex_temp, "%02x", set_time_hour);
print_str(160,40,2,hex_temp);
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 5:
print_set_font_color(0xFF,0x00,0x00);
sprintf( hex_temp, "%02x", set_time_minites);
print_str(175,40,2,hex_temp);
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 6:
print_set_font_color(0xFF,0x00,0x00);
sprintf( hex_temp, "%02x", set_time_seconds);
print_str(190,40,2,hex_temp);
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 7:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,120,9,"SAVE TIME");
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 8:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,130,4,"EXIT");
print_set_font_color(0xFF,0xFF,0xFF);
break;
defalut:
break;
}
if(pad_read(PAD_SERVICE)==PAD_ON){
if(cursor_pos_down_wait==0)
{
if(in_game_mode!=8){
in_game_mode++;
}else{
in_game_mode=0;
}
}
cursor_pos_down_wait++;
if(cursor_pos_down_wait==10)
{
cursor_pos_down_wait=0;
}
}else{
cursor_pos_down_wait=0;
}
if(pad_read(PAD_TEST)!=PAD_ON){
test_off=1;
}
if(pad_read(PAD_TEST)==PAD_ON&&test_off==1){
if(count_wait==0){
count_wait=0;
switch(in_game_mode){
case 0:
set_time_year++;
if(set_time_year==0x0A){
set_time_year=0x10;
}
if(set_time_year==0x1A){
set_time_year=0x20;
}
if(set_time_year==0x2A){
set_time_year=0x30;
}
if(set_time_year==0x3A){
set_time_year=0x40;
}
if(set_time_year==0x4A){
set_time_year=0x50;
}
if(set_time_year==0x5A){
set_time_year=0x60;
}
if(set_time_year==0x6A){
set_time_year=0x70;
}
if(set_time_year==0x7A){
set_time_year=0x80;
}
if(set_time_year==0x8A){
set_time_year=0x90;
}
if(set_time_year>0x99)
{
set_time_year=0;
}
break;
case 1:
set_time_month++;
if(set_time_month==0x0A){
set_time_month=0x10;
}
if(set_time_month==0x1A){
set_time_month=0x20;
}
if(set_time_month>0x12)
{
set_time_month=1;
}
break;
case 2:
set_time_date++;
if(set_time_date==0x0A){
set_time_date=0x10;
}
if(set_time_date==0x1A){
set_time_date=0x20;
}
if(set_time_date==0x2A){
set_time_date=0x30;
}
if(set_time_date>0x31)
{
set_time_date=1;
}
break;
case 3:
set_time_wod++;
if(set_time_wod>0x7)
{
set_time_wod=1;
}
break;
case 4:
set_time_hour++;
if(set_time_hour==0x0A){
set_time_hour=0x10;
}
if(set_time_hour==0x1A){
set_time_hour=0x20;
}
if(set_time_hour>0x24)
{
set_time_hour=0;
}
break;
case 5:
set_time_minites++;
if(set_time_minites==0x0A){
set_time_minites=0x10;
}
if(set_time_minites==0x1A){
set_time_minites=0x20;
}
if(set_time_minites==0x2A){
set_time_minites=0x30;
}
if(set_time_minites==0x3A){
set_time_minites=0x40;
}
if(set_time_minites==0x4A){
set_time_minites=0x50;
}
if(set_time_minites==0x5A){
set_time_minites=0x60;
}
if(set_time_minites>0x59)
{
set_time_minites=0;
}
break;
case 6:
set_time_seconds++;
if(set_time_seconds==0x0A){
set_time_seconds=0x10;
}
if(set_time_seconds==0x1A){
set_time_seconds=0x20;
}
if(set_time_seconds==0x2A){
set_time_seconds=0x30;
}
if(set_time_seconds==0x3A){
set_time_seconds=0x40;
}
if(set_time_seconds==0x4A){
set_time_seconds=0x50;
}
if(set_time_seconds==0x5A){
set_time_seconds=0x60;
}
if(set_time_seconds>0x59)
{
set_time_seconds=0;
}
break;
case 7:
nvram_set_year(set_time_year&0xFF);
nvram_set_month(set_time_month&0xFF);
nvram_set_date(set_time_date&0xFF);
nvram_set_day_of_the_week(set_time_wod&0xFF);
nvram_set_hour(set_time_hour&0xFF);
nvram_set_minites(set_time_minites&0xFF);
nvram_set_seconds(set_time_seconds&0xFF);
break;
case 8:
game_mode=3;
in_game_end=0;
break;
}
}
count_wait++;
}else{
count_wait=0;
}
GsDrawList();
while(GsIsDrawing());
display_is_old=0;
}
}
}
void set_start()
{
int stop_bit_value= nvram_get_stop_bit();
int cursor_pos_down_wait=0;
int count_wait=0;
int in_game_end=1;
int test_off=0;
int i=0;
char hex_temp[2];
int in_game_mode=0;
while(in_game_end) {
if(display_is_old) {
DoubleBuffering();
ClearScreen();
print_set_font_color(0xFF,0xFF,0xFF);
print_set_font_status(1,1);
print_str(30,20,8,"SET STOP BIT");
print_str(30,40,9,"STOP BIT=");
print_int(85,40,stop_bit_value);
print_str(30,120,13,"SAVE STOP BIT");
print_str(30,130,4,"EXIT");
switch(in_game_mode){
case 0:
print_set_font_color(0xFF,0x00,0x00);
print_int(85,40,stop_bit_value);
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 1:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,120,13,"SAVE STOP BIT");
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 2:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,130,4,"EXIT");
print_set_font_color(0xFF,0xFF,0xFF);
break;
defalut:
break;
}
if(pad_read(PAD_SERVICE)==PAD_ON){
if(cursor_pos_down_wait==0)
{
if(in_game_mode!=2){
in_game_mode++;
}else{
in_game_mode=0;
}
}
cursor_pos_down_wait++;
if(cursor_pos_down_wait==10)
{
cursor_pos_down_wait=0;
}
}else{
cursor_pos_down_wait=0;
}
if(pad_read(PAD_TEST)!=PAD_ON){
test_off=1;
}
if(pad_read(PAD_TEST)==PAD_ON&&test_off==1){
if(count_wait==0){
count_wait=0;
switch(in_game_mode){
case 0:
stop_bit_value++;
if(stop_bit_value>0x1)
{
stop_bit_value=0;
}
break;
case 1:
if(stop_bit_value==1){
nvram_set_stop_bit(0x80);
}else{
nvram_set_stop_bit(0x00);
}
break;
case 2:
game_mode=3;
in_game_end=0;
break;
}
}
count_wait++;
}else{
count_wait=0;
}
GsDrawList();
while(GsIsDrawing());
display_is_old=0;
}
}
}
void set_battery()
{
int use_check_bit= nvram_get_use_battery_check();
int cursor_pos_down_wait=0;
int count_wait=0;
int in_game_end=1;
int test_off=0;
int i=0;
char hex_temp[2];
int in_game_mode=0;
button_clear();
while(in_game_end) {
if(display_is_old) {
DoubleBuffering();
ClearScreen();
button_update();
print_set_font_color(0xFF,0xFF,0xFF);
print_set_font_status(1,1);
print_str(30,20,8,"SET BATTRY OPTION");
print_str(30,40,18,"USE BATTERY CHECK=");
print_int(120,40,use_check_bit);
print_str(30,120,22,"SAVE USE BATTERY CHECK");
print_str(30,130,4,"EXIT");
switch(in_game_mode){
case 0:
print_set_font_color(0xFF,0x00,0x00);
print_int(120,40,use_check_bit);
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 1:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,120,22,"SAVE USE BATTERY CHECK");
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 2:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,130,4,"EXIT");
print_set_font_color(0xFF,0xFF,0xFF);
break;
defalut:
break;
}
if(pushed_button_hold[2][2]==PAD_ON){
if(cursor_pos_down_wait==0)
{
if(in_game_mode!=2){
in_game_mode++;
}else{
in_game_mode=0;
}
}
cursor_pos_down_wait++;
if(cursor_pos_down_wait==10)
{
cursor_pos_down_wait=0;
}
}else{
cursor_pos_down_wait=0;
}
if(pad_read(PAD_TEST)!=PAD_ON){
test_off=1;
}
if(pad_read(PAD_TEST)==PAD_ON&&test_off==1){
if(count_wait==0){
count_wait=0;
switch(in_game_mode){
case 0:
use_check_bit++;
if(use_check_bit>0x1)
{
use_check_bit=0;
}
break;
case 1:
if(use_check_bit==1){
nvram_set_use_battery_check(0x80);
}else{
nvram_set_use_battery_check(0x00);
}
break;
case 2:
game_mode=3;
in_game_end=0;
break;
}
}
count_wait++;
}else{
count_wait=0;
}
GsDrawList();
while(GsIsDrawing());
display_is_old=0;
}
}
}
void util_nvram()
{
int cursor_pos_down_wait=0;
int title_end=1;
int test_clear=0;
char hex_temp[128];
unsigned char hex_temp2[8];
int i=0;
int in_game_mode=0;
button_clear();
while(title_end) {
if(display_is_old) {
DoubleBuffering();
ClearScreen();
button_update();
print_set_font_color(0xFF,0xFF,0xFF);
print_set_font_status(1,1);
print_str(30,20,8,"RTC TIME");
switch(in_game_mode){
case 0:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,90,8,"Set Time");
print_set_font_color(0xFF,0xFF,0xFF);
print_str(30,100,13,"Set Start_bit");
print_str(30,110,21,"Set Use_battery_check");
print_str(30,130,4,"EXIT");
break;
case 1:
print_set_font_color(0xFF,0xFF,0xFF);
print_str(30,90,8,"Set Time");
print_set_font_color(0xFF,0x00,0x00);
print_str(30,100,13,"Set Start_bit");
print_set_font_color(0xFF,0xFF,0xFF);
print_str(30,110,21,"Set Use_battery_check");
print_str(30,130,4,"EXIT");
break;
case 2:
print_set_font_color(0xFF,0xFF,0xFF);
print_str(30,90,8,"Set Time");
print_str(30,100,13,"Set Start_bit");
print_set_font_color(0xFF,0x00,0x00);
print_str(30,110,21,"Set Use_battery_check");
print_set_font_color(0xFF,0xFF,0xFF);
print_str(30,130,4,"EXIT");
break;
case 3:
print_set_font_color(0xFF,0xFF,0xFF);
print_str(30,90,8,"Set Time");
print_str(30,100,13,"Set Start_bit");
print_str(30,110,21,"Set Use_battery_check");
print_set_font_color(0xFF,0x00,0x00);
print_str(30,130,4,"EXIT");
print_set_font_color(0xFF,0xFF,0xFF);
break;
defalut:
break;
}
if(pushed_button_hold[2][2]==PAD_ON){
if(cursor_pos_down_wait==0)
{
if(in_game_mode!=3){
in_game_mode++;
}else{
in_game_mode=0;
}
}
cursor_pos_down_wait++;
if(cursor_pos_down_wait==10)
{
cursor_pos_down_wait=0;
}
}else{
cursor_pos_down_wait=0;
}
if(pad_read(PAD_TEST)!=PAD_ON){
test_clear=1;
}
if(pad_read(PAD_TEST)==PAD_ON&&test_clear==1){
switch(in_game_mode){
case 0:
//set_time
game_mode=4;
title_end=0;
break;
case 1:
//set_start
game_mode=5;
title_end=0;
break;
case 2:
//set_buttery
game_mode=6;
title_end=0;
break;
case 3:
game_mode=0;
title_end=0;
break;
}
}
sprintf( hex_temp, "%02x", nvram_get_year() );
print_str(30,40,2,hex_temp);
print_str(40,40,1,"/");
sprintf( hex_temp, "%02x", nvram_get_month() );
print_str(45,40,2,hex_temp);
print_str(55,40,1,"/");
sprintf( hex_temp, "%02x", nvram_get_date() );
print_str(60,40,2,hex_temp);
print_str(70,40,1,"-");
print_str(75, 40,4,get_day_of_the_week_char());
sprintf( hex_temp, "%02x", nvram_get_hour() );
print_str(160,40,2,hex_temp);
print_str(170,40,1,":");
sprintf( hex_temp, "%02x", nvram_get_minites());
print_str(175,40,2,hex_temp);
print_str(185,40,1,"-");
sprintf( hex_temp, "%02x", nvram_get_seconds());
print_str(190,40,2,hex_temp);
print_str(40,50,9,"STOP_BIT=");
print_int(90,50,nvram_get_stop_bit());
print_str(40,60,15,"battery_is_row=");
print_int(120,60, nvram_get_battery_is_row());
print_str(40, 70,18,"use_battery_check=");
print_int(135,70,nvram_get_use_battery_check());
nvram_regs_read(hex_temp2);
sprintf( hex_temp, "%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X", hex_temp2[0], hex_temp2[1], hex_temp2[2], hex_temp2[3], hex_temp2[4], hex_temp2[5], hex_temp2[6], hex_temp2[7]);
print_str(10,180,23,hex_temp);
GsDrawList();
while(GsIsDrawing());
display_is_old=0;
}
}
}

7
ksys573_rtc_util.h Normal file
View File

@ -0,0 +1,7 @@
#ifndef _KSYS573_RTC_UTIL_H
#define _KSYS573_RTC_UTIL_H
void util_nvram();
void set_battery();
void set_start();
void set_time();
#endif

119
ksys573_sio_check.c Normal file
View File

@ -0,0 +1,119 @@
#include "main.h"
void sio_check()
{
int cursor_pos_down_wait=0;
int count_wait=0;
int in_game_end=1;
int test_off=0;
int i=0;
int in_game_mode=0;
int is_init=0;
unsigned char temp_data=0;
int in_byte=0;
int out_byte=0;
button_clear();
unsigned short status=0;
char hex_temp[255];
//init
int ret=0;
while(in_game_end) {
if(display_is_old) {
DoubleBuffering();
ClearScreen();
button_update();
print_set_font_color(0xFF,0xFF,0xFF);
print_set_font_status(1,1);
print_str(30,20,9,"SIO CHECK");
print_str(30,40,13,"115200bps 8N1");
print_str(30,130,4,"EXIT");
switch(in_game_mode){
case 0:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,130,4,"EXIT");
print_set_font_color(0xFF,0xFF,0xFF);
break;
}
if(pushed_button_hold[2][2]==PAD_ON){
if(cursor_pos_down_wait==0)
{
if(in_game_mode!=0){
in_game_mode++;
}else{
in_game_mode=0;
}
}
cursor_pos_down_wait++;
if(cursor_pos_down_wait==10)
{
cursor_pos_down_wait=0;
}
}else{
cursor_pos_down_wait=0;
}
if(pad_read(PAD_TEST)!=PAD_ON){
test_off=1;
}
if(pad_read(PAD_TEST)==PAD_ON&&test_off==1){
if(count_wait==0){
count_wait=0;
switch(in_game_mode){
case 0:
game_mode=0;
in_game_end=0;
SIOStop();
break;
defalut:
break;
}
}
count_wait++;
}else{
count_wait=0;
}
//main util
if(is_init==0)
{
//SIOStart(115200);
SIOStart_Ksys573();
is_init=1;
for(i=0;i<26;i++){
ret=SIOSendByte_wait_txen((unsigned char)('A'+i),0xFFF);
}
SIOSendByte((unsigned char)'\n');
}
status=SIOSTATUS();
sprintf(hex_temp, "STATUS_%04x",status);
print_str(30,70,11,hex_temp);
out_byte=SIOCheckOutBuffer();
sprintf(hex_temp, "OUTBUF_%02x",out_byte);
print_str(30,80,9,hex_temp);
in_byte=SIOCheckInBuffer();
sprintf(hex_temp, "INBUF__%02x",in_byte);
print_str(30,90,9,hex_temp);
sprintf(hex_temp, "RET____%02x",ret);
print_str(30,100,9,hex_temp);
//SIOSendByte(0x41);
if(in_byte!=0)
{
temp_data=SIOReadByte();
SIOSendByte_wait_txen(temp_data,0xFF);
}
sprintf(hex_temp, "INDATA_%02x",temp_data);
print_str(30,110,9,hex_temp);
GsDrawList();
while(GsIsDrawing());
display_is_old=0;
}
}
}

5
ksys573_sio_check.h Normal file
View File

@ -0,0 +1,5 @@
#ifndef _KSYS573_SIO_CHECK_H
#define _KSYS573_SIO_CHECK_H
void sio_check();
#endif

231
main.c Normal file
View File

@ -0,0 +1,231 @@
#include "main.h"
#include "tim/game_res.h"
GsSprite sprite_game[2][12];
void load_sprite()
{
int i=0;
int j=0;
GsImageFromTim(&game_image,game_res);
GsUploadImage(&game_image);
for(j=0;j<2;j++)
{
for(i=0;i<12 ;i++){
GsSpriteFromImage(&sprite_game[j][i], &game_image, 1);
sprite_game[j][i].w = 16; sprite_game[j][i].h = 16;sprite_game[j][i].u =16*i; sprite_game[j][i].v = (16*j)+64;
}
}
}
void title()
{
int test_off=0;
int title_end=1;
int cursor_pos_down_wait=0;
int in_game_mode=0;
int in_game_mode_max=5;
int count_wait=0;
int i=0;
int j=0;
unsigned char temp[1];
while(title_end) {
if(display_is_old)
{
DoubleBuffering();
ClearScreen();
GsSortCls(0,0,0);
print_set_font_status(1,1);
print_set_font_color(0xFF,0xFF,0xFF);
print_str(30,20,14,"SYSTEM573 UTIL");
print_str(30,40,11,"INPUT CHECK");
print_str(30,50,18,"INPUT TIMING CHECK");
print_str(30,60,11,"FLASH CHECK");
print_str(30,70,9,"SIO CHECK");
print_str(30,80,8,"Util RTC");
print_str(30,90,4,"DUMP");
print_str(30,200,28,"SERVICE BUTTON : ITEM SELECT");
print_str(30,210,19,"TEST BUTTON : OK");
switch(in_game_mode){
case 0:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,40,11,"INPUT CHECK");
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 1:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,50,18,"INPUT TIMING CHECK");
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 2:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,60,11,"FLASH CHECK");
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 3:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,70,9,"SIO CHECK");
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 4:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,80,8,"Util RTC");
print_set_font_color(0xFF,0xFF,0xFF);
break;
case 5:
print_set_font_color(0xFF,0x00,0x00);
print_str(30,90,8,"DUMP");
print_set_font_color(0xFF,0xFF,0xFF);
break;
}
if(pad_read(PAD_SERVICE)==PAD_ON){
if(cursor_pos_down_wait==0)
{
if(in_game_mode!=in_game_mode_max){
in_game_mode++;
}else{
in_game_mode=0;
}
}
cursor_pos_down_wait++;
if(cursor_pos_down_wait==10)
{
cursor_pos_down_wait=0;
}
}else{
cursor_pos_down_wait=0;
}
if(pad_read(PAD_TEST)!=PAD_ON){
test_off=1;
}
if(pad_read(PAD_TEST)==PAD_ON&&test_off==1){
if(count_wait==0){
count_wait=0;
switch(in_game_mode){
case 0:
game_mode=1;
title_end=0;
break;
case 1:
game_mode=2;
title_end=0;
break;
case 2:
game_mode=7;
title_end=0;
break;
case 3:
game_mode=8;
title_end=0;
break;
case 4:
game_mode=3;
title_end=0;
break;
case 5:
game_mode=9;
title_end=0;
break;
}
}
count_wait++;
}else{
count_wait=0;
}
GsDrawList();
while(GsIsDrawing());
display_is_old=0;
}
}
}
int main() {
int i=0;
int j=0;
init_standard_psx_mode();
int v1 = 10, v2;
int* p = &v1;
game_mode=0;
load_font();
load_sprite();
while(1){
/*DoubleBuffering();
ClearScreen();
GsSortCls(128,128,128);
GsPrintFont(100,300,"test");
__asm {
mov ebx, p ; EBX
mov eax, [ebx] ; EAX *p
mov v2, eax ; EAX v2
mov [ebx], 100 ; 100 *p
}
for(j=0;j<6 ;j++){
for(i=0;i<16 ;i++){
sprite_font[i+(j*16)].x=(i*5)+10;
sprite_font[i+(j*16)].y=(8*j)+10;
GsSortSprite(&sprite_font[i+(j*16)]);
}
}
for(j=0;j<2 ;j++){
for(i=0;i<12 ;i++){
sprite_game[j][i].x=(i*16)+100;
sprite_game[j][i].y=(j*16)+10;
GsSortSprite(&sprite_game[j][i]);
}
}
GsDrawList();
while(GsIsDrawing());
display_is_old=0;*/
switch(game_mode)
{
case 0:
title();
break;
case 1:
input_check_1();
break;
case 2:
input_check_2();
break;
case 3:
util_nvram();
break;
case 4:
set_time();
break;
case 5:
set_start();
break;
case 6:
set_battery();
break;
case 7:
flash_check();
break;
case 8:
sio_check();
break;
case 9:
dump();
break;
default:
title();
break;
}
}
}

11
main.h Normal file
View File

@ -0,0 +1,11 @@
#ifndef _MAIN_H
#define _MAIN_H
#include <stdio.h>
#include <stdlib.h>
#include "ksys573.h"
#define MODE_TITLE = 0
#define MODE_GAME = 1
int game_mode;
GsImage game_image;
#endif

2
make_tim.bat Normal file
View File

@ -0,0 +1,2 @@
"bmp2tim game.bmp game.tim 16
mpink -org=0,0"

View File

@ -0,0 +1,212 @@
#include "ksys573_FLASH_MEM.h"
#include <psx.h>
#include <string.h>
unsigned char flash_mem_read_data(int deviceid,int address,int bank)
{
unsigned char ret_data[1];
char command[1];
char* control;
char* flash_bank;
ret_data[0]=0x00;
control=(char*)FLASH_MEM_SELECT_DEVICE;
flash_bank=(char*)FLASH_MEM_BASE;
control[0]=deviceid+bank;
memcpy(ret_data,flash_bank+address,sizeof(char)*1);
return ret_data[0];
}
void wait(long count)
{
long i=0;
int stop=0;
while(stop==0)
{
i++;
if(i>count)
{
stop=1;
}
}
}
void flash_mem_reset(int deviceid,int bank)
{
char* control;
char* flash_bank;
short* raw_mem;
control=(char*)FLASH_MEM_SELECT_DEVICE;
flash_bank=(char*)FLASH_MEM_BASE;
control[0]=deviceid+bank;
raw_mem=(short*)flash_bank;
switch(deviceid)
{
case ONBOARD:
case PCCARD1:
case PCCARD2:
//fujitsu
raw_mem[0]=0xF0F0;
//intel
while(GsIsDrawing());
raw_mem[0]=0xFFFF;
break;
}
}
void flash_mem_erase(int deviceid,int sector,int bank)
{
unsigned char ref_data1=0x00;
unsigned char ref_data2=0x00;
int is_clear=0x00;
char* control;
char* flash_bank;
short* raw_mem;
short* raw_mem_AAA;
short* raw_mem_554;
short* raw_mem_sector;
unsigned int address_sector=0x00;
control=(char*)FLASH_MEM_SELECT_DEVICE;
flash_bank=(char*)FLASH_MEM_BASE;
control[0]=deviceid+bank;
raw_mem=(short*)(flash_bank);
switch(deviceid)
{
case ONBOARD:
case PCCARD1:
case PCCARD2:
flash_mem_autoselect(deviceid,bank);
if(flash_mem_read_data(deviceid,0,bank)==0x04)
{
//fujitsu
flash_mem_reset(deviceid,bank);
address_sector=sector<<17;
raw_mem_AAA=(short*)(0xAAA+flash_bank);
raw_mem_554=(short*)(0x554+flash_bank);
raw_mem_sector=(short*)(flash_bank+address_sector);
raw_mem_AAA[0]=0xAAAA;
raw_mem_554[0]=0x5555;
while(GsIsDrawing());
raw_mem_AAA[0]=0x8080;
while(GsIsDrawing());
raw_mem_AAA[0]=0xAAAA;
while(GsIsDrawing());
raw_mem_554[0]=0x5555;
raw_mem_sector[0]=0x3030;
while(GsIsDrawing());
while(is_clear==0)
{
ref_data1=flash_mem_read_data(deviceid,(sector*0x20000),bank);
ref_data2=flash_mem_read_data(deviceid,(sector*0x20000)+1,bank);
while(GsIsDrawing());
if(ref_data1==0xFF&&ref_data2==0xFF)
{
is_clear=1;
}
}
}
if(flash_mem_read_data(deviceid,0,bank)==0x89)
{
//intel
flash_mem_reset(deviceid,bank);
raw_mem[sector*0x10000]=0xFFFF;
while(GsIsDrawing());
raw_mem[sector*0x10000]=0x2020;
while(GsIsDrawing());
raw_mem[sector*0x10000]=0xD0D0;
while(GsIsDrawing());
while(is_clear==0)
{
ref_data1=flash_mem_read_data(deviceid,(sector*0x10000),bank);
ref_data2=flash_mem_read_data(deviceid,(sector*0x10000)+1,bank);
while(GsIsDrawing());
if(ref_data1==0x80&&ref_data2==0x80)
{
is_clear=1;
}
}
}
break;
}
flash_mem_reset(deviceid,bank);
}
void flash_mem_autoselect(int deviceid,int bank)
{
char* control;
char* flash_bank;
short* raw_mem_AAA;
short* raw_mem_554;
control=(char*)FLASH_MEM_SELECT_DEVICE;
flash_bank=(char*)FLASH_MEM_BASE;
control[0]=deviceid+bank;
raw_mem_AAA=(short*)(0xAAA+flash_bank);
raw_mem_554=(short*)(0x554+flash_bank);
switch(deviceid)
{
case ONBOARD:
case PCCARD1:
case PCCARD2:
raw_mem_AAA[0]=0xAAAA;
raw_mem_554[0]=0x5555;
while(GsIsDrawing());
raw_mem_AAA[0]=0x9090;
while(GsIsDrawing());
break;
}
}
void flash_mem_write_data(int deviceid,int address,int bank,unsigned char data1,unsigned char data2)
{
char* control;
char* flash_bank;
short write_data;
short* raw_mem;
short* raw_mem_AAA;
short* raw_mem_554;
write_data=(data2<<8)+data1;
control=(char*)FLASH_MEM_SELECT_DEVICE;
flash_bank=(char*)FLASH_MEM_BASE;
control[0]=deviceid+bank;
raw_mem=(short*)(flash_bank);
switch(deviceid)
{
case ONBOARD:
case PCCARD1:
case PCCARD2:
flash_mem_autoselect(deviceid,bank);
if(flash_mem_read_data(deviceid,0,bank)==0x04)
{
//fujitsu
flash_mem_reset(deviceid,bank);
raw_mem_AAA=(short*)(0xAAA+flash_bank);
raw_mem_554=(short*)(0x554+flash_bank);
raw_mem_AAA[0]=0xAAAA;
raw_mem_554[0]=0x5555;
while(GsIsDrawing());
raw_mem_AAA[0]=0xA0A0;
raw_mem[address/2]=write_data;
while(GsIsDrawing());
while(GsIsDrawing());
}
if(flash_mem_read_data(deviceid,0,bank)==0x89)
{
//intel
flash_mem_reset(deviceid,bank);
raw_mem[address/2]=0xFFFF;
while(GsIsDrawing());
raw_mem[address/2]=0x5050;
while(GsIsDrawing());
raw_mem[address/2]=0x4040;
while(GsIsDrawing());
raw_mem[address/2]=write_data;
while(GsIsDrawing());
while(GsIsDrawing());
}
break;
}
flash_mem_reset(deviceid,bank);
}

View File

@ -0,0 +1,16 @@
#ifndef _KSYS573_FLASH_MEM_H
#define _KSYS573_FLASH_MEM_H
#define FLASH_MEM_BASE 0x1f000000
#define FLASH_MEM_SELECT_DEVICE 0x1f500000
#define ONBOARD 0x40
#define PCCARD1 0x10
#define PCCARD2 0x60
unsigned char flash_mem_read_data(int deviceid,int address,int bank);
void flash_mem_write_data(int deviceid,int address,int bank,unsigned char data1,unsigned char data2);
void flash_mem_reset(int deviceid,int bank);
void flash_mem_autoselect(int deviceid,int bank);
void flash_mem_erase(int deviceid,int sector,int bank);
#endif

View File

@ -0,0 +1,357 @@
#include "ksys573_nvram.h"
#include <psx.h>
unsigned char nvram_read_byte(unsigned int address)
{
unsigned char temp[1];
temp[0]=0x00;
if(address<=NVRAM_MAX){
memcpy(temp,NVRAM+(address*2),1);
}
return temp[0];
}
void nvram_write_byte(unsigned int address,unsigned char data)
{
unsigned char temp[1];
temp[0]=data;
if(address<=NVRAM_MAX){
memcpy(NVRAM+(address*2),temp,1);
}
}
int nvram_read(unsigned char *buf,int offset,int length)
{
int i=0;
int index=0;
if(offset+length<=NVRAM_MAX){
for(i=0;i<length;i++){
memcpy(buf+i,(NVRAM+(offset*2))+index,1);
index=index+2;
}
return 0;
}else{
return 1;
}
}
int nvram_write(unsigned char *buf,int offset,int length)
{
int i=0;
int index=0;
if(offset+length<=NVRAM_MAX){
for(i=0;i<length;i++){
memcpy((NVRAM+(offset*2))+index,buf+i,1);
index=index+2;
}
return 0;
}else{
return 1;
}
}
int nvram_regs_read(unsigned char* buf)
{
int i=0;
int index=0;
int offset = 0x1FF8;
char* nvram_raw;
//nvram_read_bit_is_on();
for(i=0;i<8;i++){
memcpy(buf+i,(NVRAM+(offset*2))+index,1);
index=index+2;
}
//nvram_read_bit_is_off();
return 0;
}
int nvram_regs_write(unsigned char* buf)
{
int i=0;
int index=0;
int offset = 0x1FF8;
unsigned char temp;
temp = buf[6]&0x1F;
buf[6]=temp;
temp=buf[4]&0x77;
buf[4]=temp;
temp=buf[3]&0x3f;
buf[3]=temp;
temp=buf[2]&0x7f;
buf[2]=temp;
nvram_write_bit_is_on();
for(i=0;i<8;i++){
memcpy((NVRAM+(offset*2))+index,buf+i,1);
index=index+2;
}
nvram_write_bit_is_off();
return 0;
}
int nvram_set_year(unsigned char ch){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
buf[7]=ch;
nvram_regs_write(buf);
free(buf);
return 0;
}
int nvram_get_year(){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
int ret= buf[7];
free(buf);
return ret;
}
int nvram_set_month(unsigned char ch){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
buf[6]=ch;
nvram_regs_write(buf);
free(buf);
return 0;
}
int nvram_get_month(){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
int ret= buf[6];
free(buf);
return ret;
}
int nvram_set_date(unsigned char ch){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
unsigned char tmp;
tmp=buf[5]&0xC0;
buf[5]=tmp|ch;
free(buf);
return 0;
}
int nvram_get_date(){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
int ret= buf[5]&0x3f;
free(buf);
return ret;
}
int nvram_get_battery_is_row(){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
int ret=buf[5]&0x40;
free(buf);
return ret;
}
int nvram_set_use_battery_check(unsigned char ch){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
unsigned char tmp;
tmp=buf[5]&0x7F;
buf[5]=tmp|ch;
nvram_regs_write(buf);
free(buf);
return 0;
}
int nvram_get_use_battery_check(){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
int ret=buf[5]&0x80;
free(buf);
return ret;
}
int nvram_set_day_of_the_week(unsigned char ch){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
unsigned char tmp;
tmp=buf[4]&0xF8;
buf[4]=tmp|ch;
nvram_regs_write(buf);
free(buf);
return 0;
}
int nvram_get_day_of_the_week(){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
int ret=buf[4]&0x07;
free(buf);
return ret;
}
int nvram_set_hour(unsigned char ch){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
buf[3]=ch;
nvram_regs_write(buf);
free(buf);
return 0;
}
int nvram_get_hour(){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
int ret=buf[3];
free(buf);
return ret;
}
int nvram_set_minites(unsigned char ch){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
buf[2]=ch;
nvram_regs_write(buf);
free(buf);
return 0;
}
int nvram_get_minites(){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
int ret=buf[2];
free(buf);
return ret;
}
int nvram_set_seconds(unsigned char ch){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
unsigned char tmp;
tmp=buf[1]&0x80;
buf[1]=tmp|ch;
nvram_regs_write(buf);
free(buf);
return 0;
}
int nvram_get_seconds(){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
int ret=buf[1]&0x7f;
free(buf);
return ret;
}
int nvram_set_stop_bit(unsigned char ch){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
unsigned char tmp;
tmp=buf[1]&0x7f;
buf[1]=tmp|ch;
nvram_regs_write(buf);
free(buf);
return 0;
}
int nvram_get_stop_bit(){
unsigned char* buf;
buf=(unsigned char*)malloc(8);
nvram_regs_read(buf);
int ret=buf[1]&0x80;
free(buf);
return ret;
}
int nvram_read_bit_is_on()
{
int offset = 0x1FF8;
unsigned char buf[1];
unsigned char temp;
memcpy(buf,(NVRAM+(offset*2)),1);
temp=buf[0]&0xBF;
buf[0]=temp|0x40;
memcpy(NVRAM+(offset*2),0x40,1);
return 0;
}
int nvram_read_bit_is_off()
{
int offset = 0x1FF8;
unsigned char buf[1];
unsigned char temp;
memcpy(buf,(NVRAM+(offset*2)),1);
temp=buf[0]&0xBF;
buf[0]=temp|0x00;
memcpy(NVRAM+(offset*2),0x40,1);
return 0;
}
int nvram_write_bit_is_on()
{
int offset = 0x1FF8;
unsigned char buf[1];
unsigned char temp;
memcpy(buf,(NVRAM+(offset*2)),1);
temp=buf[0]&0x7f;
buf[0]=temp|0x80;
memcpy(NVRAM+(offset*2),0x40,1);
return 0;
}
int nvram_write_bit_is_off()
{
int offset = 0x1FF8;
unsigned char buf[1];
unsigned char temp;
memcpy(buf,(NVRAM+(offset*2)),1);
temp=buf[0]&0x7f;
buf[0]=temp|0x00;
memcpy(NVRAM+(offset*2),0x40,1);
return 0;
}
char* get_day_of_the_week_char(){
switch(nvram_get_day_of_the_week())
{
case 1:
return "Sun.";
break;
case 2:
return "Mon.";
break;
case 3:
return "Tue.";
break;
case 4:
return "Wed.";
break;
case 5:
return "Thu.";
break;
case 6:
return "Fri.";
break;
case 7:
return "Sat.";
break;
default:
return "NULL";
break;
}
}
char* get_day_of_the_week_from_int(int in){
switch(in)
{
case 1:
return "Sun.";
break;
case 2:
return "Mon.";
break;
case 3:
return "Tue.";
break;
case 4:
return "Wed.";
break;
case 5:
return "Thu.";
break;
case 6:
return "Fri";
break;
case 7:
return "Sat.";
break;
default:
return "NULL";
break;
}
}

View File

@ -0,0 +1,41 @@
#ifndef _KSYS573_NVRAM_H
#define _KSYS573_NVRAM_H
/*
m48t58
0x00->0x2000
*/
/* nvram_address. */
#define NVRAM 0x1f620000
#define NVRAM_MAX 0x2000
unsigned char nvram_read_byte(unsigned int address);
void nvram_write_byte(unsigned int address,unsigned char data);
int nvram_read();
int nvram_write();
int nvram_regs_read(unsigned char* buf);
int nvram_regs_write(unsigned char* buf);
int nvram_set_year(unsigned char);
int nvram_get_year();
int nvram_set_month(unsigned char);
int nvram_get_month();
int nvram_set_date(unsigned char);
int nvram_get_date();
int nvram_get_battery_is_row();
int nvram_set_use_battery_check(unsigned char);
int nvram_get_use_battery_check();
int nvram_set_day_of_the_week(unsigned char);
int nvram_get_day_of_the_week();
int nvram_set_hour(unsigned char);
int nvram_get_hour();
int nvram_set_minites(unsigned char);
int nvram_get_minites();
int nvram_set_seconds(unsigned char);
int nvram_get_seconds();
int nvram_set_stop_bit(unsigned char);
int nvram_get_stop_bit();
int nvram_read_bit_is_on();
int nvram_read_bit_is_off();
int nvram_write_bit_is_on();
int nvram_write_bit_is_off();
char* get_day_of_the_week_char();
char* get_day_of_the_week_from_int();
#endif

120
system573_lib/ksys573_pad.c Normal file
View File

@ -0,0 +1,120 @@
#include "ksys573_pad.h"
#include <psx.h>
void button_clear(){
int i=0;
int j=0;
for(i=0;i<player_num;i++)
{
for(j=0;j<button_num;j++)
{
pushed_button[i][j]=0x00;
pushed_button_old[i][j]=0x00;
pushed_button_hold[i][j]=0x00;
}
}
}
void button_update(){
int i=0;
int j=0;
pushed_button[0][0]=pad_read(PAD_1P_START);
pushed_button[0][1]=pad_read(PAD_1P_UP);
pushed_button[0][2]=pad_read(PAD_1P_DOWN);
pushed_button[0][3]=pad_read(PAD_1P_LEFT);
pushed_button[0][4]=pad_read(PAD_1P_RIGHT);
pushed_button[0][5]=pad_read(PAD_1P_BUTTON1);
pushed_button[0][6]=pad_read(PAD_1P_BUTTON2);
pushed_button[0][7]=pad_read(PAD_1P_BUTTON3);
pushed_button[0][8]=pad_read(PAD_1P_BUTTON4);
pushed_button[0][9]=pad_read(PAD_1P_BUTTON5);
pushed_button[0][10]=pad_read(PAD_1P_BUTTON6);
pushed_button[1][0]=pad_read(PAD_2P_START);
pushed_button[1][1]=pad_read(PAD_2P_UP);
pushed_button[1][2]=pad_read(PAD_2P_DOWN);
pushed_button[1][3]=pad_read(PAD_2P_LEFT);
pushed_button[1][4]=pad_read(PAD_2P_RIGHT);
pushed_button[1][5]=pad_read(PAD_2P_BUTTON1);
pushed_button[1][6]=pad_read(PAD_2P_BUTTON2);
pushed_button[1][7]=pad_read(PAD_2P_BUTTON3);
pushed_button[1][8]=pad_read(PAD_2P_BUTTON4);
pushed_button[1][9]=pad_read(PAD_2P_BUTTON5);
pushed_button[1][10]=pad_read(PAD_2P_BUTTON6);
pushed_button[2][0]=pad_read(PAD_COIN1);
pushed_button[2][1]=pad_read(PAD_COIN2);
pushed_button[2][2]=pad_read(PAD_SERVICE);
pushed_button[2][3]=pad_read(PAD_TEST);
pushed_button[2][4]=pad_read(PAD_DIP1);
pushed_button[2][5]=pad_read(PAD_DIP2);
pushed_button[2][6]=pad_read(PAD_DIP3);
pushed_button[2][7]=pad_read(PAD_DIP4);
pushed_button[2][8]=pad_read(PAD_PCCARD1);
pushed_button[2][9]=pad_read(PAD_PCCARD2);
pushed_button[2][10]=PAD_OFF;
for(i=0;i<player_num;i++)
{
for(j=0;j<button_num;j++)
{
pushed_button_hold[i][j]=PAD_OFF;
if(pushed_button_old[i][j]==PAD_ON&&pushed_button[i][j]==PAD_ON){
pushed_button_hold[i][j]=PAD_ON;
}
}
}
memcpy(pushed_button_old,pushed_button,button_num*player_num);
}
int pad_read(int pad_bit)
{
int *pad_state;
int ret=PAD_OFF;
switch(pad_bit&0x000F0000)
{
case 0x00010000:
//GsPrintFont(0, 30, "pad_bit:IN1");
pad_state=(int*)IN1;
break;
case 0x00020000:
//GsPrintFont(0, 30, "pad_bit:IN2");
pad_state=(int*)IN2;
break;
case 0x00040000:
//GsPrintFont(0, 30, "pad_bit:IN3");
pad_state=(int*)IN3;
break;
default:
ret=-1;
break;
}
if(ret==PAD_OFF)
{
//GsPrintFont(0, 40, "pad_bit:%x",*pad_state);
ret=(*pad_state&(pad_bit&0xFFF0FFFF));
}
return ret;
}
int pad_read_raw_in1()
{
int *pad_state;
pad_state=(int*)IN1;
return *pad_state;
}
int pad_read_raw_in2()
{
int *pad_state;
pad_state=(int*)IN2;
return *pad_state;
}
int pad_read_raw_in3()
{
int *pad_state;
pad_state=(int*)IN3;
return *pad_state;
}

View File

@ -0,0 +1,61 @@
#ifndef _KSYS573_PAD_H
#define _KSYS573_PAD_H
#define button_num 11
#define player_num 3
/* jamma_pad. */
#define IN1 0x1f400004
#define IN2 0x1f400008
#define IN3 0x1f40000C
/* IN1 */
#define PAD_ON 0x0
#define PAD_OFF 0x1
#define PAD_DIP1 0x00010001
#define PAD_DIP2 0x00010002
#define PAD_DIP3 0x00010004
#define PAD_DIP4 0x00010008
#define PAD_COIN1 0x01010000
#define PAD_COIN2 0x02010000
#define PAD_PCCARD1 0x04010000
#define PAD_PCCARD2 0x08010000
#define PAD_SERVICE 0x10010000
/* IN2 */
#define PAD_1P_LEFT 0x00020100
#define PAD_1P_RIGHT 0x00020200
#define PAD_1P_UP 0x00020400
#define PAD_1P_DOWN 0x00020800
#define PAD_1P_BUTTON1 0x00021000
#define PAD_1P_BUTTON2 0x00022000
#define PAD_1P_BUTTON3 0x00024000
#define PAD_1P_START 0x00028000
#define PAD_2P_LEFT 0x00020001
#define PAD_2P_RIGHT 0x00020002
#define PAD_2P_UP 0x00020004
#define PAD_2P_DOWN 0x00020008
#define PAD_2P_BUTTON1 0x00020010
#define PAD_2P_BUTTON2 0x00020020
#define PAD_2P_BUTTON3 0x00020040
#define PAD_2P_START 0x00020080
/* IN3 */
#define PAD_1P_BUTTON4 0x00040100
#define PAD_1P_BUTTON5 0x00040200
#define PAD_TEST 0x00040400
#define PAD_1P_BUTTON6 0x00040800
#define PAD_2P_BUTTON4 0x01040000
#define PAD_2P_BUTTON5 0x02040000
#define PAD_2P_BUTTON6 0x08040000
unsigned int pushed_button[player_num][button_num];
unsigned int pushed_button_old[player_num][button_num];
unsigned int pushed_button_hold[player_num][button_num];
void button_clear();
void button_update();
int pad_read(int pad_bit);
int pad_read_raw_in1();
int pad_read_raw_in2();
int pad_read_raw_in3();
#endif

View File

@ -0,0 +1,64 @@
#include "ksys573_psx_gpu.h"
#include <psx.h>
void init_standard_psx_mode(){
GsInit();
GsClearMem();
GsSetVideoMode(320, 240,VMODE_NTSC);
game_dispenv.x=0;
game_dispenv.y=0;
GsSetDispEnv(&game_dispenv);
game_drawenv.x=0;
game_drawenv.y=0;
game_drawenv.w=320;
game_drawenv.h=240;
game_drawenv.draw_on_display=1;
game_drawenv.ignore_mask=0;
game_drawenv.dither=0;
game_drawenv.set_mask=0;
GsSetDrawEnv(&game_drawenv);
GsLoadFont(768, 0, 768, 256);
GsSetList(prim_list);
SetVBlankHandler(prog_vblank_handler);
frame_counter=0;
display_is_old=1;
wachdog=(int*)0x1f5c0000;
}
void prog_vblank_handler() {
display_is_old = 1;
frame_counter++;
if(frame_counter==120)
{
frame_counter=0;
}
}
void ClearScreen(){
GsRectangle gs_rect;
gs_rect.x = 0;
gs_rect.y = 0;
gs_rect.w = 320;
gs_rect.h = 240;
gs_rect.r = 0;
gs_rect.g = 0;
gs_rect.b = 0;
gs_rect.attribute = 0;
GsSortRectangle(&gs_rect);
}
void DoubleBuffering(){
if(game_dispenv.y == 0)
{
game_dispenv.y = 256;
game_drawenv.y = 0;
}
else
{
game_dispenv.y = 0;
game_drawenv.y = 256;
}
*wachdog=0x0;
GsSetDispEnv(&game_dispenv);
GsSetDrawEnv(&game_drawenv);
}

View File

@ -0,0 +1,17 @@
#ifndef _KSYS573_PSX_GPU_H
#define _KSYS573_PSX_GPU_H
#include <psx.h>
unsigned int prim_list[0x4000];
int *wachdog;
volatile int display_is_old;
volatile int frame_counter;
GsDispEnv game_dispenv;
GsDrawEnv game_drawenv;
void init_standard_psx_mode();
void prog_vblank_handler();
void ClearScreen();
void DoubleBuffering();
#endif

View File

@ -0,0 +1,20 @@
#ifndef _KSYS573_PAD_H
#define _KSYS573_PAD_H
/* IN1 */
#define IN1 0x1f400004
#define READ_LINE_DS2401 0x00004000
#define READ_LINE_SECFLASH_SDA 0x00040000
/* OUT1 */
#define WRITE_LINE_D0 0x00000001
#define WRITE_LINE_D1 0x00000002
#define WRITE_LINE_D2 0x00000004
#define WRITE_LINE_D3 0x00000008
#define WRITE_LINE_D4 0x00000010
#define WRITE_LINE_D5 0x00000020
#define WRITE_LINE_D6 0x00000040
#define WRITE_LINE_D7 0x00000080
/* OUT2 */
#define WRITE_LINE_ZS01_SDA 0x00000040
#endif

103
system573_lib/ksys573_sio.c Normal file
View File

@ -0,0 +1,103 @@
/*
* SIO communication library for PSXSDK.
* Originally written by Shendo.
* Thanks to Martin Korth of the NO$PSX for documentation.
*
* This library is accessing SIO registers directly, no BIOS routines are used.
*/
#include <psx.h>
#include "ksys573_sio.h"
#include <stdio.h>
#include "ksys573_psx_gpu.h"
void SIOStart(int bitrate)
{
/*Set to 8N1 mode with desired bitrate*/
SIOStartEx(bitrate, SIO_DATA_LEN_8, SIO_PARITY_NONE, SIO_STOP_BIT_1);
}
void SIOStartEx(int bitrate, int datalength, int parity, int stopbit)
{
/*Set SIO_MODE register, bitrate reload factor set to MUL16 by default*/
SIO_MODE = SIO_REL_MUL16 | (datalength << 2) | (parity << 4) | (stopbit << 6);
/*Reset SIO_CTRL register.*/
SIO_CTRL = 0;
/*Set TX and RT to enabled, no handshaking signals.*/
SIO_CTRL = 1 | (1 << 2);
/*Calculate bitrate reload value based on the given bitrate
* Reload = SystemClock (33 Mhz) / (Factor (MULI16) * bitrate)*/
SIO_BPSV = 0x204CC00 / (16 * bitrate);
}
void SIOStop()
{
/*Set all SIO related registers to zero*/
SIO_MODE = 0;
SIO_CTRL = 0;
SIO_BPSV = 0;
}
unsigned char SIOReadByte()
{
return (unsigned char)SIO_TX_RX;
}
void SIOSendByte(unsigned char data)
{
SIO_TX_RX = data;
}
int SIOSendByte_wait_txen(unsigned char data,int timeout)
{
int ret =0;
//ksys573_psx_gpuにも定義してるが初期化してるとは限らないため。
int * wachdog_=(int*)0x1f5c0000;
if(timeout<100)
{
timeout=100;
}
while(SIOCheckOutBuffer()!=1){
ret++;
if(ret==timeout)
{
break;
}
*wachdog_=0x0;
}
if(ret!=timeout)
{
SIO_TX_RX = data;
}else
{
ret=-1;
}
return ret;
}
int SIOCheckInBuffer()
{
/*Return status of RX FIFO*/
return (SIO_STAT & 0x2)>0;
}
int SIOCheckOutBuffer()
{
/*Return status of TX Ready flag*/
return (SIO_STAT & 0x4)>0;
}
void SIOStart_Ksys573()
{
/*Set all SIO related registers to zero*/
SIO_MODE = 0x004e;
SIO_CTRL = 0x0c37;
SIO_BPSV = 0x0012;
}
unsigned short SIOSTATUS()
{
unsigned short temp=SIO_STAT;
return temp;
}

123
system573_lib/ksys573_sio.h Normal file
View File

@ -0,0 +1,123 @@
#ifndef _KSYS573_SIO_H
#define _KSYS573_SIO_H
/** Bitrate reload factors */
enum sio_reload_factors
{
/** STOP */
SIO_REL_STOP = 0,
/** MUL1 */
SIO_REL_MUL1 = 1,
/** MUL16 */
SIO_REL_MUL16 = 2,
/** MUL64 */
SIO_REL_MUL64 = 3
};
/** Character (data) length settings */
enum sio_data_len
{
/** Data Length = 5 bits */
SIO_DATA_LEN_5 = 0,
/** Data Length = 6 bits */
SIO_DATA_LEN_6 = 1,
/** Data Length = 7 bits */
SIO_DATA_LEN_7 = 2,
/** Data Length = 8 bits */
SIO_DATA_LEN_8 = 3
};
/** Stop bit length settings */
enum sio_stop_bit
{
/** Length = 1 bit */
SIO_STOP_BIT_1 = 1,
/** Length = 1.5 bits */
SIO_STOP_BIT_1_5 = 2,
/** Length = 2 bits */
SIO_STOP_BIT_2 = 3
};
/** Parity settings */
enum sio_parity
{
/** No parity */
SIO_PARITY_NONE = 0,
/** Odd parity */
SIO_PARITY_ODD = 1,
/** Even parity */
SIO_PARITY_EVEN = 3
};
/** SIO FIFO Buffer (TX/RX) Register [Read/Write] */
#define SIO_TX_RX *((volatile unsigned char*)0x1F801050)
/** SIO Status Register [Read Only] */
#define SIO_STAT *((volatile unsigned short*)0x1F801054)
/** SIO Mode Register [Read/Write] */
#define SIO_MODE *((volatile unsigned short*)0x1F801058)
/** SIO Control Register [Read/Write] */
#define SIO_CTRL *((volatile unsigned short*)0x1F80105A)
/** SIO Baud Rate Register [Read/Write] */
#define SIO_BPSV *((volatile unsigned short*)0x1F80105E)
/**
* Initialize SIO communication at the specified bitrate (baud rate).
* Mode is 8N1. (Data Length = 8 bit, No parity, Stop bit Length = 1 bit)
* @param bitrate Bitrate (baud rate)
*/
void SIOStart(int bitrate);
/**
* Same as SIOStart() but with more control.
* IMPORTANT: Must use defined macros.
* For example setting datalength to 5 should be done with "SIO_DATA_LEN_5"
* and not by simply passing 5 as an argument.
*
* @param bitrate Bit rate (baud rate)
* @param datalength Character (data) length
* @param parity Parity
* @param stopbit Stop bit length
*/
void SIOStartEx(int bitrate, int datalength, int parity, int stopbit);
/**
* Shuts down SIO communication.
*/
void SIOStop(void);
/**
* Read a single byte from the input buffer.
* @return Data byte from input buffer
*/
unsigned char SIOReadByte(void);
/**
* Send a single byte to the output buffer.
* @param data Byte to send
*/
void SIOSendByte(unsigned char data);
/**
* Check if any data is waiting in the input buffer.
* Must be used when fetching data otherwise incorrect data could be read (usually 0x00).
* @return Non-zero if there is data waiting in the input buffer, zero otherwise.
*/
int SIOCheckInBuffer(void);
/**
* Check if port is ready to send data (previous operation finished).
* Must be used when sending data as the output buffer is only 2 bytes long.
* @return Non-zero if port is ready to send data, zero otherwise.
*/
int SIOCheckOutBuffer(void);
unsigned short SIOSTATUS(void);
void SIOtest(void);
int SIOSendByte_wait_txen(unsigned char data,int timeout);
#endif

View File

@ -0,0 +1,23 @@
#include "ksys573_timer.h"
#include <psx.h>
void set_timer(int id,int mode)
{
}
void start_timer(int id)
{
}
int get_timer_count(int id)
{
}
int get_timer_irq(int id)
{
}
void interrupt set_timer_ms(){
}

View File

@ -0,0 +1,45 @@
#ifndef _KSYS573_TIMER_H
#define _KSYS573_TIMER_H
// 33,868 Mhz = 44100 * 256 * 3
/* Timer0. */
#define TIMER0_VAL 0x1f801100
#define TIMER0_MODE 0x1f801104
#define TIMER0_LAST_VAL 0x1f801108
/* Timer1. */
#define TIMER0_VAL 0x1f801110
#define TIMER0_MODE 0x1f801114
#define TIMER0_LAST_VAL 0x1f801118
/* Timer2. */
#define TIMER0_VAL 0x1f801120
#define TIMER0_MODE 0x1f801124
#define TIMER0_LAST_VAL 0x1f801128
/* Timer_mode. */
#define COUNTER_ENABLE 0x0001
#define LAST_VAL_ENABLE 0x0008
#define INTERRUPT_ENABLE 0x0010
//Only timer0 and timer1
//timer0
//Sync ?
//timer1
//Sync H_BLANK
#define COUNTER_MODE 0x0100
//Only timer2
//1/8
#define COUNTER_PLL 0x0200
#define IRQ_TIMER_REGISTER 0x1f801070
#define IRQ_TIMER_0_ENABLE 0xf0000010
#define IRQ_TIMER_1_ENABLE 0xf0000020
#define IRQ_TIMER_2_ENABLE 0xf0000040
#define IRQ_TIMER_MASK_REGISTER 0x1f801074
void set_timer(int id,int mode);
void start_timer(int id);
int get_timer_count(int id);
int get_timer_irq(int id);
#endif

389
tim/font.h Normal file
View File

@ -0,0 +1,389 @@
char font[]=
{
0x10,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x0C,0x18,0x00,0x00,0x40,0x01,0x00,0x00,
0x40,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,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,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,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,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,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,0x7F,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,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,0x7F,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
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,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
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,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,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,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,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,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,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,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,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,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,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,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,
0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x00,0x00,0x00,0x00,0xFF,0x7F,
0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00
};

47
tim/font_num.h Normal file
View File

@ -0,0 +1,47 @@
char font_num[]=
{
0x10,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0xAC,0x02,0x00,0x00,0x40,0x01,0x00,0x00,
0x30,0x00,0x07,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x00
};

773
tim/game_res.h Normal file
View File

@ -0,0 +1,773 @@
char game_res[]=
{
0x10,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x0C,0x30,0x00,0x00,0x40,0x01,0x40,0x00,
0xC0,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x1F,0x00,0x00,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x7C,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x7C,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x7C,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x7C,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,
0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x1F,0x00,0x00,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0x00,0x7C,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,
0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x7C,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,
0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x7C,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x00,
0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x00,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x7C,
0x1F,0x00,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,
0x00,0x00,0x1F,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x7C,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x00,0x00,0x7C,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x1F,0x00,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x00,0x00,0x7C,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,
0x00,0x00,0x1F,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x7C,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x00,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x7C,
0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x1F,0x00,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x7C,
0x1F,0x00,0x00,0x80,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x00,
0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x7C,0x1F,0x00,
0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,0x1F,0x00,
0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x80,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x00,0x7C,
0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x7C,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0x00,0x7C,0x1F,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x7C,0x00,0x00,
0x1F,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0x80
};