Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
back2root:ibm-pc-ms-dos:hardware:informations:file-system-format [2023/03/03 17:37] – [Tableau] frater | back2root:ibm-pc-ms-dos:hardware:informations:file-system-format [2023/03/03 17:52] – [File Descriptor Table] frater | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
===== DOS 2.x System File Table Format ===== | ===== DOS 2.x System File Table Format ===== | ||
+ | {{tablelayout? | ||
+ | ^ Offset | ||
+ | | 00 | dword | pointer to next system file table; offset of ffffh indicates last table in chain | | ||
+ | | 04 | word | number of file descriptors in table | | ||
+ | | 06 | nbytes | ||
- | ^ Offset | ||
- | | 00 | ||
- | | 04 | word | number of file descriptors in table | | ||
- | | 06 | nbytes | file descriptor table of the format (40 bytes each):| | ||
- | | + | ==== File Descriptor Table ==== |
- | ^ Offset ^ Size ^ Description ^ | + | |
{{tablelayout? | {{tablelayout? | ||
- | | | + | ^ Offset |
- | | 00 | byte | count of handles referring to this file or zero if file is no longer open | | + | | 00 | byte |
- | | 01 | byte | open mode | | + | | 01 | byte |
- | | 02 | byte | file attribute | + | | 02 | byte |
- | | 03 | byte | drive (1=A, 2=B:, ..., 0=char device) | + | | 03 | byte |
- | | 04 | 11bytes | + | | 04 | 11bytes |
- | | 0F | word | unknown | + | | 0F | word |
- | | 11 | word | unknown | + | | 11 | word |
- | | 13 | dword | + | | 13 | dword | file size | |
- | | 17 | word | file date | | + | | 17 | word |
- | | 19 | word | file time | | + | | 19 | word |
- | | 1B | byte | device attribute | + | | 1B | byte |
- | | 1C | word | starting cluster of file (block device) | + | | 1C | word |
- | | | + | | | dword | pointer to device driver (if char device) |
- | | 1E | word | if block device, relative cluster within file of the last cluster read; zero if file has never been read or written | + | | 1E | word |
- | | 20 | word | absolute cluster number of current cluster | + | | 20 | word |
- | | 22 | word | unknown | + | | 22 | word |
- | | 24 | dword | + | | 24 | dword | current file position |
===== DOS 3.x System File Table and FCB Table Format ===== | ===== DOS 3.x System File Table and FCB Table Format ===== | ||
+ | ^ Offset | ||
+ | | 00 | dword | pointer to next system file table; offset of ffffh indicates last table in chain | | ||
+ | | 04 | word | number of file descriptors in table | | ||
+ | | 06 | nbytes | file descriptor table of the format (53 bytes each): | | ||
- | | + | ==== File Descriptor Table ==== |
- | + | ||
- | 00 | + | |
- | indicates last table in chain | + | |
- | 04 | + | |
- | 06 nbytes file descriptor table of the format (53 bytes each): | + | |
- | + | ||
- | | + | |
- | + | ||
- | 00 | + | |
- | zero if file is no longer open | + | |
- | 02 | + | |
- | 04 | + | |
- | 05 | + | |
- | 07 | + | |
- | if block device pointer to DOS Device Control Block | + | |
- | 0B | + | |
- | 0D | + | |
- | 0F | + | |
- | 11 | + | |
- | 15 | + | |
- | 19 | + | |
- | the last cluster read | + | |
- | 1B | + | |
- | zero if file has never been read or written | + | |
- | 1D | + | |
- | 1F | + | |
- | 20 11bytes filename in FCB format | + | |
- | 2B | + | |
- | 2F | + | |
- | 31 | + | |
- | 33 | + | |
- | 0000h | + | |
+ | ^ Offset | ||
+ | | 00| | ||
+ | | 02| | ||
+ | | 04| | ||
+ | | 05| | ||
+ | | 07| | ||
+ | | 0B| | ||
+ | | 0D| | ||
+ | | 0F| | ||
+ | | 11| | ||
+ | | 15| | ||
+ | | 19| | ||
+ | | 1B| | ||
+ | | 1D| | ||
+ | | 1F| | ||
+ | | 20| 11bytes |filename in FCB format | ||
+ | | 2B| | ||
+ | | 2F| | ||
+ | | 31| | ||
+ | | 33| | ||
- | DOS 4.0+ System File Table and FCB Table | + | ===== DOS 4.0+ System File Table and FCB Table ===== |
+ | ^ Offset | ||
+ | | 00 | dword | pointer to next system file table; offset of ffffh indicates last table in chain | | ||
+ | | 04 | word | number of file descriptors in table | | ||
+ | | 06 | nbytes | file descriptor table of the format (59 bytes each): | | ||
- | | + | ==== File Descriptor Table ==== |
- | 00 | + | | 00| word | count of handles referring to this file or zero if file is no longer open | |
- | indicates | + | | 02| |
- | 04 word number of file descriptors in table | + | | 04| |
- | 06 nbytes file descriptor table of the format (59 bytes each): | + | | 05| |
+ | | 07| dword| if char device | ||
+ | | 0B| | ||
+ | | 0D| | ||
+ | | 0F| | ||
+ | | 11| | ||
+ | | 15| | ||
+ | | 19| | ||
+ | | 1B| | ||
+ | | 1F| | ||
+ | | 20| 11bytes| filename | ||
+ | | 2B| | ||
+ | | 2F| word| SHARE | ||
+ | | 31| | ||
+ | | 33| | ||
+ | | 35| | ||
+ | | 37| | ||
- | | ||
- | 00 | + | <WRAP round box> |
- | zero if file is no longer open | + | * these structures are allocated by DOS during the scanning |
- | 02 | + | * [[back2root: |
- | 04 | + | |
- | 05 | + | * see Bibliography references |
- | 07 | + | * See [[back2root: |
- | if block device pointer to DOS Device Control Block | + | </ |
- | or REDIR data | + | |
- | 0B | + | |
- | 0D | + | |
- | 0F | + | |
- | 11 | + | |
- | 15 | + | |
- | 19 | + | |
- | | + | |
- | of the last cluster read | + | |
- | 1B | + | |
- | 1F | + | |
- | 20 11bytes filename | + | |
- | 2B | + | |
- | 2F | + | |
- | 31 | + | |
- | 33 | + | |
- | 0000h = none | + | |
- | 35 | + | |
- | zero if file has never been read or written | + | |
- | 37 | + | |
- | - these structures are allocated by DOS during the scanning of the | ||
- | CONFIG.SYS file | ||
- | - INT 21,67 can be used to allow an application to have more than | ||
- | 20 file handles; | ||
- | the value of FILES=n in CONFIG.SYS | ||
- | - the structure of these fields is undocumented; | ||
- | relying on any of this information, | ||
- | debugging | ||
- | - see Bibliography references to Bernd Schemmer and "Data Structures | ||
- | Used in IBM PC Compatibles and the PS/2". | ||
- | - see INT 21,52 | ||