📄 doslink.h
字号:
#ifndef _doslink_
#define _doslink_
//------------------------------------------------------------------------------
//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);
// K_DOS_HaveLinearFAT
BYTE DOS_File_Build_LinearFAT(WORD startCluster);
BYTE DOS_Build_LinearFAT(void);
WORD DOS_CalNumCluster(ULONG siz);
//-------------------------------------
//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);
//-------------------------------------
//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
//------------------------------------------------------------------------------
//Constant
//------------------------------------------------------------------------------
//-------------------------------------
//dosfat.c
//-------------------------------------
#define K_DOS_SectorSize 512
#define K_DOS_DstSram 1
#define K_DOS_DstDram 2
#define K_DOS_DstUsb 3
//richie@vc0422
#define K_DOS_DstBulk2Usb 4 // 533 use
#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
// WWWW0408
#define K_DOS_HaveLinearFAT 1
#define K_DOS_NewFile_LinearFAT 0x81
#define K_DOS_ReadFile_LinearFAT 0x03
#define K_DOS_RootReadFile_LinearFAT 0x04
//------------------------------------------------------------------------------
//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 data BIT G_File_AudioEnable;
extern data BIT G_File_SDRAM_Read;
extern idata ULONG G_DOS_SDRAM_NextIntRetAddr;
extern xdata ULONG G_DOS_SDRAM_FAT1Addr;
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 BIT G_DOS_CardErrDetected; // patch 4.4-2@wyeo@abnormal action recovery
// WWWW0408
extern xdata WORD G_DOS_FileStartCluster;
#if (K_DOS_HaveLinearFAT)
extern xdata ULONG G_DOS_SDRAM_LinearFATAddr;
extern data BIT G_DOS_UseLinearFAT;
extern xdata WORD G_DOS_LinearFATMax;
extern xdata WORD G_DOS_LinearFATTotal;
extern xdata WORD G_DOS_LinearFATIndex;
extern data BIT G_DOS_FATIsLinear;
#endif
// wyeo@0517
#define K_PreWriteOldBlock 0 // patch 4.4-4@wyeo@function not test, MUST NOT TURN ON
#if (K_PreWriteOldBlock)
extern data BIT G_SMC_PreWriteOldBlock;
extern data BIT G_SMC_EnablePreWriteOldBlock;
extern data BIT G_SMC_OldBlockIsNew;
extern data BIT G_SMC_FreshOldBlk;
BYTE SMC_PreWriteOldBlock(void);
#endif
//-------------------------------------
//dosfile.c
//-------------------------------------
extern xdata ULONG G_DOS_SDRAM_MaxAddr;
extern xdata ULONG G_DOS_FilePos;
// avi related
extern xdata WORD G_File_WritePageCount;
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 ULONG G_DOS_SDRAM_WorkAddr;
extern xdata ULONG G_DOS_SDRAM_WorkSize;
extern xdata WORD G_DOS_CreateTime;
extern xdata WORD G_DOS_CreateDate;
//ada@0501 for card write protect
#if (K_HAVE_L2)
extern xdata UCHAR G_DOS_FileAttribute;
extern xdata ULONG G_DOS_FdbAddress;
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -