📄 doslink.h
字号:
#ifndef _doslink_
#define _doslink_
//------------------------------------------------------------------------------
//Constant
//------------------------------------------------------------------------------
#define K_DOS_NoSdramMode 1
#define K_DOS_UseNandAsBuffer 1
//-------------------------------------
//dosfat.c
//-------------------------------------
#define K_DOS_SectorSize 512
#define K_DOS_DstSram 1
#define K_DOS_DstDram 2
#define K_DOS_DstUsb 3
#define K_DOS_SrcSram 1
#define K_DOS_SrcDram 2
#define K_DOS_SrcUsb 3
//-------------------------------------
//dosfile.c
//-------------------------------------
#define K_File_SrcAviFifo2Card 0
#define K_File_SrcAviDram2Card 1
#define K_File_SrcDataDram2Card 2
#define K_File_SrcDataDram2CardByPort 3 // HIS120-5
#define K_DOS_MatchName 1
#define K_DOS_MatchFree 2
#define K_DOS_MatchMinUsr 50
#define K_DOS_MatchMaxUsr 255
// access mode for file_open
#define K_DOS_NewFile 0x80
#define K_DOS_ReadFile 0x01
#define K_DOS_RootReadFile 0x02
//------------------------------------------------------------------------------
//Function prototype
//------------------------------------------------------------------------------
//-------------------------------------
//dosdir.c
//-------------------------------------
WORD DOS_RootFindName(BYTE* name);
WORD DOS_RootMakeDir(BYTE* name, WORD numCluster);
BYTE DOS_RootAddBaseFdb(BYTE* name, WORD startCluster, ULONG fileSize);
BYTE DOS_RootAddFdb(BYTE *fdb, BYTE matchCond, ULONG refCon);
WORD DOS_FindName(BYTE* name);
WORD DOS_MakeDir(BYTE* name, WORD numCluster);
WORD DOS_GetCurrDir(void);
void DOS_SetCurrDir(WORD currDir);
BYTE DOS_AddBaseFdb(BYTE* name, WORD startCluster, ULONG fileSize);
BYTE DOS_AddFdb(BYTE *fdb, BYTE matchCond, ULONG refCon);
WORD DOS_FindFdb(BYTE matchCond, ULONG refCon, ULONG logAddr, WORD siz, WORD *fdbOffset, ULONG *fdbLogAddr);
void DOS_FillBaseFdb(BYTE *fdb, BYTE *name, WORD startCluster, ULONG fileSize);
BYTE DOS_WriteDirInitData(WORD* fatReq, WORD currentStart, WORD parentStart);
BYTE DOS_DeleteFile(BYTE *buf, WORD fdbOffset, ULONG logAddr);
WORD DOS_SearchFdb(BYTE matchCond, ULONG refCon, ULONG ramStartAddr, ULONG ramEndAddr, WORD *pLastCluster, WORD *fdbOffset);
ULONG DOS_FindFile(WORD startCluster, BYTE matchCond, ULONG refCon, WORD *fdbOffset);
// WWWW0410
BYTE DOS_RootModifyFdb(BYTE *fdb, BYTE matchCond, ULONG refCon, BYTE modifyOffset, BYTE modifyLen);
BYTE DOS_ModifyFdb(BYTE *fdb, BYTE matchCond, ULONG refCon, BYTE modifyOffset, BYTE modifyLen);
BYTE DOS_GetFdb(BYTE *fdb, BYTE matchCond, ULONG refCon, ULONG *fdbLogAddr);
BYTE DOS_SetFdb(BYTE *fdb, ULONG fdbLogAddr);
BYTE DOS_RootGetFdb(BYTE *fdb, BYTE matchCond, ULONG refCon, ULONG *fdbLogAddr);
BYTE DOS_RootSetName(BYTE *name, WORD startCluster, ULONG fileSize);
//-------------------------------------
//dosfile.c
//-------------------------------------
BYTE File_Make(BYTE srcPath, ULONG ramAddr, BYTE* name, ULONG fileSize);
WORD File_Open(BYTE *name, BYTE rwMode, WORD numCluster);
BYTE File_Close(WORD fHandle, BYTE* name, BYTE rwMode, ULONG fileSize);
BYTE File_CloseErr(WORD fHandle, BYTE rwMode);
BYTE File_Delete(BYTE* name);
BYTE File_Delete1File(BYTE matchCond, ULONG refCon);
BYTE File_DeleteAllFile(BYTE matchCond, ULONG refCon);
//-------------------------------------
//dosfat.c
//-------------------------------------
WORD DOS_GetClusterSize(void);
BYTE DOS_Initialize(void);
BYTE DOS_LoadMBS(ULONG* pbsAddr);
BYTE DOS_LoadPBS(ULONG pbsAddr);
BYTE DOS_LoadFat(void);
BYTE DOS_SaveFat(WORD startCluster);
BYTE DOS_MakeFatChain(WORD* fatReq, BYTE continueSearh );
BYTE DOS_MakeFat12Chain(WORD* fatReq, BYTE continueSearh );
BYTE DOS_MakeFat16Chain(WORD* fatReq, BYTE continueSearh);
BYTE DOS_SetFatChain(WORD fatReq);
BYTE DOS_SetFat12Chain(WORD fatReq);
BYTE DOS_SetFat16Chain(WORD fatReq);
BYTE DOS_ConnectFatChain(void);
BYTE DOS_ConnectFat12Chain(void);
BYTE DOS_ConnectFat16Chain(void);
WORD DOS_GetNextCluster(WORD currCluster);
WORD DOS_GetNextCluster12(WORD currCluster);
WORD DOS_GetNextCluster16(WORD currCluster);
BYTE DOS_ClearFatChain(WORD startCluster);
BYTE DOS_ClearFat16Chain(WORD startCluster);
BYTE DOS_ClearFat12Chain(WORD startCluster);
ULONG DOS_ClusterLogAddr(WORD startCluster);
BYTE DOS_ReadSector(BYTE dstPath, ULONG logAddr, ULONG ramAddr);
BYTE DOS_ReadMoreSector(BYTE dstPath, ULONG logAddr, ULONG ramAddr, ULONG size);
BYTE DOS_WriteSector(BYTE srcPath, ULONG logAddr, ULONG ramAddr);
BYTE DOS_WriteMoreSector(BYTE srcPath, ULONG logAddr, ULONG ramAddr, ULONG size);
BYTE DOS_CheckDiskSpace(WORD *reqCluster);
WORD DOS_GetDiskSpace(void);
BYTE DOS_Format(BYTE eraseCard);
void DOS_SetError(WORD errCode);
void DOS_ClearError(void);
WORD DOS_GetError(void);
ULONG DOS_ReadLong(UCHAR *dataAry, WORD offset);
void DOS_FillLongAtSdram(ULONG ul);
BYTE DOS_InitReadFatSector(WORD currcluster);
BYTE DOS_ReadFatSector(ULONG logaddr);
BYTE DOS_CopyFattoFat(WORD startCluster, BYTE fat1tofat2);
BYTE DOS_SearchFatFree(void);
BYTE DOS_IdleStuff(void);
WORD DOS_IsFreeAvailable(void);
//-------------------------------------
//dosrw.c
//-------------------------------------
BYTE File_Write(WORD fHandle, BYTE srcPath, ULONG writeSize, ULONG ramAddr, BYTE findHeaderPage);
BYTE File_Read(WORD fHandle, BYTE dstPath, ULONG readSize, ULONG ramAddr, ULONG fpos);
void File_FifoWritePage2Card(ULONG startLogAddr,BYTE hasOldBlk);
BYTE File_ReadDataToDram(WORD fHandle, ULONG readSize, ULONG ramAddr, ULONG fOffset);
WORD File_FindPattern(WORD fHandle, BYTE *pat, WORD patSize, ULONG *pFOffset, ULONG *pSize, ULONG *pID);
ULONG File_ReadValue(WORD fHandle, ULONG *pFOffset, BYTE littleEndian, BYTE valueSize);
BYTE File_ReadSeek(WORD fHandle, ULONG fpos);
BYTE File_LWrite(WORD fHandle, BYTE srcPath, ULONG writeSize, ULONG ramAddr, BYTE findHeaderPage);
BYTE File_LRead(WORD fHandle, BYTE dstPath, ULONG readSize, ULONG ramAddr, ULONG fpos);
//BYTE File_ReadToSram(ULONG sectorIndex, ULONG totalSector, WORD *pCurrCluster, BYTE *pEOF);
BYTE File_ReadToSram(ULONG sectorIndex, ULONG totalSector);
//-------------------------------------
//dosusb.c
//-------------------------------------
BYTE DOS_UploadFdb(WORD fileCount, ULONG ramAddr);
BYTE DOS_UploadEccInfo(WORD eccCount);
BYTE DOS_Upload1File(BYTE matchCond, ULONG refCon);
//patch4.5@richie@partial file upload
BYTE DOS_UploadPartialFile(ULONG offset, ULONG length, WORD fileIndex);
BYTE DOS_GetUsbDataReady(void); // 500 use
//------------------------------------------------------------------------------
//External variable
//------------------------------------------------------------------------------
//-------------------------------------
//dosfat.c
//-------------------------------------
extern xdata BYTE G_DOS_SystemId;
extern xdata WORD G_DOS_SectorSize;
extern xdata WORD G_DOS_ClusterSize;
extern xdata WORD G_DOS_SectorPerFat;
extern xdata WORD G_DOS_TotalRootDir;
extern xdata BYTE G_DOS_FileSystemType;
extern xdata ULONG G_DOS_FatAddr;
extern xdata ULONG G_DOS_FatEndAddr;
extern xdata ULONG G_DOS_Fat2Addr;
extern xdata ULONG G_DOS_FatSize;
extern xdata ULONG G_DOS_RootDirAddr;
extern xdata ULONG G_DOS_DataAddr;
extern xdata WORD G_Card_TotalSizeMB;
extern xdata WORD G_DOS_TotalFreeCluster;
extern xdata WORD G_DOS_ErrCode;
extern xdata ULONG G_Card_SectorPerCard;
extern xdata WORD G_Card_BytePerSector;
extern xdata BYTE G_DOS_Stop_Initial;
extern xdata BYTE G_DOS_Initial_Status;
extern xdata ULONG G_DOS_SectorPerCard;
extern xdata ULONG G_DOS_HiddenSector;
extern xdata WORD G_DOS_ReserveSector;
extern xdata ULONG G_DOS_PBSAddr;
extern xdata WORD G_DOS_Head;
extern xdata WORD G_DOS_SectorPerTrack;
extern xdata WORD G_DOS_Cylinder;
extern xdata WORD G_DOS_SectorPerCluster;
extern data BYTE G_DOS_CardErrDetected; // patch 4.4-2@wyeo@abnormal action recovery
// WWWW0408
extern xdata WORD G_DOS_FileStartCluster;
//-------------------------------------
//dosfile.c
//-------------------------------------
//110102@wyeo, start
//extern xdata ULONG G_DOS_FilePos;
extern xdata WORD G_DOS_StartClusterNumber;
extern xdata ULONG G_DOS_FileWriteSize;
extern xdata ULONG G_DOS_FileBulkSize;
// avi related
//extern xdata WORD G_File_WritePageCount;
//end
extern idata BYTE G_File_PevDone;
extern xdata ULONG G_File_HdrLogAddr;
extern xdata ULONG G_File_HdrPhyAddr;
extern xdata WORD G_File_HdrLogBlock;
extern xdata ULONG G_File_FrameHdrLogAddr;
extern xdata ULONG G_File_FrameHdrPhyAddr;
extern xdata WORD G_File_FrameHdrLogBlock;
// HIS120-0001 start
extern xdata ULONG G_File_ReserveLogAddr[];
extern xdata ULONG G_File_ReservePhyAddr[];
extern xdata WORD G_File_ReserveLogBlock[];
extern xdata ULONG G_File_FrameReserveLogAddr[];
extern xdata ULONG G_File_FrameReservePhyAddr[];
extern xdata WORD G_File_FrameReserveLogBlock[];
// HIS120-0001 end
//-------------------------------------
//dosdir.c
//-------------------------------------
extern xdata WORD G_DOS_CurrDirCluster;
extern xdata ULONG G_DOS_FileSize;
extern xdata WORD G_DOS_CreateTime;
extern xdata WORD G_DOS_CreateDate;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -