Porting MS-DOS System Calls

The DOS3Call API function in Windows 3.x must be called from assembly language. It is typically used to perform file I/O. In Win32, you should replace assembly language code that calls DOS3Call with the appropriate Win32 file I/O calls. Other (non-file) INT 21H functions should be replaced with the portable Windows API call as shown in the following table.

INT 21H subfunction MS-DOS operation Win32 API equivalent
0EH Select Disk SetCurrentDirectory
19H Get Current Disk GetCurrentDirectory
2AH Get Date GetDateAndTime
2BH Set Date SetDateAndTime
2CH Get Time GetDateAndTime
2DH Set Time SetDateAndTime
36H Get Disk Free Space GetDiskFreeSpace
39H Create Directory CreateDirectory
3AH Remove Directory RemoveDirectory
3BH Set Current Directory SetCurrentDirectory
3CH Create Handle CreateFile
3DH Open Handle CreateFile
3EH Close Handle CloseHandle
3FH Read Handle ReadFile
40H Write Handle WriteFile
41H Delete File DeleteFile
42H Move File Pointer SetFilePointer
43H Get File Attributes GetAttributesFile
43H Set File Attributes SetAttributesFile
47H Get Current Directory GetCurrentDirectory
4EH Find First File FindFirstFile
4FH Find Next File FindNextFile
56H Change Directory Entry MoveFile
57H Get Date/Time of File GetDateAndTimeFile
57H Set Date/Time of File SetDataAndTimeFile
59H Get Extended Error GetLastError
5AH Create Unique File GetTempFileName
5BH Create New File CreateFile
5CH Lock LockFile
5CH Unlock UnlockFile
67H Set Handle Count SetHandleCount