Processing in DOS Extenders

The way in which a DOS extender processes interrupts varies. Some INT 21h requests are passed directly to DOS. The DOS extender simply switches to real mode, calls DOS, and then switches back to protected mode when DOS returns after completing the function. File input and output, however, may demand that the DOS extender translate addresses, while other INT 21h functions such as DOS memory management must be replaced entirely by the DOS extender.

Unless the A20 address line has been explicitly enabled through the XMS interface, it cannot be assumed that memory from 1MB to 1MB+64KB-16 (the High Memory Area) is addressable once a program is running protected mode. If HMA is to be accessed, the A20 address line must be enabled through XMS before entering protected mode. XMS calls are not supported in protected mode.

This restriction is only important for software that wishes to access the HMA. Under all implementations of DPMI, the physical A20 address line will always be enabled while executing protected mode code. However, some 80386 specific DPMI implementations simulate 1MB address wrap for compatibility reasons. Under these DPMI implementations, the HMA will not be accessible unless the A20 address line is enabled through the XMS interface. This is the case under OS/2 Version 2.0.


[Back: Loading DPMI Clients and Extended Applications]
[Next: Session Termination]