DOS/32 Advanced DOS Extender - Utility Programs



3.5 - SUNSYS Setup - DPMI Kernel Configuration Window

DPMI Kernel Configuration Window - example
DPMI Kernel Configuration Window
The DPMI Kernel Configuration Window allows you to change DOS/32 Advanced built-in DPMI Kernel configuration. Please note that DOS/32 Advanced built-in DPMI server will be installed when running under "Clean", XMS and VCPI system softwares only. This means that the options specified in this window will not be applicable when running under Windows, OS/2 or any other DPMI hosted system.


VCPI/DPMI Detection Mode Default: VCPI/DPMI
Controls the order of VCPI/DPMI detection. When set to VCPI/DPMI, the DOS Extender will look for a VCPI server first, and if found, initialize and use it, even though a DPMI host may be present in the system. The advantage of doing so is that the VCPI servers are usually faster than DPMI hosts. On the other hand, a DPMI host may always deny the presence of VCPI, and in that case the DPMI will be detected and initialized instead.

Internal Exception Control Default: ON
When turned on, DOS/32 Advanced will trap down the exceptions thrown in a protected mode program and report them to the user. When turned off, the user's application will be responsible for exception handling. Note that when the internal exception control is turned off, the interrupts installed by DPMI functions 0203h and 0205h will be installed as is, that is they will not be buffered by the DOS Extender but set directly in the IDT (Interrupt Descriptor Table). Furthermore, the real mode IRQ callbacks will not be installed automatically by the DOS Extender if this option is turned off.

VCPI SmartPage Allocation Mode Default: ON
When this option is turned on, the DOS Extender will try to be a little smart when allocating Page Tables under VCPI. It will first retrieve the information about how much memory is available in the first VCPI Page Table, which always maps the first four megabytes of memory, including the conventional memory under 1MB, and then map the extended memory it allocated into the free pages in this same Page Table. This way, if you have 16MB of memory in your computer, and 3MB of that memory are used by, say smartdrv.exe and other TSRs, the DOS Extender will allocate only three additional Page Tables to map the rest of the memory, ie 13MB, into them and into VCPI first Page Table. This will in most cases save you 4KB of conventional (DOS) memory when running under VCPI. Turn this option off if you are having problems with a VCPI server or if you want your extended memory to start at 4MB under VCPI (when turned off, the DOS Extender will not modify the first Page Table and will start mapping the physical memory into linear memory at 4MB, as does DOS/4GW).

VCPI+XMS Allocation Scheme Default: ON
When turned on, the DOS Extender will allocate the extended memory from the both VCPI and XMS memory pools, when running under the VCPI system software. That is, when you have emm386.exe installed with ram nnn option, where "nnn" is the number of KB to reserve for EMS's use, the DOS Extender will allocate nnn KB of extended memory from VCPI and the rest of the memory, if any, from XMS. Otherwise, when turned off, only VCPI memory will be allocated by the DOS Extender.

Trap and Report Emulated IRQs Default: ON
When turned on, the DOS Extender will trap and report to the user (exit with an error message) any software interrupts that have been issued to emulate the hardware interrupts, IRQs. For example, if a program issues a software interrupt INT 08h to emulate hardware interrupt IRQ 0 (timer), the DOS Extender will report run-time error 6001, unexpected interrupt 08h. Otherwise, when this option is turned off, the DOS Extender will send the software interrupts to the interrupt handlers installed for the hardware IRQs.

Extended Memory Blocks Checking Default: ON
When this option is turned on, the DOS Extender will check whether the Extended Memory Blocks (EMBs), allocated through DPMI functions 05xxh, have been overwritten or corrupted in some way. For example, imagine that a program which allocates 4MB of memory, and fills the allocated memory area with zeroes, has an error. It fills 4MB + 16 bytes area instead of only 4MB area. This way, the extended memory block header, which is placed directly after the allocated 4MB block will be overwritten, and the DOS Extender will not be able to allocate the next extended memory block. This situation often arises when a program is not correctly written and often causes applications to crash. However, DOS/32 Advanced will, when this option is turned on, always check and report a run-time error message when a program overwrites the memory it had not allocated.

Ignore DOS/4G API Extension Calls Default: OFF
When this option is turned on, DOS/32 Advanced built-in DPMI server will fail any calls to the DPMI function 0A00h with DS:ESI pointing to DOS/4G ID-string "RATIONAL DOS/4G". This way you can fool certain applications which otherwise use DOS/4G extensions, and allow them to run under DOS/32 Advanced by telling them they run under DOS/4G incompatible DPMI server which will force them to not to use DOS/4G extensions. Please note that DOS/32 Advanced DPMI extensions (called with ID-string "SUNSYS DOS/32A") will work fine no matter whether this option is on or off.

Selectors Default: 256
This is the number of selectors that will be allocated by the DOS Extender in the GDT (Global Descriptor Table). You should set this value to at least 16 selectors, as DOS/32 Advanced will use some of them when loading your protected mode application. Note that some of the protected mode programs may require this value to be set to a large number, for example 4096.

Callbacks Default: 16
This is the number of callbacks that will be allocated by the DOS Extender and that will be available through DPMI functions 0303h and 0304h. You should set this value to at least 8 callbacks to ensure that the DOS Extender itself will operate properly, even if you know that the protected mode program you are running does not use any callbacks at all.

Real Mode Stacks Default: 8
This is the number of the real mode virtual stacks that will be allocated by the DOS Extender. Whenever a protected mode code needs to access the real mode program (for example an interrupt occurs, that has to be passed down to the real mode) a virtual stack will be used. When the DOS Extender runs out of stacks (when too many nested calls are made) the application will be terminated with a run-time error message.

Prot. Mode Stacks Default: 8
This is the number of the protected mode virtual stacks that will be allocated by the DOS Extender. Whenever a real mode program needs to access the protected mode code (for example a hardware interrupt occurs, and the handler callbacks it to the protected mode) a virtual stack will be used. When the DOS Extender runs out of stacks (when too many nested calls are made) the application will be terminated with a run-time error message.

VCPI PageTables Default: 64
This is the number of Page Tables that will be allocated by the DOS Extender under VCPI. This value directly controls how much extended memory will be allocated by the DOS Extender (under VCPI only) from the system and made available to your programs. Each Page Table will map (translate physical addresses to linear addresses) 4MB of memory. Setting this value to four will allow the DOS Extender to map 16MB of memory, but the four allocated Page Tables will take up 16KB of conventional (DOS) memory. The default value is 64, which allows the DOS Extender to map as much as 256MB of the extended memory. Note that the DOS Extender will automatically check how much memory can be allocated at startup, and will not create unnecessary Page Tables, ie if this value is set to 16, but only 8MB is physically present in the machine, the DOS Extender will allocate only two Page Tables.

VCPI PhysTables Default: 2
This is the number of Page Tables that will be allocated and used by the DOS Extender for physical memory mapping under VCPI (DPMI functions 0800h and 0801h). One Page Table will allow mapping of up to 4MB of memory. If you are sure that an application does not use physical memory mapping feature you may set this value to zero, reserving no Page Tables for physical memory mapping, but freeing up some of DOS conventional memory. (The physical memory mapping is commonly used by SVGA programmers, when the video memory can be mapped into linear memory to make an illusion of all the memory on the video card appearing as a contiguous block placed somewhere in the physical memory.) Note that some applications (games which use decent 3D graphics cards) will require more than 8MB (ie 2-3 PhysTables) to work properly.

Real Mode Stack Length Default: 32
The size of real mode virtual stack in paragraphs (bytes*16).

Prot. Mode Stack Length Default: 32
The size of protected mode virtual stack in paragraphs (bytes*16).

Extended Memory Default: All
This option specifies the amount of extended memory (in bytes) that will be allocated by the DOS Extender. This much memory (if physically present) will be made available for you protected mode program's use. If the DOS Extender can not allocate the specified amount of memory, it will try to allocate as much memory as it can.

 


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