roeder@sbsvax.UUCP (Edgar Roeder) (08/01/88)
In article <1095@atari.UUCP>, apratt@atari.UUCP (Allan Pratt) writes: > > ... Thank you for your concern, though. It's a little > late in the release process to get major changes in, but if there are > little things you're afraid we may have overlooked, please MAIL to > me with your ideas. Since i can't get to you by mail ('pandora refuses connection' on every path i tried), i post this to the net. I have found another nice "feature" in the ST-keyboard buffering routines. First the scenario: The old TOS (Blitter-TOS and previous ones) uses a buffer of 80 longs for buffering keyboard input on GEMDOS-level. Three variables control this process: 1. a counter, which is incremented on adding and decremented on deleting of a char 2. a head-pointer which is incremented after adding a char to the beginning of the buffer 3. a tail-pointer, which is incremented after deleting a char from the end of the buffer Whenever the two pointers get equal, they are reset to point to the beginning of the buffer. When the count of characters in the buffer gets 80, the console beeps and no char is added. And now the problem: When you are typing faster than the program reads (and have always <80 chars in the actual buffer between head and tail), the buffer overflows into user-RAM, because the head pointer is always incremented and never checked against the high end of the buffer. Conclusion: the ST crashes. Is this fixed in the new ROM-code ??? - Edgar