/*******************************************************************/
/* 各キャラクタの設定・表示部 (chara.h)                            */
/* void screen_init(void):画面の初期設定                           */
/* void screen_clear(void):画面の全消去                            */
/* int chr_set(void):キャラクタのセット                            */
/* void back_write(int chr_no):背景のキャラクタセット及び表示      */
/* void chr_write(chr_fmt far *chr_dat, int w_flag):キャラクタ表示 */
/* void num_write(int num, int w_flag):数字の表示                  */
/* void time_write(void):時刻の表示                                */
/* void all_chr_write(void):全キャラクタの表示                     */
/* void display_init(void):表示関連の初期設定                      */
/*******************************************************************/

#ifndef _CHARA_H_
#define _CHARA_H_

#include <sys/bios.h>
#include <stdlib.h>


/* 各キャラクタの情報 */
/*   プレイヤー */
#define PLY_SIZE_X 3 /* X方向のサイズ */
#define PLY_SIZE_Y 4 /* Y方向のサイズ */
#define PLY_SIZE (PLY_SIZE_X * PLY_SIZE_Y) /* 全体のサイズ */
#define PLY_COUNT 5 /* 定義キャラクタ数 */

/*   風船 */
#define OBJ_SIZE_X 1 /* X方向のサイズ */
#define OBJ_SIZE_Y 2 /* Y方向のサイズ */
#define OBJ_SIZE (OBJ_SIZE_X * OBJ_SIZE_Y) /* 全体のサイズ */
#define OBJ_COUNT 6 /* 定義キャラクタ数 */

/*   アラームキャラクタ */
#define ALM_SIZE_X 4 /* X方向のサイズ */
#define ALM_SIZE_Y 4 /* Y方向のサイズ */
#define ALM_SIZE (ALM_SIZE_X * ALM_SIZE_Y) /* 全体のサイズ */
#define ALM_COUNT 4 /* 定義キャラクタ数 */

/*   数字 */
#define NUM_SIZE_X 2 /* X方向のサイズ */
#define NUM_SIZE_Y 3 /* Y方向のサイズ */
#define NUM_SIZE (NUM_SIZE_X * NUM_SIZE_Y) /* 全体のサイズ */

/*   時刻表示用の「：」 */
#define TIM_SIZE_X 1 /* X方向のサイズ */
#define TIM_SIZE_Y 3 /* Y方向のサイズ */
#define TIM_SIZE (TIM_SIZE_X * TIM_SIZE_Y) /* 全体のサイズ */

/*   午前・午後の文字 */
#define APM_SIZE_X 1 /* X方向のサイズ */
#define APM_SIZE_Y 1 /* Y方向のサイズ */
#define APM_SIZE (APM_SIZE_X * APM_SIZE_Y) /* 全体のサイズ */

/*   ミスの文字 */
#define MIS_SIZE_X 2 /* X方向のサイズ */
#define MIS_SIZE_Y 1 /* Y方向のサイズ */
#define MIS_SIZE (MIS_SIZE_X * MIS_SIZE_Y) /* 全体のサイズ */

/*   ミスマーク */
#define MAK_SIZE_X 1 /* X方向のサイズ */
#define MAK_SIZE_Y 1 /* Y方向のサイズ */
#define MAK_SIZE (MAK_SIZE_X * MAK_SIZE_Y) /* 全体のサイズ */
#define MAK_COUNT 3 /* 定義キャラクタ数 */

/*   プレイヤーアウト時のエフェクト */
#define OUT_SIZE_X 1 /* X方向のサイズ */
#define OUT_SIZE_Y 3 /* Y方向のサイズ */
#define OUT_SIZE (OUT_SIZE_X * OUT_SIZE_Y) /* 全体のサイズ */
#define OUT_COUNT 2 /* 定義キャラクタ数 */

/*   メニュー用のエリア */
#define MENU_SIZE_X 12 /* X方向のサイズ */
#define MENU_SIZE_Y 9 /* Y方向のサイズ */
#define MENU_SIZE (MENU_SIZE_X * MENU_SIZE_Y) /* 全体のサイズ */
#define MENU_POS_X 8 /* エリアの開始位置（X座標） */
#define MENU_POS_Y 4 /* エリアの開始位置（Y座標） */
/*   テキスト表示用のフォントテーブルのベース */
#define FONT_BASE (511 - (MENU_SIZE_X - 2) * (MENU_SIZE_Y - 2))

/* 午前・午後の識別用 */
#define AM_TIME 0
#define PM_TIME 1

/* X、Yの識別用（座標、サイズ） */
#define X_POS 0
#define Y_POS 1
#define X_SIZE 0
#define Y_SIZE 1

/* 背景用キャラクタの数 */
#define BACK_PARTS 45

/* 背景用キャラクタのブロック情報 */
/* （画面下部の人物と両脇の電柱上部をブロック化している） */
#define BACK_CHAR_COUNT 6 /* ブロックの数 */
#define MAX_BACK_CHAR_SIZE 25 /* ブロックの最大サイズ */

/* 表示用パレット番号 */
#define WRITE_PALETTE 4 /* キャラクタ類 */
#define BORDER_PALETTE 5 /* 背景 */

/* 表示設定 */
#define WRITE_ON | (WRITE_PALETTE << 9)

/* 画面消去用キャラクタ */
#define NULL_CHAR 0x0000 WRITE_ON

/* 表示・消去の識別用 */
#define WRITE 1
#define DELETE 0

/* 時刻の表示モード（12時間表示・24時間表示） */
enum {hour_12, hour_24} hour_mode;

/* chr_fmt:キャラクタのパラメータ構造体 */
typedef struct {
	/* キャラクタのサイズ */
	int size_x, size_y; /* XY方向 */
	int size_all; /* 全体 */

	/* 表示する座標 */
	int pos_x, pos_y;

	/* キャラクタデータの並び */
	unsigned int *wdat;
} chr_fmt;

/* キャラクタのパラメータ */
static chr_fmt player_dat[PLY_COUNT]; /* プレイヤー */
static chr_fmt object_dat[(PLY_COUNT - 1)][(OBJ_COUNT + 1)]; /* 風船 */
static chr_fmt alarm_dat[ALM_COUNT]; /* アラームキャラクタ */
static chr_fmt number_dat[10]; /* 数字 */
static chr_fmt time_dat; /* 時刻表示用の「：」*/
static chr_fmt ampm_dat[2]; /* 午前・午後の文字 */
static chr_fmt miss_mes_dat; /* ミスの文字 */
static chr_fmt miss_mak_dat[3]; /* ミスマーク */
static chr_fmt ply_out_dat[OUT_COUNT]; /* アウト時のエフェクト */

/* メニューの枠の表示用データ */
static struct {
	unsigned int line_dat[4]; /* 直線 */
	unsigned int corner_dat[4]; /* 角 */
} menu_char;

/* 数字および「：」の座標 */
static int num_pos[5][2] =
 {{26,  0}, {24,  0}, {21,  0}, {19,  0}, {23,  0}};

/* メニュー表示用のバッファ*/
static unsigned int field_buffer[MENU_SIZE]; /* メイン画面用 */
/*   テキスト画面用 */
static unsigned int text_buffer[(MENU_SIZE_X - 2) * (MENU_SIZE_Y - 2)];


/****************************/
/* 表示関連の初期設定を行う */
/****************************/
void screen_init(void)
{
	/* LCDカラーをせっとする */
	lcd_set_color(0x6420, 0xFCA8);

	/* カラーパレットをセットする */
	palette_set_color(WRITE_PALETTE, 0x7530); /* キャラクタ用 */
	palette_set_color(BORDER_PALETTE, 0x7000); /* メニューの枠用 */

	/* 画面を２枚とも使用する */
	display_control(DCM_SCR1 | DCM_SCR2);

	/* メニュー用としてスクリーン２をテキスト画面に設定する */
	text_set_screen(SCREEN2);
	text_window_init((MENU_POS_X + 1), (MENU_POS_Y + 1),
	 (MENU_SIZE_X - 2), (MENU_SIZE_Y - 2), FONT_BASE);
	text_set_mode(TEXT_MODE_ANK);
	text_set_palette(WRITE_PALETTE);

	/* メニュー用のテキスト画面をバッファにセットする */
	screen_get_char(SCREEN2, (MENU_POS_X + 1), (MENU_POS_Y + 1),
	 (MENU_SIZE_X - 2), (MENU_SIZE_Y - 2), text_buffer);
}


/************************************/
/* スクリーン２の画面全体を消去する */
/************************************/
void screen_clear(void)
{
	screen_fill_char(SCREEN2, 0, 0, 32, 32, NULL_CHAR);
}


/****************************************/
/* 各キャラクタのデータを設定する       */
/* 戻り値：セット後の次のキャラクタ番号 */
/****************************************/
int chr_set(void)
{
	/* 画面消去用キャラクタデータ */
	static unsigned int nul_chr_dat[8] = {0, 0, 0, 0, 0, 0, 0, 0};

	/* キャラクタデータ */
	/*   プレイヤー */
	static unsigned int ply_chr_dat[PLY_COUNT][(PLY_SIZE * 8)] =
	 {{0x0000, 0x1818, 0x3030, 0x7070, 0x5858, 0x1818, 0x1F1F, 0x0F0F,
	   0x0000, 0x6767, 0x1C1C, 0x3838, 0x7070, 0x7878, 0xFEFE, 0xFFFF,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0F0F, 0x1F1F, 0x1E1E, 0x1D1D, 0x1A1A, 0x0A0A, 0x0404, 0x0404,
	   0xE1E1, 0x1E1E, 0xE1E1, 0x0000, 0x0000, 0x0000, 0x0F0F, 0x7070,
	   0x8080, 0x0000, 0x8080, 0x4040, 0x2020, 0x1010, 0xE8E8, 0x1818,
	   0x0505, 0x0A0A, 0x0D0D, 0x0303, 0x0303, 0x0303, 0x0101, 0x0101,
	   0x8F8F, 0x7F7F, 0xF9F9, 0xFBFB, 0xFDFD, 0xCFCF, 0x9393, 0xE4E4,
	   0xE0E0, 0xF0F0, 0x7070, 0xA0A0, 0x7878, 0xF8F8, 0xE0E0, 0xA0A0,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x7979, 0x0F0F, 0xE0E0, 0x3838, 0x1E1E, 0x0707, 0x0C0C, 0x0000,
	   0x2020, 0xC0C0, 0x1010, 0x3838, 0x1C1C, 0xB6B6, 0x0000, 0x0000},
	  {0x0000, 0x7373, 0x1C1C, 0x3838, 0x1E1E, 0x0F0F, 0x0303, 0x0303,
	   0x0000, 0x8383, 0x0000, 0x0000, 0x0303, 0xFFFF, 0xFFFF, 0xFFFF,
	   0x0000, 0x9C9C, 0x7070, 0x3838, 0xF0F0, 0xE0E0, 0x0000, 0x8080,
	   0x0707, 0x0F0F, 0x0E0E, 0x1D1D, 0x1212, 0x1414, 0x0808, 0x0B0B,
	   0xFFFF, 0x8383, 0x7C7C, 0x8787, 0x0000, 0x0000, 0x0000, 0xF0F0,
	   0xC0C0, 0xC0C0, 0xE0E0, 0x6060, 0xB0B0, 0x5050, 0x5050, 0x2020,
	   0x1C1C, 0x1313, 0x1F1F, 0x0606, 0x0606, 0x0303, 0x0F0F, 0x2F2F,
	   0x0E0E, 0xF1F1, 0x5E5E, 0x4F4F, 0xEFEF, 0x5E5E, 0xFCFC, 0xF0F0,
	   0x2020, 0x1010, 0xF0F0, 0x1010, 0xF0F0, 0xC0C0, 0x6868, 0x6C6C,
	   0x6060, 0x6666, 0x7171, 0x3838, 0x1F1F, 0x0606, 0x0C0C, 0x0000,
	   0x0000, 0x0303, 0xFFFF, 0x0000, 0x8383, 0x0000, 0x0000, 0x0000,
	   0xECEC, 0xCECE, 0x0606, 0x7E7E, 0xFCFC, 0xC0C0, 0x6060, 0x0000},
	  {0x0000, 0x0C0C, 0x1818, 0x3C3C, 0x6F6F, 0x4343, 0x0000, 0x0101,
	   0x0000, 0x0000, 0x0000, 0x0000, 0xC1C1, 0xFFFF, 0xFFFF, 0xFFFF,
	   0x0000, 0x7070, 0x1818, 0x7C7C, 0xE6E6, 0xC0C0, 0x8080, 0x8080,
	   0x0303, 0x0303, 0x0707, 0x0606, 0x0505, 0x0202, 0x0404, 0x0404,
	   0xFFFF, 0xC1C1, 0x3E3E, 0xE1E1, 0x0000, 0x0000, 0x0000, 0x1F1F,
	   0xC0C0, 0xC0C0, 0x6060, 0xA0A0, 0x4040, 0x2020, 0x1010, 0xE8E8,
	   0x0808, 0x0F0F, 0x0808, 0x0F0F, 0x0707, 0x0303, 0x0B0B, 0x1B1B,
	   0xE0E0, 0x1F1F, 0xF5F5, 0xE4E4, 0xEEEE, 0xF5F5, 0x9F9F, 0x0707,
	   0x0808, 0xF8F8, 0xE0E0, 0xE0E0, 0xC0C0, 0xF0F0, 0xF0F0, 0xC0C0,
	   0x1919, 0x1C1C, 0x0E0E, 0x0707, 0x0303, 0x0101, 0x0303, 0x0000,
	   0x8080, 0xF8F8, 0x0F0F, 0x0000, 0x8080, 0xE3E3, 0x0000, 0x0000,
	   0x0000, 0x6060, 0xC0C0, 0x1010, 0xF0F0, 0xE0E0, 0x3030, 0x0000},
	  {0x0000, 0x1C1C, 0x3838, 0x6F6F, 0x4747, 0x0101, 0x0000, 0x0101,
	   0x0000, 0x0303, 0x0000, 0x0000, 0xC3C3, 0xFFFF, 0xFFFF, 0xFFFF,
	   0x0000, 0x9C9C, 0x7070, 0x3838, 0xF0F0, 0xE0E0, 0x0000, 0x8080,
	   0x0303, 0x0303, 0x0606, 0x0505, 0x0202, 0x0404, 0x0808, 0x1717,
	   0xFFFF, 0x8383, 0x7C7C, 0x8787, 0x0000, 0x0000, 0x0000, 0xE0E0,
	   0xC0C0, 0xC0C0, 0xE0E0, 0x6060, 0xA0A0, 0x4040, 0x2020, 0x2020,
	   0x1818, 0x0707, 0x0E0E, 0x0C0C, 0x0505, 0x1E1E, 0x1F1F, 0x0F0F,
	   0x1E1E, 0xE1E1, 0xBEBE, 0x9F9F, 0xDFDF, 0xB3B3, 0xE1E1, 0xC1C1,
	   0x2020, 0xD0D0, 0x1010, 0xB0B0, 0xC0C0, 0xD0D0, 0xD8D8, 0xD8D8,
	   0x2020, 0x6C6C, 0x6767, 0x3030, 0x3838, 0x6D6D, 0x0000, 0x0000,
	   0x0303, 0x1F1F, 0xF8F8, 0x0303, 0x7F7F, 0xE0E0, 0x3030, 0x0000,
	   0x9898, 0x3838, 0x7070, 0xE0E0, 0x0000, 0x0000, 0x0000, 0x0000},
	  {0x0000, 0x0000, 0x0101, 0x0202, 0x0404, 0x0808, 0x0B0B, 0x1414,
	   0x0000, 0x7C7C, 0x8787, 0x0000, 0x0000, 0xF8F8, 0x0707, 0xF8F8,
	   0x0000, 0x0000, 0x0000, 0x8080, 0x4040, 0x2020, 0x2020, 0xD0D0,
	   0x1B1B, 0x0606, 0x0E0E, 0x0F0F, 0x0707, 0x3E3E, 0x3838, 0x0000,
	   0x5F5F, 0xEFEF, 0x4F4F, 0x5C5C, 0xF8F8, 0x7878, 0x0101, 0x0303,
	   0x1010, 0xE8E8, 0xF8F8, 0xF0F0, 0x7070, 0x6060, 0xC0C0, 0xC0C0,
	   0x0C0C, 0x0303, 0x0000, 0x0707, 0x2F2F, 0x7D7D, 0x7979, 0x3131,
	   0xE7E7, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFEFE, 0xFEFE, 0xFEFE,
	   0x8080, 0x0000, 0x8080, 0xC0C0, 0xE0E0, 0xF4F4, 0x3E3E, 0x1E1E,
	   0x0101, 0x0000, 0x0101, 0x2323, 0x3737, 0x1E1E, 0x0C0C, 0x0000,
	   0xFEFE, 0xFCFC, 0xFEFE, 0x8787, 0x0303, 0x0101, 0x0000, 0x0000,
	   0x0C0C, 0x0000, 0x0000, 0x1010, 0xB0B0, 0xE0E0, 0xC0C0, 0x0000}};

	/*   風船 */
	static unsigned int obj_chr_dat[(PLY_COUNT - 1)][(OBJ_COUNT + 1)]
	 [(OBJ_SIZE * 8)] =
	 {{{0x3C3C, 0x6666, 0xDFDF, 0xBFBF, 0xFFFF, 0xFFFF, 0x7E7E, 0x7E7E,
	    0x3C3C, 0x1818, 0x0808, 0x1010, 0x2020, 0x2020, 0x1010, 0x0000},
	   {0x3C3C, 0x6666, 0xDFDF, 0xBFBF, 0xFFFF, 0xFFFF, 0x7E7E, 0x7E7E,
	    0x3C3C, 0x1818, 0x0808, 0x0404, 0x0202, 0x0202, 0x0404, 0x0000},
	   {0x3C3C, 0x6666, 0xDFDF, 0xBFBF, 0xFFFF, 0xFFFF, 0x7E7E, 0x7E7E,
	    0x3C3C, 0x1818, 0x0808, 0x1010, 0x2020, 0x2020, 0x1010, 0x0000},
	   {0x3C3C, 0x6666, 0xDFDF, 0xBFBF, 0xFFFF, 0xFFFF, 0x7E7E, 0x7E7E,
	    0x3C3C, 0x1818, 0x1010, 0x1010, 0x0808, 0x0808, 0x0606, 0x0000},
	   {0x3C3C, 0x6666, 0xDFDF, 0xBFBF, 0xFFFF, 0xFFFF, 0x7E7E, 0x7E7E,
	    0x3C3C, 0x1818, 0x0404, 0x0404, 0x1818, 0x2020, 0x1818, 0x0000},
	   {0xC0C0, 0x9393, 0x2929, 0x0000, 0x5252, 0x8989, 0x5252, 0x0808,
	    0x0000, 0x9494, 0xC9C9, 0x0303, 0x0808, 0x4848, 0x3030, 0x0000}},
	  {{0x0000, 0xC3C3, 0xE7E7, 0xBFBF, 0xBFBF, 0xDFDF, 0xFFFF, 0x7E7E,
	    0x3C3C, 0x0808, 0x0808, 0x0404, 0x0404, 0x0808, 0x1010, 0x0000},
	   {0x0000, 0xC3C3, 0xE7E7, 0xBFBF, 0xBFBF, 0xDFDF, 0xFFFF, 0x7E7E,
	    0x3C3C, 0x0808, 0x3030, 0x4040, 0x4040, 0x3030, 0x0C0C, 0x0000},
	   {0x0000, 0xC3C3, 0xE7E7, 0xBFBF, 0xBFBF, 0xDFDF, 0xFFFF, 0x7E7E,
	    0x3C3C, 0x0808, 0x1010, 0x1010, 0x0808, 0x1010, 0x1010, 0x0000},
	   {0x0000, 0xC3C3, 0xE7E7, 0xBFBF, 0xBFBF, 0xDFDF, 0xFFFF, 0x7E7E,
	    0x3C3C, 0x0808, 0x0404, 0x0404, 0x0808, 0x3030, 0x4040, 0x0000},
	   {0x0000, 0xC3C3, 0xE7E7, 0xBFBF, 0xBFBF, 0xDFDF, 0xFFFF, 0x7E7E,
	    0x3C3C, 0x0808, 0x1010, 0x1010, 0x1010, 0x0808, 0x0808, 0x0000},
	   {0x0000, 0xC3C3, 0x9191, 0x2828, 0x0202, 0x5151, 0x8282, 0x4848,
	    0x2525, 0x8383, 0xD0D0, 0x1010, 0x1010, 0x0808, 0x0808, 0x0000}},
	  {{0x3C3C, 0x6666, 0xDBDB, 0xBDBD, 0xBDBD, 0xDBDB, 0x6666, 0x3C3C,
	    0x1818, 0x0808, 0x1010, 0x1010, 0x2020, 0x2020, 0x1010, 0x0000},
	   {0x3C3C, 0x6666, 0xDBDB, 0xBDBD, 0xBDBD, 0xDBDB, 0x6666, 0x3C3C,
	    0x1818, 0x0808, 0x0404, 0x0404, 0x3838, 0x4040, 0x2020, 0x0000},
	   {0x3C3C, 0x6666, 0xDBDB, 0xBDBD, 0xBDBD, 0xDBDB, 0x6666, 0x3C3C,
	    0x1818, 0x1010, 0x0C0C, 0x0202, 0x0202, 0x0404, 0x0808, 0x0000},
	   {0x3C3C, 0x6666, 0xDBDB, 0xBDBD, 0xBDBD, 0xDBDB, 0x6666, 0x3C3C,
	    0x1818, 0x1010, 0x2020, 0x2020, 0x1010, 0x1010, 0x1010, 0x0000},
	   {0x3C3C, 0x6666, 0xDBDB, 0xBDBD, 0xBDBD, 0xDBDB, 0x6666, 0x3C3C,
	    0x1818, 0x0404, 0x0202, 0x0202, 0x0C0C, 0x1010, 0x2020, 0x0000},
	   {0xD0D0, 0xABAB, 0x0101, 0x5454, 0x8282, 0x4949, 0x0202, 0x2929,
	    0x9393, 0xC8C8, 0x0808, 0x1010, 0x1010, 0x0808, 0x0808, 0x0000}},
	  {{0x6666, 0xFFFF, 0xDFDF, 0xBFBF, 0xBFBF, 0xBFBF, 0xFFFF, 0x7676,
	    0x0808, 0x0808, 0x1010, 0x1010, 0x2020, 0x2020, 0x1010, 0x0000},
	   {0x6666, 0xFFFF, 0xDFDF, 0xBFBF, 0xBFBF, 0xBFBF, 0xFFFF, 0x7676,
	    0x1010, 0x0C0C, 0x0202, 0x0202, 0x0404, 0x1818, 0x2020, 0x0000},
	   {0x6666, 0xFFFF, 0xDFDF, 0xBFBF, 0xBFBF, 0xBFBF, 0xFFFF, 0x6E6E,
	    0x0808, 0x0808, 0x1010, 0x1010, 0x1010, 0x0C0C, 0x0000, 0x0000},
	   {0x6666, 0xFFFF, 0xDFDF, 0xBFBF, 0xBFBF, 0xBFBF, 0xFFFF, 0x7676,
	    0x1010, 0x2020, 0x4040, 0x4040, 0x3030, 0x0C0C, 0x0202, 0x0000},
	   {0x6666, 0xFFFF, 0xDFDF, 0xBFBF, 0xBFBF, 0xBFBF, 0xFFFF, 0x7676,
	    0x1010, 0x2020, 0x2020, 0x1818, 0x0404, 0x0808, 0x0808, 0x0000},
	   {0x0B0B, 0xD1D1, 0x8484, 0x2222, 0x8989, 0x5252, 0x0808, 0x8484,
	    0xC9C9, 0x0B0B, 0x1010, 0x1010, 0x1010, 0x0808, 0x0808, 0x0000},
	   {0x6666, 0xFFFF, 0xDFDF, 0xBFBF, 0xBFBF, 0xBFBF, 0xFFFF, 0x6E6E,
	    0x0808, 0x0404, 0x0404, 0x0202, 0x0404, 0x0808, 0x0808, 0x0000}}};

	/*   アラームキャラクタ */
	static unsigned int alm_chr_dat[ALM_COUNT][(ALM_SIZE * 8)] =
	 {{0x0000, 0x0303, 0x0707, 0x0F0F, 0x0E0E, 0x1E1E, 0x1F1F, 0x1F1F,
	   0x0000, 0xE0E0, 0xF0F0, 0xF0F0, 0x4848, 0xE8E8, 0xF0F0, 0xFEFE,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C0C, 0x1C1C, 0x3D3D,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x3E3E, 0x3F3F, 0x3F3F, 0x7F7F, 0xFFFF, 0xFFFF, 0xEFEF, 0xEFEF,
	   0x0000, 0xFEFE, 0xF0F0, 0xE1E1, 0xC7C7, 0xDFDF, 0x9F9F, 0x9F9F,
	   0x7C7C, 0x7878, 0xF8F8, 0xF8F8, 0xF0F0, 0xF0F0, 0xC0C0, 0x8080,
	   0xF0F0, 0xFCFC, 0xE2E2, 0xD2D2, 0x4444, 0x4848, 0x3030, 0x0000,
	   0xCFCF, 0xDFDF, 0x1F1F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFEFE,
	   0xDEDE, 0xC0C0, 0xC0C0, 0xC0C0, 0x8080, 0x8080, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0xF8F8, 0x8080, 0xC0C0, 0xF0F0, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
	  {0x0000, 0x0303, 0x0707, 0x0F0F, 0x0E0E, 0x1E1E, 0x1F1F, 0x1F1F,
	   0x0000, 0xE0E0, 0xF0F0, 0xF0F0, 0x4848, 0xE8E8, 0xF0F0, 0xFEFE,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x3E3E, 0x3F3F, 0x3F3F, 0x7F7F, 0xFFFF, 0xFFFF, 0xEFEF, 0xEFEF,
	   0x0000, 0xFEFE, 0xF0F0, 0xE0E0, 0xC0C0, 0xC0C0, 0x8080, 0x8080,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0xCFCF, 0xDFDF, 0x1F1F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFEFE,
	   0xC0C0, 0xC0C0, 0xD8D8, 0xDFDF, 0x9F9F, 0xBFBF, 0x3F3F, 0x0303,
	   0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFCFC, 0xF0F0,
	   0x0000, 0x0000, 0x0000, 0x0000, 0xC0C0, 0x8080, 0x0000, 0x8080,
	   0xF8F8, 0x8080, 0xC0C0, 0xF0F0, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0101, 0x0101, 0x0303, 0x0202, 0x0404, 0x0202, 0x0101, 0x0000,
	   0xC0C0, 0xC0C0, 0xE0E0, 0x2020, 0x9090, 0x2020, 0xC0C0, 0x0000},
	  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0101,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0xF0F0, 0xFCFC, 0xE2E2, 0xD2D2, 0x4444, 0x4848, 0x3030, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000},
	  {0x0000, 0x0303, 0x0707, 0x0F0F, 0x0E0E, 0x1E1E, 0x1F1F, 0x1F1F,
	   0x0000, 0xE0E0, 0xF0F0, 0xF0F0, 0x4848, 0xE8E8, 0xF0F0, 0xFEFE,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C0C, 0x1C1C, 0x3D3D,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x3E3E, 0x3F3F, 0x3F3F, 0x7F7F, 0xFFFF, 0xFFFF, 0xEFEF, 0xEFEF,
	   0x0000, 0xFEFE, 0xF0F0, 0xE1E1, 0xC7C7, 0xDFDF, 0x9F9F, 0x9F9F,
	   0x7C7C, 0x7878, 0xF8F8, 0xF8F8, 0xF0F0, 0xF0F0, 0xC0C0, 0x8080,
	   0xF0F0, 0xFCFC, 0xE2E2, 0xD2D2, 0x4444, 0x4848, 0x3030, 0x0000,
	   0xCFCF, 0xDFDF, 0x1F1F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFEFE,
	   0xDEDE, 0xC0C0, 0xD8D8, 0xDFDF, 0x9F9F, 0xBFBF, 0x3F3F, 0x0303,
	   0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFCFC, 0xF0F0,
	   0x0000, 0x0000, 0x0000, 0x0000, 0xC0C0, 0x8080, 0x0000, 0x8080,
	   0xF8F8, 0x8080, 0xC0C0, 0xF0F0, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0101, 0x0101, 0x0303, 0x0202, 0x0404, 0x0202, 0x0101, 0x0000,
	   0xC0C0, 0xC0C0, 0xE0E0, 0x2020, 0x9090, 0x2020, 0xC0C0, 0x0000}};

	/*   数字 */
	static unsigned int num_chr_dat[10][(NUM_SIZE * 8)] =
	 {{0x0000, 0x0303, 0x0505, 0x0E0E, 0x0E0E, 0x0E0E, 0x1C1C, 0x1C1C,
	   0x0000, 0xF8F8, 0xF4F4, 0xEEEE, 0x0E0E, 0x0E0E, 0x0E0E, 0x1C1C,
	   0x1C1C, 0x1C1C, 0x0808, 0x1010, 0x3838, 0x3838, 0x3838, 0x3838,
	   0x1C1C, 0x1C1C, 0x1C1C, 0x0808, 0x1010, 0x3838, 0x3838, 0x3838,
	   0x7070, 0x7070, 0x7070, 0x7777, 0x2F2F, 0x1F1F, 0x0000, 0x0000,
	   0x3838, 0x7070, 0x7070, 0x7070, 0xA0A0, 0xC0C0, 0x0000, 0x0000},
	  {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0404, 0x0E0E, 0x0E0E, 0x0E0E, 0x0E0E, 0x1C1C,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x1C1C, 0x1C1C, 0x1C1C, 0x0808, 0x1010, 0x3838, 0x3838, 0x3838,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x3838, 0x7070, 0x7070, 0x7070, 0x2020, 0x0000, 0x0000, 0x0000},
	  {0x0000, 0x0303, 0x0101, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0xF8F8, 0xF4F4, 0xEEEE, 0x0E0E, 0x0E0E, 0x0E0E, 0x1C1C,
	   0x0000, 0x0000, 0x0303, 0x1717, 0x3B3B, 0x3838, 0x3838, 0x3838,
	   0x1C1C, 0x1C1C, 0xDCDC, 0xE8E8, 0xC0C0, 0x0000, 0x0000, 0x0000,
	   0x7070, 0x7070, 0x7070, 0x7777, 0x2F2F, 0x1F1F, 0x0000, 0x0000,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x8080, 0xC0C0, 0x0000, 0x0000},
	  {0x0000, 0x0303, 0x0101, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x0000, 0xF8F8, 0xF4F4, 0xEEEE, 0x0E0E, 0x0E0E, 0x0E0E, 0x1C1C,
	   0x0000, 0x0000, 0x0303, 0x0707, 0x0303, 0x0000, 0x0000, 0x0000,
	   0x1C1C, 0x1C1C, 0xDCDC, 0xE8E8, 0xD0D0, 0x3838, 0x3838, 0x3838,
	   0x0000, 0x0000, 0x0000, 0x0707, 0x0F0F, 0x1F1F, 0x0000, 0x0000,
	   0x3838, 0x7070, 0x7070, 0x7070, 0xA0A0, 0xC0C0, 0x0000, 0x0000},
	  {0x0000, 0x0000, 0x0404, 0x0E0E, 0x0E0E, 0x0E0E, 0x1C1C, 0x1C1C,
	   0x0000, 0x0000, 0x0404, 0x0E0E, 0x0E0E, 0x0E0E, 0x0E0E, 0x1C1C,
	   0x1C1C, 0x1C1C, 0x0B0B, 0x0707, 0x0303, 0x0000, 0x0000, 0x0000,
	   0x1C1C, 0x1C1C, 0xDCDC, 0xE8E8, 0xD0D0, 0x3838, 0x3838, 0x3838,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x3838, 0x7070, 0x7070, 0x7070, 0x2020, 0x0000, 0x0000, 0x0000},
	  {0x0000, 0x0303, 0x0505, 0x0E0E, 0x0E0E, 0x0E0E, 0x1C1C, 0x1C1C,
	   0x0000, 0xF8F8, 0xF0F0, 0xE0E0, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x1C1C, 0x1C1C, 0x0B0B, 0x0707, 0x0303, 0x0000, 0x0000, 0x0000,
	   0x0000, 0x0000, 0xC0C0, 0xE0E0, 0xD0D0, 0x3838, 0x3838, 0x3838,
	   0x0000, 0x0000, 0x0000, 0x0707, 0x0F0F, 0x1F1F, 0x0000, 0x0000,
	   0x3838, 0x7070, 0x7070, 0x7070, 0xA0A0, 0xC0C0, 0x0000, 0x0000},
	  {0x0000, 0x0303, 0x0505, 0x0E0E, 0x0E0E, 0x0E0E, 0x1C1C, 0x1C1C,
	   0x0000, 0xF8F8, 0xF0F0, 0xE0E0, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x1C1C, 0x1C1C, 0x0B0B, 0x1717, 0x3B3B, 0x3838, 0x3838, 0x3838,
	   0x0000, 0x0000, 0xC0C0, 0xE0E0, 0xD0D0, 0x3838, 0x3838, 0x3838,
	   0x7070, 0x7070, 0x7070, 0x7777, 0x2F2F, 0x1F1F, 0x0000, 0x0000,
	   0x3838, 0x7070, 0x7070, 0x7070, 0xA0A0, 0xC0C0, 0x0000, 0x0000},
	  {0x0000, 0x0303, 0x0505, 0x0E0E, 0x0E0E, 0x0E0E, 0x1C1C, 0x1C1C,
	   0x0000, 0xF8F8, 0xF4F4, 0xEEEE, 0x0E0E, 0x0E0E, 0x0E0E, 0x1C1C,
	   0x1C1C, 0x1C1C, 0x0808, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x1C1C, 0x1C1C, 0x1C1C, 0x0808, 0x1010, 0x3838, 0x3838, 0x3838,
	   0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
	   0x3838, 0x7070, 0x7070, 0x7070, 0x2020, 0x0000, 0x0000, 0x0000},
	  {0x0000, 0x0303, 0x0505, 0x0E0E, 0x0E0E, 0x0E0E, 0x1C1C, 0x1C1C,
	   0x0000, 0xF8F8, 0xF4F4, 0xEEEE, 0x0E0E, 0x0E0E, 0x0E0E, 0x1C1C,
	   0x1C1C, 0x1C1C, 0x0B0B, 0x1717, 0x3B3B, 0x3838, 0x3838, 0x3838,
	   0x1C1C, 0x1C1C, 0xDCDC, 0xE8E8, 0xD0D0, 0x3838, 0x3838, 0x3838,
	   0x7070, 0x7070, 0x7070, 0x7777, 0x2F2F, 0x1F1F, 0x0000, 0x0000,
	   0x3838, 0x7070, 0x7070, 0x7070, 0xA0A0, 0xC0C0, 0x0000, 0x0000},
	  {0x0000, 0x0303, 0x0505, 0x0E0E, 0x0E0E, 0x0E0E, 0x1C1C, 0x1C1C,
	   0x0000, 0xF8F8, 0xF4F4, 0xEEEE, 0x0E0E, 0x0E0E, 0x0E0E, 0x1C1C,
	   0x1C1C, 0x1C1C, 0x0B0B, 0x0707, 0x0303, 0x0000, 0x0000, 0x0000,
	   0x1C1C, 0x1C1C, 0xDCDC, 0xE8E8, 0xD0D0, 0x3838, 0x3838, 0x3838,
	   0x0000, 0x0000, 0x0000, 0x0707, 0x0F0F, 0x1F1F, 0x0000, 0x0000,
	   0x3838, 0x7070, 0x7070, 0x7070, 0xA0A0, 0xC0C0, 0x0000, 0x0000}};

	/*   時刻表示用の「：」 */
	static unsigned int tim_chr_dat[(TIM_SIZE * 8)] =
	 {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0C0C, 0x0C0C,
	  0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3030,
	  0x3030, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000};

	/*   午前・午後の文字 */
	static unsigned int apm_chr_dat[2][(APM_SIZE * 8)] =
	 {{0x0000, 0x0000, 0x4A4A, 0xAEAE, 0xEAEA, 0xAAAA, 0xAAAA, 0x0000},
	  {0x0000, 0x0000, 0xCACA, 0xAEAE, 0xCACA, 0x8A8A, 0x8A8A, 0x0000}};

	/*   ミスの文字 */
	static unsigned int mis_chr_dat[(MIS_SIZE * 8)] =
	 {0x0000, 0xDADA, 0xAAAA, 0xAAAA, 0x8A8A, 0x8A8A, 0x0000, 0x0000,
	  0x0000, 0x6666, 0x8888, 0x4444, 0x2222, 0xCCCC, 0x0000, 0x0000};

	/*   ミスマーク */
	static unsigned int mak_chr_dat[MAK_COUNT][(MAK_SIZE * 8)] =
	 {{0x0000, 0x0C0C, 0x1818, 0x3030, 0x7E7E, 0x0C0C, 0x1818, 0x3030},
	  {0x0000, 0x0C0C, 0x1818, 0x3030, 0x7E7E, 0x0C0C, 0x1818, 0x3030},
	  {0x0000, 0x0C0C, 0x1818, 0x3030, 0x7E7E, 0x0C0C, 0x1818, 0x3030}};

	/*   プレイヤーアウト時のエフェクト */
	static unsigned int out_chr_dat[OUT_COUNT][(OUT_SIZE * 8)] =
	 {{0x0000, 0x0606, 0x0C0C, 0x3C3C, 0x1818, 0x0808, 0x1818, 0x0808,
	   0x1818, 0x3838, 0x0808, 0x1C1C, 0x0404, 0x0C0C, 0x1C1C, 0x0808,
	   0x3838, 0x1818, 0x0808, 0x3C3C, 0x0C0C, 0x1C1C, 0x0404, 0x0000},
	  {0x0000, 0x6060, 0x3030, 0x1C1C, 0x1818, 0x1010, 0x1818, 0x1010,
	   0x1818, 0x1C1C, 0x1010, 0x3838, 0x2020, 0x3030, 0x3838, 0x1010,
	   0x1C1C, 0x1818, 0x1010, 0x3C3C, 0x3030, 0x3838, 0x2020, 0x0000}};

	/*   メニュー用の枠 */
	static unsigned int bdr_chr_dat[3][8] =
	 {{0x181F, 0x181F, 0x181F, 0x181F, 0x181F, 0x181F, 0x181F, 0x181F},
	  {0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x00FF, 0x00FF, 0x00FF},
	  {0x0000, 0x0000, 0x0000, 0x0707, 0x0F0F, 0x1C1F, 0x181F, 0x181F}};

	/* キャラクタデータの並び */
	/*   プレイヤー */
	static int ply_wdat[PLY_COUNT][PLY_SIZE] =
	 {{ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11},
	  {12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23},
	  {24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35},
	  {36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47},
	  {48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59}};

	/*   風船（４列目のみ７個定義する） */
	static int obj_wdat[(PLY_COUNT - 1)][(OBJ_COUNT + 1)][OBJ_SIZE] =
	 {{{ 0,  1}, { 2,  3}, { 4,  5}, { 6,  7}, { 8,  9}, {10, 11}},
	  {{12, 13}, {14, 15}, {16, 17}, {18, 19}, {20, 21}, {22, 23}},
	  {{24, 25}, {26, 27}, {28, 29}, {30, 31}, {32, 33}, {34, 35}},
	  {{36, 37}, {38, 39}, {40, 41}, {42, 43}, {44, 45}, {46, 47}, {48, 49}}};

	/*   アラームキャラ */
	static int alm_wdat[ALM_COUNT][ALM_SIZE] =
	 {{ 0,  1,  2,  3,  4,  5,  6,  7,
	    8,  9, 10, 11, 12, 13, 14, 15},
	  {16, 17, 18, 19, 20, 21, 22, 23,
	   24, 25, 26, 27, 28, 29, 30, 31},
	  {32, 33, 34, 35, 36, 37, 38, 39,
	   40, 41, 42, 43, 44, 45, 46, 47},
	  {48, 49, 50, 51, 52, 53, 54, 55,
	   56, 57, 58, 59, 60, 61, 62, 63}};

	/*   数字 */
	static int num_wdat[10][NUM_SIZE] =
	 {{ 0,  1,  2,  3,  4,  5},
	  { 6,  7,  8,  9, 10, 11},
	  {12, 13, 14, 15, 16, 17},
	  {18, 19, 20, 21, 22, 23},
	  {24, 25, 26, 27, 28, 29},
	  {30, 31, 32, 33, 34, 35},
	  {36, 37, 38, 39, 40, 41},
	  {42, 43, 44, 45, 46, 47},
	  {48, 49, 50, 51, 52, 53},
	  {54, 55, 56, 57, 58, 59}};

	/*   時刻表示用の「：」 */
	static int tim_wdat[TIM_SIZE] = { 0,  1,  2};

	/*   午前・午後の文字 */
	static int apm_wdat[2][APM_SIZE] = {{ 0}, { 1}};

	/*   ミス文字 */
	static int mis_wdat[MIS_SIZE] = { 0,  1};

	/*   ミスマーク */
	static int mak_wdat[MAK_COUNT][MAK_SIZE] = {{ 0}, { 1}, { 2}};

	/*   プレイヤーアウト時のエフェクト */
	static int out_wdat[OUT_COUNT][OUT_SIZE] =
	 {{ 0,  1,  2}, { 3,  4,  5}};

	/* キャラクタの座標 */
	/*   プレイヤー */
	static int ply_pos[PLY_COUNT][2] =
	 {{ 4,  6}, { 9,  6}, {15,  6}, {20,  6}, {12,  3}};

	/*   風船（４列目のみ７個定義する） */
	static int obj_pos[(PLY_COUNT - 1)][(OBJ_COUNT + 1)][2] =
	 {{{ 4, 14}, { 5, 13}, { 6, 12}, { 5, 11}, { 6, 10}, { 6,  4}},
	  {{10, 14}, {11, 13}, {10, 12}, { 9, 11}, {10, 10}, {10,  4}},
	  {{16, 14}, {15, 13}, {16, 12}, {15, 11}, {16, 10}, {16,  4}},
	  {{20, 14}, {21, 13}, {20, 12}, {21, 11}, {20, 10}, {20,  4}, {22, 12}}};

	/*   アラームキャラ */
	static int alm_pos[ALM_COUNT][2] =
	 {{ 0,  0}, { 0,  0}, { 0,  0},{ 0,  0}};

	/*   午前・午後の文字 */
	static int apm_pos[2][2] = {{18,  0}, {18,  2}};

	/*   ミス文字 */
	static int mis_pos[2] = { 5,  0};

	/*   ミスマーク */
	static int mak_pos[MAK_COUNT][2] = {{ 5,  1}, { 6,  1}, { 7,  1}};

	/*   プレイヤーアウト時のエフェクト */
	static int out_pos[OUT_COUNT][2] =
	 {{11,  3}, {15,  3}};

	int chr_no, chr_pos; /* キャラクタ番号計算用 */
	int i, j, k; /* ループカウンタ */

	/* 画面消去用キャラクタのデータをセットする */
	font_set_colordata(0, 1, nul_chr_dat);
	chr_no = 1;
	chr_pos = 1;

	/* 各キャラクタのパラメータをセットする */
	/*   プレイヤー */
	for (i=0; i<PLY_COUNT; i++)
	{
		player_dat[i].size_x = PLY_SIZE_X;
		player_dat[i].size_y = PLY_SIZE_Y;
		player_dat[i].size_all = PLY_SIZE;
		player_dat[i].pos_x = ply_pos[i][X_POS];
		player_dat[i].pos_y = ply_pos[i][Y_POS];
		player_dat[i].wdat = ply_wdat[i];
		for (j=0; j<PLY_SIZE; j++) player_dat[i].wdat[j] += chr_no;
		font_set_colordata(chr_pos, player_dat[i].size_all, ply_chr_dat[i]);
		chr_pos += player_dat[i].size_all;
	}
	chr_no += PLY_COUNT * PLY_SIZE;

	/*   風船（４列目のみ７個定義する） */
	for (i=0; i<(PLY_COUNT - 1); i++)
	{
		for (j=0; j<(OBJ_COUNT + 1); j++)
		{
			object_dat[i][j].size_x = OBJ_SIZE_X;
			object_dat[i][j].size_y = OBJ_SIZE_Y;
			object_dat[i][j].size_all = OBJ_SIZE;
			object_dat[i][j].pos_x = obj_pos[i][j][X_POS];
			object_dat[i][j].pos_y = obj_pos[i][j][Y_POS];
			object_dat[i][j].wdat = obj_wdat[i][j];
			if ((i < (PLY_COUNT - 2)) && (j == OBJ_COUNT)) continue;
			for (k=0; k<OBJ_SIZE; k++) object_dat[i][j].wdat[k] += chr_no;
			font_set_colordata(chr_pos, object_dat[i][j].size_all,
			 obj_chr_dat[i][j]);
			chr_pos += object_dat[i][j].size_all;
		}
	}
	chr_no += ((PLY_COUNT - 1) * OBJ_COUNT + 1)* OBJ_SIZE;

	/*   アラームキャラクタ */
	for (i=0; i<ALM_COUNT; i++)
	{
		alarm_dat[i].size_x = ALM_SIZE_X;
		alarm_dat[i].size_y = ALM_SIZE_Y;
		alarm_dat[i].size_all = ALM_SIZE;
		alarm_dat[i].pos_x = alm_pos[i][X_POS];
		alarm_dat[i].pos_y = alm_pos[i][Y_POS];
		alarm_dat[i].wdat = alm_wdat[i];
		for (j=0; j<ALM_SIZE; j++) alarm_dat[i].wdat[j] += chr_no;
		font_set_colordata(chr_pos, alarm_dat[i].size_all, alm_chr_dat[i]);
		chr_pos += alarm_dat[i].size_all;
	}
	chr_no += ALM_COUNT * ALM_SIZE;

	/*   数字 */
	for (i=0; i<10; i++)
	{
		number_dat[i].size_x = NUM_SIZE_X;
		number_dat[i].size_y = NUM_SIZE_Y;
		number_dat[i].size_all = NUM_SIZE;
		number_dat[i].wdat = num_wdat[i];
		for (j=0; j<NUM_SIZE; j++) number_dat[i].wdat[j] += chr_no;
		font_set_colordata(chr_pos, number_dat[i].size_all, num_chr_dat[i]);
		chr_pos += number_dat[i].size_all;
	}
	chr_no += 10 * NUM_SIZE;

	/*   時刻表示用の「：」 */
	time_dat.size_x = TIM_SIZE_X;
	time_dat.size_y = TIM_SIZE_Y;
	time_dat.size_all = TIM_SIZE;
	time_dat.pos_x = num_pos[4][X_POS];
	time_dat.pos_y = num_pos[4][Y_POS];
	time_dat.wdat = tim_wdat;
	for (i=0; i<TIM_SIZE; i++) time_dat.wdat[i] += chr_no;
	font_set_colordata(chr_pos, time_dat.size_all, tim_chr_dat);
	chr_pos += time_dat.size_all;
	chr_no += TIM_SIZE;

	/*   午前の文字 */
	ampm_dat[AM_TIME].size_x = APM_SIZE_X;
	ampm_dat[AM_TIME].size_y = APM_SIZE_Y;
	ampm_dat[AM_TIME].size_all = APM_SIZE;
	ampm_dat[AM_TIME].pos_x = apm_pos[AM_TIME][X_POS];
	ampm_dat[AM_TIME].pos_y = apm_pos[AM_TIME][Y_POS];
	ampm_dat[AM_TIME].wdat = apm_wdat[AM_TIME];
	for (i=0; i<APM_SIZE; i++) ampm_dat[AM_TIME].wdat[i] += chr_no;
	font_set_colordata(chr_pos, ampm_dat[AM_TIME].size_all,
	 apm_chr_dat[AM_TIME]);
	chr_pos += ampm_dat[AM_TIME].size_all;

	/*   午後の文字 */
	ampm_dat[PM_TIME].size_x = APM_SIZE_X;
	ampm_dat[PM_TIME].size_y = APM_SIZE_Y;
	ampm_dat[PM_TIME].size_all = APM_SIZE;
	ampm_dat[PM_TIME].pos_x = apm_pos[PM_TIME][X_POS];
	ampm_dat[PM_TIME].pos_y = apm_pos[PM_TIME][Y_POS];
	ampm_dat[PM_TIME].wdat = apm_wdat[PM_TIME];
	for (i=0; i<APM_SIZE; i++) ampm_dat[PM_TIME].wdat[i] += chr_no;
	font_set_colordata(chr_pos, ampm_dat[PM_TIME].size_all,
	 apm_chr_dat[PM_TIME]);
	chr_pos += ampm_dat[PM_TIME].size_all;
	chr_no += APM_SIZE * 2;

	/*   ミスの文字 */
	miss_mes_dat.size_x = MIS_SIZE_X;
	miss_mes_dat.size_y = MIS_SIZE_Y;
	miss_mes_dat.size_all = MIS_SIZE;
	miss_mes_dat.pos_x = mis_pos[X_POS];
	miss_mes_dat.pos_y = mis_pos[Y_POS];
	miss_mes_dat.wdat = mis_wdat;
	for (i=0; i<MIS_SIZE; i++) miss_mes_dat.wdat[i] += chr_no;
	font_set_colordata(chr_pos, miss_mes_dat.size_all, mis_chr_dat);
	chr_pos += miss_mes_dat.size_all;
	chr_no += MIS_SIZE;

	/*   ミスマーク */
	for (i=0; i<MAK_COUNT; i++)
	{
		miss_mak_dat[i].size_x = MAK_SIZE_X;
		miss_mak_dat[i].size_y = MAK_SIZE_Y;
		miss_mak_dat[i].size_all = MAK_SIZE;
		miss_mak_dat[i].pos_x = mak_pos[i][X_POS];
		miss_mak_dat[i].pos_y = mak_pos[i][Y_POS];
		miss_mak_dat[i].wdat = mak_wdat[i];
		for (j=0; j<MAK_SIZE; j++) miss_mak_dat[i].wdat[j] += chr_no;
		font_set_colordata(chr_pos, miss_mak_dat[i].size_all, mak_chr_dat[i]);
		chr_pos += miss_mak_dat[i].size_all;
	}
	chr_no += MAK_COUNT * MAK_SIZE;

	/*   プレイヤーアウト時のエフェクト */
	for (i=0; i<OUT_COUNT; i++)
	{
		ply_out_dat[i].size_x = OUT_SIZE_X;
		ply_out_dat[i].size_y = OUT_SIZE_Y;
		ply_out_dat[i].size_all = OUT_SIZE;
		ply_out_dat[i].pos_x = out_pos[i][X_POS];
		ply_out_dat[i].pos_y = out_pos[i][Y_POS];
		ply_out_dat[i].wdat = out_wdat[i];
		for (j=0; j<OUT_SIZE; j++) ply_out_dat[i].wdat[j] += chr_no;
		font_set_colordata(chr_pos, ply_out_dat[i].size_all, out_chr_dat[i]);
		chr_pos += ply_out_dat[i].size_all;
	}
	chr_no += OUT_COUNT * OUT_SIZE;

	/* メニュー用の枠のキャラクタと表示用データをセットする */
	for (i=0; i<3; i++) font_set_colordata((chr_no + i), 1, bdr_chr_dat[i]);
	menu_char.line_dat[0] = chr_no | (BORDER_PALETTE << 9);
	menu_char.line_dat[1] = (chr_no + 1) | (BORDER_PALETTE << 9);
	menu_char.line_dat[2] = (CFM_FLIP_H | chr_no) | (BORDER_PALETTE << 9);
	menu_char.line_dat[3] =
	 (CFM_FLIP_V | (chr_no + 1)) | (BORDER_PALETTE << 9);
	menu_char.corner_dat[0] = (chr_no + 2) | (BORDER_PALETTE << 9);
	menu_char.corner_dat[1] =
	 (CFM_FLIP_H | (chr_no + 2)) | (BORDER_PALETTE << 9);
	menu_char.corner_dat[2] =
	 (CFM_FLIP_V | (chr_no + 2)) | (BORDER_PALETTE << 9);
	menu_char.corner_dat[3] =
	 (CFM_FLIP_V | CFM_FLIP_H | (chr_no + 2)) | (BORDER_PALETTE << 9);
	chr_pos += 3;
	chr_no += 3;

	return chr_no;
}


/*********************************************/
/* 背景のキャラクタのセット、表示を行う      */
/* int chr_no:セットする先頭のキャラクタ番号 */
/*********************************************/
void back_write(int chr_no)
{
	/* 背景用キャラクタのブロックのパラメータ */
	struct {
		int size_x, size_y; /* サイズ（X、Y方向） */
		int pos_x, pos_y; /* 座標 */
		int wdat[MAX_BACK_CHAR_SIZE]; /* キャラクタデータの並び */
	} back_char[BACK_CHAR_COUNT];

	/* キャラクタのデータ */
	static unsigned int back_data[BACK_PARTS][8] =
	 {{0x0000, 0x0000, 0x0000, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00},
	  {0xFF00, 0xFFFF, 0xFFFF, 0xFF00, 0x00FF, 0x44BB, 0xAA55, 0xAA55},
	  {0x0000, 0xE0E0, 0xE0E0, 0xF00F, 0x18E7, 0x48B0, 0xA850, 0xA850},
	  {0xAA55, 0xAA55, 0xAA55, 0xAA55, 0xAA55, 0xAA55, 0xAA55, 0xAA55},
	  {0xA850, 0xA850, 0xA850, 0xA857, 0xA857, 0xA850, 0xA850, 0xA850},
	  {0xAA55, 0xAA55, 0x44BB, 0x00FF, 0x00FF, 0xFFFF, 0xFFFF, 0xFF00},
	  {0xA850, 0xA850, 0x48B0, 0x08F7, 0x08F7, 0xFFFF, 0xFFFF, 0x0000},
	  {0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00, 0xFF00},
	  {0x0000, 0x0000, 0x0000, 0x00FF, 0x00FF, 0x0000, 0x0000, 0x0000},
	  {0xFF00, 0xFF00, 0xFF00, 0x00FF, 0x00FF, 0xFFFF, 0xFFFF, 0xFF00},
	  {0x0000, 0x3838, 0x3838, 0x00FF, 0x00FF, 0xFFFF, 0xFFFF, 0x0000},
	  {0x0000, 0x0000, 0x0000, 0x0101, 0x0303, 0x0303, 0x0303, 0x0203},
	  {0x0000, 0x0000, 0xF8F8, 0xFCFC, 0x80FE, 0x24B6, 0x0093, 0x00FF},
	  {0x0000, 0x0038, 0x007C, 0x007C, 0x007C, 0x0038, 0x3838, 0x3838},
	  {0x0001, 0x0000, 0x0000, 0x0000, 0x0101, 0x0303, 0x0303, 0x0303},
	  {0x00FF, 0x00FE, 0x007C, 0xFEFE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
	  {0x7878, 0x7070, 0x7070, 0xF0F0, 0xF0F0, 0xE0E0, 0xC0C0, 0x8080},
	  {0x0C0C, 0x1F1F, 0x1F1F, 0x3B3B, 0x3B3B, 0x3B3B, 0x3B3B, 0x3939},
	  {0xF8F8, 0xFCFC, 0xFEFE, 0xE3FF, 0xC0F2, 0x84F6, 0x00FE, 0x00FC},
	  {0x0000, 0x0038, 0x007C, 0x007C, 0x007C, 0x0038, 0x3838, 0x3838},
	  {0x1818, 0x1010, 0x0000, 0x0101, 0x0303, 0x0303, 0x0303, 0x0303},
	  {0x80F8, 0x7878, 0xFCFC, 0xFEFE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
	  {0x3C3C, 0x3C3C, 0x3C3C, 0x7878, 0xF8F8, 0xF0F0, 0xE0E0, 0x8080},
	  {0x3E3E, 0x7F7F, 0xFFFF, 0x0F7F, 0x43DF, 0x039F, 0x01FF, 0x01FF},
	  {0x0000, 0x001C, 0x80BE, 0x80BE, 0x80BE, 0x809C, 0x9C9C, 0x9C9C},
	  {0x0000, 0x0000, 0x0000, 0x0000, 0x0101, 0x0101, 0x0303, 0x0303},
	  {0x017F, 0x003C, 0x7C7C, 0xFEFE, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
	  {0x1C1C, 0x3C3C, 0x7C7C, 0x7878, 0xF8F8, 0xF0F0, 0xE0E0, 0x0000},
	  {0x0000, 0x0000, 0x0000, 0x0101, 0x0303, 0x0007, 0x020E, 0x000C},
	  {0x0000, 0x0000, 0x0000, 0xE0E0, 0xF0F0, 0x38F8, 0x18F8, 0x18F8},
	  {0x0000, 0x000C, 0x001E, 0x030C, 0x0700, 0x0000, 0x0000, 0x0000},
	  {0x000F, 0x0007, 0x0003, 0x8700, 0xFF00, 0xFF00, 0x0F00, 0x0F00},
	  {0x18F8, 0x10F0, 0x00C0, 0xE000, 0xF800, 0xFC00, 0xFC00, 0xFE00},
	  {0x0F00, 0x0F07, 0x1F1F, 0x3F3F, 0x303F, 0x0012, 0x093B, 0x003F},
	  {0xF600, 0xF6E0, 0xFEF8, 0xF2FC, 0x70FC, 0x3C7C, 0x1C7C, 0x1CFC},
	  {0x0000, 0x0038, 0x007C, 0x007C, 0x017D, 0x0139, 0x3B3B, 0x7B7B},
	  {0x1F1F, 0x3F3F, 0xFFFF, 0xE0FF, 0xC9ED, 0xC0E4, 0x80FF, 0x007F},
	  {0x0000, 0x8080, 0xE0E0, 0xF0F0, 0x70F0, 0x78F8, 0x58D8, 0x18D8},
	  {0x003F, 0x001F, 0x000F, 0x0807, 0x1F03, 0x1F03, 0x3F23, 0x7F61},
	  {0x0CFC, 0x08F8, 0x00F0, 0x10E0, 0xF8C0, 0xF8C0, 0xFCC4, 0xFE86},
	  {0x7B7B, 0x7979, 0x7878, 0x3C3C, 0x3E3E, 0x1F1F, 0x0F0F, 0x0707},
	  {0x003F, 0x001F, 0x3F3F, 0x7F7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
	  {0x1898, 0x1010, 0x8080, 0xC0C0, 0xE1E1, 0xF1F1, 0xF1F1, 0xF1F1},
	  {0x7977, 0xF1FF, 0xF1FF, 0xF1FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
	  {0x9EEE, 0x8FFF, 0x8FFF, 0x8FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}};

	/* ブロックのキャラクタデータの並び */
	static int back_wdat[BACK_CHAR_COUNT][MAX_BACK_CHAR_SIZE] =
	 {{12, 13, 14, 15, 16, 17},
	  {18, 19, 20, 21, 22, 23},
	  { 0, 24, 25, 26, 27, 28},
	  { 0,  0,  0, 29, 30,  0,  0, 31, 32, 33,  0,  0,  0, 34, 35,
	   36, 37, 38, 39, 40, 41, 42, 43, 44, 45},
/*	  { 1,  0,  2,  3,  4,  5,  6,  7},
	  { 0,  1, 11, 10, 11, 10, 11, 10}}; */
	  {10, 11,  2,  3,  4,  5,  6,  7},
	  {11, 10, 11, 10, 11, 10, 11, 10}};

	/* ブロックのサイズ（X、Y方向） */
	static int back_size[BACK_CHAR_COUNT][2] =
	 {{ 3,  2}, { 3,  2}, { 3,  2}, { 5,  5}, { 2,  4}, { 2,  4}};

	/* ブロックの座標 */
	static int back_pos[BACK_CHAR_COUNT][2] =
	 {{ 2, 16}, { 8, 16}, {14, 16}, {20, 13},/* { 0,  3}, {26,  3}};*/
{ 0, 4}, {26, 4}};
	int i, j; /* ループカウンタ */

	/* ブロックのパラメータをセットする */
	for (i=0; i<BACK_CHAR_COUNT; i++)
	{
		back_char[i].size_x = back_size[i][X_SIZE];
		back_char[i].size_y = back_size[i][Y_SIZE];
		back_char[i].pos_x = back_pos[i][X_POS];
		back_char[i].pos_y = back_pos[i][Y_POS];
		for (j=0; j<(back_size[i][X_SIZE] * back_size[i][Y_SIZE]); j++)
		{
			if (back_wdat[i][j] == 0)
				back_char[i].wdat[j] = back_wdat[i][j] WRITE_ON;
			else
				back_char[i].wdat[j] = (back_wdat[i][j] + chr_no - 1) WRITE_ON;
		}
	}

	/* 背景用キャラクタをセットする */
	for (i=0; i<BACK_PARTS; i++) font_set_colordata((chr_no + i), 1,
	 back_data[i]);

	/* スクリーン１（背景用）を全消去する */
	screen_fill_char(SCREEN1, 0, 0, 32, 32, NULL_CHAR);

	/* 背景を表示する */
	screen_fill_char(SCREEN1, 0, 4, 1, 14, ((7 + chr_no) WRITE_ON));
	screen_fill_char(SCREEN1, 27, 4, 1, 14, ((7 + chr_no) WRITE_ON));
	screen_fill_char(SCREEN1, 0, 3, 1, 1, ((0 + chr_no) WRITE_ON));
	screen_fill_char(SCREEN1, 27, 3, 1, 1, ((0 + chr_no) WRITE_ON));
	screen_fill_char(SCREEN1, 2, 4, 24, 4, ((8 + chr_no) WRITE_ON));
	for (i=0; i<BACK_CHAR_COUNT; i++)
		screen_set_char(SCREEN1, back_char[i].pos_x, back_char[i].pos_y,
		 back_char[i].size_x, back_char[i].size_y, back_char[i].wdat);
}


/***********************************************************/
/* キャラクタの表示・消去を行う                            */
/* chr_fmt *chr_dat:対象のキャラクタパラメータへのポインタ */
/* int w_flag:表示・消去の指定（WRITE・DELETEで指定）      */
/***********************************************************/
void chr_write(chr_fmt *chr_dat, int w_flag)
{
	unsigned int buffer[28 * 18]; /* キャラクタ表示用のバッファ */
	int i; /* ループカウンタ */

	/* バッファに表示・消去用のデータをセットする */
	switch (w_flag)
	{
	case WRITE:
		for (i=0; i<(chr_dat->size_all); i++)
			buffer[i] = chr_dat->wdat[i] WRITE_ON;
		break;
	case DELETE:
		for (i=0; i<(chr_dat->size_all); i++)
			buffer[i] = NULL_CHAR;
		break;
	}

	/* バッファを表示する */
	screen_set_char(SCREEN2, chr_dat->pos_x, chr_dat->pos_y, chr_dat->size_x,
	 chr_dat->size_y, buffer);
}


/******************************************************/
/* 数字を表示・消去する                               */
/* int num:表示する数                                 */
/* int w_flag:表示・削除の指定（WRITE・DELETEで指定） */
/******************************************************/
void num_write(int num, int w_flag)
{
	/* 数を桁ごとに分解するための作業用 */
	int work1 = num, work2 = num;

	int i; /* ループカウンタ */

	for (i=0; i<4; i++)
	{

		/* 表示する桁を取り出す */
		if (work1 != 0)
		{
			work1 /= 10;
			work2 -= work1 * 10;
		}

		/* 表示・消去を行う（上位の桁の0は表示しない） */
		if (((work1 == 0) && (work2 == 0) && (i > 0))
		 || (w_flag == DELETE))
			screen_fill_char(SCREEN2, num_pos[i][X_POS],
			 num_pos[i][Y_POS], number_dat[work2].size_x,
			 number_dat[work2].size_y, NULL_CHAR);
		else
			screen_set_char(SCREEN2, num_pos[i][X_POS], num_pos[i][Y_POS],
			 number_dat[work2].size_x, number_dat[work2].size_y,
			 number_dat[work2].wdat);
		work2 = work1;
	}

	/* 消去の場合は午前・午後の文字や「：」も消去する */
	if (w_flag == DELETE)
	{
		chr_write(&ampm_dat[AM_TIME], DELETE);
		chr_write(&ampm_dat[PM_TIME], DELETE);
		chr_write(&time_dat, DELETE);
	}
}


/******************/
/* 時刻を表示する */
/******************/
void time_write(void)
{
	int hr = rtc_get_datetime(4); /* 時刻の「時間」部 */
	int time_mode; /* 午前・午後の識別用（AM_TIME、PM_TIME） */
	static int flip = WRITE; /* 表示・消去の識別用（「：」の点滅）*/

	/* 12時間表示であれば午前・午後の文字を表示する */
	if (hour_mode == hour_12)
	{
		if (hr >= 12)
		{
			hr -= 12;
			time_mode = PM_TIME;
		}
		else time_mode = AM_TIME;
		chr_write(&ampm_dat[(time_mode ^ (AM_TIME ^ PM_TIME))], DELETE);
		chr_write(&ampm_dat[(time_mode)], WRITE);
	}
	else
	{
		chr_write(&ampm_dat[AM_TIME], DELETE);
		chr_write(&ampm_dat[PM_TIME], DELETE);
	}

	/* 時刻の表示（時間を100倍して秒に足し、4桁の整数として数字表示する） */
	num_write((hr * 100) + rtc_get_datetime(5), WRITE);

	/* 0時の場合は時間部に0を表示する */
	/* （上記の方法では時間は最上位の桁な為、0時が表示されない） */
	if (hr == 0)
		screen_set_char(SCREEN2, num_pos[2][X_POS], num_pos[2][Y_POS],
		 number_dat[0].size_x, number_dat[0].size_y, number_dat[0].wdat);

	/* 「：」の表示（呼び出される度に表示・消去を繰り返す） */
	chr_write(&time_dat, flip);
	flip ^= (WRITE ^ DELETE);
}


/**************************/
/* 全キャラクタを表示する */
/**************************/
void all_chr_write(void)
{
	int i, j; /* ループカウンタ */

	/* プレイヤー */
	for (i=0; i<PLY_COUNT; i++) chr_write(&player_dat[i], WRITE);
	for (i=0; i<OUT_COUNT; i++) chr_write(&ply_out_dat[i], WRITE);

	/* 風船 */
	for (i=0; i<(PLY_COUNT - 1); i++)
		for (j=0; j<OBJ_COUNT; j++) chr_write(&object_dat[i][j], WRITE);
	chr_write(&object_dat[(PLY_COUNT - 2)][OBJ_COUNT], WRITE);

	/* アラームキャラクタ（全表示用のキャラクタ） */
	chr_write(&alarm_dat[(ALM_COUNT - 1)], WRITE);

	/* 数字（「８８：８８」と表示） */
	num_write(8888, WRITE);
	chr_write(&time_dat, WRITE);

	/* 午前・午後の文字 */
	for (i=0; i<2; i++) chr_write(&ampm_dat[i], WRITE);

	/* ミス（文字、マーク） */
	chr_write(&miss_mes_dat, WRITE);
	for (i=0; i<MAK_COUNT; i++) chr_write(&miss_mak_dat[i], WRITE);
}

/****************************/
/* 表示関係の初期設定を行う */
/****************************/
void display_init(void)
{
	int chr_no; /* 設定するキャラクタ番号（背景表示の関数用） */
	int wait_second; /* 全キャラクタ表示時の待ち時間計算用 */

	screen_init(); /* 画面を初期化する */
	chr_no = chr_set(); /* キャラクタをセットする */
	screen_clear(); /* 画面を消去する（スクリーン２） */
	back_write(chr_no); /* 背景を表示する */
	all_chr_write(); /* 全キャラクタを表示する */

	/* １０秒たつか、スタートボタンが押されると次へ進む */
	wait_second = rtc_get_datetime(6);
	while ((rtc_get_datetime(6) < (wait_second + 10)) &&
	 (!(key_press_check() & KEY_START)));
	screen_clear();
}


#endif
