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

  1. /*
  2.     NAME:  CLICK.C--
  3.     DESCRIPTION:  Memory resident program that emmits a small beep from the
  4.                   speaker whenever a key is pressed or released.
  5. */
  6.  
  7.  
  8. ?include "SOUND.H--"
  9. ?include "DOS.H--"
  10. ?include "TSR.H--"
  11.  
  12. ?define  DELAYTIME  500    /* amount of LOOPs to delay for during beep */
  13.  
  14. word oldkeyboardhandle[2]={}; /* address holder for old INT 0x9 handle */
  15.  
  16.  
  17. interrupt keyboardhandle()   
  18. /* this is called every time a key is pressed or released */
  19. {
  20. $ PUSHF
  21. $ CS:
  22. $ CALL FAR oldkeyboardhandle;   /* chain to old interrupt handle */
  23.  
  24. $ PUSH AX
  25. $ PUSH BX
  26. $ PUSH CX
  27. $ PUSH DX
  28.  
  29. @ SOUND(50);          /* activated speaker */
  30. CX = DELAYTIME;
  31. loop( CX )   
  32.     {}
  33. @ NOSOUND();          /* disactivate speaker */
  34.  
  35. $ POP DX
  36. $ POP CX
  37. $ POP BX
  38. $ POP AX
  39. }
  40.  
  41.  
  42. main()
  43. {
  44. GETINTVECT(#oldkeyboardhandle,0x9);    /* get old keyboard interrupt handle */
  45. SETINTVECT( ,0x9,CS,#keyboardhandle);  /* attach to keyboard interrupt */
  46. @ KEEP( , , ,#main+1);       /* TSR, memory saved up to start of main() */
  47. }
  48.  
  49. /* end of CLICK.C-- */
  50.