亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fat.lst

?? ms51 控制sl811讀寫u盤的源程序 及 原理圖 可仿真試一下
?? LST
字號:
C51 COMPILER V6.20c  FAT                                                                   08/21/2003 22:51:05 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE FAT
OBJECT MODULE PLACED IN Fat.OBJ
COMPILER INVOKED BY: E:\WIN98\HARDWARE\KEILC\C51\BIN\C51.EXE Fat.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "common.h"
   2          #include "Fat.h"
   3          #include "SL811.H"
   4          #include "TPBULK.H"
   5          #include "HAL.H"
   6          //#include "RBCCMD.H"
   7          ////////////////////////////////////////
   8          extern XXGFLAGS bdata bXXGFlags;
   9          extern SYS_INFO_BLOCK xdata DeviceInfo;
  10          extern FILE_INFO xdata ThisFile;
  11          extern unsigned char xdata DBUF[BUFFER_LENGTH];
  12          unsigned char xdata FATBUF[512];
  13          unsigned char xdata CurFatSector[512];
  14          //unsigned char xdata OldFatSector[512];
  15          FREE_FAT_INFO xdata FreeFat;
  16          ////////////////////////////////////////
  17          unsigned long FirstSectorofCluster(unsigned int clusterNum)
  18          {
  19   1      	unsigned long temp;
  20   1      	temp=clusterNum-2;
  21   1      	temp=temp*DeviceInfo.BPB_SecPerClus;
  22   1      	temp=temp+DeviceInfo.FirstDataSector;
  23   1      	return temp;
  24   1      }
  25          
  26          unsigned int ThisFatSecNum(unsigned int clusterNum)
  27          {
  28   1         unsigned int temp;
  29   1         temp=clusterNum*2;
  30   1         temp=temp/DeviceInfo.BPB_BytesPerSec;
  31   1         temp=temp+DeviceInfo.FatStartSector;
  32   1         return temp;
  33   1      }
  34          
  35          unsigned int ThisFatEntOffset(unsigned int clusterNum)
  36          {
  37   1      	unsigned int temp1,temp2;
  38   1      	temp1=2*clusterNum;
  39   1      	temp2=temp1/DeviceInfo.BPB_BytesPerSec;
  40   1      	temp1=temp1-temp2*DeviceInfo.BPB_BytesPerSec;
  41   1      	return temp1;
  42   1      }
  43          
  44          unsigned int GetNextClusterNum(unsigned int clusterNum)
  45          {
  46   1      	unsigned int xxgFatSecNum,xxgFatEntOffset;
  47   1      	
  48   1      	xxgFatSecNum=ThisFatSecNum(clusterNum);
  49   1      	xxgFatEntOffset=ThisFatEntOffset(clusterNum);
  50   1      	//ThisFile.FatSectorPointer=xxgFatSecNum;
  51   1      	if(ThisFile.FatSectorPointer!=xxgFatSecNum)
  52   1      	{	
  53   2      		
  54   2      		if(!RBC_Read(xxgFatSecNum,1,FATBUF))
  55   2      			return 0xFFFF;
C51 COMPILER V6.20c  FAT                                                                   08/21/2003 22:51:05 PAGE 2   

  56   2      		ThisFile.FatSectorPointer=xxgFatSecNum;
  57   2      	}
  58   1      	
  59   1      	///////////////////////////////////////////////////
  60   1      	clusterNum=FATBUF[xxgFatEntOffset+1];
  61   1      	clusterNum=clusterNum<<8;
  62   1      	clusterNum+=FATBUF[xxgFatEntOffset];	
  63   1      	return clusterNum;
  64   1      }
  65          
  66          unsigned char DeleteClusterLink(unsigned int clusterNum)
  67          {
  68   1      	//unsigned int nextClusterNum;
  69   1      	unsigned int xxgFatSecNum,xxgFatEntOffset;
  70   1      	//nextClusterNum=GetNextClusterNum(clusterNum);
  71   1      	////////////////////////////////////////////
  72   1      	//nextClusterNum=clusterNum;
  73   1      	while((clusterNum>1)&&(clusterNum<0xfff0))
  74   1      	{
  75   2      	xxgFatSecNum=ThisFatSecNum(clusterNum);
  76   2      	xxgFatEntOffset=ThisFatEntOffset(clusterNum);
  77   2      	if(RBC_Read(xxgFatSecNum,1,DBUF))
  78   2      		{
  79   3      		clusterNum=DBUF[xxgFatEntOffset+1];
  80   3      		clusterNum=clusterNum<<8;
  81   3      		clusterNum+=DBUF[xxgFatEntOffset];	
  82   3      		//return clusterNum;
  83   3      		}
  84   2      	else
  85   2      		return FALSE;
  86   2      	DBUF[xxgFatEntOffset]=0x00;
  87   2      	DBUF[xxgFatEntOffset+1]=0x00;	
  88   2      	//DelayMs(5);
  89   2      	if(!RBC_Write(xxgFatSecNum,1,DBUF))
  90   2      		return FALSE;
  91   2      	//DelayMs(5);
  92   2      	if(!RBC_Write(xxgFatSecNum+DeviceInfo.BPB_FATSz16,1,DBUF))
  93   2      		return FALSE;
  94   2      	////////////////////////////////////////////
  95   2      	}
  96   1      	return TRUE;
  97   1      }
  98          
  99          unsigned int GetClusterNumFromSectorNum(unsigned long sectorNum)
 100          {
 101   1      	unsigned long temp;
 102   1      	temp=sectorNum-DeviceInfo.FirstDataSector;
 103   1      	temp=temp/DeviceInfo.BPB_SecPerClus;
 104   1      	temp=temp+2;
 105   1      	return (unsigned int)temp;
 106   1      }
 107          /*
 108          unsigned long GetSecNumFromPointer(void)
 109          {
 110          	unsigned int clusterNum,clusterSize;
 111          	unsigned long temp,pointer;
 112          	pointer=ThisFile.FilePointer;
 113          	clusterSize=DeviceInfo.BPB_SecPerClus*DeviceInfo.BPB_BytesPerSec;
 114          	clusterNum=ThisFile.StartCluster;
 115          	while(pointer>clusterSize)
 116          	{
 117          		pointer-=clusterSize;	
C51 COMPILER V6.20c  FAT                                                                   08/21/2003 22:51:05 PAGE 3   

 118          		clusterNum=GetNextClusterNum(clusterNum);
 119          	}
 120          	temp=FirstSectorofCluster(clusterNum)+pointer/DeviceInfo.BPB_BytesPerSec;
 121          	return temp;
 122          }
 123          */
 124          unsigned char GoToPointer(unsigned long pointer)
 125          {
 126   1      	//unsigned char temp;
 127   1      	unsigned int clusterSize;
 128   1      	//unsigned long temp;
 129   1      	//pointer=ThisFile.FilePointer;
 130   1      	clusterSize=DeviceInfo.BPB_SecPerClus*DeviceInfo.BPB_BytesPerSec;
 131   1      	ThisFile.ClusterPointer=ThisFile.StartCluster;
 132   1      	while(pointer>clusterSize)
 133   1      	{
 134   2      		pointer-=clusterSize;	
 135   2      		ThisFile.ClusterPointer=GetNextClusterNum(ThisFile.ClusterPointer);
 136   2      		if(ThisFile.ClusterPointer==0xffff)
 137   2      		{
 138   3      		return FALSE;
 139   3      		}
 140   2      	}
 141   1      	ThisFile.SectorofCluster=pointer/DeviceInfo.BPB_BytesPerSec;
 142   1      	ThisFile.SectorPointer=FirstSectorofCluster(ThisFile.ClusterPointer)+ThisFile.SectorofCluster;
 143   1      	ThisFile.OffsetofSector=pointer-ThisFile.SectorofCluster*DeviceInfo.BPB_BytesPerSec;
 144   1      	ThisFile.FatSectorPointer=0;
 145   1      	return TRUE;
 146   1      	
 147   1      }
 148          
 149          unsigned int GetFreeCusterNum(void)
 150          {
 151   1      	unsigned int clusterNum,i;
 152   1      	unsigned long sectorNum;
 153   1      	clusterNum=0;
 154   1      	sectorNum=DeviceInfo.FatStartSector;
 155   1      	while(sectorNum<DeviceInfo.BPB_FATSz16+DeviceInfo.FatStartSector)
 156   1      	{
 157   2      		
 158   2      		if(!RBC_Read(sectorNum,1,DBUF))
 159   2      			return 0x0;
 160   2      		for(i=0;i<DeviceInfo.BPB_BytesPerSec;i=i+2)
 161   2      		  	{
 162   3      		  	 //clusterNum++;	
 163   3      		  	 
 164   3      		  	 if((DBUF[i]==0)&&(DBUF[i+1]==0))
 165   3      		  	 	{	
 166   4      		  	 	DBUF[i]=0xff;
 167   4      		  	 	DBUF[i+1]=0xff;
 168   4      		  	 	//DelayMs(10);
 169   4      		  	 	if(!RBC_Write(sectorNum,1,DBUF))
 170   4      		  	 		return 0x00;
 171   4      		  	 	//DelayMs(10);
 172   4      		  	 	if(!RBC_Write(sectorNum+DeviceInfo.BPB_FATSz16,1,DBUF))
 173   4      		  	 		return 0x00;
 174   4      		  	 	
 175   4      		  	 	return	clusterNum; 
 176   4      		  	 	}
 177   3      		  	 clusterNum++;
 178   3      		  	}	
 179   2      				
C51 COMPILER V6.20c  FAT                                                                   08/21/2003 22:51:05 PAGE 4   

 180   2      		sectorNum=2*clusterNum/DeviceInfo.BPB_BytesPerSec+DeviceInfo.FatStartSector;	
 181   2      		//clusterNum+=DeviceInfo.BPB_BytesPerSec;
 182   2      		//DelayMs(10);
 183   2      	}
 184   1      	
 185   1      	return 0x0;
 186   1      }
 187          
 188          unsigned int CreateClusterLink(unsigned int currentCluster)
 189          {
 190   1      	unsigned char bFound;
 191   1      	unsigned int clusterNum;
 192   1      	unsigned int xxgFatSecNum,xxgFatEntOffset;
 193   1      	unsigned long temp;
 194   1      	bFound=0;
 195   1      	//////////////////////////////////////////////
 196   1      	//第一次讀FAT
 197   1      	if((FreeFat.SectorNum==DeviceInfo.FatStartSector)&&(FreeFat.OffsetofSector<3))
 198   1      		{	
 199   2      		if(!RBC_Read(FreeFat.SectorNum,1,CurFatSector))
 200   2      			return 0x0;	
 201   2      		}
 202   1      	//////////////////////////////
 203   1      	temp=FreeFat.SectorNum-DeviceInfo.FatStartSector;
 204   1      	temp=temp*DeviceInfo.BPB_BytesPerSec;
 205   1      	temp=temp/2;
 206   1      	clusterNum=temp+FreeFat.OffsetofSector/2;
 207   1      		
 208   1      	while(FreeFat.SectorNum<DeviceInfo.BPB_FATSz16+DeviceInfo.FatStartSector)
 209   1      	{
 210   2      		
 211   2      		while(FreeFat.OffsetofSector<DeviceInfo.BPB_BytesPerSec)
 212   2      		  	{
 213   3      		  	
 214   3      		  	 ///////////////////////////////////////////////
 215   3      		  	 if((CurFatSector[FreeFat.OffsetofSector]==0)&&(CurFatSector[FreeFat.OffsetofSector+1]==0))
 216   3      		  	 	{	
 217   4      		  	 	CurFatSector[FreeFat.OffsetofSector]=0xff;
 218   4      		  	 	CurFatSector[FreeFat.OffsetofSector+1]=0xff;
 219   4      		  	 	
 220   4      		  	 	FreeFat.OffsetofSector=FreeFat.OffsetofSector+2;
 221   4      		  	 	//return	clusterNum; 
 222   4      		  	 	bXXGFlags.bits.bFatChanged=1;
 223   4      		  	 	bFound=1;
 224   4      		  	 	break;
 225   4      		  	 	}
 226   3      		  	 FreeFat.OffsetofSector=FreeFat.OffsetofSector+2;
 227   3      		  	 clusterNum++;
 228   3      		  	}	
 229   2      		if(bFound==1)
 230   2      			break;	
 231   2      		//FreeFat.SectorNum=2*clusterNum/DeviceInfo.BPB_BytesPerSec+DeviceInfo.FatStartSector;	
 232   2      		//FreeFat.OldSectorNum=FreeFat.SectorNum;
 233   2      		//FreeFat.SectorNum++;
 234   2      		//FreeFat.OffsetofSector=0;
 235   2      		UpdateFat(FreeFat.SectorNum);
 236   2      		
 237   2      		FreeFat.SectorNum++;
 238   2      		FreeFat.OffsetofSector=0;
 239   2      		
 240   2      		if(!RBC_Read(FreeFat.SectorNum,1,CurFatSector))
 241   2      			return 0x0;	
C51 COMPILER V6.20c  FAT                                                                   08/21/2003 22:51:05 PAGE 5   

 242   2      		
 243   2      		
 244   2      		//clusterNum+=DeviceInfo.BPB_BytesPerSec;
 245   2      		//DelayMs(10);
 246   2      	}
 247   1      	//////////////////////////////////////////////
 248   1      	if(bFound==0)
 249   1      		return 0x00;
 250   1      	
 251   1      	/////////////////////////////////////////////////////////////////////	
 252   1      	xxgFatSecNum=ThisFatSecNum(currentCluster);
 253   1      	xxgFatEntOffset=ThisFatEntOffset(currentCluster);
 254   1      	
 255   1      	if(xxgFatSecNum!=FreeFat.SectorNum)
 256   1      	  {
 257   2      		RBC_Read(xxgFatSecNum,1,DBUF);
 258   2      	
 259   2      	//FreeFat.OffsetofSector=FreeFat.OffsetofSector+2;
 260   2      	
 261   2      		DBUF[xxgFatEntOffset]=clusterNum;
 262   2      		DBUF[xxgFatEntOffset+1]=clusterNum>>8;
 263   2      		//DelayMs(5);
 264   2      		if(!RBC_Write(xxgFatSecNum,1,DBUF))
 265   2      			return 0x00;
 266   2      		//DelayMs(10);
 267   2      		if(!RBC_Write(xxgFatSecNum+DeviceInfo.BPB_FATSz16,1,DBUF))
 268   2      			return 0x00;
 269   2      	   }
 270   1      	 else
 271   1      	   {
 272   2      	   	CurFatSector[xxgFatEntOffset]=clusterNum;
 273   2      		CurFatSector[xxgFatEntOffset+1]=clusterNum>>8;
 274   2      		
 275   2      		bXXGFlags.bits.bFatChanged=1;
 276   2      	   }	
 277   1      	return clusterNum;
 278   1      }
 279          
 280          void UpdateFat(unsigned long sectorNum)
 281          {
 282   1      
 283   1      	if(bXXGFlags.bits.bFatChanged==1)
 284   1      			{
 285   2      			if(!RBC_Write(sectorNum,1,CurFatSector))
 286   2      				return ;
 287   2      			//DelayMs(10);
 288   2      			if(!RBC_Write(sectorNum+DeviceInfo.BPB_FATSz16,1,CurFatSector))
 289   2      				return ;
 290   2      			bXXGFlags.bits.bFatChanged=0;
 291   2      			}
 292   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2026    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   1034    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      55
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.

C51 COMPILER V6.20c  FAT                                                                   08/21/2003 22:51:05 PAGE 6   


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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷av一区二区三区gif| 国产精品国产三级国产普通话蜜臀| 久久综合给合久久狠狠狠97色69| 国产精品欧美经典| 美女视频黄频大全不卡视频在线播放| 风间由美一区二区av101| 欧美狂野另类xxxxoooo| 亚洲天堂网中文字| 国产精品自产自拍| 欧美一区二区三区性视频| 亚洲女厕所小便bbb| 国产盗摄女厕一区二区三区| 欧美一区二区三区视频免费播放| 亚洲素人一区二区| 成人亚洲一区二区一| 欧美va亚洲va在线观看蝴蝶网| 一区二区三区 在线观看视频| 国产精品亚洲人在线观看| 欧美电影免费观看完整版| 天天射综合影视| 欧美日韩卡一卡二| 亚洲国产视频在线| 欧美在线不卡视频| 一区二区三区加勒比av| 91最新地址在线播放| 国产精品五月天| 国产精品538一区二区在线| 精品三级在线观看| 久久不见久久见免费视频1| 欧美精品精品一区| 午夜一区二区三区视频| 欧美日韩五月天| 午夜欧美电影在线观看| 欧美日韩大陆一区二区| 亚洲综合色噜噜狠狠| 欧美在线不卡视频| 日韩成人免费电影| 日韩一级高清毛片| 国产在线不卡一区| 国产亚洲1区2区3区| 国产91丝袜在线播放九色| 国产日产欧产精品推荐色| 在线视频国内一区二区| 亚洲在线一区二区三区| 欧美日韩国产小视频在线观看| 亚洲制服丝袜av| 欧美一区在线视频| 国产精品一级黄| 国产精品久久久久久久久搜平片| 99免费精品在线观看| 亚洲精品videosex极品| 欧美美女网站色| 国产综合色产在线精品| 国产精品电影一区二区三区| 色欧美片视频在线观看在线视频| 午夜视频一区二区三区| 亚洲精品一线二线三线| 91亚洲国产成人精品一区二三 | 国产精品一区二区久激情瑜伽| 久久精品免费在线观看| 一本色道亚洲精品aⅴ| 日本少妇一区二区| 国产精品女主播在线观看| 欧美亚洲免费在线一区| 精品影视av免费| 亚洲乱码国产乱码精品精98午夜| 欧美日韩国产中文| 成人一二三区视频| 五月婷婷另类国产| 国产欧美日韩视频一区二区| 欧美在线一区二区三区| 国产精品自拍在线| 日韩在线一区二区| 综合激情网...| 日韩精品资源二区在线| 97久久超碰国产精品电影| 蜜臀av性久久久久蜜臀av麻豆| 国产精品久久久久影视| 日韩精品资源二区在线| 欧美性高清videossexo| 国产成人综合网| 秋霞国产午夜精品免费视频| 日韩一区日韩二区| 久久久91精品国产一区二区精品 | 国产精品1区2区3区在线观看| 亚洲免费电影在线| 国产欧美日韩在线看| 欧美日韩成人综合在线一区二区| 成人激情视频网站| 韩国三级在线一区| 免费久久精品视频| 午夜国产精品影院在线观看| 亚洲三级电影全部在线观看高清| 精品欧美一区二区久久| 欧美精品自拍偷拍动漫精品| 色视频成人在线观看免| 不卡欧美aaaaa| 国产成人aaa| 国产乱码精品一区二区三区忘忧草| 午夜久久电影网| 一区二区三区视频在线观看| 国产精品传媒在线| 国产精品欧美久久久久一区二区| 精品99一区二区三区| 日韩视频在线一区二区| 在线电影国产精品| 欧美精品成人一区二区三区四区| 一本一本久久a久久精品综合麻豆| 岛国精品在线观看| 成人av在线播放网址| 福利一区在线观看| 成人免费av网站| 成人中文字幕电影| 国产91丝袜在线18| 高清国产午夜精品久久久久久| 国产精品18久久久久久久久久久久| 美国十次综合导航| 国产在线麻豆精品观看| 精品一区二区免费在线观看| 六月丁香综合在线视频| 国产最新精品免费| 国产 欧美在线| 国产99久久久国产精品潘金| 国产麻豆日韩欧美久久| 高清不卡一区二区| 94-欧美-setu| 91激情在线视频| 欧美三级视频在线| 日韩一区二区中文字幕| 精品粉嫩超白一线天av| 国产亚洲综合av| 一区在线观看视频| 亚洲综合激情另类小说区| 亚洲成人动漫精品| 青青草国产精品亚洲专区无| 国产一区在线精品| 91亚洲精品久久久蜜桃| 在线一区二区观看| 日韩精品一区二区三区四区| 国产欧美综合在线观看第十页 | 久久午夜羞羞影院免费观看| 日本一区免费视频| 一区二区日韩电影| 久久97超碰国产精品超碰| 成人av网站免费| 欧美精品久久一区二区三区| 久久久噜噜噜久噜久久综合| 1区2区3区精品视频| 五月综合激情日本mⅴ| 国产成人在线影院| 色综合久久精品| 精品久久人人做人人爰| 亚洲男女毛片无遮挡| 六月丁香综合在线视频| 色综合久久六月婷婷中文字幕| 欧美丰满少妇xxxbbb| 国产精品美女一区二区在线观看| 亚洲第一主播视频| 成人一区二区视频| 4438亚洲最大| 亚洲精品日韩综合观看成人91| 美国十次综合导航| 在线观看亚洲a| 国产日韩精品一区二区三区在线| 亚洲国产一二三| 福利一区二区在线观看| 在线播放中文一区| 亚洲欧美偷拍三级| 国产成人高清在线| 91精品福利在线一区二区三区| 在线一区二区三区四区五区| 亚洲蜜臀av乱码久久精品蜜桃| 欧美一区二区视频在线观看2022| 欧美日韩午夜精品| 自拍偷拍亚洲欧美日韩| 国产一区二区在线影院| 欧美群妇大交群的观看方式| 国产精品久久午夜夜伦鲁鲁| 久久99久久99| 7777精品伊人久久久大香线蕉经典版下载 | 中文字幕一区二区在线播放| 日韩黄色在线观看| 日本精品视频一区二区三区| 欧美成人精品二区三区99精品| 亚洲免费观看高清完整版在线观看 | 51精品视频一区二区三区| 亚洲日本va在线观看| 国产69精品久久久久777| 欧美人狂配大交3d怪物一区| 亚洲日本一区二区| 成人av电影在线网| 国产精品视频在线看| 国产精品影视网| 精品国一区二区三区| 奇米精品一区二区三区在线观看| 在线欧美一区二区| 亚洲午夜一二三区视频| 日本高清成人免费播放| 一区二区三区国产| 在线观看日韩一区|