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

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

?? fat.c

?? D12 的源代碼
?? C
字號:

/*_____ V A R I A B L E __________________________________________________*/
bdata  bit     dir_is_root;     /* TRUE: point the root directory  */
//bdata  bit     fat_open_mode;        // READ or WRITE 

data   Byte    fat_cluster_size; /* cluster size (sector count) */
data   Byte    fat_cluster_mask; /* mask for end of cluster test */

//xdata  char    ext[3];           /* file extension (limited to 3 characters) */
xdata  Uint32  fat_nb_sector;
xdata  Uint32  fat_hidden_sector;
xdata  Byte    fat_sector_per_track;
xdata  Byte    fat_end_head;
xdata  Uint16  fat_end_cylinder;
xdata  Uint32  fat_ptr_fats;    /* address of the first byte of FAT */
xdata  Uint32  fat_ptr_rdir;    /* address of the first byte of root dir */
xdata  Uint32  fat_ptr_data;    /* address of the first byte of data */

xdata  Uint16  nb_reserved_sector;
/*F**************************************************************************
* NAME: fat_format
 PURPOSE:
*   Create single FAT12 or FAT16 partition and format the selected memory 
*/
void fat_format ()
{
  #define WAV_CLUST_SIZE  (Uint16)((WAV_SECTOR_SIZE) / fat_cluster_size)
  #define FORMAT_NB_CYLINDER            (*tab).nb_cylinder
  #define FORMAT_NB_HEAD                (*tab).nb_head
  #define FORMAT_NB_SECTOR              (*tab).nb_sector
  #define FORMAT_NB_HIDDEN_SECTOR       (*tab).nb_hidden_sector
  #define FORMAT_NB_SECTOR_PER_CLUSTER  (*tab).nb_sector_per_cluster

Byte i, j;
Uint32 nb_total_sectors;
Uint32 temp;
Uint16 nb_sector_fat;
s_format  code  *tab;

	tab = Hard_format();
	fat_cluster_size = FORMAT_NB_SECTOR_PER_CLUSTER;
	nb_total_sectors = (Uint32)FORMAT_NB_CYLINDER * ((Uint16)FORMAT_NB_HEAD * FORMAT_NB_SECTOR);
 
  // FAT type caculation 
	fat_is_fat16 = ((nb_total_sectors  / fat_cluster_size) > MAX_CLUSTERS12);

  // -- MASTER BOOT RECORD -- 
	Hard_write_open(0x00);

	for (i = 446/2; i != 0; i--)              // Boot Code 
	{
		Hard_write_byte(0x00);
		Hard_write_byte(0x00);
	}


  // First Partition entry 
i=0;
	gl_buffer[i++]=0x80;                    // Default Boot Partition 
  	gl_buffer[i++]=(Byte)(FORMAT_NB_HIDDEN_SECTOR / FORMAT_NB_SECTOR);       // Start head 
  	gl_buffer[i++]=(Byte)((FORMAT_NB_HIDDEN_SECTOR % FORMAT_NB_SECTOR) + 1); // Start Sector 
  	gl_buffer[i++]=0x00;                    // Start Cylinder 
	if (fat_is_fat16)
	{
//    if (nb_total_sectors > 0xFFFF)          // Total Sectors 
		if((((Byte *)&nb_total_sectors)[0]!=0)||(((Byte *)&nb_total_sectors)[1]!=0))
		{
      	gl_buffer[i++]=FAT16_SUP32M;        // FAT16 > 32 Mbytes 
		}
		else
		{
      	gl_buffer[i++]=FAT16_INF32M;        // FAT16 < 32 Mbytes 
		}
	}
	else
	{
		gl_buffer[i++]=FAT12;                 // FAT12 
	}
  	gl_buffer[i++]=(Byte)(FORMAT_NB_HEAD - 1); // Endhead-Zero-based(0)head number 
  	gl_buffer[i++]=(Byte)((((FORMAT_NB_CYLINDER - 1) / 0x04) & 0xC0) +  FORMAT_NB_SECTOR);  
                                                            // EndSector-Zero-based(1) sector number 
  	gl_buffer[i++]=(Byte)((FORMAT_NB_CYLINDER - 1) & 0xFF); // EndCylinder 
  	gl_buffer[i++]=(Byte)(FORMAT_NB_HIDDEN_SECTOR );        // Start sector
  	gl_buffer[i++]=0x00;
  	gl_buffer[i++]=0x00;
  	gl_buffer[i++]=0x00;
  
	temp = nb_total_sectors - FORMAT_NB_HIDDEN_SECTOR;
	gl_buffer[i++] = ((Byte *)&temp)[3];
	gl_buffer[i++] = ((Byte *)&temp)[2];
	gl_buffer[i++] = ((Byte *)&temp)[1];
	gl_buffer[i++] = ((Byte *)&temp)[0];


	for(j=0;j<48;j++)	gl_buffer[i++]=0x00;

	gl_buffer[i++]=0x55;                    // Signature Word 
	gl_buffer[i++]=0xAA;


	j=0;
	for (; i != 0; i--)              // Boot Code 
	{
		Hard_write_byte(gl_buffer[j++]);
	}

  // -- HIDDEN SECTORS -- 
  for (j = FORMAT_NB_HIDDEN_SECTOR - 1; j != 0; j--)
  {
    for (i = (SECTOR_SIZE / 4); i != 0; i--)
    {
      Hard_write_byte(0x00);
      Hard_write_byte(0x00);
      Hard_write_byte(0x00);
      Hard_write_byte(0x00);
    }
  }
 

  // -- PARTITION BOOT RECORD -- 
i=0;

	gl_buffer[i++]=0xEB;                    // JMP inst to PBR boot code 
  	gl_buffer[i++]=0x3C;
  	gl_buffer[i++]=0x90;
  	gl_buffer[i++]='O';                     // OEM name 
  	gl_buffer[i++]='E';
  	gl_buffer[i++]='M';
  	gl_buffer[i++]=' ';
  	gl_buffer[i++]='N';
  	gl_buffer[i++]='A';
  	gl_buffer[i++]='M';
  	gl_buffer[i++]='E';
  	gl_buffer[i++]=(Byte)SECTOR_SIZE;             // number of bytes per sector 
  	gl_buffer[i++]=(Byte)(SECTOR_SIZE >> 8);
  	gl_buffer[i++]=fat_cluster_size;        // Number of sector per cluster 
  	gl_buffer[i++]=(Byte)nb_reserved_sector;             // number of reserved sector 
  	gl_buffer[i++]=(Byte)(nb_reserved_sector >> 8);
  	gl_buffer[i++]=NB_FATS;                 // Number of FAT 
  	gl_buffer[i++]=(Byte)NB_ROOT_ENTRY;           // number of root directory entries 
  	gl_buffer[i++]=(Byte)(NB_ROOT_ENTRY >> 8);
                                                            
//  if (nb_total_sectors > 0xFFFF)            // Total Sectors 
	if((((Byte *)&nb_total_sectors)[0]!=0)||(((Byte *)&nb_total_sectors)[1]!=0))
  {
    	gl_buffer[i++]=0x00;
    	gl_buffer[i++]=0x00;
  }
  else
  {
		gl_buffer[i++] = ((Byte *)&temp)[3];
		gl_buffer[i++] = ((Byte *)&temp)[2];

  }

  	gl_buffer[i++]=HARD_DISK;               // Media Byte 
  // Number of sector in each FAT 

	if (fat_is_fat16) 
	{
		nb_sector_fat = ((temp / fat_cluster_size) * 2 / 512) + 1;
	}
	else
	{
		nb_sector_fat = ((temp / fat_cluster_size) * 3 / 1024) + 1;
	}

  	gl_buffer[i++]=(Byte)(nb_sector_fat);
  	gl_buffer[i++]=(Byte)(nb_sector_fat >> 8);
  	gl_buffer[i++]=(Byte)(FORMAT_NB_SECTOR);              // Number of sectors on a track 
  	gl_buffer[i++]=(Byte)(FORMAT_NB_SECTOR >> 8);
  	gl_buffer[i++]=(Byte)(FORMAT_NB_HEAD);                // Number of heads 
  	gl_buffer[i++]=(Byte)(FORMAT_NB_HEAD >> 8);

	gl_buffer[i++]=(Byte)(FORMAT_NB_HIDDEN_SECTOR);       // Number of hidden sectors 
  	gl_buffer[i++]=(Byte)(FORMAT_NB_HIDDEN_SECTOR >> 8);
  	gl_buffer[i++]=(Byte)(FORMAT_NB_HIDDEN_SECTOR >> 16);
  	gl_buffer[i++]=(Byte)(FORMAT_NB_HIDDEN_SECTOR >> 24);

//  if (nb_total_sectors > 0xFFFF)
	if((((Byte *)&nb_total_sectors)[0]!=0)||(((Byte *)&nb_total_sectors)[1]!=0))
  { // number of sectors > 65535 
		gl_buffer[i++] = ((Byte *)&temp)[3];
		gl_buffer[i++] = ((Byte *)&temp)[2];
		gl_buffer[i++] = ((Byte *)&temp)[1];
		gl_buffer[i++] = ((Byte *)&temp)[0];

  }
  else
  { // number of sectors < 65535 
    	gl_buffer[i++]=0x00;
    	gl_buffer[i++]=0x00;
    	gl_buffer[i++]=0x00;
    	gl_buffer[i++]=0x00;
  }
  	gl_buffer[i++]=FAT_DRIVE_NUMBER;        // Driver number  
  	gl_buffer[i++]=0x00;                    // not used 
  	gl_buffer[i++]=FAT_EXT_SIGN;            // extended boot signature 
  	gl_buffer[i++]=0x00;                    // volume ID 
  	gl_buffer[i++]=0x00;
  	gl_buffer[i++]=0x00;
  	gl_buffer[i++]=0x00;
  	gl_buffer[i++]='N';                     // Volume Label 
  	gl_buffer[i++]='O';
  	gl_buffer[i++]=' ';
  	gl_buffer[i++]='N';
  	gl_buffer[i++]='A';
  	gl_buffer[i++]='M';
  	gl_buffer[i++]='E';
  	gl_buffer[i++]=' ';
  	gl_buffer[i++]=' ';
  	gl_buffer[i++]=' ';
  	gl_buffer[i++]=' ';
  	gl_buffer[i++]='F';                     // File System Type in ASCII 
  	gl_buffer[i++]='A';
  	gl_buffer[i++]='T';
  	gl_buffer[i++]='1';
  if (fat_is_fat16)
  {
    	gl_buffer[i++]='6';
  }
  else
  {
    	gl_buffer[i++]='2';
  }
  	gl_buffer[i++]=' ';
  	gl_buffer[i++]=' ';
  	gl_buffer[i++]=' ';

	j=0;
	for (; i != 0; i--)              // Boot Code 
	{
		Hard_write_byte(gl_buffer[j++]);
	}

	for (i = 448/2; i != 0; i--)              // Boot Code 
	{
		Hard_write_byte(0x00);
   	Hard_write_byte(0x00);
	}
	Hard_write_byte(0x55);                    // Signature word 
	Hard_write_byte(0xAA);

  for (j = (nb_reserved_sector-1); j != 0 ; j--)
  {
    for (i = 128; i != 0; i--)
    {
      Hard_write_byte(0x00);
      Hard_write_byte(0x00);
      Hard_write_byte(0x00);
      Hard_write_byte(0x00);
    }
  }

  //------------------
  // -- FATS -- 
  // -- FAT 1 -- 
  Hard_write_byte(0xF8);                    // reserved clusters 0 & 1 
  Hard_write_byte(0xFF);
  Hard_write_byte(0xFF);
  if (fat_is_fat16)
  { // FAT16 
    Hard_write_byte(0xFF);
  }
  else
  { // FAT12 
    Hard_write_byte(0x00);
  }
  // free clusters in first FAT sector 
  for (i = (SECTOR_SIZE - 4) / 2; i != 0; i--)
  {
    Hard_write_byte(0x00);
    Hard_write_byte(0x00);
  }
  // free clusters in other FAT sectors 
  for (j = nb_sector_fat - 1; j != 0; j--)
  {
    for (i = SECTOR_SIZE / 4; i != 0; i--)
    {
      Hard_write_byte(0x00);
      Hard_write_byte(0x00);
      Hard_write_byte(0x00);
      Hard_write_byte(0x00);
    }
  }

  // -- FAT 2 -- 
  Hard_write_byte(0xF8);                    // reserved clusters 0 & 1 
  Hard_write_byte(0xFF);
  Hard_write_byte(0xFF);
  if (fat_is_fat16)
  { // FAT16 
    Hard_write_byte(0xFF);
  }
  else
  { // FAT12 
    Hard_write_byte(0x00);
  }
  // free clusters in first FAT sector 
  for (i = (SECTOR_SIZE - 4) / 2; i != 0; i--)
  {
    Hard_write_byte(0x00);
    Hard_write_byte(0x00);
  }
  // free clusters in other FAT sectors 
  for (j = nb_sector_fat - 1; j != 0; j--)
  {
    for (i = SECTOR_SIZE / 4; i != 0; i--)
    {
      Hard_write_byte(0x00);
      Hard_write_byte(0x00);
      Hard_write_byte(0x00);
      Hard_write_byte(0x00);
    }
  }


  // -- ROOT DIRECTORY ENTRIES -- 
  for (j = NB_ROOT_ENTRY / 4; j != 0 ; j--)
  {
    for (i = DIR_SIZE; i != 0; i--)
    {
      Hard_write_byte(0x00);
      Hard_write_byte(0x00);
      Hard_write_byte(0x00);
      Hard_write_byte(0x00);
    }
  }
  Hard_write_close();
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
另类小说欧美激情| 国产日产欧美一区| 日本乱人伦一区| 成a人片亚洲日本久久| 国产成人在线网站| 国产一区二区在线电影| 国产呦萝稀缺另类资源| 国产福利一区二区三区视频| 风间由美一区二区三区在线观看| 激情综合色播五月| 成人av网站在线观看免费| av在线不卡免费看| 欧美午夜精品久久久| 91精品国产一区二区三区香蕉| 日韩欧美不卡一区| 中文字幕中文字幕一区二区| 亚洲欧美二区三区| 蜜臀久久99精品久久久久宅男| 国产一区二区主播在线| 91福利精品视频| 欧美一区二区三区成人| 中文字幕精品综合| 亚洲最大色网站| 久久99国产精品麻豆| 99re热视频这里只精品| 91精品国产一区二区人妖| 国产欧美精品区一区二区三区| 亚洲欧美在线观看| 免费观看在线综合色| 成人精品国产福利| 欧美日韩国产高清一区二区三区 | 日本一区二区视频在线| 亚洲国产电影在线观看| 亚洲成人动漫av| 麻豆精品视频在线观看| 成人av在线观| 日韩色视频在线观看| 久久久久国色av免费看影院| 亚洲综合视频网| 国产福利一区在线| 日韩欧美另类在线| 亚洲一区视频在线观看视频| 国产成人亚洲综合色影视| 欧美日韩一级二级| 亚洲日本成人在线观看| 国产美女av一区二区三区| 欧美婷婷六月丁香综合色| 国产片一区二区三区| 日本一道高清亚洲日美韩| 色悠悠久久综合| 亚洲免费在线观看| 国产精品自拍网站| 日韩视频免费观看高清完整版在线观看 | 日本福利一区二区| 国产日韩精品一区二区三区在线| 日韩—二三区免费观看av| 91在线视频观看| 久久久久一区二区三区四区| 男女男精品视频| 欧美福利视频一区| 亚洲国产视频一区二区| 色综合久久中文字幕综合网| 国产精品网站一区| 国产成人精品一区二| 欧美成人在线直播| 日韩中文字幕1| 欧美日韩免费电影| 午夜私人影院久久久久| 欧美视频一区在线观看| 亚洲精品写真福利| 日本二三区不卡| 一区二区三区自拍| 欧美午夜精品电影| 日日摸夜夜添夜夜添国产精品 | 国产91丝袜在线播放0| 久久婷婷色综合| 国产精品一卡二| 国产精品视频看| 91香蕉国产在线观看软件| 亚洲精品日韩专区silk| 91精品国产高清一区二区三区| 亚洲va在线va天堂| 日韩午夜激情电影| 国产精品1024| 中文字幕在线播放不卡一区| 96av麻豆蜜桃一区二区| 亚洲一线二线三线久久久| 欧美日韩成人一区| 精品一区二区三区的国产在线播放| 久久综合国产精品| 波多野结衣中文一区| 亚洲在线一区二区三区| 欧美一区二区三区在线电影| 久久国产精品第一页| 久久精品欧美一区二区三区麻豆 | 欧美女孩性生活视频| 美女网站视频久久| 久久久久久久久久久久久夜| 丁香婷婷综合激情五月色| 综合色中文字幕| 欧美美女视频在线观看| 国产在线视频一区二区三区| 国产精品久久久久久久久久久免费看 | 国产麻豆午夜三级精品| 亚洲女与黑人做爰| 精品91自产拍在线观看一区| gogogo免费视频观看亚洲一| 日韩精品国产欧美| 国产精品美女www爽爽爽| 欧美中文字幕亚洲一区二区va在线| 免费成人结看片| 中文字幕欧美一| 日韩一区二区电影| 色综合一个色综合亚洲| 久久99精品久久只有精品| 日韩伦理免费电影| www国产精品av| 欧美亚洲综合在线| 成人av网站在线| 久久成人av少妇免费| 亚洲主播在线播放| 中文字幕成人在线观看| 日韩欧美国产精品一区| 色哟哟日韩精品| 成人精品一区二区三区四区| 麻豆精品视频在线观看免费| 亚洲线精品一区二区三区八戒| 国产清纯在线一区二区www| 欧美国产成人精品| 精品国内二区三区| 91精品黄色片免费大全| 在线视频一区二区免费| 不卡的av中国片| 国产一区999| 九九九久久久精品| 日本视频免费一区| 天天av天天翘天天综合网色鬼国产 | 91丨porny丨国产入口| 国产成人免费在线观看| 国产一区二区看久久| 青青青爽久久午夜综合久久午夜| 一区二区不卡在线播放 | 精品国产免费一区二区三区四区| 欧美挠脚心视频网站| 欧美伦理视频网站| 欧美日韩国产精选| 欧美人妇做爰xxxⅹ性高电影 | 国产精品久久久久久久久果冻传媒| 精品国产凹凸成av人网站| 日韩小视频在线观看专区| 91精品国产综合久久久蜜臀粉嫩| 欧美日韩中文字幕精品| 日本黄色一区二区| 欧美最猛黑人xxxxx猛交| 色哟哟国产精品| 色综合天天综合在线视频| 不卡一区二区三区四区| 91尤物视频在线观看| 91在线观看美女| 色综合久久66| 欧美三级乱人伦电影| 日韩视频免费观看高清完整版在线观看| 欧美一区二区免费观在线| 日韩视频免费观看高清完整版| 欧美妇女性影城| 久久久久久久网| 国产精品久久久久久久久免费丝袜| 综合网在线视频| 石原莉奈在线亚洲三区| 久久99精品国产.久久久久| 国产成人av一区二区三区在线 | 中文字幕一区二区日韩精品绯色| 亚洲欧美aⅴ...| 日本不卡一区二区三区高清视频| 91网站最新网址| 欧美日本一区二区在线观看| 欧美va天堂va视频va在线| 综合色天天鬼久久鬼色| 日韩影院精彩在线| 国产乱人伦偷精品视频免下载| caoporn国产精品| 欧美日韩国产美女| 亚洲国产高清在线| 日韩电影免费在线| www.亚洲免费av| 欧美一级高清片| 1024成人网| 精品亚洲免费视频| 欧美性高清videossexo| 2020日本不卡一区二区视频| 一区二区三区欧美久久| 国产自产高清不卡| 欧美亚州韩日在线看免费版国语版| 日韩精品一区二区三区四区视频| 亚洲丝袜另类动漫二区| 国产一区欧美一区| 日韩一区二区精品在线观看| 亚洲天堂a在线| 成人晚上爱看视频| 精品国一区二区三区|