Stack Checker (ver 1.0) Abandoned Freeware Stackchk.com is a tiny assembly language program, coded from instructions in a magazine. Included is the source code (stackchk.scr) which you can study and modify. Stacks (like FCBs) are a DOS legacy that newer software doesn't use. Stackchk examines your computer and tries to determine if any, and how many, DOS stacks have been used prior to making its examination (Programs can indeed run out of Stacks, just like Environment space). Stackchk was written during the height of the DOS stacks vs no DOS stacks debate. It can sometimes be fooled, but as far as I know, it is the only program of its type. For best results, boot DOS clean, run an application program (in a way that you think may possibly cause it to use some DOS stacks), and upon returning to the DOS command prompt, imediately run Stackchk. If the application used any DOS stacks, Stackchk will usually be able to tell. --------------- Understanding Stacks: Stacks are "pigeon holes" of memory which software can use to store bits of information they may need to recall later (sort of like the "MEM" key on a calculator). The Disk Operating System needs Stacks for its own use. Whenever DOS receives an asynchronous hardware interrupt from a device, it stores the information it needs to resume the interrupted task in a Stack. By default, DOS allocates 9 separate Stacks of 128 bytes each. Later, to accomodate Windows, the defaut Stack size was increased to 256 bytes. Stacks are specified in the CONFIG.SYS file. The first number specifies the number of Stacks, and the second number specifies the size. To turn off allocation of any Stacks, set the setting to "STACKS=0,0". Stacks take away from your Base Memory that programs need to run. Therefore you should always be conservative with you Stack allocation (number and size). If you -do- make Stacks available, the minimum number you can have is 8, and the maximum number you can have is 64. The minimum size you can allocate is 32, and the maximum size you can allocate is 512. To maximize efficiency, you may want to increase size in 32-byte increments. Because the DOS Stacks were already there, applications (drivers especially) would use the DOS Stacks for their own needs. Unfortunately, they never published how many Stacks they needed, or worse, how big the Stack must be. Good practice for DOS applications is for the application itself to allocate portions of memory for its storge needs. Setting Stacks: Casual testing with Stackchk indicates that DOS works better if Stacks are allocated. The 8 Stack minimum seems to be sufficient on a typical DOS computer that doesn't generate an excessive amount of simultainious hardware interrupts. 192 seems to be an adequate memory size to support running a simple Windows Shell. (STACKS=8,192) However, Modems and Networking can stress this allocation. Should hardware not seem to work properly, look to Stacks for a possible cause. NICs on a Token Ring topography will -require- a Stack memory size of 512 bytes (the max allowable).