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

📄 fat32disksize.lst

📁 C51实现的FAT32文件系统
💻 LST
📖 第 1 页 / 共 3 页
字号:
 167      =2          DWORD   FSINxtFree;                     //空闲簇搜索指针
 168      =2  };
 169      =2  
 170      =2  struct FCBStr
 171      =2  {
 172      =2          CHAR    FileName[12];           //文件名
 173      =2          DWORD   Size;                           //文件大小
 174      =2          DWORD   FirstCluster;           //第一个簇
 175      =2          DWORD   LastCluster;            //最近一次读到的簇号
 176      =2          DWORD   ClusSecCnt;                     //当前簇扇区计数
 177      =2          DWORD   ByteCnt;                        //当前字节计数
 178      =2  };
 179      =2  
 180      =2  struct FATStr
 181      =2  {
 182      =2          DWORD   Sector;
 183      =2          DWORD   FAT[128];
 184      =2  };
 185      =2  
 186      =2  #ifndef _LIBRARY_DEFINE
C51 COMPILER V6.23a  FAT32DISKSIZE                                                         12/24/2004 00:11:00 PAGE 10  

           =2  xdata BYTE DiskBuffer[512];
           =2 
           =2  xdata struct sDPTStr sDPT[4];
           =2  xdata struct FAT32Str FAT32;
           =2  xdata struct FCBStr FCB[FAT32_MAX_FCB];
           =2  xdata CHAR LongFileName[256]; 
           =2  xdata struct FATStr FAT;
           =2  xdata struct DPTStr *DPT;                      //分区表结构指针
           =2  xdata struct BootSecStr *BOOTSEC;              //引导扇区结构指针
           =2  xdata struct FAT32FSInfoStr *FSI;              //FAT32扩展信息
           =2  xdata struct FAT32SDirStr *sDIR;               //FAT目录结构指针
           =2  xdata struct FAT32LDirStr *lDIR;               //FAT目录结构指针
           =2 #endif
 200      =2  #endif
 201      =2  
 202      =2  extern xdata BYTE DiskBuffer[512];
 203      =2  
 204      =2  extern xdata struct sDPTStr sDPT[4];
 205      =2  extern xdata struct FAT32Str FAT32;
 206      =2  extern xdata struct FCBStr FCB[FAT32_MAX_FCB];
 207      =2  extern xdata CHAR LongFileName[256]; 
 208      =2  extern xdata struct FATStr FAT;
 209      =2  extern xdata struct DPTStr *DPT;                //分区表结构指针
 210      =2  extern xdata struct BootSecStr *BOOTSEC;        //引导扇区结构指针
 211      =2  extern xdata struct FAT32FSInfoStr *FSI;        //FAT32扩展信息
 212      =2  extern xdata struct FAT32SDirStr *sDIR;         //FAT目录结构指针
 213      =2  extern xdata struct FAT32LDirStr *lDIR;         //FAT目录结构指针
 214      =2  
 215      =2  extern void FAT32Init(void);
 216      =2  extern BYTE FAT32MountPartition(void);
 217      =2  extern BYTE FAT32MountVolumeID(BYTE Partition);
 218      =2  extern BYTE FAT32GetDirName(WORD SecNum);
 219      =2  extern void FAT32GetPartLongName(struct FAT32LDirStr *ldp,CHAR *name);
 220      =2  extern DWORD FAT32DiskSize(void);
 221      =2  extern DWORD FAT32DiskFreeSize(void);
 222      =2  extern BYTE FAT32FindDIREntry(CHAR *DirName);
 223      =2  extern void FAT32ReadCluster(DWORD *Cluster);
 224      =2  extern BYTE FAT32ChangeDirectory(CHAR *DirName);
 225      =2  extern BYTE FAT32ListDirectory(void);
 226      =2  extern DWORD FAT32NextCluster(DWORD CurrentCluster);
 227      =2  extern BYTE FAT32OpenFile(CHAR *filename);
 228      =2  extern void FAT32CloseFile(BYTE fp);
 229      =2  extern WORD FAT32ReadFile(BYTE fp);
  11      =1  
  12      =1  
   3          #endif
   4          
   5          DWORD FAT32DiskSize(void);
   6          
   7          DWORD FAT32DiskSize(void)
   8          {
   9   1              return(sDPT[HDD.CurrentPartition].CntSec * IDE.BytesPerSec);
  10   1      }
C51 COMPILER V6.23a  FAT32DISKSIZE                                                         12/24/2004 00:11:00 PAGE 11  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION FAT32DiskSize (BEGIN)
                                           ; SOURCE LINE # 7
                                           ; SOURCE LINE # 8
                                           ; SOURCE LINE # 9
0000 900000      E     MOV     DPTR,#IDE+06H
0003 E0                MOVX    A,@DPTR
0004 FE                MOV     R6,A
0005 A3                INC     DPTR
0006 E0                MOVX    A,@DPTR
0007 FF                MOV     R7,A
0008 E4                CLR     A
0009 FC                MOV     R4,A
000A FD                MOV     R5,A
000B 900000      E     MOV     DPTR,#HDD+01H
000E E0                MOVX    A,@DPTR
000F 75F009            MOV     B,#09H
0012 A4                MUL     AB
0013 2400        E     ADD     A,#LOW sDPT+05H
0015 F582              MOV     DPL,A
0017 E4                CLR     A
0018 3400        E     ADDC    A,#HIGH sDPT+05H
001A F583              MOV     DPH,A
001C E0                MOVX    A,@DPTR
001D F8                MOV     R0,A
001E A3                INC     DPTR
001F E0                MOVX    A,@DPTR
0020 F9                MOV     R1,A
0021 A3                INC     DPTR
0022 E0                MOVX    A,@DPTR
0023 FA                MOV     R2,A
0024 A3                INC     DPTR
0025 E0                MOVX    A,@DPTR
0026 FB                MOV     R3,A
0027 120000      E     LCALL   ?C?LMUL
                                           ; SOURCE LINE # 10
002A         ?C0001:
002A 22                RET     
             ; FUNCTION FAT32DiskSize (END)

C51 COMPILER V6.23a  FAT32DISKSIZE                                                         12/24/2004 00:11:00 PAGE 12  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


DWORD. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_LONG   -----  4
FCBStr . . . . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  32
  FileName . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0000H  12
  Size . . . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   000CH  4
  FirstCluster . . . . . . . . . . . .  MEMBER   -----  U_LONG   0010H  4
  LastCluster. . . . . . . . . . . . .  MEMBER   -----  U_LONG   0014H  4
  ClusSecCnt . . . . . . . . . . . . .  MEMBER   -----  U_LONG   0018H  4
  ByteCnt. . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   001CH  4
FATUni . . . . . . . . . . . . . . . .  * TAG *  -----  UNION    -----  54
  F32. . . . . . . . . . . . . . . . .  MEMBER   -----  STRUCT   0000H  54
  F16. . . . . . . . . . . . . . . . .  MEMBER   -----  STRUCT   0000H  26
HDDStr . . . . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  2
  TotalPartitions. . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  CurrentPartition . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
IDEStr . . . . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  8
  TotalDevices . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  CurrentDevice. . . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  CurrentSector. . . . . . . . . . . .  MEMBER   -----  U_LONG   0002H  4
  BytesPerSec. . . . . . . . . . . . .  MEMBER   -----  U_INT    0006H  2
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
FATStr . . . . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  516
  Sector . . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   0000H  4
  FAT. . . . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0004H  512
sDPTStr. . . . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  9
  TypeCode . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  LBABegin . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   0001H  4
  CntSec . . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   0005H  4
CHAR . . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_CHAR   -----  1
DPTStr . . . . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  16
  BootFlag . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  CHSBegin . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0001H  3
  TypeCode . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0004H  1
  CHSEnd . . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0005H  3
  LBABegin . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   0008H  4
  CntSec . . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   000CH  4
FAT32FSInfoStr . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  512
  LeadSig. . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   0000H  4
  Reserved1. . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0004H  480
  StrucSig . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   01E4H  4
  FreeCount. . . . . . . . . . . . . .  MEMBER   -----  U_LONG   01E8H  4
  NxtFree. . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   01ECH  4
  Reserved2. . . . . . . . . . . . . .  MEMBER   -----  ARRAY    01F0H  12
  TrailSig . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   01FCH  4
BOOL . . . . . . . . . . . . . . . . .  TYPEDEF  DATA   BIT      -----  1
BootSecFAT32Str. . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  54
  BPB_FATSz32. . . . . . . . . . . . .  MEMBER   -----  U_LONG   0000H  4
  BPB_ExtFlags . . . . . . . . . . . .  MEMBER   -----  U_INT    0004H  2
  BPB_FSVer. . . . . . . . . . . . . .  MEMBER   -----  U_INT    0006H  2
  BPB_RootClus . . . . . . . . . . . .  MEMBER   -----  U_LONG   0008H  4
  BPB_FSInfo . . . . . . . . . . . . .  MEMBER   -----  U_INT    000CH  2
  BPB_BkBootSec. . . . . . . . . . . .  MEMBER   -----  U_INT    000EH  2
  BPB_Reserved . . . . . . . . . . . .  MEMBER   -----  ARRAY    0010H  12
  BS_DrvNum. . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   001CH  1
  BS_Reserved1 . . . . . . . . . . . .  MEMBER   -----  U_CHAR   001DH  1
  BS_BootSig . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   001EH  1
  BS_VolID . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   001FH  4
  BS_VolLab. . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0023H  11
C51 COMPILER V6.23a  FAT32DISKSIZE                                                         12/24/2004 00:11:00 PAGE 13  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


  BS_FilSysType. . . . . . . . . . . .  MEMBER   -----  ARRAY    002EH  8
BootSecFAT16Str. . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  26
  BS_DrvNum. . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  BS_Reserved1 . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0001H  1
  BS_BootSig . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0002H  1
  BS_VolID . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   0003H  4
  BS_VolLab. . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0007H  11
  BS_FilSysType. . . . . . . . . . . .  MEMBER   -----  ARRAY    0012H  8
BYTE . . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_CHAR   -----  1
WORD . . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
HDD. . . . . . . . . . . . . . . . . .  EXTERN   XDATA  STRUCT   -----  2
IDE. . . . . . . . . . . . . . . . . .  EXTERN   XDATA  STRUCT   -----  8
sDPT . . . . . . . . . . . . . . . . .  EXTERN   XDATA  ARRAY    -----  36
IDEDeviceStr . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  5
  DriverType . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  TotalSectors . . . . . . . . . . . .  MEMBER   -----  U_LONG   0001H  4
FAT32LDirStr . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  32
  Ord. . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  Name1. . . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0001H  10
  Attr . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   000BH  1
  Type . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   000CH  1
  Chksum . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   000DH  1
  Name2. . . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    000EH  12
  FstClusLO. . . . . . . . . . . . . .  MEMBER   -----  U_INT    001AH  2
  Name3. . . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    001CH  4
wchar_t. . . . . . . . . . . . . . . .  TYPEDEF  -----  CHAR     -----  1
FAT32DiskSize. . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
BootSecStr . . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  90
  BS_jmpBoot . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0000H  3
  BS_OEMName . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0003H  8
  BPB_BytesPerSec. . . . . . . . . . .  MEMBER   -----  U_INT    000BH  2
  BPB_SecPerClus . . . . . . . . . . .  MEMBER   -----  U_CHAR   000DH  1
  BPB_RsvdSecCnt . . . . . . . . . . .  MEMBER   -----  U_INT    000EH  2
  BPB_NumFATs. . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0010H  1
  BPB_RootEntCnt . . . . . . . . . . .  MEMBER   -----  U_INT    0011H  2
  BPB_TotSec16 . . . . . . . . . . . .  MEMBER   -----  U_INT    0013H  2
  BPB_Media. . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0015H  1
  BPB_FATSz16. . . . . . . . . . . . .  MEMBER   -----  U_INT    0016H  2
  BPB_SecPerTrk. . . . . . . . . . . .  MEMBER   -----  U_INT    0018H  2
  BPB_NumHeads . . . . . . . . . . . .  MEMBER   -----  U_INT    001AH  2
  BPB_HiddSec. . . . . . . . . . . . .  MEMBER   -----  U_LONG   001CH  4
  BPB_TotSec32 . . . . . . . . . . . .  MEMBER   -----  U_LONG   0020H  4
  FAT. . . . . . . . . . . . . . . . .  MEMBER   -----  UNION    0024H  54
FAT32SDirStr . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  32
  Name . . . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0000H  11
  Attr . . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   000BH  1
  NTRes. . . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   000CH  1
  CrtTimeTenth . . . . . . . . . . . .  MEMBER   -----  U_CHAR   000DH  1
  CrtTime. . . . . . . . . . . . . . .  MEMBER   -----  U_INT    000EH  2
  CrtDate. . . . . . . . . . . . . . .  MEMBER   -----  U_INT    0010H  2
  LstAccDate . . . . . . . . . . . . .  MEMBER   -----  U_INT    0012H  2
  FstClusHI. . . . . . . . . . . . . .  MEMBER   -----  U_INT    0014H  2
  WrtTime. . . . . . . . . . . . . . .  MEMBER   -----  U_INT    0016H  2
  WrtDate. . . . . . . . . . . . . . .  MEMBER   -----  U_INT    0018H  2
  FstClusLO. . . . . . . . . . . . . .  MEMBER   -----  U_INT    001AH  2
  FileSize . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   001CH  4
FAT32Str . . . . . . . . . . . . . . .  * TAG *  -----  STRUCT   -----  37
C51 COMPILER V6.23a  FAT32DISKSIZE                                                         12/24/2004 00:11:00 PAGE 14  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


  ClusSecCnt . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0000H  1
  CurrentDirectory . . . . . . . . . .  MEMBER   -----  U_LONG   0001H  4
  SecPerClus . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0005H  1
  RsvdSecCnt . . . . . . . . . . . . .  MEMBER   -----  U_INT    0006H  2
  NumFATs. . . . . . . . . . . . . . .  MEMBER   -----  U_CHAR   0008H  1
  RootClus . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   0009H  4
  ClusSec. . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   000DH  4
  FATSz. . . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   0011H  4
  FATSec . . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   0015H  4
  FSISec . . . . . . . . . . . . . . .  MEMBER   -----  U_LONG   0019H  4
  FSIFreeCount . . . . . . . . . . . .  MEMBER   -----  U_LONG   001DH  4
  FSINxtFree . . . . . . . . . . . . .  MEMBER   -----  U_LONG   0021H  4


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