en:docs:dos:api:int21:6c

Note: This API call is for DOS and Win16 personality only. Use Family API for portability.

2018/09/07 05:04 · prokushev · 0 Comments

Int 21H, AH=6cH

Version

4 and higher

Brief

EXTENDED OPEN/CREATE

Family API

Input

AX = 6C00h
BL = open mode as in AL for normal open (see also AH=3Dh)
bit 7:
Inheritance

bits 4-6:
Sharing mode
bit 3 reserved
bits 0-2:
Access mode
100 read-only, do not modify file's last-access time (DOS 7.0).
BH = flags
bit 6 = auto commit on every write (see also AH=68h)
bit 5 = return error rather than doing INT 24h
bit 4 = (FAT32) extended size (allow 4GB files instead of 2GB).
CX = create attribute (see #01769).
DL = action if file exists/does not exist (see #01770).
DH = 00h (reserved).
DS:SI -> ASCIZ file name

Return

CF set on error
AX = error code (see #01680 at AH=59h/BX=0000h)
CF clear if successful
AX = file handle
CX = status (see #01768)

Notes

The PC LAN Program only supports existence actions (in DL) of 01h, 10h with sharing=compatibility, and 12h. DR DOS reportedly does not support this function and does not return an "invalid function call" error when this function is used.. The documented bits of BX are stored in the SFT when the file is opened (see #01641,#01642)
BUG: This function has bugs (at least in DOS 5.0 and 6.2) when used with drives handled via the network redirector (INT 2F/AX=112Eh): - CX (attribute) is not passed to the redirector if DL=11h, - CX does not return the status, it is returned unchanged because DOS does a PUSH CX/POP CX when calling the redirector.
        

See also

 AH=3Ch - AH=3Dh - AX=6C01h - AX=7160h/CL=00h

Note

2018/09/04 17:23 · prokushev · 0 Comments