INT 21 - DOS Function Dispatcher


For more information, see the following topics:


	INT 21,0  Program terminate
	INT 21,1  Keyboard input with echo
	INT 21,2  Display output
	INT 21,3  Wait for auxiliary device input
	INT 21,4  Auxiliary output
	INT 21,5  Printer output
	INT 21,6  Direct console I/O
	INT 21,7  Wait for direct console input without echo
	INT 21,8  Wait for console input without echo
	INT 21,9  Print string
	INT 21,A  Buffered keyboard input
	INT 21,B  Check standard input status
	INT 21,C  Clear keyboard buffer, invoke keyboard function
	INT 21,D  Disk reset
	INT 21,E  Select disk
	INT 21,F  Open file using FCB
	INT 21,10  Close file using FCB
	INT 21,11  Search for first entry using FCB
	INT 21,12  Search for next entry using FCB
	INT 21,13  Delete file using FCB
	INT 21,14  Sequential read using FCB
	INT 21,15  Sequential write using FCB
	INT 21,16  Create a file using FCB
	INT 21,17  Rename file using FCB
	INT 21,18  DOS dummy function (CP/M) (not used/listed)
	INT 21,19  Get current default drive
	INT 21,1A  Set disk transfer address
	INT 21,1B  Get allocation table information
	INT 21,1C  Get allocation table info for specific device
	INT 21,1D  DOS dummy function (CP/M) (not used/listed)
	INT 21,1E  DOS dummy function (CP/M) (not used/listed)
	INT 21,1F  Get pointer to default drive parameter table (undocumented)
	INT 21,20  DOS dummy function (CP/M) (not used/listed)
	INT 21,21  Random read using PFCB
	INT 21,22  Random write using FCB
	INT 21,23  Get file size using FCB
	INT 21,24  Set relative record field for FCB
	INT 21,25  Set interrupt vector
	INT 21,26  Create new program segment
	INT 21,27  Random block read using FCB
	INT 21,28  Random block write using FCB
	INT 21,29  Parse filename for FCB
	INT 21,2A  Get date
	INT 21,2B  Set date
	INT 21,2C  Get time
	INT 21,2D  Set time
	INT 21,2E  Set/reset verify switch
	INT 21,2F  Get disk transfer address
	INT 21,30  Get DOS version number
	INT 21,31  Terminate process and remain resident
	INT 21,32  Get pointer to drive parameter table (undocumented)
	INT 21,33  Get/set Ctrl-Break check state & get boot drive
	INT 21,34  Get address to DOS critical flag (undocumented)
	INT 21,35  Get vector
	INT 21,36  Get disk free space
	INT 21,37  Get/set switch character (undocumented)
	INT 21,38  Get/set country dependent information
	INT 21,39  Create subdirectory (mkdir)
	INT 21,3A  Remove subdirectory (rmdir)
	INT 21,3B  Change current subdirectory (chdir)
	INT 21,3C  Create file using handle
	INT 21,3D  Open file using handle
	INT 21,3E  Close file using handle
	INT 21,3F  Read file or device using handle
	INT 21,40  Write file or device using handle
	INT 21,41  Delete file
	INT 21,42  Move file pointer using handle
	INT 21,43  Change file mode
	INT 21,44  I/O control for devices (IOCTL)
	INT 21,45  Duplicate file handle
	INT 21,46  Force duplicate file handle
	INT 21,47  Get current directory
	INT 21,48  Allocate memory blocks
	INT 21,49  Free allocated memory blocks
	INT 21,4A  Modify allocated memory blocks
	INT 21,4B  EXEC load and execute program (func 1 undocumented)
	INT 21,4C  Terminate process with return code
	INT 21,4D  Get return code of a sub-process
	INT 21,4E  Find first matching file
	INT 21,4F  Find next matching file
	INT 21,50  Set current process id (undocumented)
	INT 21,51  Get current process id (undocumented)
	INT 21,52  Get pointer to DOS "INVARS" (undocumented)
	INT 21,53  Generate drive parameter table (undocumented)
	INT 21,54  Get verify setting
	INT 21,55  Create PSP (undocumented)
	INT 21,56  Rename file
	INT 21,57  Get/set file date and time using handle
	INT 21,58  Get/set memory allocation strategy (3.x+, undocumented)
	INT 21,59  Get extended error information (3.x+)
	INT 21,5A  Create temporary file (3.x+)
	INT 21,5B  Create new file (3.x+)
	INT 21,5C  Lock/unlock file access (3.x+)
	INT 21,5D  Critical error information (undocumented 3.x+)
	INT 21,5E  Network services (3.1+)
	INT 21,5F  Network redirection (3.1+)
	INT 21,60  Get fully qualified file name (undocumented 3.x+)
	INT 21,62  Get address of program segment prefix (3.x+)
	INT 21,63  Get system lead byte table (MSDOS 2.25 only)
	INT 21,64  Set device driver look ahead  (undocumented 3.3+)
	INT 21,65  Get extended country information (3.3+)
	INT 21,66  Get/set global code page (3.3+)
	INT 21,67  Set handle count (3.3+)
	INT 21,68  Flush buffer (3.3+)
	INT 21,69  Get/set disk serial number (undocumented DOS 4.0+)
	INT 21,6A  DOS reserved (DOS 4.0+)
	INT 21,6B  DOS reserved
	INT 21,6C  Extended open/create (4.x+)
	INT 21,F8  Set OEM INT 21 handler (functions F9-FF) (undocumented)


	- int 21 functions are called with the function number in AH
	- register AX may be altered, its contents are not guaranteed
	- if an error occurs, CF is set to 1 and AX contains a simple
	  error code;	INT 21,59 can be used to determine cause.
	- most INT 21 functions do not restore the flags to pre-interrupt
	  state to allow returning of information via the flags register