home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 17 / CD_ASCQ_17_101194.iso / dos / prg / sphinx / examples / tsr / noboot.c__ < prev    next >
Encoding:
Text File  |  1994-05-27  |  1.1 KB  |  57 lines

  1. /*
  2.    SPHINX C-- example file.
  3.    Title:  NOBOOT.C--
  4.    Description:  A TSR that disables the <CTRL><ALT><DEL> reboot.
  5. */
  6.  
  7. ?include "KEYCODES.H--"
  8. ?include "WRITE.H--"
  9. ?include "SYSTEM.H--"
  10. ?include "DOS.H--"
  11. ?include "TSR.H--"
  12.  
  13. dword oldkeyhandle={};
  14. byte altflag=0,ctrlflag=0;
  15.  
  16. ?define s_upalt s_alt+128
  17. ?define s_upctrl s_ctrl+128
  18.  
  19. interrupt keyhandle ()
  20. {
  21. $ PUSH DS
  22. $ PUSH AX
  23. DS = CS;
  24. $ IN AL,KEYBOARD_PORT
  25. IF( AL == s_alt )
  26.     altflag = 1;
  27. ELSE IF( AL == s_ctrl )
  28.     ctrlflag = 1;
  29. ELSE IF( AL == s_upalt )
  30.     altflag = 0;
  31. ELSE IF( AL == s_upctrl )
  32.     ctrlflag = 0;
  33. ELSE IF( AL == s_delete )
  34.     IF( ctrlflag == 1 )
  35.         IF( altflag == 1 )
  36.             {@ EATKEY();
  37.             @ EOI();
  38.             $ POP AX
  39.             $ POP DS
  40.             return();
  41.             }
  42. $ POP AX
  43. $ POP DS
  44. $ JMP FAR CSDWORD[#oldkeyhandle]
  45. }
  46.  
  47.  
  48. main ()
  49. {
  50. @ WRITESTR("NOBOOT installed.  <CTRL><ALT><DEL> is now disabled.\n");
  51. @ GETINTVECT(#oldkeyhandle,KEYBOARD_INT);
  52. @ SETINTVECT( ,KEYBOARD_INT,CS,#keyhandle);
  53. @ KEEP( , , ,#main);
  54. }
  55.  
  56. /* end of NOBOOT.C-- */
  57.