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

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

?? fat.h

?? MMC interface and FAT File system
?? H
字號:
//#########################################################################
// File: fat.h
//
// Benutzt nur die erste Partition
// Nur f黵 Laufwerke mit 512 Bytes pro Sektor
//
// Nach einem White Paper von MS
// FAT: General Overview of On-Disk Format
// Version 1.03, December 6, 2000
//
//#########################################################################
// Last change: 10.05.2003
//#########################################################################
// holger.klabunde@t-online.de
// http://home.t-online.de/home/holger.klabunde/homepage.htm
//#########################################################################
// Compiler: AVR-GCC 3.2
//#########################################################################

#ifndef __FAT_H
#define __FAT_H

//file operations
#define END_DIR		0
#define NO_MATCH	1
#define MATCH_NAME	2
#define MATCH_EXT	3
#define FULL_MATCH	MATCH_NAME + MATCH_EXT

#define PART1_TABLE_OFFSET 0x01BE //offset to first partitiontable in sector 0

//Using structures needs less memory than indexing in arrays like inbuff[]
//Functions MakeUINT() and MakeULONG() are not necessary when using structures

//partitiontable structure
//most of it is not used in this program
//bootsector offset is the only thing we need
//because C/H/S values are not used. LBA !
struct PartInfo {
                 unsigned char status;      //Partition status, 0x80 = Active, 0x00 = inactive
                 unsigned char firsthead;   //First head used by partition
                 unsigned int  firstseccyl; //First sector and cylinder used by partition
                 unsigned char type;        //Partition type
                 unsigned char lasthead;    //Last head used by partition
                 unsigned int  lastseccyl;  //Last sector and cylinder used by partition
                 unsigned long bootoffset;  //Location of boot sector. !!!!!!!!!!!
                 unsigned long secofpart;   //Number of sectors for partition
};

//first sector of disc is the master boot record
//it contains four partitiontables
//only the first partition is used in this program
struct MBR {
            unsigned char dummy[PART1_TABLE_OFFSET]; //we don't need all these bytes
            struct PartInfo part1;
            struct PartInfo part2;
            struct PartInfo part3;
            struct PartInfo part4;
//all bytes below are not necessary
};

//part of FAT12/16 bootsector different to FAT32
struct RemBoot //FAT12/16 defs beginning at offset 36
 {
	unsigned char  BS_DrvNum;
	unsigned char  BS_Reserved1;
	unsigned char  BS_BootSig;
	unsigned char  BS_VolID[4];
	char           BS_VolLab[11];
	char           BS_FilSysType[8];
	unsigned char  remaining_part[450];
 };

//part of FAT32 bootsector different to FAT12/16
struct RemBoot32 //FAT32 defs beginning at offset 36
  {
	unsigned long  BPB_FATSz32; //4 bytes
	unsigned int   BPB_ExtFlags; //2 bytes
	unsigned int   BPB_FSVer; //2 bytes
	unsigned long  BPB_RootClus; //4 bytes
	unsigned int   BPB_FSInfo; //2 bytes
	unsigned int   BPB_BkBootSec; //2 bytes
	unsigned char  BPB_Reserved[12];
	unsigned char  BS_DrvNum;
	unsigned char  BS_Reserved1;
	unsigned char  BS_BootSig;
	unsigned long  BS_VolID; //4 bytes
	char           BS_VolLab[11];
	char           BS_FilSysType[8];
	unsigned char  remaining_part[422];
}; 

union endboot 
{
       struct RemBoot   rm;
       struct RemBoot32 rm32;
};

struct BootSec 
{
	unsigned char  BS_jmpBoot[3];
	char           BS_OEMName[8];
	unsigned int   BPB_BytesPerSec; //2 bytes
	unsigned char  BPB_SecPerClus;
	unsigned int   BPB_RsvdSecCnt; //2 bytes
	unsigned char  BPB_NumFATs;
	unsigned int   BPB_RootEntCnt; //2 bytes
	unsigned int   BPB_TotSec16; //2 bytes
	unsigned char  BPB_Media;
	unsigned int   BPB_FATSz16; //2 bytes
	unsigned int   BPB_SecPerTrk; //2 bytes
	unsigned int   BPB_NumHeads; //2 bytes
	unsigned long  BPB_HiddSec; //4 bytes
	unsigned long  BPB_TotSec32; //4 bytes
        union endboot  eb; //remaining part of bootsector
};


#define BYTE_PER_SEC	512

#define FAT12	12
#define FAT16	16
#define FAT32	32

//defines for special cluster values
//free cluster has value 0
//for fat32 don't use upper four bits ! ignore them
//cluster value of 0x10000000 is a FREE cluster in FAT32
 
//values for end of cluster chain
//ranges for example for FAT12 from 0xFF8 to 0xFFF
#define EOC12	0xFF8
#define EOC16	0xFFF8
#define EOC32	0x0FFFFFF8

//values for bad marked clusters
#define BADC12	0xFF7
#define BADC16	0xFFF7
#define BADC32	0x0FFFFFF7

//values for reserved clusters
//ranges for example for FAT12 from 0xFF0 to 0xFF6
#define RESC12	0xFF0
#define RESC16	0xFFF0
#define RESC32	0x0FFFFFF0

#define DISK_FULL 0xFFFFFFFF

//File/Dir Attributes
#define ATTR_FILE	0x00 //not defined by MS ! I did it 
#define ATTR_READ_ONLY	0x01
#define ATTR_HIDDEN	0x02
#define ATTR_SYSTEM	0x04
#define ATTR_VOLUME_ID	0x08
#define ATTR_DIRECTORY	0x10
#define ATTR_ARCHIVE	0x20
#define ATTR_LONG_NAME  0x0F

//Char codes not allowed in a filename
//NOT checked yet
//0x22, 0x2A, 0x2B, 0x2C, 0x2E, 0x2F, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x5B, 0x5C, 0x5D, and 0x7C. 

struct DirEntry {
                 unsigned char DIR_Name[8];      //8 chars filename
                 unsigned char DIR_Ext[3];       //3 chars extension
                 unsigned char DIR_Attr;         //file attributes RSHA
                 unsigned char DIR_NTres;        //set to zero
                 unsigned char DIR_CrtTimeTenth; //creation time part in milliseconds
                 unsigned int  DIR_CrtTime;      //creation time
                 unsigned int  DIR_CrtDate;      //creation date
                 unsigned int  DIR_LastAccDate;  //last access date (no time for this !)
                 unsigned int  DIR_FstClusHI;  //first cluster high word                 
                 unsigned int  DIR_WrtTime;      //last write time
                 unsigned int  DIR_WrtDate;      //last write date
                 unsigned int  DIR_FstClusLO;  //first cluster low word                 
                 unsigned long DIR_FileSize;     
                };

//do a little trick for getting long name characters from a DirEntry
//DirEntryBuffer later gets the same adress as DirEntry
struct DirEntryBuffer {
                 unsigned char longchars[sizeof(struct DirEntry)];
                };

//Prototypes
extern unsigned char GetDriveInformation(void);
extern unsigned long GetFirstSectorOfCluster(unsigned long n);
extern unsigned long GetNextClusterNumber(unsigned long cluster);
extern unsigned char WriteClusterNumber(unsigned long cluster, unsigned long number);
extern unsigned long AllocCluster(unsigned long currentcluster);
extern unsigned long FindFreeCluster(unsigned long currentcluster);

extern unsigned char lo; //show long name entrys on=1;
extern unsigned long endofclusterchain;
extern unsigned long maxcluster;
extern unsigned char secPerCluster;
extern unsigned long FirstFatSector;
extern unsigned long FATSz;
extern unsigned long FAT32RootCluster;
extern unsigned char FATtype;
extern unsigned long CurrentDirCluster;

extern unsigned long FileFirstCluster;
extern unsigned long FileCurrentSector;
extern unsigned long FileCurrentCluster;
extern unsigned long File1stClusterSector;
extern unsigned long FileClusterCount;
extern unsigned long FileBytePerCluster;
extern unsigned long FileDirSector;
extern unsigned char FileDirOffset;
extern unsigned long FileSize;
extern unsigned long FilePosition;
extern unsigned char FileFlag;
extern unsigned char FileName[];
extern unsigned char FileExt[];

extern unsigned long FirstRootSector;
extern unsigned long RootDirSectors;

extern unsigned long CurrentSector;
extern unsigned long CurrentCluster;

#endif //FAT_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲欧美日韩俺去了| 欧美性淫爽ww久久久久无| 香蕉影视欧美成人| 亚洲乱码国产乱码精品精可以看| 国产午夜亚洲精品理论片色戒| 欧美一区二区播放| 日韩精品一区二区三区视频在线观看 | 99久久精品情趣| 国产99久久久精品| 成人午夜碰碰视频| 欧美中文字幕久久| 欧美无人高清视频在线观看| 91.成人天堂一区| 日韩精品一区二区三区蜜臀 | 99久久婷婷国产综合精品电影 | 国产综合一区二区| 国产精品一二一区| eeuss鲁片一区二区三区在线观看| 国产激情偷乱视频一区二区三区| 国产91精品欧美| 色综合久久久网| 制服.丝袜.亚洲.中文.综合| 日韩午夜在线播放| 中文字幕av在线一区二区三区| 国产精品传媒视频| 日韩高清在线电影| 国产成人超碰人人澡人人澡| 色老综合老女人久久久| 91精品综合久久久久久| 日本一区免费视频| 亚洲一级电影视频| 麻豆精品精品国产自在97香蕉 | 91九色02白丝porn| 欧美一级午夜免费电影| 国产精品色呦呦| 婷婷六月综合亚洲| 成人国产视频在线观看| 欧美日韩国产综合久久 | 最新日韩在线视频| 日韩电影网1区2区| av电影天堂一区二区在线| 欧美日韩一区久久| 国产精品三级视频| 久久电影网站中文字幕| 色综合天天性综合| 久久久久9999亚洲精品| 亚洲制服丝袜av| 成人av在线看| 国产精品成人免费| 久久国产精品99精品国产| 99久久99久久免费精品蜜臀| 日韩一级成人av| 亚洲一区在线视频| aaa欧美日韩| 久久精品一区二区三区不卡| 香蕉加勒比综合久久| 波波电影院一区二区三区| 精品电影一区二区| 日日夜夜精品免费视频| 91福利小视频| 亚洲三级在线看| 国产999精品久久久久久绿帽| 在线播放视频一区| 亚洲成人免费在线| 欧美综合一区二区三区| 亚洲视频电影在线| 不卡av免费在线观看| 国产色综合久久| 国模套图日韩精品一区二区| 日韩欧美你懂的| 六月丁香综合在线视频| 欧美军同video69gay| 亚洲成人免费在线| 91麻豆精品国产综合久久久久久| 亚洲国产精品视频| 欧美在线你懂的| 亚洲狠狠爱一区二区三区| 欧美午夜精品久久久久久超碰| 亚洲欧美另类在线| 色天天综合久久久久综合片| 日韩一区日韩二区| 在线视频一区二区三区| 亚洲国产视频在线| 欧美电影在线免费观看| 日韩国产精品久久久久久亚洲| 91精品婷婷国产综合久久性色| 夫妻av一区二区| 欧美激情中文不卡| av中文一区二区三区| 亚洲激情成人在线| 欧美群妇大交群中文字幕| 石原莉奈在线亚洲三区| 精品免费日韩av| 成人综合激情网| 一区二区三区91| 欧美久久久久免费| 国产精品影视在线观看| 亚洲色图19p| 欧美一区二区三区小说| 国产一区欧美一区| 亚洲男人电影天堂| 欧美一级高清大全免费观看| 精品综合免费视频观看| 国产精品动漫网站| 538在线一区二区精品国产| 精品一区二区三区免费毛片爱| 国产日韩欧美不卡| 欧美亚一区二区| 国产在线精品一区二区不卡了 | 99re热视频精品| 同产精品九九九| 国产清纯在线一区二区www| 91啪在线观看| 青青草国产成人av片免费| 国产欧美日韩在线观看| 欧美日韩中文国产| 成人涩涩免费视频| 免费成人在线影院| 亚洲私人影院在线观看| 欧美成人欧美edvon| 色婷婷av一区二区三区软件 | 91在线视频18| 裸体健美xxxx欧美裸体表演| 国内久久精品视频| 一区二区三区四区在线| 精品99一区二区三区| 91精品福利在线| 成人av免费在线| 久久se精品一区精品二区| 一区二区三区四区不卡在线| 久久精品视频网| 欧美精品色综合| 色系网站成人免费| 国产成人av电影在线观看| 日本视频一区二区| 亚洲一线二线三线视频| 亚洲私人黄色宅男| 国产三级欧美三级日产三级99 | 亚洲激情自拍偷拍| 国产欧美日韩麻豆91| 久久综合网色—综合色88| 欧美三级乱人伦电影| 一本一道久久a久久精品 | 亚洲图片欧美一区| 亚洲欧美日韩在线| 亚洲视频你懂的| 国产精品久久久久久久久动漫| 欧美videossexotv100| 欧美一级高清大全免费观看| 91精品国产色综合久久不卡电影| 欧美在线综合视频| 欧美色区777第一页| 91蜜桃婷婷狠狠久久综合9色| 成人深夜在线观看| av成人老司机| 92精品国产成人观看免费| 成人h精品动漫一区二区三区| 国产成人免费在线观看| 高清成人免费视频| 成人晚上爱看视频| 不卡电影一区二区三区| 一本色道**综合亚洲精品蜜桃冫| jlzzjlzz亚洲日本少妇| 日韩一区二区免费高清| 精品免费视频一区二区| 久久精品水蜜桃av综合天堂| 一区在线中文字幕| 亚洲一区二区三区不卡国产欧美| 亚洲午夜久久久久久久久电影院| 日韩影院精彩在线| 久久成人久久爱| 成人久久18免费网站麻豆| 91黄视频在线观看| 91精品欧美综合在线观看最新| 9191精品国产综合久久久久久| 日韩欧美国产精品| 欧美激情一区二区三区四区| 国产精品国产三级国产三级人妇| 亚洲免费视频中文字幕| 日本视频免费一区| 国产精品1区2区| 91免费看片在线观看| 在线成人免费观看| 国产日本亚洲高清| 亚洲精选在线视频| 久久99精品久久久久久| 国产精品77777| 在线观看亚洲精品视频| 日韩视频免费观看高清完整版在线观看 | 亚洲桃色在线一区| 视频一区视频二区中文| 国产成人av影院| 欧美日韩高清一区二区| 国产丝袜美腿一区二区三区| 亚洲午夜电影网| 国产成人av一区二区三区在线观看| 欧美天天综合网| 日本一区二区视频在线| 亚洲国产精品尤物yw在线观看| 国产很黄免费观看久久|