⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 extffs.c

📁 M-System DOC(Disk on a Chip) Flash芯片映像读写工具, 可以进行二片Flash芯片的内容互相拷贝, 提高烧录程序的效率.
💻 C
字号:
/*---------------------------------------------------------------------------------*/
#include "excustom.h"
#include "extffs.h"



#ifdef EX_USE_TFFS_DOC_TYPES
/***********************************************************************
 * Name : TranslateTffsDocType
 *   Translates tffs DOC enums to strings.
 *
 * Parameters:
 *   bType   - DOC type to be tranlated
 *
 * Outputs:
 *   returns a pointer to a string
 ***********************************************************************/

const EXCHAR* EXAPI TranslateTffsDocType(const EXBYTE bType)
{
	switch(bType)
	{
	case FL_DOC:
		return (EXCHAR*)"DiskOnChip 2000";
	case FL_MDOC:
		return (EXCHAR*)"Millennium DiskOnChip";
	case FL_DOC2000TSOP:
		return (EXCHAR*)"DiskOnChip 2000 TSOP";
	case FL_MDOCP_16:
		return (EXCHAR*)"Millennium DiskOnChip Plus 16M";
	case FL_MDOCP:
		return (EXCHAR*)"Millennium DiskOnChip Plus 32M";

#if EX_TFFS_VERSION >= 6000
	case FL_DOC_OREN:
		return (EXCHAR*)"DiskOnChip 2000 G3";
#endif

#if EX_TFFS_VERSION > 6000
	case FL_MDOC512_G3:
		return (EXCHAR*)"Mobile DiskOnChip G3 512Mbit";
	case FL_MDOC256_P3:
        return (EXCHAR*)"Mobile DiskOnChip P3 256Mbit";
	case FL_MDOC256_G3:
		return (EXCHAR*)"Mobile DiskOnChip G3 256Mbit";
	case FL_MDOC128_P3:
        return (EXCHAR*)"Mobile DiskOnChip P3 128Mbit";
	case FL_AMD_NOR:
		return (EXCHAR*)"AMD NOR";
	case FL_SEIJA:
		return (EXCHAR*)"SEIJA";
#endif

	default:
		return (EXCHAR*)"Not DiskOnChip";
	}
}

#endif /* EX_USE_TFFS_DOC_TYPES */



#ifdef EX_USE_BDK_DOC_TYPES
/***********************************************************************
 * Name : TranslateBdkDocType
 *   Translates bdk DOC enums to strings.
 *
 * Parameters:
 *   bType   - DOC type to be tranlated
 *
 * Outputs:
 *   returns a pointer to a string
 ***********************************************************************/

const EXCHAR* EXAPI TranslateBdkDocType(const EXBYTE bType)
{
	switch(bType)
	{
	case DOC_TYPE:
		return (EXCHAR*)"DiskOnChip 2000";
	case MDOC_TYPE:
		return (EXCHAR*)"Millennium DiskOnChip";
	case DOC2000TSOP_TYPE:
		return (EXCHAR*)"DiskOnChip 2000 TSOP";
	case MDOCP_16_TYPE:
		return (EXCHAR*)"Millennium DiskOnChip Plus 16M";
	case MDOCP_TYPE:
		return (EXCHAR*)"Millennium DiskOnChip Plus 32M";

#if EX_TFFS_VERSION >= 6000
	case DOC_OREN_TYPE:
		return (EXCHAR*)"DiskOnChip OREN";
#endif

	default:
		return (EXCHAR*)"Not DiskOnChip";
	}
}

#endif /* EX_USE_BDK_DOC_TYPES */



#ifdef EX_TRANSLATE_FLSTATUS
/***********************************************************************
 * Name : TranslateFLStatus
 *   Translates FLStatus enums to a string.
 *
 * Parameters:
 *   bStat   - status to be tranlated
 *
 * Outputs:
 *   returns a pointer to a string
 ***********************************************************************/

const EXCHAR* EXAPI TranslateFLStatus(const FLStatus bStat)
{
	switch(bStat)
	{
	case flOK:
		return (EXCHAR*)"OK";
	case flBadFunction:
		return (EXCHAR*)"BadFunction";
	case flFileNotFound:
		return (EXCHAR*)"FileNotFound";
	case flPathNotFound:
		return (EXCHAR*)"PathNotFound";
	case flTooManyOpenFiles:
		return (EXCHAR*)"TooManyOpenFiles";
	case flNoWriteAccess:
		return (EXCHAR*)"NoWriteAccess";
	case flBadFileHandle:
		return (EXCHAR*)"BadFileHandle";
	case flDriveNotAvailable:
		return (EXCHAR*)"DriveNotAvailable";
	case flNonFATformat:
		return (EXCHAR*)"NonFATformat";
	case flFormatNotSupported:
		return (EXCHAR*)"FormatNotSupported";
	case flNoMoreFiles:
		return (EXCHAR*)"NoMoreFiles";
	case flWriteProtect:
		return (EXCHAR*)"WriteProtect";
	case flBadDriveHandle:
		return (EXCHAR*)"BadDriveHandle";
	case flDriveNotReady:
		return (EXCHAR*)"DriveNotReady";
	case flUnknownCmd:
		return (EXCHAR*)"UnknownCmd";
	case flBadFormat:
		return (EXCHAR*)"BadFormat";
	case flBadLength:
		return (EXCHAR*)"BadLength";
	case flDataError:
		return (EXCHAR*)"DataError";
	case flUnknownMedia:
		return (EXCHAR*)"UnknownMedia";
	case flSectorNotFound:
		return (EXCHAR*)"SectorNotFound";
	case flOutOfPaper:
		return (EXCHAR*)"OutOfPaper";
	case flWriteFault:
		return (EXCHAR*)"WriteFault";
	case flReadFault:
		return (EXCHAR*)"ReadFault";
	case flGeneralFailure:
		return (EXCHAR*)"GeneralFailure";
	case flDiskChange:
		return (EXCHAR*)"DiskChange";
	case flVppFailure:
		return (EXCHAR*)"VppFailure";
	case flBadParameter:
		return (EXCHAR*)"BadParameter";
	case flNoSpaceInVolume:
		return (EXCHAR*)"NoSpaceInVolume";
	case flInvalidFATchain:
		return (EXCHAR*)"InvalidFATchain";
	case flRootDirectoryFull:
		return (EXCHAR*)"RootDirectoryFull";
	case flNotMounted:
		return (EXCHAR*)"NotMounted";
	case flPathIsRootDirectory:
		return (EXCHAR*)"PathIsRootDirectory";
	case flNotADirectory:
		return (EXCHAR*)"NotADirectory";
	case flDirectoryNotEmpty:
		return (EXCHAR*)"DirectoryNotEmpty";
	case flFileIsADirectory:
		return (EXCHAR*)"FileIsADirectory";
	case flAdapterNotFound:
		return (EXCHAR*)"AdapterNotFound";
	case flFormattingError:
		return (EXCHAR*)"FormattingError";
	case flNotEnoughMemory:
		return (EXCHAR*)"NotEnoughMemory";
	case flVolumeTooSmall:
		return (EXCHAR*)"VolumeTooSmall";
	case flBufferingError:
		return (EXCHAR*)"BufferingError";
	case flFileAlreadyExists:
		return (EXCHAR*)"FileAlreadyExists";
	case flIncomplete:
		return (EXCHAR*)"Incomplete";
	case flTimedOut:
		return (EXCHAR*)"TimedOut";
	case flTooManyComponents:
		return (EXCHAR*)"TooManyComponents";
	case flTooManyDrives:
		return (EXCHAR*)"TooManyDrives";
	case flTooManyBinaryPartitions:
		return (EXCHAR*)"TooManyBinaryPartitions";
	case flPartitionNotFound:
		return (EXCHAR*)"PartitionNotFound";
	case flFeatureNotSupported:
		return (EXCHAR*)"FeatureNotSupported";
	case flWrongVersion:
		return (EXCHAR*)"WrongVersion";
	case flTooManyBadBlocks:
		return (EXCHAR*)"TooManyBadBlocks";
	case flNotProtected:
		return (EXCHAR*)"NotProtected";
	case flUnchangeableProtection:
        return (EXCHAR*)"UnchangeableProtection";
	case flBadBBT:
		return (EXCHAR*)"BadBBT";
	case flInterleaveError:
        return (EXCHAR*)"InterleavError";
	case flWrongKey:
		return (EXCHAR*)"WrongKey";
	case flHWProtection:
		return (EXCHAR*)"HWProtection";
	case flBadDownload:
		return (EXCHAR*)"BadDownload";

#if EX_TFFS_VERSION > 5000
	case flLeftForCompetability:
		return (EXCHAR*)"LeftForCompetability";
	case flMultiDocContradiction:
		return (EXCHAR*)"MultiDocContradiction";
	case flCanNotFold:
		return (EXCHAR*)"CanNotFold";
	case flBadIPLBlock:
		return (EXCHAR*)"BadIPLBlock";
	case flIOCommandBlocked:
		return (EXCHAR*)"IOCommandBlocked";

#if EX_TFFS_VERSION >= 5200
	case flTooManyTransactions:
		return (EXCHAR*)"TooManyTransactions";
	case flBadTransaction:
		return (EXCHAR*)"BadTransaction";
	case flUnitIsNotErased:
		return (EXCHAR*)"UnitIsNotErased";
	case flSequenceError:
		return (EXCHAR*)"SequenceError";
	case flFIFOTimeOut:
		return (EXCHAR*)"FIFOTimeOut";
	case flUnitIsBad:
		return (EXCHAR*)"UnitIsBad";
#endif
#endif

  default:
		return (EXCHAR*)"Unknown status";
	}
}

#endif /* EX_TRANSLATE_FLSTATUS */



#ifdef EX_TRANSLATE_FLASH_ID
/***********************************************************************
 * Name : TranslateFlashId
 *   Translates id in hex to a string.
 *
 * Parameters:
 *   wId   - a number that represent the plash ID
 *
 * Outputs:
 *   returns a pointer to a string that is the flash name
 ***********************************************************************/

const EXCHAR* EXAPI TranslateFlashId(const EXWORD wId)
{
	switch(wId)
	{
	case 0xec64:
		return (EXCHAR*)"KM29N16000";
	case 0xece5:
		return (EXCHAR*)"KM29N32000";
	case 0xece6:
		return (EXCHAR*)"KM29V64000";
	case 0xec73:
	case 0xec53:
		return (EXCHAR*)"KM29V128000";
	case 0xec75:
	case 0xec55:
		return (EXCHAR*)"KM29V256000";
	case 0xec76:
	case 0xec56:
		return (EXCHAR*)"KM29V512000";
	case 0xec79:
		return (EXCHAR*)"KM29V1024000";
	case 0xecF1:
	case 0xecC1:
		return (EXCHAR*)"K9F1G08U0M";
	case 0xecDA:
	case 0xecCA:
		return (EXCHAR*)"K9F2G08U0M";
	case 0xecDC:
	case 0xecCC:
		return (EXCHAR*)"K9F4G08U0M";



	case 0x8f64:
		return (EXCHAR*)"NM29N16";
	case 0x8fe5:
		return (EXCHAR*)"NM29N32";
	case 0x8fe6:
		return (EXCHAR*)"NM29N64";
	case 0x9864:
		return (EXCHAR*)"TC5816";
	case 0x98e5:
		return (EXCHAR*)"TC5832";
	case 0x98e6:
		return (EXCHAR*)"TC5864";
	case 0x9873:
		return (EXCHAR*)"TC58128";
	case 0x9875:
		return (EXCHAR*)"TC58256";
	case 0x9876:
		return (EXCHAR*)"TC58512";
	case 0x9877:
		return (EXCHAR*)"TC581024";
	case 0x9879:
		return (EXCHAR*)"TC58010";
	case 0x98F1:
		return (EXCHAR*)"TC58NVG0S3AFT05";
	case 0x98DA:
		return (EXCHAR*)"TC58NVG1S3AFT05";
	case 0x98DC:
		return (EXCHAR*)"TC58020FT";
	case 0xC176:
		return (EXCHAR*)"TC58256";

	default:
		return (EXCHAR*)"Unknown flash ID";
	}
}

#endif /* EX_TRANSLATE_FLASH_ID */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -