[Back to TSR SWAG index]  [Back to Main SWAG index]  [Original]

{
>Thanks for the procedure. I don't want to use WRITE OR WRITELN cause
>they are slow and used a lot of mem. I copy one from the book but it
>makes the file even bigger!!!

Well, I hope mine worked decently...it just didn't mod the current
cursor position.

>You help certainly clear up something about TSR programming. Like
>why I need to interrupt hooking....but I still don't know how to
>detect hotkey and check to see if the program has been loaded.
>Anyway, I used a skeleton named TSR_TPU.PAS of an unkown author to
>write my TSR and it ran fine though not very good.

Good...I'm glad you understand this.  I don't have TSR_TPU, but I do
have some source that shows how to detect if a TSR is already loaded and
how to unload a TSR.  The hotkey part you can do your self.  You can
put in this program like the one I have below which will tell you what values
to look for in Port[$60] for keypresses.  Just run it, and hit your key combo.
For example, if you wanted ALT-A, you'd run this, and hit ALT-A, and you'd
see it would exit with 30 on the screen.  So in your TSR, you say:
If Port[$60]=30 then...
See?  If you want the uninstall/detect TSR program, please tell me...
}

Program HotKey;

Uses
  Crt, Dos;

Var
  Old : Procedure;

{$F+}
Procedure New; Interrupt;
Begin
  Writeln(Port[$60]);
  InLine($9C);
  Old;
End;
{$F-}

Begin
  GetIntVec($9, @Old);
  SetIntVec($9, @New);
  Repeat Until Keypressed;
End.

[Back to TSR SWAG index]  [Back to Main SWAG index]  [Original]