home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame Game Cube 1: DOS / aztechhalloffamegamecubedisc1- / batlemm / keys.c < prev    next >
Text File  |  1995-01-27  |  937b  |  60 lines

  1. #define KEYBOARD                 0x09
  2.  
  3.  
  4. void (_interrupt *OldInt9)(void);
  5.  
  6. int volatile KeyScan;
  7. char keys;
  8.  
  9. void _interrupt NewInt9( void )
  10. {
  11. register char keybyte;
  12.  
  13. KeyScan=inp(0x60);
  14. keybyte=inp(0x61);
  15.  
  16. outp(0x61,(keybyte|0x80));
  17. outp(0x61,keybyte);
  18. outp(0x20,0x20);
  19.  
  20. if(KeyScan==75)
  21.     keys=keys | 0x80;
  22. if(KeyScan==72)
  23.     keys=keys | 0x40;
  24. if(KeyScan==80)
  25.     keys=keys | 0x20;
  26. if(KeyScan==77)
  27.     keys=keys | 0x10;
  28.  
  29. if(KeyScan==203)
  30.     keys=keys & 0x60;
  31. if(KeyScan==200)
  32.     keys=keys & 0xB0;
  33. if(KeyScan==208)
  34.     keys=keys & 0xD0;
  35. if(KeyScan==205)
  36.     keys=keys & 0xE0;
  37.  
  38. if(KeyScan==29)
  39.     keys=keys | 0x08;
  40. else
  41.     keys=keys & 0xF7;
  42.  
  43. if(KeyScan==56)
  44.     keys=keys | 0x04;
  45. else
  46.     keys=keys & 0xFB;
  47.  
  48. }
  49.  
  50. void set_key_driver( void)
  51. {
  52. OldInt9=_dos_getvect(KEYBOARD);
  53. _dos_setvect(KEYBOARD,NewInt9);
  54. }
  55.  
  56. void restore_key_driver(void)
  57. {
  58. _dos_setvect(KEYBOARD,OldInt9);
  59. }
  60.