?? fat12hdr.inc
字號:
; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; fat12hdr.inc
; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; Forrest Yu, 2005
; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; FAT12 磁盤的頭
; ----------------------------------------------------------------------
BS_OEMName DB 'ForrestY' ; OEM String, 必須 8 個字節(jié)
BPB_BytsPerSec DW 512 ; 每扇區(qū)字節(jié)數(shù)
BPB_SecPerClus DB 1 ; 每簇多少扇區(qū)
BPB_RsvdSecCnt DW 1 ; Boot 記錄占用多少扇區(qū)
BPB_NumFATs DB 2 ; 共有多少 FAT 表
BPB_RootEntCnt DW 224 ; 根目錄文件數(shù)最大值
BPB_TotSec16 DW 2880 ; 邏輯扇區(qū)總數(shù)
BPB_Media DB 0xF0 ; 媒體描述符
BPB_FATSz16 DW 9 ; 每FAT扇區(qū)數(shù)
BPB_SecPerTrk DW 18 ; 每磁道扇區(qū)數(shù)
BPB_NumHeads DW 2 ; 磁頭數(shù)(面數(shù))
BPB_HiddSec DD 0 ; 隱藏扇區(qū)數(shù)
BPB_TotSec32 DD 0 ; 如果 wTotalSectorCount 是 0 由這個值記錄扇區(qū)數(shù)
BS_DrvNum DB 0 ; 中斷 13 的驅(qū)動器號
BS_Reserved1 DB 0 ; 未使用
BS_BootSig DB 29h ; 擴(kuò)展引導(dǎo)標(biāo)記 (29h)
BS_VolID DD 0 ; 卷序列號
BS_VolLab DB 'Tinix0.01 '; 卷標(biāo), 必須 11 個字節(jié)
BS_FileSysType DB 'FAT12 ' ; 文件系統(tǒng)類型, 必須 8個字節(jié)
;------------------------------------------------------------------------
; -------------------------------------------------------------------------
; 基于 FAT12 頭的一些常量定義,如果頭信息改變,下面的常量可能也要做相應(yīng)改變
; -------------------------------------------------------------------------
FATSz equ 9 ; BPB_FATSz16
RootDirSectors equ 14 ; 根目錄占用空間: RootDirSectors = ((BPB_RootEntCnt * 32) + (BPB_BytsPerSec – 1)) / BPB_BytsPerSec; 但如果按照此公式代碼過長
SectorNoOfRootDirectory equ 19 ; Root Directory 的第一個扇區(qū)號 = BPB_RsvdSecCnt + (BPB_NumFATs * FATSz)
SectorNoOfFAT1 equ 1 ; FAT1 的第一個扇區(qū)號 = BPB_RsvdSecCnt
DeltaSectorNo equ 17 ; DeltaSectorNo = BPB_RsvdSecCnt + (BPB_NumFATs * FATSz) - 2
; 文件的開始Sector號 = DirEntry中的開始Sector號 + 根目錄占用Sector數(shù)目 + DeltaSectorNo
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -