home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / cenvi23.zip / SCANCODE.LIB < prev    next >
Text File  |  1994-08-14  |  2KB  |  61 lines

  1. // ScanCode.lib - Return the keyboard scan code for a character
  2. // ver.1
  3. //
  4. //**** GetScanCode(): Return scan code for any ascii character
  5. // SYNTAX: byte GetScanCode(byte AsciiChar)
  6. // WHERE: AsciiChar: ascii representation of character, such as 'A'
  7. // RETURN: Byte representing the scan code for that character
  8. //
  9. //
  10.  
  11. gAsciiScans = "\x1E\x30\x2E\x20\x12\x21\x22\x23\x17\x24\x25\x26\x32\x31\x18\x19\x10\x13\x1F\x14\x16\x2F\x11\x2D\x15\x2C";
  12. gNumberScans = "\x0B\x02\x03\x04\x05\x06\x07\x08\x09\x0A";
  13.  
  14. GetScanCode(pCharCode)
  15. {
  16.    if ( 'A' <= toupper(pCharCode)  &&  toupper(pCharCode) <= 'Z' )
  17.       return gAsciiScans[toupper(pCharCode)-'A'];
  18.    if ( '0' <= pCharCode  &&  pCharCode <= '9' )
  19.       return gNumberScans[pCharCode - '0'];
  20.    switch ( pCharCode ) {
  21.       case '\r':  return '\x1C';
  22.       case '\t':  return '\x0F';
  23.       case '\b':  return '\x0E';
  24.       case '~':
  25.       case '`':   '\x29';
  26.       case '!':   return GetScanCode('1');
  27.       case '@':   return GetScanCode('2');
  28.       case '#':   return GetScanCode('3');
  29.       case '$':   return GetScanCode('4');
  30.       case '%':   return GetScanCode('5');
  31.       case '^':   return GetScanCode('6');
  32.       case '&':   return GetScanCode('7');
  33.       case '*':   return GetScanCode('8');
  34.       case '(':   return GetScanCode('9');
  35.       case ')':   return GetScanCode('0');
  36.       case '_':
  37.       case '-':   return '\x0C';
  38.       case '+':
  39.       case '=':   return '\x0D';
  40.       case '|':
  41.       case '\\':  return '\x2B';
  42.       case '{':
  43.       case '[':   return '\x1A';
  44.       case '}':
  45.       case ']':   return '\x1B';
  46.       case ':'
  47.       case ';'    return '\x27';
  48.       case '\"':
  49.       case '\'':  return '\x28';
  50.       case '<':
  51.       case ',':   return '\x33';
  52.       case '>':
  53.       case '.':   return '\x34';
  54.       case '?':
  55.       case '/':   return '\x35';
  56.       case '\033': return '\1';
  57.    }
  58.    return('\0');
  59. }
  60.  
  61.