Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: $Revision: 1.6.2.16 $; site ISM780B.UUCP Path: utzoo!watmath!clyde!burl!ulysses!gamma!epsilon!zeta!sabre!petrus!bellcore!decvax!cca!ISM780B!patrick From: patrick@ISM780B.UUCP Newsgroups: net.micro.pc Subject: Re: (Orphan) Re: How does SideKick work? Message-ID: <26700005@ISM780B.UUCP> Date: Wed, 20-Nov-85 23:43:00 EST Article-I.D.: ISM780B.26700005 Posted: Wed Nov 20 23:43:00 1985 Date-Received: Sun, 24-Nov-85 04:57:20 EST References: <233@well.UUCP.UUCP> Lines: 45 Nf-ID: #R:well.UUCP:-23300:ISM780B:26700005:000:1799 Nf-From: ISM780B!patrick Nov 20 23:43:00 1985 > SideKick installs in the timer interrupt. Here is the basic algorithm: > > at every timer tick do > { > execute the orignal timer tick interrupt; > if (the keybaord status word indicates that Ctl and Alt are held down) > if ((the system is stable)&&(sk is not currently active)) > enter sidekick > else beep; > } > > Once sidekick has been entered, I believe the standard keyboard interrupts > are used. It can't be as simple as that. I have an application which does a bunch of devious stuff with the timer interrupt (we take it over, and don't call the original routine) and the keyboard hardware interrupt. Surprisingly enough I have almost no keyboard trouble with Sidekick, although if I exit it via ESC my keyboard is scrambled (I must use CTRL-ALT, in which case everything is fine). The real trouble lies in my use of the DOS "exec" function (I forget the interrupt number, but this is the 2.x function which allows you to "spawn" another DOS "shell"). I can invoke this just fine when Sidekick is loaded, but when my application exits I get a message which says "FREE" (yes, that's all), and then the system is hung, and must be cold-booted. I suspect that this is connected to Borland`s insistance that Sidekick be the _last_ memory-resident program loaded. Does anyone know why this is so? It seems to me that if the "memory management" is performed correctly I shouldn't have this problem. For example, I can run my application, and use the "exec" function to invoke a second copy of my application, from which I can invoke another, and so on until I run out of memory. Why doesn't this work when Sidekick is loaded? Patrick Curran INTERACTIVE Systems Corp. Santa Monica, CA. (213) 453-8649 decvax!cca!ima!patrick {uscvax|ucla-vax|vortex}!ism780!patrick