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

📄 fat32listdirectory.lst

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


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

line level    source

   1          #ifndef _FAT32_DEFINE
   2           #include "FAT32.c"
   3          #endif
   4          
   5          BYTE FAT32ListDirectory(void);
   6          
   7          BYTE FAT32ListDirectory(void)
   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      //      filename=(CHAR *)malloc(sizeof(j*26+1));
  14   1      
  15   1              chain=FAT32.CurrentDirectory;
  16   1              FAT32.ClusSecCnt=0;
  17   1              while(chain!=0x0fffffff)
  18   1              {
  19   2                      FAT32ReadCluster(&chain);
  20   2                      for (i=0;i<16;i++)
  21   2                      {
  22   3                              if (sDIR[i].Name[0]==0xe5||sDIR[i].Name[0]==0x00) continue;                     //空目录项跳过
  23   3                              MEMSwap32(sDIR[i].FileSize);
  24   3                              if ((sDIR[i].Attr&FAT32_ATTR_LONG_NAME_MASK)==FAT32_ATTR_LONG_NAME)
  25   3                              //长文件名
  26   3                              {
  27   4                                      j=lDIR[i].Ord - FAT32_LAST_LONG_ENTRY;
  28   4                                      LongFileName[0]=0;n=0;
  29   4                                      for(;j>0;j--)
  30   4                                      {
  31   5                                              FAT32GetPartLongName(lDIR+i,temp);
  32   5                                              m=strlen((char *)temp);
  33   5                                              k=m+n;
  34   5                                              for(;n>0;n--)
  35   5                                                      LongFileName[m+n]=LongFileName[n];
  36   5                                              LongFileName[m+n]=LongFileName[n];
  37   5                                              m--;
  38   5                                              for(;m>0;m--)
  39   5                                                      LongFileName[m]=temp[m];
  40   5                                              LongFileName[m]=temp[m];
  41   5                                              n=k;
  42   5                                              i++;
  43   5                                              if (i==16)
  44   5                                              {
  45   6                                                      FAT32ReadCluster(&chain);
  46   6                                                      i=0;
  47   6                                              }
  48   5                                      }
  49   4                                      printf("%s\t",LongFileName);
  50   4                                      if (sDIR[i].Attr&FAT32_ATTR_DIRECTORY) printf("\t<DIR>"); else printf("\t<FILE>");
  51   4                                      printf("\t%ld",MEMSwap32(sDIR[i].FileSize));
  52   4                                      printf("\n");
  53   4                              }
  54   3                              else
  55   3                              {
C51 COMPILER V7.50   FAT32LISTDIRECTORY                                                    07/13/2005 11:18:29 PAGE 2   

  56   4                              //短文件名
  57   4                                      if (sDIR[i].Name[0]!=0xe5&&sDIR[i].Name[0]!=0x00)
  58   4                                      {
  59   5                                              if (sDIR[i].Attr&FAT32_ATTR_VOLUME_ID)
  60   5                                                      printf("Driver Volume:");
  61   5                                              for(j=0;j<11;j++)
  62   5                                                      printf("%c",sDIR[i].Name[j]);
  63   5                                              if (sDIR[i].Attr&FAT32_ATTR_DIRECTORY) printf("\t<DIR>"); else printf("\t<FILE>");
  64   5                                              printf("\t%ld",MEMSwap32(sDIR[i].FileSize));
  65   5                                              printf("\n");
  66   5                                      }
  67   4                              }
  68   3                      }
  69   2              }
  70   1              return(0);
  71   1      }


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