Date: Mon, 9 Sep 1996 01:57:10 -0700 (PDT) From: Samuel Vincent To: "John M. Aldrich" cc: djgpp AT delorie DOT com Subject: Re: CWSDPMI V3 - what's new versus V2? In-Reply-To: <3232578D.4859@cs.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Sat, 7 Sep 1996, John M. Aldrich wrote: > Ian D Romanick wrote: > > > > This may actually be a problem with Quake. I sent them a bug report > > that it does just this when I run 386MAX. To which they responded, "If > > it crashes when you do that, then don't do that!" Nothing quite like > > quality software... > > I sent them a bug report about incompatibilities between Quake's keyboard > driver and TSR DOS screen saver utilities, and got back a similar response. > For those who are interested, it seems that Quake's keyboard handler does > not chain, so any screen saver which detects keyboard activity will be > fooled into thinking that nothing is happening, and will merrily blank out > the screen (or whatever) once its time expires. Since the keyboard doesn't > chain, there's also no way to get it back! I did discover, however, that > using the mouse will restore the screen. This problem occurred with the > AD-DOS.COM screen saver (actually, screen blanker) utility. > > Apparently, id isn't particularly interested in fixing incompatibility > problems with its software; they just tell you "not to do it." What's > really ironic about this is that from magazine ratings and some feedback > that I have heard myself, Quake isn't even that revolutionary a game. > Sure, it's cool, and the graphics are great, but they didn't exactly > break whole acres of new ground. Well, it's their software and what they > do with it is their business. :) I'm not sure if it's worth buying the > full version of Quake though. > > John Well.. I would have to say that there is nothing that can be done about a screen saver that relies only on getting keystrokes from the keyboard interrupt. Quake cannot (and should not) chain to the next interrupt. 1) This would slow the game down by an indeterminable rate, switching to real mode, calling the old interrupt, (who knows what incredibly slow process lies in this new chain of interrupt code), switching back to protected mode.. Just to make it possible to run a screen saver over Quake? (Can't you make a batch file for quake that disables the screen saver, runs quake, then reenables the screen saver?) Why slow it down for the rest of us? 2) Imagine even the best case: Only the standard bios and dos keyboard handlers are present. You hold down your arrow keys to move about (this _is_ what you want to screen saver to see right? That you arent sitting still?) After bios/dos reads in 16 keys in the input buffer, the speaker starts beeping every time you hit a key until you quit Quake, at which time those 16 keys are spewed out at the dos command line. (Let's not get into how dangerous it is to allow random keystrokes to be interpretted as dos commands.) If the sheer annoyance of your computer constantly beeping as you hold down a directional key doesn't get you, the speed decrease of a system-wide pause of 1/4 second or so each time the beep sounds would make the game all but unplayable. There are only 2 possibilities. Pass the key and fill the 16 character buffer, causing beeping and unplayability along with a random commandline upon quitting the game. Or do not pass the key, and cause tsr's that have hooked the keyboard interrupt to miss those keys while the game is running. Personally, I choose number 2. -Sam