rde@ukc.ac.uk (R.D.Eager) (11/12/86)
We have a lot of PC clones running MS-DOS 3.2, and are having problems with crashes. Scenario: Install the KEYBUK program (yes, it only fails with this installed); bet you didn't bother to test this, Microsoft! Run a program that doesn't read input for a while (e.g. FORMAT a floppy). Hold down a key on the keyboard. Result: DOS crashes with `Internal Stack Overflow' Now, I know about the STACKS= (STACK=?) parameter in CONFIG.SYS; it still crashes when I use STACKS=64,512 (the max, I believe). I don't think this is a solution. I think the keyboard on this clone generates characters about 10% faster than a real PC. The supplier says he can detune the keyboards to fix the problem, but this is inconvenient (and A HORRIBLE KLUDGE). The cause is clearly KEYBUK. It isn't handling interrupts correctly? I checked the code to make sure it has done a CLI before acknowledging the interrupt at the 8259, and indeed patched it in one case where that wasn't so. All paths from the acknowledgement (20H to port 20H) to the IRET run with all interrupts off. Perhaps a higher priority interrupt source generates multiple interrupts and eventually they blow the stack? Any ideas, anyone? -- Bob Eager rde@ukc.UUCP rde@ukc ...!mcvax!ukc!rde Phone: +44 227 66822 ext 7589