📄 dosusr.c
字号:
//L2_DRAMWriteWord(0xff,0x00);
//patch4.4@ada@DPOF end
//For play back JPEG file speeding-up
//version4.0@ada@0513 for DCF
//L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 3),K_SDRAM_NoPrefetch); //ada@0401
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 10),K_SDRAM_NoPrefetch);
//L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 8),K_SDRAM_NoPrefetch);
//patch4.5@ada@Record DCF file name end
//Record file FDB logical address
L2_DRAMWriteWord((UCHAR)(G_DOS_FdbAddress & 0x000000ff),(UCHAR)((G_DOS_FdbAddress & 0x0000ff00) >> 8));
L2_DRAMWriteWord((UCHAR)((G_DOS_FdbAddress & 0x00ff0000) >> 16),(UCHAR)((G_DOS_FdbAddress & 0xff000000) >> 24));
//Record file attribute and file type
L2_DRAMWriteWord(fdb[11],K_USR_JPG_TYPE);
//Record file starting cluster
L2_DRAMWriteWord(fdb[26],fdb[27]);
//Record file size in bytes
L2_DRAMWriteWord(fdb[28],fdb[29]);
L2_DRAMWriteWord(fdb[30],fdb[31]);
//patch4.5@ada@Record DCF file name begin
//Record DCF file name
for (i = 0; i < 2; i++)
{
L2_DRAMWriteWord(fdb[i * 2],fdb[i * 2 + 1]);
}
//patch4.5@ada@Record DCF file name end
//patch4.3@ada@0618 for playback file index order
if (G_USR_FileCount)
{
if (G_USR_SearchNowFileIndex > G_USR_SearchPreFileIndex)
{
//Record previous file index(No matter JPG or AVI or WAV)
L2_DRAMWriteWord((UCHAR)(G_USR_SearchPreFileIndex & 0x00ff),(UCHAR)((G_USR_SearchPreFileIndex & 0xff00) >> 8));
L2_DRAMWriteWord(0x00,0x00);
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)G_USR_SearchPreFileIndex) - 1) * 10 + 9),K_SDRAM_NoPrefetch);
//L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)G_USR_SearchPreFileIndex) - 1) * 8 + 7),K_SDRAM_NoPrefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMWriteWord((UCHAR)(G_USR_SearchNowFileIndex & 0x00ff),(UCHAR)((G_USR_SearchNowFileIndex & 0xff00) >> 8));
}
else
{
NowIndex = G_USR_SearchNowFileIndex;
PreIndex = G_USR_SearchPreFileIndex;
G_USR_SearchNowFileIndex = PreIndex;
G_USR_LastFileIndex = PreIndex;
//patch4.4@ada@DPOF skip AVI & WAV begin
//patch4.4.1@ada@Fix DPOF bug begin
//G_USR_LastJpgFileIndex = PreIndex;
//patch4.4.1@ada@Fix DPOF bug end
//patch4.4@ada@DPOF skip AVI & WAV end
do
{
TempNowIndex = PreIndex;
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 10 + 8),K_SDRAM_Prefetch);
//L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 8 + 6),K_SDRAM_Prefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMReadWord(&tmp1,&tmp2);
PreIndex = (USHORT)tmp1 | (((USHORT)tmp2) << 8);
L2_DRAMReadWord(&tmp1,&tmp2);
NextIndex = (USHORT)tmp1 | (((USHORT)tmp2) << 8);
} while (NowIndex < PreIndex);
if (PreIndex > 0)
{
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 10 + 9),K_SDRAM_NoPrefetch);
//L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 8 + 7),K_SDRAM_NoPrefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMWriteWord((UCHAR)(NowIndex & 0x00ff),(UCHAR)((NowIndex & 0xff00) >> 8));
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
//L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMWriteWord((UCHAR)(PreIndex & 0x00ff),(UCHAR)((PreIndex & 0xff00) >> 8));
L2_DRAMWriteWord((UCHAR)(TempNowIndex & 0x00ff),(UCHAR)((TempNowIndex & 0xff00) >> 8));
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
//L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMWriteWord((UCHAR)(NowIndex & 0x00ff),(UCHAR)((NowIndex & 0xff00) >> 8));
}
else
{
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
//L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMWriteWord(0x00,0x00);
L2_DRAMWriteWord((UCHAR)(TempNowIndex & 0x00ff),(UCHAR)((TempNowIndex & 0xff00) >> 8));
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
//L2_DRAMSetStartAddr((K_SDRAM_JPG_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMWriteWord((UCHAR)(NowIndex & 0x00ff),(UCHAR)((NowIndex & 0xff00) >> 8));
G_USR_FirstFileIndex = NowIndex;
}
}
}
}
else
{
if (fileType == K_USR_AVI_TYPE)
{
//For play back AVI file speeding-up
//version4.0@ada@0513 for DCF
//L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 3),K_SDRAM_NoPrefetch); //ada@0401
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 10),K_SDRAM_NoPrefetch);
//L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 8),K_SDRAM_NoPrefetch);
//patch4.5@ada@Record DCF file name end
//Record file FDB logical address
L2_DRAMWriteWord((UCHAR)(G_DOS_FdbAddress & 0x000000ff),(UCHAR)((G_DOS_FdbAddress & 0x0000ff00) >> 8));
L2_DRAMWriteWord((UCHAR)((G_DOS_FdbAddress & 0x00ff0000) >> 16),(UCHAR)((G_DOS_FdbAddress & 0xff000000) >> 24));
//Record file attribute and file type
L2_DRAMWriteWord(fdb[11],K_USR_AVI_TYPE);
//Record file starting cluster
L2_DRAMWriteWord(fdb[26],fdb[27]);
//Record file size in bytes
L2_DRAMWriteWord(fdb[28],fdb[29]);
L2_DRAMWriteWord(fdb[30],fdb[31]);
//patch4.5@ada@Record DCF file name begin
//Record DCF file name
for (i = 0; i < 2; i++)
{
L2_DRAMWriteWord(fdb[i * 2],fdb[i * 2 + 1]);
}
//patch4.5@ada@Record DCF file name end
//Record previous file index(No matter JPG or AVI or WAV)
//patch4.4.1@ada@Fix DCF bug begin
//L2_DRAMWriteWord((UCHAR)(G_USR_SearchPreFileIndex & 0x00ff),(UCHAR)((G_USR_SearchPreFileIndex & 0xff00) >> 8));
//L2_DRAMWriteWord(0x00,0x00);
//patch4.4.1@ada@Fix DCF bug end
//patch4.3@ada@0618 for playback file index order
if (G_USR_FileCount)
{
if (G_USR_SearchNowFileIndex > G_USR_SearchPreFileIndex)
{
//Record previous file index(No matter JPG or AVI or WAV)
L2_DRAMWriteWord((UCHAR)(G_USR_SearchPreFileIndex & 0x00ff),(UCHAR)((G_USR_SearchPreFileIndex & 0xff00) >> 8));
L2_DRAMWriteWord(0x00,0x00);
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)G_USR_SearchPreFileIndex) - 1) * 10 + 9),K_SDRAM_NoPrefetch);
//L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)G_USR_SearchPreFileIndex) - 1) * 8 + 7),K_SDRAM_NoPrefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMWriteWord((UCHAR)(G_USR_SearchNowFileIndex & 0x00ff),(UCHAR)((G_USR_SearchNowFileIndex & 0xff00) >> 8));
}
else
{
NowIndex = G_USR_SearchNowFileIndex;
PreIndex = G_USR_SearchPreFileIndex;
G_USR_SearchNowFileIndex = PreIndex;
G_USR_LastFileIndex = PreIndex;
do
{
TempNowIndex = PreIndex;
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 10 + 8),K_SDRAM_Prefetch);
//L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 8 + 6),K_SDRAM_Prefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMReadWord(&tmp1,&tmp2);
PreIndex = (USHORT)tmp1 | (((USHORT)tmp2) << 8);
L2_DRAMReadWord(&tmp1,&tmp2);
NextIndex = (USHORT)tmp1 | (((USHORT)tmp2) << 8);
} while (NowIndex < PreIndex);
if (PreIndex > 0)
{
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 10 + 9),K_SDRAM_NoPrefetch);
//L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 8 + 7),K_SDRAM_NoPrefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMWriteWord((UCHAR)(NowIndex & 0x00ff),(UCHAR)((NowIndex & 0xff00) >> 8));
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
//L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMWriteWord((UCHAR)(PreIndex & 0x00ff),(UCHAR)((PreIndex & 0xff00) >> 8));
L2_DRAMWriteWord((UCHAR)(TempNowIndex & 0x00ff),(UCHAR)((TempNowIndex & 0xff00) >> 8));
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
//L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMWriteWord((UCHAR)(NowIndex & 0x00ff),(UCHAR)((NowIndex & 0xff00) >> 8));
}
else
{
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
//L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)NowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMWriteWord(0x00,0x00);
L2_DRAMWriteWord((UCHAR)(TempNowIndex & 0x00ff),(UCHAR)((TempNowIndex & 0xff00) >> 8));
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 10 + 8),K_SDRAM_NoPrefetch);
//L2_DRAMSetStartAddr((K_SDRAM_AVI_FdbParameterBufAddr + (((ULONG)TempNowIndex) - 1) * 8 + 6),K_SDRAM_NoPrefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMWriteWord((UCHAR)(NowIndex & 0x00ff),(UCHAR)((NowIndex & 0xff00) >> 8));
G_USR_FirstFileIndex = NowIndex;
}
}
}
}
else
{
if (fileType == K_USR_WAV_TYPE)
{
//For play back AVI file speeding-up
//version4.0@ada@0513 for DCF
//L2_DRAMSetStartAddr((K_SDRAM_WAV_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 3),K_SDRAM_NoPrefetch); //ada@0401
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_WAV_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 10),K_SDRAM_NoPrefetch); //ada@0401
//L2_DRAMSetStartAddr((K_SDRAM_WAV_FdbParameterBufAddr + (((ULONG)G_USR_SearchNowFileIndex) - 1) * 8),K_SDRAM_NoPrefetch); //ada@0401
//patch4.5@ada@Record DCF file name end
//Record file FDB logical address
L2_DRAMWriteWord((UCHAR)(G_DOS_FdbAddress & 0x000000ff),(UCHAR)((G_DOS_FdbAddress & 0x0000ff00) >> 8));
L2_DRAMWriteWord((UCHAR)((G_DOS_FdbAddress & 0x00ff0000) >> 16),(UCHAR)((G_DOS_FdbAddress & 0xff000000) >> 24));
//Record file attribute and file type
L2_DRAMWriteWord(fdb[11],K_USR_WAV_TYPE);
//Record file starting cluster
L2_DRAMWriteWord(fdb[26],fdb[27]);
//Record file size in bytes
L2_DRAMWriteWord(fdb[28],fdb[29]);
L2_DRAMWriteWord(fdb[30],fdb[31]);
//patch4.5@ada@Record DCF file name begin
//Record DCF file name
for (i = 0; i < 2; i++)
{
L2_DRAMWriteWord(fdb[i * 2],fdb[i * 2 + 1]);
}
//patch4.5@ada@Record DCF file name end
//patch4.4.1@ada@Fix DCF bug begin
//Record previous file index(No matter JPG or AVI or WAV)
//L2_DRAMWriteWord((UCHAR)(G_USR_SearchPreFileIndex & 0x00ff),(UCHAR)((G_USR_SearchPreFileIndex & 0xff00) >> 8));
//L2_DRAMWriteWord(0x00,0x00);
//patch4.4.1@ada@Fix DCF bug end
//patch4.3@ada@0618 for playback file index order
if (G_USR_FileCount)
{
if (G_USR_SearchNowFileIndex > G_USR_SearchPreFileIndex)
{
//Record previous file index(No matter JPG or AVI or WAV)
L2_DRAMWriteWord((UCHAR)(G_USR_SearchPreFileIndex & 0x00ff),(UCHAR)((G_USR_SearchPreFileIndex & 0xff00) >> 8));
L2_DRAMWriteWord(0x00,0x00);
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_WAV_FdbParameterBufAddr + (((ULONG)G_USR_SearchPreFileIndex) - 1) * 10 + 9),K_SDRAM_NoPrefetch);
//L2_DRAMSetStartAddr((K_SDRAM_WAV_FdbParameterBufAddr + (((ULONG)G_USR_SearchPreFileIndex) - 1) * 8 + 7),K_SDRAM_NoPrefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMWriteWord((UCHAR)(G_USR_SearchNowFileIndex & 0x00ff),(UCHAR)((G_USR_SearchNowFileIndex & 0xff00) >> 8));
}
else
{
NowIndex = G_USR_SearchNowFileIndex;
PreIndex = G_USR_SearchPreFileIndex;
G_USR_SearchNowFileIndex = PreIndex;
G_USR_LastFileIndex = PreIndex;
do
{
TempNowIndex = PreIndex;
//patch4.5@ada@Record DCF file name begin
L2_DRAMSetStartAddr((K_SDRAM_WAV_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 10 + 8),K_SDRAM_Prefetch);
//L2_DRAMSetStartAddr((K_SDRAM_WAV_FdbParameterBufAddr + (((ULONG)PreIndex) - 1) * 8 + 6),K_SDRAM_Prefetch);
//patch4.5@ada@Record DCF file name end
L2_DRAMReadWord(&tmp1,&tmp2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -