- (AT and later only)
O EÊ ÂỚỚ ÊỚỚ EÊ ÂỚỚỚ ÊỚỚỚ EÊ | ÂỚỚỚỚ> day
ÔỚỚỚỚỚỚỚỚỚỚỚỚỚ> month
ÔỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚỚ> 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 VÀ 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| ---|---Á--- ÔỚỚỚỚỚỚỚ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 tố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 :