- (AT and later only)
O EÊ ÂỚỚ ÊỚỚ EÊ ÂỚỚỚ ÊỚỚỚ EÊ | ÂỚỚỚỚ> day
OÂỚỚỚỚỚỚỚỚỚỚỚỚỚ> month
OÂỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚ> year-1980 (0-119 valid) Byte đaău tieđn cụa filename mang các ý nghĩa như sau:
Giá trị 0 : directory entry còn trông (chưa dùng đên) Giá trị E5h : directory entry đã bị xóa bỏ
Các giá trị khác : directory entry đang được sử dúng Đôi với thư múc con:
File size luođn baỉng 0 --> kích thước thư múc chư có theơ suy từ FAT.
Entry đaău có name là . (moơt dâu châm) mang thođng tin veă vị trí, ngày giờ táo laơp, cluster baĩt đaău cụa chính thư múc con đó.
Entry thứ hai có name là .. (hai dâu châm) mang thođng tin veă vị trí, ngày giờ táo laơp, cluster baĩt đaău cụa thư múc chứa thư múc con đó. (nêu giá trị cluster baỉng 0 --> thư múc mé là root)
14.6MINH HĨA VEĂ TOƠ CHỨC FAT VAØ THƯ MÚC
starting cluster number ỚỚEƠ
Directory [---v---]
Entry ỚỚ |M Y F I L E T X T|a||tim|dat|08size | Ù---|---EƠ OẴÙỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚEÊ 00 01 02 03 04 05 06 07 |8 09 0a 0b 0c 0d 0e 0f ---v--- 00 |ID||ff||03=>04=>05=>ff||00||00||09=>0a=>0b=>15||00||00||00||00| ---|--- OẴÙỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚEÊ ---v--- 10 |00||00||00||00||00||16=>17=>19||f7||1a=>1b=>ff||00||00||00||00| ---|---AÙ--- OÂỚỚỚỚỚỚỚEÊ 14.7LOGICAL SECTOR
Các sector trong moơt volume được MSDOS đánh sô từ 0 trở đi. Các sector với cách đánh sô như vaơy gĩi là logical sector. Veă bạn chât, logical sector và relative sector tương tự nhau. Veă phương dieơn tính toán, relative sector baỉng với logical sector coơng theđm vị trí baĩt đaău cụa volume.
Ta neđn dùng interrupt 25h đeơ đĩc các logical sector. interrupt 26h đeơ ghi các logical sector. Input: AL = drive number (0=A, 1=B, etc.)
DS:BX = Ỵbuffer
CX = sô lượng sector đĩc/ghi (<FFFFh)
CX = FFFFh --> tác vú tređn BIG DOS partitions (>32M) DS:BX = Địa chư cụa transfer packet (10 bytes)
DS:[BX+0] sector baĩt đaău (DWORD)
DS:[BX+4] sô lượng sectors đĩc/ghi (WORD) DS:[BX+6] offset cụa buffer (WORD)
DS:[BX+8] segment cụa buffer (WORD) Output: CF = 1 --> AX = error code
Lưu ý : + Tât cạ các thanh ghi sẽ bị thay đoơi trừ DS, ES, SS, SP
Các interrupt này kêt thúc baỉng leơnh retf, do đó sẽ đeơ lái cờ hieơu trong stack khi kêt thúc.
Logical sector baĩt đaău cụa moơt cluster tính baỉng cođng thức sau : root—sects = (RootSize * 32) / SecSize
first—data = ResSecs + (FatSize * FatCnt) + root—sects logical—sector = first—data + ((cluster—no - 2) * ClusSize)
CHƯƠNG 15 :