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

📄 fat32finddirentry.lst

📁 C51上实现SD卡程序,是FAT32文件系统
💻 LST
字号:
C51 COMPILER V7.50   FAT32FINDDIRENTRY                                                     07/13/2005 11:19:17 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE FAT32FINDDIRENTRY
OBJECT MODULE PLACED IN FAT32FINDDIRENTRY.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE FAT32FINDDIRENTRY.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #ifndef _FAT32_DEFINE
   2           #include "FAT32.c"
   3          #endif
   4          
   5          BYTE FAT32FindDIREntry(CHAR *DirName);
   6          
   7          BYTE FAT32FindDIREntry(CHAR *DirName)
   8          {
   9   1              xdata BYTE i,j,k,m,n;
  10   1              xdata DWORD chain;
  11   1              xdata 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 (sDIR[i].Name[0]==0xe5||sDIR[i].Name[0]==0x00) continue;                     //空目录项跳过
  21   3                              if ((sDIR[i].Attr&FAT32_ATTR_LONG_NAME_MASK)==FAT32_ATTR_LONG_NAME)
  22   3                              //长文件名
  23   3                              {
  24   4                                      j=lDIR[i].Ord - FAT32_LAST_LONG_ENTRY;
  25   4                                      LongFileName[0]=0;n=0;
  26   4                                      for(;j>0;j--)
  27   4                                      {
  28   5                                              FAT32GetPartLongName(lDIR+i,temp);
  29   5                                              m=strlen((char *)temp);
  30   5                                              k=m+n;
  31   5                                              for(;n>0;n--)
  32   5                                                      LongFileName[m+n]=LongFileName[n];
  33   5                                              LongFileName[m+n]=LongFileName[n];
  34   5                                              m--;
  35   5                                              for(;m>0;m--)
  36   5                                                      LongFileName[m]=temp[m];
  37   5                                              LongFileName[m]=temp[m];
  38   5                                              n=k;
  39   5                                              i++;
  40   5                                              if (i==16)
  41   5                                              {
  42   6                                                      FAT32ReadCluster(&chain);
  43   6                                                      i=0;
  44   6                                              }
  45   5                                      }
  46   4                                      if (strcmp((const char *)DirName,(const char *)LongFileName)==0) return(i);
  47   4                              }
  48   3                              else
  49   3                              {
  50   4                              //短文件名
  51   4                                      if (sDIR[i].Attr&FAT32_ATTR_VOLUME_ID) continue;                //如果是卷标则跳过
  52   4                                      for(j=0;j<11;j++)
  53   4                                              temp[j]=sDIR[i].Name[j];
  54   4                                      temp[j]=0;
  55   4                                      if (strcmp((const char *)DirName,(const char *)temp)==0) return(i);
C51 COMPILER V7.50   FAT32FINDDIRENTRY                                                     07/13/2005 11:19:17 PAGE 2   

  56   4                              }
  57   3                      }
  58   2              }
  59   1              return(i);
  60   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    633    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----      36
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       3
   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 + -