📄 fat32diskfreesize.lst
字号:
C51 COMPILER V6.23a FAT32DISKFREESIZE 12/24/2004 00:10:59 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 FAT32DiskFreeSize(void);
6
7 DWORD FAT32DiskFreeSize(void)
8 {
9 1 IDEReadSector(FAT32.FSISec);
10 1 return(MEMSwap32(FSI->FreeCount) * FAT32.SecPerClus * IDE.BytesPerSec);
11 1 }
C51 COMPILER V6.23a FAT32DISKFREESIZE 12/24/2004 00:10:59 PAGE 11
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION FAT32DiskFreeSize (BEGIN)
; SOURCE LINE # 7
; SOURCE LINE # 8
; SOURCE LINE # 9
0000 900000 E MOV DPTR,#FAT32+019H
0003 E0 MOVX A,@DPTR
0004 FC MOV R4,A
0005 A3 INC DPTR
0006 E0 MOVX A,@DPTR
0007 FD MOV R5,A
0008 A3 INC DPTR
0009 E0 MOVX A,@DPTR
000A FE MOV R6,A
000B A3 INC DPTR
000C E0 MOVX A,@DPTR
000D FF MOV R7,A
000E 900000 E MOV DPTR,#IDE+02H
0011 120000 E LCALL ?C?LSTXDATA
0014 120000 E LCALL _IDEReadSector
; SOURCE LINE # 10
0017 900000 E MOV DPTR,#FSI
001A E0 MOVX A,@DPTR
001B FB MOV R3,A
001C A3 INC DPTR
001D E0 MOVX A,@DPTR
001E FA MOV R2,A
001F A3 INC DPTR
0020 E0 MOVX A,@DPTR
0021 F9 MOV R1,A
0022 9001E8 MOV DPTR,#01E8H
0025 120000 E LCALL ?C?LLDOPTR
0028 120000 E LCALL _MEMSwap32
002B A804 MOV R0,AR4
002D A905 MOV R1,AR5
002F AA06 MOV R2,AR6
0031 AB07 MOV R3,AR7
0033 900000 E MOV DPTR,#FAT32+05H
0036 E0 MOVX A,@DPTR
0037 FF MOV R7,A
0038 E4 CLR A
0039 FC MOV R4,A
003A FD MOV R5,A
003B FE MOV R6,A
003C 120000 E LCALL ?C?LMUL
003F A804 MOV R0,AR4
0041 A905 MOV R1,AR5
0043 AA06 MOV R2,AR6
0045 AB07 MOV R3,AR7
0047 900000 E MOV DPTR,#IDE+06H
004A E0 MOVX A,@DPTR
004B FE MOV R6,A
004C A3 INC DPTR
004D E0 MOVX A,@DPTR
004E FF MOV R7,A
004F E4 CLR A
0050 FC MOV R4,A
0051 FD MOV R5,A
0052 120000 E LCALL ?C?LMUL
; SOURCE LINE # 11
C51 COMPILER V6.23a FAT32DISKFREESIZE 12/24/2004 00:10:59 PAGE 12
0055 ?C0001:
0055 22 RET
; FUNCTION FAT32DiskFreeSize (END)
C51 COMPILER V6.23a FAT32DISKFREESIZE 12/24/2004 00:10:59 PAGE 13
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
_IDEReadSector . . . . . . . . . . . . EXTERN CODE PROC ----- -----
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
C51 COMPILER V6.23a FAT32DISKFREESIZE 12/24/2004 00:10:59 PAGE 14
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
BS_VolLab. . . . . . . . . . . . . . MEMBER ----- ARRAY 0023H 11
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
FAT32. . . . . . . . . . . . . . . . . EXTERN XDATA STRUCT ----- 37
_MEMSwap32 . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
IDE. . . . . . . . . . . . . . . . . . EXTERN XDATA STRUCT ----- 8
FSI. . . . . . . . . . . . . . . . . . EXTERN XDATA PTR ----- 3
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
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
C51 COMPILER V6.23a FAT32DISKFREESIZE 12/24/2004 00:10:59 PAGE 15
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
FAT32DiskFreeSize. . . . . . . . . . . PUBLIC CODE PROC 0000H -----
FAT32Str . . . . . . . . . . . . . . . * TAG * ----- STRUCT ----- 37
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 = 86 ----
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 + -