home *** CD-ROM | disk | FTP | other *** search
- The following is a summary of some undocumented DOS 2.0 functions
- which can be invoked through interrupt 21H. The information provided
- herein have inaccuracies, so use it at our own risk! It is correct to
- the best of my knowledge. See the section in your DOS 2.0 manual entitled
- "Invoking DOS Functions" for further information. The function number
- provided below for each operation is to be placed in the AH register as
- described in the DOS manual. All numbers shown are in hex.
-
- FUNCTION DESCRIPTION
-
- 37 This interrupt is used to change incompatible
- configuration parameters to allow for switch
- indicators and whether hardware devices are
- available at every level of the tree directory.
-
- Usage: MOV AH, 37
- MOV AL, func ; function code
- MOV DL, data
- INT 21H
- ; read function data is returned in DL
-
- Function code for AL:
- 0 - Return the DOS switch character in DL.
- Many systems might return "-".
- 1 - Make the character in DL the switch character.
- 2 - Read the device availability byte into DL. A
- 0 means devices that devices must be accessed
- in file I/O calls by /DEV/device. A non-zero
- value means that devices are accessible at
- every level of the directory tree (e.g., PRN
- is the printer and not a file PRN).
- 3 - Set the device availability byte to the
- contents of DL.
-
- Possible errors returned in AL:
- FF - Illegal function code specified in AL.
-
-
- 1F (?) Retrieve the pointer to the default drive parameter block.
-
- Usage: MOV AH, 1F
- INT 21H
- ; address of drive parameter block is returned in DS:BX
-
-
- 32 (?) Retrieve the pointer to the drive parameter block
- for the drive number in DL, where 0 = default drive,
- 1 = drive A:, 2 = drive B:, etc.).
-
- Usage: MOV AH, 32h
- MOV DL, drivenum
- INT 21H
- ; address of drive parameter block is returned in DS:BX
- ; AL contains FF if the drive # in DL is invalid.
-
- F8 (?) Set OEM handler for INT 21H calls from F9 through FF
- to DS:DX. To reset these calls, pass DS and DX with FFFF.
- DOS is set up to allow ONE handler for all 7 of these
- calls. Any call to these handlers will result in the
- carry bit being set and AX will contain 1 if they are
- not initialized. The handling routine is passed all
- registers just as the user set them. The OEM handler
- routine should be exited through an IRET.
-
- Usage: LDS DX, handler_addr
- MOV AH, F8h
- INT 21H
-
-
- 4B Load and possibly execute a program (EXEC). This call
- is PARTIALLY documented in the IBM DOS 2.0 manual, but
- several function call values (for register AL) are
- omitted. They are:
-
- 1 - Create the program segment prefix and
- load the program, but do not begin
- execution. The CS:IP and SS:SP of the
- program are placed in the area provided
- by the user.
-
- +-------------------------------+
- | Word segment addr of environ. |
- +-------------------------------+
- | Dword ptr to cmd line at 80h |
- +-------------------------------+
- | Dword ptr to default FCB to |
- | be passed at 5Ch. |
- +-------------------------------+
- | Dword ptr to default FCD to |
- | be passed at 6Ch. |
- +-------------------------------+
- | Dword value of SS:SP returned |
- +-------------------------------+
- | Dword value of CS:IP returned |
- +-------------------------------+
-
- 2 - This function still remains a mystery.
-
-
- 4E Find first matching file (FIND FIRST). This function
- is PARTIALLY documented in the IBM DOS 2.0 manual.
- The description of what is returned in the DTA where
- the first 21 bytes are "reserved for DOS use on
- subsequent find next calls" contain the following
- in this order:
-
- 1 byte - attribute byte of search
- 1 byte - drive used in search
- 11 bytes- The search name used
- 2 bytes - Word value of last entry
- 4 bytes - Dword pointer to this DTA
- 2 bytes - Word directory start
- -----------------------------------
- { The documented bytes follow here
- such as attribute found, file's
- time, date, size, and name found. }
-
-
- 50 Define the current DTA (?) - this is all I know...
-
- 51 Retrieve current DTA (?)
-
- 52 Retrieve "IN_VARS" (?)
-
- 53 Define something about a DTA (?)
-
- 55 Duplicate a DTA (?)
-
-
- If anyone discovers ANYTHING useful and/or incorrect about this
- information, then PLEASE contact this bulletin board and leave a
- message for everyone. Let's figure out this DOS 2.00 (and 2.10)!
- This document was made available through:
-
- DALTEX BBS (214) 991-7934
- TECHNET BBS (617) 791-1957
-