|
|
1.1 ! root 1: /* ! 2: * keys.c - Demonstrate the OS/2 call KBDCHARIN ! 3: * ! 4: * This program runs in the forground. Cooked keystrokes are printed ! 5: * to the console. Typing an ESC charactor terminates the program. ! 6: * ! 7: * This program can be bound to work under DOS 3.x (Family API). ! 8: * ! 9: */ ! 10: #define IOWAIT 0 ! 11: #define ESC '\033' ! 12: #define COOKED 0x04 ! 13: #define RAW 0x08 ! 14: ! 15: #include <subcalls.h> ! 16: #include <stdio.h> ! 17: main () ! 18: { ! 19: struct KeyData keydata; ! 20: struct KbdStatus kbdstatus; ! 21: ! 22: kbdstatus.length = sizeof(kbdstatus); ! 23: KBDGETSTATUS(&kbdstatus, 0); ! 24: kbdstatus.bit_mask &= ~(RAW | COOKED); ! 25: kbdstatus.bit_mask |= COOKED; ! 26: KBDSETSTATUS (&kbdstatus, 0); ! 27: ! 28: do { ! 29: KBDCHARIN(&keydata, IOWAIT, 0); ! 30: printf("char: %02X scan: %02X status: %02X shift: %04X\n", ! 31: keydata.char_code, ! 32: keydata.scan_code, ! 33: keydata.status, ! 34: keydata.shift_state); ! 35: ! 36: } while (keydata.char_code != ESC); ! 37: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.