DOS/32 Advanced DOS Extender - Programmer's Reference


Contents Contents:

1 - DOS/32 Advanced - Introduction

2 - Supported DPMI functions (available through INT 31h)

2.0 - DPMI functions - Overview
2.01 - DPMI function 0000h - Allocate Descriptors
2.02 - DPMI function 0001h - Free Descriptor
2.03 - DPMI function 0002h - Map Segment to Descriptor
2.04 - DPMI function 0003h - Get Selector Increment Value
2.05 - DPMI function 0006h - Get Segment Base Address
2.06 - DPMI function 0007h - Set Segment Base Address
2.07 - DPMI function 0008h - Set Segment Limit
2.08 - DPMI function 0009h - Set Descriptor Access Rights
2.09 - DPMI function 000Ah - Create Alias Descriptor
2.10 - DPMI function 000Bh - Get Descriptor
2.11 - DPMI function 000Ch - Set Descriptor
2.12 - DPMI function 000Eh - Get Multiple Descriptors
2.13 - DPMI function 000Fh - Set Multiple Descriptors
2.14 - DPMI function 0100h - Allocate DOS Memory Block
2.15 - DPMI function 0101h - Deallocate DOS Memory Block
2.16 - DPMI function 0102h - Resize DOS Memory Block
2.17 - DPMI function 0200h - Get Real Mode Interrupt Vector
2.18 - DPMI function 0201h - Set Real Mode Interrupt Vector
2.19 - DPMI function 0202h - Get Processor Exception Handler Vector
2.20 - DPMI function 0203h - Set Processor Exception Handler Vector
2.21 - DPMI function 0204h - Get Protected Mode Interrupt Vector
2.22 - DPMI function 0205h - Set Protected Mode Interrupt Vector
2.23 - DPMI function 0300h - Simulate Real Mode Interrupt
2.24 - DPMI function 0301h - Call Real Mode Procedure with RETF Frame
2.25 - DPMI function 0302h - Call Real Mode Procedure with IRET Frame
2.26 - DPMI function 0303h - Allocate Real Mode Callback Address
2.27 - DPMI function 0304h - Free Real Mode Callback Address
2.28 - DPMI function 0305h - Get State Save/Restore Addresses
2.29 - DPMI function 0306h - Get Raw Mode Switch Addresses
2.30 - DPMI function 0400h - Get DPMI Version
2.31 - DPMI function 0500h - Get Free Memory Information
2.32 - DPMI function 0501h - Allocate Memory Block
2.33 - DPMI function 0502h - Free Memory Block
2.34 - DPMI function 0503h - Resize Memory Block
2.35 - DPMI function 050Ah - Get Memory Block Size and Base
2.36 - DPMI function 0600h - Lock Linear Region
2.37 - DPMI function 0601h - Unlock Linear Region
2.38 - DPMI function 0602h - Mark Real Mode Region as Pageable
2.39 - DPMI function 0603h - Relock Real Mode Region
2.40 - DPMI function 0604h - Get Page Size
2.41 - DPMI function 0702h - Mark Page as Demand Paging Candidate
2.42 - DPMI function 0703h - Discard Page Contents
2.43 - DPMI function 0800h - Physical Address Mapping
2.44 - DPMI function 0801h - Free Physical Address Mapping
2.45 - DPMI function 0900h - Get and Disable Virtual Interrupt State
2.46 - DPMI function 0901h - Get and Enable Virtual Interrupt State
2.47 - DPMI function 0902h - Get Virtual Interrupt State
2.48 - DPMI function 0A00h - Get Vendor-Specific API Entry Point
2.49 - DPMI function 0E00h - Get Coprocessor Status
2.50 - DPMI function 0E01h - Set Coprocessor Emulation
2.51 - DPMI function 0EEFFh - Get DOS Extender Info (PMODE/W compatible)
2.52 - Vendor Specific DPMI API Extensions
2.53 - API function 00h - Get Access to GDT and IDT
2.54 - API function 01h - Get Access to Page Tables
2.55 - API function 02h - Get Access to Internal Interrupt Buffers
2.56 - API function 03h - Get Access to Extended Memory Blocks
2.57 - API function 04h - Get Access to Real Mode Virtual Stacks
2.58 - API function 05h - Get Access to Protected Mode Virtual Stacks
2.59 - API function 06h - Get DOS/32 Advanced DPMI Kernel Selectors
2.60 - API function 07h - Get Critical Handler Entry Point
2.61 - API function 08h - Set Critical Handler Entry Point
2.62 - API function 09h - Get Access to Performance Counters
2.63 - DPMI error codes

3 - Supported Extended DOS functions (available through INT 21h)

3.0 - Extended DOS functions - Overview
3.01 - DOS function 09h - Write String
3.02 - DOS function 1Ah - Set Disk Transfer Area Address (DTA)
3.03 - DOS function 1Bh - Get Default Drive Information
3.04 - DOS function 1Ch - Get Specific Drive Information
3.05 - DOS function 1Fh - Get Default Drive Parameter Block (DPB)
3.06 - DOS function 25h - Set Interrupt Vector
3.07 - DOS function 2Fh - Get Disk Transfer Area Address (DTA)
3.08 - DOS function 32h - Get Specific Drive Parameter Block (DPB)
3.09 - DOS function 34h - Get InDOS Flag Address
3.10 - DOS function 35h - Get Interrupt Vector
3.11 - DOS function 39h - Create Directory
3.12 - DOS function 3Ah - Remove Directory
3.13 - DOS function 3Bh - Change Directory
3.14 - DOS function 3Ch - Create File
3.15 - DOS function 3Dh - Open File
3.16 - DOS function 3Fh - Read from File
3.17 - DOS function 40h - Write to File
3.18 - DOS function 41h - Delete File
3.19 - DOS function 42h - Set Current File Position
3.20 - DOS function 43h - Change File Attributes
3.21 - DOS function 4402h - Read from Character Device Control Channel
3.22 - DOS function 4403h - Write to Character Device Control Channel
3.23 - DOS function 4404h - Read From Block Device Control Channel
3.24 - DOS function 4405h - Write to Block Device Control Channel
3.25 - DOS function 47h - Get Directory Path Name
3.26 - DOS function 48h - Allocate DOS Memory Block
3.27 - DOS function 49h - Deallocate DOS Memory Block
3.28 - DOS function 4Ah - Resize DOS Memory Block
3.29 - DOS function 4Bh - Execute Program (sub-function 00h)
3.30 - DOS function 4Ch - Terminate Program
3.31 - DOS function 4Eh - Find First File
3.32 - DOS function 4Fh - Find Next File
3.33 - DOS function 51h - Get PSP Segment
3.34 - DOS function 56h - Rename File
3.35 - DOS function 5Ah - Create Temporary File
3.36 - DOS function 5Bh - Create New File
3.37 - DOS function 62h - Get PSP Selector
3.38 - DOS function 7139h - Win95 LFN Create Directory
3.39 - DOS function 713Ah - Win95 LFN Remove Directory
3.40 - DOS function 713Bh - Win95 LFN Change Directory
3.41 - DOS function 7141h - Win95 LFN Delete File
3.42 - DOS function 7143h - Win95 LFN Get/Set File Attributes
3.43 - DOS function 7147h - Win95 LFN Get Current Directory
3.44 - DOS function 7156h - Win95 LFN Rename File
3.45 - DOS function 7160h - Win95 LFN Get File True Name
3.46 - DOS function 716Ch - Win95 LFN Create/Open File
3.47 - DOS function 0FF00h - DOS/4G Identification Call
3.48 - DOS function 0FF80h - DOS/32 Advanced Magic Function
3.49 - DOS function 0FF88h - DOS/32 Advanced Identification Call
3.50 - DOS function 0FF89h - DOS/32 Advanced Get Configuration Info
3.51 - DOS function 0FF8Ah - DOS/32 Advanced Get ADPMI Configuration Info
3.52 - DOS function 0FF90h - DOS/32 Advanced Get Free High Memory Info
3.53 - DOS function 0FF91h - DOS/32 Advanced Allocate High Memory Block
3.54 - DOS function 0FF92h - DOS/32 Advanced Free High Memory Block
3.55 - DOS function 0FF93h - DOS/32 Advanced Resize High Memory Block
3.56 - DOS function 0FF94h - DOS/32 Advanced Get Free Low Memory Info
3.57 - DOS function 0FF95h - DOS/32 Advanced Allocate Low Memory Block
3.58 - DOS function 0FF96h - DOS/32 Advanced Free Low Memory Block
3.59 - DOS function 0FF97h - DOS/32 Advanced Resize Low Memory Block
3.60 - DOS function 0FF98h - DOS/32 Advanced Map Physical Memory
3.61 - DOS function 0FF99h - DOS/32 Advanced Unmap Physical Memory
3.62 - DOS function 0FF9Ah - DOS/32 Advanced Allocate Selector

4 - Supported Extended VGA/VBE functions (available through INT 10h)

4.0 - Extended VGA/VBE functions - Overview
4.01 - VGA function 1Bh - Read Functionality Information
4.02 - VGA function 1Ch - Save/Restore VGA State
4.03 - VBE function 4F00h - Get SuperVGA Information
4.04 - VBE function 4F01h - Get SuperVGA Mode Information
4.05 - VBE function 4F04h - Save/Restore SuperVGA State
4.06 - VBE function 4F09h - Load/Unload Palette Data
4.07 - VBE function 4F0Ah - Get Protected Mode Interface

5 - Supported Extended Mouse functions (available through INT 33h)

5.0 - Extended Mouse functions - Overview
5.01 - Mouse function 0009h - Define Graphics Cursor
5.02 - Mouse function 000Ch - Define Interrupt Subroutine Parameters
5.03 - Mouse function 0014h - Exchange Interrupt Subroutines
5.04 - Mouse function 0016h - Save Driver State
5.05 - Mouse function 0017h - Restore Driver State
5.06 - Mouse function 0018h - Set Alternate Mouse User Handler
5.07 - Mouse function 0019h - Return User Alternate Interrupt Handler
5.08 - Mouse function 0020h - Enable Mouse Driver

 

Terminology and definitions:
ADPMI = DOS/32 Advanced built-in DPMI
DOS or Low memory = conventional memory, available under 1MB
Extended or High memory = extended memory, available above 1MB
DOS/32 Advanced or DOS/32A = the whole DOS Extender (DOS Extender + ADPMI)

Words "DOS Extender" refer to that part of DOS/32 Advanced which performs initialization and cleanup of protected mode and DPMI, and extends software interrupts INT 10h, INT 21h and INT 33h.

Words "built-in DPMI" or "ADPMI" refer to the DPMI server that is built into DOS/32 Advanced and provides INT 31h interface.

Words "external DPMI" refer to any DPMI host other than DOS/32 Advanced built-in DPMI (for example Windows DPMI).

Please remember that by definition, a DOS Extender is not necessarily includes an incorporated (built-in) DPMI host, and a DPMI host is not necessarily extends any software interrupts, but only provides an API entry point through INT 31h.

_ _ _

The goal of this document is to provide protected mode programmers and application software developers with a brief information about functions available in and supported by DOS/32 Advanced DOS Extender, actions taken by them, parameters accepted and values returned in the exact form. The documentation assumes that the reader already has an experience of working in (extended) DOS environment and programming for (extended) DOS platform, which is essential in order to fully understand and correctly and most efficiently use all of the features available in DOS/32 Advanced DOS Extender.

 


Copyright Supernar Systems, Ltd. 1996-2005
All Rights Reserved.