rem: s32 CARD_Open(u32 chn,const char *filename,card_file *file)
add: s32 CARD_Open(s32 chn,const char *filename,card_file *file)
context: s32 CARD_Open(u32 chn,const char *filename,card_file *file){	s32 ret,fileno;	struct card_dir *dirblock = NULL;	card_block *card = NULL;	if(chn<EXI_CHANNEL_0 || chn>=EXI_CHANNEL_2) return CARD_ERROR_NOCARD;		file->filenum = -1;	if((ret=__card_getcntrlblock(chn,&card))<0) return ret;	if((ret=__card_getfilenum(card,filename,&fileno))<0) {		__card_putcntrlblock(card,ret);		return ret;	}	dirblock = __card_getdirblock(card);	if(dirblock->entries[fileno].block<5 || dirblock->entries[fileno].block>=card->blocks) {		__card_putcntrlblock(card,CARD_ERROR_BROKEN);		return CARD_ERROR_BROKEN;	}	file->chn = chn;	file->filenum = fileno;	file->offset = 0;	file->iblock = dirblock->entries[fileno].block;		__card_putcntrlblock(card,CARD_ERROR_READY);	return CARD_ERROR_READY;}