rocker@eve.wright.edu (Ronnie Peugh) (01/11/90)
I have been writing a appointment program. The program allows the user to enter appointments with the date and time. When each appointment's time comes the program reminds the user, i. e. I must use the timer interrupt (1 potential stack problem) It also must keep track of up to 300 people, who may have several appointments in one day. Therefore, I have to create appointments dynamically, which means pointers, lots of pointers (another stack user). Now I'm almost done with the whole program, but everytime an appointment comes up I get a stack overflow error. No problem, rright? WRONG, I put the stack up to 50k (from the 16k defualt). Same error, same place (almost, little diffect each time). I have tried everything I can think of, but haven't gotten anywhere. If anyone has any ideas please let me know and I'll try them. thanx anyone.. rocking on... (P.S.) I ran it with TURBO DEBUG and when it bombed out, it came back with Drive C:, Not Ready.
davidr@hplsla.HP.COM (David M. Reed) (01/13/90)
I am probably wrong, but I suspect it is related to the STACKS setting for DOS. I think this started with MSDOS 3.3, but you can define the size and number of hardware interrupt stacks used by DOS. You place a STACKS=n,s statement in CONFIG.SYS, where n = number of stack frames (from 8 to 64, with 9 as a default) and s = size in bytes of each stack frame (from 32 to 512, with 128 being default). We began having problems (system hangs, or crashes, or reports stack overflow, and other symptoms) especially with Logitech mice, particularly if the mouse is moved quickly (generating lots of interrupts, apparently faster than they could be processed. Our experimentation indicated, for that case, that the second number had more influence on behaviour, and our systems less susceptible to these problems when the size was in the middle of its range.