DOS function call (INT 21)
-------------------------------
Ah = 0-2e applicable to DoS 1.0 and later versions
Ah = 2f-57 applicable to DoS 2.0 and later versions
Ah = 58-62 applicable to DoS 3.0 and later versions
-------------------------------
Ah = 00
Function: Program termination (same as INT 20 h)
Call parameters:
Cs = program segment prefix
Ah = 01
Function: Enter and display the keyboard.
Response parameters:
Al = input character
Ah = 02
Function: displays the output.
Call parameters:
DL = output character
Ah = 03
Function: asynchronous communication Input
Response parameters:
Al = input data
Ah = 04
Function: asynchronous communication output
Call parameters:
DL = output data
Ah = 05
Function: Printer output
Call parameters:
DL = output character
Ah = 06
Function: Direct console I/O
Call parameters:
DL = ff (input)
Character (output)
Response parameters:
Al = input character
Ah = 07
Function: keyboard input (no echo)
Response parameters:
Al = input character
Ah = 08
Function: Enter the keyboard (no echo) and check Ctrl-break.
Response parameters:
Al = input character
Ah = 09
Function: displays strings.
Call parameters:
DS: dx = string address
'$' End string
Ah = 0a
Function: Enter the keyboard in the buffer zone.
Call parameters:
DS: dx = buffer first address
(DS: dx) = maximum number of characters in the buffer zone
Response parameters:
(DS: dx) + 1 = actual number of characters entered
Ah = 0b
Function: checks the keyboard status.
Response parameters:
Al = 00: Input
FF: no input
Ah = 0c
Function: clears the input buffer and requests the specified input.
Call parameters:
Al = enter function number (,)
Ah = 0d
Function: reset a disk.
Response parameters:
Clear File Buffer
Ah = 0e
Function: Specify the current default disk drive.
Call parameters:
DL = drive letter (0 = A, 1 = B ,...)
Response parameters:
Al = number of drives
Ah = 0f
Function: open a file.
Call parameters:
DS: dx = FCB first address
Response parameters:
Al = 00: Find the file
FF: file not found
Ah = 10
Function: Disable a file.
Call parameters:
DS: dx = FCB first address
Response parameters:
Al = 00: Directory modified successfully
FF: files not found in the directory
Ah = 11
Function: finds the first directory item.
Call parameters:
DS: dx = FCB first address
Response parameters:
Al = 00: Found
FF: not found
Ah = 12
Function: finds the next directory item.
Call parameters:
DS: dx = FCB first address (file name with * Or ?)
Response parameters:
Al = 00: Found
FF: not found
Ah = 13
Function: delete an object.
Call parameters:
DS: dx = FCB first address
Response parameters:
Al = 00: Deletion successful
FF: not found
Ah = 14
Function: sequential read
Call parameters:
DS: dx = FCB first address
Response parameters:
Al = 00: read Successful
01: End of file, no data in record
02: insufficient space for DTA
03: End of file, incomplete record
Ah = 15
Function: sequential write
Call parameters:
DS: dx = FCB first address
Response parameters:
Al = 00: Write successful
01: full disk
02: insufficient space for DTA
Ah = 16
Function: create a file
Call parameters:
DS: dx = FCB first address
Response parameters:
Al = 00: Creation successful
FF: no disk space
Ah = 17
Function: rename a file
Call parameters:
DS: dx = FCB first address
(DS: dx + 1) = old file name
(DS: dx + 17) = new file name
Response parameters:
Al = 00: Successful
FF: Failed
Ah = 19
Function: obtains the default disk drive.
Response parameters:
Al = default drive letter (0 = A, 1 = B, 2 = C ,...)
Ah = 1a
Function: sets the DTA address.
Call parameters:
DS: dx = DTA address
Ah = 1b
Function: obtains the default drive fat information.
Response parameters:
Al = number of sectors per cluster
DS: BX = fat ID byte
Cx = physical sector size
DX = number of clusters on the default drive
Ah = 1c
Function: obtains the fat information of any drive.
Call parameters:
DL = drive letter
Response parameters:
Same as above!
Ah = 21
Function: random read
Call parameters:
DS: dx = FCB first address
Response parameters:
Al = 00: Write successful
01: End of File
02: Buffer Overflow
03: Buffer not satisfied
Ah = 22
Function: Random write
Call parameters:
DS: dx = FCB first address
Response parameters:
Al = 00: Write successful
01: full disk
02: Buffer Overflow
Ah = 23
Function: determines the file size.
Call parameters:
DS: dx = FCB first address
Response parameters:
Al = 00: Successful. Enter the file length in FCB.
FF: not found
Ah = 24
Function: Set a random record number.
Call parameters:
DS: dx = FCB first address
Ah = 25
Function: sets the interrupt vector.
Call parameters:
DS: dx = interrupt vector
Al = interrupt type number
Ah = 26
Function: create a program segment prefix.
Call parameters:
DX = segment prefix of the new program segment
Ah = 27
Function: Random Block read
Call parameters:
DS: dx = FCB first address
Cx = number of records
Response parameters:
Al = 00: read Successful
01: End of File
02: the buffer is too small and the transmission ends.
03: Buffer not satisfied
Cx = number of records read
Ah = 28
Function: Random Block write
Call parameters:
DS: dx = FCB first address
Cx = number of records
Response parameters:
Al = 00: Write successful
01: full disk
02: Buffer Overflow
Ah = 29
Function: analyzes the file name.
Call parameters:
ES: di = FCB first address
DS: SI = asciiz string
Al = control analysis mark
Response parameters:
Al = 00: standard file
01: Multi-definition file
02: Invalid drive letter
Ah = 2a
Function: Get date
Response parameters:
Cx = year
DH: DL = month: Day (Binary)
Ah = 2B
Function: set the date.
Call parameters:
CX: DH: DL = year: Month: Day
Response parameters:
Al = 00: Successful
FF: Invalid
Ah = 2C
Function: Time taken
Response parameters:
Ch: CL = hour: minute
DH: DL = seconds: 1/100 seconds
Ah = 2D
Function: set the time.
Call parameters:
Ch: CL = hour: minute
DH: DL = seconds: 1/100 seconds
Response parameters:
Al = 00: Successful
FF: Invalid
Ah = 2e
Function: Set the automatic disk read/write flag.
Call parameters:
Al = 00: Close flag
01: Open flag
Ah = 2f
Function: obtains the first address of the disk buffer.
Response parameters:
ES: BX = buffer first address
Ah = 30
Function: obtains the DOS version number.
Response parameters:
Ah = release number
Al = version number
Ah = 31
Function: end and resident
Call parameters:
Al = return code
DX = resident area size
Ah = 33
Function: Ctrl-break Detection
Call parameters:
Al = 00: Get status
01: Set status (DL)
DL = 00: Disable Detection
01: Enable detection
Response parameters:
DL = 00: Disable Ctrl-break Detection
01: Enable Ctrl-break detection.
Ah = 35
Function: obtains the interrupt vector.
Call parameters:
Al = interrupt type
Response parameters:
ES: BX = interrupt vector
Ah = 36
Function: obtains free disk space.
Call parameters:
DL = drive letter (0 = default, 1 = A, 2 = B ,...)
Response parameters:
Success: Al = number of sectors per cluster
BX = Number of valid Clusters
Cx = number of bytes per sector
Failed: AX = FFFF
Ah = 38
Function: Set/retrieve country information
Call parameters:
DS: dx = first address of the information area
Response parameters:
BX = Country Code (international phone prefix)
Ax = Error Code
Ah = 39
Function: Creates a subdirectory (mkdir)
Call parameters:
DS: dx = asciiz string address
Response parameters:
Ax = Error Code
Ah = 3A
Function: delete a subdirectory (rmdir)
Call parameters:
DS: dx = asciiz string address
Response parameters:
Ax = Error Code
Ah = 3B
Function: change the current directory (chdir)
Call parameters:
DS: dx = asciiz string address
Response parameters:
Ax = Error Code
Ah = 3c
Function: create a file
Call parameters:
DS: dx = asciiz string address
Cx = file attributes
Response parameters:
Success: AX = File Code
Failed: AX = Error Code
Ah = 3D
Function: open a file.
Call parameters:
DS: dx = asciiz string address
Al = 0: Read
1: Write
2: read/write
Response parameters:
Success: AX = File Code
Failed: AX = Error Code
Ah = 3E
Function: Disable a file.
Call parameters:
BX = file number
Response parameters:
Failed: AX = Error Code
Ah = 3f
Function: Read files or devices.
Call parameters:
DS: dx = data buffer address
BX = File Code
Cx = number of bytes read
Response parameters:
Read successful: AX = number of bytes actually read
0: reached the end of the file
Read error: AX = Error Code
Ah = 40
Function: write files or devices
Call parameters:
DS: dx = data buffer address
BX = File Code
Cx = number of written bytes
Response parameters:
Written successfully: AX = number of actually written bytes
Failed to write: AX = Error Code
Ah = 41
Function: delete an object.
Call parameters:
DS: dx = asciiz string address
Response parameters:
Success: AX = 00
Error: AX = Error Code (2, 5)
Ah = 42
Function: Move a file pointer.
Call parameters:
BX = File Code
CX: dx = displacement
Al = move mode (0, 1, 2)
Response parameters:
Success: DX: AX = new pointer position
Error: AX = Error Code
Ah = 43
Function: sets/retrieves file attributes.
Call parameters:
DS: dx = asciiz string address
Al = 0: Get File Attributes
1: Set file attributes
Cx = file attributes
Response parameters:
Success: file attributes
Failed: AX = Error Code
Ah = 44
Function: Device File I/O Control
Call parameters:
BX = File Code
Al = 0: Get status
1: Set status DX
2: Read data
3: Write Data
6. Obtain the input status.
7: Get output status
Response parameters:
DX = device information
Ah = 45
Function: copy the file code.
Call parameters:
BX = File Code 1
Response parameters:
Success: AX = File Code 2
Failed: AX = Error Code
Ah = 46
Function: manually copy the file code
Call parameters:
BX = File Code 1
Cx = File Code 2
Response parameters:
Failed: AX = Error Code
Ah = 47
Function: obtains the path name of the current directory.
Call parameters:
DL = drive letter
DS: SI = asciiz string address
Response parameters:
(DS: Si) = asciiz string address
Failed: AX = Error Code
Ah = 48
Function: allocate memory space.
Call parameters:
BX = applied for memory capacity
Response parameters:
Succeeded: AX = allocating the first address of memory
Failed: BX = maximum available space
Ah = 49
Function: releases memory space.
Call parameters:
Es = memory start segment address
Response parameters:
Failed: AX = Error Code
Ah = 4A
Function: adjusts allocated storage blocks.
Call parameters:
Es = original memory start address
BX = requested capacity
Response parameters:
Failed: BX = maximum available space
Ax = Error Code
Ah = 4b
Function: Assemble/execute a program
Call parameters:
DS: dx = asciiz string address
ES: BX = first address of the parameter Area
Al = 0: Load execution
3: load is not executed
Response parameters:
Failed: AX = Error Code
Ah = 4c
Function: ends with a return code.
Call parameters:
Al = return code
Ah = 4D
Function: return code.
Response parameters:
Ax = return code
Ah = 4E
Function: Find the first matching file.
Call parameters:
DS: dx = asciiz string address
Cx = attribute
Response parameters:
Ax = Error Code (01,18)
Ah = 4f
Function: Find the next matching file.
Call parameters:
DS: dx = asciiz string address (which is included in the file name? Or *)
Response parameters:
Ax = Error Code (18)
Ah = 54
Function: indicates the automatic read/write flag of a disk.
Response parameters:
Al = Current flag value
Ah = 56
Function: rename a file
Call parameters:
DS: dx = asciiz string (old)
ES: di = asciiz string (new)
Response parameters:
Ax = Error Code (, 17)
Ah = 57
Function: sets/retrieves the date and time of a file.
Call parameters:
BX = File Code
Al = 0: Read
Set (dx: Cx)
Response parameters:
DX: Cx = Date and Time
Failed: AX = Error Code
Ah = 58
Function: gets/sets the allocation policy code.
Call parameters:
Al = 0: Code Retrieval
1: PIN code (BX)
BX = policy code
Response parameters:
Success: AX = policy code
Failed: AX = Error Code
Ah = 59
Function: obtains the extended error code.
Response parameters:
Ax = expanded error codes
BH = Error Type
BL = recommended operations
Ch = error location
Ah = 5A
Function: create a temporary file
Call parameters:
Cx = file attributes
DS: dx = asciiz string address
Response parameters:
Success: AX = File Code
Failed: AX = Error Code
Ah = 5b
Function: Creates a new file.
Call parameters:
Cx = file attributes
DS: dx = asciz string address
Response parameters:
Success: AX = File Code
Failed: AX = Error Code
Ah = 5C
Function: Controls file access.
Call parameters:
Al = 00: Block
01: Enabled
BX = File Code
CX: dx = file displacement
Si: di = file length
Ah = 62
Function: obtains the prefix of a program segment.
Response parameters:
BX = PSP address
X01. OS. 5: DOS function call