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

📄 fat.lst

📁 mp3播放器
💻 LST
📖 第 1 页 / 共 5 页
字号:
 813   6                          clear_DMA((U8 xdata *)0xF000);
 814   6                              if(!index)
 815   6                              {
 816   7                    ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Extension[0] = (S8)' ';
 817   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Extension[1] = (S8)' ';
 818   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Extension[2] = (S8)' ';
 819   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[0] = (S8)'.';
 820   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[1] = (S8)' ';
 821   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[2] = (S8)' ';
 822   7                        ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[3] = (S8)' ';
 823   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[4] = (S8)' ';
 824   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[5] = (S8)' ';
C51 COMPILER V8.08   FAT                                                                   07/28/2007 11:42:16 PAGE 15  

 825   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[6] = (S8)' ';
 826   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[7] = (S8)' ';
 827   7                        ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Attribute = ARCHIVE_DIR;
 828   7                        ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[0] = 0x08;
 829   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[1] = 0x2A;
 830   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[2] = 0x2E;
 831   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[3] = 0x5A;
 832   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[4] = 0x2D;
 833   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[5] = 0x35;
 834   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[6] = 0x39;
 835   7                                ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[7] = 0x35;
 836   7                        ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FSClusHI = LE16((U16)(varAl.TmpLong >> 16));
 837   7                    ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Time = 0x5A2E;
 838   7                    ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Date = 0x352D;
 839   7                    ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FSClusLO = LE16((U16)varAl.TmpLong);
 840   7                        ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileSize = 0;
 841   7      
 842   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Extension[0] = (S8)' ';
 843   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Extension[1] = (S8)' ';
 844   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Extension[2] = (S8)' ';
 845   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[0] = (S8)'.';
 846   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[1] = (S8)'.';
 847   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[2] = (S8)' ';
 848   7                        ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[3] = (S8)' ';
 849   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[4] = (S8)' ';
 850   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[5] = (S8)' ';
 851   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[6] = (S8)' ';
 852   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[7] = (S8)' ';
 853   7                        ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Attribute = ARCHIVE_DIR;
 854   7                        ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[0] = 0x08;
 855   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[1] = 0x2A;
 856   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[2] = 0x2E;
 857   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[3] = 0x5A;
 858   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[4] = 0x2D;
 859   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[5] = 0x35;
 860   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[6] = 0x39;
 861   7                                ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[7] = 0x35;
 862   7                        ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FSClusHI = 0;
 863   7                    ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Time = 0x5A2E;
 864   7                    ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Date = 0x352D;
 865   7                        ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FSClusLO = 0;
 866   7                    ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileSize = 0;
 867   7                          }
 868   6                  DMA_write_sector(p++, 0x06);
 869   6                        }
 870   5                    SendChar(0xC5);
 871   5                return;
 872   5                  }
 873   4                      else
 874   4                      {
 875   5                        FileData.wCurFDBNo++;
 876   5                        if(!(FileData.wCurFDBNo & 0x0F))
 877   5                          flag = 0;
 878   5                      }
 879   4                }
 880   3            FileData.wCurFDBNo = 0;
 881   3            FileData.dwCurCluNo++;
 882   3              }
 883   2          //return KO;
 884   2        }
 885   1        else
 886   1        {
C51 COMPILER V8.08   FAT                                                                   07/28/2007 11:42:16 PAGE 16  

 887   2          //FAT16
 888   2          FileData.wCurFDBNo = 0;
 889   2              for(;FileData.wCurFDBNo < (U16)FileData.RootDirNum;)
 890   2              {
 891   3                if(!flag)
 892   3                {
 893   4                  position = CFatData.dwRootStartlba + (FileData.wCurFDBNo / CFatData.bFDBNumInSec);
 894   4                  DMA_load_sector(position, 0x06);
 895   4                      flag = 1;
 896   4                }
 897   3                if((((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->FileName[0] == (S8)DIR_Unused)
 898   3                      ||(((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->FileName[0] == (S8)DIR_Deleted))
 899   3                {
 900   4                  //在根目录中写入文件夹名
 901   4                      ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->Extension[0] = (S8)' ';
 902   4                  ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->Extension[1] = (S8)' ';
 903   4                  ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->Extension[2] = (S8)' ';
 904   4                  ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->FileName[0] = (S8)'F';
 905   4                  ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->FileName[1] = (S8)'J';
 906   4                  ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->FileName[2] = (S8)' ';
 907   4              ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->FileName[3] = (S8)' ';
 908   4                  ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->FileName[4] = (S8)' ';
 909   4                  ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->FileName[5] = (S8)' ';
 910   4                  ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->FileName[6] = (S8)' ';
 911   4                  ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->FileName[7] = (S8)' ';
 912   4              ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->Attribute = ARCHIVE_DIR;
 913   4              ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->Reserved[0] = 0x08;
 914   4                      ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->Reserved[1] = 0x2A;
 915   4                      ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->Reserved[2] = 0x2E;
 916   4                      ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->Reserved[3] = 0x5A;
 917   4                      ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->Reserved[4] = 0x2D;
 918   4                      ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->Reserved[5] = 0x35;
 919   4                      ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->Reserved[6] = 0x39;
 920   4                      ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->Reserved[7] = 0x35;
 921   4              ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->FSClusHI = LE16((U16)(varAl.TmpLong
             - >> 16));
 922   4              ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Time = 0x5A2E;
 923   4              ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Date = 0x352D;
 924   4              ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->FSClusLO = LE16((U16)varAl.TmpLong)
             -;
 925   4              ((_DIR *)(sbuf2 + (FileData.wCurFDBNo & 0x0F)* DIREntrySize))->FileSize = 0;
 926   4              DMA_write_sector(position, 0x06);
 927   4      
 928   4              //写子目录父目录索引, 并至少清除一簇
 929   4              p = CFatData.dwClu2Startlba + (varAl.TmpLong - 2)* (U32)CFatData.bSectorsPerClu;
 930   4              //DMA_load_sector(p, 0x06);
 931   4                      for(index = 0; index < CFatData.bSectorsPerClu; index++)
 932   4                      {
 933   5                        clear_DMA((U8 xdata *)0xF000);;
 934   5                        if(!index)
 935   5                        {
 936   6                      ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Extension[0] = (S8)' ';
 937   6                          ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Extension[1] = (S8)' ';
 938   6                          ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Extension[2] = (S8)' ';
 939   6                          ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[0] = (S8)'.';
 940   6                          ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[1] = (S8)' ';
 941   6                      ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[2] = (S8)' ';
 942   6                      ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[3] = (S8)' ';
 943   6                          ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[4] = (S8)' ';
 944   6                      ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[5] = (S8)' ';
 945   6                          ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[6] = (S8)' ';
 946   6                          ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileName[7] = (S8)' ';
C51 COMPILER V8.08   FAT                                                                   07/28/2007 11:42:16 PAGE 17  

 947   6                      ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Attribute = ARCHIVE_DIR;
 948   6                      ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[0] = 0x08;
 949   6                              ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[1] = 0x2A;
 950   6                              ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[2] = 0x2E;
 951   6                              ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[3] = 0x5A;
 952   6                              ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[4] = 0x2D;
 953   6                              ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[5] = 0x35;
 954   6                              ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[6] = 0x39;
 955   6                              ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->Reserved[7] = 0x35;
 956   6                      ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FSClusHI = LE16((U16)(varAl.TmpLong >> 16));
 957   6                              ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Time = 0x5A2E;
 958   6                  ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Date = 0x352D;
 959   6                      ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FSClusLO = LE16((U16)varAl.TmpLong);
 960   6                      ((_DIR *)(sbuf2 + (0 & 0x0F)* DIREntrySize))->FileSize = 0;
 961   6      
 962   6                      ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Extension[0] = (S8)' ';
 963   6                          ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Extension[1] = (S8)' ';
 964   6                      ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Extension[2] = (S8)' ';
 965   6                          ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[0] = (S8)'.';
 966   6                          ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[1] = (S8)'.';
 967   6                      ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[2] = (S8)' ';
 968   6                      ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[3] = (S8)' ';
 969   6                              ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[4] = (S8)' ';
 970   6                              ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[5] = (S8)' ';
 971   6                              ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[6] = (S8)' ';
 972   6                              ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileName[7] = (S8)' ';
 973   6                      ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Attribute = ARCHIVE_DIR;
 974   6                  ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[0] = 0x08;
 975   6                              ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[1] = 0x2A;
 976   6                              ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[2] = 0x2E;
 977   6                              ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[3] = 0x5A;
 978   6                              ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[4] = 0x2D;
 979   6                              ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[5] = 0x35;
 980   6                              ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[6] = 0x39;
 981   6                              ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Reserved[7] = 0x35;
 982   6                      ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FSClusHI = 0;
 983   6                              ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Time = 0x5A2E;
 984   6                  ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->Date = 0x352D;
 985   6                      ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FSClusLO = 0;
 986   6                      ((_DIR *)(sbuf2 + (1 & 0x0F)* DIREntrySize))->FileSize = 0;
 987   6                        }
 988   5                DMA_write_sector(p++, 0x06);
 989   5              }
 990   4              SendChar(0xC6);
 991   4                  return;
 992   4                }
 993   3                else
 994   3                {
 995   4                  FileData.wCurFDBNo++;
 996   4                      if(!(FileData.wCurFDBNo & 0x0F))
 997   4                        flag = 0;
 998   4                }
 999   3          }
1000   2        }
1001   1      }
1002          #endif
1003          //***********************************************
1004          #endif


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =  10070    ----
C51 COMPILER V8.08   FAT                                                                   07/28/2007 11:42:16 PAGE 18  

   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      39
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       5
   EDATA SIZE       =   ----    ----
   HDATA SIZE       =   ----    ----
   XDATA CONST SIZE =   ----    ----
   FAR CONST SIZE   =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -