At 01:26 PM 4/28/98 -0400, you wrote: >At 12:10 AM 4/28/98 -0400, you wrote: >>Can someone expand on what the stack setting is all about..??? >> >A stack comes from recursive and re-entrant program routines. as an example, > >Think of the stack as each time a process is started it takes a new piece >of paper from the stack to record any data unique to the process. The >stack is the number of pieces of paper you start with. > The above is a pretty good description. Here's a little more technical description. A stack entry is an area of memory of the number of bytes in the second part of the STACKS command (256 in most cases). Using a stack is not only done when a program calls a subroutine, but also when an interrupt (a hardware signal that a device needs attention) occurs. When a subroutine is called or an interrupt occurs, the current status of the executing program (CPU register contents, including the address in memory of the current instruction and the address of the current stack entry, being the primary data) is saved in a stack entry, sort of "stacking" the data on top of what was there before (in programmer-speak, a first-in-last-out stack, like those cabinets on wheels that hold plates at the salad bar. When the program that services the interrupt is done, it executes a command that says "go back to wherever I was before I started" and the data "on top of the stack" is placed back in the hardware, causing the next instruction following the point where the interrupt was received to be executed. This is done by the hardware as part of the command that starts the subroutine or as part of the interrupt processing and as part of the command that returns from the subroutine or the interrupt processing. This is what makes programs re-entrant and what allows interrupt processing to happen at any time without causing problems with the current program and without the programmer having to take interrupts into account in each and every one of his programs. The first part of the STACKS command says how many stack entries are possible at one time (9 in many cases). If the PC is processing an interrupt and another interrupt occurs, say the printer is ready for another character and has sent in an interrupt, causing the printer interrupt service routine (ISR) to start execution, and you decide at the same instant to move the mouse, causing the serial port to send in the mouse movement data, another stack entry is used to hold the status of the parallel port ISR while the interrupt processing starts for the serial port ISR. In a very busy machine, interrupts can come in so fast and close together that the number of stack entries needed is greater than the number allocated by the STACKS command and the machine crashes. Where are these ISRs? These are supplied as part of the BIOS, the operating system and its drivers. This is because the details of how to talk to the hardware at this level depends so intimately on the particular choice of chips used to implement the device controllers such as the parallel ports, serial ports, etc. OBTW, take a look in your Windows directory for a file called CONFIG.TXT. It describes the commands you can enter in your CONFIG.SYS and includes a description of the STACKS and STACKSHIGH command, although there is not much detail.