9 static void (__interrupt __far * old9h ) () ; //holds dos key int
13 void __interrupt __far Key_handler() {
17 scan = inp(0x60); //read scan code
19 outp( 0x61, cv | 0x80 );
21 outp(0x20, 0x20); //reset key int
23 if(scan > 127) { //on break set keymap 0, dec pressed
24 keymap[(scan & 127)] = 0;
27 else if(keymap[scan] == 0) { //on make set keymap 1, inc pressed
28 pressed += 1; //if not already set
37 for(i=0; i<128; i++) //set all keys to off
39 pressed = 0; //set number keys pressed to 0
41 old9h = _dos_getvect ( 0x9 ); //save old key int
42 _dos_setvect ( 0x9 , Key_handler ); //set key int to new handler
46 _dos_setvect ( 0x9 , old9h ) ; // Return to DOS keyboard driver
49 void waitkey(int key) {
56 void waitkeyup(int key) {