windows-nt/Source/XPSP1/NT/base/mvdm/dos/v86/inc/dirent.inc
2020-09-26 16:20:57 +08:00

75 lines
2.5 KiB
PHP
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;** Break <Directory entry>
; NOTE: These offsets are also used in the DTA for
; extended FCB SearchFirst/Next. DIR_NAME lines up
; with the FCB filename field, and the rest of the
; DIR_ENTRY fields follow. -DavidOls
;** DIRENT.INC - FAT Directory Entry Definition
;
; +---------------------------+
; | (12 BYTE) filename/ext | 0 0
; +---------------------------+
; | (BYTE) attributes | 11 B
; +---------------------------+
; | (10 BYTE) reserved | 12 C
; +---------------------------+
; | (WORD) time of last write | 22 16
; +---------------------------+
; | (WORD) date of last write | 24 18
; +---------------------------+
; | (WORD) First cluster | 26 1A
; +---------------------------+
; | (DWORD) file size | 28 1C
; +---------------------------+
;
; First byte of filename = E5 -> free directory entry
; = 00 -> end of allocated directory
; Time: Bits 0-4=seconds/2, bits 5-10=minute, 11-15=hour
; Date: Bits 0-4=day, bits 5-8=month, bits 9-15=year-1980
;
DIR_ENTRY STRUC
DIR_NAME db 11 DUP (?) ; file name
DIR_ATTR db ? ; attribute bits
DIR_CODEPG dw ? ; code page DOS 4.00
DIR_EXTCLUSTER dw ? ; extended attribute starting cluster
DIR_ATTR2 db ? ; reserved
DIR_PAD db 5 DUP (?) ; reserved for expansion
DIR_TIME dw ? ; time of last write
DIR_DATE dw ? ; date of last write
DIR_FIRST dw ? ; first allocation unit of file
DIR_SIZE_L dw ? ; low 16 bits of file size
DIR_SIZE_H dw ? ; high 16 bits of file size
; Caution: An extended FCB SearchFirst/Next on a network
; drive under Novell Netware 286 or 386 returns the time/date
; in the SIZE fields for subdirectory files. Ordinarily,
; this field is zero for subdirectory files.
DIR_ENTRY ENDS
ATTR_READ_ONLY equ 1h
ATTR_HIDDEN equ 2h
ATTR_SYSTEM equ 4h
ATTR_VOLUME_ID equ 8h
ATTR_DIRECTORY equ 10h
ATTR_ARCHIVE equ 20h
ATTR_DEVICE equ 40h ; This is a VERY special bit.
; NO directory entry on a disk EVER
; has this bit set. It is set non-zero
; when a device is found by GETPATH
ATTR_ALL equ attr_hidden+attr_system+attr_directory
; OR of hard attributes for FINDENTRY
ATTR_IGNORE equ attr_read_only+attr_archive+attr_device
; ignore this(ese) attribute(s) during
; search first/next
ATTR_CHANGEABLE equ attr_read_only+attr_hidden+attr_system+attr_archive
; changeable via CHMOD
DIRFREE equ 0E5h ; stored in dir_name[0] to indicate free slot