Interrups | Categories | Contents |
CL = 71h DS:DX -> parameter block (see #04038)
Return:
AX = status (0000h successful, else error code) may destroy SI,DI,DS(Table 04037) Values for DR "execute DOS-compatible function" function number: 00h "fd_getdpb" get disk information (see also INT 21/AH=32h) 01h "fd_mkdir" create directory (see also INT 21/AH=39h) 02h "fd_rmdir" remove directory (see also INT 21/AH=3Ah) 03h "fd_chdir" change directory (see also INT 21/AH=3Bh) 04h "fd_creat" create file (see also INT 21/AH=3Ch) 05h "fd_open" open existing file (see also INT 21/AH=3Dh) 06h "fd_close" close file (see also INT 21/AH=3Eh) 07h "fd_read" read from file (see also INT 21/AH=3Fh) 08h "fd_write" write to file (see also INT 21/AH=40h) 09h "fd_delete" delete file (see also INT 21/AH=41h) 0Ah "fd_lseek" get/set file position (see also INT 21/AH=42h) 0Bh "fd_chmod" get/set file attributes (see also INT 21/AH=43h) 0Ch "fd_curdir" get current directory (see also INT 21/AH=47h) 0Dh "fd_sfirst" find first matching file (see also INT 21/AH=4Eh) 0Eh "fd_snext" find next matching file (see also INT 21/AH=4Fh) 0Fh "fd_rename" rename file (see also INT 21/AH=56h) 10h "fd_gsfdate" get/set file date (see also INT 21/AX=5700h) 11h "fd_mktemp" make temporary file (see also INT 21/AH=5Ah) 12h "fd_mknew" create new file (see also INT 21/AH=5Bh) 13h "fd_lock" lock/unlock file data (see also INT 21/AH=5Ch) 14h "fd_dup" duplicate file handle (see also INT 21/AH=45h) 15h "fd_dup2" force duplicate file handle (see also INT 21/AH=46h) 16h-19h ??? 1Ah "fd_ioctl" I/O control emulation 1Bh "fd_commit" commit file to disk (see also INT 21/AH=68h) 1Ch "fd_expand" expand file name (see also INT 21/AH=60h) 1Dh ??? 1Eh ??? 1Fh "fd_sethandles" set number of handles for calling process
See Also: #04038
Format of DR "execute DOS-compatible function" parameter block: Offset Size Description (Table 04038) 00h WORD function number (see #04037) ---function 00h--- 02h WORD drive 04h DWORD -> DPB (see #04039) ---function 01h,02h,03h--- 02h DWORD -> ASCIZ directory name ---function 04h--- 02h DWORD -> ASCIZ filename 06h WORD file attributes ---function 05h--- 02h DWORD -> ASCIZ filename 06h WORD open mode (see INT 21/AH=3Dh) ---function 06h--- 02h WORD file handle ---function 07h,08h--- 02h WORD file handle 04h DWORD -> buffer 08h WORD number of bytes to read or write ---function 09h--- 02h DWORD -> ASCIZ filename ---function 0Ah--- 02h WORD file handle 04h DWORD (call) desired offset (ret) new file position if function is successful 08h WORD seek origin (offset is calculated from specified position) 00h start of file 01h current position 02h end of file ---function 0Bh--- 02h DWORD -> ASCIZ filename 06h WORD (call) new file attributes or new file owner (ret) current/new file attributes, depending on function 08h WORD subfunction 00h get attribute 01h set attribute 02h get extended attributes 03h set extended attributes (and password) 04h get encrypted password 05h set extended attributes (and encrypted password) 06h get file owner 07h set file owner
Note: The password is taken from the first 8 bytes of the DTA ---function 0Ch--- 02h WORD drive 04h DWORD -> 64-byte buffer for ASCIZ current directory path ---function 0Dh--- 02h DWORD -> ASCIZ filespec 06h WORD file attributes 08h WORD (call) size of buffer pointed at by current DTA (ret) number of matching files returned???
Note: If the volume label attribute is specified, the root directory will be searched if the buffer is at least 47 bytes, multiple matching entries will be stored in the DTA (at 21 bytes per entry) ---function 0Eh--- 02h WORD number of additional matches to store in DTA (normally set to 0, but if DTA is at least 47 bytes, can be set to (DTAsize-21)/26 to return multiple matches) ---function 0Fh--- 02h DWORD -> ASCIZ filename 06h DWORD -> ASCIZ new name ---function 10h--- 02h WORD file handle 04h WORD subfunction 00h get date and time 01h set date and time 06h WORD file date 08h WORD file time ---function 11h--- 02h DWORD -> ASCIZ pathname + 13 extra bytes for generated filename (if pathname does not end in backslash, one will be appended) 06h WORD file attributes ---function 12h--- 02h DWORD -> ASCIZ filename 06h WORD file attributes ---function 13h--- 02h WORD file handle 04h DWORD offset of start of region 08h DWORD length of region to lock/unlock 0Ch WORD subfunction (00h = lock, 01h = unlock) ---function 14h--- 02h WORD file handle to be duplicated (new file handle is returned as function return value) ---function 15h--- 02h WORD file handle to be duplicated 04h WORD file handle which is to become the duplicate ---function 1Ah, form 1--- 02h WORD file handle 04h WORD IOCTL function number (00h,01h,06h,07h,0Ah) 06h WORD (ret) status ---function 1Ah, form 2--- 02h WORD drive number 04h WORD IOCTL function number (08h,09h,0Eh,0Fh) 06h WORD (ret) status ---function 1Ah, form 3--- 02h WORD file handle 04h WORD IOCTL function number (02h,03h,54h) 06h DWORD -> buffer 0Ah WORD (call) size of buffer in bytes (ret) size of returned data ---function 1Ah, form 4--- 02h WORD drive number 04h WORD IOCTL function number (04h,05h) 06h DWORD -> buffer 0Ah WORD (call) size of buffer in bytes (ret) size of returned data ---function 1Bh--- 02h WORD file handle of file to be committed to disk ---function 1Ch--- 02h DWORD -> ASCIZ relative filename 06h DWORD -> buffer for absolute filename ---function 1Fh--- 02h WORD desired number of file handles for process
Format of DR Multiuser DOS Disk Parameter Block (DPB): Offset Size Description (Table 04039) 00h BYTE drive number (00h = A:) 01h BYTE relative unit number 02h WORD sector size in bytes 04h BYTE sectors per cluster - 1 05h BYTE shift count to convert clusters into sectors 06h WORD number of reserved sectors at beginning of drive 08h BYTE number of FATs 09h WORD number of root directory entries 0Bh WORD number of first sector containing user data 0Dh WORD number of clusterse on disk 0Fh BYTE number of sectors per FAT 10h WORD sector number of first directory sector 12h 4 BYTEs reserved 16h BYTE media ID byte (see #01356) 17h BYTE 00h if disk accessed, FFh if not 18h 6 BYTEs reserved 1Eh WORD number of free clusters on drive
Note: This structure is a subset of the MS-DOS 3.x Drive Parameter Block
See Also: #04038 - #01357 at INT 21/AH=1Fh - #01395 at INT 21/AH=32h
Category: Other Operating Systems - Int E0h - C
Interrups | Categories | Contents |