Table of Contents

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

Version

1 and higher

Brief

DOS API Dispatcher

Family API

Family API functions

Win16 API

Dos3Call, NoHookDosCall

Input

AH Description Version Implemented in DOSKRNL osFree MacroLib API FamilyAPI Win16 API
00H Program terminate 1.0+ @Exit DosExit —
01H Character input 1.0+ Yes — KbdCharIn —
02H Character output 1.0+ Yes @DispCh VioWrtTTY —
03H Auxiliary input 1.0+ Yes — DosDevIOCtl —
04H Auxiliary output 1.0+ Yes — DosDevIOCtl —
05H Printer output 1.0+ Yes @PrtCh DosDevIOCtl —
06H Direct console I/O 1.0+ Yes — KbdCharIn, VioWrtTTY —
07H Direct console input without echo 1.0+ Yes — KbdCharIn —
08H Console input without echo 1.0+ Yes — KbdCharIn —
09H Display string 1.0+ Yes @DispStr VioWrtCharStr —
0AH Buffered keyboard input 1.0+ Yes @GetStr KbdStringIn —
0BH Get input status 1.0+ Yes — KbdPeek —
0CH Flush input buffer and input 1.0+ Yes — KbdFlushBuffer —
0DH Disk reset 1.0+ — DosBufReset —
0EH Set default drive 1.0+ @SetDrv DosSelectDisk —
0FH Open file (FCB) 1.0+ — — —
10H Close file (FCB) 1.0+ — — —
11H Find first file (FCB) 1.0+ — — —
12H Find next file (FCB) 1.0+ — — —
13H Delete file (FCB) 1.0+ — — —
14H Sequential read (FCB) 1.0+ — — —
15H Sequential write (FCB) 1.0+ — — —
16H Create or truncate file (FCB) 1.0+ — — —
17H Rename file (FCB) 1.0+ — — —
19H Get default drive 1.0+ @GetDrv DosQCurDisk —
1AH Set disk transfer address 1.0+ @SetDTA — —
1BH Get allocation info for default drive 1.0+ — DosQFSInfo —
1CH Get allocation info for specified drive 1.0+ — DosQFSInfo —
1FH Get disk parameter block for default drive 1.0+ — — —
21H Random read (FCB) 1.0+ — — —
22H Random write (FCB) 1.0+ — — —
23H Get file size in records (FCB) 1.0+ — — —
24H Set random record number (FCB) 1.0+ — — —
25H Set interrupt vector 1.0+ @SetInt — —
26H Create PSP 1.0+ — — —
27H Random block read (FCB) 1.0+ — — —
28H Random block write (FCB) 1.0+ — — —
29H Parse filename (FCB) 1.0+ — — —
2AH Get date 1.0+ @GetDate DosGetDateTime —
2BH Set date 1.0+ @SetDate DosSetDateTime —
2CH Get time 1.0+ @GetTime DosGetDateTime —
2DH Set time 1.0+ @SetTime DosSetDateTime —
2EH Set verify flag 1.0+ — DosSetVerify —
2FH Get disk transfer address 2.0+ @GetDTA — —
30H Get DOS version 2.0+ @GetVer DosGetVersion GetVersion
31H Terminate and stay resident 2.0+ @TSR — —
32H Get disk parameter block for specified drive 2.0+ — — —
33H Extended functions 2.0+ Yes — — —
3300H Get current extended break state 2.0+ Yes — — —
3301H Set state of extended Ctrl+C/Ctrl+Break checking 2.0+ Yes — — —
3302H Get and set extended Control-Break checking state 3.0+ Yes — — —
3303H Get current CPSW state 3.4/4.0 No — — —
3304H Set CPSW state 3.4/4.0 No — — —
3305H Get boot drive 4.0+ Yes — — —
3306H Get true version number 5.0+ Yes — — —
34H Get InDOS flag pointer 2.0+ — — —
35H Get interrupt vector 2.0+ @GetInt — —
36H Get free disk space 2.0+ @ChkDrv DosQFSInfo GetFreeSpace
37H Extended functions 2.0+ — — —
3700H Get switch character 2.0+ — — —
3701H Set switch character 2.0+ — — —
3702H Get availdev flag 2.x and 3.3+ — — —
3703H Set availdev flag 2.x and 3.3+ — — —
38H Get or set country info 2.0+ — DosGetCtryInfo —
3800H Get current country info 2.0+ — DosGetCtryInfo —
3801H Get/set specified country info 3.0+ — DosGetCtryInfo —
39H Create subdirectory 2.0+ @MkDir DosMkDir CreateDirectory
3AH Remove subdirectory 2.0+ @RmDir DosRmDir RemoveDirectory
3BH Change current directory 2.0+ @ChDir DosChDir SetCurrentDirectory
3CH Create or truncate file 2.0+ @MakFil DosOpen _lcreat
3DH Open file 2.0+ @OpenFil DosOpen _lopen
3EH Close file 2.0+ @ClosFil DosClose _lclose
3FH Read file or device 2.0+ @Read DosRead _lread
40H Write file or device 2.0+ @Write DosWrite _lwrite
41H Delete file 2.0+ @DelFil DosDelete —
42H Move file pointer 2.0+ @MovePtrAbs / @MovePtrRel / @GetFilSz DosChgFilePtr _llseek
43H Extended functions 2.0+ — DosQFileMode / DosSetFileMode —
4300H Get file attributes 2.0+ — DosQFileMode —
4301H Set file attributes 2.0+ — DosSetFileMode —
44H Extended functions 2.0+ — DosDevIOCtl —
4400H Get device information 2.0+ — DosDevIOCtl —
4401H Set device information 2.0+ — DosDevIOCtl —
4402H Read from character device control channel 2.0+ — DosDevIOCtl —
4403H Write to character device control channel 2.0+ — DosDevIOCtl —
4404H Read from block device control channel 2.0+ — DosDevIOCtl —
4405H Write to block device control channel 2.0+ — DosDevIOCtl —
4406H Get input status 2.0+ — DosDevIOCtl —
4407H Get output status 2.0+ — DosDevIOCtl —
4408H Check if block device removable 3.0+ — DosDevIOCtl GetDriveType
4409H Check if block device remote 3.1+ — DosDevIOCtl GetDriveType
440AH Check if handle is remote 3.1+ — DosDevIOCtl —
440BH Set sharing retry count 3.1+ — DosDevIOCtl —
440CH Generic character device request 3.2+ — DosDevIOCtl —
440DH Generic block device request 3.2+ — DosDevIOCtl —
440EH Get logical drive map 3.2+ — DosDevIOCtl —
440FH Set logical drive map 3.2+ — DosDevIOCtl —
4410H Query generic IOCTL capability (handle) 5.0+ — DosDevIOCtl —
4411H Query generic IOCTL capability (drive) 5.0+ — DosDevIOCtl —
45H Duplicate handle 2.0+ XDUP DosDupHandle —
46H Redirect handle 2.0+ XDUP2 DosDupHandle —
47H Get current directory 2.0+ @GetDir DosQCurDir GetCurrentDirectory
48H Allocate memory 2.0+ @GetBlok DosAllocSeg GlobalAlloc
49H Release memory 2.0+ @FreeBlok DosFreeSeg GlobalFree
4AH Reallocate memory 2.0+ @ModBlok DosReallocSeg GlobalReAlloc
4BH Execute program 2.0+ @Exec DosExecPgm WinExec
4CH Terminate with return code 2.0+ @Exit DosExit —
4DH Get program return code 2.0+ @GetRet — —
4EH Find first file 2.0+ @GetFirst DosFindFirst —
4FH Find next file 2.0+ @GetNext DosFindNext —
50H Set current PSP 2.0+ Yes — — —
51H Get current PSP 2.0+ Yes GET_PSP DosGetInfoSeg (косвенно) —
52H Get DOS internal pointers (SYSVARS) 2.0+ — — —
53H Create disk parameter block 2.0+ — — —
54H Get verify flag 2.0+ — DosQVerify —
55H Create program PSP 2.0+ — — —
56H Rename file 2.0+ @MoveFil DosMove —
57H Extended functions 2.0+ — DosQFileInfo / DosSetFileInfo —
5700H Get file's last-written date and time 2.0+ — DosQFileInfo —
5701H Set file's last-written date and time 2.0+ — DosSetFileInfo —
58H Get or set allocation strategy 2.11+ — — —
5800H Get memory allocation strategy 2.11+ — — —
5801H Set memory allocation strategy 2.11+ — — —
5802H Get UMB link state 5+ — — —
5803H Set UMB link state 5+ — — —
59H Get extended error info 3.0+ GET_ERROR DosErrClass GetLastError
5AH Create unique file 3.0+ CREATE_TEMP DosOpen GetTempFileName
5BH Create new file 3.0+ CREATE_NEW DosOpen _lcreat
5CH Lock or unlock file 3.0+ LOCK_FILE / UNLOCK DosFileLocks LockFile<br/>UnlockFile
5C00H Lock region of file 3.0+ LOCK_FILE DosFileLocks LockFile
5C01H Unlock region of file 3.0+ UNLOCK DosFileLocks UnlockFile
5DH File sharing functions 3.0+ — — —
5D07H Get redirected printer mode 3.1+ — — —
5D08H Set redirected printer mode 3.1+ — — —
5D09H Flush redirecter printer output 3.1+ — — —
5D0AH Set extended error information 3.1+ — — —
5EH Network functions 3.0+ GET_MACHINE_NAME / PRINTER_SETUP — WNetAddConnection<br/>WNetCancelConnection
5E00H Get machine name 3.1+ GET_MACHINE_NAME — GetComputerName
5E01H Set machine name 3.1+ — — —
5E02H Set network printer setup string 3.1+ PRINTER_SETUP — —
5E03H Get network printer setup string 3.1+ — — —
5E04H Set printer mode 3.1+ — — —
5E05H Get printer mode 3.1+ — — —
5FH Network redirection functions 3.0+ GET_LIST / REDIR / CANCEL_REDIR — WNetGetConnection
5F00H Get redirection mode 3.1+ — — —
5F01H Set redirection mode 3.1+ — — —
5F02H Get redirection list entry 3.1+ GET_LIST — WNetGetConnection
5F03H Redirect device 3.1+ REDIR — WNetAddConnection
5F04H Cancel redirection 3.1+ CANCEL_REDIR — WNetCancelConnection
5F05H Get extended redirection list entry 4+ — — —
5F07H Enable drive 5+ — — —
5F08H Disable drive 5+ — — —
60H Qualify filename 3.0+ — — —
61H OS/2 File System Join/Subst OS/2 1.0+ — — —
62H Get current PSP 3.0+ Yes GET_PSP DosGetInfoSeg (косвенно) —
63H Get DBCS lead byte table pointer 3.0+ — DosGetDBCSEv —
64H Set wait for external event flag / OS/2 VDM API 3.2+ / OS/2 2.0+ — — —
65H Get extended country info 3.3+ — DosGetCtryInfo —
6500H Set general internationalization info 7.1+ — DosGetCtryInfo —
6501H Get general internationalization info 3.3+ — DosGetCtryInfo —
6502H Get pointer to uppercase table 3.3+ — DosGetCtryInfo —
6503H Get pointer to lowercase table 6.2+ — DosGetCtryInfo —
6504H Get pointer to filename uppercase table 3.3+ — DosGetCtryInfo —
6505H Get pointer to filename terminator table 3.3+ — DosGetCtryInfo —
6506H Get pointer to collating sequence table 3.3+ — DosGetCollate —
6507H Get pointer to Double-Byte Character Set table 4+ — DosGetDBCSEv —
6520H Capitalize character 4+ — DosCaseMap AnsiUpper
6521H Capitalize string 4+ — DosCaseMap AnsiUpperBuff
6522H Capitalize ASCIZ string 4+ — DosCaseMap AnsiUpper
6523H Determine if character represents Yes/No response 4+ — — —
65A0H Capitalize filename character 4+ — DosCaseMap AnsiUpper
65A1H Capitalize counted filename string 4+ — DosCaseMap AnsiUpperBuff
65A2H Capitalize ASCIZ filename 4+ — DosCaseMap AnsiUpper
66H Get or set code page 3.3+ — DosGetCP / DosSetCP —
6601H Get global code page table 3.3+ — DosGetCP —
6602H Set global code page table 3.3+ — DosSetCP —
67H Set handle count 3.3+ — DosSetMaxFH SetHandleCount
68H Commit file 3.3+ FLUSH DosBufReset —
69H Get or set media id 4.0+ — — —
6900H Get serial number 4.0+ — — —
6901H Set serial number 4.0+ — — —
6AH Commit file 4.0+ — DosBufReset —
6CH Extended open/create file 4.0+ / OS/2 1.0+ — DosOpen —
6DH Extended Make directory OS/2 1.0+ — DosMkDir2 —
6EH DosEnumAttrib OS/2 1.0+ — DosFindFirst / DosFindNext —
6FH DosQMaxEASize OS/2 1.0+ — — —
71H Long filename functions 7.0+ (Win95) — — —
73H FAT32 functions 7.0+ (Win95) — — —

Return

Depends on function number

Macro

Notes

See Also

Note

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