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

📄 fat32getdirname.lst

📁 基于c51的SD驱动程序,在FAT32文件系统中.
💻 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 + -