{{page>en:templates:dosint}} ====== Int 21H, AH=43H, AL=01H ====== ===== Version ===== 2 and higher ===== Brief ===== "CHMOD" - SET FILE ATTRIBUTES ===== Family API ===== ===== Input ===== AX = 4301h CX = new file attributes (see #01420) DS:DX -> ASCIZ filename ===== Return ===== CF clear if successful AX destroyed CF set on error AX = error code (01h,02h,03h,05h) (see #01680 at AH=59h) ===== Macro ===== ===== Notes ===== will not change volume label or directory attribute bits, but will change the other attribute bits of a directory (the directory bit must be cleared to successfully change the other attributes of a directory, but the directory will not be changed to a normal file as a result) MS-DOS 4.01 reportedly closes the file if it is currently open for security reasons, the Novell NetWare execute-only bit can never be cleared; the file must be deleted and recreated under the FlashTek X-32 DOS extender, the filename pointer is in DS:EDX DOS 5.0 SHARE will close the file if it is currently open in sharing-compatibility mode, otherwise a sharing violation critical error is generated if the file is currently open DR DOS 3.41/5.0 will silently ignore attempts to change the 'directory' attribute bit Bitfields for file attributes: ^ Bit(s) ^ Description ^ | 7 | shareable (Novell NetWare) | | 7 | pending deleted files (Novell DOS, OpenDOS) | | 6 | unused | | 5 | archive | | 4 | directory | | 3 | volume label | | 3 | execute-only (Novell NetWare) | | 2 | system | | 1 | hidden | | 0 | read-only | ===== See also ===== AX=[[en:docs:dos:api:int21:43:00|4300h]],AX=[[en:docs:dos:api:int21:71:43|7143h]],INT 2F/AX=110Eh ===== Note ===== Text based on [[http://www.cs.cmu.edu/~ralf/files.html|Ralf Brown Interrupt List Release 61]] {{page>en:templates:int}} {{page>en:templates:fapi}}