📄 fat32getdirname.lst
字号:
C51 COMPILER V7.50 FAT32GETDIRNAME 07/13/2005 11:19:13 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE FAT32GETDIRNAME
OBJECT MODULE PLACED IN FAT32GETDIRNAME.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE FAT32GETDIRNAME.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #ifndef _FAT32_DEFINE
2 #include "FAT32.c"
3 #endif
4
5 BYTE FAT32GetDirName(WORD SecNum);
6
7 BYTE FAT32GetDirName(WORD SecNum)
8 {
9 1 BYTE i,j,k,m,n;
10 1 DWORD chain;
11 1 CHAR temp[27];
12 1
13 1 chain=FAT32.CurrentDirectory;
14 1 FAT32.ClusSecCnt=0;
15 1 while(chain!=0x0fffffff)
16 1 {
17 2 FAT32ReadCluster(&chain);
18 2 for (i=0;i<16;i++)
19 2 {
20 3 if (SecNum==1)
21 3 {
22 4 if ((sDIR[i].Attr&FAT32_ATTR_LONG_NAME_MASK)==FAT32_ATTR_LONG_NAME)
23 4 //长文件名
24 4 {
25 5 j=lDIR[i].Ord - FAT32_LAST_LONG_ENTRY;
26 5 LongFileName[0]=0;n=0;
27 5 for(;j>0;j--)
28 5 {
29 6 FAT32GetPartLongName(lDIR+i,temp);
30 6 m=strlen((char *)temp);
31 6 k=m+n;
32 6 for(;n>0;n--)
33 6 LongFileName[m+n]=LongFileName[n];
34 6 LongFileName[m+n]=LongFileName[n];
35 6 m--;
36 6 for(;m>0;m--)
37 6 LongFileName[m]=temp[m];
38 6 LongFileName[m]=temp[m];
39 6 n=k;
40 6 i++;
41 6 if (i==16)
42 6 {
43 7 FAT32ReadCluster(&chain);
44 7 i=0;
45 7 }
46 6 }
47 5 if (sDIR[i].Name[0]==0x00||sDIR[i].Name[0]==0xe5) return(3); //空目录项
48 5 if (sDIR[i].Attr&FAT32_ATTR_DIRECTORY) return(2); //找到一个目录入口
49 5 }
50 4 else
51 4 {
52 5 //短文件名
53 5 if (sDIR[i].Name[0]==0x00||sDIR[i].Name[0]==0xe5) return(3); //空目录项
54 5 if (sDIR[i].Attr&FAT32_ATTR_VOLUME_ID) continue; //如果是目录入口或卷标则跳过
55 5 for(j=0;j<11;j++)
C51 COMPILER V7.50 FAT32GETDIRNAME 07/13/2005 11:19:13 PAGE 2
56 5 LongFileName[j]=sDIR[i].Name[j];
57 5 LongFileName[j]=0;
58 5 for(j=0;j<3;j++)
59 5 temp[j]=toupper(sDIR[i].Name[8+j]);
60 5 temp[j]=0;
61 5 if (sDIR[i].Attr&FAT32_ATTR_DIRECTORY) return(2); //找到一个目录入口
62 5 }
63 4 return(1);
64 4 }
65 3 else if (sDIR[i].Attr!=FAT32_ATTR_LONG_NAME) SecNum--;
66 3 }
67 2 }
68 1 return(0);
69 1 }
70
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 712 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 36
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -