STACKS= (CONFIG.SYS Command)
Compatibility: 2.0+
Purpose: Allocates additional stack space for DOS. If you see the
message...
Internal Stack Failure
System Halted
...then you should put a STACKS= statement in CONFIG.SYS
Syntax: STACKS= n,s
█▌Parameters▐█
n is the number of stacks to allocate (0-64; default=9)
s is the size (in bytes) of each stack (32-512; default=128)
█▌TECH Notes▐█
■ DOS typically intercepts interrupts 02H, 08H-0eH, 72H-74H, and 76H-77H
(see Interrupts and BIOS Services) which handle IRQs.
When one of these interrupts occurs, DOS points SS:SP to an internal
data area; that is, it switches stacks. This is supposed to minimize
the chance of a hardware interrupt overflowing an application's stack.
Note: DOS only performs stack switching when n is greater than 8.
■ STACKS=0,0 saves about 1K of conventional▲ memory (but it may cause
problems when running communications software or other interrupt-
intensive applications, or when running poorly-written software that
supplies insufficient internal stack space for handling external
interrupts.
■ A worst-case scenario -- such as an interrupt interrupting an
interrupt, which itself is interrupted (etc.) -- can cause a stack
overflow. If that happens, you should fall back to the default stack
settings or even increase them.
See Also: CONFIG.SYS Commands
-♦-