INF: Setting Size and Number of Internal Stacks

ID Number: Q58436

3.x 4.x 5.00 5.10 6.00 6.00a 6.00ax 7.00

MS-DOS

Summary:

In Microsoft C versions 5.1, 6.0, 6.0a, 6.0ax, and C/C++ version 7.0, if

an INTERNAL STACK OVERFLOW system error occurs, the number and/or size

of internal stacks in MS-DOS should be increased in the CONFIG.SYS file.

The syntax for this is as follows

STACKS=number,size

where number = number of stacks (8-64, default 9) and size = size of

the stacks (32-512,default 128).

More Information:

The following information was taken from "The MS-DOS Encyclopedia,"

page 805:

Each time certain hardware interrupts occur, ... , MS-DOS Version

3.2 switches to an internal stack before transferring control to

the handler that will service the interrupt. In the case of nested

interrupts, MS-DOS checks to ensure that both interrupts do not get

the same stack. After the interrupt has been processed, the stack

is released. This protects the stacks owned by application programs

or system device drivers from overflowing when several interrupts

occur in rapid succession. . . . If too many interrupts occur too

quickly and the pool of internal stack frames is exhausted, the

system halts with the message INTERNAL STACK OVERFLOW. Increasing

the number parameter in the stacks command usually corrects the

problem.

Additional reference words: 5.10 6.00 6.00a 6.00ax 7.00