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

📄 fat32mountpartition.lst

📁 用C51单片机实现的MP3播放器的c代码程序。
💻 LST
字号:
C51 COMPILER V6.12  FAT32MOUNTPARTITION                                                    05/03/2005 11:51:04 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE FAT32MOUNTPARTITION
OBJECT MODULE PLACED IN .\FAT32MOUNTPARTITION.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE .\FAT32MOUNTPARTITION.C LARGE BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #ifndef _FAT32_DEFINE
   2           #include "FAT32.c"
   3          #endif
   4          
   5          BYTE FAT32MountPartition(void);
   6          
   7          BYTE FAT32MountPartition(void)
   8          {
   9   1      	register BYTE i,j,k;
  10   1      	xdata DWORD temp[4]={0,0,0,0};
  11   1      
  12   1      	IDEReadSector(0);				//读MBR扇区
  13   1      
  14   1      	//检查MBR扇区标记
  15   1       	if (DiskBuffer[510] != 0x55||DiskBuffer[511] != 0xaa)
  16   1      		return(FAT32_ERR_MBR_FLAG);			//不正常的引导扇区标志
  17   1      
  18   1      	//加载分区表
  19   1      	j=0;k=0;
  20   1      	for(i=0;i<4;i++)
  21   1      	{
  22   2      		DPT[i].LBABegin=MEMSwap32(DPT[i].LBABegin);
  23   2      		DPT[i].CntSec=MEMSwap32(DPT[i].CntSec);
  24   2      		if (DPT[i].TypeCode==0x0b)			//FAT32 分区
  25   2      		{
  26   3      			sDPT[j].TypeCode = DPT[i].TypeCode;
  27   3      			sDPT[j].LBABegin = DPT[i].LBABegin;
  28   3      			sDPT[j].CntSec = DPT[i].CntSec;
  29   3      			j++;
  30   3      		}
  31   2      		else if (DPT[i].TypeCode==0x05||DPT[i].TypeCode==0x0f)		//扩展分区
  32   2      		{
  33   3      			temp[k]=DPT[i].LBABegin;
  34   3      			k++;
  35   3      		}
  36   2      	}
  37   1      	
  38   1      	for(i=0;i<k&&j<16;i++)
  39   1      	{
  40   2      		IDEReadSector(temp[i]);
  41   2      		DPT[i].LBABegin=MEMSwap32(DPT[i].LBABegin);
  42   2      		DPT[i].CntSec=MEMSwap32(DPT[i].CntSec);
  43   2      		if (DPT[i].TypeCode==0x0b)			//FAT32 分区
  44   2      		{
  45   3      			sDPT[j].TypeCode = DPT[i].TypeCode;
  46   3      			sDPT[j].LBABegin = temp[i] + DPT[i].LBABegin;
  47   3      			sDPT[j].CntSec = DPT[i].CntSec;
  48   3      			j++;
  49   3      		}
  50   2      	}
  51   1      	HDD.TotalPartitions=j;
  52   1      	#ifdef DEBUG
              		printf("Partition Table\n");
              		printf("PNo.\tType\tLBAStart\tCount\tSize\n");
              		for(i=0;i<HDD.TotalPartitions;i++)
C51 COMPILER V6.12  FAT32MOUNTPARTITION                                                    05/03/2005 11:51:04 PAGE 2   

              		{
              			printf("P%bd\t%bx\t%ld\t\t%ld\t%ldMB\n",i,sDPT[i].TypeCode,sDPT[i].LBABegin,sDPT[i].CntSec,sDPT[i].CntS
             -ec*512/1024/1024);
              		}
              	#endif
  60   1      	return(0);
  61   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    812    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----      19
   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 + -