/************************************************************************
 *									*
 *	£Å£Å£Ð£Ò£Ï£Í ¥×¥í¥°¥é¥à ¥Ø¥Ã¥À¡¼				*
 *				1997Ç¯ 1·î13Æü(·îÍËÆü) 13»þ31Ê¬37ÉÃ JST	*
 ************************************************************************/

#define		EEPROM_SIZE	(EEPROM_BLOCK_SIZE * EEPROM_MAXBLOCKS)

typedef struct {
    unsigned char amari : 3;    
    unsigned char extra_medal : 1;    
    unsigned char extra_clear : 1;    
    unsigned char course_in : 1;    
    unsigned char medal : 1;    
    unsigned char clear : 1;    
} pla_stat_t;

typedef struct {
    unsigned short hitcnt : 8;
    unsigned short stage_no : 4;    
    unsigned short hitcnt_h : 1;    
    unsigned short live_peppy : 1;    
    unsigned short live_falco : 1;    
    unsigned short live_slippy : 1;    
} satage_t;

typedef struct {
    pla_stat_t		pl_stat[16];
    unsigned char	no_data1[4];
    unsigned char	sound_mode;
    unsigned char	sound_music;
    unsigned char	sound_voice;
    unsigned char	sound_se;
    unsigned char 	rank_name[10][3];
    unsigned char 	rank_rootptr[10];
    unsigned char	rank_zanki[10];
    unsigned short	rank_time[10];
    satage_t		rank_stage[10][7];
    unsigned char	last_rname;
    unsigned char	no_data2[3];
} eeprom_t;

typedef struct {
    unsigned char	data[EEPROM_SIZE / 2 - 2];
    unsigned short	check;
} check_t;

typedef union {
    eeprom_t		data;
    check_t		ckeck_sum;
} eeprom_u;

typedef union {
    eeprom_u		rom[2];
    unsigned char	uc[EEPROM_SIZE];
} eeprom;

/* ¥Ç¡¼¥¿µ­Ï¿ÎÎ°è */
extern eeprom	eeprom_data;

/*======================================================================*
 *									*
 *	£Å£Å£Ð£Ò£Ï£Í £×£Ò£É£Ô£Å						*
 *									*
 *======================================================================*/
int eeprom_write(
    eeprom	*
);

/*======================================================================*
 *									*
 *	£Å£Å£Ð£Ò£Ï£Í £Ò£Å£Á£Ä						*
 *									*
 *======================================================================*/
int eeprom_read(
    eeprom	*
);
